apply-clients 7.1.48 → 7.1.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/dist.7z +0 -0
  2. package/package.json +5 -5
  3. package/src/components/product/Function/InstallFunction.vue +147 -147
  4. package/src/components/product/Function/InstallInfoSelect.vue +49 -31
  5. package/src/components/product/Process/ExplorationSelect.vue +41 -25
  6. package/src/components/product/Process/ExplorationUser.vue +135 -135
  7. package/src/components/product/Process/Processes/InstallationDetails.vue +520 -520
  8. package/src/components/product/Process/Processes/chargeManagement.vue +563 -563
  9. package/src/components/product/Process/Service/ServiceControl.vue +752 -752
  10. package/src/components/product/ReportForm/GasIgnitionSummary.vue +365 -352
  11. package/src/components/product/Supervisory/SupervisoryControl.vue +121 -121
  12. package/src/components/product/Supervisory/SupervisoryList.vue +40 -23
  13. package/src/components/product/VueUtils/ApplyUpload.vue +266 -266
  14. package/src/main.js +23 -23
  15. package/yarn-error.log +8797 -9060
  16. package/dist-android/static/0.50054aa998577d450157.js +0 -2
  17. package/dist-android/static/1.0b685d8dcbf4f3a8a5b2.js +0 -1
  18. package/dist-android/static/10.2a698c421c0ff5f57336.js +0 -2
  19. package/dist-android/static/11.75a39568e320abbddcc2.js +0 -2
  20. package/dist-android/static/12.4ac0c584da492acc599d.js +0 -1
  21. package/dist-android/static/13.5471bac3b39798923a79.js +0 -1
  22. package/dist-android/static/14.ee274728fdeb5107c357.js +0 -1
  23. package/dist-android/static/15.a1dc233c1804ede2ba87.js +0 -1
  24. package/dist-android/static/16.5081ea8a90d0dacbc748.js +0 -1
  25. package/dist-android/static/17.5b5184c9a9337a88d4f9.js +0 -1
  26. package/dist-android/static/18.0c99e5cb0de0f76008f6.js +0 -1
  27. package/dist-android/static/19.b50c8bf85b8e7fb27e2a.js +0 -1
  28. package/dist-android/static/2.16718caad0da13b463a3.js +0 -1
  29. package/dist-android/static/20.8f6767f58df1fde18784.js +0 -1
  30. package/dist-android/static/21.026f5cbfd90d70d8dd3a.js +0 -1
  31. package/dist-android/static/22.4631f8885615e9b6ad6e.js +0 -1
  32. package/dist-android/static/23.437b569f91863452daeb.js +0 -1
  33. package/dist-android/static/24.f1310985a29496bc5fd8.js +0 -1
  34. package/dist-android/static/25.b6dcf8c6d26f44035506.js +0 -1
  35. package/dist-android/static/27.2185c9e2e7116302e1e1.js +0 -13
  36. package/dist-android/static/28.b429eaf351968226c395.js +0 -3
  37. package/dist-android/static/29.aed6b18ccda9ca3748ce.js +0 -3
  38. package/dist-android/static/3.761de5413a2ed045ab10.js +0 -1
  39. package/dist-android/static/30.567f5fbffc0601227294.js +0 -2
  40. package/dist-android/static/31.179f87c71c11fd562feb.js +0 -1
  41. package/dist-android/static/32.8d45d3f6c5e874582cff.js +0 -1
  42. package/dist-android/static/33.32fd8d2f4e6e7b065a5c.js +0 -1
  43. package/dist-android/static/34.df47f9984baec20bdf5b.js +0 -1
  44. package/dist-android/static/35.5883200f073b546cb1a3.js +0 -1
  45. package/dist-android/static/36.477f89087e507526163f.js +0 -1
  46. package/dist-android/static/37.b82438692bca848519f6.js +0 -1
  47. package/dist-android/static/38.83c950bebdb997be2ef8.js +0 -1
  48. package/dist-android/static/39.333e42c6dbabf1bf2706.js +0 -1
  49. package/dist-android/static/4.eb190515d001a4e1bebd.js +0 -13
  50. package/dist-android/static/40.f6807724af2482375d7c.js +0 -1
  51. package/dist-android/static/41.92f39c44002772179f48.js +0 -1
  52. package/dist-android/static/42.662a0643f36dc759abc0.js +0 -1
  53. package/dist-android/static/43.5b55816aa2ca7b510d72.js +0 -1
  54. package/dist-android/static/44.4a6af5dd359e3973dea4.js +0 -1
  55. package/dist-android/static/45.d5992c604ad9eb4f40d2.js +0 -1
  56. package/dist-android/static/46.aa87912e9361ab053234.js +0 -1
  57. package/dist-android/static/47.b9efca55c1ea582c59e7.js +0 -2
  58. package/dist-android/static/48.8902ce91c715d61c63ef.js +0 -1
  59. package/dist-android/static/49.dd2591b071fe1901d2f2.js +0 -2
  60. package/dist-android/static/5.304b463f21c8253aa514.js +0 -13
  61. package/dist-android/static/50.e49f64d967a7f7350105.js +0 -1
  62. package/dist-android/static/51.0d311b6815373c5a3b1b.js +0 -1
  63. package/dist-android/static/52.344f9d59bb5cb156380d.js +0 -1
  64. package/dist-android/static/53.289984b9a04a7d11ffef.js +0 -1
  65. package/dist-android/static/54.5808cc57ddb689577efe.js +0 -1
  66. package/dist-android/static/55.9874aac28d0d80b55860.js +0 -1
  67. package/dist-android/static/56.babac04ffcc93c5573ed.js +0 -1
  68. package/dist-android/static/57.ca9993d9b0137ec93a81.js +0 -1
  69. package/dist-android/static/58.be8a5ac661eb638aff79.js +0 -1
  70. package/dist-android/static/59.2d0116e8a66e13cbabe2.js +0 -1
  71. package/dist-android/static/6.3f10426d99466042d079.js +0 -13
  72. package/dist-android/static/60.e60b562292633421a3d7.js +0 -1
  73. package/dist-android/static/61.492b25e8e1b66366329b.js +0 -1
  74. package/dist-android/static/62.24924f3f6fd5f97975d1.js +0 -1
  75. package/dist-android/static/63.7628250218be54b5c52f.js +0 -1
  76. package/dist-android/static/64.0c2d7593ebede3d30dc8.js +0 -1
  77. package/dist-android/static/65.220dfd6b1dd8e75c9d08.js +0 -1
  78. package/dist-android/static/66.da91b8ed2181ced4a4de.js +0 -1
  79. package/dist-android/static/67.75a3f13bea3c0ac4bbbe.js +0 -1
  80. package/dist-android/static/68.37aa2fd75666d1461dac.js +0 -1
  81. package/dist-android/static/69.e6a3e52929239e08b8d3.js +0 -1
  82. package/dist-android/static/7.57945431c1f505e425c1.js +0 -13
  83. package/dist-android/static/70.945cf028761bd66a2302.js +0 -1
  84. package/dist-android/static/71.0ae45dcfc105541b051d.js +0 -1
  85. package/dist-android/static/72.d89a35482e9c434d0bd0.js +0 -1
  86. package/dist-android/static/8.830a99f33590aeb637a3.js +0 -13
  87. package/dist-android/static/9.2432be88a7316649f45b.js +0 -12
  88. package/dist-android/static/appca71cf7af0c441a6b6ff.js +0 -135
  89. package/dist-android/static/doc.jpg +0 -0
  90. package/dist-android/static/images/lefticon//345/215/241/346/234/215/345/212/241/347/256/241/347/220/206.png +0 -0
  91. package/dist-android/static/images/lefticon//345/221/274/345/217/253/347/263/273/347/273/237.png +0 -0
  92. package/dist-android/static/images/lefticon//345/224/256/346/260/224/346/224/266/350/264/271.png +0 -0
  93. package/dist-android/static/images/lefticon//345/233/276/345/261/2023/346/213/267/350/264/2354.png +0 -0
  94. package/dist-android/static/images/lefticon//345/233/276/345/261/202577.png +0 -0
  95. package/dist-android/static/images/lefticon//345/233/276/345/261/2028/346/213/267/350/264/23513.png +0 -0
  96. package/dist-android/static/images/lefticon//345/256/211/346/243/200/346/237/245/347/234/213.png +0 -0
  97. package/dist-android/static/images/lefticon//345/256/211/346/243/200/350/256/241/345/210/222.png +0 -0
  98. package/dist-android/static/images/lefticon//345/276/256/344/277/241/346/234/215/345/212/241.png +0 -0
  99. package/dist-android/static/images/lefticon//346/212/245/345/273/272/347/263/273/347/273/237.png +0 -0
  100. package/dist-android/static/images/lefticon//346/212/245/350/241/250/346/237/245/350/257/242.png +0 -0
  101. package/dist-android/static/images/lefticon//346/227/245/345/270/270/347/256/241/347/220/206.png +0 -0
  102. package/dist-android/static/images/lefticon//346/234/272/350/241/250/347/256/241/347/220/206.png +0 -0
  103. package/dist-android/static/images/lefticon//346/237/245/350/257/242/345/210/227/350/241/250.png +0 -0
  104. package/dist-android/static/images/lefticon//346/241/243/346/241/210/347/256/241/347/220/206.png +0 -0
  105. package/dist-android/static/images/lefticon//347/211/251/350/201/224/347/275/221/350/241/250.png +0 -0
  106. package/dist-android/static/images/lefticon//347/263/273/347/273/237/347/256/241/347/220/206.png +0 -0
  107. package/dist-android/static/images/lefticon//347/263/273/347/273/237/350/256/276/347/275/256.png +0 -0
  108. package/dist-android/static/images/lefticon//347/273/217/350/220/245/347/256/241/346/216/247.png +0 -0
  109. package/dist-android/static/images/lefticon//347/273/274/345/220/210/344/270/232/345/212/241.png +0 -0
  110. package/dist-android/static/images/lefticon//347/273/274/345/220/210/346/237/245/350/257/242.png +0 -0
  111. package/dist-android/static/images/lefticon//350/217/234/345/215/225/344/274/270/347/274/251.png +0 -0
  112. package/dist-android/static/images/lefticon//351/200/200/345/207/272/347/263/273/347/273/237.png +0 -0
  113. package/dist-android/static/imgerror.jpg +0 -0
  114. package/dist-android/static/jsoneditor-icons.svg +0 -893
  115. package/dist-android/static/newStyle/clear.png +0 -0
  116. package/dist-android/static/newStyle/fife.png +0 -0
  117. package/dist-android/static/newStyle/hidden.png +0 -0
  118. package/dist-android/static/newStyle/label-clear.png +0 -0
  119. package/dist-android/static/newStyle/left-img.png +0 -0
  120. package/dist-android/static/newStyle/list_ok.png +0 -0
  121. package/dist-android/static/newStyle/login-check.png +0 -0
  122. package/dist-android/static/newStyle/login-con.png +0 -0
  123. package/dist-android/static/newStyle/login-do.gif +0 -0
  124. package/dist-android/static/newStyle/login-f.png +0 -0
  125. package/dist-android/static/newStyle/login-info.png +0 -0
  126. package/dist-android/static/newStyle/login-left.png +0 -0
  127. package/dist-android/static/newStyle/login-org.png +0 -0
  128. package/dist-android/static/newStyle/login-pwd.png +0 -0
  129. package/dist-android/static/newStyle/login-user.png +0 -0
  130. package/dist-android/static/newStyle/loginbg.gif +0 -0
  131. package/dist-android/static/newStyle/loginbg1280.gif +0 -0
  132. package/dist-android/static/newStyle/loginbg1366.gif +0 -0
  133. package/dist-android/static/newStyle/setting.png +0 -0
  134. package/dist-android/static/newStyle/setting1.png +0 -0
  135. package/dist-android/static/newStyle/shirk.png +0 -0
  136. package/dist-android/static/newStyle/stretch_bottom.png +0 -0
  137. package/dist-android/static/newStyle/stretch_left.png +0 -0
  138. package/dist-android/static/newStyle/stretch_right.png +0 -0
  139. package/dist-android/static/newStyle/stretch_top.png +0 -0
  140. package/dist-android/static/newStyle/system-off.png +0 -0
  141. package/dist-android/static/pdf.jpg +0 -0
  142. package/dist-android/static//344/270/213/350/275/275/350/256/241/345/210/222.png +0 -0
  143. package/dist-android/static//344/273/273/345/212/241/346/237/245/350/257/242.png +0 -0
  144. package/dist-android/static//344/277/241/346/201/257/345/205/254/345/221/212.png +0 -0
  145. package/dist-android/static//345/205/254/345/221/212/346/237/245/347/234/213.png +0 -0
  146. package/dist-android/static//345/206/214/345/206/205/351/241/272/345/272/217/344/277/256/346/224/271.png +0 -0
  147. package/dist-android/static//345/215/241/350/241/250/345/234/250/347/272/277/346/212/204/350/241/250.png +0 -0
  148. package/dist-android/static//345/234/250/347/272/277/345/256/211/346/243/200.png +0 -0
  149. package/dist-android/static//345/234/250/347/272/277/345/267/241/346/243/200.png +0 -0
  150. package/dist-android/static//345/234/250/347/272/277/346/212/204/350/241/250.png +0 -0
  151. package/dist-android/static//345/234/250/347/272/277/346/212/242/344/277/256.png +0 -0
  152. package/dist-android/static//345/234/250/347/272/277/346/212/245/350/243/205.png +0 -0
  153. package/dist-android/static//345/234/250/347/272/277/346/223/215/344/275/234.png +0 -0
  154. package/dist-android/static//345/234/250/347/272/277/347/273/264/344/277/256.png +0 -0
  155. package/dist-android/static//345/234/250/347/272/277/347/274/264/350/264/271.png +0 -0
  156. package/dist-android/static//345/234/250/347/272/277/351/200/232/346/260/224.png +0 -0
  157. package/dist-android/static//345/256/211/346/243/200/345/267/262/345/212/236.png +0 -0
  158. package/dist-android/static//345/256/211/346/243/200/345/276/205/345/212/236.png +0 -0
  159. package/dist-android/static//345/256/211/346/243/200/346/212/275/345/215/225.png +0 -0
  160. package/dist-android/static//345/256/211/350/243/205/344/270/212/344/274/240.png +0 -0
  161. package/dist-android/static//345/256/211/350/243/205/345/267/262/345/212/236.png +0 -0
  162. package/dist-android/static//345/256/211/350/243/205/345/276/205/345/212/236.png +0 -0
  163. package/dist-android/static//345/267/241/346/243/200/344/270/212/344/274/240.png +0 -0
  164. package/dist-android/static//345/267/241/346/243/200/345/267/262/345/212/236.png +0 -0
  165. package/dist-android/static//345/274/200/345/205/263/351/230/200.png +0 -0
  166. package/dist-android/static//345/275/242/347/212/2664.png +0 -0
  167. package/dist-android/static//346/211/271/351/207/217/346/212/204/350/241/250.png +0 -0
  168. package/dist-android/static//346/212/204/350/241/250/344/270/212/344/274/240.png +0 -0
  169. package/dist-android/static//346/212/204/350/241/250/345/267/262/345/212/236.png +0 -0
  170. package/dist-android/static//346/212/204/350/241/250/345/276/205/345/212/236.png +0 -0
  171. package/dist-android/static//346/212/204/350/241/250/350/256/260/345/275/225.png +0 -0
  172. package/dist-android/static//346/212/245/345/273/272/346/234/215/345/212/241.png +0 -0
  173. package/dist-android/static//346/224/266/350/264/271/346/261/207/346/200/273/350/241/250.png +0 -0
  174. package/dist-android/static//346/224/266/350/264/271/350/256/260/345/275/225.png +0 -0
  175. package/dist-android/static//346/227/245/346/212/245/346/237/245/350/257/242.png +0 -0
  176. package/dist-android/static//346/241/243/346/241/210/344/277/256/346/224/271.png +0 -0
  177. package/dist-android/static//346/265/201/347/250/213/344/270/232/345/212/241.png +0 -0
  178. package/dist-android/static//346/265/201/347/250/213/347/233/221/346/216/247.png +0 -0
  179. package/dist-android/static//347/247/273/345/212/250/346/212/204/350/241/250.png +0 -0
  180. package/dist-android/static//347/247/273/345/212/250/346/212/204/350/241/250/345/267/262/345/212/236.png +0 -0
  181. package/dist-android/static//347/273/237/350/256/241/346/212/245/350/241/250.png +0 -0
  182. package/dist-android/static//347/273/264/344/277/256/346/264/276/345/217/221.png +0 -0
  183. package/dist-android/static//350/220/245/344/270/232/345/233/276/350/241/250.png +0 -0
  184. package/dist-android/static//350/241/250/345/206/214/351/241/272/345/272/217.png +0 -0
  185. package/dist-android/static//350/260/203/344/273/267/350/241/245/345/267/256/347/274/264/350/264/271.png +0 -0
  186. package/dist-android/static//350/277/233/345/272/246/345/210/227/350/241/250.png +0 -0
  187. package/dist-android/static//351/200/200/345/207/272/347/231/273/345/275/225.png +0 -0
  188. package/dist-android/static//351/200/201/346/260/224/344/270/212/344/274/240.png +0 -0
  189. package/dist-android/static//351/200/201/346/260/224/345/267/262/345/212/236.png +0 -0
  190. package/dist-android/static//351/200/201/346/260/224/345/276/205/345/212/236.png +0 -0
  191. package/dist-android/static//351/232/220/346/202/243/345/244/204/347/220/206.png +0 -0
  192. package/dist-android/static//351/233/206/344/270/255/345/256/211/346/243/200.png +0 -0
  193. package/dist-android/static//351/253/230/345/257/206/345/205/254/345/221/212.png +0 -0
@@ -1,752 +1,752 @@
1
- <template>
2
-
3
- <div class="auto clearfix">
4
- <show-back-reason :selectdata="show_data"></show-back-reason>
5
- </div>
6
-
7
- <service-view v-ref:serviceview :data="show_data" v-if="showview"></service-view>
8
-
9
- </template>
10
- <script>
11
- import Vue from 'vue'
12
- import {HttpResetClass} from 'vue-client'
13
- import {getNowDate,isEmpty} from '../../../Util'
14
- // Date格式化
15
- Date.prototype.Format = function (fmt) {
16
- var o = {
17
- "M+": this.getMonth() + 1, //月份
18
- "d+": this.getDate(), //日
19
- "H+": this.getHours(), //小时
20
- "m+": this.getMinutes(), //分
21
- "s+": this.getSeconds(), //秒
22
- "q+": Math.floor((this.getMonth() + 3) / 3), //季度
23
- "S": this.getMilliseconds() //毫秒
24
- };
25
- if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
26
- for (var k in o)
27
- if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
28
- return fmt;
29
- }
30
-
31
- export default {
32
- title: '报建流程业务控制层',
33
- props: ['selectdata'],
34
- data() {
35
- return {
36
- data: null, // 数据库数据,json配置文件数据的数据集合
37
- json_datas: null, // Json配置文件集合
38
- showview: false, // 控制显示service-view组件
39
- show_data: null // 给view层显示的数据
40
- }
41
- },
42
- created () {
43
- this.refurbish()
44
- },
45
- methods: {
46
- // 组件初始化操作
47
- refurbish() {
48
- this.json_datas = this.$workflow_vue
49
- let sum = 0
50
- let jsonData = {}
51
- if (!this.json_datas || !this.json_datas.activitys || this.json_datas.activitys.length == 0) {
52
- this.$showMessage("网络故障,请刷新页面")
53
- return
54
- }
55
- for (let i = 0; i < this.json_datas.activitys.length; i++) {
56
- if (this.selectdata.defname == this.json_datas.activitys[i].title) {
57
- jsonData = this.json_datas.activitys[i] // 拿到当前节点的json配置信息
58
- sum++ // 节点名一样的个数
59
- }
60
- }
61
- if (sum == 1) {
62
- this.data = null
63
- this.data = jsonData
64
- // selectdata 填充 data
65
- this.data = Object.assign({}, this.data, this.selectdata)
66
- this.initializeJSON()
67
- } else if (sum == 0) {
68
- this.$showMessage(`没有在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置`)
69
- } else {
70
- this.$showMessage(`在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置:${sum}个`)
71
- }
72
- },
73
- // json配置数据处理
74
- async initializeJSON() {
75
- // 有默认值,value就给默认值,没有就是null
76
- this.data.fields.forEach(item => {
77
- if (!item.value) {
78
- if (item.value === 0) {
79
- item.value = 0
80
- } else {
81
- item.value = null
82
- }
83
- }
84
- if (item.default || item.default == 0) {
85
- item.value = item.default
86
- }
87
- if (this.selectdata[item.field]) {
88
- // 将json字符串格式化赋值给value
89
- if (String(this.selectdata[item.field]).startsWith("{")) {
90
- item.value = JSON.parse(this.selectdata[item.field])
91
- this.selectdata[item.field] = JSON.parse(this.selectdata[item.field])
92
- } else {
93
- item.value = this.selectdata[item.field]
94
- }
95
- } else {
96
- if (this.selectdata[item.field] === 0) {
97
- item.value = 0
98
- }
99
- }
100
-
101
- // datepicker 没有值给当时值
102
- if (item.type === 'datepicker' && !item.value && item.default) {
103
- item.value = new Date().Format('yyyy-MM-dd HH:mm:ss')
104
- }
105
-
106
- // 如果配置类型为select,优先从参数列表获取options
107
- if (item.type === 'select') {
108
- let temp = null
109
-
110
- temp = this.$appdata.getParam(item.label)
111
-
112
- if (temp && temp.length > 0 && item.label) {
113
- item.options = temp
114
- } else {
115
- if (item.paramLabel) {
116
- temp = this.$appdata.getParam(item.paramLabel)
117
- if (temp && temp.length > 0) {
118
- item.options = temp
119
- }
120
- }
121
- }
122
- }
123
- })
124
-
125
- // 控制组件
126
- if (this.data.components) {
127
- this.data.components.forEach(item => {
128
- item.mark = 0
129
- })
130
- }
131
-
132
- // 初始化 fields 可对数据进行特殊处理
133
- this.initializeFields()
134
- console.log("this.data的数据:" + JSON.stringify(this.data))
135
- // 初始化 buttons_fields
136
- for (let i = 0; i < this.data.buttons.length; i++) {
137
- // 下发按钮相关配置
138
- if (this.data.buttons[i].button_name === '下发') {
139
- if (this.data.buttons[i].button_fields && this.data.buttons[i].button_fields.length === 1) {
140
- if (this.data.source){
141
- let http = new HttpResetClass()
142
- let res = await http.load('POST', 'rs/search', {
143
- source: this.data.source,
144
- userid: this.$login.f.id
145
- }, {resolveMsg: null, rejectMsg: null})
146
-
147
- let options = []
148
- for (let i = 0; i < res.data.length; i++) {
149
- options.push(
150
- {
151
- "label": res.data[i].name,
152
- "value": res.data[i].name
153
- }
154
- )
155
- }
156
- this.data.buttons[i].button_fields[0]['options'] = options
157
- } else {
158
- this.$showMessage("请配置获取人员表达式")
159
- }
160
- } else {
161
- this.$showMessage("下发按钮必须满足 当且仅当一个字段")
162
- }
163
- }
164
- if (this.data.buttons[i].button_fields) {
165
- this.data.buttons[i].button_fields.forEach(x => {
166
- // 如果配置类型为select,优先从参数列表获取options
167
- if (x.type === 'select' && this.$appdata.getParam(x.label)) {
168
- x.options = this.$appdata.getParam(x.label).trim()
169
- }
170
- })
171
- }
172
- }
173
-
174
- // onetomany 数据获取
175
- if (this.data.onetomany) {
176
- for (let index = 0; index < this.data.onetomany.length; index++) {
177
- let res = null
178
- if (!this.data.onetomany[index].queryEvent || this.data.onetomany[index].queryEvent === 'default'){
179
- let http = new HttpResetClass()
180
- let data = {
181
- tablename: this.data.onetomany[index].tables[0],
182
- condition: `f_process_id='${this.selectdata.f_process_id}'`
183
- }
184
- res = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
185
- resolveMsg: null,
186
- rejectMsg: 'onetomany查询失败'
187
- })
188
- } else {
189
- res = this[this.data.onetomany[index].queryEvent]()
190
- }
191
-
192
- // 初始化 onetomany
193
- this.data.onetomany[index].rows = res.data
194
-
195
- // 初始化onetomany中的fields
196
- for (let j = 0; j < this.data.onetomany[index].fields.length; j++) {
197
- if (!this.data.onetomany[index].fields[j].value) {
198
- if (this.data.onetomany[index].fields[j].value === 0) {
199
- this.data.onetomany[index].fields[j].value = 0
200
- } else {
201
- this.data.onetomany[index].fields[j].value = null
202
- }
203
- }
204
- if (this.data.onetomany[index].fields[j].default || this.data.onetomany[index].fields[j].default == 0) {
205
- this.data.onetomany[index].fields[j].value = this.data.onetomany[index].fields[j].default
206
- }
207
- // 如果配置类型为select,优先从参数列表获取options
208
- if (this.data.onetomany[index].fields[j].type === 'select') {
209
- let temp = Vue.$appdata.getParam(this.data.onetomany[index].fields[j].label)
210
- if (temp && temp.length > 0) {
211
- this.data.onetomany[index].fields[j].options = temp
212
- }
213
- }
214
- }
215
- }
216
- }
217
-
218
- // 消除双向绑定,避免子组件(显示层)数据更改,父组件(控制层)也更改
219
- let temp = JSON.parse(JSON.stringify(this.data))
220
-
221
- this.show_data = temp
222
- this.$nextTick(() => {
223
- this.showview = true
224
- })
225
- // 查询区域和街道
226
- if (this.selectdata.defname === '报装申请') {
227
-
228
- for (let i = 0; i < this.show_data.fields.length; i++) {
229
-
230
- if (this.show_data.fields[i].label === '区/县') {
231
- let http = new HttpResetClass()
232
- let condition = "f_type = '区'"
233
- let res = await http.load('POST','rs/sql/apply_singleTable',{
234
- data:{tablename:'t_address',condition:condition}},
235
- {resolveMsg: null, rejectMsg: null})
236
- let data = []
237
- let array = []
238
- data = res.data.map(item => {
239
- return item.f_name;
240
- })
241
- for (let q = 0; q < data.length; q++) {
242
- let arraydata = {
243
- 'label': data[q],
244
- 'value': data[q]
245
- }
246
- if (array.length !== 0) {
247
- for (let w = 0; w < array.length; w++) {
248
- if (array[w].label === data[q]) {
249
- break
250
- }
251
- while (w === array.length - 1) {
252
- array.push(arraydata)
253
- break
254
- }
255
- }
256
- } else {
257
- array.push(arraydata)
258
- }
259
- }
260
- this.show_data.fields[i].options = array
261
- console.log("区县选择框数据:" + JSON.stringify(this.show_data.fields[i].options))
262
- }
263
- if (this.show_data.fields[i].label === '片区') {
264
- let http = new HttpResetClass()
265
- let condition = "f_type = '街道'"
266
- let res = await http.load('POST','rs/sql/apply_singleTable',{
267
- data:{tablename:'t_address',condition:condition}},
268
- {resolveMsg: null, rejectMsg: null})
269
- let data = []
270
- let array = []
271
- data = res.data.map(item => {
272
- return item.f_name;
273
- })
274
- for (let q = 0; q < data.length; q++) {
275
- let arraydata = {
276
- 'label': data[q],
277
- 'value': data[q]
278
- }
279
- if (array.length !== 0) {
280
- for (let w = 0; w < array.length; w++) {
281
- if (array[w].label === data[q]) {
282
- break
283
- }
284
- while (w === array.length - 1) {
285
- array.push(arraydata)
286
- break
287
- }
288
- }
289
- } else {
290
- array.push(arraydata)
291
- }
292
- }
293
- this.show_data.fields[i].options = array
294
- console.log("片区选择框数据:" + JSON.stringify(this.show_data.fields[i].options))
295
- }
296
- }
297
- }
298
- },
299
- // 初始化fields值
300
- initializeFields() {
301
-
302
- },
303
- // 金额转大写
304
- smalltoBIG(n) {
305
- let fraction = ['角', '分'];
306
- let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
307
- let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
308
- let head = n < 0 ? '欠' : '';
309
- n = Math.abs(n);
310
-
311
- let s = '';
312
-
313
- for (var i = 0; i < fraction.length; i++) {
314
- s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
315
- }
316
- s = s || '整';
317
- n = Math.floor(n);
318
-
319
- for (var i = 0; i < unit[0].length && n > 0; i++) {
320
- let p = '';
321
- for (var j = 0; j < unit[1].length && n > 0; j++) {
322
- p = digit[n % 10] + unit[1][j] + p;
323
- n = Math.floor(n / 10);
324
- }
325
- s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
326
- }
327
- return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
328
- },
329
- getLableValue(label) {
330
- for (const item of this.show_data.fields) {
331
- if (item.label === label && item.type !== 'number') {
332
- return item.value || ''
333
- }
334
- if (item.label === label && item.type === 'number') {
335
- return item.value || 0
336
- }
337
- }
338
- },
339
- setLabelValue(label, value) {
340
- for (const item of this.show_data.fields) {
341
- if (item.label === label) {
342
- item.value = value
343
- }
344
- }
345
- },
346
- async buttonBefore(model) {
347
- // if (
348
- // model.button.button_name === '提交' &&
349
- // model.defname === '收费' &&
350
- // (
351
- // model.f_apply_type === '散户报建' ||
352
- // model.f_apply_type === '工业户报建' ||
353
- // model.f_apply_type === '商业户报建'
354
- // ) &&
355
- // model.f_surplus_money > 0
356
- // ) {
357
- // throw '未结金额大于0,无法提交!!!'
358
- // }
359
- // if (model.defname === '施工' && model.button.button_name === '提交') {
360
- // let http = new HttpResetClass()
361
- // let data = {
362
- // f_process_id: model.f_process_id
363
- // }
364
- // let res = await http.load('POST', 'rs/sql/notInstalled', {data: data}, {resolveMsg: null, rejectMsg: null})
365
- // if (res.data[0].num > 0) {
366
- // throw `还有${res.data[0].num}户未安装,无法提交`
367
- // }
368
- // }
369
- return model
370
- },
371
- // ========================= 武安 =================================
372
- // 地址类型变化
373
- addressType() {
374
- for (const item of this.show_data.fields) {
375
- if (item.label === '小区' && this.show_data.f_address_type === '民用地址') {
376
- item.required = true
377
- }
378
- if (item.label === '小区' && this.show_data.f_address_type === '特殊地址') {
379
- item.required = false
380
- }
381
- if (
382
- (
383
- item.label === '楼号' ||
384
- item.label === '单元' ||
385
- item.label === '楼层' ||
386
- item.label === '门牌号'
387
- ) && this.show_data.f_address_type === '民用地址'
388
- ) {
389
- item.required = true
390
- item.hidden = false
391
- item.value = null
392
- }
393
- if (
394
- (
395
- item.label === '楼号' ||
396
- item.label === '单元' ||
397
- item.label === '楼层' ||
398
- item.label === '门牌号'
399
- ) && this.show_data.f_address_type === '特殊地址'
400
- ) {
401
- item.required = false
402
- item.hidden = true
403
- item.value = null
404
- }
405
- }
406
- },
407
- //根据区县获取街道
408
- async getStreetList () {
409
- console.log("街道查询")
410
- let data = {
411
- son: '街道',
412
- parent: '区',
413
- condition: `b.f_name = '${this.getLableValue('区/县')}'`
414
- }
415
-
416
- let res = await this.$resetpost(
417
- `rs/sql/getApplyAddress`,
418
- {data: data},
419
- {resolveMsg: null, rejectMsg: '街道查询失败,请重新进入!!!'}
420
- )
421
-
422
- let streetList = []
423
-
424
- res.data.forEach(item => {
425
- streetList.push({
426
- label: item.f_name,
427
- value: item.f_name
428
- })
429
- })
430
-
431
- for (const item of this.show_data.fields) {
432
- if (item.label === '街道') {
433
- item.options = streetList
434
- }
435
- }
436
- },
437
- //根据街道获取小区
438
- async getAreaList () {
439
- let data = {
440
- son: '小区',
441
- parent: '街道',
442
- condition: `b.f_name = '${this.getLableValue('街道')}'`
443
- }
444
-
445
- let res = await this.$resetpost(
446
- `rs/sql/getApplyAddress`,
447
- {data: data},
448
- {resolveMsg: null, rejectMsg: '小区查询失败,请重新进入!!!'}
449
- )
450
-
451
- let areaList = []
452
-
453
- res.data.forEach(item => {
454
- areaList.push({
455
- label: item.f_name,
456
- value: item.f_name
457
- })
458
- })
459
-
460
- for (const item of this.show_data.fields) {
461
- if (item.label === '小区') {
462
- item.options = areaList
463
- }
464
- }
465
- }
466
-
467
- },
468
- events: {
469
-
470
- 'openAddModel'(index) {
471
-
472
- },
473
- // 获取view层button事件/
474
- async 'button'(model) {
475
- // 修改提交数据
476
- model = Object.assign({}, this.selectdata, model)
477
- // 点击重置按钮就重置数据
478
- if (model.button.button_name === '重置') {
479
- this.$dispatch('breakControl', this.data)
480
- return
481
- }
482
- // 联合验收必须上传附件
483
- if (model.defname === '联合验收' && model.button.button_name === '提交') {
484
- let http = new HttpResetClass()
485
- let data = {
486
- tablename: 't_files',
487
- condition: "f_blobid = '" + this.selectdata.f_process_id + "'"
488
- }
489
- let res = await http.load('POST', 'rs/sql/apply_singleTable', {data: data}, {resolveMsg: null, rejectMsg: null})
490
- if (!res.data.length > 0) {
491
- this.$showMessage("您没有上传附件,无法提交!")
492
- return
493
- }
494
- }
495
-
496
- // 提交前置
497
- try {
498
- model = await this.buttonBefore(model)
499
- } catch (e) {
500
- this.$showAlert(e, 'warning', 3000)
501
- return
502
- }
503
-
504
- let http = new HttpResetClass()
505
- let requestData = {
506
- tables: this.data.tables,
507
- start_activity: this.$workflow_vue.start_activity,
508
- model: model,
509
- loginUser: this.$login.f,
510
- workflow_xmlfilename: this.$workflow_vue.workflow_xmlfilename
511
- }
512
- // 下发,提交,保存,退回通用业务后台处理logic
513
- let url = 'rs/logic/ApplyProductService'
514
- let res = await http.load('POST', url, {data: requestData}, {resolveMsg: null, rejectMsg: '数据保存失败'})
515
-
516
- if (res.data.code == 200) {
517
- this.$dispatch('search')
518
- } else {
519
- if (res.data.msg) {
520
- this.$showMessage(res.data.msg)
521
- }
522
- }
523
- },
524
- async 'initializtionView'() {
525
-
526
- // if (this.show_data.defname === '报装申请' && this.show_data.f_apply_type === '工商户报装') {
527
- // await this.getStreetList()
528
- // }
529
- },
530
- // 失去焦点出触发事件
531
- async 'onchange'(index) {
532
- console.log('失去焦点')
533
-
534
- if (this.show_data.defname === '报装申请' && this.show_data.f_apply_type === '工商户报装'){
535
-
536
- if (this.show_data.fields[index].label === '区/县'){
537
- console.log('-----------添加街道-----------')
538
- if (this.show_data.fields[index].value === null || this.show_data.fields[index].value === '') {
539
- this.show_data.fields[index].value = null
540
- this.$showAlert('区/县不能为空!!!', 'warning', 3000)
541
- return
542
- }
543
- this.setLabelValue('街道', '')
544
- await this.getStreetList()
545
- }
546
- if (this.show_data.fields[index].label === '街道') {
547
- this.setLabelValue('小区', '')
548
- await this.getAreaList()
549
- }
550
- }
551
- // 地址拼接
552
- if (
553
- this.show_data.fields[index].label === '区/县' ||
554
- this.show_data.fields[index].label === '街道' ||
555
- this.show_data.fields[index].label === '小区' ||
556
- this.show_data.fields[index].label === '门牌号'
557
- ) {
558
- let f_address = null
559
- f_address = this.getLableValue('区/县') + this.getLableValue('街道') + this.getLableValue('小区') + this.getLableValue('门牌号')
560
- this.setLabelValue('地址',f_address)
561
- }
562
- if (this.show_data.defname === '竣工验收') {
563
- if (this.show_data.fields[index].label === '验收是否合格'){
564
- for (const button of this.show_data.buttons) {
565
- if (this.show_data.fields[index].value === '否' && button.button_name === '退回') {
566
- button.hidden = false
567
- } else {
568
- button.hidden = true
569
- }
570
- }
571
- }
572
- }
573
- if (this.show_data.defname === '合同签订') {
574
- if (this.show_data.fields[index].label === '合同编号') {
575
- if (!isEmpty(this.show_data.fields[index].value)) {
576
- let http = new HttpResetClass()
577
- let data = {
578
- tablename: 't_apply',
579
- condition: `f_contract_number='${this.show_data.fields[index].value}'`
580
- }
581
- let res = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
582
- resolveMsg: null,
583
- rejectMsg: '合同编号查重失败'
584
- })
585
- if (res.data.length > 0) {
586
- this.show_data.fields[index].value = null
587
- this.$showAlert('合同编号已存在!!!', 'warning', 3000)
588
- }
589
- }
590
- }
591
- if (this.show_data.fields[index].label === '单价(户)') {
592
- let http = new HttpResetClass()
593
- let data = {
594
- num1: this.getLableValue(this.show_data.fields[index].label),
595
- num2: this.getLableValue('户数'),
596
- operator: '*'
597
- }
598
- try {
599
- let res = await http.load('POST', 'rs/logic/compute', {data: data}, {
600
- resolveMsg: null,
601
- rejectMsg: null
602
- })
603
- data = {
604
- num1: res.data,
605
- num2: this.getLableValue('其他费用'),
606
- operator: '+'
607
- }
608
- res = await http.load('POST', 'rs/logic/compute', {data: data}, {
609
- resolveMsg: null,
610
- rejectMsg: null
611
- })
612
- this.setLabelValue('合同金额',res.data)
613
- } catch (e) {
614
- this.$showAlert(e.data.msg, 'warning', 3000)
615
- }
616
- }
617
- if (this.show_data.fields[index].label === '其他费用') {
618
- let http = new HttpResetClass()
619
- let data = {
620
- num1: this.getLableValue(this.show_data.fields[index].label),
621
- num2: this.getLableValue('合同金额'),
622
- operator: '+'
623
- }
624
- try {
625
- let res = await http.load('POST', 'rs/logic/compute', {data: data}, {
626
- resolveMsg: null,
627
- rejectMsg: null
628
- })
629
- this.setLabelValue('合同金额',res.data)
630
- } catch (e) {
631
- this.$showAlert(e.data.msg, 'warning', 3000)
632
- }
633
- }
634
- }
635
- // ========================= 武安 =================================
636
- // 号码检测
637
- if (this.show_data.fields[index].label === '电话号码') {
638
- let phone = this.show_data.fields[index].value
639
- // 电话号码效验
640
- if (!(/^1[3456789]\d{9}$/.test(phone))) {
641
- this.show_data.fields[index].value = ""
642
- this.$showAlert('电话号码格式不正确,请重新输入。', 'info', 2000)
643
- }
644
- }
645
- //时间提醒
646
- if (this.show_data.fields[index].label.includes("时间") || this.show_data.fields[index].type === 'datepicker') {
647
- let setTime = this.show_data.fields[index].value
648
- let nowTime = new Date().Format("yyyy-MM-dd HH:mm:ss")
649
- if (nowTime >= setTime) {
650
- this.$showMessage("请注意,当前节点时间/工期已过期!")
651
- }
652
- }
653
- },
654
- // input值发生变化
655
- async 'oninput'(index) {
656
-
657
- },
658
- // 错误事件
659
- error_check(index) {
660
- // 时间格式检测
661
- if (this.show_data.fields[index].type == 'datepicker') {
662
- let dateRe = new RegExp(/(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/)
663
- let datetimeRe = new RegExp(/((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\s([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/)
664
- if (datetimeRe.test(this.show_data.fields[index].value) && this.show_data.fields[index].value.trim().length == 19 && this.show_data.fields[index].fullsize) {
665
- this.show_data.fields[index].error.flag = false
666
- } else if (dateRe.test(this.show_data.fields[index].value) && this.show_data.fields[index].value.trim().length == 10) {
667
- this.show_data.fields[index].error.flag = false
668
- } else {
669
- if (this.show_data.fields[index].fullsize) {
670
- this.show_data.fields[index].error = Object.assign({}, this.show_data.fields[index].error)
671
- this.show_data.fields[index].error.msg = this.show_data.fields[index].error.msg ? this.show_data.fields[index].error.msg : '时间格式如:2019-05-02 09:23:21'
672
- this.$showAlert(this.show_data.fields[index].label + '格式错误' + this.show_data.fields[index].error.msg, 'warning', 3000)
673
- this.show_data.fields[index].error.flag = true
674
- this.show_data.fields[index].value = ''
675
- } else {
676
- this.show_data.fields[index].error = Object.assign({}, this.show_data.fields[index].error)
677
- this.show_data.fields[index].error.msg = this.show_data.fields[index].error.msg ? this.show_data.fields[index].error.msg : '时间格式如:2019-05-02'
678
- this.$showAlert(this.show_data.fields[index].label + '格式错误' + this.show_data.fields[index].error.msg, 'warning', 3000)
679
- this.show_data.fields[index].error.flag = true
680
- this.show_data.fields[index].value = ''
681
- }
682
-
683
- }
684
- }
685
- },
686
- // onetomany模态框默认监听监听事件
687
- async 'onetomanydelete'(i, j) {
688
- console.log('默认删除')
689
- let http = new HttpResetClass()
690
- let data = {
691
- table: this.show_data.onetomany[i].tables[0],
692
- row: this.show_data.onetomany[i].rows[j]
693
- }
694
- let res = await http.load('POST', 'rs/logic/onetomanyDefaultDeleteEvent', {data: data}, {
695
- resolveMsg: null,
696
- rejectMsg: '删除失败'
697
- })
698
-
699
- if (res.data <= 0){
700
- this.$showMessage('删除失败')
701
- return
702
- }
703
-
704
- this.$dispatch('breakControl', this.show_data)
705
- },
706
- async 'onetomanyadd'(index) {
707
-
708
- let data = {
709
- f_process_id : this.show_data.f_process_id
710
- }
711
- this.show_data.onetomany[index].fields.forEach(item => {
712
- data[item.field] = item.value
713
- })
714
- let res = await this.$resetpost(
715
- `rs/entity/${this.show_data.onetomany[index].tables[0]}`,
716
- data
717
- )
718
- this.$dispatch('breakControl', this.show_data)
719
- },
720
- async 'onetomanyupdate'(i, j) {
721
- let onetomany = this.show_data.onetomany[i]
722
- let data = onetomany.rows[j]
723
-
724
- onetomany.fields.forEach(item => {
725
- data[item.field] = item.value
726
- })
727
- let res = await this.$resetpost(
728
- `rs/entity/${this.show_data.onetomany[i].tables[0]}`,
729
- data
730
- )
731
-
732
- this.$dispatch('breakControl', this.show_data)
733
- },
734
- // onetomany模态框监听事件
735
- async 'onchange_modal'(index, i) {
736
- },
737
- async 'oninput_modal'(index, i) {
738
- }
739
- },
740
- watch: {
741
- }
742
- }
743
- </script>
744
- <style scoped>
745
- /*清除model中的浮动*/
746
- .clearfix:after,.clearfix:before{
747
- display: table;
748
- }
749
- .clearfix:after{
750
- clear: both;
751
- }
752
- </style>
1
+ <template>
2
+
3
+ <div class="auto clearfix">
4
+ <show-back-reason :selectdata="show_data"></show-back-reason>
5
+ </div>
6
+
7
+ <service-view v-ref:serviceview :data="show_data" v-if="showview"></service-view>
8
+
9
+ </template>
10
+ <script>
11
+ import Vue from 'vue'
12
+ import {HttpResetClass} from 'vue-client'
13
+ import {getNowDate,isEmpty} from '../../../Util'
14
+ // Date格式化
15
+ Date.prototype.Format = function (fmt) {
16
+ var o = {
17
+ "M+": this.getMonth() + 1, //月份
18
+ "d+": this.getDate(), //日
19
+ "H+": this.getHours(), //小时
20
+ "m+": this.getMinutes(), //分
21
+ "s+": this.getSeconds(), //秒
22
+ "q+": Math.floor((this.getMonth() + 3) / 3), //季度
23
+ "S": this.getMilliseconds() //毫秒
24
+ };
25
+ if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
26
+ for (var k in o)
27
+ if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
28
+ return fmt;
29
+ }
30
+
31
+ export default {
32
+ title: '报建流程业务控制层',
33
+ props: ['selectdata'],
34
+ data() {
35
+ return {
36
+ data: null, // 数据库数据,json配置文件数据的数据集合
37
+ json_datas: null, // Json配置文件集合
38
+ showview: false, // 控制显示service-view组件
39
+ show_data: null // 给view层显示的数据
40
+ }
41
+ },
42
+ created () {
43
+ this.refurbish()
44
+ },
45
+ methods: {
46
+ // 组件初始化操作
47
+ refurbish() {
48
+ this.json_datas = this.$workflow_vue
49
+ let sum = 0
50
+ let jsonData = {}
51
+ if (!this.json_datas || !this.json_datas.activitys || this.json_datas.activitys.length == 0) {
52
+ this.$showMessage("网络故障,请刷新页面")
53
+ return
54
+ }
55
+ for (let i = 0; i < this.json_datas.activitys.length; i++) {
56
+ if (this.selectdata.defname == this.json_datas.activitys[i].title) {
57
+ jsonData = this.json_datas.activitys[i] // 拿到当前节点的json配置信息
58
+ sum++ // 节点名一样的个数
59
+ }
60
+ }
61
+ if (sum == 1) {
62
+ this.data = null
63
+ this.data = jsonData
64
+ // selectdata 填充 data
65
+ this.data = Object.assign({}, this.data, this.selectdata)
66
+ this.initializeJSON()
67
+ } else if (sum == 0) {
68
+ this.$showMessage(`没有在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置`)
69
+ } else {
70
+ this.$showMessage(`在JSON配置文件中找到活动名为:(${this.selectdata.defname})的节点配置:${sum}个`)
71
+ }
72
+ },
73
+ // json配置数据处理
74
+ async initializeJSON() {
75
+ // 有默认值,value就给默认值,没有就是null
76
+ this.data.fields.forEach(item => {
77
+ if (!item.value) {
78
+ if (item.value === 0) {
79
+ item.value = 0
80
+ } else {
81
+ item.value = null
82
+ }
83
+ }
84
+ if (item.default || item.default == 0) {
85
+ item.value = item.default
86
+ }
87
+ if (this.selectdata[item.field]) {
88
+ // 将json字符串格式化赋值给value
89
+ if (String(this.selectdata[item.field]).startsWith("{")) {
90
+ item.value = JSON.parse(this.selectdata[item.field])
91
+ this.selectdata[item.field] = JSON.parse(this.selectdata[item.field])
92
+ } else {
93
+ item.value = this.selectdata[item.field]
94
+ }
95
+ } else {
96
+ if (this.selectdata[item.field] === 0) {
97
+ item.value = 0
98
+ }
99
+ }
100
+
101
+ // datepicker 没有值给当时值
102
+ if (item.type === 'datepicker' && !item.value && item.default) {
103
+ item.value = new Date().Format('yyyy-MM-dd HH:mm:ss')
104
+ }
105
+
106
+ // 如果配置类型为select,优先从参数列表获取options
107
+ if (item.type === 'select') {
108
+ let temp = null
109
+
110
+ temp = this.$appdata.getParam(item.label)
111
+
112
+ if (temp && temp.length > 0 && item.label) {
113
+ item.options = temp
114
+ } else {
115
+ if (item.paramLabel) {
116
+ temp = this.$appdata.getParam(item.paramLabel)
117
+ if (temp && temp.length > 0) {
118
+ item.options = temp
119
+ }
120
+ }
121
+ }
122
+ }
123
+ })
124
+
125
+ // 控制组件
126
+ if (this.data.components) {
127
+ this.data.components.forEach(item => {
128
+ item.mark = 0
129
+ })
130
+ }
131
+
132
+ // 初始化 fields 可对数据进行特殊处理
133
+ this.initializeFields()
134
+ console.log("this.data的数据:" + JSON.stringify(this.data))
135
+ // 初始化 buttons_fields
136
+ for (let i = 0; i < this.data.buttons.length; i++) {
137
+ // 下发按钮相关配置
138
+ if (this.data.buttons[i].button_name === '下发') {
139
+ if (this.data.buttons[i].button_fields && this.data.buttons[i].button_fields.length === 1) {
140
+ if (this.data.source){
141
+ let http = new HttpResetClass()
142
+ let res = await http.load('POST', 'rs/search', {
143
+ source: this.data.source,
144
+ userid: this.$login.f.id
145
+ }, {resolveMsg: null, rejectMsg: null})
146
+
147
+ let options = []
148
+ for (let i = 0; i < res.data.length; i++) {
149
+ options.push(
150
+ {
151
+ "label": res.data[i].name,
152
+ "value": res.data[i].name
153
+ }
154
+ )
155
+ }
156
+ this.data.buttons[i].button_fields[0]['options'] = options
157
+ } else {
158
+ this.$showMessage("请配置获取人员表达式")
159
+ }
160
+ } else {
161
+ this.$showMessage("下发按钮必须满足 当且仅当一个字段")
162
+ }
163
+ }
164
+ if (this.data.buttons[i].button_fields) {
165
+ this.data.buttons[i].button_fields.forEach(x => {
166
+ // 如果配置类型为select,优先从参数列表获取options
167
+ if (x.type === 'select' && this.$appdata.getParam(x.label)) {
168
+ x.options = this.$appdata.getParam(x.label).trim()
169
+ }
170
+ })
171
+ }
172
+ }
173
+
174
+ // onetomany 数据获取
175
+ if (this.data.onetomany) {
176
+ for (let index = 0; index < this.data.onetomany.length; index++) {
177
+ let res = null
178
+ if (!this.data.onetomany[index].queryEvent || this.data.onetomany[index].queryEvent === 'default'){
179
+ let http = new HttpResetClass()
180
+ let data = {
181
+ tablename: this.data.onetomany[index].tables[0],
182
+ condition: `f_process_id='${this.selectdata.f_process_id}'`
183
+ }
184
+ res = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
185
+ resolveMsg: null,
186
+ rejectMsg: 'onetomany查询失败'
187
+ })
188
+ } else {
189
+ res = this[this.data.onetomany[index].queryEvent]()
190
+ }
191
+
192
+ // 初始化 onetomany
193
+ this.data.onetomany[index].rows = res.data
194
+
195
+ // 初始化onetomany中的fields
196
+ for (let j = 0; j < this.data.onetomany[index].fields.length; j++) {
197
+ if (!this.data.onetomany[index].fields[j].value) {
198
+ if (this.data.onetomany[index].fields[j].value === 0) {
199
+ this.data.onetomany[index].fields[j].value = 0
200
+ } else {
201
+ this.data.onetomany[index].fields[j].value = null
202
+ }
203
+ }
204
+ if (this.data.onetomany[index].fields[j].default || this.data.onetomany[index].fields[j].default == 0) {
205
+ this.data.onetomany[index].fields[j].value = this.data.onetomany[index].fields[j].default
206
+ }
207
+ // 如果配置类型为select,优先从参数列表获取options
208
+ if (this.data.onetomany[index].fields[j].type === 'select') {
209
+ let temp = Vue.$appdata.getParam(this.data.onetomany[index].fields[j].label)
210
+ if (temp && temp.length > 0) {
211
+ this.data.onetomany[index].fields[j].options = temp
212
+ }
213
+ }
214
+ }
215
+ }
216
+ }
217
+
218
+ // 消除双向绑定,避免子组件(显示层)数据更改,父组件(控制层)也更改
219
+ let temp = JSON.parse(JSON.stringify(this.data))
220
+
221
+ this.show_data = temp
222
+ this.$nextTick(() => {
223
+ this.showview = true
224
+ })
225
+ // 查询区域和街道
226
+ if (this.selectdata.defname === '报装申请') {
227
+
228
+ for (let i = 0; i < this.show_data.fields.length; i++) {
229
+
230
+ if (this.show_data.fields[i].label === '区/县') {
231
+ let http = new HttpResetClass()
232
+ let condition = "f_type = '区'"
233
+ let res = await http.load('POST','rs/sql/apply_singleTable',{
234
+ data:{tablename:'t_address',condition:condition}},
235
+ {resolveMsg: null, rejectMsg: null})
236
+ let data = []
237
+ let array = []
238
+ data = res.data.map(item => {
239
+ return item.f_name;
240
+ })
241
+ for (let q = 0; q < data.length; q++) {
242
+ let arraydata = {
243
+ 'label': data[q],
244
+ 'value': data[q]
245
+ }
246
+ if (array.length !== 0) {
247
+ for (let w = 0; w < array.length; w++) {
248
+ if (array[w].label === data[q]) {
249
+ break
250
+ }
251
+ while (w === array.length - 1) {
252
+ array.push(arraydata)
253
+ break
254
+ }
255
+ }
256
+ } else {
257
+ array.push(arraydata)
258
+ }
259
+ }
260
+ this.show_data.fields[i].options = array
261
+ console.log("区县选择框数据:" + JSON.stringify(this.show_data.fields[i].options))
262
+ }
263
+ if (this.show_data.fields[i].label === '片区') {
264
+ let http = new HttpResetClass()
265
+ let condition = "f_type = '街道'"
266
+ let res = await http.load('POST','rs/sql/apply_singleTable',{
267
+ data:{tablename:'t_address',condition:condition}},
268
+ {resolveMsg: null, rejectMsg: null})
269
+ let data = []
270
+ let array = []
271
+ data = res.data.map(item => {
272
+ return item.f_name;
273
+ })
274
+ for (let q = 0; q < data.length; q++) {
275
+ let arraydata = {
276
+ 'label': data[q],
277
+ 'value': data[q]
278
+ }
279
+ if (array.length !== 0) {
280
+ for (let w = 0; w < array.length; w++) {
281
+ if (array[w].label === data[q]) {
282
+ break
283
+ }
284
+ while (w === array.length - 1) {
285
+ array.push(arraydata)
286
+ break
287
+ }
288
+ }
289
+ } else {
290
+ array.push(arraydata)
291
+ }
292
+ }
293
+ this.show_data.fields[i].options = array
294
+ console.log("片区选择框数据:" + JSON.stringify(this.show_data.fields[i].options))
295
+ }
296
+ }
297
+ }
298
+ },
299
+ // 初始化fields值
300
+ initializeFields() {
301
+
302
+ },
303
+ // 金额转大写
304
+ smalltoBIG(n) {
305
+ let fraction = ['角', '分'];
306
+ let digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
307
+ let unit = [['元', '万', '亿'], ['', '拾', '佰', '仟']];
308
+ let head = n < 0 ? '欠' : '';
309
+ n = Math.abs(n);
310
+
311
+ let s = '';
312
+
313
+ for (var i = 0; i < fraction.length; i++) {
314
+ s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
315
+ }
316
+ s = s || '整';
317
+ n = Math.floor(n);
318
+
319
+ for (var i = 0; i < unit[0].length && n > 0; i++) {
320
+ let p = '';
321
+ for (var j = 0; j < unit[1].length && n > 0; j++) {
322
+ p = digit[n % 10] + unit[1][j] + p;
323
+ n = Math.floor(n / 10);
324
+ }
325
+ s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
326
+ }
327
+ return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整')
328
+ },
329
+ getLableValue(label) {
330
+ for (const item of this.show_data.fields) {
331
+ if (item.label === label && item.type !== 'number') {
332
+ return item.value || ''
333
+ }
334
+ if (item.label === label && item.type === 'number') {
335
+ return item.value || 0
336
+ }
337
+ }
338
+ },
339
+ setLabelValue(label, value) {
340
+ for (const item of this.show_data.fields) {
341
+ if (item.label === label) {
342
+ item.value = value
343
+ }
344
+ }
345
+ },
346
+ async buttonBefore(model) {
347
+ // if (
348
+ // model.button.button_name === '提交' &&
349
+ // model.defname === '收费' &&
350
+ // (
351
+ // model.f_apply_type === '散户报建' ||
352
+ // model.f_apply_type === '工业户报建' ||
353
+ // model.f_apply_type === '商业户报建'
354
+ // ) &&
355
+ // model.f_surplus_money > 0
356
+ // ) {
357
+ // throw '未结金额大于0,无法提交!!!'
358
+ // }
359
+ // if (model.defname === '施工' && model.button.button_name === '提交') {
360
+ // let http = new HttpResetClass()
361
+ // let data = {
362
+ // f_process_id: model.f_process_id
363
+ // }
364
+ // let res = await http.load('POST', 'rs/sql/notInstalled', {data: data}, {resolveMsg: null, rejectMsg: null})
365
+ // if (res.data[0].num > 0) {
366
+ // throw `还有${res.data[0].num}户未安装,无法提交`
367
+ // }
368
+ // }
369
+ return model
370
+ },
371
+ // ========================= 武安 =================================
372
+ // 地址类型变化
373
+ addressType() {
374
+ for (const item of this.show_data.fields) {
375
+ if (item.label === '小区' && this.show_data.f_address_type === '民用地址') {
376
+ item.required = true
377
+ }
378
+ if (item.label === '小区' && this.show_data.f_address_type === '特殊地址') {
379
+ item.required = false
380
+ }
381
+ if (
382
+ (
383
+ item.label === '楼号' ||
384
+ item.label === '单元' ||
385
+ item.label === '楼层' ||
386
+ item.label === '门牌号'
387
+ ) && this.show_data.f_address_type === '民用地址'
388
+ ) {
389
+ item.required = true
390
+ item.hidden = false
391
+ item.value = null
392
+ }
393
+ if (
394
+ (
395
+ item.label === '楼号' ||
396
+ item.label === '单元' ||
397
+ item.label === '楼层' ||
398
+ item.label === '门牌号'
399
+ ) && this.show_data.f_address_type === '特殊地址'
400
+ ) {
401
+ item.required = false
402
+ item.hidden = true
403
+ item.value = null
404
+ }
405
+ }
406
+ },
407
+ //根据区县获取街道
408
+ async getStreetList () {
409
+ console.log("街道查询")
410
+ let data = {
411
+ son: '街道',
412
+ parent: '区',
413
+ condition: `b.f_name = '${this.getLableValue('区/县')}'`
414
+ }
415
+
416
+ let res = await this.$resetpost(
417
+ `rs/sql/getApplyAddress`,
418
+ {data: data},
419
+ {resolveMsg: null, rejectMsg: '街道查询失败,请重新进入!!!'}
420
+ )
421
+
422
+ let streetList = []
423
+
424
+ res.data.forEach(item => {
425
+ streetList.push({
426
+ label: item.f_name,
427
+ value: item.f_name
428
+ })
429
+ })
430
+
431
+ for (const item of this.show_data.fields) {
432
+ if (item.label === '街道') {
433
+ item.options = streetList
434
+ }
435
+ }
436
+ },
437
+ //根据街道获取小区
438
+ async getAreaList () {
439
+ let data = {
440
+ son: '小区',
441
+ parent: '街道',
442
+ condition: `b.f_name = '${this.getLableValue('街道')}'`
443
+ }
444
+
445
+ let res = await this.$resetpost(
446
+ `rs/sql/getApplyAddress`,
447
+ {data: data},
448
+ {resolveMsg: null, rejectMsg: '小区查询失败,请重新进入!!!'}
449
+ )
450
+
451
+ let areaList = []
452
+
453
+ res.data.forEach(item => {
454
+ areaList.push({
455
+ label: item.f_name,
456
+ value: item.f_name
457
+ })
458
+ })
459
+
460
+ for (const item of this.show_data.fields) {
461
+ if (item.label === '小区') {
462
+ item.options = areaList
463
+ }
464
+ }
465
+ }
466
+
467
+ },
468
+ events: {
469
+
470
+ 'openAddModel'(index) {
471
+
472
+ },
473
+ // 获取view层button事件/
474
+ async 'button'(model) {
475
+ // 修改提交数据
476
+ model = Object.assign({}, this.selectdata, model)
477
+ // 点击重置按钮就重置数据
478
+ if (model.button.button_name === '重置') {
479
+ this.$dispatch('breakControl', this.data)
480
+ return
481
+ }
482
+ // 联合验收必须上传附件
483
+ if (model.defname === '联合验收' && model.button.button_name === '提交') {
484
+ let http = new HttpResetClass()
485
+ let data = {
486
+ tablename: 't_files',
487
+ condition: "f_blobid = '" + this.selectdata.f_process_id + "'"
488
+ }
489
+ let res = await http.load('POST', 'rs/sql/apply_singleTable', {data: data}, {resolveMsg: null, rejectMsg: null})
490
+ if (!res.data.length > 0) {
491
+ this.$showMessage("您没有上传附件,无法提交!")
492
+ return
493
+ }
494
+ }
495
+
496
+ // 提交前置
497
+ try {
498
+ model = await this.buttonBefore(model)
499
+ } catch (e) {
500
+ this.$showAlert(e, 'warning', 3000)
501
+ return
502
+ }
503
+
504
+ let http = new HttpResetClass()
505
+ let requestData = {
506
+ tables: this.data.tables,
507
+ start_activity: this.$workflow_vue.start_activity,
508
+ model: model,
509
+ loginUser: this.$login.f,
510
+ workflow_xmlfilename: this.$workflow_vue.workflow_xmlfilename
511
+ }
512
+ // 下发,提交,保存,退回通用业务后台处理logic
513
+ let url = 'rs/logic/ApplyProductService'
514
+ let res = await http.load('POST', url, {data: requestData}, {resolveMsg: null, rejectMsg: '数据保存失败'})
515
+
516
+ if (res.data.code == 200) {
517
+ this.$dispatch('search')
518
+ } else {
519
+ if (res.data.msg) {
520
+ this.$showMessage(res.data.msg)
521
+ }
522
+ }
523
+ },
524
+ async 'initializtionView'() {
525
+
526
+ // if (this.show_data.defname === '报装申请' && this.show_data.f_apply_type === '工商户报装') {
527
+ // await this.getStreetList()
528
+ // }
529
+ },
530
+ // 失去焦点出触发事件
531
+ async 'onchange'(index) {
532
+ console.log('失去焦点')
533
+
534
+ if (this.show_data.defname === '报装申请' && this.show_data.f_apply_type === '工商户报装'){
535
+
536
+ if (this.show_data.fields[index].label === '区/县'){
537
+ console.log('-----------添加街道-----------')
538
+ if (this.show_data.fields[index].value === null || this.show_data.fields[index].value === '') {
539
+ this.show_data.fields[index].value = null
540
+ this.$showAlert('区/县不能为空!!!', 'warning', 3000)
541
+ return
542
+ }
543
+ this.setLabelValue('街道', '')
544
+ await this.getStreetList()
545
+ }
546
+ if (this.show_data.fields[index].label === '街道') {
547
+ this.setLabelValue('小区', '')
548
+ await this.getAreaList()
549
+ }
550
+ }
551
+ // 地址拼接
552
+ if (
553
+ this.show_data.fields[index].label === '区/县' ||
554
+ this.show_data.fields[index].label === '街道' ||
555
+ this.show_data.fields[index].label === '小区' ||
556
+ this.show_data.fields[index].label === '门牌号'
557
+ ) {
558
+ let f_address = null
559
+ f_address = this.getLableValue('区/县') + this.getLableValue('街道') + this.getLableValue('小区') + this.getLableValue('门牌号')
560
+ this.setLabelValue('地址',f_address)
561
+ }
562
+ if (this.show_data.defname === '竣工验收') {
563
+ if (this.show_data.fields[index].label === '验收是否合格'){
564
+ for (const button of this.show_data.buttons) {
565
+ if (this.show_data.fields[index].value === '否' && button.button_name === '退回') {
566
+ button.hidden = false
567
+ } else {
568
+ button.hidden = true
569
+ }
570
+ }
571
+ }
572
+ }
573
+ if (this.show_data.defname === '合同签订') {
574
+ if (this.show_data.fields[index].label === '合同编号') {
575
+ if (!isEmpty(this.show_data.fields[index].value)) {
576
+ let http = new HttpResetClass()
577
+ let data = {
578
+ tablename: 't_apply',
579
+ condition: `f_contract_number='${this.show_data.fields[index].value}'`
580
+ }
581
+ let res = await http.load('POST', 'rs/sql/singleTable', {data: data}, {
582
+ resolveMsg: null,
583
+ rejectMsg: '合同编号查重失败'
584
+ })
585
+ if (res.data.length > 0) {
586
+ this.show_data.fields[index].value = null
587
+ this.$showAlert('合同编号已存在!!!', 'warning', 3000)
588
+ }
589
+ }
590
+ }
591
+ if (this.show_data.fields[index].label === '单价(户)') {
592
+ let http = new HttpResetClass()
593
+ let data = {
594
+ num1: this.getLableValue(this.show_data.fields[index].label),
595
+ num2: this.getLableValue('户数'),
596
+ operator: '*'
597
+ }
598
+ try {
599
+ let res = await http.load('POST', 'rs/logic/compute', {data: data}, {
600
+ resolveMsg: null,
601
+ rejectMsg: null
602
+ })
603
+ data = {
604
+ num1: res.data,
605
+ num2: this.getLableValue('其他费用'),
606
+ operator: '+'
607
+ }
608
+ res = await http.load('POST', 'rs/logic/compute', {data: data}, {
609
+ resolveMsg: null,
610
+ rejectMsg: null
611
+ })
612
+ this.setLabelValue('合同金额',res.data)
613
+ } catch (e) {
614
+ this.$showAlert(e.data.msg, 'warning', 3000)
615
+ }
616
+ }
617
+ if (this.show_data.fields[index].label === '其他费用') {
618
+ let http = new HttpResetClass()
619
+ let data = {
620
+ num1: this.getLableValue(this.show_data.fields[index].label),
621
+ num2: this.getLableValue('合同金额'),
622
+ operator: '+'
623
+ }
624
+ try {
625
+ let res = await http.load('POST', 'rs/logic/compute', {data: data}, {
626
+ resolveMsg: null,
627
+ rejectMsg: null
628
+ })
629
+ this.setLabelValue('合同金额',res.data)
630
+ } catch (e) {
631
+ this.$showAlert(e.data.msg, 'warning', 3000)
632
+ }
633
+ }
634
+ }
635
+ // ========================= 武安 =================================
636
+ // 号码检测
637
+ if (this.show_data.fields[index].label === '电话号码') {
638
+ let phone = this.show_data.fields[index].value
639
+ // 电话号码效验
640
+ if (!(/^1[3456789]\d{9}$/.test(phone))) {
641
+ this.show_data.fields[index].value = ""
642
+ this.$showAlert('电话号码格式不正确,请重新输入。', 'info', 2000)
643
+ }
644
+ }
645
+ //时间提醒
646
+ if (this.show_data.fields[index].label.includes("时间") || this.show_data.fields[index].type === 'datepicker') {
647
+ let setTime = this.show_data.fields[index].value
648
+ let nowTime = new Date().Format("yyyy-MM-dd HH:mm:ss")
649
+ if (nowTime >= setTime) {
650
+ this.$showMessage("请注意,当前节点时间/工期已过期!")
651
+ }
652
+ }
653
+ },
654
+ // input值发生变化
655
+ async 'oninput'(index) {
656
+
657
+ },
658
+ // 错误事件
659
+ error_check(index) {
660
+ // 时间格式检测
661
+ if (this.show_data.fields[index].type == 'datepicker') {
662
+ let dateRe = new RegExp(/(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$/)
663
+ let datetimeRe = new RegExp(/((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\s([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/)
664
+ if (datetimeRe.test(this.show_data.fields[index].value) && this.show_data.fields[index].value.trim().length == 19 && this.show_data.fields[index].fullsize) {
665
+ this.show_data.fields[index].error.flag = false
666
+ } else if (dateRe.test(this.show_data.fields[index].value) && this.show_data.fields[index].value.trim().length == 10) {
667
+ this.show_data.fields[index].error.flag = false
668
+ } else {
669
+ if (this.show_data.fields[index].fullsize) {
670
+ this.show_data.fields[index].error = Object.assign({}, this.show_data.fields[index].error)
671
+ this.show_data.fields[index].error.msg = this.show_data.fields[index].error.msg ? this.show_data.fields[index].error.msg : '时间格式如:2019-05-02 09:23:21'
672
+ this.$showAlert(this.show_data.fields[index].label + '格式错误' + this.show_data.fields[index].error.msg, 'warning', 3000)
673
+ this.show_data.fields[index].error.flag = true
674
+ this.show_data.fields[index].value = ''
675
+ } else {
676
+ this.show_data.fields[index].error = Object.assign({}, this.show_data.fields[index].error)
677
+ this.show_data.fields[index].error.msg = this.show_data.fields[index].error.msg ? this.show_data.fields[index].error.msg : '时间格式如:2019-05-02'
678
+ this.$showAlert(this.show_data.fields[index].label + '格式错误' + this.show_data.fields[index].error.msg, 'warning', 3000)
679
+ this.show_data.fields[index].error.flag = true
680
+ this.show_data.fields[index].value = ''
681
+ }
682
+
683
+ }
684
+ }
685
+ },
686
+ // onetomany模态框默认监听监听事件
687
+ async 'onetomanydelete'(i, j) {
688
+ console.log('默认删除')
689
+ let http = new HttpResetClass()
690
+ let data = {
691
+ table: this.show_data.onetomany[i].tables[0],
692
+ row: this.show_data.onetomany[i].rows[j]
693
+ }
694
+ let res = await http.load('POST', 'rs/logic/onetomanyDefaultDeleteEvent', {data: data}, {
695
+ resolveMsg: null,
696
+ rejectMsg: '删除失败'
697
+ })
698
+
699
+ if (res.data <= 0){
700
+ this.$showMessage('删除失败')
701
+ return
702
+ }
703
+
704
+ this.$dispatch('breakControl', this.show_data)
705
+ },
706
+ async 'onetomanyadd'(index) {
707
+
708
+ let data = {
709
+ f_process_id : this.show_data.f_process_id
710
+ }
711
+ this.show_data.onetomany[index].fields.forEach(item => {
712
+ data[item.field] = item.value
713
+ })
714
+ let res = await this.$resetpost(
715
+ `rs/entity/${this.show_data.onetomany[index].tables[0]}`,
716
+ data
717
+ )
718
+ this.$dispatch('breakControl', this.show_data)
719
+ },
720
+ async 'onetomanyupdate'(i, j) {
721
+ let onetomany = this.show_data.onetomany[i]
722
+ let data = onetomany.rows[j]
723
+
724
+ onetomany.fields.forEach(item => {
725
+ data[item.field] = item.value
726
+ })
727
+ let res = await this.$resetpost(
728
+ `rs/entity/${this.show_data.onetomany[i].tables[0]}`,
729
+ data
730
+ )
731
+
732
+ this.$dispatch('breakControl', this.show_data)
733
+ },
734
+ // onetomany模态框监听事件
735
+ async 'onchange_modal'(index, i) {
736
+ },
737
+ async 'oninput_modal'(index, i) {
738
+ }
739
+ },
740
+ watch: {
741
+ }
742
+ }
743
+ </script>
744
+ <style scoped>
745
+ /*清除model中的浮动*/
746
+ .clearfix:after,.clearfix:before{
747
+ display: table;
748
+ }
749
+ .clearfix:after{
750
+ clear: both;
751
+ }
752
+ </style>