qj-happy-common-zhongjian 1.0.27

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