kz-ui-base 1.0.0

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 (288) hide show
  1. package/index.js +5 -0
  2. package/kztool/css/10.96cad523.css +1 -0
  3. package/kztool/css/11.e4c864cd.css +1 -0
  4. package/kztool/css/12.647fccce.css +1 -0
  5. package/kztool/css/13.65952a1f.css +1 -0
  6. package/kztool/css/14.dd36c45f.css +1 -0
  7. package/kztool/css/15.832c7deb.css +1 -0
  8. package/kztool/css/16.8b271d59.css +1 -0
  9. package/kztool/css/17.0e84559e.css +1 -0
  10. package/kztool/css/18.832c7deb.css +1 -0
  11. package/kztool/css/19.6a3d2dce.css +1 -0
  12. package/kztool/css/2.f1342bd9.css +1 -0
  13. package/kztool/css/20.bb41fc34.css +1 -0
  14. package/kztool/css/21.ed73c08f.css +1 -0
  15. package/kztool/css/22.e894eb6f.css +1 -0
  16. package/kztool/css/23.57aa83b4.css +1 -0
  17. package/kztool/css/25.5f134180.css +1 -0
  18. package/kztool/css/26.832c7deb.css +1 -0
  19. package/kztool/css/4.a42922b4.css +1 -0
  20. package/kztool/css/6.2fd4b699.css +1 -0
  21. package/kztool/css/7.9be14673.css +21 -0
  22. package/kztool/css/9.9d93e54d.css +22 -0
  23. package/kztool/demo.html +10 -0
  24. package/kztool/img/401.089007e7.gif +0 -0
  25. package/kztool/img/404.a57b6f31.png +0 -0
  26. package/kztool/img/404.cb2515ac.svg +1 -0
  27. package/kztool/img/404_cloud.0f4bc32b.png +0 -0
  28. package/kztool/img/bug.f34b1328.svg +1 -0
  29. package/kztool/img/build.afff0ba4.svg +1 -0
  30. package/kztool/img/button.43a072f1.svg +1 -0
  31. package/kztool/img/cascader.af4b06f5.svg +1 -0
  32. package/kztool/img/chart.15fe45db.svg +1 -0
  33. package/kztool/img/checkbox.33950d05.svg +1 -0
  34. package/kztool/img/client.8669e2c6.svg +1 -0
  35. package/kztool/img/clipboard.a754c187.svg +1 -0
  36. package/kztool/img/code.21a8c1ce.svg +1 -0
  37. package/kztool/img/color.d6e1d0d9.svg +1 -0
  38. package/kztool/img/component.a69885f8.svg +1 -0
  39. package/kztool/img/dark.412ca67e.svg +39 -0
  40. package/kztool/img/dashboard.28a2a850.svg +1 -0
  41. package/kztool/img/date-range.21c0ab78.svg +1 -0
  42. package/kztool/img/date.43878da9.svg +1 -0
  43. package/kztool/img/dict.e54d50d6.svg +1 -0
  44. package/kztool/img/documentation.250402ca.svg +1 -0
  45. package/kztool/img/download.5153dc2b.svg +1 -0
  46. package/kztool/img/drag.4a19e202.svg +1 -0
  47. package/kztool/img/druid.09b411e5.svg +1 -0
  48. package/kztool/img/edit.82ad92eb.svg +1 -0
  49. package/kztool/img/education.8a144773.svg +1 -0
  50. package/kztool/img/email.e4742db4.svg +1 -0
  51. package/kztool/img/example.894f4689.svg +1 -0
  52. package/kztool/img/excel.25efb1e4.svg +1 -0
  53. package/kztool/img/exit-fullscreen.c0a0b5af.svg +1 -0
  54. package/kztool/img/eye-open.26bf09f4.svg +1 -0
  55. package/kztool/img/eye.e4fe315c.svg +1 -0
  56. package/kztool/img/file-config.e9cf97b5.png +0 -0
  57. package/kztool/img/file-doc.2e32d62d.png +0 -0
  58. package/kztool/img/file-exe.ba756588.png +0 -0
  59. package/kztool/img/file-ini.b1d3af9d.png +0 -0
  60. package/kztool/img/file-jpg.20c594b1.png +0 -0
  61. package/kztool/img/file-mpg.4a3b6b53.png +0 -0
  62. package/kztool/img/file-none.529195fd.png +0 -0
  63. package/kztool/img/file-pdf.36c3acbd.png +0 -0
  64. package/kztool/img/file-png.961aaab6.png +0 -0
  65. package/kztool/img/file-ppt.b13aca2d.png +0 -0
  66. package/kztool/img/file-rar.d940b06e.png +0 -0
  67. package/kztool/img/file-txt.fba6847c.png +0 -0
  68. package/kztool/img/file-wav.6c6a98a5.png +0 -0
  69. package/kztool/img/file-xls.0ba7ceb7.png +0 -0
  70. package/kztool/img/form.f3ed6fee.svg +1 -0
  71. package/kztool/img/fullscreen.9ce971c6.svg +1 -0
  72. package/kztool/img/github.a1e0a262.svg +1 -0
  73. package/kztool/img/guide.fe0b5508.svg +1 -0
  74. package/kztool/img/icon-ext.ba81b24c.png +0 -0
  75. package/kztool/img/icon.3ab19eb2.svg +1 -0
  76. package/kztool/img/icon.551539f8.png +0 -0
  77. package/kztool/img/input.fd627960.svg +1 -0
  78. package/kztool/img/international.256537bf.svg +1 -0
  79. package/kztool/img/job.b6da1ffe.svg +1 -0
  80. package/kztool/img/kz_authority.3278f033.svg +1 -0
  81. package/kztool/img/kz_build.d01b7fab.svg +1 -0
  82. package/kztool/img/kz_code.181e9399.svg +1 -0
  83. package/kztool/img/kz_config.8ed433a4.svg +1 -0
  84. package/kztool/img/kz_creatTime.b36ed35c.svg +1 -0
  85. package/kztool/img/kz_dept.5e64451a.svg +1 -0
  86. package/kztool/img/kz_dept_profile.5d4e147f.svg +1 -0
  87. package/kztool/img/kz_dict.2ab95ca5.svg +1 -0
  88. package/kztool/img/kz_edit.7d07a3ee.svg +1 -0
  89. package/kztool/img/kz_enlarge.af9fd797.svg +1 -0
  90. package/kztool/img/kz_enterprise.d341ab44.svg +1 -0
  91. package/kztool/img/kz_fold.17a83166.svg +2 -0
  92. package/kztool/img/kz_job.d4e52276.svg +1 -0
  93. package/kztool/img/kz_layout.9bab2381.svg +1 -0
  94. package/kztool/img/kz_log.685b9ce0.svg +1 -0
  95. package/kztool/img/kz_log_loginInfo.68ba7786.svg +1 -0
  96. package/kztool/img/kz_log_operation.fdc2ddf9.svg +1 -0
  97. package/kztool/img/kz_master-slave.83dad46f.svg +2 -0
  98. package/kztool/img/kz_menu.35eddf40.svg +1 -0
  99. package/kztool/img/kz_menu_analyse.4b4d8f9b.svg +22 -0
  100. package/kztool/img/kz_message.b8712b45.svg +1 -0
  101. package/kztool/img/kz_monitor.8b10fbe6.svg +1 -0
  102. package/kztool/img/kz_nacos.c51b9d4a.svg +1 -0
  103. package/kztool/img/kz_narrow.2a646b99.svg +1 -0
  104. package/kztool/img/kz_notice.34428b82.svg +2 -0
  105. package/kztool/img/kz_online.754b59da.svg +1 -0
  106. package/kztool/img/kz_open.c0247e97.svg +2 -0
  107. package/kztool/img/kz_organization.c4c24b8b.svg +1 -0
  108. package/kztool/img/kz_post.a3b24529.svg +1 -0
  109. package/kztool/img/kz_post_profile.729ed1fd.svg +1 -0
  110. package/kztool/img/kz_productCenter.94cb1bf1.svg +1 -0
  111. package/kztool/img/kz_rabbit.c1e30068.svg +1 -0
  112. package/kztool/img/kz_refresh.e4335ee7.svg +2 -0
  113. package/kztool/img/kz_renovation.cec7bdbb.svg +1 -0
  114. package/kztool/img/kz_role.337dafc2.svg +1 -0
  115. package/kztool/img/kz_roleGroup.d40cf86e.svg +1 -0
  116. package/kztool/img/kz_search.91e19919.svg +1 -0
  117. package/kztool/img/kz_sentinel.65a96c32.svg +1 -0
  118. package/kztool/img/kz_server.1aeaae9a.svg +1 -0
  119. package/kztool/img/kz_setting.b121026e.svg +1 -0
  120. package/kztool/img/kz_sex.2dfbc39c.svg +1 -0
  121. package/kztool/img/kz_source.78acc35f.svg +2 -0
  122. package/kztool/img/kz_strategy.960f4e2b.svg +2 -0
  123. package/kztool/img/kz_swagger.72b031ef.svg +1 -0
  124. package/kztool/img/kz_system.a0a83a20.svg +1 -0
  125. package/kztool/img/kz_tenant.bb89322f.svg +1 -0
  126. package/kztool/img/kz_tool.bc04a7cd.svg +1 -0
  127. package/kztool/img/kz_user.8ade980b.svg +1 -0
  128. package/kztool/img/language.a84ceaa6.svg +1 -0
  129. package/kztool/img/light.4183aad0.svg +39 -0
  130. package/kztool/img/link.9c719b73.svg +1 -0
  131. package/kztool/img/list.76dedeca.svg +1 -0
  132. package/kztool/img/loading-0.a72011cc.gif +0 -0
  133. package/kztool/img/lock.8634238d.svg +1 -0
  134. package/kztool/img/log.7798bf59.svg +1 -0
  135. package/kztool/img/login-background.c5b184b7.jpg +0 -0
  136. package/kztool/img/logininfor.182c8103.svg +1 -0
  137. package/kztool/img/logo.8ae3d6ee.jpg +0 -0
  138. package/kztool/img/logo.eeed0dd2.png +0 -0
  139. package/kztool/img/mes-ad.af0324d3.svg +21 -0
  140. package/kztool/img/mes-ic.7d10c9df.svg +16 -0
  141. package/kztool/img/mes-mfg-order.d03a00ac.svg +22 -0
  142. package/kztool/img/mes-tm.e3818cf7.svg +15 -0
  143. package/kztool/img/message.1fbaa155.svg +1 -0
  144. package/kztool/img/money.954fffc7.svg +1 -0
  145. package/kztool/img/monitor.7eeb6217.svg +2 -0
  146. package/kztool/img/nacos.147e9bf5.svg +1 -0
  147. package/kztool/img/nested.c948fb38.svg +1 -0
  148. package/kztool/img/number.7e0faaa5.svg +1 -0
  149. package/kztool/img/online.fb93d2e7.svg +1 -0
  150. package/kztool/img/password.9173da92.svg +1 -0
  151. package/kztool/img/pdf.7e6ae0e3.svg +1 -0
  152. package/kztool/img/people.665094ec.svg +1 -0
  153. package/kztool/img/peoples.73b2be61.svg +1 -0
  154. package/kztool/img/phone.4ab5e783.svg +1 -0
  155. package/kztool/img/post.4f1521cb.svg +1 -0
  156. package/kztool/img/profile.8ae3d6ee.jpg +0 -0
  157. package/kztool/img/qq.8968a17d.svg +1 -0
  158. package/kztool/img/question.6dd93e77.svg +1 -0
  159. package/kztool/img/radio.1db061a7.svg +1 -0
  160. package/kztool/img/rate.d8284c44.svg +1 -0
  161. package/kztool/img/row.88cc2b15.svg +1 -0
  162. package/kztool/img/search.8b49baae.svg +1 -0
  163. package/kztool/img/select.be2885c0.svg +1 -0
  164. package/kztool/img/sentinel.51b1eedb.svg +1 -0
  165. package/kztool/img/server.e9df1296.svg +1 -0
  166. package/kztool/img/shop-call.31143fe6.svg +14 -0
  167. package/kztool/img/shopping.232bbd1d.svg +1 -0
  168. package/kztool/img/size.c77e5b9c.svg +1 -0
  169. package/kztool/img/skill.9842762c.svg +1 -0
  170. package/kztool/img/slider.dca17dd6.svg +1 -0
  171. package/kztool/img/star.91c10562.svg +1 -0
  172. package/kztool/img/stock-query.e3aea312.svg +14 -0
  173. package/kztool/img/stock-report.03ca7ff1.svg +14 -0
  174. package/kztool/img/stock-take.6bd8c87e.svg +14 -0
  175. package/kztool/img/swagger.78429129.svg +1 -0
  176. package/kztool/img/switch.67ff45e5.svg +1 -0
  177. package/kztool/img/system.8f062138.svg +2 -0
  178. package/kztool/img/tab.02b3a5b8.svg +1 -0
  179. package/kztool/img/table.fe7671a5.svg +1 -0
  180. package/kztool/img/textarea.6a19873e.svg +1 -0
  181. package/kztool/img/theme.a8c15249.svg +1 -0
  182. package/kztool/img/time-range.4a869bcb.svg +1 -0
  183. package/kztool/img/time.809df2f6.svg +1 -0
  184. package/kztool/img/tool.ce0f6d38.svg +1 -0
  185. package/kztool/img/tree-table.76f687b5.svg +1 -0
  186. package/kztool/img/tree.59ecebc1.svg +1 -0
  187. package/kztool/img/upload.84d5b598.svg +1 -0
  188. package/kztool/img/user.9f469d0b.svg +1 -0
  189. package/kztool/img/validCode.9e7b7784.svg +1 -0
  190. package/kztool/img/wechat.28725df0.svg +1 -0
  191. package/kztool/img/xy-cancel.c5f3d1db.svg +1 -0
  192. package/kztool/img/xy-choice.b2e8c9cf.svg +1 -0
  193. package/kztool/img/xy-choice2.453db322.svg +31 -0
  194. package/kztool/img/zip.839d61e0.svg +1 -0
  195. package/kztool/kztool.common.0.js +17212 -0
  196. package/kztool/kztool.common.1.js +11 -0
  197. package/kztool/kztool.common.10.js +2775 -0
  198. package/kztool/kztool.common.11.js +1920 -0
  199. package/kztool/kztool.common.12.js +641 -0
  200. package/kztool/kztool.common.13.js +1363 -0
  201. package/kztool/kztool.common.14.js +987 -0
  202. package/kztool/kztool.common.15.js +2477 -0
  203. package/kztool/kztool.common.16.js +222 -0
  204. package/kztool/kztool.common.17.js +140 -0
  205. package/kztool/kztool.common.18.js +1053 -0
  206. package/kztool/kztool.common.19.js +319 -0
  207. package/kztool/kztool.common.2.js +2893 -0
  208. package/kztool/kztool.common.20.js +131 -0
  209. package/kztool/kztool.common.21.js +396 -0
  210. package/kztool/kztool.common.22.js +377 -0
  211. package/kztool/kztool.common.23.js +677 -0
  212. package/kztool/kztool.common.24.js +1007 -0
  213. package/kztool/kztool.common.25.js +246 -0
  214. package/kztool/kztool.common.26.js +138 -0
  215. package/kztool/kztool.common.27.js +505 -0
  216. package/kztool/kztool.common.28.js +62 -0
  217. package/kztool/kztool.common.29.js +65 -0
  218. package/kztool/kztool.common.3.js +3868 -0
  219. package/kztool/kztool.common.4.js +1387 -0
  220. package/kztool/kztool.common.5.js +10 -0
  221. package/kztool/kztool.common.6.js +32006 -0
  222. package/kztool/kztool.common.7.js +28976 -0
  223. package/kztool/kztool.common.9.js +63288 -0
  224. package/kztool/kztool.common.js +137547 -0
  225. package/kztool/kztool.css +7 -0
  226. package/kztool/kztool.umd.0.js +17212 -0
  227. package/kztool/kztool.umd.1.js +11 -0
  228. package/kztool/kztool.umd.10.js +2775 -0
  229. package/kztool/kztool.umd.11.js +1920 -0
  230. package/kztool/kztool.umd.12.js +641 -0
  231. package/kztool/kztool.umd.13.js +1363 -0
  232. package/kztool/kztool.umd.14.js +987 -0
  233. package/kztool/kztool.umd.15.js +2477 -0
  234. package/kztool/kztool.umd.16.js +222 -0
  235. package/kztool/kztool.umd.17.js +140 -0
  236. package/kztool/kztool.umd.18.js +1053 -0
  237. package/kztool/kztool.umd.19.js +319 -0
  238. package/kztool/kztool.umd.2.js +2893 -0
  239. package/kztool/kztool.umd.20.js +131 -0
  240. package/kztool/kztool.umd.21.js +396 -0
  241. package/kztool/kztool.umd.22.js +377 -0
  242. package/kztool/kztool.umd.23.js +677 -0
  243. package/kztool/kztool.umd.24.js +1007 -0
  244. package/kztool/kztool.umd.25.js +246 -0
  245. package/kztool/kztool.umd.26.js +138 -0
  246. package/kztool/kztool.umd.27.js +505 -0
  247. package/kztool/kztool.umd.28.js +62 -0
  248. package/kztool/kztool.umd.29.js +65 -0
  249. package/kztool/kztool.umd.3.js +3868 -0
  250. package/kztool/kztool.umd.4.js +1387 -0
  251. package/kztool/kztool.umd.5.js +10 -0
  252. package/kztool/kztool.umd.6.js +32006 -0
  253. package/kztool/kztool.umd.7.js +28976 -0
  254. package/kztool/kztool.umd.9.js +63288 -0
  255. package/kztool/kztool.umd.js +137557 -0
  256. package/kztool/kztool.umd.min.0.js +9 -0
  257. package/kztool/kztool.umd.min.1.js +1 -0
  258. package/kztool/kztool.umd.min.10.js +1 -0
  259. package/kztool/kztool.umd.min.11.js +1 -0
  260. package/kztool/kztool.umd.min.12.js +1 -0
  261. package/kztool/kztool.umd.min.13.js +1 -0
  262. package/kztool/kztool.umd.min.14.js +1 -0
  263. package/kztool/kztool.umd.min.15.js +1 -0
  264. package/kztool/kztool.umd.min.16.js +1 -0
  265. package/kztool/kztool.umd.min.17.js +1 -0
  266. package/kztool/kztool.umd.min.18.js +1 -0
  267. package/kztool/kztool.umd.min.19.js +1 -0
  268. package/kztool/kztool.umd.min.2.js +1 -0
  269. package/kztool/kztool.umd.min.20.js +1 -0
  270. package/kztool/kztool.umd.min.21.js +1 -0
  271. package/kztool/kztool.umd.min.22.js +1 -0
  272. package/kztool/kztool.umd.min.23.js +1 -0
  273. package/kztool/kztool.umd.min.24.js +1 -0
  274. package/kztool/kztool.umd.min.25.js +1 -0
  275. package/kztool/kztool.umd.min.26.js +1 -0
  276. package/kztool/kztool.umd.min.27.js +1 -0
  277. package/kztool/kztool.umd.min.28.js +1 -0
  278. package/kztool/kztool.umd.min.29.js +1 -0
  279. package/kztool/kztool.umd.min.3.js +8 -0
  280. package/kztool/kztool.umd.min.4.js +1 -0
  281. package/kztool/kztool.umd.min.5.js +1 -0
  282. package/kztool/kztool.umd.min.6.js +1 -0
  283. package/kztool/kztool.umd.min.7.js +24 -0
  284. package/kztool/kztool.umd.min.9.js +24 -0
  285. package/kztool/kztool.umd.min.js +349 -0
  286. package/list-bese-page/doublelistBasePageTs.vue +996 -0
  287. package/list-bese-page/listBasePageTs.vue +2170 -0
  288. package/package.json +12 -0
@@ -0,0 +1,2170 @@
1
+ <template>
2
+ <div
3
+ :class="{
4
+ 'dialog-body-wrapper': true,
5
+ }"
6
+ >
7
+ <slot></slot>
8
+ <el-row id="main-row" :gutter="24">
9
+ <!--树数据-->
10
+ <el-col v-if="treeSetting.visable" :span="5" :xs="24">
11
+ <el-row>
12
+ <el-col style="margin: 8px 0">
13
+ <el-button
14
+ v-if="treeSetting.visableButton"
15
+ @click="tree_insert()"
16
+ icon="el-icon-plus"
17
+ type="primary"
18
+ size="mini"
19
+ >添加下层</el-button
20
+ >
21
+ <el-button
22
+ v-if="treeSetting.visableButton"
23
+ @click="tree_update"
24
+ icon="el-icon-edit"
25
+ type="warning"
26
+ size="mini"
27
+ >修改本层</el-button
28
+ >
29
+ <el-button
30
+ v-if="treeSetting.visableButton"
31
+ @click="tree_del"
32
+ icon="el-icon-delete"
33
+ type="danger"
34
+ size="mini"
35
+ >删除本层</el-button
36
+ >
37
+ </el-col>
38
+ </el-row>
39
+ <div
40
+ class="wrapper-container wrapper-container-supplement"
41
+ :style="{
42
+ 'min-height': treeHeight + treeAutoFitPixels + 'px',
43
+ }"
44
+ style="margin-bottom: 0px"
45
+ >
46
+ <div class="head-container">
47
+ <el-input
48
+ v-if="treeSetting.visableSearchBox"
49
+ v-model="treeShapeName"
50
+ :placeholder="treeSetting.title"
51
+ clearable
52
+ size="small"
53
+ prefix-icon="el-icon-search"
54
+ style="margin-bottom: 20px"
55
+ />
56
+ </div>
57
+ <div class="head-container" v-if="treeSetting.dropDownSliders">
58
+ <el-scrollbar
59
+ :style="{
60
+ height: treeHeight + treeAutoFitPixels + 'px',
61
+ width: '100%',
62
+ }"
63
+ >
64
+ <el-tree
65
+ class="treescroll"
66
+ :data="treeShapeOptions"
67
+ node-key="id"
68
+ :props="defaultProps"
69
+ default-expand-all
70
+ :expand-on-click-node="false"
71
+ :filter-node-method="filterNode"
72
+ :current-node-key="currentNodekey"
73
+ highlight-current
74
+ ref="tree"
75
+ @node-click="handleNodeClick"
76
+ />
77
+ </el-scrollbar>
78
+ </div>
79
+
80
+ <div class="head-container" v-else>
81
+ <el-tree
82
+ class="treescroll"
83
+ :data="treeShapeOptions"
84
+ :props="defaultProps"
85
+ node-key="id"
86
+ :current-node-key="currentNodekey"
87
+ :expand-on-click-node="false"
88
+ :filter-node-method="filterNode"
89
+ ref="tree"
90
+ default-expand-all
91
+ highlight-current
92
+ @node-click="handleNodeClick"
93
+ />
94
+ </div>
95
+ </div>
96
+ </el-col>
97
+ <!--用户数据-->
98
+ <el-col id="table-col" :span="treeSetting.visable ? 19 : 24" :xs="24">
99
+ <div
100
+ class="wrapper-container"
101
+ style="margin-botom: 0px; display: inline-block; width: 100%"
102
+ v-show="isShowSearch"
103
+ >
104
+ <el-form v-if="!disableSearch" ref="queryForm">
105
+ <el-col
106
+ v-for="(searchRule, index) in searchRules"
107
+ :key="index"
108
+ v-if="
109
+ searchRule.visible == undefined || searchRule.visible != false
110
+ "
111
+ :span="searchRule.width || 6"
112
+ :disabled="searchRule.disabled"
113
+ :style="
114
+ searchRule.displayType == 'Upload'
115
+ ? ''
116
+ : searchRule.displayType == 'Editor'
117
+ ? 'height: 280px'
118
+ : ''
119
+ "
120
+ >
121
+ <el-form
122
+ :ref="`queryForm${index}`"
123
+ :model="searchRule"
124
+ :rules="rules"
125
+ :inline="true"
126
+ :label-width="labelwidth"
127
+ >
128
+ <component
129
+ :ref="
130
+ searchRule.displayType == 'Cascader'
131
+ ? 'cascader'
132
+ : searchRule.displayType
133
+ "
134
+ v-if="
135
+ searchRule.visible == undefined ||
136
+ searchRule.visible != false
137
+ "
138
+ :is="
139
+ searchRule.displayType != null
140
+ ? 'KZ_' + searchRule.displayType
141
+ : 'KZ_TextBox'
142
+ "
143
+ :columns="searchRules"
144
+ :column="searchRule"
145
+ :entity="searchRule"
146
+ :setting.sync="searchRule.setting"
147
+ :value="searchRule.value"
148
+ @change="onChangeEvent"
149
+ @keyup.enter.native="handleQuery"
150
+ @onSearch="onSearch"
151
+ >
152
+ </component>
153
+ </el-form>
154
+ </el-col>
155
+ <el-form-item style="float: right">
156
+ <el-button
157
+ type="primary"
158
+ icon="el-icon-search"
159
+ size="mini"
160
+ @click="handleQuery"
161
+ >搜索</el-button
162
+ >
163
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
164
+ >重置</el-button
165
+ >
166
+ </el-form-item>
167
+ </el-form>
168
+ </div>
169
+
170
+ <div class="wrapper-container sumrow" style="margin-bottom: 0px">
171
+ <el-row :gutter="10" class="mb8">
172
+ <template v-for="opMenu in opMenus">
173
+ <el-col :key="opMenu.name" :span="1.5" v-if="opMenu.visable">
174
+ <el-button
175
+ :type="opMenu.cssType || 'primary'"
176
+ :icon="opMenu.icon"
177
+ :disabled="opMenu.disabled"
178
+ size="mini"
179
+ @click="onOpMenuClick({ opMenu: opMenu })"
180
+ v-hasPermi="[
181
+ opMenu.permission,
182
+ `${moduleName}:${serviceName}:${opMenu.permission}`,
183
+ ]"
184
+ >
185
+ {{ opMenu.text }}
186
+ </el-button>
187
+ </el-col>
188
+ </template>
189
+ <template v-for="(opMenu, index) in customOpMenus">
190
+ <el-col :key="index" :span="1.5" v-if="opMenu.visable">
191
+ <el-button
192
+ :type="opMenu.cssType || 'primary'"
193
+ :icon="opMenu.icon"
194
+ :disabled="opMenu.disabled"
195
+ size="mini"
196
+ @click="onCustomOpMenuClick({ opMenu: opMenu })"
197
+ v-hasPermi="[
198
+ opMenu.permission,
199
+ `${moduleName}:${serviceName}:${opMenu.permission}`,
200
+ ]"
201
+ >
202
+ {{ opMenu.text }}
203
+ </el-button>
204
+ </el-col>
205
+ </template>
206
+
207
+ <right-toolbar
208
+ v-if="showToolBar"
209
+ :showSearch.sync="isShowSearch"
210
+ :sortVisible="false"
211
+ @queryTable="getList"
212
+ :columns="listColumns"
213
+ />
214
+ </el-row>
215
+
216
+ <el-table
217
+ ref="multipleTable"
218
+ :height="tableHeight"
219
+ :border="true"
220
+ v-loading="loading"
221
+ :data="listData"
222
+ :show-summary="listSetting.isShowSumRow"
223
+ :summary-method="getSummaries"
224
+ highlight-current-row
225
+ @row-click="clickRow"
226
+ @selection-change="onSelectionChange"
227
+ :listCustomOpMenus="listCustomOpMenus"
228
+ @cell-dblclick="dblClick"
229
+ :header-cell-style="listSetting.headerCellStyle"
230
+ >
231
+ <el-table-column
232
+ v-if="isMultiple"
233
+ type="selection"
234
+ width="50"
235
+ align="center"
236
+ />
237
+ <el-table-column
238
+ v-if="listSetting.isShowIndexColumn != false"
239
+ type="index"
240
+ label="序号"
241
+ width="50"
242
+ align="center"
243
+ >
244
+ <template scope="scope">
245
+ <span>{{
246
+ (listQueryParams.pageNum - 1) * listQueryParams.pageSize +
247
+ scope.$index +
248
+ 1
249
+ }}</span>
250
+ </template>
251
+ </el-table-column>
252
+ <template v-for="(column, index) in listColumns">
253
+ <el-table-column
254
+ :show-overflow-tooltip="true"
255
+ :key="index"
256
+ :label="column.text"
257
+ :align="column.align || 'left'"
258
+ :prop="column.property"
259
+ v-if="column.visible != false"
260
+ :min-width="column.width || 100"
261
+ >
262
+ <template slot-scope="scope">
263
+ <span v-if="column.displayType == 'Upload'">
264
+ <!-- {{ getFileNickName(scope.row[scope.column.property]) }} -->
265
+ </span>
266
+ <a
267
+ style="color: #1890ff"
268
+ v-if="
269
+ column.setting &&
270
+ column.setting.canClick &&
271
+ column.setting.canClick === 'canClick'
272
+ "
273
+ @click="statusClick(scope)"
274
+ >
275
+ {{ scope.row[column.property] }}
276
+ </a>
277
+ <span v-else-if="column.displayType == 'DatePicker'">
278
+ {{
279
+ dateFormat(
280
+ scope.row,
281
+ column,
282
+ scope.row[column.property],
283
+ scope.row[column.property]
284
+ )
285
+ }}
286
+ </span>
287
+ <span
288
+ v-else-if="
289
+ column.setting &&
290
+ column.setting.type &&
291
+ column.setting.type === 'bool'
292
+ "
293
+ >
294
+ {{ String(scope.row[column.property]) === "1" ? "是" : "" }}
295
+ {{ String(scope.row[column.property]) === "0" ? "否" : "" }}
296
+ </span>
297
+ <span
298
+ v-else-if="
299
+ column.setting &&
300
+ column.setting.type &&
301
+ column.setting.type === 'boolNormal'
302
+ "
303
+ >
304
+ {{
305
+ String(scope.row[column.property]) === "1"
306
+ ? column.setting.val1
307
+ : ""
308
+ }}
309
+ {{
310
+ String(scope.row[column.property]) === "0"
311
+ ? column.setting.val2
312
+ : ""
313
+ }}
314
+ </span>
315
+ <span
316
+ v-else-if="
317
+ column.setting &&
318
+ (column.setting.type || column.setting.dictType)
319
+ "
320
+ >
321
+ {{
322
+ tableDisplayFormat(
323
+ scope.row,
324
+ column,
325
+ scope.row[column.property]
326
+ )
327
+ }}
328
+ </span>
329
+ <span v-else-if="column.setting && column.setting.urlFormat">
330
+ {{
331
+ tableDisplayFormatByUrl(
332
+ scope.row,
333
+ column,
334
+ scope.row[column.property]
335
+ )
336
+ }}
337
+ </span>
338
+ <span v-else-if="column.htmlFormat">
339
+ <span
340
+ v-html="
341
+ evalFunction(
342
+ column.htmlFormat,
343
+ scope.row,
344
+ column,
345
+ scope.row[column.property]
346
+ )
347
+ "
348
+ ></span>
349
+ </span>
350
+ <span v-else-if="column.format">
351
+ {{
352
+ evalFunction(
353
+ column.format,
354
+ scope.row,
355
+ column,
356
+ scope.row[column.property]
357
+ )
358
+ }}
359
+ </span>
360
+ <span v-else-if="column.click">
361
+ <el-link
362
+ type="primary"
363
+ @click="
364
+ evalFunction(
365
+ column.click,
366
+ scope.row,
367
+ column,
368
+ scope.row[column.property]
369
+ )
370
+ "
371
+ >
372
+ <span v-if="column.clickFormat">
373
+ {{
374
+ evalFunction(
375
+ column.clickFormat,
376
+ scope.row,
377
+ column,
378
+ scope.row[column.property]
379
+ )
380
+ }}
381
+ </span>
382
+ <span v-else>{{ scope.row[scope.column.property] }}</span>
383
+ </el-link>
384
+ </span>
385
+ <KZ_DropDownList
386
+ v-else-if="
387
+ column.displayType == 'DropDownList' &&
388
+ column.setting.displayMode == 'form'
389
+ "
390
+ :column="column"
391
+ :entity="scope.row"
392
+ :value="scope.row[column.property]"
393
+ :setting.sync="column.setting"
394
+ @change="onChangeEvent"
395
+ >
396
+ </KZ_DropDownList>
397
+ <el-switch
398
+ v-else-if="
399
+ column.displayType == 'Switch' &&
400
+ column.setting &&
401
+ column.setting.valType &&
402
+ column.setting.valType === 'number'
403
+ "
404
+ v-model="scope.row[column.property]"
405
+ :disabled="true"
406
+ @change="onChangeEvent"
407
+ active-color="#13ce66"
408
+ inactive-color="#ff4949"
409
+ active-value="1"
410
+ inactive-value="0"
411
+ >
412
+ </el-switch>
413
+ <el-switch
414
+ v-else-if="column.displayType == 'Switch'"
415
+ v-model="scope.row[column.property]"
416
+ :disabled="true"
417
+ @change="onChangeEvent"
418
+ active-color="#13ce66"
419
+ inactive-color="#ff4949"
420
+ >
421
+ </el-switch>
422
+ <span v-else>
423
+ {{ scope.row[scope.column.property] }}
424
+ </span>
425
+ </template>
426
+ </el-table-column>
427
+ </template>
428
+
429
+ <el-table-column
430
+ label="操作"
431
+ align="center"
432
+ min-width="160"
433
+ class-name="small-padding fixed-width"
434
+ v-if="listSetting.isShowOpColumn"
435
+ >
436
+ <template slot-scope="scope">
437
+ <el-button
438
+ v-for="(opMenu, index) in listCustomOpMenus"
439
+ :key="index"
440
+ size="mini"
441
+ type="text"
442
+ :icon="opMenu.icon"
443
+ @click="
444
+ onListCustomOpMenuClick({ opMenu: opMenu, data: scope.row })
445
+ "
446
+ v-hasPermi="['system:role:set']"
447
+ >
448
+ {{ opMenu.text }}
449
+ </el-button>
450
+ </template>
451
+ </el-table-column>
452
+ </el-table>
453
+ </div>
454
+
455
+ <div class="rtdiv mb8" v-if="usePagination">
456
+ <pagination
457
+ :total="listQueryParams.total"
458
+ :page.sync="listQueryParams.pageNum"
459
+ :limit.sync="listQueryParams.pageSize"
460
+ @pagination="getList"
461
+ />
462
+ </div>
463
+ </el-col>
464
+ </el-row>
465
+ <div v-if="value && value.btnShow" class="dialog-footer">
466
+ <el-button type="primary" @click="submitForm">确 定</el-button>
467
+ <el-button @click="cancel">取 消</el-button>
468
+ </div>
469
+
470
+ <!-- 添加或修改参数配置对话框 -->
471
+ <component
472
+ ref="editDialog"
473
+ :title="title"
474
+ :moduleName="moduleName"
475
+ :serviceName="serviceName"
476
+ :entity.sync="currentEntity"
477
+ :setting.sync="editSetting"
478
+ :columns.sync="editColumns"
479
+ :rules.sync="editRules"
480
+ :customOpMenus.sync="editCustomOpMenus"
481
+ :areaSetting="areaSetting"
482
+ v-on:onCustomOpMenuClick="onEditCustomOpMenuClick"
483
+ v-on:onSaveClick="onEditSaveClick"
484
+ v-on:onCancelClick="onEditCancelClick"
485
+ v-on:change="onChangeEvent"
486
+ @onSearch="onSearch"
487
+ v-if="editSetting.isShow"
488
+ width="600px"
489
+ append-to-body
490
+ v-dialogDrag
491
+ v-dialogDragHeight
492
+ :is="editDialogComponent"
493
+ >
494
+ </component>
495
+
496
+ <!-- 用户导入对话框 -->
497
+ <UploadDialog
498
+ ref="uploadDialog"
499
+ :moduleName="moduleName"
500
+ :serviceName="serviceName"
501
+ :setting.sync="uploadSetting"
502
+ :visible.sync="uploadSetting.isShow"
503
+ width="400px"
504
+ append-to-body
505
+ v-dialogDrag
506
+ v-dialogDragHeight
507
+ v-on:onImportSuccess="onImportSuccess"
508
+ >
509
+ </UploadDialog>
510
+
511
+ <!-- 打印界面对话框 -->
512
+ <printDialog
513
+ ref="printDialog"
514
+ :moduleName="moduleName"
515
+ :serviceName="serviceName"
516
+ :templateType="templateType"
517
+ :setting.sync="printSetting"
518
+ :visible.sync="printSetting.isShow"
519
+ :entity.sync="currentEntity"
520
+ width="70%"
521
+ append-to-body
522
+ v-dialogDrag
523
+ v-dialogDragHeight
524
+ >
525
+ </printDialog>
526
+ </div>
527
+ </template>
528
+
529
+ <script lang="ts">
530
+ import { Component, Prop, Vue, Watch } from "vue-property-decorator";
531
+ import {
532
+ startWorkflow,
533
+ listEntity,
534
+ getEntity,
535
+ addEntity,
536
+ updateEntity,
537
+ delEntity,
538
+ getUrl,
539
+ treeSelect,
540
+ initField,
541
+ initTableField,
542
+ selectInterfaceSetting,
543
+ initEditListColumns,
544
+ initSearchRules,
545
+ getNameByDeptId,
546
+ } from "@api/common/common";
547
+ import {
548
+ getSiteNameByIdOrNo,
549
+ getWorkAreaNameByIdOrNo,
550
+ getWorkCenterNameByIdOrNo,
551
+ getWorkUnitNameByIdOrNo,
552
+ getStorageZoneNameByIdOrNo,
553
+ } from "@utils/cache/fdCache";
554
+ import { filePriview, getFilePriviewUrl, getFileNickName } from "@utils/file";
555
+ import * as Utils from "@utils/utils";
556
+
557
+ import WfDialog from "@/components/base/dialog/wfDialog.vue";
558
+
559
+ import { getToken } from "@utils/auth";
560
+ import _ from "lodash";
561
+ @Component({
562
+ components: {},
563
+ })
564
+ export default class listBasePage extends Vue {
565
+ @Prop()
566
+ value;
567
+
568
+ //搜索条件labe宽度
569
+ labelwidth = "100px";
570
+ disableSearch = false;
571
+ showToolBar = true;
572
+ usePagination = true;
573
+ //窗口自适应
574
+ listeningWindow = true;
575
+ //屏幕高度
576
+ tableHeight = 700;
577
+ treeHeight = 700;
578
+ //自适应高度参数
579
+ tableAutoFitPixels = 0;
580
+ treeAutoFitPixels = 0;
581
+ //微服务模块名称
582
+ moduleName = "";
583
+ //实体名称-服务名称
584
+ serviceName = "";
585
+ //标签类型
586
+ templateType = "";
587
+ //页面标题
588
+ title = "";
589
+ // 遮罩层
590
+ loading = false;
591
+ submitLoading = false;
592
+ // 选中数组
593
+ ids = [];
594
+ // 选中数组名称
595
+ idsText = [];
596
+ // 非单个禁用
597
+ single = true;
598
+ // 非多个禁用
599
+ multiple = true;
600
+ // 显示搜索条件
601
+ isShowSearch = true;
602
+ // 搜索条件是否使用Entity搜索
603
+ isSearchUseEntity = false;
604
+ //表格是否自动加载数据
605
+ isAutoLoad = true;
606
+ //列表界面是否显示明细
607
+ isShowEditItems = false;
608
+ // 启用多选模式
609
+ isMultiple = true;
610
+ //当前功能主键字段
611
+ pkField = "id";
612
+ //当前功能显示文本字段
613
+ displayField = undefined;
614
+ // 树名称
615
+ treeShapeName = undefined;
616
+ defaultProps = {
617
+ children: "children",
618
+ label: "name",
619
+ };
620
+ //树选项
621
+ treeShapeOptions = undefined;
622
+ currentSelectTreeId = undefined;
623
+ //默认高亮选中
624
+ currentNodekey = "";
625
+ //树设定
626
+ treeSetting = {
627
+ moduleName: undefined,
628
+ serviceName: undefined,
629
+ //主键字段
630
+ pkField: "id",
631
+ //树外键主键字段
632
+ treeFkField: undefined,
633
+ //树形显示隐藏
634
+ visable: false,
635
+ //树形上面的button是否显示
636
+ visableButton: false,
637
+ //是否显示树搜索
638
+ visableSearchBox: true,
639
+ //是否显示下拉滑块
640
+ dropDownSliders: false,
641
+ //搜索框标题
642
+ title: "",
643
+ };
644
+
645
+ // 是否启用工作流
646
+ isWfEnable = false;
647
+ // 工作流Key,必须与后台代码及审批流中中定义的工作流Key保持一致,未赋值时默认取值 this.serviceName
648
+ wfKey = undefined;
649
+
650
+ // 列表数据
651
+ listData = [];
652
+
653
+ // 当前选中行实体
654
+ currentEntity = {};
655
+ // 当前选中行实体集合
656
+ currentEntities = [];
657
+
658
+ //操作菜单设定
659
+ opMenus = [
660
+ {
661
+ visable: true,
662
+ text: "添加",
663
+ icon: "el-icon-plus",
664
+ permission: "add",
665
+ name: "add",
666
+ isShowText: false,
667
+ cssType: "primary",
668
+ },
669
+ {
670
+ visable: true,
671
+ text: "复制",
672
+ icon: "ion-md-copy",
673
+ permission: "add",
674
+ name: "copy",
675
+ isShowText: false,
676
+ cssType: "primary",
677
+ disabled: this.multiple || !this.currentEntity,
678
+ },
679
+ {
680
+ visable: true,
681
+ text: "修改",
682
+ icon: "el-icon-edit",
683
+ permission: "edit",
684
+ name: "update",
685
+ isShowText: false,
686
+ cssType: "warning",
687
+ disabled: this.multiple || !this.currentEntity,
688
+ },
689
+ {
690
+ visable: true,
691
+ text: "删除",
692
+ icon: "el-icon-delete",
693
+ permission: "remove",
694
+ name: "delete",
695
+ isShowText: false,
696
+ cssType: "danger",
697
+ disabled: !!this.currentEntity,
698
+ },
699
+ {
700
+ visable: true,
701
+ text: "查看",
702
+ icon: "ion-md-information-circle-outline",
703
+ name: "detail",
704
+ isShowText: false,
705
+ cssType: "success",
706
+ disabled: this.multiple || !this.currentEntity,
707
+ },
708
+
709
+ {
710
+ visable: true,
711
+ text: "导出",
712
+ icon: "ion-md-cloud-download",
713
+ name: "export",
714
+ isShowText: false,
715
+ cssType: "success",
716
+ },
717
+ {
718
+ visable: true,
719
+ text: "导入",
720
+ icon: "ion-md-cloud-upload",
721
+ permission: "add",
722
+ name: "import",
723
+ isShowText: false,
724
+ cssType: "primary",
725
+ },
726
+ {
727
+ visable: false,
728
+ text: "发起审批",
729
+ icon: "el-icon-position",
730
+ permission: "startWf",
731
+ name: "startWf",
732
+ isShowText: false,
733
+ cssType: "success",
734
+ disabled: this.multiple || !this.currentEntity,
735
+ },
736
+ {
737
+ visable: false,
738
+ text: "审批进度",
739
+ icon: "el-icon-view",
740
+ permission: "showWf",
741
+ name: "showWf",
742
+ isShowText: false,
743
+ cssType: "info",
744
+ disabled: this.multiple || !this.currentEntity,
745
+ },
746
+ //{ visable: false, text: "自定义", icon: "ion-md-aperture", name: "uiConfig", isShowText: false },
747
+ //{ visable: true, text: "批量操作", icon: "ion-md-checkmark-circle-outline", name: "multi", isShowText: false },
748
+ //{ visable: true, text: "高级搜索", icon: "ion-md-paw", name: "advanceSearch", isShowText: false },
749
+ {
750
+ visable: true,
751
+ text: "打印",
752
+ icon: "ion-md-print",
753
+ name: "print",
754
+ isShowText: false,
755
+ cssType: "success",
756
+ disabled: this.multiple || !this.currentEntity,
757
+ },
758
+ {
759
+ visable: true,
760
+ text: "高级搜索",
761
+ icon: "ion-md-print",
762
+ name: "search",
763
+ isShowText: false,
764
+ cssType: "success",
765
+ },
766
+ ];
767
+ //自定义操作菜单设定 - 若无自定义按钮,不需要重写
768
+ customOpMenus = [
769
+ //{
770
+ // visable: true,
771
+ // text: "按钮1",
772
+ // icon: "el-icon-plus",
773
+ // permission: "",
774
+ // name: "custom1",
775
+ // isShowText: false,
776
+ // cssType: "success",
777
+ //},
778
+ ];
779
+ // 列表分页参数
780
+ listQueryParams = {
781
+ pageNum: 1,
782
+ pageSize: 10,
783
+ totalPages: 1,
784
+ total: 0,
785
+ orderBy: "id",
786
+ isAsc: "desc",
787
+ };
788
+ listSetting = {
789
+ //获取列表数据的api方法名
790
+ getListAction: "list",
791
+ //主键字段
792
+ pkField: this.pkField,
793
+ // 遮罩层
794
+ loading: false,
795
+ //是否显示合计行
796
+ isShowSumRow: false,
797
+ //是否显示分页栏
798
+ isShowPager: true,
799
+ //是否显示操作栏
800
+ isShowOpColumn: true,
801
+ //单点时选中行多选
802
+ multipleChoice: false,
803
+ //表头标签居中
804
+ headerCellStyle: {
805
+ textAlign: "center",
806
+ },
807
+ };
808
+ // 列表列信息
809
+ listColumns = [
810
+ //{ text: `用户编码`, property: "userNo", type: "string", visible: true },
811
+ //{ text: `用户账号`, property: "userAccount", visible: true },
812
+ ];
813
+ //列表自定义操作菜单设定 - 若无自定义按钮,不需要重写
814
+ listCustomOpMenus = [
815
+ //{ visable: true, text: "按钮1", icon: "el-icon-edit", permission: "", name: "custom1", isShowText: false }
816
+ ];
817
+ // 列表查询条件
818
+ searchRules = [
819
+ // {op:"EQ", text: `用户编码`, property: "userNo", value: "", visible: true },
820
+ //{op:"EQ", text: `用户账号`, property: "userAccount", value: "", visible: true },
821
+ ];
822
+ //列表校验
823
+ rules = {};
824
+
825
+ editSetting = {
826
+ canClick: "",
827
+ valType: "",
828
+ val1: "",
829
+ val2: "",
830
+ type: "",
831
+ pkField: this.pkField,
832
+ // 弹出层标题
833
+ title: "",
834
+ // 是否显示编辑窗口
835
+ isShow: false,
836
+ // 保存时是否自动关闭
837
+ isCloseOnSave: true,
838
+ //弹框宽度
839
+ width: "60%",
840
+ //input标题宽度
841
+ labelWidth: "120px",
842
+ //确定按钮loading
843
+ submitLoading: false,
844
+ //确定取消按钮显示
845
+ bottomShow: true,
846
+ //是否显示表格
847
+ isShowEditItems: false,
848
+ //明细-微服务模块名称
849
+ itemModuleName: "sample",
850
+ //明细-实体名称-服务名称
851
+ itemServiceName: "orderItem",
852
+ //明细-外键字段
853
+ itemFkField: "itemFkField",
854
+ //弹框table配置
855
+ listSetting: {
856
+ //获取列表数据的api方法名
857
+ getListAction: "list",
858
+ //主键字段
859
+ pkField: this.pkField,
860
+ // 遮罩层
861
+ loading: false,
862
+ //是否显示分页栏
863
+ // isShowPager: true,
864
+ //是否显示操作栏
865
+ isShowOpColumn: true,
866
+ //表格信息
867
+ listColumns: [
868
+ // { text: `用户名1`, property: "userName",displayType:'TextBox' },
869
+ // { text: `昵称`, property: "nickName",displayType:'TextBox'},
870
+ // { text: `昵称`,property: "test7",displayType:'dropDownList', setting: { type: "User" ,displayMode:'form' //在表格里显示}},
871
+ ],
872
+ // 表单校验
873
+ rules: {},
874
+ },
875
+ // 打印模板显示
876
+ };
877
+ printDialogShow = false;
878
+ //设置编辑界面窗口组件
879
+ editDialogComponent = "EditDialog";
880
+
881
+ //编辑列区域设置,含控件区域分组及Tab设置
882
+ areaSetting = [
883
+ {
884
+ name: "basic",
885
+ visable: true,
886
+ icon: "ion-plus-round",
887
+ text: "基本信息",
888
+ type: "area",
889
+ },
890
+ ];
891
+
892
+ // 列信息
893
+ editColumns = [
894
+ //{ text: `用户编码`, property: "userNo", visible: true, area: "basic" },
895
+ //{ text: `用户账号`, property: "userAccount", visible: true, area: "tab1" },
896
+ ];
897
+
898
+ // 表单校验
899
+ editRules = {};
900
+ //编辑界面按钮菜单
901
+ editOpMenus = [
902
+ { name: "save", visable: true, icon: "ion-plus-round", text: "保存" },
903
+ { name: "close", visable: true, icon: "ion-md-create", text: "关闭" },
904
+ ];
905
+ //编辑界面自定义按钮菜单 - 若无自定义按钮,不需要重写
906
+ editCustomOpMenus = [
907
+ //{ name: "custom1", visable: true, icon: "ion-plus-round", text: "自定义1" }
908
+ ];
909
+
910
+ // 用户导入参数
911
+ uploadSetting = {
912
+ // 是否显示编辑窗口
913
+ isShow: false,
914
+ // 弹出层标题(用户导入)
915
+ title: "导入",
916
+ // 是否禁用上传
917
+ isUploading: false,
918
+ // 是否更新已经存在的用户数据
919
+ updateSupport: 0,
920
+ // 设置上传的请求头部
921
+ headers: { Authorization: "Bearer " + getToken() },
922
+ // 上传的地址
923
+ url:
924
+ process.env.VUE_APP_BASE_API +
925
+ `${this.moduleName}/${this.serviceName}/importData`,
926
+ };
927
+ // 打印参数
928
+ printSetting = {
929
+ // 是否显示编辑窗口
930
+ isShow: false,
931
+ // 弹出层标题(用户导入)
932
+ title: "打印模板",
933
+ //打印类型
934
+ templateType: "",
935
+ // 保存时是否自动关闭
936
+ isCloseOnSave: true,
937
+ currentEntity: undefined,
938
+ };
939
+
940
+ //页面缓存数据
941
+ cachedData = [];
942
+
943
+ // @Watch("searchRules", { deep: true })
944
+ // watchSearchRules(newVal, oldVal) {
945
+ // if (newVal) {
946
+ // newVal.forEach(item => {
947
+ // this.listParams[item.property] = item[item.property];
948
+ // });
949
+ // console.log(this.listParams)
950
+
951
+ // }
952
+ // }
953
+
954
+ @Watch("isShowSearch")
955
+ resizeTableOnToggleSearchPanel() {
956
+ let that = this;
957
+ if (this.listeningWindow) {
958
+ setTimeout(() => {
959
+ if (that.$refs.multipleTable != null) {
960
+ that.$set(
961
+ that,
962
+ "tableHeight",
963
+ window.innerHeight -
964
+ 65 -
965
+ (that.$refs.multipleTable as any).$el.getBoundingClientRect()
966
+ .top -
967
+ (that.value && that.value.btnShow ? 150 : 0) -
968
+ that.tableAutoFitPixels
969
+ );
970
+ }
971
+
972
+ if (that.treeSetting != null && that.treeSetting.visable) {
973
+ that.$set(
974
+ that,
975
+ "treeHeight",
976
+ window.innerHeight -
977
+ 16 -
978
+ (that.$refs.tree as any).$el.getBoundingClientRect().top -
979
+ (that.value && that.value.btnShow ? 150 : 0) -
980
+ that.treeAutoFitPixels
981
+ );
982
+ }
983
+ }, 0);
984
+ }
985
+ }
986
+
987
+ @Watch("treeShapeName")
988
+ watchTreeShapeName(val, oldVal) {
989
+ (this.$refs.tree as any).filter(val);
990
+ }
991
+
992
+ created() {
993
+ // const coms = [KZ_TextBox]; // 将来如果有其它组件,都可以写到这个数组里
994
+
995
+ // coms.forEach((com) => {
996
+ // Vue.component(com.name, com);
997
+ // });
998
+
999
+ // console.log(this.listColumns);
1000
+ this.initTableField();
1001
+ //获取树数据
1002
+ if (this.treeSetting.visable) {
1003
+ this.getTreeSelect();
1004
+ }
1005
+ if (this.isAutoLoad) {
1006
+ if (this.moduleName && this.serviceName) this.getList();
1007
+ }
1008
+ this.editSetting.pkField = this.pkField;
1009
+ this.listSetting.pkField = this.pkField;
1010
+ if (this.isWfEnable) {
1011
+ this.updateOpMenu({ visable: true }, ["startWf", "showWf"]);
1012
+ }
1013
+ }
1014
+
1015
+ getFileNickName = getFileNickName;
1016
+ getFilePriviewUrl = getFilePriviewUrl;
1017
+ filePriview = filePriview;
1018
+ getTreeSelect() {
1019
+ // treeSelect(this.treeSetting.moduleName).then((response) => {
1020
+ // this.treeShapeOptions = response.data;
1021
+ // });
1022
+ treeSelect(this.treeSetting.moduleName, this.treeShapeName).then(
1023
+ (response) => {
1024
+ this.treeShapeOptions = response.data;
1025
+ if (this.treeShapeOptions.length > 0) {
1026
+ if (this.currentNodekey) {
1027
+ this.$nextTick(() => {
1028
+ (this.$refs as any).tree.setCurrentKey(this.currentNodekey); //一定要加这个选中了否则样式没有出来
1029
+ // this.handleNodeClick(this.treeShapeOptions[0].children[0])//默认点击行
1030
+ });
1031
+ }
1032
+ }
1033
+ }
1034
+ );
1035
+ }
1036
+ // 筛选节点
1037
+ filterNode(value, data) {
1038
+ if (!value) return true;
1039
+ return data.label.indexOf(value) !== -1;
1040
+ }
1041
+
1042
+ // 节点单击事件
1043
+ handleNodeClick(data) {
1044
+ let tree = this.treeSetting;
1045
+ this.moduleName = tree.moduleName;
1046
+ this.serviceName = tree.serviceName;
1047
+ // if (data.type === "0") {
1048
+ // console.log(tree.pkField);
1049
+ // console.log(this.listQueryParams);
1050
+ // this.listQueryParams[tree.pkField] = data[tree.treeFkField];
1051
+ // console.log(this.listQueryParams[tree.pkField]);
1052
+ // } else if (data.type === "1") {
1053
+ // this.listQueryParams.postId = data.id;
1054
+ // this.listQueryParams.deptId = undefined;
1055
+ // }
1056
+ this.listQueryParams[tree.pkField] = data[tree.treeFkField];
1057
+ this.currentSelectTreeId = data.id;
1058
+ this.listQueryParams.pageNum = 1;
1059
+ this.loading = true;
1060
+ initField(this.moduleName, data)
1061
+ .then((response) => {
1062
+ if (response.code != 200) {
1063
+ (this as any).msgError("初始化失败!");
1064
+ }
1065
+ listEntity(
1066
+ this.moduleName,
1067
+ this.serviceName,
1068
+ {
1069
+ interfaceSettingId: this.currentSelectTreeId,
1070
+ ...this.listQueryParams,
1071
+ },
1072
+ this.listSetting.getListAction
1073
+ ).then((response) => {
1074
+ this.listData = response.rows;
1075
+ this.listQueryParams.total = Number(response.total);
1076
+ this.loading = false;
1077
+ });
1078
+ })
1079
+ .catch(() => {
1080
+ this.loading = false;
1081
+ });
1082
+
1083
+ //this.getList();
1084
+ }
1085
+ onSearch(value) {
1086
+ console.log(111);
1087
+ }
1088
+ evalFunction(fn, row, column, value) {
1089
+ return this[fn](row, column, value);
1090
+ }
1091
+
1092
+ /** 自定义列显示格式方法 */
1093
+ fileFormat(data, column) {
1094
+ return this.getFileNickName(data.remark);
1095
+ }
1096
+ /** 自定义列显示格式方法 */
1097
+ remarkFormat(data, column) {
1098
+ return data.remark ? "有备注" : "无备注";
1099
+ }
1100
+ /** 自定义列点击方法 */
1101
+ onFilePriview(data, column) {
1102
+ if (data.remark) this.filePriview(data.remark);
1103
+ }
1104
+ /** 自定义列显示Html */
1105
+ getFilePriviewLink(data, column) {
1106
+ return `<a href="${this.getFilePriviewUrl(data.remark)}" target="_blank">${
1107
+ data.remark ? "自定义预览" : ""
1108
+ }</a>`;
1109
+ }
1110
+ getSummaries(param) {
1111
+ const { columns, data } = param;
1112
+ const sums = [];
1113
+ columns.forEach((column, index) => {
1114
+ if (index === 0) {
1115
+ sums[index] = "合计";
1116
+ return;
1117
+ }
1118
+ const values = data.map((item) => Number(item[column.property]));
1119
+
1120
+ this.listColumns.forEach((it) => {
1121
+ if (it.property == column.property && it.isShowSum) {
1122
+ {
1123
+ sums[index] = values.reduce((prev, curr) => {
1124
+ const value = Number(curr);
1125
+ if (!isNaN(value)) {
1126
+ return prev + curr;
1127
+ } else {
1128
+ return prev;
1129
+ }
1130
+ }, 0);
1131
+ sums[index];
1132
+ }
1133
+ }
1134
+ });
1135
+ });
1136
+
1137
+ return sums;
1138
+ }
1139
+
1140
+ /** 获取查询条件 */
1141
+ getSearchParams(pagerInfo, searchRules) {
1142
+ if (this.isSearchUseEntity)
1143
+ return this.getEntitySearchParams(pagerInfo, searchRules);
1144
+ if (!pagerInfo) pagerInfo = this.listQueryParams;
1145
+ if (!searchRules) searchRules = this.searchRules;
1146
+ // this.searchRules=[{op:"EQ", text: `用户编码`, property: "userNo", value: "", visible: true }]
1147
+ var searchParams = { rules: [] };
1148
+ for (var key in pagerInfo) {
1149
+ if (pagerInfo[key]) searchParams[key] = pagerInfo[key];
1150
+ }
1151
+ if (this.searchRules) {
1152
+ for (var item of searchRules) {
1153
+ if (
1154
+ item[item.property] ||
1155
+ item[item.property] == 0 ||
1156
+ item[item.property] == false
1157
+ ) {
1158
+ if (item.setting?.multiple) {
1159
+ if (item[item.property]) {
1160
+ searchParams.rules.push({
1161
+ op: item.op,
1162
+ property: item["property"],
1163
+ value: _.join(item[item.property], ","),
1164
+ });
1165
+ }
1166
+ } else if (item["displayType"] == "status") {
1167
+ if (item[item.property]) {
1168
+ searchParams.rules.push({
1169
+ op: item.op,
1170
+ property: item["property"],
1171
+ value: item[item.property][0],
1172
+ });
1173
+ }
1174
+ } else {
1175
+ searchParams.rules.push({
1176
+ op: item.op,
1177
+ property: item["property"],
1178
+ value: item[item.property],
1179
+ });
1180
+ }
1181
+ }
1182
+ }
1183
+ }
1184
+ return searchParams;
1185
+ }
1186
+ /** 获取查询条件 */
1187
+ getEntitySearchParams(pagerInfo, searchRules) {
1188
+ if (!pagerInfo) pagerInfo = this.listQueryParams;
1189
+ if (!searchRules) searchRules = this.searchRules;
1190
+ var searchParams = {};
1191
+ for (var key in pagerInfo) {
1192
+ if (
1193
+ pagerInfo[key] != undefined &&
1194
+ pagerInfo[key] != null &&
1195
+ pagerInfo[key] != ""
1196
+ )
1197
+ searchParams[key] = pagerInfo[key];
1198
+ }
1199
+ if (this.searchRules) {
1200
+ for (var item of searchRules) {
1201
+ if (
1202
+ item[item.property] == 0 ||
1203
+ (item[item.property] != undefined &&
1204
+ item[item.property] != null &&
1205
+ item.value != "")
1206
+ ) {
1207
+ if (item.displayType == "status") {
1208
+ if (item[item.property] || item[item.property] == 0) {
1209
+ searchParams[item.property] = item[item.property][0];
1210
+ }
1211
+ } else {
1212
+ searchParams[item.property] = item[item.property];
1213
+ }
1214
+ }
1215
+ }
1216
+ }
1217
+ return searchParams;
1218
+ }
1219
+
1220
+ //当前绑定实体字段值变更事件
1221
+ onChangeEvent(args) {
1222
+ //args: { property: this.column.property, value: value, entity: this.entity, column: this.column }
1223
+ //console.log(args);
1224
+ }
1225
+
1226
+ /** 查询用户列表 */
1227
+ getList() {
1228
+ this.loading = true;
1229
+ listEntity(
1230
+ this.moduleName,
1231
+ this.serviceName,
1232
+ {
1233
+ interfaceSettingId: this.currentSelectTreeId,
1234
+ op: "AND", //配置字段
1235
+ ...this.getSearchParams(undefined, undefined),
1236
+ },
1237
+ this.listSetting.getListAction
1238
+ )
1239
+ .then((response) => {
1240
+ this.listData = response.rows;
1241
+
1242
+ this.listQueryParams.total = Number(response.total);
1243
+ this.loading = false;
1244
+ })
1245
+ .catch(() => {
1246
+ this.loading = false;
1247
+ });
1248
+ }
1249
+
1250
+ /** 表格列显示格式化方法 */
1251
+ tableDisplayFormat(row, column, cellValue, listColumns) {
1252
+ if (!listColumns) listColumns = this.listColumns;
1253
+ for (var col of listColumns) {
1254
+ if (col.property == column.property) {
1255
+ if (col.setting) {
1256
+ var result = null;
1257
+ if (col.setting.dictType) {
1258
+ result = (this as any).getDictLabelByValue(
1259
+ col.setting.dictType,
1260
+ cellValue,
1261
+ col.setting.formatKeyValue
1262
+ );
1263
+ } else {
1264
+ switch (col.setting.type) {
1265
+ case "User":
1266
+ result = (this as any).getNickNameByUserId(cellValue);
1267
+ break;
1268
+ case "Site":
1269
+ result = getSiteNameByIdOrNo(cellValue);
1270
+ break;
1271
+ case "WorkArea":
1272
+ case "PlantArea":
1273
+ case "Workshop":
1274
+ case "ProductionLine":
1275
+ case "WorkshopSection":
1276
+ result = getWorkAreaNameByIdOrNo(cellValue);
1277
+ break;
1278
+ case "WorkCenter":
1279
+ result = getWorkCenterNameByIdOrNo(cellValue);
1280
+ break;
1281
+ case "WorkUnit":
1282
+ result = getWorkUnitNameByIdOrNo(cellValue);
1283
+ break;
1284
+ case "Dept":
1285
+ result = getNameByDeptId(cellValue);
1286
+ break;
1287
+ case "StorageZones":
1288
+ result = getStorageZoneNameByIdOrNo(cellValue);
1289
+ break;
1290
+ }
1291
+ }
1292
+ return result || cellValue;
1293
+ }
1294
+ break;
1295
+ }
1296
+ }
1297
+ console.log(cellValue);
1298
+ return cellValue;
1299
+ }
1300
+ tableDisplayFormatByUrl(row, column, cellValue) {
1301
+ // console.log("column", column);
1302
+ // console.log("cachedData", this.cachedData);
1303
+ if (
1304
+ !column.setting.dataName ||
1305
+ !column.setting.valueField ||
1306
+ !column.setting.displayField
1307
+ )
1308
+ return cellValue;
1309
+
1310
+ if (!this.cachedData[column.setting.dataName]) {
1311
+ getUrl(
1312
+ column.setting.urlFormat,
1313
+ column.setting.parameter || {},
1314
+ "false"
1315
+ ).then((response) => {
1316
+ this.$set(this.cachedData, column.setting.dataName, response.data);
1317
+ });
1318
+ }
1319
+
1320
+ for (var item of this.cachedData[column.setting.dataName]) {
1321
+ if (
1322
+ item[column.setting.valueField] == cellValue ||
1323
+ item.id == cellValue
1324
+ ) {
1325
+ return item[column.setting.displayField];
1326
+ }
1327
+ }
1328
+ return cellValue;
1329
+ }
1330
+ renderHeader(h, { column, $index }) {
1331
+ let realWidth = 0;
1332
+ let span = document.createElement("span");
1333
+
1334
+ span.style.display = "inline-block";
1335
+ span.innerText = column.label;
1336
+ document.body.appendChild(span);
1337
+
1338
+ realWidth = span.clientWidth;
1339
+ column.minWidth = realWidth;
1340
+
1341
+ document.body.removeChild(span);
1342
+ return h("span", {}, [column.label]);
1343
+ }
1344
+ /** 时间格式化显示方法 */
1345
+ dateFormat(data, column, value) {
1346
+ var format = undefined;
1347
+ if (column && column.setting && column.setting.format)
1348
+ format = column.setting.format;
1349
+ return Utils.formatDateTime(value, format);
1350
+ }
1351
+ /** 更新操作菜单按钮属性设置 */
1352
+ updateOpMenu(option, menuNames) {
1353
+ for (var menuName of menuNames) {
1354
+ for (var opMenu of this.opMenus) {
1355
+ if (opMenu.name == menuName) {
1356
+ for (var key in option) {
1357
+ opMenu[key] = option[key];
1358
+ }
1359
+ break;
1360
+ }
1361
+ }
1362
+ for (let opMenu of this.customOpMenus) {
1363
+ if (opMenu.name == menuName) {
1364
+ for (let key in option) {
1365
+ opMenu[key] = option[key];
1366
+ }
1367
+ break;
1368
+ }
1369
+ }
1370
+ }
1371
+ }
1372
+
1373
+ /** 更新列表列属性设置 */
1374
+ updateListColumn(option, columnNames) {
1375
+ this.updateColumns(option, columnNames, this.listColumns);
1376
+ }
1377
+ /** 更新编辑列属性设置 */
1378
+ updateEditColumn(option, columnNames) {
1379
+ this.updateColumns(option, columnNames, this.editColumns);
1380
+ }
1381
+ updateColumns(option, columnNames, columns) {
1382
+ for (var columnName of columnNames) {
1383
+ for (var column of columns) {
1384
+ if (column.property == columnName) {
1385
+ for (var key in option) {
1386
+ column[key] = option[key];
1387
+ }
1388
+ break;
1389
+ }
1390
+ }
1391
+ }
1392
+ }
1393
+ /** 重置操作菜单按钮状态 */
1394
+ setOpMenuEnable() {
1395
+ if (!this.currentEntity) {
1396
+ this.updateOpMenu({ disabled: true }, [
1397
+ "update",
1398
+ "copy",
1399
+ "delete",
1400
+ "detail",
1401
+ "print",
1402
+ "startWf",
1403
+ "showWf",
1404
+ ]);
1405
+ } else {
1406
+ this.updateOpMenu({ disabled: false }, ["delete"]);
1407
+ if (this.multiple) {
1408
+ this.updateOpMenu({ disabled: true }, [
1409
+ "update",
1410
+ "copy",
1411
+ "detail",
1412
+ "print",
1413
+ "startWf",
1414
+ "showWf",
1415
+ ]);
1416
+ } else {
1417
+ this.updateOpMenu({ disabled: false }, [
1418
+ "update",
1419
+ "copy",
1420
+ "delete",
1421
+ "detail",
1422
+ "print",
1423
+ "startWf",
1424
+ "showWf",
1425
+ ]);
1426
+ }
1427
+ }
1428
+ }
1429
+ /** 操作菜单按钮点击处理 */
1430
+ onOpMenuClick(args) {
1431
+ var opMenu = args.opMenu;
1432
+ switch (opMenu.name) {
1433
+ case "add":
1434
+ this.handleAdd();
1435
+ break;
1436
+ case "copy":
1437
+ this.handleCopy();
1438
+ break;
1439
+ case "update":
1440
+ this.handleUpdate(undefined);
1441
+ break;
1442
+ case "delete":
1443
+ this.handleDelete(undefined);
1444
+ break;
1445
+ case "import":
1446
+ this.handleImport();
1447
+ break;
1448
+ case "export":
1449
+ this.handleExport();
1450
+ break;
1451
+ case "print":
1452
+ this.handlePrint();
1453
+ break;
1454
+ case "search":
1455
+ this.handleSearch();
1456
+ break;
1457
+ case "startWf":
1458
+ this.onStartWfClick(this.currentEntity);
1459
+ break;
1460
+ case "showWf":
1461
+ this.onShowWfClick(this.currentEntity);
1462
+ break;
1463
+ }
1464
+ }
1465
+ /** 自定义操作菜单按钮点击处理 */
1466
+ onCustomOpMenuClick(args) {
1467
+ // console.log("ListBasePage:onCustomOpMenuClick:" + args.opMenu.name);
1468
+ }
1469
+ //多表格自定义操作菜单按钮点击处理
1470
+ doubleOnCustomOpMenuClick(args) {}
1471
+ /** 列表表格自定义按钮点击处理 */
1472
+ onListCustomOpMenuClick(args) {
1473
+ //console.log("ListBasePage:onListCustomOpMenuClick:" + args.opMenu.name);
1474
+ }
1475
+ /** 编辑界面自定义按钮点击处理 */
1476
+ onEditCustomOpMenuClick(args) {
1477
+ //console.log("ListBasePage:onEditCustomOpMenuClick:" + args.opMenu.name);
1478
+ }
1479
+ /** 编辑界面保存按钮点击处理 */
1480
+ onEditSaveClick(args) {
1481
+ var self = this;
1482
+ console.log(args);
1483
+ //验证JSON格式
1484
+ if (args.data.validationRules || args.data.setting) {
1485
+ try {
1486
+ if (args.data.validationRules) {
1487
+ var validationRules = JSON.parse(args.data.validationRules);
1488
+ }
1489
+ if (args.data.setting) {
1490
+ var setting = JSON.parse(args.data.setting);
1491
+ }
1492
+ } catch (ex) {
1493
+ (self as any).msgError("验证规则设置有误,JSON格式不正确,请检查!");
1494
+ this.$set(this.editSetting, "submitLoading", false);
1495
+ return;
1496
+ }
1497
+ }
1498
+ //CheckBox数组转为字符串
1499
+ this.editColumns.forEach((item) => {
1500
+ for (const key in args.data || args.data.data) {
1501
+ if (
1502
+ key == item.property &&
1503
+ (item.displayType == "CheckBox" || item.setting?.multiple)
1504
+ ) {
1505
+ if (args.data[key]) {
1506
+ args.data[key] = _.join(args.data[key], ",");
1507
+ } else if (args.data.data[key]) {
1508
+ args.data.data[key] = _.join(args.data.data[key], ",");
1509
+ }
1510
+ }
1511
+ }
1512
+ });
1513
+ if (
1514
+ args.data[self.pkField] !== undefined ||
1515
+ (args.data.data && args.data.data[self.pkField] !== undefined)
1516
+ ) {
1517
+ // if (this.editSetting.isShowEditItems) {
1518
+ // // args.data.data.id=1
1519
+ // args.data.items.forEach((item) => {
1520
+ // // item.id=1
1521
+ // });
1522
+ // saveWithItems(args.data).then((response) => {
1523
+ // self.getList();
1524
+ // (self as any).msgSuccess("修改成功");
1525
+ // if (self.editSetting.isCloseOnSave) self.editSetting.isShow = false;
1526
+ // self.$set(this.editSetting, "submitLoading", false);
1527
+ // });
1528
+ // } else {
1529
+ updateEntity(self.moduleName, self.serviceName, args.data).then(
1530
+ (response) => {
1531
+ self.getList();
1532
+ (self as any).msgSuccess("修改成功");
1533
+ if (self.editSetting.isCloseOnSave) self.editSetting.isShow = false;
1534
+ self.$set(this.editSetting, "submitLoading", false);
1535
+ //self.editSetting.isShow = false;
1536
+ },
1537
+ (error) => {
1538
+ this.editColumns.forEach((item) => {
1539
+ for (const key in args.data || args.data.data) {
1540
+ if (
1541
+ key == item.property &&
1542
+ (item.displayType == "CheckBox" || item.setting?.multiple)
1543
+ ) {
1544
+ if (args.data[key]) {
1545
+ args.data[key] = _.split(args.data[key], ",");
1546
+ } else if (args.data.data[key]) {
1547
+ args.data.data[key] = _.split(args.data.data[key], ",");
1548
+ }
1549
+ }
1550
+ }
1551
+ });
1552
+ self.$set(this.editSetting, "submitLoading", false);
1553
+ /*console.log(error);*/
1554
+ }
1555
+ );
1556
+ // }
1557
+ } else {
1558
+ // if (this.editSetting.isShowEditItems) {
1559
+ // args.data.data.id = null;
1560
+ // args.data.items.forEach((item) => {
1561
+ // item.id = null;
1562
+ // });
1563
+ // saveWithItems(args.data).then((response) => {
1564
+ // self.getList();
1565
+ // (self as any).msgSuccess("新增成功");
1566
+ // if (self.editSetting.isCloseOnSave) self.editSetting.isShow = false;
1567
+ // self.$set(this.editSetting, "submitLoading", false);
1568
+ // });
1569
+ // } else {
1570
+ addEntity(self.moduleName, self.serviceName, args.data).then(
1571
+ (response) => {
1572
+ self.getList();
1573
+ (self as any).msgSuccess("新增成功");
1574
+ if (self.editSetting.isCloseOnSave) self.editSetting.isShow = false;
1575
+ self.$set(this.editSetting, "submitLoading", false);
1576
+ },
1577
+ (error) => {
1578
+ this.editColumns.forEach((item) => {
1579
+ for (const key in args.data || args.data.data) {
1580
+ if (
1581
+ key == item.property &&
1582
+ (item.displayType == "CheckBox" || item.setting?.multiple)
1583
+ ) {
1584
+ if (args.data[key]) {
1585
+ args.data[key] = _.split(args.data[key], ",");
1586
+ } else if (args.data.data[key]) {
1587
+ args.data.data[key] = _.split(args.data.data[key], ",");
1588
+ }
1589
+ }
1590
+ }
1591
+ });
1592
+ self.$set(this.editSetting, "submitLoading", false);
1593
+ /*console.log(error);*/
1594
+ }
1595
+ );
1596
+ // }
1597
+ }
1598
+ }
1599
+
1600
+ onEditCancelClick(args) {
1601
+ //console.log("ListBasePage:onEditCancelClick:");
1602
+ }
1603
+ /** 搜索按钮操作 */
1604
+ handleQuery() {
1605
+ let keys = Object.keys(this.rules).length;
1606
+ let num = 0;
1607
+ if (keys > 0) {
1608
+ for (const key in this.rules) {
1609
+ this.searchRules.forEach((item, index) => {
1610
+ if (item.property == key) {
1611
+ (this.$refs[`queryForm` + index] as any)[0].validate((valid) => {
1612
+ if (valid) {
1613
+ num++;
1614
+ if (num == keys) {
1615
+ this.listQueryParams.pageNum = 1;
1616
+ this.getList();
1617
+ }
1618
+ }
1619
+ });
1620
+ }
1621
+ });
1622
+ }
1623
+ } else {
1624
+ this.listQueryParams.pageNum = 1;
1625
+ this.getList();
1626
+ }
1627
+ }
1628
+ /** 重置按钮操作 */
1629
+ resetQuery() {
1630
+ for (var searchRule of this.searchRules) {
1631
+ this.$set(searchRule, searchRule.property, undefined);
1632
+ if (searchRule.displayType == "Lookup") {
1633
+ (this as any).$refs.Lookup.forEach((item) => {
1634
+ item.reset();
1635
+ });
1636
+ }
1637
+ if (searchRule.displayType == "Cascader") {
1638
+ (this as any).$refs.cascader.forEach((item) => {
1639
+ item.reset();
1640
+ });
1641
+ }
1642
+ }
1643
+ (this as any).resetForm("queryForm");
1644
+
1645
+ this.handleQuery();
1646
+ }
1647
+ //点击行多选
1648
+ clickRow(row, column, event) {
1649
+ // 单选
1650
+ if (!this.listSetting.multipleChoice) {
1651
+ if (this.currentEntities[0] == row) {
1652
+ this.currentEntities = [];
1653
+ (this.$refs.multipleTable as any).clearSelection();
1654
+ } else {
1655
+ this.currentEntities = [row];
1656
+ (this.$refs.multipleTable as any).clearSelection();
1657
+ (this.$refs.multipleTable as any).toggleRowSelection(row, true);
1658
+ this.onSelectionChange(this.currentEntities, row);
1659
+ }
1660
+ } else {
1661
+ //多选
1662
+ const selected = this.currentEntities.some(
1663
+ (item) => item[this.pkField] === row[this.pkField]
1664
+ );
1665
+ if (!selected) {
1666
+ //选择
1667
+ this.currentEntities.push(row);
1668
+ (this.$refs.multipleTable as any).toggleRowSelection(row, true);
1669
+ this.onSelectionChange(this.currentEntities, row);
1670
+ } else {
1671
+ // 取消
1672
+ var finalArr = this.currentEntities.filter((item) => {
1673
+ return item[this.pkField] !== row[this.pkField];
1674
+ });
1675
+ this.currentEntities = finalArr;
1676
+
1677
+ (this.$refs.multipleTable as any).toggleRowSelection(row, false);
1678
+ }
1679
+ }
1680
+ }
1681
+ // 多选框选中数据
1682
+ onSelectionChange(selection, row) {
1683
+ this.ids = selection.map((item) => item[this.pkField]);
1684
+ if (this.displayField)
1685
+ this.idsText = selection.map((item) => item[this.displayField]);
1686
+ this.single = selection.length == 1;
1687
+ this.multiple = selection.length > 1;
1688
+ if (selection.length > 0) this.currentEntity = selection[0];
1689
+ else this.currentEntity = undefined;
1690
+ //this.setOpMenuEnable();
1691
+ this.currentEntities = selection;
1692
+ this.setOpMenuEnable();
1693
+ }
1694
+ // 表单重置
1695
+ reset() {
1696
+ var entity = {};
1697
+ for (var key in this.currentEntity) {
1698
+ entity[key] = undefined;
1699
+ }
1700
+ for (var column of this.editColumns) {
1701
+ entity[column.property] = column.default;
1702
+ }
1703
+ this.$set(this, "currentEntity", entity);
1704
+ }
1705
+ /** 新增按钮操作 */
1706
+
1707
+ handleAdd() {
1708
+ // this.reset();
1709
+ // this.editSetting.title = "添加";
1710
+ // // this.$refs.editDialog.show();
1711
+ // this.editSetting.isShow = true;
1712
+ // //this.form.password = this.initPassword
1713
+ this.reset();
1714
+ if (
1715
+ this.moduleName == "lowcode" &&
1716
+ (this.serviceName == "fieldDefinition" ||
1717
+ this.serviceName == "listSetting" ||
1718
+ this.serviceName == "dataEditing" ||
1719
+ this.serviceName == "search")
1720
+ ) {
1721
+ if (this.currentSelectTreeId == undefined) {
1722
+ (this as any).msgError("请在左侧选择一个界面设置!");
1723
+ } else {
1724
+ Vue.set(
1725
+ this.currentEntity,
1726
+ "interfaceSettingId",
1727
+ this.currentSelectTreeId
1728
+ );
1729
+ this.editSetting.isShow = true;
1730
+ this.editSetting.title = "添加";
1731
+ }
1732
+ } else {
1733
+ this.editColumns.forEach((item) => {
1734
+ if (item.setting && item.setting.default) {
1735
+ this.$set(this.currentEntity, item.property, item.setting.default);
1736
+ }
1737
+ });
1738
+ this.editSetting.isShow = true;
1739
+ this.editSetting.title = "添加";
1740
+ }
1741
+ }
1742
+ /** 复制按钮操作 */
1743
+ handleCopy() {}
1744
+ /** 修改按钮操作 */
1745
+ handleUpdate(row) {
1746
+ var self = this;
1747
+ console.log("update");
1748
+ //this.reset()
1749
+ // this.getTreeSelect();
1750
+ const id =
1751
+ (row && row[this.listSetting.pkField]) ||
1752
+ this.currentEntity[this.listSetting.pkField] ||
1753
+ this.ids[0];
1754
+ var query = {};
1755
+ query[this.listSetting.pkField] = id;
1756
+ getEntity(this.moduleName, this.serviceName, query).then((response) => {
1757
+ this.editColumns.forEach((item) => {
1758
+ for (const key in response.data) {
1759
+ if (
1760
+ key == item.property &&
1761
+ (item.displayType == "CheckBox" || item.setting?.multiple)
1762
+ ) {
1763
+ response.data[key] = _.split(response.data[key], ",");
1764
+ }
1765
+ }
1766
+ });
1767
+ self.currentEntity = response.data;
1768
+ self.editSetting.title = self.editSetting.title || "修改";
1769
+ this.editSetting.type = "del";
1770
+
1771
+ self.editSetting.isShow = true;
1772
+ });
1773
+ }
1774
+
1775
+ /** 删除按钮操作 */
1776
+ handleDelete(row) {
1777
+ this.submitLoading = true;
1778
+ const ids = row ? row[this.pkField] : this.ids;
1779
+ const text = this.idsText;
1780
+ let $this = this;
1781
+ (this as any)
1782
+ .$confirm("是否确认删除?", "警告", {
1783
+ confirmButtonText: "确定",
1784
+ cancelButtonText: "取消",
1785
+ type: "warning",
1786
+ })
1787
+ .then(function () {
1788
+ return delEntity(
1789
+ $this.moduleName,
1790
+ $this.serviceName,
1791
+ ($this as any).updateParamIds(ids)
1792
+ );
1793
+ })
1794
+ .then(() => {
1795
+ $this.getList();
1796
+ ($this as any).msgSuccess("删除成功");
1797
+ });
1798
+
1799
+ this.submitLoading = false;
1800
+ }
1801
+ /** 导出按钮操作 */
1802
+ handleExport() {
1803
+ var url = this.moduleName + "/" + this.serviceName + "/export";
1804
+ (this as any).download(
1805
+ url,
1806
+ {
1807
+ interfaceSettingId: this.currentSelectTreeId,
1808
+ op: "AND", //配置字段
1809
+ ...this.getSearchParams(undefined, undefined),
1810
+ },
1811
+ `${this.serviceName + new Date().getTime()}.xlsx`
1812
+ );
1813
+ }
1814
+ /** 导入按钮操作 */
1815
+ handleImport() {
1816
+ this.uploadSetting.title = "导入";
1817
+ // 上传的地址
1818
+ this.uploadSetting.url =
1819
+ process.env.VUE_APP_BASE_API +
1820
+ `${this.moduleName}/${this.serviceName}/importData`;
1821
+ (this.$refs.uploadDialog as any).show();
1822
+ }
1823
+ /** 搜索按钮 */
1824
+ handleSearch() {
1825
+ if (this.isShowSearch == true) {
1826
+ this.isShowSearch = false;
1827
+ } else {
1828
+ this.isShowSearch = true;
1829
+ }
1830
+ }
1831
+ //列表点击属性字段点击
1832
+ statusClick(msg) {
1833
+ alert();
1834
+ }
1835
+
1836
+ onImportSuccess() {
1837
+ this.getList();
1838
+ }
1839
+ handlePrint() {
1840
+ this.printSetting.title = "打印模板";
1841
+ this.printSetting.currentEntity = this.currentEntity;
1842
+ this.printSetting.templateType = `/${this.moduleName}/${this.serviceName}`;
1843
+ (this.$refs.printDialog as any).show();
1844
+ // this.printDialogShow = true;
1845
+ }
1846
+
1847
+ initTableField() {
1848
+ var entityName =
1849
+ this.serviceName.charAt(0).toUpperCase() + this.serviceName.slice(1);
1850
+ selectInterfaceSetting({
1851
+ moduleName: this.moduleName,
1852
+ entityName: entityName,
1853
+ }).then((response) => {
1854
+ if (response.data.length == 1) {
1855
+ //初始化菜单按钮
1856
+ if (response.data[0].setting) {
1857
+ console.log("初始化菜单按钮");
1858
+ let updateOpMenu = JSON.parse(response.data[0].setting);
1859
+ this.updateOpMenu(
1860
+ { visable: updateOpMenu.visable },
1861
+ updateOpMenu.updateOpMenu
1862
+ );
1863
+ }
1864
+ //初始化列表格字段
1865
+ initTableField({ interfaceSettingId: response.data.id }).then(
1866
+ (response) => {
1867
+ console.log("初始化列表字段");
1868
+ for (var d of response.data) {
1869
+ let a = {
1870
+ setting: "",
1871
+ width: "",
1872
+ text: "",
1873
+ property: "",
1874
+ visible: "",
1875
+ displayType: "",
1876
+ };
1877
+ if (d.setting) {
1878
+ a.setting = JSON.parse(d.setting);
1879
+ }
1880
+ if (d.width) {
1881
+ a.width = d.width;
1882
+ }
1883
+ if (d.displayType) {
1884
+ a.displayType = d.displayType;
1885
+ }
1886
+ a.text = d.displayText;
1887
+ a.property = d.field;
1888
+ a.visible = d.display;
1889
+ this.listColumns.push(a);
1890
+ }
1891
+ }
1892
+ );
1893
+ //初始化编辑页面
1894
+ initEditListColumns({ interfaceSettingId: response.data.id }).then(
1895
+ (response) => {
1896
+ console.log("初始化编辑页面");
1897
+ for (var d of response.data) {
1898
+ //初始化编辑字段
1899
+ let a = {
1900
+ setting: "",
1901
+ width: "",
1902
+ text: "",
1903
+ property: "",
1904
+ visible: "",
1905
+ displayType: "",
1906
+ items: [],
1907
+ };
1908
+ if (d.setting) {
1909
+ if (d.displayMode == "CheckBox") {
1910
+ a.items = JSON.parse(d.setting);
1911
+ } else {
1912
+ a.setting = JSON.parse(d.setting);
1913
+ }
1914
+ }
1915
+ if (d.width) {
1916
+ a.width = d.width;
1917
+ }
1918
+ a.text = d.displayText;
1919
+ a.property = d.field;
1920
+ a.visible = d.display;
1921
+ a.displayType = d.displayMode;
1922
+ this.editColumns.push(a);
1923
+ //初始化验证规则
1924
+ if (d.validationRules) {
1925
+ this.$set(
1926
+ this.editRules,
1927
+ a.property,
1928
+ JSON.parse(d.validationRules)
1929
+ );
1930
+ }
1931
+ }
1932
+ }
1933
+ );
1934
+ //初始化搜索栏
1935
+ initSearchRules({ interfaceSettingId: response.data.id }).then(
1936
+ (response) => {
1937
+ console.log("初始化搜索列表");
1938
+ for (var d of response.data) {
1939
+ let a = {
1940
+ text: "",
1941
+ property: "",
1942
+ value: "",
1943
+ visible: "",
1944
+ setting: "",
1945
+ displayType: "",
1946
+ items: "",
1947
+ op: "",
1948
+ };
1949
+ if (d.setting) {
1950
+ a.setting = JSON.parse(d.setting);
1951
+ }
1952
+ a.text = d.displayText;
1953
+ a.property = d.field;
1954
+ a.visible = d.display;
1955
+ a.displayType = d.displayMode;
1956
+ a.op = d.matchingMode;
1957
+ this.searchRules.push(a);
1958
+ }
1959
+ }
1960
+ );
1961
+ }
1962
+ });
1963
+ }
1964
+ submitForm() {
1965
+ this.$emit("confirm", this.currentEntity);
1966
+ }
1967
+ cancel() {
1968
+ this.$emit("close");
1969
+ }
1970
+ tree_insert() {}
1971
+ tree_update() {}
1972
+ tree_del() {}
1973
+ dblClick(row, column, cell, event) {
1974
+ console.log(row);
1975
+ }
1976
+ selectable() {}
1977
+
1978
+ /**
1979
+ * 发起审批
1980
+ */
1981
+ onStartWfClick(entity) {
1982
+ let params = {
1983
+ id: entity.id,
1984
+ masterObject: entity,
1985
+ slaveObject: null,
1986
+ };
1987
+
1988
+ (this as any)
1989
+ .$confirm("是否确认发起审批?")
1990
+ .then((res) => {
1991
+ startWorkflow(
1992
+ this.moduleName,
1993
+ this.serviceName,
1994
+ params,
1995
+ this.wfKey
1996
+ ).then(
1997
+ (response) => {
1998
+ (this as any).$message.success("发起审批成功");
1999
+ this.getList();
2000
+ },
2001
+ (error) => {}
2002
+ );
2003
+ })
2004
+ .catch((e) => {});
2005
+ }
2006
+ /**
2007
+ * 审批进度
2008
+ */
2009
+ onShowWfClick(entity) {
2010
+ if (!entity["wfWorkOrderId"]) {
2011
+ (this as any).$message.success("工作流实例为空,无法查看审批进度!");
2012
+ return;
2013
+ }
2014
+ (this as any).Dialog.open({
2015
+ component: WfDialog,
2016
+ setting: {
2017
+ isShow: true,
2018
+ title: "审批进度",
2019
+ size: "full", //可选项tiny/small/large/full
2020
+ // height: "80vh",
2021
+ labelWidth: "120px", //input标题宽度 不传默认为100px
2022
+ wfWorkOrderId: entity["wfWorkOrderId"],
2023
+ data: { entity: entity },
2024
+ },
2025
+ //beforeClose: (done) => {
2026
+ // //点右上角关闭按钮后触发
2027
+ // console.log("1");
2028
+ // done();
2029
+ //},
2030
+ //close: () => {
2031
+ // //关闭后触发
2032
+ // console.log("2");
2033
+ //},
2034
+ confirm: (result) => {
2035
+ //显式$emit('confirm')时触发
2036
+ console.log("3 ", result);
2037
+ },
2038
+ });
2039
+ }
2040
+
2041
+ mounted() {
2042
+ var that = this;
2043
+ if (this.listSetting.isShowSumRow) {
2044
+ setTimeout(() => {
2045
+ (that.$refs.multipleTable as any).$el.childNodes[2].style.height =
2046
+ "413px";
2047
+ }, 100);
2048
+ }
2049
+
2050
+ this.$nextTick(function () {
2051
+ if (this.listeningWindow) {
2052
+ if ((this.$refs.multipleTable as any) != null) {
2053
+ (this as any).tableHeight =
2054
+ window.innerHeight -
2055
+ 65 -
2056
+ (this.$refs.multipleTable as any).$el.getBoundingClientRect().top -
2057
+ (this.value && this.value.btnShow ? 150 : 0) -
2058
+ this.tableAutoFitPixels;
2059
+ if (that.treeSetting != null && that.treeSetting.visable) {
2060
+ that.$set(
2061
+ that,
2062
+ "treeHeight",
2063
+ window.innerHeight -
2064
+ 16 -
2065
+ (that.$refs.tree as any).$el.getBoundingClientRect().top -
2066
+ (that.value && that.value.btnShow ? 150 : 0) -
2067
+ that.treeAutoFitPixels
2068
+ );
2069
+ }
2070
+ // 监听窗口大小变化
2071
+ window.onresize = function () {
2072
+ if ((that.$refs.multipleTable as any) != null) {
2073
+ (that as any).tableHeight =
2074
+ window.innerHeight -
2075
+ 65 -
2076
+ (that.$refs.multipleTable as any).$el.getBoundingClientRect()
2077
+ .top -
2078
+ (that.value && that.value.btnShow ? 150 : 0) -
2079
+ that.tableAutoFitPixels;
2080
+ }
2081
+ if (that.treeSetting != null && that.treeSetting.visable) {
2082
+ that.$set(
2083
+ that,
2084
+ "treeHeight",
2085
+ window.innerHeight -
2086
+ 16 -
2087
+ (that.$refs.tree as any).$el.getBoundingClientRect().top -
2088
+ (that.value && that.value.btnShow ? 150 : 0) -
2089
+ that.treeAutoFitPixels
2090
+ );
2091
+ }
2092
+ };
2093
+ }
2094
+ }
2095
+ });
2096
+ }
2097
+ }
2098
+ </script>
2099
+
2100
+ <style scoped>
2101
+ .wrapper-container-supplement {
2102
+ /* min-height: 415px; */
2103
+ }
2104
+
2105
+ .rtdiv {
2106
+ height: 40px;
2107
+ }
2108
+
2109
+ .dialog-body-wrapper {
2110
+ height: 100%;
2111
+ margin-top: -20px;
2112
+ /* border-top: 1px solid #e7e8ed; */
2113
+ width: calc(100% + 40px);
2114
+ transform: translate(-20px, 0px);
2115
+ padding: 24px 24px 0 24px;
2116
+ }
2117
+
2118
+ .dialog-footer {
2119
+ bottom: auto;
2120
+ /* padding-top: 12px; */
2121
+ /* border-top: 1px solid #e7e8ed; */
2122
+ /* width: calc(100% + 48px); */
2123
+ /* transform: translate(-24px, 17px); */
2124
+ /* text-align: center; */
2125
+ }
2126
+
2127
+ /* ::v-deep .el-dialog{
2128
+ height: 100%;
2129
+ }
2130
+
2131
+ ::v-deep .el-dialog__body {
2132
+ height: calc(100% - 112px);
2133
+ overflow: auto;
2134
+ }*/
2135
+ </style>
2136
+ <style>
2137
+ .el-form--inline .el-form-item {
2138
+ margin-right: 8px;
2139
+ margin-bottom: 8px;
2140
+ }
2141
+
2142
+ .el-dialog__title {
2143
+ font-size: 16px;
2144
+ }
2145
+
2146
+ ::v-deep .sumrow .el-table {
2147
+ overflow: visible !important;
2148
+ }
2149
+
2150
+ .sumrow .el-table {
2151
+ overflow: visible !important;
2152
+ }
2153
+
2154
+ .treescroll {
2155
+ width: 100%;
2156
+ height: 700px;
2157
+ overflow: auto;
2158
+ }
2159
+
2160
+ #table-col .el-date-editor {
2161
+ width: 217px;
2162
+ }
2163
+
2164
+ #table-col .el-range-editor {
2165
+ width: 100%;
2166
+ }
2167
+ .el-form-item__error {
2168
+ z-index: 9999;
2169
+ }
2170
+ </style>