@hbisty/qj-common 5.0.4

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 (382) hide show
  1. package/.babelrc +12 -0
  2. package/.eslintrc.js +25 -0
  3. package/.idea/common.iml +12 -0
  4. package/.idea/modules.xml +8 -0
  5. package/.idea/vcs.xml +6 -0
  6. package/.postcssrc.js +9 -0
  7. package/.prettierrc.js +7 -0
  8. package/.project +37 -0
  9. package/README.md +3 -0
  10. package/gulpfile.js +20 -0
  11. package/package.json +18 -0
  12. package/src/api/apimanage.js +146 -0
  13. package/src/api/common/index.js +192 -0
  14. package/src/api/login.js +160 -0
  15. package/src/api/shopFbu.js +515 -0
  16. package/src/api/upload.js +8 -0
  17. package/src/assets/20201111165611.png +0 -0
  18. package/src/assets/2wm.jpg +0 -0
  19. package/src/assets/404_images/404.png +0 -0
  20. package/src/assets/404_images/404_1.png +0 -0
  21. package/src/assets/404_images/404_cloud.png +0 -0
  22. package/src/assets/Hy.png +0 -0
  23. package/src/assets/WeChat.png +0 -0
  24. package/src/assets/banner.png +0 -0
  25. package/src/assets/chuizi.png +0 -0
  26. package/src/assets/css/theme/index.min.004178.css +1 -0
  27. package/src/assets/css/theme/index.min.00c0dc.css +1 -0
  28. package/src/assets/css/theme/index.min.1E87F0.css +1 -0
  29. package/src/assets/css/theme/index.min.1cac43.css +1 -0
  30. package/src/assets/css/theme/index.min.409eff-.css +1 -0
  31. package/src/assets/css/theme/index.min.409eff.css +1 -0
  32. package/src/assets/css/theme/index.min.48B1E0.css +1 -0
  33. package/src/assets/css/theme/index.min.54b2d3.css +1 -0
  34. package/src/assets/css/theme/index.min.F00E1F.css +1 -0
  35. package/src/assets/css/theme/index.min.FC9041.css +1 -0
  36. package/src/assets/css/theme/index.min.aa0808.css +1 -0
  37. package/src/assets/css/theme/index.min.b79f77.css +1 -0
  38. package/src/assets/css/theme/index.min.c21a1b.css +1 -0
  39. package/src/assets/css/theme/index.min.ec001a.css +1 -0
  40. package/src/assets/css/theme/index.min.f4a338.css +1 -0
  41. package/src/assets/css/theme/index.min.f53415.css +1 -0
  42. package/src/assets/css/theme/index.min.ffffff.css +1 -0
  43. package/src/assets/er_bg.png +0 -0
  44. package/src/assets/homePage/home1.png +0 -0
  45. package/src/assets/homePage/home2.png +0 -0
  46. package/src/assets/homePage/home3.png +0 -0
  47. package/src/assets/homePage/home4.png +0 -0
  48. package/src/assets/homePage/home5.png +0 -0
  49. package/src/assets/homePage/home6.png +0 -0
  50. package/src/assets/homePage/home7.png +0 -0
  51. package/src/assets/homePage/home8.png +0 -0
  52. package/src/assets/homePage//347/233/256/345/275/225/347/273/223/346/236/204_03.png +0 -0
  53. package/src/assets/homePage//347/233/256/345/275/225/347/273/223/346/236/204_05.png +0 -0
  54. package/src/assets/homePage//347/233/256/345/275/225/347/273/223/346/236/204_10.png +0 -0
  55. package/src/assets/homePage//347/233/256/345/275/225/347/273/223/346/236/204_12.png +0 -0
  56. package/src/assets/homePage//347/233/256/345/275/225/347/273/223/346/236/204_13.png +0 -0
  57. package/src/assets/homePage//347/233/256/345/275/225/347/273/223/346/236/204_17.png +0 -0
  58. package/src/assets/homePage//347/233/256/345/275/225/347/273/223/346/236/204_18.png +0 -0
  59. package/src/assets/homePage//347/233/256/345/275/225/347/273/223/346/236/204_19.png +0 -0
  60. package/src/assets/hot.png +0 -0
  61. package/src/assets/info.jpg +0 -0
  62. package/src/assets/info.png +0 -0
  63. package/src/assets/logo.png +0 -0
  64. package/src/assets/nav/admin-hover.png +0 -0
  65. package/src/assets/nav/admin.png +0 -0
  66. package/src/assets/nav/info.png +0 -0
  67. package/src/assets/nav/logout-hover.png +0 -0
  68. package/src/assets/nav/logout.png +0 -0
  69. package/src/assets/nav/set.png +0 -0
  70. package/src/assets/nav/tool.png +0 -0
  71. package/src/assets/nav/user.png +0 -0
  72. package/src/assets/nav_lab.png +0 -0
  73. package/src/assets/newerwei.png +0 -0
  74. package/src/assets/nopic.jpg +0 -0
  75. package/src/assets/user.png +0 -0
  76. package/src/assets/user_img.png +0 -0
  77. package/src/assets//345/233/276/345/261/202 20.png +0 -0
  78. package/src/components/Bounced/index.vue +145 -0
  79. package/src/components/Breadcrumb/index.vue +71 -0
  80. package/src/components/Checkbox/index.vue +53 -0
  81. package/src/components/Hamburger/index.vue +48 -0
  82. package/src/components/Logistics/logic.vue +186 -0
  83. package/src/components/ScrollBar/index.vue +60 -0
  84. package/src/components/Sticky/index.vue +76 -0
  85. package/src/components/SvgIcon/index.vue +42 -0
  86. package/src/components/ThemePicker/index.vue +243 -0
  87. package/src/components/Tinymce/components/editorImage.vue +95 -0
  88. package/src/components/Tinymce/index.vue +166 -0
  89. package/src/components/Tinymce/plugins.js +7 -0
  90. package/src/components/Tinymce/toolbar.js +6 -0
  91. package/src/components/TreeTable/customEval.js +44 -0
  92. package/src/components/TreeTable/eval.js +29 -0
  93. package/src/components/TreeTable/index.vue +124 -0
  94. package/src/components/TreeTable/readme.md +89 -0
  95. package/src/components/TreeTableApi/customEval.js +49 -0
  96. package/src/components/TreeTableApi/eval.js +29 -0
  97. package/src/components/TreeTableApi/index.vue +124 -0
  98. package/src/components/TreeTableApi/readme.md +89 -0
  99. package/src/components/Upload/singleImage.vue +123 -0
  100. package/src/components/Upload/singleImage2.vue +118 -0
  101. package/src/components/Upload/singleImage3.vue +138 -0
  102. package/src/components/Upload/upload.vue +295 -0
  103. package/src/components/workOrderList/index.vue +158 -0
  104. package/src/dependencies.js +119 -0
  105. package/src/iconShop/demo.css +539 -0
  106. package/src/iconShop/demo_index.html +8445 -0
  107. package/src/iconShop/iconfont.css +1451 -0
  108. package/src/iconShop/iconfont.eot +0 -0
  109. package/src/iconShop/iconfont.js +1 -0
  110. package/src/iconShop/iconfont.json +2522 -0
  111. package/src/iconShop/iconfont.svg +1070 -0
  112. package/src/iconShop/iconfont.ttf +0 -0
  113. package/src/iconShop/iconfont.woff +0 -0
  114. package/src/iconShop/iconfont.woff2 +0 -0
  115. package/src/iconfont/demo.css +539 -0
  116. package/src/iconfont/demo_index.html +5276 -0
  117. package/src/iconfont/iconfont.css +905 -0
  118. package/src/iconfont/iconfont.eot +0 -0
  119. package/src/iconfont/iconfont.js +1 -0
  120. package/src/iconfont/iconfont.json +1563 -0
  121. package/src/iconfont/iconfont.svg +692 -0
  122. package/src/iconfont/iconfont.ttf +0 -0
  123. package/src/iconfont/iconfont.woff +0 -0
  124. package/src/iconfont/iconfont.woff2 +0 -0
  125. package/src/icons/index.js +9 -0
  126. package/src/icons/svg/documentation.svg +1 -0
  127. package/src/icons/svg/example.svg +1 -0
  128. package/src/icons/svg/eye.svg +1 -0
  129. package/src/icons/svg/form.svg +1 -0
  130. package/src/icons/svg/password.svg +1 -0
  131. package/src/icons/svg/table.svg +1 -0
  132. package/src/icons/svg/tree.svg +1 -0
  133. package/src/icons/svg/user.svg +1 -0
  134. package/src/lang/e.js +49 -0
  135. package/src/lang/en.js +49 -0
  136. package/src/lang/zh.js +49 -0
  137. package/src/main.js +62 -0
  138. package/src/permission.js +283 -0
  139. package/src/permissionForMall.backup.js +375 -0
  140. package/src/permissionForMall.js +375 -0
  141. package/src/preset.js +67 -0
  142. package/src/router/_import_common.js +2 -0
  143. package/src/router/_import_development.js +1 -0
  144. package/src/router/_import_production.js +1 -0
  145. package/src/store/getters.js +39 -0
  146. package/src/store/index.js +18 -0
  147. package/src/store/modules/app.js +34 -0
  148. package/src/store/modules/menu.js +82 -0
  149. package/src/store/modules/user.js +235 -0
  150. package/src/styles/element-ui.scss +1369 -0
  151. package/src/styles/index.scss +167 -0
  152. package/src/styles/mixin.scss +27 -0
  153. package/src/styles/pc-ui.scss +1032 -0
  154. package/src/styles/scrollBar.scss +22 -0
  155. package/src/styles/sidebar.scss +124 -0
  156. package/src/styles/transition.scss +32 -0
  157. package/src/styles/variables.scss +45 -0
  158. package/src/styles/wf-ui.scss +87 -0
  159. package/src/utils/auth.js +57 -0
  160. package/src/utils/dom.js +12 -0
  161. package/src/utils/getQueryString.js +5 -0
  162. package/src/utils/import.js +5 -0
  163. package/src/utils/index.js +355 -0
  164. package/src/utils/interceptor.js +34 -0
  165. package/src/utils/menu.js +116 -0
  166. package/src/utils/proapp.js +35 -0
  167. package/src/utils/query.js +26 -0
  168. package/src/utils/request.js +374 -0
  169. package/src/utils/routeMapping.js +40 -0
  170. package/src/utils/routeMapping.json +310 -0
  171. package/src/utils/utils.js +84 -0
  172. package/src/utils/validate.js +102 -0
  173. package/src/views/404.vue +72 -0
  174. package/src/views/Layout.vue +106 -0
  175. package/src/views/imgSwiper/index.vue +35 -0
  176. package/src/views/layout/Layout.vue +181 -0
  177. package/src/views/layout/assets/close.png +0 -0
  178. package/src/views/layout/assets/logo.png +0 -0
  179. package/src/views/layout/assets/logo_s.png +0 -0
  180. package/src/views/layout/assets/open.png +0 -0
  181. package/src/views/layout/components/AppMain.vue +20 -0
  182. package/src/views/layout/components/Footer.vue +22 -0
  183. package/src/views/layout/components/LeftNavbar.vue +318 -0
  184. package/src/views/layout/components/NavMenu.vue +15 -0
  185. package/src/views/layout/components/Navbar.vue +695 -0
  186. package/src/views/layout/components/Sidebar/SidebarItem.vue +116 -0
  187. package/src/views/layout/components/Sidebar/index.vue +216 -0
  188. package/src/views/layout/components/index.js +20 -0
  189. package/src/views/layout/theme/darkBlue/Layout.vue +140 -0
  190. package/src/views/layout/theme/darkBlue/assets/229649024644998808.png +0 -0
  191. package/src/views/layout/theme/darkBlue/assets/_20181026154207.png +0 -0
  192. package/src/views/layout/theme/darkBlue/assets/close.png +0 -0
  193. package/src/views/layout/theme/darkBlue/assets/f-brand.png +0 -0
  194. package/src/views/layout/theme/darkBlue/assets/f-reward.png +0 -0
  195. package/src/views/layout/theme/darkBlue/assets/f-tel.png +0 -0
  196. package/src/views/layout/theme/darkBlue/assets/info.jpg +0 -0
  197. package/src/views/layout/theme/darkBlue/assets/info.png +0 -0
  198. package/src/views/layout/theme/darkBlue/assets/logo.png +0 -0
  199. package/src/views/layout/theme/darkBlue/assets/logo1.png +0 -0
  200. package/src/views/layout/theme/darkBlue/assets/logo_1.png +0 -0
  201. package/src/views/layout/theme/darkBlue/assets/open.png +0 -0
  202. package/src/views/layout/theme/darkBlue/assets/test.jpg +0 -0
  203. package/src/views/layout/theme/darkBlue/assets/user.png +0 -0
  204. package/src/views/layout/theme/darkBlue/components/AppMain.vue +38 -0
  205. package/src/views/layout/theme/darkBlue/components/Footer.vue +148 -0
  206. package/src/views/layout/theme/darkBlue/components/LeftNavbar(/345/261/225/347/244/272/345/205/250/351/203/250/350/217/234/345/215/225).vue +448 -0
  207. package/src/views/layout/theme/darkBlue/components/LeftNavbar.3.vue +191 -0
  208. package/src/views/layout/theme/darkBlue/components/LeftNavbar.vue +466 -0
  209. package/src/views/layout/theme/darkBlue/components/Navbar.vue +200 -0
  210. package/src/views/layout/theme/darkBlue/components/Sidebar/SidebarItem.vue +72 -0
  211. package/src/views/layout/theme/darkBlue/components/Sidebar/index.vue +49 -0
  212. package/src/views/layout/theme/darkBlue/components/index.js +16 -0
  213. package/src/views/layout-default/Layout.vue +134 -0
  214. package/src/views/layout-default/assets/close.png +0 -0
  215. package/src/views/layout-default/assets/logo.png +0 -0
  216. package/src/views/layout-default/assets/logo_s.png +0 -0
  217. package/src/views/layout-default/assets/open.png +0 -0
  218. package/src/views/layout-default/components/AppMain.vue +19 -0
  219. package/src/views/layout-default/components/Footer.vue +22 -0
  220. package/src/views/layout-default/components/LeftNavbar.vue +164 -0
  221. package/src/views/layout-default/components/Navbar.vue +295 -0
  222. package/src/views/layout-default/components/Sidebar/SidebarItem.vue +67 -0
  223. package/src/views/layout-default/components/Sidebar/index.vue +59 -0
  224. package/src/views/layout-default/components/index.js +4 -0
  225. package/src/views/layout-default/theme/darkBlue/Layout.vue +140 -0
  226. package/src/views/layout-default/theme/darkBlue/assets/229649024644998808.png +0 -0
  227. package/src/views/layout-default/theme/darkBlue/assets/_20181026154207.png +0 -0
  228. package/src/views/layout-default/theme/darkBlue/assets/close.png +0 -0
  229. package/src/views/layout-default/theme/darkBlue/assets/f-brand.png +0 -0
  230. package/src/views/layout-default/theme/darkBlue/assets/f-reward.png +0 -0
  231. package/src/views/layout-default/theme/darkBlue/assets/f-tel.png +0 -0
  232. package/src/views/layout-default/theme/darkBlue/assets/info.jpg +0 -0
  233. package/src/views/layout-default/theme/darkBlue/assets/info.png +0 -0
  234. package/src/views/layout-default/theme/darkBlue/assets/logo.png +0 -0
  235. package/src/views/layout-default/theme/darkBlue/assets/logo1.png +0 -0
  236. package/src/views/layout-default/theme/darkBlue/assets/logo_1.png +0 -0
  237. package/src/views/layout-default/theme/darkBlue/assets/open.png +0 -0
  238. package/src/views/layout-default/theme/darkBlue/assets/test.jpg +0 -0
  239. package/src/views/layout-default/theme/darkBlue/assets/user.png +0 -0
  240. package/src/views/layout-default/theme/darkBlue/components/AppMain.vue +38 -0
  241. package/src/views/layout-default/theme/darkBlue/components/Footer.vue +148 -0
  242. package/src/views/layout-default/theme/darkBlue/components/LeftNavbar.vue +465 -0
  243. package/src/views/layout-default/theme/darkBlue/components/Navbar.vue +200 -0
  244. package/src/views/layout-default/theme/darkBlue/components/Sidebar/SidebarItem.vue +70 -0
  245. package/src/views/layout-default/theme/darkBlue/components/Sidebar/index.vue +49 -0
  246. package/src/views/layout-default/theme/darkBlue/components/index.js +16 -0
  247. package/src/views/pc/Internationalization.vue +80 -0
  248. package/src/views/pc/default/Layout.vue +442 -0
  249. package/src/views/pc/default/LayoutCard.vue +424 -0
  250. package/src/views/pc/default/assets/2001.png +0 -0
  251. package/src/views/pc/default/assets/a13.png +0 -0
  252. package/src/views/pc/default/assets/about.png +0 -0
  253. package/src/views/pc/default/assets/af3a58da5c4d1ddfb31e1b0e7b6f798.png +0 -0
  254. package/src/views/pc/default/assets/ans_er.png +0 -0
  255. package/src/views/pc/default/assets/chuizi.png +0 -0
  256. package/src/views/pc/default/assets/dllgwap.png +0 -0
  257. package/src/views/pc/default/assets/er_bg.png +0 -0
  258. package/src/views/pc/default/assets/f-brand.png +0 -0
  259. package/src/views/pc/default/assets/f-reward.png +0 -0
  260. package/src/views/pc/default/assets/f-tel.png +0 -0
  261. package/src/views/pc/default/assets/flex.scss +100 -0
  262. package/src/views/pc/default/assets/footer_img1.png +0 -0
  263. package/src/views/pc/default/assets/footer_img2.png +0 -0
  264. package/src/views/pc/default/assets/footer_img3.png +0 -0
  265. package/src/views/pc/default/assets/footer_img4.png +0 -0
  266. package/src/views/pc/default/assets/huiyuan.png +0 -0
  267. package/src/views/pc/default/assets/hyzx.png +0 -0
  268. package/src/views/pc/default/assets/icp.png +0 -0
  269. package/src/views/pc/default/assets/kywwap.png +0 -0
  270. package/src/views/pc/default/assets/logo-gray.png +0 -0
  271. package/src/views/pc/default/assets/logo.png +0 -0
  272. package/src/views/pc/default/assets/logo_ucc.png +0 -0
  273. package/src/views/pc/default/assets/peisong.png +0 -0
  274. package/src/views/pc/default/assets/shangjia.png +0 -0
  275. package/src/views/pc/default/assets/shouhou.png +0 -0
  276. package/src/views/pc/default/assets/xinshou.png +0 -0
  277. package/src/views/pc/default/assets/ymlogo.png +0 -0
  278. package/src/views/pc/default/assets/yunmoLogo.png +0 -0
  279. package/src/views/pc/default/assets//345/233/276/345/261/202 20.png +0 -0
  280. package/src/views/pc/default/footer-modules/DgFooter/images/icon-hhyj.png +0 -0
  281. package/src/views/pc/default/footer-modules/DgFooter/images/icon-hhyj@2x.png +0 -0
  282. package/src/views/pc/default/footer-modules/DgFooter/images/icon-hyzx.png +0 -0
  283. package/src/views/pc/default/footer-modules/DgFooter/images/icon-hyzx@2x.png +0 -0
  284. package/src/views/pc/default/footer-modules/DgFooter/images/icon-plqq.png +0 -0
  285. package/src/views/pc/default/footer-modules/DgFooter/images/icon-plqq@2x.png +0 -0
  286. package/src/views/pc/default/footer-modules/DgFooter/images/icon-ppbz.png +0 -0
  287. package/src/views/pc/default/footer-modules/DgFooter/images/icon-ppbz@2x.png +0 -0
  288. package/src/views/pc/default/footer-modules/DgFooter/index.vue +179 -0
  289. package/src/views/pc/default/footer-modules/DgFooter/indexSDX.vue +187 -0
  290. package/src/views/pc/default/footer-modules/footer.vue +172 -0
  291. package/src/views/pc/default/footer-modules/footerAns.vue +168 -0
  292. package/src/views/pc/default/footer-modules/footerBulk.vue +170 -0
  293. package/src/views/pc/default/footer-modules/footerDM.vue +254 -0
  294. package/src/views/pc/default/footer-modules/footerDefault.vue +267 -0
  295. package/src/views/pc/default/footer-modules/footerDefaultA.vue +270 -0
  296. package/src/views/pc/default/footer-modules/footerDefaultNew.vue +201 -0
  297. package/src/views/pc/default/footer-modules/footerHDB.vue +153 -0
  298. package/src/views/pc/default/footer-modules/footerHy.vue +63 -0
  299. package/src/views/pc/default/footer-modules/footerKYW.vue +163 -0
  300. package/src/views/pc/default/footer-modules/footerMh.vue +30 -0
  301. package/src/views/pc/default/footer-modules/footerNew.vue +117 -0
  302. package/src/views/pc/default/footer-modules/footer_yzj.vue +170 -0
  303. package/src/views/pc/default/footer-modules/footerayd.vue +85 -0
  304. package/src/views/pc/default/footer-modules/ymFooter.vue +155 -0
  305. package/src/views/pc/default/footer-modules/zgl.vue +251 -0
  306. package/src/views/pc/default/header-modules/DgHeader/Logo.vue +57 -0
  307. package/src/views/pc/default/header-modules/DgHeader/Search.vue +135 -0
  308. package/src/views/pc/default/header-modules/DgHeader/Settleup.vue +46 -0
  309. package/src/views/pc/default/header-modules/DgHeader/images/logo.png +0 -0
  310. package/src/views/pc/default/header-modules/DgHeader/index.vue +38 -0
  311. package/src/views/pc/default/header-modules/active.vue +177 -0
  312. package/src/views/pc/default/header-modules/header.vue +98 -0
  313. package/src/views/pc/default/header-modules/headerA.vue +142 -0
  314. package/src/views/pc/default/header-modules/headerFLPT.vue +157 -0
  315. package/src/views/pc/default/header-modules/headerMh.vue +187 -0
  316. package/src/views/pc/default/header-modules/headerNew.vue +122 -0
  317. package/src/views/pc/default/header-modules/headerSDX.vue +304 -0
  318. package/src/views/pc/default/header-modules/headerStyle2.vue +174 -0
  319. package/src/views/pc/default/header-modules/headerStyle3.vue +191 -0
  320. package/src/views/pc/default/header-modules/headerStyle4.vue +164 -0
  321. package/src/views/pc/default/header-modules/headerStyleAns.vue +401 -0
  322. package/src/views/pc/default/header-modules/headerStyleBulk.vue +428 -0
  323. package/src/views/pc/default/header-modules/headerStyleDefalut.vue +209 -0
  324. package/src/views/pc/default/header-modules/headerStyleKYW.vue +436 -0
  325. package/src/views/pc/default/header-modules/headerStyle_yzj.vue +428 -0
  326. package/src/views/pc/default/header-modules/headerayd.vue +187 -0
  327. package/src/views/pc/default/header-modules/index.vue +466 -0
  328. package/src/views/pc/default/header-modules/ymHeader.vue +292 -0
  329. package/src/views/pc/default/header-modules/ysHeader.vue +249 -0
  330. package/src/views/pc/default/header-modules/zgl.vue +855 -0
  331. package/src/views/pc/default/leftMenu-modules/leftMenu-logo.vue +194 -0
  332. package/src/views/pc/default/leftMenu-modules/leftMenu-style2.vue +206 -0
  333. package/src/views/pc/default/leftMenu-modules/leftMenu-style3.vue +207 -0
  334. package/src/views/pc/default/leftMenu-modules/leftMenu-style4.vue +192 -0
  335. package/src/views/pc/default/leftMenu-modules/leftMenu.vue +183 -0
  336. package/src/views/pc/default/leftMenu-modules/leftMenuDefault.vue +212 -0
  337. package/src/views/pc/default/leftMenu-modules/leftMenuDefaultEn.vue +214 -0
  338. package/src/views/pc/default/leftMenu-modules/leftMenuDefaultFLPT.vue +220 -0
  339. package/src/views/pc/default/leftMenu-modules/leftMenuDefaultayd.vue +220 -0
  340. package/src/views/pc/default/nav-modules/nav.vue +52 -0
  341. package/src/views/pc/default/nav-modules/navAns.vue +60 -0
  342. package/src/views/pc/default/nav-modules/navBulk.vue +60 -0
  343. package/src/views/pc/default/top-modules/DgTopShortcut/index.vue +177 -0
  344. package/src/views/pc/default/top-modules/Toplg.vue +281 -0
  345. package/src/views/pc/default/top-modules/topA.vue +137 -0
  346. package/src/views/pc/default/top-modules/topAns.vue +262 -0
  347. package/src/views/pc/default/top-modules/topAns_yzj.vue +283 -0
  348. package/src/views/pc/default/top-modules/topBar.vue +305 -0
  349. package/src/views/pc/default/top-modules/topBulk.vue +281 -0
  350. package/src/views/pc/default/top-modules/topDefault.vue +244 -0
  351. package/src/views/pc/default/top-modules/topDefaultDM.vue +197 -0
  352. package/src/views/pc/default/top-modules/topDefaultNew.vue +272 -0
  353. package/src/views/pc/default/top-modules/topFLPT.vue +197 -0
  354. package/src/views/pc/default/top-modules/topHDB.vue +479 -0
  355. package/src/views/pc/default/top-modules/topKYW.vue +258 -0
  356. package/src/views/pc/default/top-modules/topMh.vue +174 -0
  357. package/src/views/pc/default/top-modules/topNew.vue +98 -0
  358. package/src/views/pc/default/top-modules/topSDX.vue +298 -0
  359. package/src/views/pc/default/top-modules/topSimple.vue +248 -0
  360. package/src/views/pc/default/top-modules/topSimpleHy.vue +256 -0
  361. package/src/views/pc/default/top-modules/topUcc.vue +265 -0
  362. package/src/views/pc/default/top-modules/topayd.vue +170 -0
  363. package/src/views/pc/default/top-modules/ymTop.vue +299 -0
  364. package/src/views/pc/default/top-modules/zgltop.vue +500 -0
  365. package/src/views/routerView.vue +9 -0
  366. package/src/views/templates/components/temp-select.vue +80 -0
  367. package/src/views/templates/components/temp-upload.vue +234 -0
  368. package/src/views/templates/readme.md +2 -0
  369. package/src/views/templates/templateInput.vue +421 -0
  370. package/src/views/templates/templateReadme.html +589 -0
  371. package/src/views/templates/templateReadme.md +620 -0
  372. package/src/views/templates/templateTable.vue +2244 -0
  373. package/src/views/templates/templateTableData.vue +1883 -0
  374. package/src/views/templates/templateUi/templateTableContent.vue +187 -0
  375. package/src/views/treeTemplate/index.vue +559 -0
  376. package/src/views/treeTemplate/treeTemplate.md +274 -0
  377. package/src/views/uploadDialog/index copy.vue +352 -0
  378. package/src/views/uploadDialog/index.vue +558 -0
  379. package/src/views/uploadDialog/indexOlay.vue +582 -0
  380. package/src/views/uploadDialog/indexPM.vue +578 -0
  381. package/src/views/uploadDialog/indexUpload.vue +543 -0
  382. package/src/views/uploadDialog/readme.md +45 -0
@@ -0,0 +1,2244 @@
1
+ <template>
2
+ <div>
3
+ <div class="template-table">
4
+ <!--header-->
5
+ <div class="tem-header" v-if="temInputPack">
6
+ <ul class="clearfix">
7
+ <li :class="{ li: temInputPack[0].btnArray }" :key="index" v-for="(item, index) in temInputPack">
8
+ <label v-if="'label' in item && item.label">{{ item.label }}:</label>
9
+ <div v-if="'type' in item">
10
+ <div v-if="item.type === 'text'">
11
+ <el-input :placeholder="'placeholder' in item ? item.placeholder : ''" clearable :disabled="'disabled' in item && item.disabled ? item.disabled : false" v-model.trim="item.value">
12
+ </el-input>
13
+ </div>
14
+ <div v-if="item.type === 'select'">
15
+ <el-select
16
+ :filterable="'filterable' in item ? item.filterable : false"
17
+ :remote="'filterable' in item ? item.filterable : false"
18
+ :multiple="'multiple' in item ? item.multiple : false"
19
+ :placeholder="'placeholder' in item ? item.placeholder : ''"
20
+ @change="inputSelChange($event, item)"
21
+ @visible-change="getSltInfo(item, $event)"
22
+ :remote-method="remoteMethod"
23
+ @input.native="filterData($event, item)"
24
+ clearable
25
+ collapse-tags
26
+ :loading="loadings"
27
+ v-model.trim="item.value"
28
+ >
29
+ <!-- :multiple="'multiple' in item ? item.multiple : false"
30
+ :collapse-tags="'collapseTags' in item ? item.collapseTags : false"-->
31
+ <el-option
32
+ :key="'props' in item ? item2[item.props.value] : item2.value"
33
+ :label="'props' in item ? item2[item.props.label] : item2.label"
34
+ :value="'props' in item ? item2[item.props.value] : item2.value"
35
+ clearable
36
+ v-for="item2 in item.options"
37
+ v-if="'options' in item"
38
+ ></el-option>
39
+ <!-- {{item.options}} -->
40
+ <!-- {{ item.pagenation.page }}>> >>={{ item.pageCount }} -->
41
+
42
+ <div class="selectJob" v-if="item.pagenation || false">
43
+ <span @click.stop="prePage(item)" class="text" style="padding-right: 40px" v-if="item.pagenation.page > 1">上一页</span>
44
+ <span @click.stop="nextPage(item)" class="text" v-if="item.pageCount && item.pageCount > 1 && item.pagenation.page < item.pageCount">下一页</span>
45
+ </div>
46
+ </el-select>
47
+ </div>
48
+ <div v-if="item.type === 'remoteSelect'">
49
+ <temp-select :item="item" @selChange="inputSelChange"></temp-select>
50
+ </div>
51
+ <div v-if="item.type === 'date'">
52
+ <el-date-picker
53
+ :picker-options="'pickerOptions' in item ? item.pickerOptions : {}"
54
+ :placeholder="'placeholder' in item ? item.placeholder : ''"
55
+ size="small"
56
+ type="date"
57
+ v-model.trim="item.value"
58
+ value-format="yyyy-MM-dd"
59
+ ></el-date-picker>
60
+ </div>
61
+ <div @click="getOption('none', item)" v-if="item.type === 'cascader'">
62
+ <el-cascader
63
+ :collapse-tags="'collapseTags' in item ? item.collapseTags : true"
64
+ :disabled="'disabled' in item && item.disabled ? item.disabled : false"
65
+ :options="'options' in item ? item.options : []"
66
+ :placeholder="'placeholder' in item ? item.placeholder : ''"
67
+ :props="'props' in item ? item.props : {}"
68
+ :show-all-levels="'showAllLevels' in item ? item.showAllLevels : true"
69
+ change-on-select
70
+ clearable
71
+ filterable
72
+ size="small"
73
+ v-model.trim="item.value"
74
+ ></el-cascader>
75
+ </div>
76
+ <div v-if="item.type === 'daterange'">
77
+ <el-date-picker
78
+ :end-placeholder="'endPlaceholder' in item ? item.endPlaceholder || '结束时间' : '结束时间'"
79
+ :picker-options="'pickerOptions' in item ? item.pickerOptions : {}"
80
+ :range-separator="'rangeSeparator' in item ? item.rangeSeparator || '-' : '-'"
81
+ :start-placeholder="'startPlaceholder' in item ? item.startPlaceholder || '开始时间' : '开始时间'"
82
+ size="small"
83
+ type="daterange"
84
+ v-model.trim="item.value"
85
+ value-format="yyyy-MM-dd"
86
+ ></el-date-picker>
87
+ </div>
88
+ <div v-if="item.type === 'month'">
89
+               <el-date-picker
90
+ :end-placeholder="'endPlaceholder' in item ? item.endPlaceholder || '结束时间' : '结束时间'"
91
+ :picker-options="'pickerOptions' in item ? item.pickerOptions : {}"
92
+ :range-separator="'rangeSeparator' in item ? item.rangeSeparator || '-' : '-'"
93
+ :start-placeholder="'startPlaceholder' in item ? item.startPlaceholder || '开始时间' : '开始时间'"
94
+ size="small"
95
+ type="month"
96
+ v-model.trim="item.value"
97
+ value-format="yyyy-MM"
98
+ ></el-date-picker>
99
+             
100
+ </div>
101
+ <div v-if="item.type === 'datetimerange'">
102
+ <el-date-picker
103
+ :end-placeholder="'endPlaceholder' in item ? item.endPlaceholder || '结束时间' : '结束时间'"
104
+ :picker-options="'pickerOptions' in item ? item.pickerOptions : {}"
105
+ :range-separator="'rangeSeparator' in item ? item.rangeSeparator || '-' : '-'"
106
+ :start-placeholder="'startPlaceholder' in item ? item.startPlaceholder || '开始时间' : '开始时间'"
107
+ size="small"
108
+ type="datetimerange"
109
+ v-model.trim="item.value"
110
+ value-format="yyyy-MM-dd HH:mm:ss"
111
+ >
112
+ </el-date-picker>
113
+ </div>
114
+ <div v-if="item.type === 'textMore'">
115
+ <div :key="indexMore" style="display: inline-block" v-for="(itemMore, indexMore) in item.children">
116
+ <el-input :disabled="'disabled' in itemMore && itemMore.disabled ? itemMore.disabled : false" :placeholder="itemMore.placeholder" type="text" v-model="itemMore.value"></el-input>
117
+ <span v-if="indexMore % 2 == 0">~</span>
118
+ </div>
119
+ </div>
120
+ <!--input 支持搜索-->
121
+ <div v-if="item.type === 'autocomplete'">
122
+ <el-autocomplete
123
+ :fetch-suggestions="querySearchAsync"
124
+ :loadAll="(restaurants = item.restaurants)"
125
+ :placeholder="item.placeholder"
126
+ :rowkey="(rowkey = temTablePack.rowkey)"
127
+ @select="handleSelect"
128
+ v-model.trim="item.value"
129
+ ></el-autocomplete>
130
+ </div>
131
+ </div>
132
+ <!-- <div v-if="'btnArray' in item">
133
+ <el-button v-for="(itemBtn,indexBtn) in item.btnArray " :key="indexBtn" :type="itemBtn.type" v-if="itemBtn.type=='query'|| itemBtn.type=='search' " @keyup.enter="btn(itemBtn,indexBtn)" @click="btn(itemBtn,indexBtn)">{{itemBtn.label}}</el-button>
134
+ <el-button v-for="(itemBtn,indexBtn) in item.btnArray " :key="indexBtn" :type="itemBtn.type" v-if="itemBtn.type!='query'&& itemBtn.type!='search' " @click="btn(itemBtn,indexBtn)">{{itemBtn.label}}</el-button>
135
+ </div>-->
136
+ </li>
137
+ </ul>
138
+ <template v-for="item in temInputPack" v-if="'btnArray' in item">
139
+ <el-button
140
+ :key="indexBtn"
141
+ :type="itemBtn.type || 'primary'"
142
+ @click="btn(itemBtn, indexBtn)"
143
+ v-for="(itemBtn, indexBtn) in item.btnArray"
144
+ v-if="itemBtn.type == 'query' || itemBtn.type == 'search'"
145
+ >
146
+ {{ itemBtn.label }}</el-button
147
+ >
148
+ <el-button
149
+ :disabled="'disabled' in itemBtn && itemBtn.disabled ? itemBtn.disabled : false"
150
+ :key="indexBtn"
151
+ :type="itemBtn.type || ''"
152
+ @click="btn(itemBtn, indexBtn)"
153
+ v-for="(itemBtn, indexBtn) in item.btnArray"
154
+ v-if="itemBtn.type != 'query' && itemBtn.type != 'search'"
155
+ >{{ itemBtn.label }}</el-button
156
+ >
157
+ <div class="page-count flex justify-content--flex-end" v-if="subtotal">
158
+ <p :key="index" v-for="(item, index) in subtotal">{{ item.label }}{{ item.beforeUnit }}{{ item.value }}{{ item.afterUnit }}</p>
159
+ </div>
160
+ </template>
161
+ </div>
162
+ <!--tab-->
163
+ <el-row v-if="temTab && 'tabPane' in temTab">
164
+ <el-col :span="24">
165
+ <el-tabs @tab-click="handleClickTab" type="border-card" v-model="activeName">
166
+ <el-tab-pane :key="index" :label="item.label" v-for="(item, index) in temTab.tabPane"></el-tab-pane>
167
+ </el-tabs>
168
+ <!--main table-->
169
+ <!-- {{activeName}} -->
170
+ <div class="template-box" v-for="(item, index) in temTab.tabPane" v-if="activeName == index">
171
+ <div class="tem-main" v-if="temTablePack">
172
+ <h3 class="temTablePack-title" v-if="'title' in temTablePack ? temTablePack.title : ''">{{ temTablePack.title }}:</h3>
173
+ <el-table
174
+ :data="tableData"
175
+ :empty-text="'emptyText' in temTablePack ? temTablePack.emptyText : '暂无数据'"
176
+ :row-key="row_Key"
177
+ :rowKey="(rowKey = temTablePack.rowKey ? temTablePack.rowKey : '')"
178
+ @select="handleSelectionChange"
179
+ @select-all="handleSelectionChange"
180
+ @toggleSelection="toggleSelection"
181
+ ref="multipleTable"
182
+ style="width: 100%"
183
+ v-loading="loading"
184
+ stripe
185
+ :height="'tabHeight' in temTablePack ? temTablePack.tabHeight : false"
186
+ >
187
+ <el-table-column
188
+ :reserve-selection="temTablePack.reserve_selection ? true : false"
189
+ type="selection"
190
+ v-if="'selection' in temTablePack ? temTablePack.selection.state : false"
191
+ width="40"
192
+ ></el-table-column>
193
+ <el-table-column
194
+ :align="'align' in item ? item.align : ''"
195
+ :key="index"
196
+ :label="'label' in item ? item.label : ''"
197
+ :min-width="'minWidth' in item ? item.minWidth : ''"
198
+ :prop="'prop' in item ? item.prop : ''"
199
+ :width="'width' in item ? item.width : 'auto'"
200
+ v-for="(item, index) in temTablePack.tableHead"
201
+ :fixed="'fixed' in item ? item.fixed : false"
202
+ :show-overflow-tooltip="'overflow' in item ? item.overflow : false"
203
+ >
204
+ <template slot-scope="scope">
205
+ <template-table-content :item="item" :scope="scope" @changeGetData="getDataList"> </template-table-content>
206
+ </template>
207
+ </el-table-column>
208
+ <el-table-column
209
+ :width="'tabBtnWidth' in temTablePack ? temTablePack.tabBtnWidth : '180'"
210
+ label="操作"
211
+ :fixed="'fixed' in temTablePack ? temTablePack.fixed : false"
212
+ v-if="'tabBtnState' in temTablePack ? temTablePack.tabBtnState : true"
213
+ >
214
+ <template slot-scope="scope">
215
+ <!--四个以内的按钮是这么显示-->
216
+ <span :key="index" class="tem-span-btn" style="display: inline-block" v-for="(item, index) in temTablePack.tableBtn">
217
+ <template v-if="'renderTemp' in item">
218
+ <child :item="item" :para="scope.row" :temp="item.renderTemp"></child>
219
+ </template>
220
+ <template v-else>
221
+ <span style="display: inline-block" v-if="'dropdown' in item && item.dropdown">
222
+ <!--dropdown 为false 表示不需要折叠-->
223
+ <!-- v-if="dropdownState(scope.row.dataState,item.dropdowMenu)" -->
224
+ <el-dropdown @command="handleClick($event, scope, index)" @click.native="open($event, scope, index)">
225
+ <el-button class="el-dropdown-link" size="text">
226
+ 处理
227
+ <i class="el-icon-arrow-down el-icon--right"></i>
228
+ </el-button>
229
+ <el-dropdown-menu slot="dropdown">
230
+ <el-dropdown-item
231
+ :command="dropdowItem"
232
+ :key="(dropdowIndexObj[scope.$index] = dropdowIndex)"
233
+ v-for="(dropdowItem, dropdowIndex) in item.dropdowMenu"
234
+ v-if="('dataState' in dropdowItem && dropdowItem.dataState.split(',').includes(scope.row.dataState.toString())) || ('state' in dropdowItem && dropdowItem.state)"
235
+ >
236
+ {{ dropdowItem.label }}</el-dropdown-item
237
+ >
238
+ </el-dropdown-menu>
239
+ </el-dropdown>
240
+ </span>
241
+ <span style="display: inline-block" v-else>
242
+ <template v-if="'dataState' in item && item.dataState == null">
243
+ <template v-if="'reverse' in item && item.reverse">
244
+ <el-button
245
+ :class="'type' in item && item.type ? item.type : 'primary'"
246
+ @click="handleClick(item, scope, index)"
247
+ size="small"
248
+ type="text"
249
+ v-if="item.props && scope.row[item.props['dataState']] != null"
250
+ >{{ item.label }}
251
+ </el-button>
252
+ </template>
253
+ <template v-else>
254
+ <el-button
255
+ :class="'type' in item && item.type ? item.type : 'primary'"
256
+ @click="handleClick(item, scope, index)"
257
+ size="small"
258
+ type="text"
259
+ v-if="item.props && scope.row[item.props['dataState']] == null"
260
+ >{{ item.label }}
261
+ </el-button>
262
+ </template>
263
+ </template>
264
+ <template v-if="'otherState' in item && item.otherState">
265
+ <!-- {{scope.row[item.props['dataState']]}}
266
+ {{item[item.props['dataState']]}}-->
267
+ <el-button
268
+ :class="'type' in item && item.type ? item.type : 'primary'"
269
+ @click="handleClick(item, scope, index)"
270
+ size="small"
271
+ type="text"
272
+ v-if="'dataState' in item && 'props' in item && scope.row.dataState == item.dataState && scope.row[item.props['dataState']] == item[item.props['dataState']]"
273
+ >
274
+ {{ item.label }}</el-button
275
+ >
276
+ <el-button
277
+ :class="'type' in item && item.type ? item.type : 'primary'"
278
+ @click="handleClick(item, scope, index)"
279
+ size="small"
280
+ type="text"
281
+ v-else-if="!item.dataState && item.props && scope.row[item.props['dataState']] == item[item.props['dataState']]"
282
+ >
283
+ {{ item.label }}</el-button
284
+ >
285
+ </template>
286
+ <template v-else>
287
+ <!--万恶的后台接口,数据==null 显示-->
288
+ <!-- {{dataState}} -->
289
+ <!-- <el-button v-if="'dataState' in item && 'props' in item && scope.row[item.props['dataState']] == item.dataState" :class="'type' in item && item.type ? item.type : 'primary'" @click="handleClick(item,scope,index)" type="text" size="small">{{item.label}}</el-button> -->
290
+ <el-button
291
+ :class="'type' in item && item.type ? item.type : 'primary'"
292
+ @click="handleClick(item, scope, index)"
293
+ size="small"
294
+ type="text"
295
+ v-if="'dataState' in item && 'props' in item && String(item.dataState).split(',').includes(scope.row[item.props['dataState']].toString())"
296
+ >
297
+ {{ item.label }}</el-button
298
+ >
299
+ <el-button
300
+ :class="'type' in item && item.type ? item.type : 'primary'"
301
+ @click="handleClick(item, scope, index)"
302
+ size="small"
303
+ type="text"
304
+ v-else-if="'dataState' in item && scope.row.dataState == item.dataState && !item.props"
305
+ >
306
+ {{ item.label }}</el-button
307
+ >
308
+ <el-button :class="'type' in item && item.type ? item.type : 'primary'" @click="handleClick(item, scope, index)" size="small" type="text" v-else-if="item.state">{{
309
+ item.label
310
+ }}</el-button>
311
+ </template>
312
+ </span>
313
+ </template>
314
+ </span>
315
+ </template>
316
+ </el-table-column>
317
+ </el-table>
318
+ </div>
319
+
320
+ <div class="page-box">
321
+ <!-- 按钮部分 -->
322
+ <div v-if="'tablePageBtn' in temTablePack">
323
+ <el-button :key="indexBtn" :type="itemBtn.type" @click="btn(itemBtn, indexBtn)" v-for="(itemBtn, indexBtn) in temTablePack.tablePageBtn">{{ itemBtn.label }}</el-button>
324
+ </div>
325
+ <div class="page-item" v-if="'tabpageState' in temTablePack ? temTablePack.tabpageState : true">
326
+ <!--page-->
327
+ <div class="tem-page" v-if="pagenation && pagenation.total">
328
+ <!-- 'currentPage' in pagenation ? pagenation.currentPage : 1 -->
329
+ <!-- 'pageSize' in pagenation && pagenation.pageSize ? pagenation.pageSize : 10 -->
330
+ <el-pagination
331
+ :current-page="data.page"
332
+ :page-size="data.rows"
333
+ :page-sizes="'pageSizes' in pagenation && pagenation.pageSizes ? pagenation.pageSizes : [10, 20, 50, 100]"
334
+ :pager-count="5"
335
+ :total="'total' in pagenation ? pagenation.total : 1"
336
+ @current-change="currentChange"
337
+ @size-change="sizeChange"
338
+ layout="total, sizes, prev, pager, next, jumper"
339
+ ></el-pagination>
340
+ </div>
341
+ </div>
342
+ </div>
343
+ </div>
344
+ </el-col>
345
+ </el-row>
346
+
347
+ <div v-else>
348
+ <div class="template-box template-boild-box">
349
+ <!--main table-->
350
+ <div class="tem-main" v-if="temTablePack">
351
+ <h3 class="temTablePack-title" v-if="'title' in temTablePack ? temTablePack.title : ''">{{ temTablePack.title }}:</h3>
352
+ <el-table
353
+ :data="tableData"
354
+ :empty-text="'emptyText' in temTablePack ? temTablePack.emptyText : '暂无数据'"
355
+ :row-key="row_Key"
356
+ :rowKey="(rowKey = temTablePack.rowKey ? temTablePack.rowKey : '')"
357
+ @select="handleSelectionChange"
358
+ @select-all="handleSelectionChange"
359
+ @toggleSelection="toggleSelection"
360
+ ref="multipleTable"
361
+ style="width: 100%"
362
+ v-loading="loading"
363
+ stripe
364
+ :height="'tabHeight' in temTablePack ? temTablePack.tabHeight : false"
365
+ >
366
+ <el-table-column
367
+ :reserve-selection="temTablePack.reserve_selection ? true : false"
368
+ type="selection"
369
+ v-if="'selection' in temTablePack ? temTablePack.selection.state : false"
370
+ :selectable="selectable ? selectable : () => { return true}"
371
+ width="40"
372
+ ></el-table-column>
373
+ <el-table-column
374
+ :align="'align' in item ? item.align : ''"
375
+ :key="index"
376
+ :label="'label' in item ? item.label : ''"
377
+ :min-width="'minWidth' in item ? item.minWidth : ''"
378
+ :prop="'prop' in item ? item.prop : ''"
379
+ :width="'width' in item ? item.width : 'auto'"
380
+ v-for="(item, index) in temTablePack.tableHead"
381
+ :fixed="'fixed' in item ? item.fixed : false"
382
+ :show-overflow-tooltip="'overflow' in item ? item.overflow : false"
383
+ >
384
+ <!-- min-width 产品后期要最小宽度,开发以改了部分,以无法修改,width 代替min-width -->
385
+ <template slot-scope="scope">
386
+ <template-table-content :item="item" :scope="scope" @changeGetData="getDataList"> </template-table-content>
387
+ </template>
388
+ </el-table-column>
389
+ <el-table-column
390
+ :width="'tabBtnWidth' in temTablePack ? temTablePack.tabBtnWidth : '180'"
391
+ label="操作"
392
+ :fixed="'fixed' in temTablePack ? temTablePack.fixed : false"
393
+ v-if="'tabBtnState' in temTablePack ? temTablePack.tabBtnState : true"
394
+ >
395
+ <template slot-scope="scope">
396
+ <!--四个以内的按钮是这么显示-->
397
+
398
+ <span :key="index" class="tem-span-btn" style="display: inline-block" v-for="(item, index) in temTablePack.tableBtn">
399
+ <template v-if="'renderTemp' in item">
400
+ <child :item="item" :para="scope.row" :temp="item.renderTemp"></child>
401
+ </template>
402
+ <template v-else>
403
+ <span style="display: inline-block" v-if="'dropdown' in item && item.dropdown">
404
+ <!--dropdown 为false 表示不需要折叠-->
405
+ <!-- v-if="dropdownState(scope.row.dataState,item.dropdowMenu)" -->
406
+ <el-dropdown @command="handleClick($event, scope, index)">
407
+ <el-button class="el-dropdown-link" size="text">
408
+ 处理
409
+ <i class="el-icon-arrow-down el-icon--right"></i>
410
+ </el-button>
411
+ <el-dropdown-menu slot="dropdown">
412
+ <el-dropdown-item
413
+ :command="dropdowItem"
414
+ :key="(dropdowIndex = dropdowIndex)"
415
+ v-for="(dropdowItem, dropdowIndex) in item.dropdowMenu"
416
+ v-if="('dataState' in dropdowItem && dropdowItem.dataState.split(',').includes(scope.row.dataState.toString())) || ('state' in dropdowItem && dropdowItem.state)"
417
+ >
418
+ {{ dropdowItem.label }}</el-dropdown-item
419
+ >
420
+ </el-dropdown-menu>
421
+ </el-dropdown>
422
+ </span>
423
+
424
+ <span style="display: inline-block" v-else>
425
+ <template v-if="'dataState' in item && item.dataState == null">
426
+ <template v-if="'reverse' in item && item.reverse">
427
+ <el-button
428
+ :class="'type' in item && item.type ? item.type : 'primary'"
429
+ @click="handleClick(item, scope, index)"
430
+ size="small"
431
+ type="text"
432
+ v-if="'reverse' in item && item.props && scope.row[item.props['dataState']] != null"
433
+ >
434
+ {{ item.label }}</el-button
435
+ >
436
+ </template>
437
+ <template v-else>
438
+ <el-button
439
+ :class="'type' in item && item.type ? item.type : 'primary'"
440
+ @click="handleClick(item, scope, index)"
441
+ size="small"
442
+ type="text"
443
+ v-if="item.props && scope.row[item.props['dataState']] == null"
444
+ >{{ item.label }}
445
+ </el-button>
446
+ </template>
447
+ </template>
448
+ <template v-if="'otherState' in item && item.otherState">
449
+ <!-- {{scope.row[item.props['dataState']]}}
450
+ {{item[item.props['dataState']]}}-->
451
+ <el-button
452
+ :class="'type' in item && item.type ? item.type : 'primary'"
453
+ @click="handleClick(item, scope, index)"
454
+ size="small"
455
+ type="text"
456
+ v-if="'dataState' in item && 'props' in item && scope.row.dataState == item.dataState && scope.row[item.props['dataState']] == item[item.props['dataState']]"
457
+ >
458
+ {{ item.label }}</el-button
459
+ >
460
+ <el-button
461
+ :class="'type' in item && item.type ? item.type : 'primary'"
462
+ @click="handleClick(item, scope, index)"
463
+ size="small"
464
+ type="text"
465
+ v-else-if="!item.dataState && item.props && scope.row[item.props['dataState']] == item[item.props['dataState']]"
466
+ >
467
+ {{ item.label }}</el-button
468
+ >
469
+ </template>
470
+
471
+ <template v-else>
472
+ <!--万恶的后台接口,数据==null 显示-->
473
+ <!-- <el-button v-if="'dataState' in item && 'props' in item && scope.row[item.props['dataState']] == item.dataState" :class="'type' in item && item.type ? item.type : 'primary'" @click="handleClick(item,scope,index)" type="text" size="small">{{item.label}}</el-button> -->
474
+ <el-button
475
+ :class="'type' in item && item.type ? item.type : 'primary'"
476
+ @click="handleClick(item, scope, index)"
477
+ size="small"
478
+ type="text"
479
+ v-if="
480
+ 'dataState' in item &&
481
+ 'props' in item &&
482
+ (scope.row[item.props['dataState']] || scope.row[item.props['dataState']] == 0) &&
483
+ String(item.dataState).split(',').includes(scope.row[item.props['dataState']].toString())
484
+ "
485
+ >{{ item.label }}</el-button
486
+ >
487
+ <el-button
488
+ :class="'type' in item && item.type ? item.type : 'primary'"
489
+ @click="handleClick(item, scope, index)"
490
+ size="small"
491
+ type="text"
492
+ v-else-if="'dataState' in item && scope.row.dataState == item.dataState && !item.props"
493
+ >
494
+ {{ item.label }}</el-button
495
+ >
496
+ <el-button :class="'type' in item && item.type ? item.type : 'primary'" @click="handleClick(item, scope, index)" size="small" type="text" v-else-if="item.state">{{
497
+ item.label
498
+ }}</el-button>
499
+ </template>
500
+ </span>
501
+ </template>
502
+ </span>
503
+ </template>
504
+ </el-table-column>
505
+ </el-table>
506
+ </div>
507
+
508
+ <div class="page-box" v-if="temTablePack">
509
+ <!-- 按钮部分 -->
510
+ <div v-if="'tablePageBtn' in temTablePack">
511
+ <el-button :key="indexBtn" :type="itemBtn.type" @click="btn(itemBtn, indexBtn)" v-for="(itemBtn, indexBtn) in temTablePack.tablePageBtn">{{ itemBtn.label }}</el-button>
512
+ </div>
513
+ <div class="page-item" v-if="'tabpageState' in temTablePack ? temTablePack.tabpageState : true">
514
+ <!--page-->
515
+ <div class="tem-page" v-if="pagenation && pagenation.total">
516
+ <!-- 'currentPage' in pagenation ? pagenation.currentPage : 1 -->
517
+ <!-- 'pageSize' in pagenation && pagenation.pageSize ? pagenation.pageSize : 10 -->
518
+ <el-pagination
519
+ :current-page="data.page"
520
+ :layout="temLayout"
521
+ :page-size="data.rows"
522
+ :page-sizes="'pageSizes' in pagenation && pagenation.pageSizes ? pagenation.pageSizes : [10, 20, 50, 100]"
523
+ :pager-count="5"
524
+ :total="'total' in pagenation ? pagenation.total : 1"
525
+ @current-change="currentChange"
526
+ @size-change="sizeChange"
527
+ ></el-pagination>
528
+ </div>
529
+ </div>
530
+ </div>
531
+ <!-- count -->
532
+ <!-- <div class="page-count flex justify-content--flex-end" v-if="count">
533
+ <p
534
+ v-for="(item,index) in count"
535
+ :key="index"
536
+ >{{item.label}}{{item.beforeUnit}}{{item.value}}{{item.afterUnit}}</p>
537
+ </div>-->
538
+ </div>
539
+ </div>
540
+
541
+ <!--编辑-->
542
+ <el-dialog
543
+ :title="'title' in dialogData.template ? dialogData.template.title : ''"
544
+ :visible.sync="dialogFormVisible"
545
+ @close="dialogClose"
546
+ append-to-body
547
+ :width="'width' in dialogData.template ? dialogData.template.width : '660px'"
548
+ v-if="dialogData && dialogData.template"
549
+ >
550
+ <template-input
551
+ :labelWidth="dialogData.template.labelWidth"
552
+ :rules="dialogData.template.rules"
553
+ :temInput="dialogData.template.html"
554
+ @cancel="dialogCancel"
555
+ @getData="getDataList"
556
+ @handleSelect="handleSelect"
557
+ @inputBlur="inputBlur"
558
+ @inputBtnClick="inputBtnClick"
559
+ @radioChange="radioChange"
560
+ @selChange="selChange"
561
+ ref="child"
562
+ ></template-input>
563
+ </el-dialog>
564
+ <!--查看-->
565
+ <el-dialog
566
+ :title="dialogDataSee && 'title' in dialogDataSee ? dialogDataSee.title : ''"
567
+ :visible.sync="dialogFormVisibleSee"
568
+ append-to-body
569
+ :width="dialogDataSee && 'width' in dialogDataSee ? dialogDataSee.width : '660px'"
570
+ v-if="JSON.stringify(dialogDataSee) != '{}'"
571
+ >
572
+ <ul class="dialogSee-ui">
573
+ <li :key="index" class="clearfix" v-for="(item, index) in dialogDataSee.html">
574
+ <div v-if="'state' in item">
575
+ <div v-if="item.state == item.stateValue">
576
+ <label :style="{ width: 'labelWidth' in dialogDataSee ? dialogDataSee.labelWidth + 'px' : 'auto' }" v-if="'label' in item">{{ item.label }}:</label>
577
+ <div class="dialog-main" v-if="'type' in item">
578
+ <p v-if="item.type === 'text'">
579
+ {{ 'template' in item && item.template === 'format' ? parseTime(item.value) : item.value }}
580
+ </p>
581
+ <!--表示文本框-->
582
+ <p v-if="item.type === 'select'">{{ item.template[item.value] }}</p>
583
+ <img :src="item.value" v-if="item.type === 'img'" />
584
+ <p class="dialogSee-textarea" v-if="item.type === 'textarea'">{{ item.value }}</p>
585
+ </div>
586
+ </div>
587
+ </div>
588
+ <div v-else>
589
+ <label :style="{ width: 'labelWidth' in dialogDataSee ? dialogDataSee.labelWidth + 'px' : 'auto' }" v-if="'label' in item">{{ item.label }}:</label>
590
+ <div class="dialog-main" v-if="'type' in item">
591
+ <p v-if="item.type === 'text'">
592
+ {{ 'template' in item && item.template === 'format' ? parseTime(item.value) : item.value }}
593
+ </p>
594
+ <!--表示文本框-->
595
+ <p v-if="item.type === 'select'">{{ item.template[item.value] }}</p>
596
+ <img :src="item.value" v-if="item.type === 'img'" />
597
+
598
+ <p class="dialogSee-textarea" v-if="item.type === 'textarea'">{{ item.value }}</p>
599
+ </div>
600
+ </div>
601
+ <el-button :key="indexBtn" :type="itemBtn.type" @click="reviewClick(itemBtn, dialogDataSee.html)" v-for="(itemBtn, indexBtn) in item.btnArray" v-if="'btnArray' in item">{{
602
+ itemBtn.label
603
+ }}</el-button>
604
+ </li>
605
+ </ul>
606
+ </el-dialog>
607
+ </div>
608
+ </div>
609
+ </template>
610
+ <script>
611
+ import request from '#/utils/request';
612
+ import templateTableContent from './templateUi/templateTableContent';
613
+ import tempSelect from './components/temp-select';
614
+ import templateInput from './templateInput';
615
+ const querystring = require('querystring');
616
+ import { isUndefined } from 'lodash';
617
+ import { parseTime } from '#/utils/index'; //时间格式化
618
+ export default {
619
+ props: ['temInput', 'params', 'selectable', 'temTable', 'temPage', 'temTab', 'url', 'temPageLayout', 'subtotal'],
620
+ computed: {
621
+ temInputPack() {
622
+ if (!this.temInput) {
623
+ return this.temInput;
624
+ }
625
+ if (isUndefined(this.$route.meta.btnRules)) {
626
+ return this.temInput;
627
+ }
628
+ const index = this.temInput.findIndex((item) => Array.isArray(item.btnArray));
629
+ if (index === -1) {
630
+ return this.temInput;
631
+ }
632
+
633
+ let inputData = this.temInput;
634
+ const result = inputData[index];
635
+ result.btnArray = result.btnArray.filter((item1) => {
636
+ if (item1.menuCode) {
637
+ return this.$route.meta.btnRules.some((items) => items.menuCode == item1.menuCode);
638
+ } else {
639
+ return this.$route.meta.btnRules.some((items) => items.menuName == item1.label);
640
+ }
641
+ });
642
+ return inputData;
643
+ },
644
+ temTablePack() {
645
+ if (!this.temTable) {
646
+ return this.temTable;
647
+ }
648
+ if (isUndefined(this.$route.meta.btnRules)) {
649
+ return this.temTable;
650
+ }
651
+ if (!Array.isArray(this.temTable['tableBtn'])) {
652
+ return this.temTable;
653
+ }
654
+
655
+ let tabBtnData = this.temTable;
656
+
657
+ tabBtnData['tableBtn'] = tabBtnData['tableBtn'].filter((item1) => {
658
+ if (item1.menuCode) {
659
+ return this.$route.meta.btnRules.some((items) => items.menuCode == item1.menuCode);
660
+ } else {
661
+ return this.$route.meta.btnRules.some((items) => items.menuName == item1.label);
662
+ }
663
+ });
664
+ return tabBtnData;
665
+ },
666
+ },
667
+ components: {
668
+ tempSelect,
669
+ 'template-table-content': templateTableContent,
670
+ 'template-input': templateInput,
671
+ child: {
672
+ functional: true,
673
+ render: (h, context) => {
674
+ let temp = context.props.temp;
675
+ let para = context.props.para;
676
+ let item = context.props.item;
677
+ return temp(h, para, item);
678
+ },
679
+ props: {
680
+ temp: {
681
+ type: Function,
682
+ required: true,
683
+ },
684
+ para: {
685
+ type: Object,
686
+ required: true,
687
+ },
688
+ item: {
689
+ type: Object,
690
+ required: true,
691
+ },
692
+ },
693
+ },
694
+ },
695
+ data() {
696
+ return {
697
+ rowKey: '',
698
+ row_Key: 'row[this.rowKey]',
699
+ temLayout: 'total, sizes, prev, pager, next, jumper',
700
+ pagenation: null,
701
+ data: {
702
+ rows: 10,
703
+ page: 1,
704
+ },
705
+ sltPage: 1,
706
+ sltItem: {},
707
+ pageCount: null,
708
+ restaurants: null, //搜索的数据
709
+ searchUrl: '',
710
+ parseTime,
711
+ loading: false,
712
+ loadings: false,
713
+ dialogFormVisible: false, //dialog编辑是否显示
714
+ dialogFormVisibleSee: false, //dialog查看是否显示
715
+ dialogData: {},
716
+ dialogDataSee: {},
717
+ formLabelWidth: '9rem', //长度根据标题长度来,一个字一个rem
718
+ activeName: '0',
719
+ tableData: [],
720
+ ruleForm: {}, //编辑from
721
+ limit: null, //限制图片上传的数量
722
+ uploadUrl: '/web/rs/goodsFile/uploadGoodsFile.json', //图片上传的默认url
723
+ imageUrl: '', //单个图片的imgurl,
724
+ uploadImgValue: [], //上传图片url
725
+ showFileList: null,
726
+ uploadName: null, //上传图片name
727
+ imgLoading: false,
728
+ btnState: null, //1表示增加,2表示编辑
729
+ imgIndex: null,
730
+ iptSltname: '', //table内容
731
+ dropdowIndexObj: {},
732
+ flag: 0,
733
+ inputHtmlReset: null, //初始化数据
734
+ clickState: true, //防止多次重复点击
735
+ };
736
+ },
737
+ // beforeCreate() {
738
+ // this.dialogData
739
+ // },
740
+ mounted() {
741
+ // console.log(this.temInputPack, "ddd");
742
+ // 在template-table上新增加绑定一个temPageLayout,值是字符串,不传默认是'total, sizes, prev, pager, next, jumper',
743
+ // 根据需要添加或者减少
744
+ if (localStorage.getItem('currenPage')) {
745
+ this.data.page = localStorage.getItem('currenPage');
746
+ this.getDataList();
747
+ }
748
+ if (this.temPageLayout) {
749
+ this.temLayout = this.temPageLayout;
750
+ }
751
+
752
+ this.temPage
753
+ ? (this.pagenation = this.temPage)
754
+ : this.temPage === false
755
+ ? (this.pagenation = false)
756
+ : (this.pagenation = {
757
+ currentPage: 1,
758
+ pageSizes: [10, 20, 50, 100],
759
+ pageSize: 10,
760
+ total: 1,
761
+ });
762
+ if (this.temPage && 'pageSize' in this.temPage) {
763
+ this.data.rows = this.temPage.pageSize;
764
+ }
765
+ //查询商家列表
766
+ this.getDataList();
767
+ },
768
+ methods: {
769
+ open(item, val, index) {
770
+ console.log('2222++++++++++', item, val, index);
771
+ if (val.row.dataState == -1 || val.row.dataState == 4) {
772
+ this.$message.warning('暂无操作');
773
+ return;
774
+ }
775
+ },
776
+ btn(itemBtn, index) {
777
+ console.log(itemBtn, index, '+++++++++++++++++++++++++++++');
778
+ if (itemBtn.id === 'query' || itemBtn.id === 'search') {
779
+ //表示查询
780
+ this.data.page = 1;
781
+ this.searchUrl = 'url' in itemBtn && itemBtn.url ? itemBtn.url : '';
782
+ console.log(this.searchUrl, 'this.searchUrl222222222222222222222++++++++++++++++++++++++++++++++++');
783
+ this.getDataList(this.searchUrl);
784
+ } else if (itemBtn.id === 'add') {
785
+ itemBtn.template.html.forEach((el) => {
786
+ this.$set(this.ruleForm, el.name, el.value);
787
+ });
788
+ // 给add 抛出一个方法
789
+ this.$emit('inputBtnClickAdd', itemBtn, index);
790
+ // this.$emit("editClick", val.row, index);
791
+ this.dialogData = itemBtn;
792
+ this.dialogFormVisible = true;
793
+ this.btnState = 1; //表示增加
794
+ } else if (itemBtn.id === 'accurateQuery') {
795
+ this.searchUrl = 'url' in itemBtn && itemBtn.url ? itemBtn.url : '';
796
+ this.getDataList(this.searchUrl, itemBtn.id);
797
+ } else if (itemBtn.id == 'exImportData') {
798
+ this.searchUrl = 'url' in itemBtn && itemBtn.url ? itemBtn.url : '';
799
+ let jump = 'jumpUrl' in itemBtn && itemBtn.jumpUrl ? itemBtn.jumpUrl : '';
800
+ this.importData(this.searchUrl, itemBtn.id, jump);
801
+ } else {
802
+ this.$emit('inputBtnClick', itemBtn, index);
803
+ }
804
+ // this.$emit("inputBtnClick", itemBtn, index);
805
+ },
806
+ inputBtnClick(itemBtn, indexBtn) {
807
+ //input子组件传递的通用事件
808
+ this.$emit('inputBtnClick', itemBtn, indexBtn);
809
+ },
810
+
811
+ dialogClose() {
812
+ // console.log(this.$refs.child);
813
+ this.$refs.child.setReset();
814
+ this.dialogFormVisible = false;
815
+ // console.log("close");
816
+ },
817
+ reviewClick(itemBtn, item) {
818
+ if (itemBtn.id == 'review') {
819
+ //表示确定
820
+ this.setData(itemBtn.url, itemBtn, item);
821
+ }
822
+ },
823
+ inputBlur(item) {
824
+ this.$emit('inputBlur', item);
825
+ },
826
+ setData(url, btnarr, item) {
827
+ if (url) {
828
+ let data = {};
829
+ btnarr.params.forEach((res) => {
830
+ if (res.value) {
831
+ data[res.name] = res.value;
832
+ } else {
833
+ data[res.name] = item[res.index].value;
834
+ }
835
+ });
836
+ //编辑请求接口
837
+ request({
838
+ url: url,
839
+ method: 'post',
840
+ data: querystring.stringify(data),
841
+ }).then((res) => {
842
+ if (res.success) {
843
+ this.$message({
844
+ message: res.msg,
845
+ type: 'success',
846
+ });
847
+ this.getDataList();
848
+ this.dialogFormVisibleSee = false;
849
+ } else {
850
+ this.$message.error(res.msg);
851
+ }
852
+ });
853
+ }
854
+ },
855
+ getOption(e, item) {
856
+ console.log(item, 'item');
857
+ if (item.url && !item.state) {
858
+ request({
859
+ url: item.url,
860
+ method: 'get',
861
+ }).then((res) => {
862
+ item.options = res;
863
+ item.state = true;
864
+ });
865
+ }
866
+ },
867
+ prePage(item) {
868
+ // console.log(item,'item2')
869
+ --item.pagenation.page;
870
+ // this.sltPage = item.pagenation.page;
871
+
872
+ if (item.pagenation.page < 1) {
873
+ // 判断点击的页数是否小于1
874
+ this.$message.error('已到第一页');
875
+ item.pagenation.page = 1;
876
+ return;
877
+ }
878
+ item.state = false;
879
+ this.getSltInfo(item, true);
880
+ },
881
+ nextPage(item) {
882
+ // console.log(item,'item1')
883
+ // console.log(this.pageCount,'this.pageCount')
884
+ if (item.pagenation.page < item.pageCount) {
885
+ // 判断点击的页数是否小于总页数;
886
+ ++item.pagenation.page;
887
+ // this.sltPage = item.pagenation.page;
888
+ item.state = false;
889
+ this.getSltInfo(item, true);
890
+ } else {
891
+ this.$message.error('已到最后一页');
892
+ }
893
+ },
894
+ remoteMethod(data) {
895
+ this.sltItem.pagenation.page = 1;
896
+ this.sltItem.state = false;
897
+ this.loadings = true;
898
+ this.sltItem.pageCount = '';
899
+ this.iptSltname = data;
900
+
901
+ // let item=JSON.parse(JSON.stringify(this.sltItem));
902
+ console.log(this.iptSltname, 'item');
903
+ this.getSltInfo(this.sltItem, true);
904
+ },
905
+ filterData(data, item) {},
906
+ getSltInfo(item, flag) {
907
+ this.sltItem = item;
908
+ console.log(item, this.iptSltname, 'item');
909
+ // this.sltItem=JSON.parse(JSON.stringify(item));
910
+ if (item.url && !item.state) {
911
+ let json = {
912
+ rows: (item.pagenation && item.pagenation.rows) || null,
913
+ page: (item.pagenation && item.pagenation.page) || null,
914
+ };
915
+ if (!item.pagenation) {
916
+ delete json.page;
917
+ delete json.rows;
918
+ }
919
+ if (item.props.label && this.iptSltname) {
920
+ json[item.props.label] = this.iptSltname;
921
+ } else {
922
+ delete json[item.props.label];
923
+ }
924
+ request({
925
+ url: item.url,
926
+ method: 'post',
927
+ data: json,
928
+ }).then((res) => {
929
+ item.pageCount = item.pagenation && item.pagenation.rows ? Math.ceil(res.total / item.pagenation.rows) : 1;
930
+ if (res) {
931
+ if (Array.isArray(res)) {
932
+ item.options = res;
933
+ } else {
934
+ item.options = res.list;
935
+ }
936
+ }
937
+ this.loadings = false;
938
+ item.state = true;
939
+ });
940
+ }
941
+ },
942
+ handleClick(item, val, index) {
943
+ console.log('xialacaozuo++++++++++++++++');
944
+ // console.log(item);
945
+ //index表示btn的位置
946
+ let id = item.id;
947
+ if (id === 'see') {
948
+ // console.log(,"item")
949
+
950
+ this.seeDetails(item, val, index);
951
+ } else if (id === 'edit') {
952
+ item.template.html.forEach((el) => {
953
+ if (el.name in val.row) {
954
+ //判断属性是否存在
955
+ if (el.type === 'cascader') {
956
+ el.value = val.row[el.name] ? [...val.row[el.name]] : '';
957
+ } else {
958
+ el.value = val.row[el.name];
959
+ }
960
+ }
961
+
962
+ // 没有值时,保留原有的值,不作处理
963
+ // else {
964
+ // el.value = ""; //没有值的时候,为空
965
+ // }
966
+ });
967
+ this.dialogData = item;
968
+ this.dialogFormVisible = true;
969
+ this.btnState = 2; //表示编辑
970
+ } else if (id === 'del' && !('params' in item)) {
971
+ console.log('删除');
972
+ this.delData(val, item);
973
+ } else if ('params' in item || ('prompt' in item && item.prompt)) {
974
+ //判断url和params 都不存在,还需要弹框时候"prompt" in item && item.prompt
975
+ // (!("params" in item) && !("url" in item))
976
+ this.changeData(item, val);
977
+ }
978
+
979
+ this.$emit('tableBtnClick', val.row, item, index);
980
+ },
981
+ querySearchAsync(queryString, cb) {
982
+ var restaurants = this.restaurants;
983
+ var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
984
+
985
+ clearTimeout(this.timeout);
986
+ this.timeout = setTimeout(() => {
987
+ cb(results);
988
+ }, 3000 * Math.random());
989
+ },
990
+ createStateFilter(queryString) {
991
+ return (state) => {
992
+ return state.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0;
993
+ };
994
+ },
995
+ handleSelect(item) {
996
+ console.log('开始选');
997
+ this.$emit('handleSelect', item);
998
+ },
999
+ sizeChange(val) {
1000
+ this.data.rows = val;
1001
+ this.data.page = 1;
1002
+ this.getDataList();
1003
+ this.$emit('sizeChange', val);
1004
+ },
1005
+ currentChange(val) {
1006
+ console.log('开始请求');
1007
+ this.data.page = val;
1008
+ this.getDataList();
1009
+ this.$emit('currentChange', val);
1010
+ },
1011
+ handleCommand(key, data) {
1012
+ console.log(key, data, 'f');
1013
+ //折叠按钮请求
1014
+ // this.$message("click on item " + command);
1015
+ // this.$emit("tableBtnClick", command); //抛出去,根据id来执行事件
1016
+ },
1017
+ importData(paramsUrl, btnId, jump) {
1018
+ let paramsResult = null, //判断参数是否必传
1019
+ disabledPrompt = null, //参数必传的提示语
1020
+ disabledValueArray = null; //参数必传的name值的数组
1021
+ let requestUrl = paramsUrl ? paramsUrl : this.searchUrl ? this.searchUrl : this.url ? this.url : '';
1022
+ if (requestUrl === '') {
1023
+ // this.$message.error("url not defined");
1024
+ return false;
1025
+ }
1026
+ let params = {};
1027
+
1028
+ //获取参数
1029
+ this.temInputPack &&
1030
+ this.temInputPack.forEach((el, index) => {
1031
+ if ('disabledStatic' in el && el.disabledStatic) {
1032
+ //添加这个字段表示这个字段传递后,才可点击搜索框
1033
+ paramsResult = true; //设定为true,表示有这个字段
1034
+ if ('disabledPrompt' in el && el.disabledPrompt) {
1035
+ //这个字段只需给一个,一般以第一个为准
1036
+ disabledPrompt = el.disabledPrompt;
1037
+ }
1038
+ disabledValueArray = [];
1039
+ disabledValueArray.push(el.value);
1040
+ }
1041
+ if (el.type === 'daterange') {
1042
+ //这是时间段
1043
+ // console.log(el.name, "ddd");
1044
+ el.name.split(',').forEach((res, index) => {
1045
+ if (el.value) {
1046
+ params[res] = el.value[index];
1047
+ }
1048
+ });
1049
+ } else if (el.type === 'datetimerange') {
1050
+ //这是时间段
1051
+ console.log(el.name, 'ddd');
1052
+ el.name.split(',').forEach((res, index) => {
1053
+ if (el.value) {
1054
+ params[res] = el.value[index];
1055
+ }
1056
+ });
1057
+ } else if (el.type === 'cascader') {
1058
+ let _array = el.options;
1059
+ // 先判断是几级
1060
+ if (el.value.length - 1) {
1061
+ }
1062
+ // if (Array.isArray(el.value[0])) {
1063
+ // let _val = "";
1064
+ // el.value.forEach((res, reIndex) => {
1065
+ // _val +=
1066
+ // el.value.length - 1 == reIndex
1067
+ // ? res[res.length - 1]
1068
+ // : res[res.length - 1] + ",";
1069
+ // });
1070
+ // params[el.name] = _val;
1071
+ // } else {
1072
+ if (el.value.length > 0) {
1073
+ params[el.name] = el.value[el.value.length - 1];
1074
+ }
1075
+ // }
1076
+ } else if (el.type === 'select') {
1077
+ if (Array.isArray(el.value) && el.value.length > 0) {
1078
+ let _val = '';
1079
+ el.value.forEach((res, reIndex) => {
1080
+ _val += el.value.length - 1 == reIndex ? res : res + ',';
1081
+ });
1082
+ params[el.name] = _val;
1083
+ } else {
1084
+ if (el.value) {
1085
+ params[el.name] = el.value;
1086
+ console.log(el, el.value, params, 'el.value');
1087
+ }
1088
+ }
1089
+ } else if (el.name) {
1090
+ if (el.value) {
1091
+ //暂时修改,后台接口返回问题
1092
+ // if(el.multiple){
1093
+ // params[el.name]=el.value.toString()
1094
+ // }else{
1095
+ params[el.name] = el.value;
1096
+ // }
1097
+
1098
+ console.log(el, el.value, params, 'el.value');
1099
+ }
1100
+ } else if (el.type === 'textMore') {
1101
+ el.children.forEach((response) => {
1102
+ if (response.value) {
1103
+ params[response.name] = response.value;
1104
+ }
1105
+ });
1106
+ }
1107
+ });
1108
+ if (this.temTab && this.temTab.tabPane[this.activeName].value != '') {
1109
+ this.temTab.tabPane[this.activeName].name.split(',').forEach((elpar, elIndex) => {
1110
+ this.$set(params, elpar, this.temTab.tabPane[this.activeName].value.split(',')[elIndex]);
1111
+ });
1112
+ }
1113
+ //查询列表
1114
+
1115
+ console.log(params, '+++++++++++++');
1116
+ // this.loading = true;
1117
+ // 请求需要携带的参数params
1118
+ this.params &&
1119
+ this.params.forEach((par) => {
1120
+ if (par.value) {
1121
+ params[par.name] = par.value;
1122
+ }
1123
+ });
1124
+ params.exportFlag = true;
1125
+ request({
1126
+ url: requestUrl,
1127
+ method: 'post',
1128
+ data: querystring.stringify(params),
1129
+ }).then((res) => {
1130
+ this.$message.success('操作成功,请耐心等待');
1131
+
1132
+ setTimeout(() => {
1133
+ if (!jump) {
1134
+ window.locationProxy.href = process.env.API_ROOT + '/paas/system-manager/index.html#/importData';
1135
+ } else {
1136
+ window.locationProxy.href = jump;
1137
+ }
1138
+ }, 500);
1139
+ });
1140
+ },
1141
+ getDataList(paramsUrl, btnId) {
1142
+ if (this.clickState) {
1143
+ this.clickState = false;
1144
+
1145
+ // debugger
1146
+ let paramsResult = null, //判断参数是否必传
1147
+ disabledPrompt = null, //参数必传的提示语
1148
+ disabledValueArray = null; //参数必传的name值的数组
1149
+ let requestUrl = paramsUrl ? paramsUrl : this.searchUrl ? this.searchUrl : this.url ? this.url : '';
1150
+ if (requestUrl === '') {
1151
+ // this.$message.error("url not defined");
1152
+ return false;
1153
+ }
1154
+ let params = {};
1155
+ if (!btnId) {
1156
+ params['rows'] = this.data.rows;
1157
+ params['page'] = this.data.page;
1158
+ }
1159
+ if (this.temPage == false) {
1160
+ delete params.rows;
1161
+ delete params.page;
1162
+ }
1163
+ //获取参数
1164
+ this.temInputPack &&
1165
+ this.temInputPack.forEach((el, index) => {
1166
+ if ('disabledStatic' in el && el.disabledStatic) {
1167
+ //添加这个字段表示这个字段传递后,才可点击搜索框
1168
+ paramsResult = true; //设定为true,表示有这个字段
1169
+ if ('disabledPrompt' in el && el.disabledPrompt) {
1170
+ //这个字段只需给一个,一般以第一个为准
1171
+ disabledPrompt = el.disabledPrompt;
1172
+ }
1173
+ disabledValueArray = [];
1174
+ disabledValueArray.push(el.value);
1175
+ }
1176
+ if (el.type === 'daterange') {
1177
+ //这是时间段
1178
+ // console.log(el.name, "ddd");
1179
+ el.name.split(',').forEach((res, index) => {
1180
+ if (el.value) {
1181
+ params[res] = el.value[index];
1182
+ }
1183
+ });
1184
+ } else if (el.type === 'datetimerange') {
1185
+ //这是时间段
1186
+ console.log(el.name, 'ddd');
1187
+ el.name.split(',').forEach((res, index) => {
1188
+ if (el.value) {
1189
+ params[res] = el.value[index];
1190
+ }
1191
+ });
1192
+ } else if (el.type === 'cascader') {
1193
+ let _array = el.options;
1194
+ // 先判断是几级
1195
+ if (el.value.length - 1) {
1196
+ }
1197
+ // if (Array.isArray(el.value[0])) {
1198
+ // let _val = "";
1199
+ // el.value.forEach((res, reIndex) => {
1200
+ // _val +=
1201
+ // el.value.length - 1 == reIndex
1202
+ // ? res[res.length - 1]
1203
+ // : res[res.length - 1] + ",";
1204
+ // });
1205
+ // params[el.name] = _val;
1206
+ // } else {
1207
+ if (el.value.length > 0) {
1208
+ params[el.name] = el.value[el.value.length - 1];
1209
+ }
1210
+ // }
1211
+ } else if (el.type === 'select') {
1212
+ if (Array.isArray(el.value) && el.value.length > 0) {
1213
+ let _val = '';
1214
+ el.value.forEach((res, reIndex) => {
1215
+ _val += el.value.length - 1 == reIndex ? res : res + ',';
1216
+ });
1217
+ params[el.name] = _val;
1218
+ } else {
1219
+ if (el.value) {
1220
+ params[el.name] = el.value;
1221
+ console.log(el, el.value, params, 'el.value');
1222
+ }
1223
+ }
1224
+ } else if (el.name) {
1225
+ if (el.value) {
1226
+ //暂时修改,后台接口返回问题
1227
+ // if(el.multiple){
1228
+ // params[el.name]=el.value.toString()
1229
+ // }else{
1230
+ params[el.name] = el.value;
1231
+ // }
1232
+
1233
+ console.log(el, el.value, params, 'el.value');
1234
+ }
1235
+ } else if (el.type === 'textMore') {
1236
+ el.children.forEach((response) => {
1237
+ if (response.value) {
1238
+ params[response.name] = response.value;
1239
+ }
1240
+ });
1241
+ }
1242
+ });
1243
+ if (this.temTab && this.temTab.tabPane[this.activeName].value != '') {
1244
+ console.log('111111111');
1245
+
1246
+ this.temTab.tabPane[this.activeName].name.split(',').forEach((elpar, elIndex) => {
1247
+ this.$set(params, elpar, this.temTab.tabPane[this.activeName].value.split(',')[elIndex]);
1248
+ });
1249
+ } else if (this.temTab && this.temTab.tabPane[this.activeName].value == '') {
1250
+ if (this.temTab.tabPane[this.activeName].url) {
1251
+ requestUrl = this.temTab.tabPane[this.activeName].url;
1252
+ }
1253
+ }
1254
+ //查询列表
1255
+ if (Object.keys(params).length === 0 && btnId) {
1256
+ this.tableData = [];
1257
+ return;
1258
+ }
1259
+ if (paramsResult) {
1260
+ //表示需要判断
1261
+ console.log(disabledValueArray, 'disabledValueArray');
1262
+ // debugger
1263
+ if ((disabledValueArray.indexOf('') || disabledValueArray.indexOf('underfind') || disabledValueArray.indexOf('null') || disabledValueArray.indexOf(null)) != -1) {
1264
+ this.$message.error(disabledPrompt);
1265
+ return;
1266
+ }
1267
+ }
1268
+ this.loading = true;
1269
+ // 请求需要携带的参数params
1270
+ this.params &&
1271
+ this.params.forEach((par) => {
1272
+ if (par.value) {
1273
+ params[par.name] = par.value;
1274
+ }
1275
+ });
1276
+ console.log(requestUrl, 'requestUrl');
1277
+ request({
1278
+ url: requestUrl,
1279
+ method: 'post',
1280
+ data: querystring.stringify(params),
1281
+ }).then((res) => {
1282
+ this.loading = false;
1283
+ this.clickState = true;
1284
+ if (res) {
1285
+ if (Array.isArray(res)) {
1286
+ this.tableData = res;
1287
+ this.$emit('getData', res);
1288
+ // 小计
1289
+
1290
+ if (res.length > 0) {
1291
+ if (this.subtotal && this.subtotal.length > 0) {
1292
+ this.subtotal.forEach((el) => {
1293
+ el.value = 0;
1294
+ if (el.name) {
1295
+ res.forEach((res) => {
1296
+ el.value = this.accAdd(el.value, Number(res[el.name]));
1297
+ el.value = el.value.toFixed(2);
1298
+ });
1299
+ }
1300
+ });
1301
+ }
1302
+ } else {
1303
+ if (this.subtotal && this.subtotal.length > 0) {
1304
+ this.subtotal.forEach((el) => {
1305
+ el.value = 0;
1306
+ });
1307
+ }
1308
+ }
1309
+ } else if (res && res.list) {
1310
+ this.tableData = res.list;
1311
+ if (this.temPage !== false) {
1312
+ this.pagenation.total = res.total;
1313
+ }
1314
+ this.tableData = res.list;
1315
+ this.$emit('getData', res.list);
1316
+ this.$emit('getTotal', res.total);
1317
+ // 小计
1318
+ if (res.list.length > 0) {
1319
+ if (this.subtotal && this.subtotal.length > 0) {
1320
+ this.subtotal.forEach((el) => {
1321
+ el.value = 0;
1322
+ if (el.name) {
1323
+ res.list.forEach((res) => {
1324
+ el.value = this.accAdd(el.value, Number(res[el.name]));
1325
+ el.value = el.value.toFixed(2);
1326
+ });
1327
+ }
1328
+ });
1329
+ }
1330
+ } else {
1331
+ if (this.subtotal && this.subtotal.length > 0) {
1332
+ this.subtotal.forEach((el) => {
1333
+ el.value = 0;
1334
+ });
1335
+ }
1336
+ }
1337
+ } else {
1338
+ if (this.temPage !== false) {
1339
+ this.pagenation.total = 0;
1340
+ }
1341
+ if (this.subtotal && this.subtotal.length > 0) {
1342
+ this.subtotal.forEach((el) => {
1343
+ el.value = 0;
1344
+ });
1345
+ }
1346
+ this.tableData = [];
1347
+ this.$emit('getData', []);
1348
+ this.$emit('getTotal', 0);
1349
+ }
1350
+ } else {
1351
+ if (this.temPage !== false) {
1352
+ this.pagenation.total = 0;
1353
+ }
1354
+ this.tableData = [];
1355
+ this.$emit('getData', []);
1356
+ this.$emit('getTotal', 0);
1357
+ }
1358
+ });
1359
+ }
1360
+ },
1361
+ seeDetails(item, val, index) {
1362
+ console.log(item, val);
1363
+ let nData = val.row;
1364
+ let params = {};
1365
+ if (item.props) {
1366
+ item.props.forEach((res) => {
1367
+ if ('extend' in res && res.exteng === false) {
1368
+ params[res.name] = res.value;
1369
+ } else {
1370
+ params[res.name] = nData[res.value];
1371
+ if (!res.value) {
1372
+ params[res.name] = nData[res.name];
1373
+ }
1374
+ }
1375
+ });
1376
+ }
1377
+ if (Object.keys(params).length === 0) {
1378
+ params['1'] = '';
1379
+ }
1380
+ if (item.url) {
1381
+ request({
1382
+ url: item.url,
1383
+ method: 'post',
1384
+ data: querystring.stringify(params),
1385
+ }).then((res) => {
1386
+ if (res && !res.success) {
1387
+ this.showDetails(item, res);
1388
+ } else {
1389
+ this.$message.error('操作失败');
1390
+ }
1391
+ });
1392
+ } else {
1393
+ this.showDetails(item, nData);
1394
+ }
1395
+ },
1396
+ showDetails(item, data) {
1397
+ let template = JSON.parse(JSON.stringify(item.template)); //去除数据的双向绑定
1398
+ template.html.forEach((el) => {
1399
+ if (el.value === '') {
1400
+ if ('template' in el) {
1401
+ if (el.template === 'format') {
1402
+ el.value = data[el.name] ? parseTime(data[el.name]) : data[el.name];
1403
+ } else if (el.template === 'area') {
1404
+ el.name &&
1405
+ el.name.map((val) => {
1406
+ console.log(data, val);
1407
+ if (data[val]) {
1408
+ el.value += data[val] + ' ';
1409
+ }
1410
+ });
1411
+ } else {
1412
+ el.value = el.template[data[el.name]];
1413
+ }
1414
+ } else {
1415
+ el.value = data[el.name];
1416
+ }
1417
+ if ('state' in el) {
1418
+ el.stateValue = data[el.stateName];
1419
+ }
1420
+ }
1421
+ });
1422
+ console.log(template, 'template');
1423
+ this.dialogDataSee = template;
1424
+ // console.log(this.dialogDataSee.html, "template");
1425
+ // var seeDe=this.dialogDataSee.html;
1426
+ // for(var i in seeDe){
1427
+ // if(seeDe[i].type=="img"){
1428
+ // console.log(seeDe[i].value)
1429
+ // }
1430
+ // }
1431
+ this.dialogFormVisibleSee = true;
1432
+ },
1433
+ accAdd(num1, num2) {
1434
+ var r1, r2, m;
1435
+ try {
1436
+ r1 = num1.toString().split('.')[1].length;
1437
+ } catch (e) {
1438
+ r1 = 0;
1439
+ }
1440
+ try {
1441
+ r2 = num2.toString().split('.')[1].length;
1442
+ } catch (e) {
1443
+ r2 = 0;
1444
+ }
1445
+ m = Math.pow(10, Math.max(r1, r2));
1446
+ // return (num1*m+num2*m)/m;
1447
+ return Math.round(num1 * m + num2 * m) / m;
1448
+ },
1449
+ inputSelChange(val, item) {
1450
+ // this.getDataList();
1451
+ this.$emit('selChange', val, item);
1452
+ },
1453
+ selChange(val, item) {
1454
+ this.$emit('selChange', val, item);
1455
+ },
1456
+ dialogCancel() {
1457
+ //取消
1458
+ this.dialogFormVisible = false;
1459
+ },
1460
+ dialogConfirm(url, formName) {
1461
+ //编辑确定
1462
+ this.$refs[formName].validate((valid) => {
1463
+ //编辑验证
1464
+ if (valid) {
1465
+ if (url && this.dialogData.html) {
1466
+ let data = this.ruleForm;
1467
+ //编辑请求接口
1468
+ request({
1469
+ url: url,
1470
+ method: 'post',
1471
+ data: querystring.stringify(data),
1472
+ }).then((res) => {
1473
+ if (res.success) {
1474
+ if (this.btnState === 1) {
1475
+ //表示增加
1476
+ this.$message({
1477
+ message: '新增成功',
1478
+ type: 'success',
1479
+ });
1480
+ } else {
1481
+ this.$message({
1482
+ message: '编辑成功',
1483
+ type: 'success',
1484
+ });
1485
+ }
1486
+
1487
+ this.dialogFormVisible = false;
1488
+ this.getDataList();
1489
+ } else {
1490
+ this.$message.error(res.msg);
1491
+ }
1492
+ });
1493
+ }
1494
+ }
1495
+ });
1496
+ },
1497
+ addData(data) {
1498
+ // console.log(data, "dd");
1499
+ },
1500
+ delData(val, item) {
1501
+ let promptTitle = item.promptTitle ? item.promptTitle : '是否确认删除?';
1502
+ this.$confirm(promptTitle, {
1503
+ center: true,
1504
+ }).then((res) => {
1505
+ return request({
1506
+ url: item.url,
1507
+ method: 'post',
1508
+ data: querystring.stringify(val.row),
1509
+ })
1510
+ .then((res) => {
1511
+ if (res.success) {
1512
+ this.$message.success(res.msg);
1513
+ this.getDataList();
1514
+ }
1515
+ //和request 封装的response起冲突
1516
+ // else {
1517
+ // this.$message.error(res.msg);
1518
+ // }
1519
+ this.$emit('btnConfirm', val, item); //抛出确认按钮
1520
+ })
1521
+ .catch((err) => {
1522
+ console.log(err);
1523
+ });
1524
+ });
1525
+ },
1526
+ handleAvatarSuccess(res, file) {
1527
+ console.log(res, file);
1528
+ this.imageUrl = URL.createObjectURL(file.raw);
1529
+ },
1530
+ handleClickTab(tab, event) {
1531
+ //tab事件操作
1532
+ this.$emit('handleClickTab', this.temTab.tabPane[this.activeName]);
1533
+ this.data.page = 1;
1534
+ this.getDataList();
1535
+ },
1536
+ exceed() {
1537
+ //图片个数超出的验证
1538
+ this.$message.error(`最多上传${this.limit}张!`);
1539
+ },
1540
+ beforeAvatarUpload(file) {
1541
+ //上传之前的回调
1542
+ const fileType = /\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(file.name);
1543
+ if (!fileType) {
1544
+ this.$message.error('图片格式为常见的jpg、png、gif格式!');
1545
+ }
1546
+ const isLt2M = file.size / 1024 / 1024 < 5;
1547
+ if (!isLt2M) {
1548
+ this.$message.error('上传的图片大小不能超过 5MB!');
1549
+ }
1550
+ return isLt2M && fileType;
1551
+ },
1552
+ picUpload(file) {
1553
+ // this.imgLoading = true;
1554
+ const formData = new FormData(); //转表单对象
1555
+ formData.append('file', file.file);
1556
+ return request({
1557
+ url: this.uploadUrl,
1558
+ method: 'post',
1559
+ data: formData,
1560
+ })
1561
+ .then((res) => {
1562
+ if (!this.showFileList) {
1563
+ //组件中添加showFileList就是判断是否是单个图片
1564
+ this.uploadImgValue = [];
1565
+ }
1566
+ this.uploadImgValue.push({ url: res.fileUrl, uid: file.file.uid });
1567
+ if (this.uploadName) {
1568
+ this.ruleForm[this.uploadName] = res.fileUrl;
1569
+ }
1570
+ // this.imgLoading = false;
1571
+ })
1572
+ .catch(() => {
1573
+ // this.imgLoading = false;
1574
+ console.log('上传失败');
1575
+ });
1576
+ },
1577
+ handleRemove(file, fileList) {
1578
+ //删除图片
1579
+ this.uploadImgValue = this.uploadImgValue.filter((val) => {
1580
+ return val.uid !== file.uid;
1581
+ });
1582
+ console.log(this.uploadImgValue);
1583
+ },
1584
+ handleSelectionChange(selection, row) {
1585
+ console.log('多选222222222222', selection, row, this.tableData);
1586
+ this.$emit('handleSelectionChange', selection, row);
1587
+ localStorage.setItem('selectList', this.tableData);
1588
+ this.multipleSelection = selection;
1589
+ this.select_order_number = this.multipleSelection.length;
1590
+
1591
+ this.select_more = [];
1592
+ if (selection) {
1593
+ selection.forEach((row) => {
1594
+ if (row) {
1595
+ this.select_more.push(row);
1596
+ }
1597
+ });
1598
+ }
1599
+ console.log('多页', this.select_more);
1600
+ },
1601
+ toggleSelection(rows) {
1602
+ if (rows) {
1603
+ rows.forEach((row) => {
1604
+ this.$refs.multipleTable.toggleRowSelection(row, true);
1605
+ });
1606
+ } else {
1607
+ this.$refs.multipleTable.clearSelection();
1608
+ }
1609
+ this.$emit('toggleSelection', row);
1610
+ },
1611
+ dropdownState(state, arr) {
1612
+ arr.every((res) => {
1613
+ return res.dataState == state;
1614
+ });
1615
+ // let aa = arr.some(el => {
1616
+ // return el.dataState == state;
1617
+ // });
1618
+ // console.log(aa);
1619
+ },
1620
+
1621
+ changeData(item, val) {
1622
+ let params = 'params' in item ? JSON.parse(JSON.stringify(item.params)) : {};
1623
+ for (let el in params) {
1624
+ if (params[el] === '') {
1625
+ params[el] = val.row[el];
1626
+ }
1627
+ }
1628
+ if ('paramProps' in item) {
1629
+ for (let el in item.paramProps) {
1630
+ params[el] = val.row[item.paramProps[el]];
1631
+ }
1632
+ }
1633
+ if ('url' in item && item.url) {
1634
+ if ('promptTitle' in item) {
1635
+ let title = 'title' in item ? item.title : '提示';
1636
+ this.$confirm(item.promptTitle, title, {
1637
+ center: true,
1638
+ })
1639
+ .then(() => {
1640
+ this.postData(item.url, params);
1641
+ this.$emit('btnConfirm', val, item); //抛出确认按钮,接口请求完成后
1642
+ })
1643
+ .catch(() => {
1644
+ this.$message({
1645
+ type: 'info',
1646
+ message: '已取消',
1647
+ });
1648
+ });
1649
+ } else {
1650
+ this.postData(item.url, params);
1651
+ }
1652
+ } else {
1653
+ if (item.prompt) {
1654
+ //prompt 为true时表示有提示框
1655
+ //当url不存在,表示不需要请求
1656
+ this.$confirm(item.promptTitle, '提示', {
1657
+ center: true,
1658
+ })
1659
+ .then(() => {
1660
+ this.$emit('btnConfirm', val, item); //抛出确认按钮,接口请求完成后
1661
+ })
1662
+ .catch(() => {
1663
+ this.$message({
1664
+ type: 'info',
1665
+ message: '已取消',
1666
+ });
1667
+ });
1668
+ } else if ('url' in item && !item.url) {
1669
+ //当url不传的时候
1670
+ this.$message.error('url not defined');
1671
+ }
1672
+ }
1673
+ },
1674
+ postData(url, params) {
1675
+ request({
1676
+ url: url,
1677
+ method: 'post',
1678
+ data: querystring.stringify(params),
1679
+ }).then((res) => {
1680
+ if (res.success) {
1681
+ //表示增加
1682
+ this.$message({
1683
+ message: '操作成功',
1684
+ type: 'success',
1685
+ });
1686
+
1687
+ this.getDataList();
1688
+ } else {
1689
+ this.$message.error(res.msg);
1690
+ }
1691
+ });
1692
+ },
1693
+ radioChange(val, item) {
1694
+ this.$emit('radioChange', val, item);
1695
+ },
1696
+ },
1697
+ watch: {
1698
+ temPage: {
1699
+ handler() {
1700
+ this.pagenation = this.temPage;
1701
+ },
1702
+ deep: true, //深度监听
1703
+ },
1704
+ dialogFormVisible(val) {
1705
+ if (this.dialogFormVisible) {
1706
+ this.$nextTick(function () {
1707
+ this.$refs.child.clearValidate();
1708
+ });
1709
+ }
1710
+ },
1711
+ temInputPack(val) {
1712
+ console.log(val, 'sss');
1713
+ },
1714
+ $route: function (to, form) {
1715
+ //路由改变,重新请求页面
1716
+ this.getDataList();
1717
+ },
1718
+ },
1719
+ };
1720
+ </script>
1721
+ <style lang="scss">
1722
+ .el-tabs__item:focus.is-active.is-focus:not(:active) {
1723
+ -webkit-box-shadow: none !important;
1724
+ box-shadow: none !important;
1725
+ }
1726
+
1727
+ // .template-table .el-select {
1728
+ // width: 120px !important;
1729
+ // }
1730
+ .el-button {
1731
+ height: 30px !important;
1732
+ border-radius: 2px !important;
1733
+ }
1734
+
1735
+ .el-input__inner {
1736
+ border-radius: 2px;
1737
+ }
1738
+
1739
+ .tem-header .el-input {
1740
+ width: inherit;
1741
+ }
1742
+
1743
+ .tem-header li {
1744
+ margin-bottom: 10px !important;
1745
+ }
1746
+
1747
+ .tem-header .li {
1748
+ margin-bottom: 0px !important;
1749
+ line-height: 0;
1750
+ }
1751
+
1752
+ // .tem-header .el-input .el-input__inner {
1753
+ // height: 30px;
1754
+ // line-height: 30px;
1755
+ // padding: 0 20px 0 10px;
1756
+ // width: 120px;
1757
+ // font-size: 12px;
1758
+ // text-overflow: ellipsis;
1759
+ // white-space: nowrap;
1760
+ // }
1761
+ .tem-header .el-input .el-input__inner + .el-input__suffix {
1762
+ right: 0px !important;
1763
+ }
1764
+
1765
+ .el-tabs--border-card > .el-tabs__header {
1766
+ background-color: #fff !important;
1767
+ border-bottom: 1px solid transparent !important;
1768
+ }
1769
+
1770
+ .el-table thead.has-gutter tr th {
1771
+ background: #f3f4f5;
1772
+ }
1773
+
1774
+ .el-table .el-table__header .cell {
1775
+ color: #666;
1776
+ font-weight: normal;
1777
+ line-height: 20px;
1778
+ text-align: left !important;
1779
+ }
1780
+
1781
+ .el-table .el-table__body .cell {
1782
+ font-size: 12px;
1783
+ text-align: left !important;
1784
+ }
1785
+
1786
+ .el-tabs--border-card > .el-tabs__content {
1787
+ padding: 0 !important;
1788
+ }
1789
+
1790
+ .template-box {
1791
+ padding: 0 15px 20px 15px !important;
1792
+ background: #fff;
1793
+ }
1794
+
1795
+ .template-boild-box {
1796
+ // border: 1px solid #ededed !important;
1797
+ box-shadow: 0 0px 0px 0 transparent, 0 0 0px 0 transparent !important;
1798
+ -webkit-box-shadow: 0 0px 0px 0 transparent, 0 0 0px 0 transparent !important;
1799
+ }
1800
+
1801
+ .el-tabs--border-card {
1802
+ border: 1px solid #ededed !important;
1803
+ box-shadow: 0 0px 0px 0 transparent, 0 0 0px 0 transparent !important;
1804
+ -webkit-box-shadow: 0 0px 0px 0 transparent, 0 0 0px 0 transparent !important;
1805
+ }
1806
+
1807
+ .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
1808
+ border-left-color: transparent !important;
1809
+ }
1810
+
1811
+ .el-tabs--border-card > .el-tabs__header .el-tabs__item {
1812
+ border-right: 1px solid #e0e0e0 !important;
1813
+ height: 18px;
1814
+ line-height: 18px;
1815
+ margin: 20px 0 !important;
1816
+ font-size: 16px;
1817
+ }
1818
+
1819
+ .el-tabs--border-card > .el-tabs__header .el-tabs__item:last-child {
1820
+ border: none !important;
1821
+ }
1822
+
1823
+ .tem-table-img {
1824
+ width: 40px;
1825
+ height: 40px;
1826
+ border-radius: 2px;
1827
+ margin-right: 10px;
1828
+ float: left;
1829
+ }
1830
+
1831
+ .tem-table-img-center {
1832
+ width: 40px;
1833
+ height: 40px;
1834
+ border-radius: 2px;
1835
+ }
1836
+
1837
+ .tem-img-list img {
1838
+ width: 150px;
1839
+ display: inline-block;
1840
+ }
1841
+
1842
+ .el-table td {
1843
+ padding: 5px 0 !important;
1844
+ }
1845
+
1846
+ .tem-ul-alert li {
1847
+ line-height: 30px;
1848
+ }
1849
+
1850
+ .tem-ul-alert li label {
1851
+ float: left;
1852
+ }
1853
+
1854
+ .tem-span-btn button {
1855
+ margin: 0;
1856
+ margin-right: 10px;
1857
+ }
1858
+
1859
+ .el-dialog {
1860
+ width: 660px;
1861
+ }
1862
+
1863
+ .el-upload-list--picture-card .el-upload-list__item,
1864
+ .el-upload--picture-card {
1865
+ width: 100px;
1866
+ height: 100px;
1867
+ }
1868
+
1869
+ .el-upload--picture-card {
1870
+ line-height: 104px;
1871
+ }
1872
+
1873
+ .el-form-item__content .el-loading-mask {
1874
+ width: 102px;
1875
+ height: 102px;
1876
+ }
1877
+
1878
+ .el-upload-add .el-loading-mask {
1879
+ top: -36px;
1880
+ right: 72px;
1881
+ left: initial;
1882
+ }
1883
+
1884
+ .mar-t10 {
1885
+ margin-top: 10px;
1886
+ }
1887
+
1888
+ .btn-custom-cancel {
1889
+ float: right;
1890
+ margin-left: 10px;
1891
+ }
1892
+
1893
+ .el-checkbox {
1894
+ margin-left: 15px;
1895
+ }
1896
+
1897
+ .el-cascader-menu__item {
1898
+ padding: 8px !important;
1899
+ }
1900
+
1901
+ .el-cascader-menu {
1902
+ height: 550px !important;
1903
+ min-width: 120px !important;
1904
+ }
1905
+
1906
+ .el-message-box {
1907
+ width: 390px !important;
1908
+
1909
+ &.el-message-box--center {
1910
+ padding-bottom: 20px;
1911
+ }
1912
+
1913
+ /deep/ .el-message-box__title {
1914
+ justify-content: flex-start !important;
1915
+ }
1916
+
1917
+ .el-message-box__content {
1918
+ padding: 0;
1919
+ }
1920
+
1921
+ .el-message-box__message {
1922
+ text-align: center;
1923
+ font-size: 18px;
1924
+ margin: 30px 0;
1925
+ }
1926
+
1927
+ .el-message-box__btns {
1928
+ text-align: center;
1929
+ // margin-bottom: 30px;
1930
+ }
1931
+ }
1932
+
1933
+ // .el-message-box {
1934
+ // width: 590px !important;
1935
+ // .el-message-box--center {
1936
+ // padding-bottom: 0px;
1937
+ // }
1938
+ // .el-message-box__content {
1939
+ // padding: 0;
1940
+ // }
1941
+ // .el-message-box__message {
1942
+ // text-align: center;
1943
+ // font-size: 18px;
1944
+ // margin: 45px 0;
1945
+ // }
1946
+ // .el-message-box__btns {
1947
+ // text-align: center;
1948
+ // margin-bottom: 30px;
1949
+ // }
1950
+ // }
1951
+
1952
+ //组件改变
1953
+ .template-table {
1954
+ .el-select {
1955
+ .el-select__tags-text {
1956
+ display: inline-block;
1957
+ max-width: 84px;
1958
+ white-space: nowrap;
1959
+ /*规定段落中的文本不进行换行*/
1960
+ overflow: hidden;
1961
+ /*内容会被修剪,并且其余内容是不可见的。*/
1962
+ text-overflow: ellipsis;
1963
+ /*显示省略号来代表被修剪的文本*/
1964
+ }
1965
+ }
1966
+
1967
+ .el-select .el-tag__close.el-icon-close {
1968
+ top: -6px;
1969
+ }
1970
+
1971
+ .el-select__tags {
1972
+ white-space: nowrap;
1973
+ height: 30px;
1974
+ }
1975
+ }
1976
+ </style>
1977
+ <style lang="scss" scoped>
1978
+ .el-select {
1979
+ /deep/ .el-icon-::before {
1980
+ content: '\e6e1' !important;
1981
+ }
1982
+ }
1983
+
1984
+ .page-count {
1985
+ color: #333;
1986
+ font-size: 14px;
1987
+
1988
+ p {
1989
+ margin-left: 20px;
1990
+ }
1991
+ }
1992
+
1993
+ /**color**/
1994
+
1995
+ .success {
1996
+ color: #67c23a;
1997
+
1998
+ &:focus {
1999
+ color: #67c23a;
2000
+ }
2001
+
2002
+ &:link {
2003
+ color: #67c23a;
2004
+ }
2005
+
2006
+ &:hover {
2007
+ color: #67c23a;
2008
+ }
2009
+
2010
+ &:active {
2011
+ color: #67c23a;
2012
+ }
2013
+
2014
+ &:visited {
2015
+ color: #67c23a;
2016
+ }
2017
+ }
2018
+
2019
+ .info {
2020
+ color: #909399;
2021
+
2022
+ &:focus {
2023
+ color: #909399;
2024
+ }
2025
+
2026
+ &:link {
2027
+ color: #909399;
2028
+ }
2029
+
2030
+ &:hover {
2031
+ color: #909399;
2032
+ }
2033
+
2034
+ &:active {
2035
+ color: #909399;
2036
+ }
2037
+
2038
+ &:visited {
2039
+ color: #909399;
2040
+ }
2041
+ }
2042
+
2043
+ .warning {
2044
+ color: #e6a23c;
2045
+
2046
+ &:focus {
2047
+ color: #e6a23c;
2048
+ }
2049
+
2050
+ &:link {
2051
+ color: #e6a23c;
2052
+ }
2053
+
2054
+ &:hover {
2055
+ color: #e6a23c;
2056
+ }
2057
+
2058
+ &:active {
2059
+ color: #e6a23c;
2060
+ }
2061
+
2062
+ &:visited {
2063
+ color: #e6a23c;
2064
+ }
2065
+ }
2066
+
2067
+ .danger {
2068
+ color: #f56c6c;
2069
+
2070
+ &:focus {
2071
+ color: #f56c6c;
2072
+ }
2073
+
2074
+ &:link {
2075
+ color: #f56c6c;
2076
+ }
2077
+
2078
+ color: #f56c6c;
2079
+
2080
+ &:hover {
2081
+ color: #f56c6c;
2082
+ }
2083
+
2084
+ &:active {
2085
+ color: #f56c6c;
2086
+ }
2087
+
2088
+ &:visited {
2089
+ color: #f56c6c;
2090
+ }
2091
+ }
2092
+
2093
+ .dialogSee-ui {
2094
+ padding-bottom: 30px;
2095
+ }
2096
+
2097
+ .dialogSee-ui li {
2098
+ margin: 10px 0;
2099
+ }
2100
+
2101
+ .dialogSee-ui li img {
2102
+ width: 200px;
2103
+ }
2104
+
2105
+ .dialogSee-textarea {
2106
+ width: 360px;
2107
+ white-space: normal;
2108
+ word-break: break-all;
2109
+ }
2110
+
2111
+ .dialogSee-ui label {
2112
+ display: block;
2113
+ text-align: right;
2114
+ float: left;
2115
+ }
2116
+
2117
+ .dialog-main {
2118
+ float: left;
2119
+ }
2120
+
2121
+ .tem-table-span {
2122
+ text-align: left;
2123
+ }
2124
+
2125
+ .clearfix:after {
2126
+ content: '';
2127
+ display: block;
2128
+ clear: both;
2129
+ }
2130
+
2131
+ .template-table {
2132
+ //margin: 10px;
2133
+ overflow: auto;
2134
+ }
2135
+
2136
+ .tem-header {
2137
+ // margin-bottom: 30px;
2138
+ padding: 20px;
2139
+ background: #fff;
2140
+ border: 1px solid #ededed;
2141
+ margin-bottom: 12px;
2142
+ }
2143
+
2144
+ .tem-header li {
2145
+ // float: left;
2146
+ display: inline-block;
2147
+ margin-right: 20px;
2148
+ margin-bottom: 20px;
2149
+ }
2150
+
2151
+ .tem-header li > div {
2152
+ display: inline-block;
2153
+ }
2154
+
2155
+ .tem-header li label {
2156
+ font-size: 14px;
2157
+ color: #666;
2158
+ }
2159
+
2160
+ .temTablePack-title {
2161
+ font-weight: normal;
2162
+ font-size: 16px;
2163
+ margin: 10px 0 10px;
2164
+ }
2165
+
2166
+ // .template-table .el-select {
2167
+ // width: 140px;
2168
+ // }
2169
+ .el-date-editor .el-range-separator {
2170
+ width: auto;
2171
+ }
2172
+
2173
+ .el-date-editor--daterange.el-input__inner {
2174
+ width: 320px;
2175
+ }
2176
+
2177
+ .avatar-uploader .el-upload {
2178
+ border: 1px dashed #d9d9d9;
2179
+ border-radius: 6px;
2180
+ cursor: pointer;
2181
+ position: relative;
2182
+ overflow: hidden;
2183
+ }
2184
+
2185
+ .avatar-uploader .el-upload:hover {
2186
+ border-color: #409eff;
2187
+ }
2188
+
2189
+ .avatar-uploader-icon {
2190
+ font-size: 28px;
2191
+ color: #8c939d;
2192
+ width: 100px;
2193
+ height: 100px;
2194
+ line-height: 100px;
2195
+ text-align: center;
2196
+ border: 1px dashed #c0ccda;
2197
+ border-radius: 6px;
2198
+ background-color: #fbfdff;
2199
+ }
2200
+
2201
+ .avatar {
2202
+ width: 100px;
2203
+ height: 100px;
2204
+ display: block;
2205
+ }
2206
+
2207
+ .el-upload,
2208
+ .el-upload img {
2209
+ /* border: 1px dashed #c0ccda; */
2210
+ border-radius: 6px;
2211
+ }
2212
+
2213
+ .page-box {
2214
+ display: flex;
2215
+ display: -webkit-flex;
2216
+ /* Safari */
2217
+ margin: 20px 0 0;
2218
+ }
2219
+
2220
+ .page-item {
2221
+ flex-grow: 1;
2222
+ /* default 0 */
2223
+ }
2224
+
2225
+ .selectJob {
2226
+ text-align: center;
2227
+ padding: 10px 0;
2228
+
2229
+ span {
2230
+ width: 120px;
2231
+ overflow: hidden;
2232
+ text-overflow: ellipsis;
2233
+ white-space: nowrap;
2234
+ }
2235
+
2236
+ .text {
2237
+ padding-left: 10px;
2238
+ font-size: 14px;
2239
+ font-weight: bold;
2240
+ cursor: pointer;
2241
+ color: cornflowerblue;
2242
+ }
2243
+ }
2244
+ </style>