qj-common 4.1.0

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