qgb-process 0.2.3 → 0.2.7

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 (502) hide show
  1. package/.env +2 -2
  2. package/.env.development +70 -70
  3. package/.env.pre +60 -60
  4. package/.env.production +48 -48
  5. package/.env.test +48 -48
  6. package/.eslintignore +4 -4
  7. package/.eslintrc.js +302 -302
  8. package/README.md +66 -66
  9. package/babel.config.js +5 -5
  10. package/commitlint.config.js +30 -30
  11. package/config/dev.env.js +7 -7
  12. package/config/index.js +82 -82
  13. package/config/prod.env.js +4 -4
  14. package/debug.log +4 -4
  15. package/index.js +6 -6
  16. package/jsconfig.json +9 -9
  17. package/lib/qgb-process.common.js +7666 -5069
  18. package/lib/qgb-process.umd.js +7666 -5069
  19. package/lib/qgb-process.umd.min.js +108 -108
  20. package/package.json +148 -148
  21. package/packages/index.js +26 -26
  22. package/public/index.html +47 -47
  23. package/public/js/qykf.js +21 -21
  24. package/src/App.vue +37 -37
  25. package/src/api/ApiExAndapp.js +24 -24
  26. package/src/api/EnterpriseAssociation.js +8 -8
  27. package/src/api/Notice.js +31 -31
  28. package/src/api/apiAcceptance/apiAcceptance.js +37 -37
  29. package/src/api/apiAddress.js +9 -9
  30. package/src/api/apiApprovalConfig.js +13 -13
  31. package/src/api/apiApprove.js +18 -18
  32. package/src/api/apiArrears/apiArrears.js +41 -41
  33. package/src/api/apiArrears/apiProjectArrears.js +16 -16
  34. package/src/api/apiArrears/index.js +15 -15
  35. package/src/api/apiAssets.js +19 -19
  36. package/src/api/apiAssociate.js +42 -42
  37. package/src/api/apiAudit/apiAudit.js +32 -32
  38. package/src/api/apiAuth.js +25 -25
  39. package/src/api/apiAuthentication.js +35 -35
  40. package/src/api/apiBankAccount/index.js +12 -12
  41. package/src/api/apiBudget/apiBudget.js +30 -30
  42. package/src/api/apiBudget/apiBudgets.js +105 -105
  43. package/src/api/apiCarRecord.js +48 -48
  44. package/src/api/apiCart.js +202 -202
  45. package/src/api/apiChangeTel.js +13 -13
  46. package/src/api/apiCheckingIn.js +95 -95
  47. package/src/api/apiCollection/index.js +13 -13
  48. package/src/api/apiContract/apiContract.js +21 -21
  49. package/src/api/apiContract/index.js +3 -3
  50. package/src/api/apiContract/quill-config.js +122 -122
  51. package/src/api/apiContractManage/apiContractManage.js +57 -57
  52. package/src/api/apiContractManage/index.js +2 -2
  53. package/src/api/apiContractManage/quill-config.js +121 -121
  54. package/src/api/apiCoping.js +22 -22
  55. package/src/api/apiCost/index.js +31 -31
  56. package/src/api/apiCreditManagement.js +16 -16
  57. package/src/api/apiCustomer/apiCustomer.js +12 -12
  58. package/src/api/apiDivisional.js +9 -9
  59. package/src/api/apiDivisionalManagementList.js +17 -17
  60. package/src/api/apiEmployeeRegularization.js +73 -73
  61. package/src/api/apiEquipmentRental.js +50 -50
  62. package/src/api/apiFormBuilder/menu.js +65 -65
  63. package/src/api/apiFormBuilder/reissueRule.js +15 -15
  64. package/src/api/apiFund/index.js +16 -16
  65. package/src/api/apiHelp.js +43 -43
  66. package/src/api/apiHome.js +24 -24
  67. package/src/api/apiIminfo.js +39 -39
  68. package/src/api/apiInventory.js +52 -52
  69. package/src/api/apiInventorySetting.js +9 -9
  70. package/src/api/apiInvoice.js +29 -29
  71. package/src/api/apiJobManage.js +15 -15
  72. package/src/api/apiLease/apiLease.js +12 -12
  73. package/src/api/apiLogisticsTransportation/apiLogisticsTransportation.js +34 -34
  74. package/src/api/apiLostPassword.js +9 -9
  75. package/src/api/apiMachine/api.js +3 -3
  76. package/src/api/apiMachine/apiCategory.js +18 -18
  77. package/src/api/apiMachine/apiHire.js +19 -19
  78. package/src/api/apiMachine/apiLease.js +27 -27
  79. package/src/api/apiMachine/apiLocation.js +4 -4
  80. package/src/api/apiMachine/apiRentInfo.js +107 -107
  81. package/src/api/apiMachine/apiRentPublish.js +14 -14
  82. package/src/api/apiMachine/apiStore.js +15 -15
  83. package/src/api/apiMachine/index.js +3 -3
  84. package/src/api/apiManagementStore/api.js +3 -3
  85. package/src/api/apiManagementStore/apiManagementStore.js +25 -25
  86. package/src/api/apiMaterCheckAndAccept/apiMaterCheckAndAccept.js +47 -47
  87. package/src/api/apiMaterCheckAndAccept/apiMechanicalSourcing.js +16 -16
  88. package/src/api/apiMaterCheckAndAccept/index.js +3 -3
  89. package/src/api/apiMaterials/aaaaaaaaaaaaaa.js +9 -9
  90. package/src/api/apiMaterials/api.js +3 -3
  91. package/src/api/apiMaterials/apiAddress.js +116 -116
  92. package/src/api/apiMaterials/apiBalanceData.js +188 -188
  93. package/src/api/apiMaterials/apiCommercialConcrete.js +36 -36
  94. package/src/api/apiMaterials/apiCommodity.js +70 -70
  95. package/src/api/apiMaterials/apiDownload.js +26 -26
  96. package/src/api/apiMaterials/apiHome.js +44 -44
  97. package/src/api/apiMaterials/apiItemBrand.js +9 -9
  98. package/src/api/apiMaterials/apiLogistics.js +72 -72
  99. package/src/api/apiMaterials/apiLogisticsReceipt.js +94 -94
  100. package/src/api/apiMaterials/apiMaterials.js +8 -8
  101. package/src/api/apiMaterials/apiMySalesOrder.js +21 -21
  102. package/src/api/apiMaterials/apiOfflineOrder.js +18 -18
  103. package/src/api/apiMaterials/apiOrder.js +183 -183
  104. package/src/api/apiMaterials/apiReceipt.js +45 -45
  105. package/src/api/apiMaterials/quill-config.js +122 -122
  106. package/src/api/apiMemberSelection.js +39 -39
  107. package/src/api/apiMessage.js +10 -10
  108. package/src/api/apiMock/mockOrder.js +98 -98
  109. package/src/api/apiMonthPlan/apiMonthPlan.js +47 -47
  110. package/src/api/apiMyBidding.js +8 -8
  111. package/src/api/apiMyMember/apiComInfo.js +17 -17
  112. package/src/api/apiMyMember/apiInviteJoin.js +24 -24
  113. package/src/api/apiMyMember/apiMember.js +24 -24
  114. package/src/api/apiMyMember/apiMemberApply.js +36 -36
  115. package/src/api/apiMyMember/apiMemberChance.js +40 -40
  116. package/src/api/apiOffer.js +40 -40
  117. package/src/api/apiOffice.js +19 -19
  118. package/src/api/apiPact.js +26 -26
  119. package/src/api/apiPassword.js +7 -7
  120. package/src/api/apiPay/apiPay.js +25 -25
  121. package/src/api/apiPaying.js +21 -21
  122. package/src/api/apiPayment/apiPayment.js +13 -13
  123. package/src/api/apiPayment/apiProjectPayment.js +13 -13
  124. package/src/api/apiPrint.js +23 -0
  125. package/src/api/apiProcess.js +65 -65
  126. package/src/api/apiProject/apiBaseList.js +29 -29
  127. package/src/api/apiProject/apiGoodsOffer.js +11 -11
  128. package/src/api/apiProject/apiInventory.js +116 -116
  129. package/src/api/apiProject/apiOfferOrder.js +12 -12
  130. package/src/api/apiProject/apiOfferQuery.js +18 -18
  131. package/src/api/apiProject/apiPlan.js +21 -21
  132. package/src/api/apiProject/apiProject.js +158 -158
  133. package/src/api/apiProjectProcurement/apiProjectProcurement.js +88 -88
  134. package/src/api/apiPurchase/apiPurchase.js +67 -67
  135. package/src/api/apiPurchaseApply.js +15 -15
  136. package/src/api/apiPurchasePay.js +16 -16
  137. package/src/api/apiRankManagement.js +24 -24
  138. package/src/api/apiRecruit.js +37 -37
  139. package/src/api/apiReimbursement/apiReimbursement.js +15 -15
  140. package/src/api/apiRisk/index.js +11 -11
  141. package/src/api/apiRoleManagement.js +15 -15
  142. package/src/api/apiRules/apiRules.js +11 -11
  143. package/src/api/apiSchedule/apiSchedule.js +17 -17
  144. package/src/api/apiSealRecord.js +52 -52
  145. package/src/api/apiSign.js +8 -8
  146. package/src/api/apiSolution/apiSolution.js +9 -9
  147. package/src/api/apiSubcontract.js +35 -35
  148. package/src/api/apiSystem/index.js +40 -40
  149. package/src/api/apiTask.js +76 -76
  150. package/src/api/apiTeam/api.js +3 -3
  151. package/src/api/apiTeam/apiUtils.js +11 -11
  152. package/src/api/apiTender.js +127 -127
  153. package/src/api/apiUser.js +24 -24
  154. package/src/api/apiUserEnterprise/api.js +3 -3
  155. package/src/api/apiUserEnterprise/apiUserEn.js +15 -15
  156. package/src/api/apiVolunteerTeam.js +11 -11
  157. package/src/api/apiWorkarea.js +33 -33
  158. package/src/api/apiXzqh.js +8 -8
  159. package/src/api/common/api.js +3 -3
  160. package/src/api/common/apiUtils.js +9 -9
  161. package/src/api/customer.js +21 -21
  162. package/src/api/evection.js +19 -19
  163. package/src/api/guide.js +9 -9
  164. package/src/api/sociaManageApi.js +30 -30
  165. package/src/assets/Area.json +1773 -1773
  166. package/src/assets/css/quill.bubble.css +952 -952
  167. package/src/assets/css/quill.core.css +397 -397
  168. package/src/assets/css/quill.snow.css +945 -945
  169. package/src/assets/data.js +284 -284
  170. package/src/assets/fonts/Read Me.txt +7 -7
  171. package/src/assets/fonts/demo-files/demo.css +155 -155
  172. package/src/assets/fonts/demo-files/demo.js +30 -30
  173. package/src/assets/fonts/demo.html +951 -951
  174. package/src/assets/fonts/fonts/icomoon.svg +130 -130
  175. package/src/assets/fonts/style.css +563 -563
  176. package/src/assets/icons/checkbox.svg +12 -12
  177. package/src/assets/icons/columns-3.svg +12 -12
  178. package/src/assets/icons/columns.svg +12 -12
  179. package/src/assets/icons/custom-table.svg +12 -12
  180. package/src/assets/icons/date.svg +19 -19
  181. package/src/assets/icons/daterange.svg +12 -12
  182. package/src/assets/icons/fuzhi.svg +11 -11
  183. package/src/assets/icons/fuzhi_03.svg +5 -5
  184. package/src/assets/icons/gaojizujian.svg +12 -12
  185. package/src/assets/icons/groupSummary.svg +12 -12
  186. package/src/assets/icons/groupTitle.svg +12 -12
  187. package/src/assets/icons/image-uploader.svg +12 -12
  188. package/src/assets/icons/input-number.svg +12 -12
  189. package/src/assets/icons/input.svg +12 -12
  190. package/src/assets/icons/quill-editor.svg +12 -12
  191. package/src/assets/icons/radio.svg +12 -12
  192. package/src/assets/icons/select.svg +12 -12
  193. package/src/assets/icons/switch.svg +12 -12
  194. package/src/assets/icons/textarea.svg +12 -12
  195. package/src/assets/icons/upload-file.svg +12 -12
  196. package/src/assets/marketplace.js +289 -289
  197. package/src/components/ComAduitNew.vue +477 -477
  198. package/src/components/CommonAduit.vue +512 -512
  199. package/src/components/CommonAduitNew.vue +906 -906
  200. package/src/components/CommonAduitNews.vue +753 -753
  201. package/src/components/CommonUEditer.vue +63 -63
  202. package/src/components/PersonCenter/Mess.vue +59 -59
  203. package/src/components/PersonCenter/Title.vue +80 -80
  204. package/src/components/SvgIcon.vue +57 -57
  205. package/src/components/XmCommonAduit.vue +761 -761
  206. package/src/components/feiyCommon.vue +713 -713
  207. package/src/components/form/card.js +5 -5
  208. package/src/components/form/chinese.js +6 -6
  209. package/src/components/form/chinessstring.js +5 -5
  210. package/src/components/form/hunhe.js +8 -8
  211. package/src/components/form/hunhecq.js +8 -8
  212. package/src/components/form/hunheh.js +8 -8
  213. package/src/components/form/num.js +12 -12
  214. package/src/components/form/numstring.js +5 -5
  215. package/src/components/form/user.js +7 -7
  216. package/src/components/form/validate.js +42 -42
  217. package/src/components/form/validcredit.js +5 -5
  218. package/src/components/fundCommonAduit.vue +661 -661
  219. package/src/components/public/BaseCustomTable.vue +71 -71
  220. package/src/components/public/BaseDialog.vue +144 -144
  221. package/src/components/public/BaseEmptyData.vue +73 -73
  222. package/src/components/public/BaseFormTitle.vue +39 -39
  223. package/src/components/public/BasePagination.vue +55 -55
  224. package/src/components/public/BaseRouter.vue +14 -14
  225. package/src/components/public/BaseUpload.vue +185 -185
  226. package/src/components/public/Bottom.vue +62 -62
  227. package/src/components/public/Footer.vue +412 -412
  228. package/src/components/public/Header.vue +30 -30
  229. package/src/components/public/LeftMenu.vue +170 -170
  230. package/src/components/public/MemberSelection coby.vue +444 -444
  231. package/src/components/public/MemberSelection.vue +487 -487
  232. package/src/components/public/NewLeftMenu.vue +418 -418
  233. package/src/components/public/PicturesPreview.vue +62 -62
  234. package/src/components/public/Popout.vue +147 -147
  235. package/src/components/public/TagLine.vue +353 -353
  236. package/src/components/public/components/BaseImageUploadDrag.vue +320 -320
  237. package/src/components/public/components/HeadBar.vue +315 -315
  238. package/src/components/public/components/MenuList.vue +110 -110
  239. package/src/components/public/components/NewHeadBar.vue +936 -936
  240. package/src/components/public/components/QuickGoods.vue +273 -273
  241. package/src/components/public/components/Search.vue +164 -164
  242. package/src/components/public/components/Userinfo.vue +383 -383
  243. package/src/components/utils/pdf.js +254 -254
  244. package/src/components/xmfyCommonAduit.vue +752 -752
  245. package/src/filters/index.js +619 -619
  246. package/src/fnc/arr.js +102 -102
  247. package/src/fnc/quill-config.js +121 -121
  248. package/src/fnc/unit.js +102 -102
  249. package/src/fnc/verify.js +187 -187
  250. package/src/fnc/verifyStatus.js +24 -24
  251. package/src/formBuilder/apiBusiness.js +67 -67
  252. package/src/formBuilder/business.js +1039 -1039
  253. package/src/formBuilder/component/components/data.js +719 -719
  254. package/src/formBuilder/component/components/purchaseIndex.vue +1109 -1109
  255. package/src/formBuilder/component/purchase.vue +35 -35
  256. package/src/formBuilder/components/app-main/components/components/GroupSummary.vue +33 -33
  257. package/src/formBuilder/components/app-main/components/components/GroupTitle.vue +33 -33
  258. package/src/formBuilder/components/app-main/components/components/bank.vue +226 -226
  259. package/src/formBuilder/components/app-main/components/components/bankFormHeard.vue +298 -298
  260. package/src/formBuilder/components/app-main/components/components/builder.vue +718 -718
  261. package/src/formBuilder/components/app-main/components/components/columns.vue +393 -393
  262. package/src/formBuilder/components/app-main/components/components/customTable.vue +1758 -1758
  263. package/src/formBuilder/components/app-main/components/components/formDep.vue +105 -105
  264. package/src/formBuilder/components/app-main/components/components/handleCode.vue +39 -39
  265. package/src/formBuilder/components/app-main/components/components/itemOption.vue +116 -116
  266. package/src/formBuilder/components/app-main/components/components/linkForm.vue +116 -116
  267. package/src/formBuilder/components/app-main/components/components/listDesign.vue +772 -772
  268. package/src/formBuilder/components/app-main/components/components/optionSolt.js +78 -78
  269. package/src/formBuilder/components/app-main/components/components/person.vue +104 -104
  270. package/src/formBuilder/components/app-main/components/components/postman.vue +40 -40
  271. package/src/formBuilder/components/app-main/components/components/previewDialog.vue +391 -391
  272. package/src/formBuilder/components/app-main/components/components/tableIndex.vue +51 -51
  273. package/src/formBuilder/components/app-main/components/components/tableList.vue +561 -561
  274. package/src/formBuilder/components/app-main/components/components/twoColumns.vue +52 -52
  275. package/src/formBuilder/components/app-main/components/main-center.vue +187 -187
  276. package/src/formBuilder/components/app-main/components/main-header.vue +351 -351
  277. package/src/formBuilder/components/app-main/components/main-left.vue +179 -179
  278. package/src/formBuilder/components/app-main/components/main-right/components/components/calculateDialog.vue +914 -914
  279. package/src/formBuilder/components/app-main/components/main-right/components/components/curTextArea.vue +338 -338
  280. package/src/formBuilder/components/app-main/components/main-right/components/components/form-item-rules.vue +190 -190
  281. package/src/formBuilder/components/app-main/components/main-right/components/components/linkageDialog.vue +25 -25
  282. package/src/formBuilder/components/app-main/components/main-right/components/components/searchMixin.js +26 -26
  283. package/src/formBuilder/components/app-main/components/main-right/components/form-config.vue +284 -284
  284. package/src/formBuilder/components/app-main/components/main-right/components/form-item-attrs.vue +407 -407
  285. package/src/formBuilder/components/app-main/components/main-right/components/form-item-config.vue +478 -478
  286. package/src/formBuilder/components/app-main/components/main-right/index.vue +203 -203
  287. package/src/formBuilder/components/app-main/index.vue +329 -329
  288. package/src/formBuilder/comps.js +283 -283
  289. package/src/formBuilder/config/button.js +63 -63
  290. package/src/formBuilder/config/cascader-panel.js +224 -224
  291. package/src/formBuilder/config/cascader.js +306 -306
  292. package/src/formBuilder/config/checkbox.js +67 -67
  293. package/src/formBuilder/config/color.js +42 -42
  294. package/src/formBuilder/config/columns.js +30 -30
  295. package/src/formBuilder/config/custom-table.js +49 -49
  296. package/src/formBuilder/config/date.js +107 -107
  297. package/src/formBuilder/config/daterange.js +47 -47
  298. package/src/formBuilder/config/datetime.js +78 -78
  299. package/src/formBuilder/config/datetimerange.js +111 -111
  300. package/src/formBuilder/config/formDep.js +37 -37
  301. package/src/formBuilder/config/groupSummary.js +23 -23
  302. package/src/formBuilder/config/groupTitle.js +23 -23
  303. package/src/formBuilder/config/handleCode.js +23 -23
  304. package/src/formBuilder/config/image-uploader.js +113 -113
  305. package/src/formBuilder/config/input.js +162 -162
  306. package/src/formBuilder/config/json-editor.js +31 -31
  307. package/src/formBuilder/config/linkForm.js +69 -69
  308. package/src/formBuilder/config/number.js +49 -49
  309. package/src/formBuilder/config/password.js +82 -82
  310. package/src/formBuilder/config/person.js +37 -37
  311. package/src/formBuilder/config/postman.js +23 -23
  312. package/src/formBuilder/config/purchase.js +19 -19
  313. package/src/formBuilder/config/quill-editor.js +66 -66
  314. package/src/formBuilder/config/radio-button.js +44 -44
  315. package/src/formBuilder/config/radio.js +69 -69
  316. package/src/formBuilder/config/rate.js +93 -93
  317. package/src/formBuilder/config/select.js +105 -105
  318. package/src/formBuilder/config/slider.js +92 -92
  319. package/src/formBuilder/config/switch.js +35 -35
  320. package/src/formBuilder/config/tag.js +79 -79
  321. package/src/formBuilder/config/text.js +18 -18
  322. package/src/formBuilder/config/textarea.js +129 -129
  323. package/src/formBuilder/config/time.js +60 -60
  324. package/src/formBuilder/config/timerange.js +94 -94
  325. package/src/formBuilder/config/tree-select.js +100 -100
  326. package/src/formBuilder/config/upload-file.js +100 -100
  327. package/src/formBuilder/config/yesno.js +39 -39
  328. package/src/formBuilder/config.js +16 -16
  329. package/src/formBuilder/extend/index.js +20 -20
  330. package/src/formBuilder/index.js +39 -39
  331. package/src/formBuilder/menuConfig.js +36 -36
  332. package/src/formBuilder/mixins/index.js +215 -215
  333. package/src/formBuilder/tool.js +101 -101
  334. package/src/function/base.js +13 -13
  335. package/src/function/findCompanyTree.js +94 -94
  336. package/src/function/formulaAnalysis.js +44 -44
  337. package/src/function/verify.js +23 -23
  338. package/src/http/index.js +219 -219
  339. package/src/http/type.js +82 -82
  340. package/src/library/AddType/Index.js +17 -17
  341. package/src/library/AddType/Index.vue +201 -201
  342. package/src/library/AreaChange/regionCascader/regionCascader.vue +155 -155
  343. package/src/library/BigImg/BigImage1/Index.js +17 -17
  344. package/src/library/BigImg/BigImage1/Index.vue +125 -125
  345. package/src/library/Button/Button1/Index.js +17 -17
  346. package/src/library/Button/Button1/Index.vue +60 -60
  347. package/src/library/Button/Button2/Index.js +17 -17
  348. package/src/library/Button/Button2/Index.vue +52 -52
  349. package/src/library/Button/Button3/Index.js +17 -17
  350. package/src/library/Button/Button3/Index.vue +56 -56
  351. package/src/library/Button/Button4/Index.js +17 -17
  352. package/src/library/Button/Button4/Index.vue +56 -56
  353. package/src/library/Button/Button5/Index.js +17 -17
  354. package/src/library/Button/Button5/Index.vue +55 -55
  355. package/src/library/Button/Button6/Index.js +17 -17
  356. package/src/library/Button/Button6/Index.vue +74 -74
  357. package/src/library/Button/Button7/Index.js +17 -17
  358. package/src/library/Button/Button7/Index.vue +56 -56
  359. package/src/library/ConfirmPlaugin/ConfirmPlaugin1/Index.js +17 -17
  360. package/src/library/ConfirmPlaugin/ConfirmPlaugin1/Index.vue +147 -147
  361. package/src/library/ConfirmPlaugin/ConfirmPlaugin2/Index.js +17 -17
  362. package/src/library/ConfirmPlaugin/ConfirmPlaugin2/Index.vue +137 -137
  363. package/src/library/ConfirmPlaugin/ConfirmPlaugin3/Index.vue +142 -142
  364. package/src/library/ConfirmPlaugin/ConfirmPlaugin4/Index.vue +141 -141
  365. package/src/library/ConfirmPlaugin/ConfirmPlaugin5/Index.vue +121 -121
  366. package/src/library/ConfirmPlaugin/ConfirmPlaugin6/Index.vue +142 -142
  367. package/src/library/Input/Input1/Index.js +17 -17
  368. package/src/library/Input/Input1/Index.vue +66 -66
  369. package/src/library/NoMessage/NoMessage0/Index.js +17 -17
  370. package/src/library/NoMessage/NoMessage0/Index.vue +60 -60
  371. package/src/library/NoMessage/NoMessage1/Index.js +17 -17
  372. package/src/library/NoMessage/NoMessage1/Index.vue +66 -66
  373. package/src/library/NoMessage/NoMessage2/Index.js +17 -17
  374. package/src/library/NoMessage/NoMessage2/Index.vue +66 -66
  375. package/src/library/Tab/Tab1/TabBox1/Index.vue +36 -36
  376. package/src/library/Tab/Tab1/TabInner1/Index.vue +70 -70
  377. package/src/library/Tab/Tab2/TabBox2/Index.vue +36 -36
  378. package/src/library/Tab/Tab2/TabInner2/Index.vue +66 -66
  379. package/src/library/Table/Table1/Td1/Index.js +17 -17
  380. package/src/library/Table/Table1/Td1/Index.vue +110 -110
  381. package/src/library/Table/Table1/Tr1/Index.js +17 -17
  382. package/src/library/Table/Table1/Tr1/Index.vue +53 -53
  383. package/src/library/Table/Table2/Td2/Index.js +17 -17
  384. package/src/library/Table/Table2/Td2/Index.vue +90 -90
  385. package/src/library/Table/Table2/Tr2/Index.js +17 -17
  386. package/src/library/Table/Table2/Tr2/Index.vue +66 -66
  387. package/src/library/Table/Table3/Td3/Index.js +17 -17
  388. package/src/library/Table/Table3/Td3/Index.vue +109 -109
  389. package/src/library/Table/Table3/Tr3/Index.js +17 -17
  390. package/src/library/Table/Table3/Tr3/Index.vue +128 -128
  391. package/src/library/Table/Table4/Td4/Index.js +17 -17
  392. package/src/library/Table/Table4/Td4/Index.vue +114 -114
  393. package/src/library/Table/Table4/Tr4/Index.js +17 -17
  394. package/src/library/Table/Table4/Tr4/Index.vue +53 -53
  395. package/src/library/Title/Title1/Index.js +17 -17
  396. package/src/library/Title/Title1/Index.vue +80 -80
  397. package/src/library/toast/Index.js +17 -17
  398. package/src/library/toast/Index.vue +86 -86
  399. package/src/main.js +161 -161
  400. package/src/mixins/Export2Excel.js +207 -207
  401. package/src/mixins/chartOption.js +110 -110
  402. package/src/mixins/companyMixins.js +84 -84
  403. package/src/mixins/quillOptions.js +15 -15
  404. package/src/mixins/validate/deviceManage.js +211 -211
  405. package/src/mixins/validate/systemConfig.js +117 -117
  406. package/src/mixins/validate/validate.js +25 -25
  407. package/src/public/apiUser/apiUser.js +10 -10
  408. package/src/public/areaFunction.js +26 -26
  409. package/src/public/link.js +91 -91
  410. package/src/public/stageData.js +495 -495
  411. package/src/public/topmenu.js +68 -68
  412. package/src/router/index.js +225 -225
  413. package/src/router/setting/BaseRoutes.js +1639 -1639
  414. package/src/router/setting/MenuDevMock.js +1570 -1570
  415. package/src/router/setting/modules/login.js +45 -45
  416. package/src/router/setting/noAuthRouter.js +109 -109
  417. package/src/router/setting/routes.js +55 -55
  418. package/src/static/css/flex.css +75 -75
  419. package/src/static/css/switch.scss +31 -31
  420. package/src/storage/cookies.js +37 -37
  421. package/src/storage/localStorage.js +36 -36
  422. package/src/storage/sessionStorage.js +25 -25
  423. package/src/store/formBuilder/formAttrDefault.js +28 -28
  424. package/src/store/formBuilder/index.js +40 -40
  425. package/src/store/index.js +553 -553
  426. package/src/styles/color.scss +24 -24
  427. package/src/styles/offer.scss +39 -39
  428. package/src/styles/s-reset.scss +52 -52
  429. package/src/styles/static-style.scss +797 -797
  430. package/src/styles/talent.scss +26 -26
  431. package/src/styles/variable.scss +69 -69
  432. package/src/styles/workflow/workflow.css +1308 -1308
  433. package/src/utils/TableFormTypeList.js +26 -26
  434. package/src/utils/allRouter.js +5579 -5579
  435. package/src/utils/auditUtil.js +535 -535
  436. package/src/utils/commonComponents.js +34 -34
  437. package/src/utils/commonFunc.js +213 -213
  438. package/src/utils/deepCopyArray.js +9 -9
  439. package/src/utils/dict.js +49 -49
  440. package/src/utils/directive.js +26 -26
  441. package/src/utils/emoji.js +16 -16
  442. package/src/utils/flator.js +18 -18
  443. package/src/utils/imMeeting.js +1180 -1180
  444. package/src/utils/index.js +105 -105
  445. package/src/utils/initRouter.js +94 -94
  446. package/src/utils/map.js +23 -23
  447. package/src/utils/passwordStrength.js +177 -177
  448. package/src/utils/style.js +30 -30
  449. package/src/utils/validate.js +30 -30
  450. package/src/views/404.vue +53 -53
  451. package/src/views/Login/Login.vue +50 -50
  452. package/src/views/Login/Passfind.vue +347 -347
  453. package/src/views/Login/Passfindnext.vue +146 -146
  454. package/src/views/Login/Sign.vue +55 -55
  455. package/src/views/Login/SignSuccessfully.vue +132 -132
  456. package/src/views/Login/appDownload.vue +224 -224
  457. package/src/views/Login/clientDownload.vue +201 -201
  458. package/src/views/Login/components/Background.vue +153 -153
  459. package/src/views/Login/components/FormLogin.vue +1001 -1001
  460. package/src/views/Login/components/FormPassFind.vue +395 -395
  461. package/src/views/Login/components/FormSign.vue +493 -493
  462. package/src/views/Login/components/Title.vue +301 -301
  463. package/src/views/Login/components/agreeMent.vue +111 -111
  464. package/src/views/Login/components/companysign.vue +1296 -1296
  465. package/src/views/Login/components/guideLogin.vue +984 -984
  466. package/src/views/formBuilder/components/addNode.vue +119 -119
  467. package/src/views/formBuilder/components/approverSelector.vue +493 -493
  468. package/src/views/formBuilder/components/baseRoute.vue +315 -315
  469. package/src/views/formBuilder/components/builderHeader.vue +106 -106
  470. package/src/views/formBuilder/components/conditionConfig.js +588 -588
  471. package/src/views/formBuilder/components/conditionNode.vue +191 -191
  472. package/src/views/formBuilder/components/dataDefault.js +147 -147
  473. package/src/views/formBuilder/components/depFormNode.vue +583 -583
  474. package/src/views/formBuilder/components/linkForm.vue +566 -566
  475. package/src/views/formBuilder/components/linkFormList.vue +821 -821
  476. package/src/views/formBuilder/components/menuConfig.vue +1752 -1752
  477. package/src/views/formBuilder/components/newNodeForm.vue +426 -426
  478. package/src/views/formBuilder/components/newsection.vue +424 -424
  479. package/src/views/formBuilder/components/nodeConditionConfig cody.vue +376 -376
  480. package/src/views/formBuilder/components/nodeConditionConfig.vue +603 -603
  481. package/src/views/formBuilder/components/nodeForm.vue +355 -355
  482. package/src/views/formBuilder/components/nodeMenu.vue +147 -147
  483. package/src/views/formBuilder/components/personNode.vue +566 -566
  484. package/src/views/formBuilder/components/planNode.vue +269 -269
  485. package/src/views/formBuilder/designListPage.vue +457 -457
  486. package/src/views/formBuilder/formDataDetail.vue +565 -565
  487. package/src/views/formBuilder/formGeneration.vue +904 -904
  488. package/src/views/formBuilder/index.vue +242 -242
  489. package/src/views/formBuilder/process-1.vue +976 -976
  490. package/src/views/formBuilder/process-2.vue +1323 -1323
  491. package/src/views/formBuilder/process.vue +662 -431
  492. package/src/views/formBuilder/processList.vue +877 -877
  493. package/src/views/formBuilder/service/ProcessBuilder.js +136 -136
  494. package/src/views/formBuilder/service/RsxzFieldCollection.js +199 -0
  495. package/src/views/formBuilder/workflow/addNode.vue +95 -95
  496. package/src/views/formBuilder/workflow/initData.js +205 -205
  497. package/src/views/formBuilder/workflow/nodeWrap.vue +731 -731
  498. package/src/views/guide.vue +227 -227
  499. package/src/views/guideIndex.vue +284 -284
  500. package/tests/unit/.eslintrc.js +5 -5
  501. package/tests/unit/example.spec.js +13 -13
  502. package/vue.config.js +287 -287
@@ -1,821 +1,821 @@
1
- <template>
2
- <!-- 组件说明:关联表单 -->
3
- <div>
4
- <el-dialog
5
- :title="'关联表单'"
6
- :visible.sync="orgVisible"
7
- width="70%"
8
- append-to-body
9
- @opened='opened'
10
- :before-close="cancel"
11
- :close-on-click-modal="false"
12
- destroy-on-close
13
- >
14
- <el-row>
15
- <el-form
16
- ref="form"
17
- :inline="true"
18
- class="h-search-form"
19
- :model="form"
20
- label-width="100px"
21
- >
22
- <el-form-item label="数据标题:">
23
- <el-input
24
- v-model="title"
25
- placeholder="请输入数据标题"
26
- ></el-input>
27
- </el-form-item>
28
- <el-form-item label="申请单位:">
29
- <el-select
30
- v-model="form.companyNo"
31
- placeholder="请选择申请单位"
32
- @change="handleOrgChange"
33
- >
34
- <el-option
35
- v-for="item in orgOptions"
36
- :key="item.id"
37
- :label="item.name"
38
- :value="item.id"
39
- ></el-option>
40
- </el-select>
41
- </el-form-item>
42
-
43
- <el-form-item label="申请部门:">
44
- <el-cascader
45
- :show-all-levels="false"
46
- placeholder="请选择申请部门"
47
- :disabled="!form.companyNo"
48
- :options="depOptions"
49
- v-model="form.departmentNo"
50
- :props="cascaderProps"
51
- @change="handleChange"
52
- :key="count"
53
- ></el-cascader>
54
- </el-form-item>
55
- <el-form-item>
56
- <el-button
57
- type="primary"
58
- @click="getList"
59
- >查询</el-button>
60
- <el-button
61
- plain
62
- @click="title='';form.companyNo='';form.departmentNo=''"
63
- >重置</el-button>
64
- </el-form-item>
65
- <!-- <el-form-item label="经办人:">
66
- <el-input placeholder="请输入经办人" v-model="form.operator" maxlength="30"></el-input>
67
- </el-form-item> -->
68
- </el-form>
69
- </el-row>
70
-
71
- <el-table
72
- :data="tableData"
73
- style="width: 100%;border:1px solid #ebeef5;"
74
- highlight-current-row
75
- @cell-click="currentListChange"
76
- :header-cell-style="$TableCell.setHeaderCellStyle"
77
- :cell-style="$TableCell.setCellStyle"
78
- border
79
- ref="singleTable"
80
- v-bind="$attrs"
81
- >
82
- <template slot="empty">
83
- <base-empty-data />
84
- </template>
85
-
86
- <el-table-column
87
- label="序号"
88
- align="center"
89
- type="index"
90
- width="50"
91
- >
92
- </el-table-column>
93
- <template v-if="tableConfig.length > 0">
94
- <template v-for='(item,index) in tableConfig'>
95
- <template v-if="item.type=='conunt'">
96
- <el-table-column
97
- show-overflow-tooltip
98
- :label="item.label"
99
- :prop='item.prop ? item.prop : `content.${item.key}`'
100
- :width='item.width'
101
- :key="index+'con'"
102
- align="center"
103
- :formatter="(row, column, cellValue, indexs)=>formatter(row, column, cellValue, indexs,item)"
104
- >
105
-
106
-  <template slot-scope="scope">
107
-
108
- <!-- <div v-else-if="$route.name=='designListPage'">{{scope.row._id}}</div> -->
109
-
110
- <div
111
- v-for="(e,i) in tableCustomArr"
112
- v-if="scope.$index == i"
113
- :key='i'
114
- >
115
- <div
116
- v-for="(children,i1) in e"
117
- :key='i1'
118
- >
119
- <!-- 这里进行规格属性遍历 -->
120
- <span> {{children.property}}:{{children.value}}</span>
121
- </div>
122
-
123
- </div>
124
-
125
- </template>
126
- </el-table-column>
127
- </template>
128
- <template v-else-if="item.type=='postman'">
129
- <el-table-column
130
- show-overflow-tooltip
131
- :label="item.label"
132
- :prop='item.prop ? item.prop : `content.${item.key}`'
133
- :width='item.width'
134
- :key="index+'con'"
135
- align="center"
136
- :formatter="(row, column, cellValue, indexs)=>formatter(row, column, cellValue, indexs,item)"
137
- >
138
-
139
-  <template slot-scope="scope">
140
- {{user.realName}}
141
- </template>
142
- </el-table-column>
143
-
144
- </template>
145
- <template v-else-if=" item.type=='handleCode' ">
146
- <el-table-column
147
- show-overflow-tooltip
148
- :label="item.label"
149
- :prop='item.prop ? item.prop : `content.${item.key}`'
150
- :width='item.width'
151
- :key="index+'con'"
152
- align="center"
153
- :formatter="(row, column, cellValue, indexs)=>formatter(row, column, cellValue, indexs,item)"
154
- >
155
-
156
-  <template slot-scope="scope">
157
- {{formId}}
158
- </template>
159
- </el-table-column>
160
-
161
- </template>
162
- <template v-else-if="item.type=='datetime'">
163
- <el-table-column
164
- show-overflow-tooltip
165
- :label="item.label"
166
- :prop='item.prop ? item.prop : `content.${item.key}`'
167
- :width='item.width'
168
- :key="index+'con'"
169
- align="center"
170
- :formatter="(row, column, cellValue, indexs)=>formatter(row, column, cellValue, indexs,item)"
171
- >
172
-
173
-  <template slot-scope="scope">
174
-
175
- <!-- <div v-else-if="$route.name=='designListPage'">{{scope.row._id}}</div> -->
176
-
177
- <span>
178
- {{scope.row[item.key] | formatDate}}
179
- </span>
180
- </template>
181
- </el-table-column>
182
- </template>
183
- <template v-else-if="item.children && item.children.length > 0">
184
- <el-table-column
185
- :label="item.label"
186
- :key="index+'par'"
187
- >
188
- <el-table-column
189
- v-for="(i,ind) in item.children"
190
- :label="i.label"
191
- :prop='item.prop ? item.prop : `content.${item.key}`'
192
- class-name="cell-pre"
193
- :width='i.width'
194
- :show-overflow-tooltip='true'
195
- :key="ind+'sub'"
196
- align="center"
197
- :formatter="(row, column, cellValue, indexs)=>formatter(row, column, cellValue, indexs,item,i)"
198
- ></el-table-column>
199
- </el-table-column>
200
- </template>
201
- <template v-else>
202
- <el-table-column
203
- show-overflow-tooltip
204
- :label="item.label"
205
- :prop='item.prop ? item.prop : `content.${item.key}`'
206
- :width='item.width'
207
- :key="index+'con'"
208
- align="center"
209
- :formatter="(row, column, cellValue, indexs)=>formatter(row, column, cellValue, indexs,item)"
210
- >
211
-
212
-  <template slot-scope="scope">
213
- <div
214
- v-if='item.label=="数据标题" && $route.name=="designListPage"'
215
- style="cursor:pointer;color:#409EFF"
216
- >
217
-
218
- <span>{{getTitle(item.key.split(","),scope.$index,scope.row) }}</span>
219
-
220
- </div>
221
- <!-- <div v-else-if="$route.name=='designListPage'">{{scope.row._id}}</div> -->
222
- <div v-else-if="$route.name=='designListPage'">{{getStr(scope.row._id,item.key,scope.row) || scope.row.content[item.key]}}</div>
223
- <div v-else-if="$route.name=='formDataDetail'">{{getStr(scope.row._id,item.prop,scope.row) ||scope.row[item.prop]}}</div>
224
- <div>{{getStr(scope.row._id,item.key,scope.row) || scope.row.content[item.key]}}</div>
225
- </template>
226
- </el-table-column>
227
- </template>
228
-
229
- </template>
230
- </template>
231
- <template v-else>
232
- <el-table-column
233
- label=""
234
- prop=""
235
- align="center"
236
- >无</el-table-column>
237
- </template>
238
- </el-table>
239
- <div style="text-align:right;margin-top:15px">
240
- <el-pagination
241
- @size-change="handleSizeChange"
242
- @current-change="handleCurrentChange"
243
- :current-page="pageNum"
244
- :page-sizes="[15, 30, 50]"
245
- :page-size="pageSize"
246
- layout="total, sizes, prev, pager, next, jumper"
247
- :total="total"
248
- >
249
- </el-pagination>
250
- </div>
251
- <span
252
- slot="footer"
253
- class="dialog-footer"
254
- >
255
- <el-button @click="cancel">取 消</el-button>
256
- <el-button
257
- type="primary"
258
- @click="confirm"
259
- >确 认</el-button>
260
- </span>
261
- </el-dialog>
262
- </div>
263
- </template>
264
-
265
- <script>
266
- import moment from "moment";
267
- import api from "@/api/apiMemberSelection";
268
- import apiSystem from "@/api/apiSystem";
269
- import {
270
- queryList,
271
- deleteFormDataById,
272
- queryFormByMenu,
273
- queryListdesign
274
- } from "@/api/apiFormBuilder/menu.js";
275
- import { findIndex } from "lodash-es";
276
- export default {
277
- name: "LinkFormList",
278
- components: {},
279
- props: {
280
- menuId: {
281
- type: Array,
282
- default: []
283
- },
284
- type: {
285
- type: Number,
286
- default: 0
287
- },
288
- orgVisible: {
289
- type: Boolean,
290
- default: false
291
- },
292
- value: {
293
- type: Array,
294
- default: () => {
295
- return [];
296
- }
297
- },
298
- defaultArr1: {
299
- type: Array,
300
- default: () => {
301
- return [];
302
- }
303
- }
304
- },
305
- data() {
306
- return {
307
- count: 1,
308
- currentIndex: 0,
309
- title: "",
310
- currentTitle: "",
311
- cascaderProps: {
312
- checkStrictly: true,
313
- value: "id",
314
- label: "name",
315
- children: "children"
316
- },
317
- form: {
318
- companyNo: "",
319
- departmentNo: "",
320
- staffNo: "",
321
- operator: ""
322
- },
323
- tableCustomArr: [],
324
- formDesc: {},
325
- formData: {},
326
- isLoading: false,
327
- tableData: [],
328
- tableConfig: [],
329
- formDesign: {},
330
- currentRow: {},
331
- total: 0,
332
- pageNum: 1,
333
- pageSize: 15,
334
- isSearching: false,
335
- currentSelectedAll: false,
336
- searchValue: null,
337
- loading: false,
338
- orgData: null,
339
- orgDataT: null,
340
- selectedList: [],
341
- defaultCheck: [],
342
- defaultProps: {
343
- children: "children",
344
- label: "name"
345
- },
346
- orgOptions: [],
347
- depOptions: [],
348
- staffs: []
349
- };
350
- },
351
- computed: {
352
- depHandle() {
353
- const { orgData, type } = this;
354
- return { orgData, type };
355
- },
356
- user() {
357
- return this.$store.state.user;
358
- }
359
- },
360
- watch: {
361
- tableConfig: {
362
- deep: true,
363
- immediate: true,
364
- handler: function(newVal, oldVal) {
365
- const _this = this;
366
- _.find(_this.tableData, function(o, i) {
367
- const obj = {};
368
- for (const key in o) {
369
- // if (o.hasOwnProperty.call(o, key)) {
370
- if (key.includes("-Str")) {
371
- obj[key] = o[key];
372
- if (
373
- !_.find(_this.tableConfig, function(o) {
374
- return o.type == "conunt";
375
- })
376
- ) {
377
- _this.tableConfig.splice(1, 0, {
378
- label: "规格属性",
379
- prop: "key_conunt",
380
- type: "conunt"
381
- });
382
- // _this.tableConfig.push({
383
- // label: "规格属性",
384
- // prop: "key_conunt",
385
- // type: "conunt"
386
- // });
387
- }
388
- }
389
- // }
390
- }
391
- _this.$set(_this.tableCustomArr, i, obj);
392
- });
393
- }
394
- },
395
- currentLevelList: {
396
- handler(val) {
397
- this.generateSelectedList();
398
- this.generateCurrentSelectedAll();
399
- },
400
- deep: true
401
- },
402
- // depHandle: {
403
- // handler(nv, ov) {
404
- // if (nv.type == 3) {
405
- // debugger;
406
- // this.handleDepData(nv.orgData);
407
- // }
408
- // }
409
- // },
410
- searchValue: {
411
- handler(val) {
412
- this.$refs.tree.filter(val);
413
- }
414
- }
415
- },
416
- async created() {
417
- this.init();
418
- // this.getOrgData();
419
- },
420
- methods: {
421
- currentListChange(row, column, cell, event) {
422
- const vm = this;
423
- const index = _.findIndex(vm.tableData, function(o) {
424
- return o == row;
425
- });
426
- vm.tableConfig.forEach((e, i) => {
427
- if (e.label == "数据标题") {
428
- vm.currentTitle = vm.getTitle(e.key.split(","), index, row);
429
- }
430
- });
431
- vm.currentIndex = index;
432
- },
433
- handleOrgChange(val) {
434
- this.form.departmentNo = "";
435
- this.depOptions = [];
436
- this.form.staffNo = "";
437
- this.staffs = [];
438
- this.form.companyNo = val;
439
- this.depList(val);
440
- },
441
- async depList(data) {
442
- this.count++;
443
- const res = await apiSystem.deplist(data);
444
- if (res.data.code == 200) {
445
- this.depOptions = res.data.data;
446
- }
447
- },
448
- handleChange(val) {
449
- this.form.staffNo = "";
450
- this.staffs = [];
451
- this.form.departmentNo = val[val.length - 1];
452
- this.getStaffsList(this.form.departmentNo);
453
- },
454
- async getStaffsList(id) {
455
- const res = await apiSystem.getUserByParentId(id);
456
- if (res.data.code == 200) {
457
- this.staffs = res.data.data;
458
- }
459
- },
460
- async companyList(data) {
461
- const res = await apiSystem.companylist(data);
462
- this.orgOptions = res.data.data;
463
- },
464
- getStr(id, key, row) {
465
- var str = "";
466
- var vm = this;
467
- vm.tableData.map((e2, i2) => {
468
- if (e2._id == id) {
469
- vm.tableConfig.map((e, i) => {
470
- // if (e.key.includes(",")) {
471
- // e.key.split(",").map((e3, i) => {
472
- // if (e3 == key) {
473
-
474
- // var dataArr = e2.content[key];
475
- // var dataOptions = e.options;
476
-
477
- // if (
478
- // e.type == "checkbox" ||
479
- // e.type == "radio" ||
480
- // e.type == "select"
481
- // ) {
482
- // str = vm.getStrRes(dataArr, dataOptions, row, key);
483
- // } else {
484
- // str = dataArr;
485
- // }
486
- // }
487
- // });
488
- // }
489
- if (key == e.key) {
490
- const dataArr = e2.content[key];
491
- const dataOptions = e.options;
492
- if (!dataArr) return "无";
493
- if (
494
- e.type == "checkbox" ||
495
- e.type == "radio" ||
496
- e.type == "select"
497
- ) {
498
- str = vm.getStrRes(dataArr, dataOptions, row, key);
499
- } else if (e.type == "datetime") {
500
- var typeArr = dataTypeList.attrs.type.options.filter(function(
501
- item
502
- ) {
503
- return item.value == vm.formDesign[e.key].attrs.type;
504
- });
505
- str = moment(dataArr * 1000).format(typeArr[0].format);
506
- } else if (e.type == "datetimerange") {
507
- var typeList = dataTimeRangeTypeList.attrs.type.options.filter(
508
- function(item) {
509
- return item.value == vm.formDesign[e.key].attrs.type;
510
- }
511
- );
512
- str =
513
- moment(dataArr[0] * 1000).format(typeList[0].format) +
514
- " 至 " +
515
- moment(dataArr[1] * 1000).format(typeList[0].format);
516
- } else {
517
- str = dataArr;
518
- }
519
- } else if (!key && !e.key) {
520
- for (const key in row) {
521
- // if (Object.hasOwnProperty.call(row, key)) {
522
- const e = row[key];
523
- // }
524
- }
525
- } else {
526
- // 详情子表级联
527
- if (e.prop == key) {
528
- let title = "";
529
- if (e.type == "cascader") {
530
- const arr = this.getOptionArr(e.options);
531
- row[e.prop].map(one => {
532
- arr.map(item => {
533
- if (item.value == one) {
534
- title = title + item.label + "/";
535
- }
536
- });
537
- });
538
- title = title.substring(0, title.length - 1);
539
- str = title;
540
- }
541
- }
542
- }
543
- });
544
- }
545
- });
546
-
547
- return str;
548
- },
549
- getStrRes(arr, opt, row, key) {
550
- var str = [];
551
- var id = row._id;
552
- var vm = this;
553
- if (Array.isArray(arr)) {
554
- for (let i = 0; i < opt.length; i++) {
555
- const e = opt[i];
556
- for (let i2 = 0; i2 < arr.length; i2++) {
557
- const e2 = arr[i2];
558
- if (e2 == e.value) {
559
- str.push(e.text);
560
- str.join(",");
561
- }
562
- }
563
- }
564
- return str.join(",");
565
- } else if (typeof arr == "number") {
566
- for (let i = 0; i < opt.length; i++) {
567
- const e = opt[i];
568
- const e2 = arr;
569
- if (e2 == e.value) {
570
- str.push(e.text);
571
- str.join(",");
572
- }
573
- }
574
- return str.join(",");
575
- } else {
576
- return "";
577
- }
578
- },
579
- getTitle(arr, index, row) {
580
- var str = "";
581
- var vm = this;
582
-
583
- arr.forEach((e, i) => {
584
- if (vm.tableData[index].content[e]) {
585
- // str += vm.tableData[index].content[e];
586
- str += vm.getStr(vm.tableData[index]._id, e, row);
587
- }
588
- });
589
- return str;
590
- },
591
- async companyList(data) {
592
- const res = await apiSystem.companylist(data);
593
- this.orgOptions = res.data.data;
594
- },
595
- async getList() {
596
- const _this = this;
597
- const query = {};
598
- const data = {};
599
- Object.keys(data).forEach(item => {
600
- const type = _this.setType(_this.formDesc[item].type);
601
- const value = data[item] ? data[item] : "";
602
- query[item] = { value: value, type: type };
603
- });
604
- Object.keys(_this.form).forEach(item => {
605
- const type = item == "operator" ? "like" : "eque";
606
- query[item] = { value: _this.form[item], type: type };
607
- });
608
- // query = Object.assign(query, { title: "5" })
609
- const parse = JSON.stringify(query);
610
- const res = await queryList({
611
- menuId: this.menuId[this.menuId.length - 1],
612
- companyNo: this.user.cno,
613
- userNo: this.user.no,
614
- formId: this.formId,
615
- pageNum: this.pageNum,
616
- pageSize: this.pageSize,
617
- title: this.title,
618
- data: parse
619
- });
620
- if (res.data.state == "ok") {
621
- this.tableData = res.data.data.formDatas.list;
622
- this.total = res.data.data.formDatas.totalRow;
623
- } else {
624
- this.$message.error(
625
- res.data.msg ? res.data.msg : "请求失败,请刷新重试"
626
- );
627
- }
628
- },
629
- init() {
630
- // this.menuId = "6010e348f80f8b5f9b7e34fd";
631
- // this.menuId = this.$route.params.id;
632
- this.formDesc = {};
633
- this.tableConfig = [];
634
- this.tableData = [];
635
- this.total = 0;
636
- this.companyList();
637
- if (this.$route.path !== "/") {
638
-
639
- }
640
- this.getFormId();
641
- },
642
- // 获取formId
643
- async getFormId() {
644
- const vm = this;
645
- if (vm.menuId) {
646
- const { data } = await queryFormByMenu({
647
- menuId: vm.menuId[vm.menuId.length - 1],
648
- companyNo: vm.user.cno
649
- });
650
- if (data.state == "ok") {
651
- vm.formId = data.data.id;
652
- const formDesc = data.data.content ? data.data.content.formDesc : {};
653
- Object.keys(formDesc).forEach(item => {
654
- if (formDesc[item].type.indexOf("columns") > -1) {
655
- Object.assign(
656
- formDesc,
657
- _.keyBy(formDesc[item].attrs.columns, "field")
658
- );
659
- }
660
- });
661
- vm.formDesign = formDesc;
662
- vm.getList();
663
- vm.getConfig();
664
- }
665
- }
666
- },
667
- formatterConfig(columns) {
668
- const _this = this;
669
-
670
- const config = columns.map(item => {
671
- // if (item.label !== "数据标题") {
672
- const type =
673
- item.label !== "数据标题" ? _this.formDesign[item.key].type : "input";
674
- let options = [];
675
- if (type != "custom-table") {
676
- options =
677
- (_this.formDesign[item.key] &&
678
- _this.formDesign[item.key].options) ||
679
- [];
680
- } else {
681
- item.children.forEach((v, i) => {
682
- const obj = _this.findKeyInDesign(item, v);
683
- const childType = obj.content.type
684
- ? obj.content.type.replace("ele-form-", "")
685
- : "";
686
- const childOption = obj.content.options || [];
687
- item.children[i] = { ...v, type: childType, options: childOption };
688
- });
689
- }
690
- return { ...item, type: type, options: options };
691
- // }
692
- });
693
- return config;
694
- },
695
- // 获取列表配置
696
- async getConfig() {
697
- const vm = this;
698
- const parse = {
699
- companyNo: this.user.cno,
700
- menuId: this.menuId[vm.menuId.length - 1],
701
- formId: this.formDesId
702
- };
703
- const res = await queryListdesign(parse);
704
- if (res.data.state == "ok" && res.data.data.content) {
705
- const content = res.data.data.content;
706
- this.formDesc = content.formDesc;
707
- const tableConfig = [];
708
- content.tableConfig.forEach(item => {
709
- if (vm.formDesign[item.prop] || item.label == "数据标题") {
710
- tableConfig.push({
711
- label: item.label,
712
- key: item.prop,
713
- children: item.children
714
- });
715
- }
716
- });
717
- this.tableConfig = this.formatterConfig(tableConfig);
718
- console.log(
719
- "🚀 ~ file: designListPage.vue ~ line 377 ~ getConfig ~ this.tableConfig",
720
- this.tableConfig
721
- );
722
- }
723
- },
724
- setCurrent(row) {
725
- this.$refs.singleTable.setCurrentRow(row);
726
- },
727
- handleSizeChange(val) {
728
- console.log(`每页 ${val} 条`);
729
- },
730
- handleCurrentChange(val) {
731
- this.currentRow = val;
732
- console.log(`当前页: ${val}`);
733
- },
734
- opened() {
735
- const vm = this;
736
- vm.init();
737
- },
738
- handleDepData(data, c) {
739
- const vm = this;
740
- for (let i = 0; i < data.length; i++) {
741
- const e = data[i];
742
- if (e.children) {
743
- // const arr = _.filter(e.children, (e, i) => {
744
- // // return e.type
745
- // })
746
- // e.children = arr;
747
- vm.handleDepData(e.children, data);
748
- } else {
749
- return;
750
- }
751
- }
752
-
753
- // const data2 = _.cloneDeep(data);
754
- },
755
-
756
- // 取消
757
- cancel() {
758
- this.$emit("close");
759
- },
760
- // 确认
761
- confirm() {
762
- // if (this.selectedList.length === 0) {
763
- // this.$message.warning(this.title);
764
- // return false;
765
- // }
766
-
767
- const vm = this;
768
- if (!vm.currentTitle) {
769
- vm.$message({
770
- message: "请选择要关联的表单",
771
- type: "warning"
772
- });
773
- return;
774
- }
775
- vm.$emit("getcurrentTitle", {
776
- title: vm.currentTitle,
777
- data: vm.tableData,
778
- index: vm.currentIndex
779
- });
780
- vm.$emit("close");
781
- }
782
- }
783
- };
784
- </script>
785
- <style lang="scss" scoped>
786
- .opt {
787
- display: flex;
788
- align-items: center;
789
- //height: 30px;
790
- justify-content: flex-start;
791
- margin-bottom: 10px;
792
- cursor: pointer;
793
- }
794
- .opt-avatar {
795
- margin-left: 10px;
796
- flex-shrink: 0;
797
- }
798
- .avatar-inner {
799
- display: flex;
800
- align-items: center;
801
- justify-content: center;
802
- width: 40px;
803
- height: 40px;
804
- background-color: #0286df;
805
- color: #fff;
806
- border-radius: 100%;
807
- }
808
- .opt-name {
809
- width: 100%;
810
- flex-shrink: 1;
811
- padding-left: 10px;
812
- }
813
- .next-level-btn {
814
- flex-shrink: 0;
815
- margin: 0;
816
- padding: 0;
817
- }
818
- .el-icon-circle-close {
819
- cursor: pointer;
820
- }
821
- </style>
1
+ <template>
2
+ <!-- 组件说明:关联表单 -->
3
+ <div>
4
+ <el-dialog
5
+ :title="'关联表单'"
6
+ :visible.sync="orgVisible"
7
+ width="70%"
8
+ append-to-body
9
+ @opened='opened'
10
+ :before-close="cancel"
11
+ :close-on-click-modal="false"
12
+ destroy-on-close
13
+ >
14
+ <el-row>
15
+ <el-form
16
+ ref="form"
17
+ :inline="true"
18
+ class="h-search-form"
19
+ :model="form"
20
+ label-width="100px"
21
+ >
22
+ <el-form-item label="数据标题:">
23
+ <el-input
24
+ v-model="title"
25
+ placeholder="请输入数据标题"
26
+ ></el-input>
27
+ </el-form-item>
28
+ <el-form-item label="申请单位:">
29
+ <el-select
30
+ v-model="form.companyNo"
31
+ placeholder="请选择申请单位"
32
+ @change="handleOrgChange"
33
+ >
34
+ <el-option
35
+ v-for="item in orgOptions"
36
+ :key="item.id"
37
+ :label="item.name"
38
+ :value="item.id"
39
+ ></el-option>
40
+ </el-select>
41
+ </el-form-item>
42
+
43
+ <el-form-item label="申请部门:">
44
+ <el-cascader
45
+ :show-all-levels="false"
46
+ placeholder="请选择申请部门"
47
+ :disabled="!form.companyNo"
48
+ :options="depOptions"
49
+ v-model="form.departmentNo"
50
+ :props="cascaderProps"
51
+ @change="handleChange"
52
+ :key="count"
53
+ ></el-cascader>
54
+ </el-form-item>
55
+ <el-form-item>
56
+ <el-button
57
+ type="primary"
58
+ @click="getList"
59
+ >查询</el-button>
60
+ <el-button
61
+ plain
62
+ @click="title='';form.companyNo='';form.departmentNo=''"
63
+ >重置</el-button>
64
+ </el-form-item>
65
+ <!-- <el-form-item label="经办人:">
66
+ <el-input placeholder="请输入经办人" v-model="form.operator" maxlength="30"></el-input>
67
+ </el-form-item> -->
68
+ </el-form>
69
+ </el-row>
70
+
71
+ <el-table
72
+ :data="tableData"
73
+ style="width: 100%;border:1px solid #ebeef5;"
74
+ highlight-current-row
75
+ @cell-click="currentListChange"
76
+ :header-cell-style="$TableCell.setHeaderCellStyle"
77
+ :cell-style="$TableCell.setCellStyle"
78
+ border
79
+ ref="singleTable"
80
+ v-bind="$attrs"
81
+ >
82
+ <template slot="empty">
83
+ <base-empty-data />
84
+ </template>
85
+
86
+ <el-table-column
87
+ label="序号"
88
+ align="center"
89
+ type="index"
90
+ width="50"
91
+ >
92
+ </el-table-column>
93
+ <template v-if="tableConfig.length > 0">
94
+ <template v-for='(item,index) in tableConfig'>
95
+ <template v-if="item.type=='conunt'">
96
+ <el-table-column
97
+ show-overflow-tooltip
98
+ :label="item.label"
99
+ :prop='item.prop ? item.prop : `content.${item.key}`'
100
+ :width='item.width'
101
+ :key="index+'con'"
102
+ align="center"
103
+ :formatter="(row, column, cellValue, indexs)=>formatter(row, column, cellValue, indexs,item)"
104
+ >
105
+
106
+  <template slot-scope="scope">
107
+
108
+ <!-- <div v-else-if="$route.name=='designListPage'">{{scope.row._id}}</div> -->
109
+
110
+ <div
111
+ v-for="(e,i) in tableCustomArr"
112
+ v-if="scope.$index == i"
113
+ :key='i'
114
+ >
115
+ <div
116
+ v-for="(children,i1) in e"
117
+ :key='i1'
118
+ >
119
+ <!-- 这里进行规格属性遍历 -->
120
+ <span> {{children.property}}:{{children.value}}</span>
121
+ </div>
122
+
123
+ </div>
124
+
125
+ </template>
126
+ </el-table-column>
127
+ </template>
128
+ <template v-else-if="item.type=='postman'">
129
+ <el-table-column
130
+ show-overflow-tooltip
131
+ :label="item.label"
132
+ :prop='item.prop ? item.prop : `content.${item.key}`'
133
+ :width='item.width'
134
+ :key="index+'con'"
135
+ align="center"
136
+ :formatter="(row, column, cellValue, indexs)=>formatter(row, column, cellValue, indexs,item)"
137
+ >
138
+
139
+  <template slot-scope="scope">
140
+ {{user.realName}}
141
+ </template>
142
+ </el-table-column>
143
+
144
+ </template>
145
+ <template v-else-if=" item.type=='handleCode' ">
146
+ <el-table-column
147
+ show-overflow-tooltip
148
+ :label="item.label"
149
+ :prop='item.prop ? item.prop : `content.${item.key}`'
150
+ :width='item.width'
151
+ :key="index+'con'"
152
+ align="center"
153
+ :formatter="(row, column, cellValue, indexs)=>formatter(row, column, cellValue, indexs,item)"
154
+ >
155
+
156
+  <template slot-scope="scope">
157
+ {{formId}}
158
+ </template>
159
+ </el-table-column>
160
+
161
+ </template>
162
+ <template v-else-if="item.type=='datetime'">
163
+ <el-table-column
164
+ show-overflow-tooltip
165
+ :label="item.label"
166
+ :prop='item.prop ? item.prop : `content.${item.key}`'
167
+ :width='item.width'
168
+ :key="index+'con'"
169
+ align="center"
170
+ :formatter="(row, column, cellValue, indexs)=>formatter(row, column, cellValue, indexs,item)"
171
+ >
172
+
173
+  <template slot-scope="scope">
174
+
175
+ <!-- <div v-else-if="$route.name=='designListPage'">{{scope.row._id}}</div> -->
176
+
177
+ <span>
178
+ {{scope.row[item.key] | formatDate}}
179
+ </span>
180
+ </template>
181
+ </el-table-column>
182
+ </template>
183
+ <template v-else-if="item.children && item.children.length > 0">
184
+ <el-table-column
185
+ :label="item.label"
186
+ :key="index+'par'"
187
+ >
188
+ <el-table-column
189
+ v-for="(i,ind) in item.children"
190
+ :label="i.label"
191
+ :prop='item.prop ? item.prop : `content.${item.key}`'
192
+ class-name="cell-pre"
193
+ :width='i.width'
194
+ :show-overflow-tooltip='true'
195
+ :key="ind+'sub'"
196
+ align="center"
197
+ :formatter="(row, column, cellValue, indexs)=>formatter(row, column, cellValue, indexs,item,i)"
198
+ ></el-table-column>
199
+ </el-table-column>
200
+ </template>
201
+ <template v-else>
202
+ <el-table-column
203
+ show-overflow-tooltip
204
+ :label="item.label"
205
+ :prop='item.prop ? item.prop : `content.${item.key}`'
206
+ :width='item.width'
207
+ :key="index+'con'"
208
+ align="center"
209
+ :formatter="(row, column, cellValue, indexs)=>formatter(row, column, cellValue, indexs,item)"
210
+ >
211
+
212
+  <template slot-scope="scope">
213
+ <div
214
+ v-if='item.label=="数据标题" && $route.name=="designListPage"'
215
+ style="cursor:pointer;color:#409EFF"
216
+ >
217
+
218
+ <span>{{getTitle(item.key.split(","),scope.$index,scope.row) }}</span>
219
+
220
+ </div>
221
+ <!-- <div v-else-if="$route.name=='designListPage'">{{scope.row._id}}</div> -->
222
+ <div v-else-if="$route.name=='designListPage'">{{getStr(scope.row._id,item.key,scope.row) || scope.row.content[item.key]}}</div>
223
+ <div v-else-if="$route.name=='formDataDetail'">{{getStr(scope.row._id,item.prop,scope.row) ||scope.row[item.prop]}}</div>
224
+ <div>{{getStr(scope.row._id,item.key,scope.row) || scope.row.content[item.key]}}</div>
225
+ </template>
226
+ </el-table-column>
227
+ </template>
228
+
229
+ </template>
230
+ </template>
231
+ <template v-else>
232
+ <el-table-column
233
+ label=""
234
+ prop=""
235
+ align="center"
236
+ >无</el-table-column>
237
+ </template>
238
+ </el-table>
239
+ <div style="text-align:right;margin-top:15px">
240
+ <el-pagination
241
+ @size-change="handleSizeChange"
242
+ @current-change="handleCurrentChange"
243
+ :current-page="pageNum"
244
+ :page-sizes="[15, 30, 50]"
245
+ :page-size="pageSize"
246
+ layout="total, sizes, prev, pager, next, jumper"
247
+ :total="total"
248
+ >
249
+ </el-pagination>
250
+ </div>
251
+ <span
252
+ slot="footer"
253
+ class="dialog-footer"
254
+ >
255
+ <el-button @click="cancel">取 消</el-button>
256
+ <el-button
257
+ type="primary"
258
+ @click="confirm"
259
+ >确 认</el-button>
260
+ </span>
261
+ </el-dialog>
262
+ </div>
263
+ </template>
264
+
265
+ <script>
266
+ import moment from "moment";
267
+ import api from "@/api/apiMemberSelection";
268
+ import apiSystem from "@/api/apiSystem";
269
+ import {
270
+ queryList,
271
+ deleteFormDataById,
272
+ queryFormByMenu,
273
+ queryListdesign
274
+ } from "@/api/apiFormBuilder/menu.js";
275
+ import { findIndex } from "lodash-es";
276
+ export default {
277
+ name: "LinkFormList",
278
+ components: {},
279
+ props: {
280
+ menuId: {
281
+ type: Array,
282
+ default: []
283
+ },
284
+ type: {
285
+ type: Number,
286
+ default: 0
287
+ },
288
+ orgVisible: {
289
+ type: Boolean,
290
+ default: false
291
+ },
292
+ value: {
293
+ type: Array,
294
+ default: () => {
295
+ return [];
296
+ }
297
+ },
298
+ defaultArr1: {
299
+ type: Array,
300
+ default: () => {
301
+ return [];
302
+ }
303
+ }
304
+ },
305
+ data() {
306
+ return {
307
+ count: 1,
308
+ currentIndex: 0,
309
+ title: "",
310
+ currentTitle: "",
311
+ cascaderProps: {
312
+ checkStrictly: true,
313
+ value: "id",
314
+ label: "name",
315
+ children: "children"
316
+ },
317
+ form: {
318
+ companyNo: "",
319
+ departmentNo: "",
320
+ staffNo: "",
321
+ operator: ""
322
+ },
323
+ tableCustomArr: [],
324
+ formDesc: {},
325
+ formData: {},
326
+ isLoading: false,
327
+ tableData: [],
328
+ tableConfig: [],
329
+ formDesign: {},
330
+ currentRow: {},
331
+ total: 0,
332
+ pageNum: 1,
333
+ pageSize: 15,
334
+ isSearching: false,
335
+ currentSelectedAll: false,
336
+ searchValue: null,
337
+ loading: false,
338
+ orgData: null,
339
+ orgDataT: null,
340
+ selectedList: [],
341
+ defaultCheck: [],
342
+ defaultProps: {
343
+ children: "children",
344
+ label: "name"
345
+ },
346
+ orgOptions: [],
347
+ depOptions: [],
348
+ staffs: []
349
+ };
350
+ },
351
+ computed: {
352
+ depHandle() {
353
+ const { orgData, type } = this;
354
+ return { orgData, type };
355
+ },
356
+ user() {
357
+ return this.$store.state.user;
358
+ }
359
+ },
360
+ watch: {
361
+ tableConfig: {
362
+ deep: true,
363
+ immediate: true,
364
+ handler: function(newVal, oldVal) {
365
+ const _this = this;
366
+ _.find(_this.tableData, function(o, i) {
367
+ const obj = {};
368
+ for (const key in o) {
369
+ // if (o.hasOwnProperty.call(o, key)) {
370
+ if (key.includes("-Str")) {
371
+ obj[key] = o[key];
372
+ if (
373
+ !_.find(_this.tableConfig, function(o) {
374
+ return o.type == "conunt";
375
+ })
376
+ ) {
377
+ _this.tableConfig.splice(1, 0, {
378
+ label: "规格属性",
379
+ prop: "key_conunt",
380
+ type: "conunt"
381
+ });
382
+ // _this.tableConfig.push({
383
+ // label: "规格属性",
384
+ // prop: "key_conunt",
385
+ // type: "conunt"
386
+ // });
387
+ }
388
+ }
389
+ // }
390
+ }
391
+ _this.$set(_this.tableCustomArr, i, obj);
392
+ });
393
+ }
394
+ },
395
+ currentLevelList: {
396
+ handler(val) {
397
+ this.generateSelectedList();
398
+ this.generateCurrentSelectedAll();
399
+ },
400
+ deep: true
401
+ },
402
+ // depHandle: {
403
+ // handler(nv, ov) {
404
+ // if (nv.type == 3) {
405
+ // debugger;
406
+ // this.handleDepData(nv.orgData);
407
+ // }
408
+ // }
409
+ // },
410
+ searchValue: {
411
+ handler(val) {
412
+ this.$refs.tree.filter(val);
413
+ }
414
+ }
415
+ },
416
+ async created() {
417
+ this.init();
418
+ // this.getOrgData();
419
+ },
420
+ methods: {
421
+ currentListChange(row, column, cell, event) {
422
+ const vm = this;
423
+ const index = _.findIndex(vm.tableData, function(o) {
424
+ return o == row;
425
+ });
426
+ vm.tableConfig.forEach((e, i) => {
427
+ if (e.label == "数据标题") {
428
+ vm.currentTitle = vm.getTitle(e.key.split(","), index, row);
429
+ }
430
+ });
431
+ vm.currentIndex = index;
432
+ },
433
+ handleOrgChange(val) {
434
+ this.form.departmentNo = "";
435
+ this.depOptions = [];
436
+ this.form.staffNo = "";
437
+ this.staffs = [];
438
+ this.form.companyNo = val;
439
+ this.depList(val);
440
+ },
441
+ async depList(data) {
442
+ this.count++;
443
+ const res = await apiSystem.deplist(data);
444
+ if (res.data.code == 200) {
445
+ this.depOptions = res.data.data;
446
+ }
447
+ },
448
+ handleChange(val) {
449
+ this.form.staffNo = "";
450
+ this.staffs = [];
451
+ this.form.departmentNo = val[val.length - 1];
452
+ this.getStaffsList(this.form.departmentNo);
453
+ },
454
+ async getStaffsList(id) {
455
+ const res = await apiSystem.getUserByParentId(id);
456
+ if (res.data.code == 200) {
457
+ this.staffs = res.data.data;
458
+ }
459
+ },
460
+ async companyList(data) {
461
+ const res = await apiSystem.companylist(data);
462
+ this.orgOptions = res.data.data;
463
+ },
464
+ getStr(id, key, row) {
465
+ var str = "";
466
+ var vm = this;
467
+ vm.tableData.map((e2, i2) => {
468
+ if (e2._id == id) {
469
+ vm.tableConfig.map((e, i) => {
470
+ // if (e.key.includes(",")) {
471
+ // e.key.split(",").map((e3, i) => {
472
+ // if (e3 == key) {
473
+
474
+ // var dataArr = e2.content[key];
475
+ // var dataOptions = e.options;
476
+
477
+ // if (
478
+ // e.type == "checkbox" ||
479
+ // e.type == "radio" ||
480
+ // e.type == "select"
481
+ // ) {
482
+ // str = vm.getStrRes(dataArr, dataOptions, row, key);
483
+ // } else {
484
+ // str = dataArr;
485
+ // }
486
+ // }
487
+ // });
488
+ // }
489
+ if (key == e.key) {
490
+ const dataArr = e2.content[key];
491
+ const dataOptions = e.options;
492
+ if (!dataArr) return "无";
493
+ if (
494
+ e.type == "checkbox" ||
495
+ e.type == "radio" ||
496
+ e.type == "select"
497
+ ) {
498
+ str = vm.getStrRes(dataArr, dataOptions, row, key);
499
+ } else if (e.type == "datetime") {
500
+ var typeArr = dataTypeList.attrs.type.options.filter(function(
501
+ item
502
+ ) {
503
+ return item.value == vm.formDesign[e.key].attrs.type;
504
+ });
505
+ str = moment(dataArr * 1000).format(typeArr[0].format);
506
+ } else if (e.type == "datetimerange") {
507
+ var typeList = dataTimeRangeTypeList.attrs.type.options.filter(
508
+ function(item) {
509
+ return item.value == vm.formDesign[e.key].attrs.type;
510
+ }
511
+ );
512
+ str =
513
+ moment(dataArr[0] * 1000).format(typeList[0].format) +
514
+ " 至 " +
515
+ moment(dataArr[1] * 1000).format(typeList[0].format);
516
+ } else {
517
+ str = dataArr;
518
+ }
519
+ } else if (!key && !e.key) {
520
+ for (const key in row) {
521
+ // if (Object.hasOwnProperty.call(row, key)) {
522
+ const e = row[key];
523
+ // }
524
+ }
525
+ } else {
526
+ // 详情子表级联
527
+ if (e.prop == key) {
528
+ let title = "";
529
+ if (e.type == "cascader") {
530
+ const arr = this.getOptionArr(e.options);
531
+ row[e.prop].map(one => {
532
+ arr.map(item => {
533
+ if (item.value == one) {
534
+ title = title + item.label + "/";
535
+ }
536
+ });
537
+ });
538
+ title = title.substring(0, title.length - 1);
539
+ str = title;
540
+ }
541
+ }
542
+ }
543
+ });
544
+ }
545
+ });
546
+
547
+ return str;
548
+ },
549
+ getStrRes(arr, opt, row, key) {
550
+ var str = [];
551
+ var id = row._id;
552
+ var vm = this;
553
+ if (Array.isArray(arr)) {
554
+ for (let i = 0; i < opt.length; i++) {
555
+ const e = opt[i];
556
+ for (let i2 = 0; i2 < arr.length; i2++) {
557
+ const e2 = arr[i2];
558
+ if (e2 == e.value) {
559
+ str.push(e.text);
560
+ str.join(",");
561
+ }
562
+ }
563
+ }
564
+ return str.join(",");
565
+ } else if (typeof arr == "number") {
566
+ for (let i = 0; i < opt.length; i++) {
567
+ const e = opt[i];
568
+ const e2 = arr;
569
+ if (e2 == e.value) {
570
+ str.push(e.text);
571
+ str.join(",");
572
+ }
573
+ }
574
+ return str.join(",");
575
+ } else {
576
+ return "";
577
+ }
578
+ },
579
+ getTitle(arr, index, row) {
580
+ var str = "";
581
+ var vm = this;
582
+
583
+ arr.forEach((e, i) => {
584
+ if (vm.tableData[index].content[e]) {
585
+ // str += vm.tableData[index].content[e];
586
+ str += vm.getStr(vm.tableData[index]._id, e, row);
587
+ }
588
+ });
589
+ return str;
590
+ },
591
+ async companyList(data) {
592
+ const res = await apiSystem.companylist(data);
593
+ this.orgOptions = res.data.data;
594
+ },
595
+ async getList() {
596
+ const _this = this;
597
+ const query = {};
598
+ const data = {};
599
+ Object.keys(data).forEach(item => {
600
+ const type = _this.setType(_this.formDesc[item].type);
601
+ const value = data[item] ? data[item] : "";
602
+ query[item] = { value: value, type: type };
603
+ });
604
+ Object.keys(_this.form).forEach(item => {
605
+ const type = item == "operator" ? "like" : "eque";
606
+ query[item] = { value: _this.form[item], type: type };
607
+ });
608
+ // query = Object.assign(query, { title: "5" })
609
+ const parse = JSON.stringify(query);
610
+ const res = await queryList({
611
+ menuId: this.menuId[this.menuId.length - 1],
612
+ companyNo: this.user.cno,
613
+ userNo: this.user.no,
614
+ formId: this.formId,
615
+ pageNum: this.pageNum,
616
+ pageSize: this.pageSize,
617
+ title: this.title,
618
+ data: parse
619
+ });
620
+ if (res.data.state == "ok") {
621
+ this.tableData = res.data.data.formDatas.list;
622
+ this.total = res.data.data.formDatas.totalRow;
623
+ } else {
624
+ this.$message.error(
625
+ res.data.msg ? res.data.msg : "请求失败,请刷新重试"
626
+ );
627
+ }
628
+ },
629
+ init() {
630
+ // this.menuId = "6010e348f80f8b5f9b7e34fd";
631
+ // this.menuId = this.$route.params.id;
632
+ this.formDesc = {};
633
+ this.tableConfig = [];
634
+ this.tableData = [];
635
+ this.total = 0;
636
+ this.companyList();
637
+ if (this.$route.path !== "/") {
638
+
639
+ }
640
+ this.getFormId();
641
+ },
642
+ // 获取formId
643
+ async getFormId() {
644
+ const vm = this;
645
+ if (vm.menuId) {
646
+ const { data } = await queryFormByMenu({
647
+ menuId: vm.menuId[vm.menuId.length - 1],
648
+ companyNo: vm.user.cno
649
+ });
650
+ if (data.state == "ok") {
651
+ vm.formId = data.data.id;
652
+ const formDesc = data.data.content ? data.data.content.formDesc : {};
653
+ Object.keys(formDesc).forEach(item => {
654
+ if (formDesc[item].type.indexOf("columns") > -1) {
655
+ Object.assign(
656
+ formDesc,
657
+ _.keyBy(formDesc[item].attrs.columns, "field")
658
+ );
659
+ }
660
+ });
661
+ vm.formDesign = formDesc;
662
+ vm.getList();
663
+ vm.getConfig();
664
+ }
665
+ }
666
+ },
667
+ formatterConfig(columns) {
668
+ const _this = this;
669
+
670
+ const config = columns.map(item => {
671
+ // if (item.label !== "数据标题") {
672
+ const type =
673
+ item.label !== "数据标题" ? _this.formDesign[item.key].type : "input";
674
+ let options = [];
675
+ if (type != "custom-table") {
676
+ options =
677
+ (_this.formDesign[item.key] &&
678
+ _this.formDesign[item.key].options) ||
679
+ [];
680
+ } else {
681
+ item.children.forEach((v, i) => {
682
+ const obj = _this.findKeyInDesign(item, v);
683
+ const childType = obj.content.type
684
+ ? obj.content.type.replace("ele-form-", "")
685
+ : "";
686
+ const childOption = obj.content.options || [];
687
+ item.children[i] = { ...v, type: childType, options: childOption };
688
+ });
689
+ }
690
+ return { ...item, type: type, options: options };
691
+ // }
692
+ });
693
+ return config;
694
+ },
695
+ // 获取列表配置
696
+ async getConfig() {
697
+ const vm = this;
698
+ const parse = {
699
+ companyNo: this.user.cno,
700
+ menuId: this.menuId[vm.menuId.length - 1],
701
+ formId: this.formDesId
702
+ };
703
+ const res = await queryListdesign(parse);
704
+ if (res.data.state == "ok" && res.data.data.content) {
705
+ const content = res.data.data.content;
706
+ this.formDesc = content.formDesc;
707
+ const tableConfig = [];
708
+ content.tableConfig.forEach(item => {
709
+ if (vm.formDesign[item.prop] || item.label == "数据标题") {
710
+ tableConfig.push({
711
+ label: item.label,
712
+ key: item.prop,
713
+ children: item.children
714
+ });
715
+ }
716
+ });
717
+ this.tableConfig = this.formatterConfig(tableConfig);
718
+ console.log(
719
+ "🚀 ~ file: designListPage.vue ~ line 377 ~ getConfig ~ this.tableConfig",
720
+ this.tableConfig
721
+ );
722
+ }
723
+ },
724
+ setCurrent(row) {
725
+ this.$refs.singleTable.setCurrentRow(row);
726
+ },
727
+ handleSizeChange(val) {
728
+ console.log(`每页 ${val} 条`);
729
+ },
730
+ handleCurrentChange(val) {
731
+ this.currentRow = val;
732
+ console.log(`当前页: ${val}`);
733
+ },
734
+ opened() {
735
+ const vm = this;
736
+ vm.init();
737
+ },
738
+ handleDepData(data, c) {
739
+ const vm = this;
740
+ for (let i = 0; i < data.length; i++) {
741
+ const e = data[i];
742
+ if (e.children) {
743
+ // const arr = _.filter(e.children, (e, i) => {
744
+ // // return e.type
745
+ // })
746
+ // e.children = arr;
747
+ vm.handleDepData(e.children, data);
748
+ } else {
749
+ return;
750
+ }
751
+ }
752
+
753
+ // const data2 = _.cloneDeep(data);
754
+ },
755
+
756
+ // 取消
757
+ cancel() {
758
+ this.$emit("close");
759
+ },
760
+ // 确认
761
+ confirm() {
762
+ // if (this.selectedList.length === 0) {
763
+ // this.$message.warning(this.title);
764
+ // return false;
765
+ // }
766
+
767
+ const vm = this;
768
+ if (!vm.currentTitle) {
769
+ vm.$message({
770
+ message: "请选择要关联的表单",
771
+ type: "warning"
772
+ });
773
+ return;
774
+ }
775
+ vm.$emit("getcurrentTitle", {
776
+ title: vm.currentTitle,
777
+ data: vm.tableData,
778
+ index: vm.currentIndex
779
+ });
780
+ vm.$emit("close");
781
+ }
782
+ }
783
+ };
784
+ </script>
785
+ <style lang="scss" scoped>
786
+ .opt {
787
+ display: flex;
788
+ align-items: center;
789
+ //height: 30px;
790
+ justify-content: flex-start;
791
+ margin-bottom: 10px;
792
+ cursor: pointer;
793
+ }
794
+ .opt-avatar {
795
+ margin-left: 10px;
796
+ flex-shrink: 0;
797
+ }
798
+ .avatar-inner {
799
+ display: flex;
800
+ align-items: center;
801
+ justify-content: center;
802
+ width: 40px;
803
+ height: 40px;
804
+ background-color: #0286df;
805
+ color: #fff;
806
+ border-radius: 100%;
807
+ }
808
+ .opt-name {
809
+ width: 100%;
810
+ flex-shrink: 1;
811
+ padding-left: 10px;
812
+ }
813
+ .next-level-btn {
814
+ flex-shrink: 0;
815
+ margin: 0;
816
+ padding: 0;
817
+ }
818
+ .el-icon-circle-close {
819
+ cursor: pointer;
820
+ }
821
+ </style>