@sugarat/easypicker2-client 2.7.0 → 2.7.1

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 (156) hide show
  1. package/dist/assets/{data-analysis-CVdTnsNg.js → data-analysis-B61f8OZD.js} +2 -2
  2. package/dist/assets/{data-analysis-CVdTnsNg.js.map → data-analysis-B61f8OZD.js.map} +1 -1
  3. package/dist/assets/{data-analysis-legacy-CrjrJgyN.js → data-analysis-legacy-sXkPNcPD.js} +2 -2
  4. package/dist/assets/{data-analysis-legacy-CrjrJgyN.js.map → data-analysis-legacy-sXkPNcPD.js.map} +1 -1
  5. package/dist/assets/{data-board-CKaKy1IB.js → data-board-BIN3HXKE.js} +2 -2
  6. package/dist/assets/{data-board-CKaKy1IB.js.map → data-board-BIN3HXKE.js.map} +1 -1
  7. package/dist/assets/{data-board-legacy-DfESxuEd.js → data-board-legacy-mqcredpF.js} +2 -2
  8. package/dist/assets/{data-board-legacy-DfESxuEd.js.map → data-board-legacy-mqcredpF.js.map} +1 -1
  9. package/dist/assets/{el-date-picker-cVKa-X4K.js → el-date-picker-B-cvGosU.js} +2 -2
  10. package/dist/assets/{el-date-picker-cVKa-X4K.js.map → el-date-picker-B-cvGosU.js.map} +1 -1
  11. package/dist/assets/{el-date-picker-legacy-CJ2heCkq.js → el-date-picker-legacy-CACCtxzL.js} +2 -2
  12. package/dist/assets/{el-date-picker-legacy-CJ2heCkq.js.map → el-date-picker-legacy-CACCtxzL.js.map} +1 -1
  13. package/dist/assets/{el-dialog-U5Zmt3t3.js → el-dialog-C9wNxcPt.js} +2 -2
  14. package/dist/assets/{el-dialog-U5Zmt3t3.js.map → el-dialog-C9wNxcPt.js.map} +1 -1
  15. package/dist/assets/{el-dialog-legacy-u4KST5yo.js → el-dialog-legacy-CX7a77_4.js} +2 -2
  16. package/dist/assets/{el-dialog-legacy-u4KST5yo.js.map → el-dialog-legacy-CX7a77_4.js.map} +1 -1
  17. package/dist/assets/{el-dropdown-item-flwUs2cH.js → el-dropdown-item-jbdZL0Yj.js} +2 -2
  18. package/dist/assets/{el-dropdown-item-flwUs2cH.js.map → el-dropdown-item-jbdZL0Yj.js.map} +1 -1
  19. package/dist/assets/{el-dropdown-item-legacy-B2fmSGnI.js → el-dropdown-item-legacy-ChoB2YAN.js} +2 -2
  20. package/dist/assets/{el-dropdown-item-legacy-B2fmSGnI.js.map → el-dropdown-item-legacy-ChoB2YAN.js.map} +1 -1
  21. package/dist/assets/{el-form-item-B08Ira7l.js → el-form-item-BhAyaXPT.js} +2 -2
  22. package/dist/assets/{el-form-item-B08Ira7l.js.map → el-form-item-BhAyaXPT.js.map} +1 -1
  23. package/dist/assets/{el-form-item-legacy-CcX_hnMk.js → el-form-item-legacy-DNwgpXzk.js} +2 -2
  24. package/dist/assets/{el-form-item-legacy-CcX_hnMk.js.map → el-form-item-legacy-DNwgpXzk.js.map} +1 -1
  25. package/dist/assets/{el-loading-BMbhg8vq.js → el-loading-D5D_2rI_.js} +2 -2
  26. package/dist/assets/{el-loading-BMbhg8vq.js.map → el-loading-D5D_2rI_.js.map} +1 -1
  27. package/dist/assets/{el-loading-legacy-CRJF51cp.js → el-loading-legacy-CCDpn-BT.js} +2 -2
  28. package/dist/assets/{el-loading-legacy-CRJF51cp.js.map → el-loading-legacy-CCDpn-BT.js.map} +1 -1
  29. package/dist/assets/{el-pagination-D4Wuvfl8.js → el-pagination-DRV4WevC.js} +2 -2
  30. package/dist/assets/{el-pagination-D4Wuvfl8.js.map → el-pagination-DRV4WevC.js.map} +1 -1
  31. package/dist/assets/{el-pagination-legacy-C2E-fHif.js → el-pagination-legacy-CAxn6D5y.js} +2 -2
  32. package/dist/assets/{el-pagination-legacy-C2E-fHif.js.map → el-pagination-legacy-CAxn6D5y.js.map} +1 -1
  33. package/dist/assets/{el-progress-ChbdZpVl.js → el-progress-GDfl1hgb.js} +2 -2
  34. package/dist/assets/{el-progress-ChbdZpVl.js.map → el-progress-GDfl1hgb.js.map} +1 -1
  35. package/dist/assets/{el-progress-legacy-zjlCtRh2.js → el-progress-legacy-C5K3FqLs.js} +2 -2
  36. package/dist/assets/{el-progress-legacy-zjlCtRh2.js.map → el-progress-legacy-C5K3FqLs.js.map} +1 -1
  37. package/dist/assets/{el-select-DP5UYxt3.js → el-select-B9z8VvNb.js} +2 -2
  38. package/dist/assets/{el-select-DP5UYxt3.js.map → el-select-B9z8VvNb.js.map} +1 -1
  39. package/dist/assets/{el-select-legacy-D4o92tvp.js → el-select-legacy-BI1YK9Jv.js} +2 -2
  40. package/dist/assets/{el-select-legacy-D4o92tvp.js.map → el-select-legacy-BI1YK9Jv.js.map} +1 -1
  41. package/dist/assets/{el-switch-legacy-D1AVOg2z.js → el-switch-legacy-CG_sT4XS.js} +2 -2
  42. package/dist/assets/{el-switch-legacy-D1AVOg2z.js.map → el-switch-legacy-CG_sT4XS.js.map} +1 -1
  43. package/dist/assets/{el-switch-DAReoFaC.js → el-switch-oOC_byJv.js} +2 -2
  44. package/dist/assets/{el-switch-DAReoFaC.js.map → el-switch-oOC_byJv.js.map} +1 -1
  45. package/dist/assets/{el-tab-pane-6kk7HB4E.js → el-tab-pane-NvGl_NI0.js} +2 -2
  46. package/dist/assets/{el-tab-pane-6kk7HB4E.js.map → el-tab-pane-NvGl_NI0.js.map} +1 -1
  47. package/dist/assets/{el-tab-pane-legacy-7aEB8qvn.js → el-tab-pane-legacy-usarmKVQ.js} +2 -2
  48. package/dist/assets/{el-tab-pane-legacy-7aEB8qvn.js.map → el-tab-pane-legacy-usarmKVQ.js.map} +1 -1
  49. package/dist/assets/{el-table-column-DsGlAuX3.js → el-table-column-JBAymLKS.js} +2 -2
  50. package/dist/assets/{el-table-column-DsGlAuX3.js.map → el-table-column-JBAymLKS.js.map} +1 -1
  51. package/dist/assets/{el-table-column-legacy-C8A33Lav.js → el-table-column-legacy-BWpnrxZl.js} +2 -2
  52. package/dist/assets/{el-table-column-legacy-C8A33Lav.js.map → el-table-column-legacy-BWpnrxZl.js.map} +1 -1
  53. package/dist/assets/{index-ggQcjFPK.js → index-B0mV367i.js} +2 -2
  54. package/dist/assets/{index-ggQcjFPK.js.map → index-B0mV367i.js.map} +1 -1
  55. package/dist/assets/{index-ShzTlShR.css → index-BOep9MOB.css} +1 -1
  56. package/dist/assets/{index-DjTj_2YG.js → index-BUF8Xxid.js} +2 -2
  57. package/dist/assets/{index-DjTj_2YG.js.map → index-BUF8Xxid.js.map} +1 -1
  58. package/dist/assets/index-BxsJs6HZ.js +2 -0
  59. package/dist/assets/index-BxsJs6HZ.js.map +1 -0
  60. package/dist/assets/{index-Dczz94WX.js → index-Byzqqd86.js} +2 -2
  61. package/dist/assets/{index-Dczz94WX.js.map → index-Byzqqd86.js.map} +1 -1
  62. package/dist/assets/{index-my4zFbcM.js → index-C0niS8Vv.js} +2 -2
  63. package/dist/assets/{index-my4zFbcM.js.map → index-C0niS8Vv.js.map} +1 -1
  64. package/dist/assets/{index-BdVQjSN6.js → index-CHIrZkSk.js} +2 -2
  65. package/dist/assets/{index-BdVQjSN6.js.map → index-CHIrZkSk.js.map} +1 -1
  66. package/dist/assets/{index-CeKw5v7N.js → index-CKIiHmIf.js} +2 -2
  67. package/dist/assets/{index-CeKw5v7N.js.map → index-CKIiHmIf.js.map} +1 -1
  68. package/dist/assets/{index-mKO4gpWB.js → index-Cno4i6lg.js} +2 -2
  69. package/dist/assets/{index-mKO4gpWB.js.map → index-Cno4i6lg.js.map} +1 -1
  70. package/dist/assets/{index-yrncPnXk.js → index-D80lTVeV.js} +3 -3
  71. package/dist/assets/{index-yrncPnXk.js.map → index-D80lTVeV.js.map} +1 -1
  72. package/dist/assets/{index-Caxtv5sl.js → index-DCwrZmag.js} +2 -2
  73. package/dist/assets/{index-Caxtv5sl.js.map → index-DCwrZmag.js.map} +1 -1
  74. package/dist/assets/{index-BK3KKBAN.js → index-DDGYm9L-.js} +2 -2
  75. package/dist/assets/{index-BK3KKBAN.js.map → index-DDGYm9L-.js.map} +1 -1
  76. package/dist/assets/{index-BVM3WMNO.js → index-DEiWe2Bk.js} +2 -2
  77. package/dist/assets/{index-BVM3WMNO.js.map → index-DEiWe2Bk.js.map} +1 -1
  78. package/dist/assets/{index-DkbS1z1O.js → index-DJnltRnr.js} +2 -2
  79. package/dist/assets/{index-DkbS1z1O.js.map → index-DJnltRnr.js.map} +1 -1
  80. package/dist/assets/{index-BMZu8UZ6.js → index-DMIqQLOE.js} +2 -2
  81. package/dist/assets/{index-BMZu8UZ6.js.map → index-DMIqQLOE.js.map} +1 -1
  82. package/dist/assets/{index-BnQi1XPn.js → index-DRHl9KU8.js} +2 -2
  83. package/dist/assets/{index-BnQi1XPn.js.map → index-DRHl9KU8.js.map} +1 -1
  84. package/dist/assets/{index-jSHW6lhR.js → index-Dj5caLYF.js} +2 -2
  85. package/dist/assets/{index-jSHW6lhR.js.map → index-Dj5caLYF.js.map} +1 -1
  86. package/dist/assets/{index-D-JYypPJ.js → index-Dxy6ycv8.js} +2 -2
  87. package/dist/assets/{index-D-JYypPJ.js.map → index-Dxy6ycv8.js.map} +1 -1
  88. package/dist/assets/{index-D6LMez3u.js → index-MTuc20rr.js} +2 -2
  89. package/dist/assets/{index-D6LMez3u.js.map → index-MTuc20rr.js.map} +1 -1
  90. package/dist/assets/{index-q94vR-7W.js → index-bD-fr3vy.js} +2 -2
  91. package/dist/assets/{index-q94vR-7W.js.map → index-bD-fr3vy.js.map} +1 -1
  92. package/dist/assets/{index-DcmA3tsY.js → index-fb67TYJ8.js} +2 -2
  93. package/dist/assets/{index-DcmA3tsY.js.map → index-fb67TYJ8.js.map} +1 -1
  94. package/dist/assets/{index-legacy-DVOM8HaY.js → index-legacy-2G5G7SiF.js} +2 -2
  95. package/dist/assets/index-legacy-2G5G7SiF.js.map +1 -0
  96. package/dist/assets/{index-legacy-DcKfHHls.js → index-legacy-B1WwgC0S.js} +2 -2
  97. package/dist/assets/{index-legacy-DcKfHHls.js.map → index-legacy-B1WwgC0S.js.map} +1 -1
  98. package/dist/assets/{index-legacy-CRq_O11N.js → index-legacy-BN-W2P7-.js} +2 -2
  99. package/dist/assets/{index-legacy-CRq_O11N.js.map → index-legacy-BN-W2P7-.js.map} +1 -1
  100. package/dist/assets/{index-legacy-DasH54g3.js → index-legacy-BZb5uhBF.js} +2 -2
  101. package/dist/assets/{index-legacy-DasH54g3.js.map → index-legacy-BZb5uhBF.js.map} +1 -1
  102. package/dist/assets/{index-legacy-BFfoAOF1.js → index-legacy-BdJHr4yN.js} +2 -2
  103. package/dist/assets/{index-legacy-BFfoAOF1.js.map → index-legacy-BdJHr4yN.js.map} +1 -1
  104. package/dist/assets/{index-legacy-CW0OHQkF.js → index-legacy-BwpR0DP9.js} +2 -2
  105. package/dist/assets/{index-legacy-CW0OHQkF.js.map → index-legacy-BwpR0DP9.js.map} +1 -1
  106. package/dist/assets/{index-legacy-BqL3XK76.js → index-legacy-Cbyz8WHA.js} +2 -2
  107. package/dist/assets/{index-legacy-BqL3XK76.js.map → index-legacy-Cbyz8WHA.js.map} +1 -1
  108. package/dist/assets/{index-legacy-DD6zMGGT.js → index-legacy-Chw6iyCz.js} +2 -2
  109. package/dist/assets/{index-legacy-DD6zMGGT.js.map → index-legacy-Chw6iyCz.js.map} +1 -1
  110. package/dist/assets/{index-legacy-BLKO-78a.js → index-legacy-DC5-MYgp.js} +2 -2
  111. package/dist/assets/{index-legacy-BLKO-78a.js.map → index-legacy-DC5-MYgp.js.map} +1 -1
  112. package/dist/assets/{index-legacy-pP3Pmgbs.js → index-legacy-DM_G6GXF.js} +2 -2
  113. package/dist/assets/{index-legacy-pP3Pmgbs.js.map → index-legacy-DM_G6GXF.js.map} +1 -1
  114. package/dist/assets/{index-legacy-Dt4Eky4l.js → index-legacy-DP3Q6cDA.js} +2 -2
  115. package/dist/assets/{index-legacy-Dt4Eky4l.js.map → index-legacy-DP3Q6cDA.js.map} +1 -1
  116. package/dist/assets/{index-legacy-B4s89tRC.js → index-legacy-DUrsbgNe.js} +2 -2
  117. package/dist/assets/{index-legacy-B4s89tRC.js.map → index-legacy-DUrsbgNe.js.map} +1 -1
  118. package/dist/assets/{index-legacy-BezkAR3b.js → index-legacy-DV-KwU0c.js} +2 -2
  119. package/dist/assets/{index-legacy-BezkAR3b.js.map → index-legacy-DV-KwU0c.js.map} +1 -1
  120. package/dist/assets/{index-legacy-6cMsZS3c.js → index-legacy-DiNZXmUs.js} +2 -2
  121. package/dist/assets/{index-legacy-6cMsZS3c.js.map → index-legacy-DiNZXmUs.js.map} +1 -1
  122. package/dist/assets/{index-legacy-2f3kE3Xe.js → index-legacy-DmJc-LaA.js} +2 -2
  123. package/dist/assets/{index-legacy-2f3kE3Xe.js.map → index-legacy-DmJc-LaA.js.map} +1 -1
  124. package/dist/assets/{index-legacy-CqVgmAMA.js → index-legacy-Dmi-DBK0.js} +2 -2
  125. package/dist/assets/{index-legacy-CqVgmAMA.js.map → index-legacy-Dmi-DBK0.js.map} +1 -1
  126. package/dist/assets/{index-legacy-CslCZVZ0.js → index-legacy-K0GPuvtR.js} +2 -2
  127. package/dist/assets/{index-legacy-CslCZVZ0.js.map → index-legacy-K0GPuvtR.js.map} +1 -1
  128. package/dist/assets/{index-legacy-CUZgiMNa.js → index-legacy-Qibh5ehq.js} +2 -2
  129. package/dist/assets/{index-legacy-CUZgiMNa.js.map → index-legacy-Qibh5ehq.js.map} +1 -1
  130. package/dist/assets/{index-legacy-bElvuK5I.js → index-legacy-gQf30T09.js} +2 -2
  131. package/dist/assets/{index-legacy-bElvuK5I.js.map → index-legacy-gQf30T09.js.map} +1 -1
  132. package/dist/assets/{index-legacy-8BA9X4aO.js → index-legacy-l7TP3X8w.js} +2 -2
  133. package/dist/assets/{index-legacy-8BA9X4aO.js.map → index-legacy-l7TP3X8w.js.map} +1 -1
  134. package/dist/assets/{isEqual-legacy-4dmPHJnc.js → isEqual-legacy-DVLZyo95.js} +2 -2
  135. package/dist/assets/{isEqual-legacy-4dmPHJnc.js.map → isEqual-legacy-DVLZyo95.js.map} +1 -1
  136. package/dist/assets/{isEqual-DdkrQbjH.js → isEqual-pN6Ih18F.js} +2 -2
  137. package/dist/assets/{isEqual-DdkrQbjH.js.map → isEqual-pN6Ih18F.js.map} +1 -1
  138. package/dist/assets/{refresh-CCIG6-IB.js → refresh-BTQLK-UW.js} +2 -2
  139. package/dist/assets/{refresh-CCIG6-IB.js.map → refresh-BTQLK-UW.js.map} +1 -1
  140. package/dist/assets/{refresh-legacy-CchIU9Mh.js → refresh-legacy-Cv7RM_sm.js} +2 -2
  141. package/dist/assets/{refresh-legacy-CchIU9Mh.js.map → refresh-legacy-Cv7RM_sm.js.map} +1 -1
  142. package/dist/assets/{tip-BM0xMiq8.js → tip-DQo-E_Pu.js} +2 -2
  143. package/dist/assets/{tip-BM0xMiq8.js.map → tip-DQo-E_Pu.js.map} +1 -1
  144. package/dist/assets/{tip-legacy-DpAPUNpm.js → tip-legacy-Ci60OMi9.js} +2 -2
  145. package/dist/assets/{tip-legacy-DpAPUNpm.js.map → tip-legacy-Ci60OMi9.js.map} +1 -1
  146. package/dist/assets/validator-CZlzBDi2.js +2 -0
  147. package/dist/assets/{validator-DG4_rB-x.js.map → validator-CZlzBDi2.js.map} +1 -1
  148. package/dist/assets/validator-legacy-D-pC1hkO.js +2 -0
  149. package/dist/assets/{validator-legacy-CN5REdqi.js.map → validator-legacy-D-pC1hkO.js.map} +1 -1
  150. package/dist/index.html +2 -2
  151. package/package.json +4 -3
  152. package/dist/assets/index-ITkwOdUc.js +0 -2
  153. package/dist/assets/index-ITkwOdUc.js.map +0 -1
  154. package/dist/assets/index-legacy-DVOM8HaY.js.map +0 -1
  155. package/dist/assets/validator-DG4_rB-x.js +0 -2
  156. package/dist/assets/validator-legacy-CN5REdqi.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index-legacy-BFfoAOF1.js","sources":["../../src/apis/modules/config.ts","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/close-bold.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/select.mjs","../../src/pages/dashboard/config/index.vue"],"sourcesContent":["import ajax from '../ajax'\n\nfunction getServiceOverview(): ConfigServiceAPITypes.getServiceOverview {\n return ajax.get('/config/service/overview')\n}\n\nfunction getServiceConfig(): ConfigServiceAPITypes.getServiceConfig {\n return ajax.get('/config/service/config')\n}\n\nfunction updateCfg(data: ConfigServiceAPITypes.ServiceConfigItem) {\n return ajax.put('/config/service/config', data)\n}\n\nexport default {\n getServiceOverview,\n getServiceConfig,\n updateCfg\n}\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"CloseBold\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M195.2 195.2a64 64 0 0 1 90.496 0L512 421.504 738.304 195.2a64 64 0 0 1 90.496 90.496L602.496 512 828.8 738.304a64 64 0 0 1-90.496 90.496L512 602.496 285.696 828.8a64 64 0 0 1-90.496-90.496L421.504 512 195.2 285.696a64 64 0 0 1 0-90.496z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar closeBold = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { closeBold as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Select\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M77.248 415.04a64 64 0 0 1 90.496 0l226.304 226.304L846.528 188.8a64 64 0 1 1 90.56 90.496l-543.04 543.04-316.8-316.8a64 64 0 0 1 0-90.496z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar select = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { select as default };\n","<script lang=\"ts\" setup>\nimport { ElMessage } from 'element-plus'\nimport { computed, onMounted, reactive, ref } from 'vue'\nimport { CloseBold, Refresh, Select } from '@element-plus/icons-vue'\nimport Tip from '../tasks/components/infoPanel/tip.vue'\nimport { ConfigServiceAPI } from '@/apis'\n\nconst serviceList = reactive([\n {\n name: 'MySQL',\n key: 'mysql',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTAyMjIwNA==657359022204',\n status: false,\n des: '存储用户数据',\n errMsg: '',\n },\n {\n name: '七牛云',\n key: 'qiniu',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1ODcyODM0Mg==657358728342',\n status: false,\n des: '文件存储',\n },\n {\n name: 'MongoDB',\n key: 'mongodb',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTA4OTc3Nw==657359089777',\n status: false,\n des: '用户数据与日志',\n },\n {\n name: 'Redis',\n key: 'redis',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1ODgyNzM1MA==657358827350',\n status: false,\n des: '持久化缓存数据',\n error: '确保安装redis,且监听端口6379',\n },\n {\n name: '腾讯云',\n key: 'tx',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTE1MzQzOQ==657359153439',\n status: false,\n des: '短信服务',\n },\n])\n\nconst loading = ref(false)\nconst showErrorList = computed(() => serviceList.filter(item => item.errMsg))\nfunction refreshStatus() {\n if (loading.value)\n return\n loading.value = true\n ConfigServiceAPI.getServiceOverview().then((v) => {\n const { data } = v\n serviceList.forEach((item) => {\n const { status, errMsg } = data[item.key]\n item.status = status\n item.errMsg = errMsg\n })\n ElMessage.success('服务状态刷新完成')\n loading.value = false\n })\n}\n\nconst serverConfig = ref([])\nfunction getServiceConfig() {\n ConfigServiceAPI.getServiceConfig().then((v) => {\n // console.log(v.data)\n v.data.forEach((v) => {\n v.data.forEach((v) => {\n v.disabled = true\n })\n })\n serverConfig.value = v.data\n })\n}\nfunction updateCfg(item: ConfigServiceAPITypes.ServiceConfigItem) {\n ConfigServiceAPI.updateCfg(item).then(() => {\n item.disabled = true\n ElMessage.success('更新成功')\n refreshStatus()\n })\n}\nonMounted(() => {\n refreshStatus()\n getServiceConfig()\n})\n</script>\n\n<template>\n <div class=\"user\">\n <div class=\"panel\">\n <!-- 服务概况 -->\n <div>\n <h1>\n <span>服务概况</span>\n <el-icon\n :class=\"{\n loading,\n }\"\n style=\"cursor: pointer; margin-left: 10px\"\n @click=\"refreshStatus\"\n >\n <Refresh />\n </el-icon>\n <span v-show=\"loading\">数据加载中...</span>\n </h1>\n <Tip>查看各个服务的运行情况</Tip>\n <div class=\"service-list\">\n <div\n v-for=\"service in serviceList\"\n :key=\"service.key\"\n class=\"service-item\"\n >\n <img :src=\"service.logo\" :alt=\"service.name\">\n <!-- <p>{{ service.name }}</p> -->\n <p>\n <Tip>{{ service.des }}</Tip>\n </p>\n <el-button\n v-if=\"service.status\"\n type=\"success\"\n size=\"small\"\n :icon=\"Select\"\n circle\n />\n <el-button\n v-else\n type=\"danger\"\n size=\"small\"\n :icon=\"CloseBold\"\n circle\n />\n <p v-if=\"!service.status && service.error\">\n <Tip>{{ service.error }}</Tip>\n </p>\n </div>\n </div>\n </div>\n <div v-show=\"showErrorList.length\" class=\"error-panel\">\n <h1>错误信息</h1>\n <p v-for=\"err in showErrorList\" :key=\"err.key\">\n <strong>{{ err.name }}:</strong>\n <span class=\"error\">{{ err.errMsg }}</span>\n </p>\n </div>\n <div>\n <h1>服务相关配置</h1>\n <Tip>\n 在此面板,配置服务器运行相关参数\n <a\n href=\"https://docs.ep.sugarat.top/deploy/online-new.html#_5-%E6%9C%80%E5%90%8E%E6%9B%B4%E6%96%B0%E9%85%8D%E7%BD%AE\"\n >\n <el-button type=\"primary\" link>配置手册?</el-button></a>\n </Tip>\n </div>\n <div class=\"config-container\">\n <div\n v-for=\"serverItem in serverConfig\"\n :key=\"serverItem.title\"\n class=\"config-panel\"\n >\n <h2>\n {{ serverItem.title }}\n </h2>\n <el-form\n label-position=\"right\"\n label-width=\"100px\"\n style=\"max-width: 400px; margin: 0 auto\"\n >\n <el-form-item\n v-for=\"cfgItem in serverItem.data\"\n :key=\"cfgItem.key\"\n label-width=\"auto\"\n :label=\"cfgItem.label || cfgItem.key\"\n >\n <div class=\"flex\" style=\"flex: 1\">\n <el-input\n v-model=\"cfgItem.value\"\n :disabled=\"cfgItem.disabled\"\n />\n <el-button\n v-if=\"cfgItem.disabled\"\n type=\"primary\"\n text\n @click=\"cfgItem.disabled = false\"\n >\n 更新\n </el-button>\n <el-button\n v-else\n type=\"success\"\n text\n @click=\"updateCfg(cfgItem)\"\n >\n 完成\n </el-button>\n </div>\n </el-form-item>\n </el-form>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .user {\n margin-top: 40px !important;\n }\n}\n\n.user {\n margin: 0 auto;\n}\n\n.panel {\n max-width: 1256px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\nh1 {\n margin: 0;\n padding: 10px 0;\n font-size: 20px;\n font-weight: bold;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.service-list {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n\n.service-item {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin: 10px;\n min-width: 120px;\n\n img {\n width: 80px;\n }\n\n p {\n text-align: center;\n padding-top: 10px;\n font-size: 14px;\n }\n}\n\n@keyframes rotate {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.loading {\n margin-left: 10px;\n animation: rotate 1s linear infinite;\n}\n\n.error-panel {\n padding: 0 20px;\n\n p {\n .error {\n color: red;\n }\n\n margin-bottom: 10px;\n }\n}\n\n.config-container {\n display: flex;\n justify-content: space-around;\n flex-wrap: wrap;\n}\n\n.config-panel {\n h2 {\n text-align: center;\n font-size: 16px;\n margin-bottom: 10px;\n }\n}\n</style>\n"],"names":["ConfigServiceAPI","getServiceOverview","ajax","get","getServiceConfig","updateCfg","data","put","_sfc_main","defineComponent","name","_hoisted_1","viewBox","xmlns","_hoisted_3","createElementVNode","fill","d","closeBold","_export_sfc","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","select","serviceList","reactive","key","logo","status","des","errMsg","error","loading","ref","showErrorList","computed","filter","item","refreshStatus","value","then","v","forEach","ElMessage","success","serverConfig","onMounted","disabled"],"mappings":"g5DAce,MAAAA,EAAA,CACbC,mBAbF,WACS,OAAAC,EAAKC,IAAI,2BAClB,EAYEC,iBAVF,WACS,OAAAF,EAAKC,IAAI,yBAClB,EASEE,UAPF,SAAmBC,GACV,OAAAJ,EAAKK,IAAI,yBAA0BD,EAC5C,GCTME,EAAYC,EAAgB,CAChCC,KAAM,cAEFC,EAAa,CACjBC,QAAS,gBACTC,MAAO,8BAMHC,EAAa,CAJgBC,EAAmB,OAAQ,CAC5DC,KAAM,eACNC,EAAG,iPACF,MAAO,IAOV,IAAIC,EAA4BC,EAAYX,EAAW,CAAC,CAAC,SAHzD,SAAqBY,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GACxD,OAAOC,IAAaC,EAAmB,MAAOhB,EAAYG,EAC5D,KChBA,MAAMN,EAAYC,EAAgB,CAChCC,KAAM,WAEFC,EAAa,CACjBC,QAAS,gBACTC,MAAO,8BAMHC,EAAa,CAJgBC,EAAmB,OAAQ,CAC5DC,KAAM,eACNC,EAAG,+IACF,MAAO,IAOV,IAAIW,EAAyBT,EAAYX,EAAW,CAAC,CAAC,SAHtD,SAAqBY,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GACxD,OAAOC,IAAaC,EAAmB,MAAOhB,EAAYG,EAC5D,igBCZA,MAAMe,EAAcC,EAAS,CAC3B,CACEpB,KAAM,QACNqB,IAAK,QACLC,KAAM,qEACNC,QAAQ,EACRC,IAAK,SACLC,OAAQ,IAEV,CACEzB,KAAM,MACNqB,IAAK,QACLC,KAAM,qEACNC,QAAQ,EACRC,IAAK,QAEP,CACExB,KAAM,UACNqB,IAAK,UACLC,KAAM,qEACNC,QAAQ,EACRC,IAAK,WAEP,CACExB,KAAM,QACNqB,IAAK,QACLC,KAAM,qEACNC,QAAQ,EACRC,IAAK,UACLE,MAAO,uBAET,CACE1B,KAAM,MACNqB,IAAK,KACLC,KAAM,qEACNC,QAAQ,EACRC,IAAK,UAIHG,EAAUC,GAAI,GACdC,EAAgBC,GAAS,IAAMX,EAAYY,QAAeC,GAAAA,EAAKP,WACrE,SAASQ,IACHN,EAAQO,QAEZP,EAAQO,OAAQ,EAChB5C,EAAiBC,qBAAqB4C,MAAMC,IACpC,MAAAxC,KAAEA,GAASwC,EACLjB,EAAAkB,SAASL,IACnB,MAAMT,OAAEA,EAAQE,OAAAA,GAAW7B,EAAKoC,EAAKX,KACrCW,EAAKT,OAASA,EACdS,EAAKP,OAASA,CAAA,IAEhBa,EAAUC,QAAQ,YAClBZ,EAAQO,OAAQ,CAAA,IAEpB,CAEM,MAAAM,EAAeZ,EAAI,WAmBzBa,GAAU,KACMR,IAlBd3C,EAAiBI,mBAAmByC,MAAMC,IAEtCA,EAAAxC,KAAKyC,SAASD,IACdA,EAAExC,KAAKyC,SAASD,IACdA,EAAEM,UAAW,CAAA,GACd,IAEHF,EAAaN,MAAQE,EAAExC,IAAA,GAYR,yxDATAoC,SACjB1C,EAAiBK,UAAUqC,GAAMG,MAAK,KACpCH,EAAKU,UAAW,EAChBJ,EAAUC,QAAQ,QACJN,GAAA,IAJlB,IAAmBD","x_google_ignoreList":[1,2]}
1
+ {"version":3,"file":"index-legacy-BdJHr4yN.js","sources":["../../src/apis/modules/config.ts","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/close-bold.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/select.mjs","../../src/pages/dashboard/config/index.vue"],"sourcesContent":["import ajax from '../ajax'\n\nfunction getServiceOverview(): ConfigServiceAPITypes.getServiceOverview {\n return ajax.get('/config/service/overview')\n}\n\nfunction getServiceConfig(): ConfigServiceAPITypes.getServiceConfig {\n return ajax.get('/config/service/config')\n}\n\nfunction updateCfg(data: ConfigServiceAPITypes.ServiceConfigItem) {\n return ajax.put('/config/service/config', data)\n}\n\nexport default {\n getServiceOverview,\n getServiceConfig,\n updateCfg\n}\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"CloseBold\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M195.2 195.2a64 64 0 0 1 90.496 0L512 421.504 738.304 195.2a64 64 0 0 1 90.496 90.496L602.496 512 828.8 738.304a64 64 0 0 1-90.496 90.496L512 602.496 285.696 828.8a64 64 0 0 1-90.496-90.496L421.504 512 195.2 285.696a64 64 0 0 1 0-90.496z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar closeBold = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { closeBold as default };\n","import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"Select\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M77.248 415.04a64 64 0 0 1 90.496 0l226.304 226.304L846.528 188.8a64 64 0 1 1 90.56 90.496l-543.04 543.04-316.8-316.8a64 64 0 0 1 0-90.496z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar select = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { select as default };\n","<script lang=\"ts\" setup>\nimport { ElMessage } from 'element-plus'\nimport { computed, onMounted, reactive, ref } from 'vue'\nimport { CloseBold, Refresh, Select } from '@element-plus/icons-vue'\nimport Tip from '../tasks/components/infoPanel/tip.vue'\nimport { ConfigServiceAPI } from '@/apis'\n\nconst serviceList = reactive([\n {\n name: 'MySQL',\n key: 'mysql',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTAyMjIwNA==657359022204',\n status: false,\n des: '存储用户数据',\n errMsg: '',\n },\n {\n name: '七牛云',\n key: 'qiniu',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1ODcyODM0Mg==657358728342',\n status: false,\n des: '文件存储',\n },\n {\n name: 'MongoDB',\n key: 'mongodb',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTA4OTc3Nw==657359089777',\n status: false,\n des: '用户数据与日志',\n },\n {\n name: 'Redis',\n key: 'redis',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1ODgyNzM1MA==657358827350',\n status: false,\n des: '持久化缓存数据',\n error: '确保安装redis,且监听端口6379',\n },\n {\n name: '腾讯云',\n key: 'tx',\n logo: 'https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTE1MzQzOQ==657359153439',\n status: false,\n des: '短信服务',\n },\n])\n\nconst loading = ref(false)\nconst showErrorList = computed(() => serviceList.filter(item => item.errMsg))\nfunction refreshStatus() {\n if (loading.value)\n return\n loading.value = true\n ConfigServiceAPI.getServiceOverview().then((v) => {\n const { data } = v\n serviceList.forEach((item) => {\n const { status, errMsg } = data[item.key]\n item.status = status\n item.errMsg = errMsg\n })\n ElMessage.success('服务状态刷新完成')\n loading.value = false\n })\n}\n\nconst serverConfig = ref([])\nfunction getServiceConfig() {\n ConfigServiceAPI.getServiceConfig().then((v) => {\n // console.log(v.data)\n v.data.forEach((v) => {\n v.data.forEach((v) => {\n v.disabled = true\n })\n })\n serverConfig.value = v.data\n })\n}\nfunction updateCfg(item: ConfigServiceAPITypes.ServiceConfigItem) {\n ConfigServiceAPI.updateCfg(item).then(() => {\n item.disabled = true\n ElMessage.success('更新成功')\n refreshStatus()\n })\n}\nonMounted(() => {\n refreshStatus()\n getServiceConfig()\n})\n</script>\n\n<template>\n <div class=\"user\">\n <div class=\"panel\">\n <!-- 服务概况 -->\n <div>\n <h1>\n <span>服务概况</span>\n <el-icon\n :class=\"{\n loading,\n }\"\n style=\"cursor: pointer; margin-left: 10px\"\n @click=\"refreshStatus\"\n >\n <Refresh />\n </el-icon>\n <span v-show=\"loading\">数据加载中...</span>\n </h1>\n <Tip>查看各个服务的运行情况</Tip>\n <div class=\"service-list\">\n <div\n v-for=\"service in serviceList\"\n :key=\"service.key\"\n class=\"service-item\"\n >\n <img :src=\"service.logo\" :alt=\"service.name\">\n <!-- <p>{{ service.name }}</p> -->\n <p>\n <Tip>{{ service.des }}</Tip>\n </p>\n <el-button\n v-if=\"service.status\"\n type=\"success\"\n size=\"small\"\n :icon=\"Select\"\n circle\n />\n <el-button\n v-else\n type=\"danger\"\n size=\"small\"\n :icon=\"CloseBold\"\n circle\n />\n <p v-if=\"!service.status && service.error\">\n <Tip>{{ service.error }}</Tip>\n </p>\n </div>\n </div>\n </div>\n <div v-show=\"showErrorList.length\" class=\"error-panel\">\n <h1>错误信息</h1>\n <p v-for=\"err in showErrorList\" :key=\"err.key\">\n <strong>{{ err.name }}:</strong>\n <span class=\"error\">{{ err.errMsg }}</span>\n </p>\n </div>\n <div>\n <h1>服务相关配置</h1>\n <Tip>\n 在此面板,配置服务器运行相关参数\n <a\n href=\"https://docs.ep.sugarat.top/deploy/online-new.html#_5-%E6%9C%80%E5%90%8E%E6%9B%B4%E6%96%B0%E9%85%8D%E7%BD%AE\"\n >\n <el-button type=\"primary\" link>配置手册?</el-button></a>\n </Tip>\n </div>\n <div class=\"config-container\">\n <div\n v-for=\"serverItem in serverConfig\"\n :key=\"serverItem.title\"\n class=\"config-panel\"\n >\n <h2>\n {{ serverItem.title }}\n </h2>\n <el-form\n label-position=\"right\"\n label-width=\"100px\"\n style=\"max-width: 400px; margin: 0 auto\"\n >\n <el-form-item\n v-for=\"cfgItem in serverItem.data\"\n :key=\"cfgItem.key\"\n label-width=\"auto\"\n :label=\"cfgItem.label || cfgItem.key\"\n >\n <div class=\"flex\" style=\"flex: 1\">\n <el-input\n v-model=\"cfgItem.value\"\n :disabled=\"cfgItem.disabled\"\n />\n <el-button\n v-if=\"cfgItem.disabled\"\n type=\"primary\"\n text\n @click=\"cfgItem.disabled = false\"\n >\n 更新\n </el-button>\n <el-button\n v-else\n type=\"success\"\n text\n @click=\"updateCfg(cfgItem)\"\n >\n 完成\n </el-button>\n </div>\n </el-form-item>\n </el-form>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .user {\n margin-top: 40px !important;\n }\n}\n\n.user {\n margin: 0 auto;\n}\n\n.panel {\n max-width: 1256px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\nh1 {\n margin: 0;\n padding: 10px 0;\n font-size: 20px;\n font-weight: bold;\n text-align: center;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.service-list {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n\n.service-item {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin: 10px;\n min-width: 120px;\n\n img {\n width: 80px;\n }\n\n p {\n text-align: center;\n padding-top: 10px;\n font-size: 14px;\n }\n}\n\n@keyframes rotate {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.loading {\n margin-left: 10px;\n animation: rotate 1s linear infinite;\n}\n\n.error-panel {\n padding: 0 20px;\n\n p {\n .error {\n color: red;\n }\n\n margin-bottom: 10px;\n }\n}\n\n.config-container {\n display: flex;\n justify-content: space-around;\n flex-wrap: wrap;\n}\n\n.config-panel {\n h2 {\n text-align: center;\n font-size: 16px;\n margin-bottom: 10px;\n }\n}\n</style>\n"],"names":["ConfigServiceAPI","getServiceOverview","ajax","get","getServiceConfig","updateCfg","data","put","_sfc_main","defineComponent","name","_hoisted_1","viewBox","xmlns","_hoisted_3","createElementVNode","fill","d","closeBold","_export_sfc","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","select","serviceList","reactive","key","logo","status","des","errMsg","error","loading","ref","showErrorList","computed","filter","item","refreshStatus","value","then","v","forEach","ElMessage","success","serverConfig","onMounted","disabled"],"mappings":"g5DAce,MAAAA,EAAA,CACbC,mBAbF,WACS,OAAAC,EAAKC,IAAI,2BAClB,EAYEC,iBAVF,WACS,OAAAF,EAAKC,IAAI,yBAClB,EASEE,UAPF,SAAmBC,GACV,OAAAJ,EAAKK,IAAI,yBAA0BD,EAC5C,GCTME,EAAYC,EAAgB,CAChCC,KAAM,cAEFC,EAAa,CACjBC,QAAS,gBACTC,MAAO,8BAMHC,EAAa,CAJgBC,EAAmB,OAAQ,CAC5DC,KAAM,eACNC,EAAG,iPACF,MAAO,IAOV,IAAIC,EAA4BC,EAAYX,EAAW,CAAC,CAAC,SAHzD,SAAqBY,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GACxD,OAAOC,IAAaC,EAAmB,MAAOhB,EAAYG,EAC5D,KChBA,MAAMN,EAAYC,EAAgB,CAChCC,KAAM,WAEFC,EAAa,CACjBC,QAAS,gBACTC,MAAO,8BAMHC,EAAa,CAJgBC,EAAmB,OAAQ,CAC5DC,KAAM,eACNC,EAAG,+IACF,MAAO,IAOV,IAAIW,EAAyBT,EAAYX,EAAW,CAAC,CAAC,SAHtD,SAAqBY,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GACxD,OAAOC,IAAaC,EAAmB,MAAOhB,EAAYG,EAC5D,igBCZA,MAAMe,EAAcC,EAAS,CAC3B,CACEpB,KAAM,QACNqB,IAAK,QACLC,KAAM,qEACNC,QAAQ,EACRC,IAAK,SACLC,OAAQ,IAEV,CACEzB,KAAM,MACNqB,IAAK,QACLC,KAAM,qEACNC,QAAQ,EACRC,IAAK,QAEP,CACExB,KAAM,UACNqB,IAAK,UACLC,KAAM,qEACNC,QAAQ,EACRC,IAAK,WAEP,CACExB,KAAM,QACNqB,IAAK,QACLC,KAAM,qEACNC,QAAQ,EACRC,IAAK,UACLE,MAAO,uBAET,CACE1B,KAAM,MACNqB,IAAK,KACLC,KAAM,qEACNC,QAAQ,EACRC,IAAK,UAIHG,EAAUC,GAAI,GACdC,EAAgBC,GAAS,IAAMX,EAAYY,QAAeC,GAAAA,EAAKP,WACrE,SAASQ,IACHN,EAAQO,QAEZP,EAAQO,OAAQ,EAChB5C,EAAiBC,qBAAqB4C,MAAMC,IACpC,MAAAxC,KAAEA,GAASwC,EACLjB,EAAAkB,SAASL,IACnB,MAAMT,OAAEA,EAAQE,OAAAA,GAAW7B,EAAKoC,EAAKX,KACrCW,EAAKT,OAASA,EACdS,EAAKP,OAASA,CAAA,IAEhBa,EAAUC,QAAQ,YAClBZ,EAAQO,OAAQ,CAAA,IAEpB,CAEM,MAAAM,EAAeZ,EAAI,WAmBzBa,GAAU,KACMR,IAlBd3C,EAAiBI,mBAAmByC,MAAMC,IAEtCA,EAAAxC,KAAKyC,SAASD,IACdA,EAAExC,KAAKyC,SAASD,IACdA,EAAEM,UAAW,CAAA,GACd,IAEHF,EAAaN,MAAQE,EAAExC,IAAA,GAYR,yxDATAoC,SACjB1C,EAAiBK,UAAUqC,GAAMG,MAAK,KACpCH,EAAKU,UAAW,EAChBJ,EAAUC,QAAQ,QACJN,GAAA,IAJlB,IAAmBD","x_google_ignoreList":[1,2]}
@@ -1,2 +1,2 @@
1
- System.register(["./index-legacy-BLKO-78a.js","./el-switch-legacy-D1AVOg2z.js","./validator-legacy-CN5REdqi.js"],(function(e,a){"use strict";var t,l,n,s,d,i,o,u,r,c,p,v,m,x,f,g,h,y,b,w,k,_,C,S,j,z;return{setters:[e=>{t=e.d,l=e.u,n=e.O,s=e.Z,d=e.r,i=e.c_,o=e.o,u=e.bs,r=e.i,c=e.a,p=e.c,v=e.b,m=e.j,x=e.w,f=e.e,g=e.F,h=e.C,y=e.t,b=e.D,w=e.k,k=e.E,_=e.y,C=e.x,S=e.v,j=e._},e=>{z=e.E},null],execute:function(){var a=document.createElement("style");a.textContent="@media screen and (max-width: 700px){.user[data-v-1e07da88]{margin-top:40px!important}}.user[data-v-1e07da88]{margin:0 auto}.panel[data-v-1e07da88]{max-width:1256px;padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.routes[data-v-1e07da88]{max-width:500px;margin:0 auto}.routes li[data-v-1e07da88]{display:flex;padding:20px;align-items:center}.routes li .title[data-v-1e07da88]{font-weight:700;margin:0 10px}.config-btn[data-v-1e07da88]{text-align:center}.config-panel[data-v-1e07da88]{max-width:500px;margin:0 auto}\n",document.head.appendChild(a);const O={class:"user"},D={class:"panel"},J={class:"routes"},N={class:"title"},R={class:"path"},V={class:"config-btn"},E={class:"config-panel"};e("default",j(t({__name:"index",setup(e){const a=l(),t=n((()=>a.options.routes.filter((e=>e.meta?.allowDisabled)))),j=s([]),F=d(!1),{value:I,updateValue:U}=i(),Z=d("");function q(){F.value=!0,Z.value=JSON.stringify(I.value,null,2)}async function A(){try{const e=JSON.parse(Z.value);I.value=e,await U(),F.value=!1,k.success("保存成功")}catch(e){return k.error("JSON 格式错误")}}return o((()=>{for(const e of t.value)u.checkDisabledRoute(e.path).then((a=>{j.push({path:e.path,name:e.name.toString(),title:e.meta.title,disabled:!!a.data?.status})}))})),(e,a)=>{const t=_,l=z,n=C,s=r("json-viewer"),d=S;return c(),p("div",O,[v("div",D,[m(t,null,{default:x((()=>[f("禁用路由管理")])),_:1}),v("ul",J,[(c(!0),p(g,null,h(j,(e=>(c(),p("li",{key:e.name},[m(l,{"model-value":!e.disabled,style:{"--el-switch-on-color":"#13ce66","--el-switch-off-color":"#ff4949"},onChange:a=>function(e){u.addDisabledRoute(e.path,!e.disabled).then((()=>{e.disabled=!e.disabled,k.success("切换成功")}))}(e)},null,8,["model-value","onChange"]),v("span",N,y(e.title),1),v("span",R,y(e.path)+y("/register"===e.path?" 关闭后将同时禁用注册功能":""),1)])))),128))]),m(t,null,{default:x((()=>[f("全局配置管理(JSON)")])),_:1}),v("div",V,[F.value?(c(),p(g,{key:1},[m(n,{size:"small",type:"danger",onClick:a[0]||(a[0]=e=>F.value=!1)},{default:x((()=>[f(" 取消 ")])),_:1}),m(n,{size:"small",type:"success",onClick:A},{default:x((()=>[f(" 保存 ")])),_:1})],64)):(c(),b(n,{key:0,size:"small",type:"primary",onClick:q},{default:x((()=>[f(" 更新 ")])),_:1}))]),v("div",E,[F.value?(c(),b(d,{key:1,modelValue:Z.value,"onUpdate:modelValue":a[1]||(a[1]=e=>Z.value=e),autosize:{minRows:2,maxRows:30},type:"textarea"},null,8,["modelValue"])):(c(),b(s,{key:0,value:w(I),"expand-depth":5,copyable:"",boxed:"",sort:""},null,8,["value"]))])])])}}}),[["__scopeId","data-v-1e07da88"]]))}}}));
2
- //# sourceMappingURL=index-legacy-CW0OHQkF.js.map
1
+ System.register(["./index-legacy-DC5-MYgp.js","./el-switch-legacy-CG_sT4XS.js","./validator-legacy-D-pC1hkO.js"],(function(e,a){"use strict";var t,l,n,s,d,i,o,u,r,c,p,v,m,x,f,g,h,y,b,w,k,_,C,S,j,z;return{setters:[e=>{t=e.d,l=e.u,n=e.O,s=e.Z,d=e.r,i=e.c_,o=e.o,u=e.bs,r=e.i,c=e.a,p=e.c,v=e.b,m=e.j,x=e.w,f=e.e,g=e.F,h=e.C,y=e.t,b=e.D,w=e.k,k=e.E,_=e.y,C=e.x,S=e.v,j=e._},e=>{z=e.E},null],execute:function(){var a=document.createElement("style");a.textContent="@media screen and (max-width: 700px){.user[data-v-1e07da88]{margin-top:40px!important}}.user[data-v-1e07da88]{margin:0 auto}.panel[data-v-1e07da88]{max-width:1256px;padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.routes[data-v-1e07da88]{max-width:500px;margin:0 auto}.routes li[data-v-1e07da88]{display:flex;padding:20px;align-items:center}.routes li .title[data-v-1e07da88]{font-weight:700;margin:0 10px}.config-btn[data-v-1e07da88]{text-align:center}.config-panel[data-v-1e07da88]{max-width:500px;margin:0 auto}\n",document.head.appendChild(a);const O={class:"user"},D={class:"panel"},J={class:"routes"},N={class:"title"},R={class:"path"},V={class:"config-btn"},E={class:"config-panel"};e("default",j(t({__name:"index",setup(e){const a=l(),t=n((()=>a.options.routes.filter((e=>e.meta?.allowDisabled)))),j=s([]),F=d(!1),{value:I,updateValue:U}=i(),Z=d("");function q(){F.value=!0,Z.value=JSON.stringify(I.value,null,2)}async function A(){try{const e=JSON.parse(Z.value);I.value=e,await U(),F.value=!1,k.success("保存成功")}catch(e){return k.error("JSON 格式错误")}}return o((()=>{for(const e of t.value)u.checkDisabledRoute(e.path).then((a=>{j.push({path:e.path,name:e.name.toString(),title:e.meta.title,disabled:!!a.data?.status})}))})),(e,a)=>{const t=_,l=z,n=C,s=r("json-viewer"),d=S;return c(),p("div",O,[v("div",D,[m(t,null,{default:x((()=>[f("禁用路由管理")])),_:1}),v("ul",J,[(c(!0),p(g,null,h(j,(e=>(c(),p("li",{key:e.name},[m(l,{"model-value":!e.disabled,style:{"--el-switch-on-color":"#13ce66","--el-switch-off-color":"#ff4949"},onChange:a=>function(e){u.addDisabledRoute(e.path,!e.disabled).then((()=>{e.disabled=!e.disabled,k.success("切换成功")}))}(e)},null,8,["model-value","onChange"]),v("span",N,y(e.title),1),v("span",R,y(e.path)+y("/register"===e.path?" 关闭后将同时禁用注册功能":""),1)])))),128))]),m(t,null,{default:x((()=>[f("全局配置管理(JSON)")])),_:1}),v("div",V,[F.value?(c(),p(g,{key:1},[m(n,{size:"small",type:"danger",onClick:a[0]||(a[0]=e=>F.value=!1)},{default:x((()=>[f(" 取消 ")])),_:1}),m(n,{size:"small",type:"success",onClick:A},{default:x((()=>[f(" 保存 ")])),_:1})],64)):(c(),b(n,{key:0,size:"small",type:"primary",onClick:q},{default:x((()=>[f(" 更新 ")])),_:1}))]),v("div",E,[F.value?(c(),b(d,{key:1,modelValue:Z.value,"onUpdate:modelValue":a[1]||(a[1]=e=>Z.value=e),autosize:{minRows:2,maxRows:30},type:"textarea"},null,8,["modelValue"])):(c(),b(s,{key:0,value:w(I),"expand-depth":5,copyable:"",boxed:"",sort:""},null,8,["value"]))])])])}}}),[["__scopeId","data-v-1e07da88"]]))}}}));
2
+ //# sourceMappingURL=index-legacy-BwpR0DP9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-legacy-CW0OHQkF.js","sources":["../../src/pages/dashboard/manage/config/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ElMessage } from 'element-plus'\nimport { computed, onMounted, reactive, ref } from 'vue'\nimport { useRouter } from 'vue-router'\nimport { SuperOverviewApi } from '@/apis'\nimport { useSiteAllConfig } from '@/composables'\n\nconst $router = useRouter()\nconst routes = computed(() =>\n $router.options.routes.filter(v => v.meta?.allowDisabled),\n)\nconst showRoutes = reactive<\n {\n path: string\n name: string\n title: string\n disabled: boolean\n }[]\n>([])\n\nfunction handleChangeRoute(r: (typeof showRoutes)[0]) {\n SuperOverviewApi.addDisabledRoute(r.path, !r.disabled).then(() => {\n r.disabled = !r.disabled\n ElMessage.success('切换成功')\n })\n}\n\nconst editConfig = ref(false)\nconst { value: jsonData, updateValue: updateJsonData } = useSiteAllConfig()\n\nconst editJSON = ref('')\n\nfunction handleEditConfig() {\n editConfig.value = true\n editJSON.value = JSON.stringify(jsonData.value, null, 2)\n}\nasync function handleSaveConfig() {\n try {\n const data = JSON.parse(editJSON.value)\n jsonData.value = data\n await updateJsonData()\n editConfig.value = false\n ElMessage.success('保存成功')\n }\n catch (e) {\n return ElMessage.error('JSON 格式错误')\n }\n}\nonMounted(() => {\n for (const r of routes.value) {\n SuperOverviewApi.checkDisabledRoute(r.path).then((v) => {\n showRoutes.push({\n path: r.path,\n name: r.name.toString(),\n title: r.meta.title,\n disabled: !!v.data?.status,\n })\n })\n }\n})\n</script>\n\n<template>\n <div class=\"user\">\n <div class=\"panel\">\n <el-divider>禁用路由管理</el-divider>\n <ul class=\"routes\">\n <li v-for=\"r in showRoutes\" :key=\"r.name\">\n <el-switch\n :model-value=\"!r.disabled\" style=\"\n --el-switch-on-color: #13ce66;\n --el-switch-off-color: #ff4949;\n \" @change=\"handleChangeRoute(r)\"\n />\n <span class=\"title\">{{ r.title }}</span>\n <span class=\"path\">{{ r.path }}{{ r.path === '/register' ? ' 关闭后将同时禁用注册功能' : '' }}</span>\n </li>\n </ul>\n <el-divider>全局配置管理(JSON)</el-divider>\n <div class=\"config-btn\">\n <el-button v-if=\"!editConfig\" size=\"small\" type=\"primary\" @click=\"handleEditConfig\">\n 更新\n </el-button>\n <template v-else>\n <el-button size=\"small\" type=\"danger\" @click=\"editConfig = false\">\n 取消\n </el-button>\n <el-button size=\"small\" type=\"success\" @click=\"handleSaveConfig\">\n 保存\n </el-button>\n </template>\n </div>\n <div class=\"config-panel\">\n <json-viewer\n v-if=\"!editConfig\"\n :value=\"jsonData\"\n :expand-depth=\"5\"\n copyable\n boxed\n sort\n />\n <!-- TODO: JSON editor -->\n <el-input\n v-else\n v-model=\"editJSON\"\n :autosize=\"{ minRows: 2, maxRows: 30 }\"\n type=\"textarea\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .user {\n margin-top: 40px !important;\n }\n}\n\n.user {\n margin: 0 auto;\n}\n\n.panel {\n max-width: 1256px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\n.routes {\n max-width: 500px;\n margin: 0 auto;\n\n li {\n display: flex;\n padding: 20px;\n align-items: center;\n\n .title {\n font-weight: bold;\n margin: 0 10px;\n }\n }\n}\n.config-btn {\n text-align: center;\n}\n.config-panel {\n max-width: 500px;\n margin: 0 auto;\n}\n</style>\n"],"names":["$router","useRouter","routes","computed","options","filter","v","meta","allowDisabled","showRoutes","reactive","editConfig","ref","value","jsonData","updateValue","updateJsonData","useSiteAllConfig","editJSON","handleEditConfig","JSON","stringify","async","handleSaveConfig","data","parse","ElMessage","success","e","error","onMounted","r","SuperOverviewApi","checkDisabledRoute","path","then","push","name","toString","title","disabled","status","addDisabledRoute"],"mappings":"svCAOA,MAAMA,EAAUC,IACVC,EAASC,GAAS,IACtBH,EAAQI,QAAQF,OAAOG,QAAYC,GAAAA,EAAEC,MAAMC,kBAEvCC,EAAaC,EAOjB,IASIC,EAAaC,GAAI,IACfC,MAAOC,EAAUC,YAAaC,GAAmBC,IAEnDC,EAAWN,EAAI,IAErB,SAASO,IACPR,EAAWE,OAAQ,EACnBK,EAASL,MAAQO,KAAKC,UAAUP,EAASD,MAAO,KAAM,EACxD,CACAS,eAAeC,IACT,IACF,MAAMC,EAAOJ,KAAKK,MAAMP,EAASL,OACjCC,EAASD,MAAQW,QACXR,IACNL,EAAWE,OAAQ,EACnBa,EAAUC,QAAQ,cAEbC,GACE,OAAAF,EAAUG,MAAM,YACzB,CACF,QACAC,GAAU,KACG,IAAA,MAAAC,KAAK7B,EAAOW,MACrBmB,EAAiBC,mBAAmBF,EAAEG,MAAMC,MAAM7B,IAChDG,EAAW2B,KAAK,CACdF,KAAMH,EAAEG,KACRG,KAAMN,EAAEM,KAAKC,WACbC,MAAOR,EAAExB,KAAKgC,MACdC,WAAYlC,EAAEkB,MAAMiB,QACrB,GAEL,uTAtCF,SAA2BV,GACRC,EAAAU,iBAAiBX,EAAEG,MAAOH,EAAES,UAAUL,MAAK,KACxDJ,EAAAS,UAAYT,EAAES,SAChBd,EAAUC,QAAQ,OAAM,GAE5B"}
1
+ {"version":3,"file":"index-legacy-BwpR0DP9.js","sources":["../../src/pages/dashboard/manage/config/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ElMessage } from 'element-plus'\nimport { computed, onMounted, reactive, ref } from 'vue'\nimport { useRouter } from 'vue-router'\nimport { SuperOverviewApi } from '@/apis'\nimport { useSiteAllConfig } from '@/composables'\n\nconst $router = useRouter()\nconst routes = computed(() =>\n $router.options.routes.filter(v => v.meta?.allowDisabled),\n)\nconst showRoutes = reactive<\n {\n path: string\n name: string\n title: string\n disabled: boolean\n }[]\n>([])\n\nfunction handleChangeRoute(r: (typeof showRoutes)[0]) {\n SuperOverviewApi.addDisabledRoute(r.path, !r.disabled).then(() => {\n r.disabled = !r.disabled\n ElMessage.success('切换成功')\n })\n}\n\nconst editConfig = ref(false)\nconst { value: jsonData, updateValue: updateJsonData } = useSiteAllConfig()\n\nconst editJSON = ref('')\n\nfunction handleEditConfig() {\n editConfig.value = true\n editJSON.value = JSON.stringify(jsonData.value, null, 2)\n}\nasync function handleSaveConfig() {\n try {\n const data = JSON.parse(editJSON.value)\n jsonData.value = data\n await updateJsonData()\n editConfig.value = false\n ElMessage.success('保存成功')\n }\n catch (e) {\n return ElMessage.error('JSON 格式错误')\n }\n}\nonMounted(() => {\n for (const r of routes.value) {\n SuperOverviewApi.checkDisabledRoute(r.path).then((v) => {\n showRoutes.push({\n path: r.path,\n name: r.name.toString(),\n title: r.meta.title,\n disabled: !!v.data?.status,\n })\n })\n }\n})\n</script>\n\n<template>\n <div class=\"user\">\n <div class=\"panel\">\n <el-divider>禁用路由管理</el-divider>\n <ul class=\"routes\">\n <li v-for=\"r in showRoutes\" :key=\"r.name\">\n <el-switch\n :model-value=\"!r.disabled\" style=\"\n --el-switch-on-color: #13ce66;\n --el-switch-off-color: #ff4949;\n \" @change=\"handleChangeRoute(r)\"\n />\n <span class=\"title\">{{ r.title }}</span>\n <span class=\"path\">{{ r.path }}{{ r.path === '/register' ? ' 关闭后将同时禁用注册功能' : '' }}</span>\n </li>\n </ul>\n <el-divider>全局配置管理(JSON)</el-divider>\n <div class=\"config-btn\">\n <el-button v-if=\"!editConfig\" size=\"small\" type=\"primary\" @click=\"handleEditConfig\">\n 更新\n </el-button>\n <template v-else>\n <el-button size=\"small\" type=\"danger\" @click=\"editConfig = false\">\n 取消\n </el-button>\n <el-button size=\"small\" type=\"success\" @click=\"handleSaveConfig\">\n 保存\n </el-button>\n </template>\n </div>\n <div class=\"config-panel\">\n <json-viewer\n v-if=\"!editConfig\"\n :value=\"jsonData\"\n :expand-depth=\"5\"\n copyable\n boxed\n sort\n />\n <!-- TODO: JSON editor -->\n <el-input\n v-else\n v-model=\"editJSON\"\n :autosize=\"{ minRows: 2, maxRows: 30 }\"\n type=\"textarea\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n@media screen and (max-width: 700px) {\n .user {\n margin-top: 40px !important;\n }\n}\n\n.user {\n margin: 0 auto;\n}\n\n.panel {\n max-width: 1256px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n}\n\n.routes {\n max-width: 500px;\n margin: 0 auto;\n\n li {\n display: flex;\n padding: 20px;\n align-items: center;\n\n .title {\n font-weight: bold;\n margin: 0 10px;\n }\n }\n}\n.config-btn {\n text-align: center;\n}\n.config-panel {\n max-width: 500px;\n margin: 0 auto;\n}\n</style>\n"],"names":["$router","useRouter","routes","computed","options","filter","v","meta","allowDisabled","showRoutes","reactive","editConfig","ref","value","jsonData","updateValue","updateJsonData","useSiteAllConfig","editJSON","handleEditConfig","JSON","stringify","async","handleSaveConfig","data","parse","ElMessage","success","e","error","onMounted","r","SuperOverviewApi","checkDisabledRoute","path","then","push","name","toString","title","disabled","status","addDisabledRoute"],"mappings":"svCAOA,MAAMA,EAAUC,IACVC,EAASC,GAAS,IACtBH,EAAQI,QAAQF,OAAOG,QAAYC,GAAAA,EAAEC,MAAMC,kBAEvCC,EAAaC,EAOjB,IASIC,EAAaC,GAAI,IACfC,MAAOC,EAAUC,YAAaC,GAAmBC,IAEnDC,EAAWN,EAAI,IAErB,SAASO,IACPR,EAAWE,OAAQ,EACnBK,EAASL,MAAQO,KAAKC,UAAUP,EAASD,MAAO,KAAM,EACxD,CACAS,eAAeC,IACT,IACF,MAAMC,EAAOJ,KAAKK,MAAMP,EAASL,OACjCC,EAASD,MAAQW,QACXR,IACNL,EAAWE,OAAQ,EACnBa,EAAUC,QAAQ,cAEbC,GACE,OAAAF,EAAUG,MAAM,YACzB,CACF,QACAC,GAAU,KACG,IAAA,MAAAC,KAAK7B,EAAOW,MACrBmB,EAAiBC,mBAAmBF,EAAEG,MAAMC,MAAM7B,IAChDG,EAAW2B,KAAK,CACdF,KAAMH,EAAEG,KACRG,KAAMN,EAAEM,KAAKC,WACbC,MAAOR,EAAExB,KAAKgC,MACdC,WAAYlC,EAAEkB,MAAMiB,QACrB,GAEL,uTAtCF,SAA2BV,GACRC,EAAAU,iBAAiBX,EAAEG,MAAOH,EAAES,UAAUL,MAAK,KACxDJ,EAAAS,UAAYT,EAAES,SAChBd,EAAUC,QAAQ,OAAM,GAE5B"}
@@ -1,2 +1,2 @@
1
- System.register(["./index-legacy-BLKO-78a.js","./el-loading-legacy-CRJF51cp.js","./el-progress-legacy-zjlCtRh2.js","./el-form-item-legacy-CcX_hnMk.js","./tip-legacy-DpAPUNpm.js","./index-legacy-pP3Pmgbs.js","./el-dialog-legacy-u4KST5yo.js","./index-legacy-2f3kE3Xe.js","./index-legacy-6cMsZS3c.js","./isEqual-legacy-4dmPHJnc.js","./el-select-legacy-D4o92tvp.js","./validator-legacy-CN5REdqi.js","./aria-legacy-B70JmEZA.js"],(function(e,a){"use strict";var l,t,n,i,s,o,u,d,r,c,p,v,f,m,g,h,y,x,k,w,b,_,z,j,N,$,C,E,T,U,I,L,S,F,O,M,D,P,V,A,G,J,R,W,q,B,H,K,Y,X,Z,Q,ee,ae,le,te,ne,ie,se;return{setters:[e=>{l=e.g,t=e.d,n=e.a,i=e.c,s=e.b,o=e.u,u=e.a1,d=e.Z,r=e.O,c=e.r,p=e.$,v=e.bt,f=e.o,m=e.aW,g=e.E,h=e.bf,y=e.i,x=e.j,k=e.w,w=e.F,b=e.C,_=e.t,z=e.a8,j=e.k,N=e.S,$=e.e,C=e.D,E=e.a9,T=e.a5,U=e.a3,I=e.aY,L=e.ag,S=e.bX,F=e.ae,O=e.aa,M=e.af,D=e.y,P=e.v,V=e.x,A=e.I,G=e.p,J=e.f,R=e.b0,W=e.s,q=e.ac,B=e.a_,H=e.P,K=e._},e=>{Y=e.v},e=>{X=e.a,Z=e.E},e=>{Q=e.E,ee=e.a},e=>{ae=e.T,le=e.E},e=>{te=e.I,ne=e.L},e=>{ie=e.u},e=>{se=e.E},null,null,null,null,null],execute:function(){var a=document.createElement("style");a.textContent='@charset "UTF-8";.task-panel[data-v-8a74d233] ul.el-upload-list{border:1px dashed #d4d4d4;padding:10px}.task-panel[data-v-8a74d233] ul.el-upload-list:before{content:"此处展示选择文件列表";font-size:12px;position:relative;bottom:4px}.task-panel[data-v-8a74d233] .el-upload-list__item-name{display:block;overflow:hidden;max-width:290px;text-overflow:ellipsis;word-break:keep-all}.task-panel[data-v-8a74d233] .is-ready .el-icon--close{display:block;color:#000}.task-panel[data-v-8a74d233]{background-color:#f3f6f8;padding-bottom:1rem;position:relative}.pc-nav[data-v-8a74d233]{background-color:#fff;display:flex;padding:10px;justify-content:space-between;align-items:center}.pc-nav .exit[data-v-8a74d233]{cursor:pointer}.pc-nav .nav[data-v-8a74d233]{display:flex}.pc-nav .nav nav[data-v-8a74d233]{display:flex;align-items:center}.pc-nav .nav nav .nav-item[data-v-8a74d233]{font-size:1rem;color:#595959;padding:10px;cursor:pointer}.pc-nav .nav nav .nav-item.active[data-v-8a74d233]{color:#409eff!important;font-weight:600}.pc-nav .nav .exit[data-v-8a74d233]{color:#595959}.pc-nav .logo[data-v-8a74d233]{width:180px;margin:0 10px}.pc-nav .logo img[data-v-8a74d233]{height:40px}.panel[data-v-8a74d233]{max-width:1024px;padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.panel .name[data-v-8a74d233]{text-align:center}.panel .ddl[data-v-8a74d233]{margin-top:10px;color:#919191;font-size:14px}.panel .infos[data-v-8a74d233]{max-width:460px;margin:auto;overflow:hidden}.panel .infos[data-v-8a74d233] div.el-form-item>label{font-weight:700}.panel .infos[data-v-8a74d233] div.el-form-item>label:before{content:"* ";color:red}.withdraw[data-v-8a74d233]{text-align:right}.tip-wrapper[data-v-8a74d233]{line-height:20px;text-align:left;word-break:break-all;overflow:hidden;padding:0 20px;color:#e6a23c;max-width:320px;font-size:14px}\n',document.head.appendChild(a);const oe=t({name:"UploadFilled"}),ue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},de=[s("path",{fill:"currentColor",d:"M544 864V672h128L512 480 352 672h128v192H320v-1.6c-5.376.32-10.496 1.6-16 1.6A240 240 0 0 1 64 624c0-123.136 93.12-223.488 212.608-237.248A239.808 239.808 0 0 1 512 192a239.872 239.872 0 0 1 235.456 194.752c119.488 13.76 212.48 114.112 212.48 237.248a240 240 0 0 1-240 240c-5.376 0-10.56-1.28-16-1.6v1.6H544z"},null,-1)];var re=l(oe,[["render",function(e,a,l,t,s,o){return n(),i("svg",ue,de)}]]);const ce=e=>(G("data-v-8a74d233"),e=e(),J(),e),pe={class:"task-panel"},ve={class:"pc-nav"},fe={class:"nav"},me={class:"logo"},ge=ce((()=>s("img",{style:{height:"40px",width:"170px"},src:"https://img.cdn.sugarat.top/easypicker/EasyPicker.png",alt:"logo"},null,-1))),he=["onClick"],ye={key:0,"element-loading-text":"Loading...",class:"panel tc"},xe={class:"name"},ke={key:0,style:{color:"red"}},we={class:"tip-wrapper"},be={class:"ddl"},_e={key:0},ze={key:4},je={class:"infos"},Ne={key:0},$e={class:"infos"},Ce=ce((()=>s("div",{class:"el-upload__text"},[$(" 将文件拖于此处 or "),s("em",null,"直接选择文件")],-1))),Ee={class:"p10"},Te={class:"p10"},Ue={class:"p10 option-tips"},Ie={style:{color:"red"}},Le={style:{color:"red"}},Se=ce((()=>s("br",null,null,-1))),Fe=ce((()=>s("br",null,null,-1))),Oe=ce((()=>s("strong",null,"查询提交情况,需填写和提交时一样的表单信息",-1))),Me=ce((()=>s("br",null,null,-1))),De=ce((()=>s("strong",null,"选择大文件后需要等待一会儿才展示处理",-1))),Pe=ce((()=>s("br",null,null,-1))),Ve={class:"withdraw"},Ae={key:1,class:"panel tc"},Ge={class:"name"},Je={style:{"padding-top":"20px"}};e("default",K(t({__name:"index",setup(e){const a=ie(),l=o(),t=u(),G=d([{title:"我也要收集",path:"https://docs.ep.sugarat.top/"}]),J=d({name:"",category:""}),K=d({bindField:""}),oe=r((()=>R(K.format))),ue=c(""),de=c(0),ce=r((()=>de.value<=0)),Re=r((()=>{let e=~~(de.value/1e3),a=~~(e/3600);const l=~~(a/24);a%=24;const t=~~(e%3600/60);return e%=60,`剩余${l}天${a}时${t}分${e}秒`}));function We(e=!0){if(K?.ddl){const e=new Date(K.ddl);de.value=e.getTime()-Date.now()}else de.value=0;e&&setTimeout((()=>{We()}),1e3)}const qe=r((()=>{if(K?.ddl){const e=new Date(K.ddl);return W(e)}return""})),Be=d([]),He=c([]),Ke=c(),Ye=r((()=>He.value.filter((e=>"uploading"===e.status)).length>0)),Xe=e=>"uploading"!==e.status&&"success"!==e.status||se.confirm("不影响已经上传成功的,正在上传的将取消上传","确定从列表移除文件吗?").then((()=>("uploading"===e.status&&(g.info(`取消${e.name}的上传`),e.subscription.unsubscribe()),!0))).catch((()=>!1)),Ze=r((()=>Be.every((e=>e.value)))),Qe=r((()=>K.bindField.trim()||"姓名")),ea=r((()=>Be.find((e=>e.text===Qe.value)))),aa=r((()=>K.people&&!ea.value)),la=d({peopleName:""});function ta(e,a,l){if(!a){const e=`请输入${Qe.value}`;return l(new Error(e)),void g.error(e)}I.checkPeopleIsExist(ue.value,a).then((e=>{e.data.exist||g.error("你不在此次提交名单中,如有疑问请联系管理员"),l(e.data.exist?void 0:new Error("你不在此次提交名单中,如有疑问请联系管理员"))}))}const na=c(),ia=d({peopleName:[{validator:ta,trigger:"blur"}]});function sa(){if(ea.value){const e=Be.find((e=>e.text===Qe.value))?.value;return la.peopleName=e||"",new Promise((a=>{ta(0,e,a)})).then((e=>!e))}return na.value.validate((e=>e))}async function oa(){if(Ze.value){if(K.people&&!(await sa()))return;!function(){const e=He.value;for(const a of e)if(a.md5){if("ready"===a.status){a.status="uploading";let{name:e}=a;const l=e;K.rewrite&&(e=Be.map((e=>e.value)).join(oe.value.splitChar||"-")+L(e)),e=q(e);const t=`easypicker2/${ue.value}/${a.md5}/${e}`;F.getUploadToken().then((n=>{B(n.data.token,a.raw,t,{success(t){const{fsize:n}=t;F.addFile({originName:l,name:e,taskKey:ue.value,taskName:J.name,size:n,hash:a.md5,info:JSON.stringify(Be),people:la.peopleName}).then((()=>{a.status="success",g.success(`文件:${a.name}提交成功`),K.people&&I.updatePeopleStatus(ue.value,e,la.peopleName,a.md5)}))},process(e,l,t){a.percentage=Math.floor(e),a.subscription=t}})}))}}else g.info(`文件(${a.name})的唯一指纹还在计算中,再等待一会儿再点击上传`),setTimeout((()=>{g.info("文件越大计算时间越长(1G通常需要20s)")}),100)}()}else g.warning("请先完成必要信息的填写")}const ua=r((()=>{for(const e of He.value)if("ready"===e.status)return!0;return!1})),da=r((()=>{for(const e of He.value)if(["success","ready"].includes(e.status))return!0;return!1})),ra=c(0);function ca(e){const{name:a}=e;if(oe.value.format.length&&oe.value.status){const l=L(a);if(!oe.value.format.find((e=>l.toLowerCase().endsWith(e))))return g.error(`${a} 格式不符合要求`),void Ke.value.handleRemove(e)}if(oe.value.size&&oe.value.size<e.size)return g.error(`${a} 大小${T(e.size)} 不符合要求`),void Ke.value.handleRemove(e);ra.value+=1,S(e.raw).then((a=>{e.md5=a,ra.value-=1}))}const pa=r((()=>oe.value.limit||10));function va(){g.warning(`一次提交最多只能选择${pa.value}个文件,请移除已经上传成功的或刷新页面`)}const fa=c(!1),ma=c("");function ga(){F.getTemplateUrl(K.template,ue.value).then((e=>{fa.value=!0;const{link:a}=e.data;ma.value=a,O(a,K.template)})).catch((()=>{g.warning("文件已从服务器上移除,请联系管理员重新上传")}))}const ha=c(!1);async function ya(){if(Ze.value){if(K.people&&!(await sa()))return;!function(){const e=He.value;for(const a of e)if(a.md5){if(!["fail","uploading"].includes(a.status)){let{name:e}=a;K.rewrite&&(e=Be.map((e=>e.value)).join(oe.value.splitChar||"-")+L(e)),F.withdrawFile({taskKey:ue.value,taskName:J.name,filename:e,hash:a.md5,info:JSON.stringify(Be),peopleName:la.peopleName}).then((()=>{g.success(`文件:${a.name}撤回成功`),a.name+=" - (已撤回 ✅ )",a.status="fail"})).catch((()=>{g.error(`撤回失败: 没有文件:${a.name}对应提交记录`)}))}}else g.info(`文件(${a.name})的唯一指纹还在计算中,再等待一会儿再点击上传`),setTimeout((()=>{g.info("文件越大计算时间越长(1G通常需要20s)")}),100)}()}else g.warning("请先完成必要信息的填写")}async function xa(){if(Ze.value){if(K.people&&!(await sa()))return;F.checkSubmitStatus(ue.value,Be,la.peopleName).then((e=>{e.data.isSubmit?g.success("已经提交过啦"):g.warning("还未提交过哟")}))}else g.warning("请先完成必要信息的填写,需和提交时信息完全一致")}const ka=c(!1),wa=c(!1);function ba(e=[],a=[]){return e.length===a.length&&e.every(((e,l)=>e.type===a[l].type&&e.text===a[l].text&&ba(e.children,a[l].children)))}function _a(e=!1){m.getTaskMoreInfo(ue.value).then((a=>{Object.assign(K,a.data),ba(Be,M(K.info))||(Be.splice(0,Be.length),Be.push(...M(K.info)),e&&g.success("表单信息有更新")),We(!1),ka.value=!1}))}function za(){wa.value=!0}function ja(){wa.value&&!Ye.value&&(wa.value=!1,_a(!0))}const Na=r((()=>ce.value?qe.value:qe.value+Re.value)),$a=d({text:"",imgs:[]}),Ca=c([]);p((()=>K.tip),(()=>{try{const e=JSON.parse(K.tip);$a.imgs=e.imgs,$a.text=e.text||"",Ca.value=$a.imgs.map((e=>({...e,url:"https://img.cdn.sugarat.top/mdImg/MTY3NzkxMDI1NTU1Nw==20140524124237518.gif"}))),Ca.value.length&&H.getTipImageUrl(ue.value,Ca.value.map((e=>({uid:e.uid,name:e.name})))).then((e=>{e.data.forEach(((e,a)=>{Ca.value[a].url=e.cover,Object.assign(Ca.value[a],{preview:e.preview})}))}))}catch{$a.text="",$a.imgs=[],Ca.value=[]}}));const Ea=v("disabledUpload",!1);return f((()=>{ue.value=t.params.key,ue.value&&(ka.value=!0,m.getTaskInfo(ue.value).then((e=>{Object.assign(J,e.data),Ea.value=!!e.data.limitUpload,Ea.value&&se.alert("任务存储空间容量已达到上限,已经无法进行上传,请联系发起人扩容空间")})).catch((e=>{4001===e.code&&(g.error("任务不存在"),ue.value="",J.name="任务不存在")})),_a(),We()),window.addEventListener("blur",za),window.addEventListener("focus",ja)})),h((()=>{window.removeEventListener("blur",za),window.removeEventListener("focus",ja)})),(e,t)=>{const o=y("router-link"),u=D,d=le,r=X,c=P,p=Q,v=ee,f=V,m=A,g=Z,h=Y;return n(),i("div",pe,[s("div",ve,[s("div",fe,[s("div",me,[x(o,{to:"/"},{default:k((()=>[ge])),_:1})]),s("nav",null,[(n(!0),i(w,null,b(G,((e,a)=>(n(),i("div",{key:a,class:"nav-item",onClick:e=>function(e){G[e].path.startsWith("http")?window.location.href=G[e].path:l.push({path:G[e].path})}(a)},_(e.title),9,he)))),128))])])]),ue.value?z((n(),i("div",ye,[s("h1",xe,_(J.name),1),j(Ea)?(n(),i("h2",ke," 任务存储空间容量已达到上限,已经无法进行上传,请联系发起人扩容空间 ")):N("",!0),!$a.text||qe.value&&ce.value?N("",!0):(n(),i(w,{key:1},[x(u,null,{default:k((()=>[$("⚠️ 注意事项 ⚠️")])),_:1}),x(ae,null,{default:k((()=>[s("div",we,[(n(!0),i(w,null,b($a.text.split("\n"),((e,a)=>(n(),i("p",{key:a},_(e.replace(/\s/g," ")),1)))),128))])])),_:1})],64)),!Ca.value.length||qe.value&&ce.value?N("",!0):(n(!0),i(w,{key:2},b(Ca.value,((e,a)=>(n(),C(d,{key:e.uid,"hide-on-click-modal":"",style:{width:"100px",height:"100px",margin:"10px"},src:e.url,"zoom-rate":1.2,"preview-src-list":Ca.value.map((e=>e.preview)),"initial-index":a,fit:"contain"},null,8,["src","preview-src-list","initial-index"])))),128)),qe.value?(n(),i(w,{key:3},[x(u,null,{default:k((()=>[$("截止时间")])),_:1}),s("h2",be,_(Na.value),1),ce.value?(n(),i("div",_e,[x(r,{description:"已经结束啦!"})])):N("",!0)],64)):N("",!0),qe.value&&ce.value?N("",!0):(n(),i("div",ze,[x(u,null,{default:k((()=>[$("必要信息填写")])),_:1}),s("div",je,[z(s("div",null,[x(ae,null,{default:k((()=>[$("“"+_(Qe.value)+"”在参与名单里才能正常提交",1)])),_:1})],512),[[E,K.people]]),aa.value?(n(),i("div",Ne,[s("div",$e,[x(v,{ref_key:"validModalRef",ref:na,rules:ia,"status-icon":"",model:la,disabled:Ye.value,"label-position":"top"},{default:k((()=>[x(p,{prop:"peopleName",label:Qe.value},{default:k((()=>[x(c,{modelValue:la.peopleName,"onUpdate:modelValue":t[0]||(t[0]=e=>la.peopleName=e),maxlength:14,clearable:"","show-word-limit":"",placeholder:`请输入 ${Qe.value}`},null,8,["modelValue","placeholder"])])),_:1},8,["label"])])),_:1},8,["rules","model","disabled"])])])):N("",!0),x(te,{infos:Be,disabled:Ye.value},null,8,["infos","disabled"])]),x(g,{ref_key:"fileUpload",ref:Ke,"file-list":He.value,"onUpdate:fileList":t[1]||(t[1]=e=>He.value=e),style:{"max-width":"400px",margin:"0 auto"},drag:!j(a),action:"","on-change":ca,"before-remove":Xe,"on-exceed":va,"auto-upload":!1,multiple:"",limit:pa.value},{tip:k((()=>[z(s("div",Ee,[x(ae,null,{default:k((()=>[$(" 还有 "+_(ra.value)+" 个文件正在生成校验信息,请稍等(1G通常需要20s) ",1)])),_:1})],512),[[E,!!ra.value]])])),default:k((()=>[j(a)?(n(),C(f,{key:0,type:"primary"},{default:k((()=>[$(" 选择文件 ")])),_:1})):(n(),i(w,{key:1},[x(m,{class:"el-icon--upload"},{default:k((()=>[x(j(re))])),_:1}),Ce],64))])),_:1},8,["file-list","drag","limit"]),s("div",Te,[ha.value?(n(),C(f,{key:0,size:"default",type:"warning",disabled:!da.value||!!ra.value,onClick:ya},{default:k((()=>[$(" 一键撤回 ")])),_:1},8,["disabled"])):j(Ea)?N("",!0):(n(),C(f,{key:1,size:"default",type:"success",disabled:!ua.value||!!ra.value,onClick:oa},{default:k((()=>[$(" 提交文件 ")])),_:1},8,["disabled"])),x(f,{size:"default",onClick:xa},{default:k((()=>[$(" 查询提交情况 ")])),_:1})]),s("div",Ue,[oe.value.status&&oe.value.format.length?(n(),C(ae,{key:0},{default:k((()=>[$(" 限制格式为: "),s("span",Ie,_(oe.value.format.join(", ")),1)])),_:1})):N("",!0),oe.value.size?(n(),C(ae,{key:1},{default:k((()=>[$(" 限制文件大小不超过: "),s("span",Le,_(j(T)(oe.value.size)),1)])),_:1})):N("",!0),ha.value?(n(),C(ae,{key:2},{default:k((()=>[$(" ① 须保证选择的文件与提交时的文件一致"),Se,$(" ② 填写表单信息一致 "),Fe,$(" ③ 完全一模一样的文件的提交记录(内容md5+命名),将会一次性全部撤回 ")])),_:1})):(n(),i(w,{key:3},[x(ae,null,{default:k((()=>[Oe])),_:1}),x(ae,null,{default:k((()=>[$(" ① 选择完文件,点击 ”提交文件“即可 "),Me,$(" ② "),De,K.template&&!j(Ea)?(n(),i(w,{key:0},[Pe,$(" ③ "),s("strong",null,[x(f,{type:"primary",text:"",style:{color:"#85ce61"},size:"small",onClick:ga},{default:k((()=>[$("右下角可 “查看提交示例” ")])),_:1})])],64)):N("",!0)])),_:1})],64))]),s("div",Ve,[K.template&&!j(Ea)?(n(),C(f,{key:0,type:"primary",text:"",style:{color:"#85ce61"},size:"small",onClick:ga},{default:k((()=>[$(" 查看提交示例 ")])),_:1})):N("",!0),ha.value?(n(),C(f,{key:1,size:"small",type:"primary",text:"",onClick:t[2]||(t[2]=e=>ha.value=!1)},{default:k((()=>[$(" 正常提交 ")])),_:1})):(n(),C(f,{key:2,size:"small",type:"primary",text:"",onClick:t[3]||(t[3]=e=>ha.value=!0)},{default:k((()=>[$(" 我要撤回 ")])),_:1}))])]))])),[[h,ka.value]]):(n(),i("div",Ae,[s("h1",Ge,_(J.name),1)])),x(ne,{value:fa.value,"onUpdate:value":t[4]||(t[4]=e=>fa.value=e),title:"示例文件下载链接",link:ma.value},null,8,["value","link"]),s("div",Je,[x(U,{type:"task"})])])}}}),[["__scopeId","data-v-8a74d233"]]))}}}));
2
- //# sourceMappingURL=index-legacy-BqL3XK76.js.map
1
+ System.register(["./index-legacy-DC5-MYgp.js","./el-loading-legacy-CCDpn-BT.js","./el-progress-legacy-C5K3FqLs.js","./el-form-item-legacy-DNwgpXzk.js","./tip-legacy-Ci60OMi9.js","./index-legacy-DM_G6GXF.js","./el-dialog-legacy-CX7a77_4.js","./index-legacy-DmJc-LaA.js","./index-legacy-DiNZXmUs.js","./isEqual-legacy-DVLZyo95.js","./el-select-legacy-BI1YK9Jv.js","./validator-legacy-D-pC1hkO.js","./aria-legacy-B70JmEZA.js"],(function(e,a){"use strict";var l,t,n,i,s,o,u,d,r,c,p,v,f,m,g,h,y,x,k,w,b,_,z,j,N,$,C,E,T,U,I,L,S,F,O,M,D,P,V,A,G,J,R,W,q,B,H,K,Y,X,Z,Q,ee,ae,le,te,ne,ie,se;return{setters:[e=>{l=e.g,t=e.d,n=e.a,i=e.c,s=e.b,o=e.u,u=e.a1,d=e.Z,r=e.O,c=e.r,p=e.$,v=e.bt,f=e.o,m=e.aW,g=e.E,h=e.bf,y=e.i,x=e.j,k=e.w,w=e.F,b=e.C,_=e.t,z=e.a8,j=e.k,N=e.S,$=e.e,C=e.D,E=e.a9,T=e.a5,U=e.a3,I=e.aY,L=e.ag,S=e.bX,F=e.ae,O=e.aa,M=e.af,D=e.y,P=e.v,V=e.x,A=e.I,G=e.p,J=e.f,R=e.b0,W=e.s,q=e.ac,B=e.a_,H=e.P,K=e._},e=>{Y=e.v},e=>{X=e.a,Z=e.E},e=>{Q=e.E,ee=e.a},e=>{ae=e.T,le=e.E},e=>{te=e.I,ne=e.L},e=>{ie=e.u},e=>{se=e.E},null,null,null,null,null],execute:function(){var a=document.createElement("style");a.textContent='@charset "UTF-8";.task-panel[data-v-8a74d233] ul.el-upload-list{border:1px dashed #d4d4d4;padding:10px}.task-panel[data-v-8a74d233] ul.el-upload-list:before{content:"此处展示选择文件列表";font-size:12px;position:relative;bottom:4px}.task-panel[data-v-8a74d233] .el-upload-list__item-name{display:block;overflow:hidden;max-width:290px;text-overflow:ellipsis;word-break:keep-all}.task-panel[data-v-8a74d233] .is-ready .el-icon--close{display:block;color:#000}.task-panel[data-v-8a74d233]{background-color:#f3f6f8;padding-bottom:1rem;position:relative}.pc-nav[data-v-8a74d233]{background-color:#fff;display:flex;padding:10px;justify-content:space-between;align-items:center}.pc-nav .exit[data-v-8a74d233]{cursor:pointer}.pc-nav .nav[data-v-8a74d233]{display:flex}.pc-nav .nav nav[data-v-8a74d233]{display:flex;align-items:center}.pc-nav .nav nav .nav-item[data-v-8a74d233]{font-size:1rem;color:#595959;padding:10px;cursor:pointer}.pc-nav .nav nav .nav-item.active[data-v-8a74d233]{color:#409eff!important;font-weight:600}.pc-nav .nav .exit[data-v-8a74d233]{color:#595959}.pc-nav .logo[data-v-8a74d233]{width:180px;margin:0 10px}.pc-nav .logo img[data-v-8a74d233]{height:40px}.panel[data-v-8a74d233]{max-width:1024px;padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px}.panel .name[data-v-8a74d233]{text-align:center}.panel .ddl[data-v-8a74d233]{margin-top:10px;color:#919191;font-size:14px}.panel .infos[data-v-8a74d233]{max-width:460px;margin:auto;overflow:hidden}.panel .infos[data-v-8a74d233] div.el-form-item>label{font-weight:700}.panel .infos[data-v-8a74d233] div.el-form-item>label:before{content:"* ";color:red}.withdraw[data-v-8a74d233]{text-align:right}.tip-wrapper[data-v-8a74d233]{line-height:20px;text-align:left;word-break:break-all;overflow:hidden;padding:0 20px;color:#e6a23c;max-width:320px;font-size:14px}\n',document.head.appendChild(a);const oe=t({name:"UploadFilled"}),ue={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},de=[s("path",{fill:"currentColor",d:"M544 864V672h128L512 480 352 672h128v192H320v-1.6c-5.376.32-10.496 1.6-16 1.6A240 240 0 0 1 64 624c0-123.136 93.12-223.488 212.608-237.248A239.808 239.808 0 0 1 512 192a239.872 239.872 0 0 1 235.456 194.752c119.488 13.76 212.48 114.112 212.48 237.248a240 240 0 0 1-240 240c-5.376 0-10.56-1.28-16-1.6v1.6H544z"},null,-1)];var re=l(oe,[["render",function(e,a,l,t,s,o){return n(),i("svg",ue,de)}]]);const ce=e=>(G("data-v-8a74d233"),e=e(),J(),e),pe={class:"task-panel"},ve={class:"pc-nav"},fe={class:"nav"},me={class:"logo"},ge=ce((()=>s("img",{style:{height:"40px",width:"170px"},src:"https://img.cdn.sugarat.top/easypicker/EasyPicker.png",alt:"logo"},null,-1))),he=["onClick"],ye={key:0,"element-loading-text":"Loading...",class:"panel tc"},xe={class:"name"},ke={key:0,style:{color:"red"}},we={class:"tip-wrapper"},be={class:"ddl"},_e={key:0},ze={key:4},je={class:"infos"},Ne={key:0},$e={class:"infos"},Ce=ce((()=>s("div",{class:"el-upload__text"},[$(" 将文件拖于此处 or "),s("em",null,"直接选择文件")],-1))),Ee={class:"p10"},Te={class:"p10"},Ue={class:"p10 option-tips"},Ie={style:{color:"red"}},Le={style:{color:"red"}},Se=ce((()=>s("br",null,null,-1))),Fe=ce((()=>s("br",null,null,-1))),Oe=ce((()=>s("strong",null,"查询提交情况,需填写和提交时一样的表单信息",-1))),Me=ce((()=>s("br",null,null,-1))),De=ce((()=>s("strong",null,"选择大文件后需要等待一会儿才展示处理",-1))),Pe=ce((()=>s("br",null,null,-1))),Ve={class:"withdraw"},Ae={key:1,class:"panel tc"},Ge={class:"name"},Je={style:{"padding-top":"20px"}};e("default",K(t({__name:"index",setup(e){const a=ie(),l=o(),t=u(),G=d([{title:"我也要收集",path:"https://docs.ep.sugarat.top/"}]),J=d({name:"",category:""}),K=d({bindField:""}),oe=r((()=>R(K.format))),ue=c(""),de=c(0),ce=r((()=>de.value<=0)),Re=r((()=>{let e=~~(de.value/1e3),a=~~(e/3600);const l=~~(a/24);a%=24;const t=~~(e%3600/60);return e%=60,`剩余${l}天${a}时${t}分${e}秒`}));function We(e=!0){if(K?.ddl){const e=new Date(K.ddl);de.value=e.getTime()-Date.now()}else de.value=0;e&&setTimeout((()=>{We()}),1e3)}const qe=r((()=>{if(K?.ddl){const e=new Date(K.ddl);return W(e)}return""})),Be=d([]),He=c([]),Ke=c(),Ye=r((()=>He.value.filter((e=>"uploading"===e.status)).length>0)),Xe=e=>"uploading"!==e.status&&"success"!==e.status||se.confirm("不影响已经上传成功的,正在上传的将取消上传","确定从列表移除文件吗?").then((()=>("uploading"===e.status&&(g.info(`取消${e.name}的上传`),e.subscription.unsubscribe()),!0))).catch((()=>!1)),Ze=r((()=>Be.every((e=>e.value)))),Qe=r((()=>K.bindField.trim()||"姓名")),ea=r((()=>Be.find((e=>e.text===Qe.value)))),aa=r((()=>K.people&&!ea.value)),la=d({peopleName:""});function ta(e,a,l){if(!a){const e=`请输入${Qe.value}`;return l(new Error(e)),void g.error(e)}I.checkPeopleIsExist(ue.value,a).then((e=>{e.data.exist||g.error("你不在此次提交名单中,如有疑问请联系管理员"),l(e.data.exist?void 0:new Error("你不在此次提交名单中,如有疑问请联系管理员"))}))}const na=c(),ia=d({peopleName:[{validator:ta,trigger:"blur"}]});function sa(){if(ea.value){const e=Be.find((e=>e.text===Qe.value))?.value;return la.peopleName=e||"",new Promise((a=>{ta(0,e,a)})).then((e=>!e))}return na.value.validate((e=>e))}async function oa(){if(Ze.value){if(K.people&&!(await sa()))return;!function(){const e=He.value;for(const a of e)if(a.md5){if("ready"===a.status){a.status="uploading";let{name:e}=a;const l=e;K.rewrite&&(e=Be.map((e=>e.value)).join(oe.value.splitChar||"-")+L(e)),e=q(e);const t=`easypicker2/${ue.value}/${a.md5}/${e}`;F.getUploadToken().then((n=>{B(n.data.token,a.raw,t,{success(t){const{fsize:n}=t;F.addFile({originName:l,name:e,taskKey:ue.value,taskName:J.name,size:n,hash:a.md5,info:JSON.stringify(Be),people:la.peopleName}).then((()=>{a.status="success",g.success(`文件:${a.name}提交成功`),K.people&&I.updatePeopleStatus(ue.value,e,la.peopleName,a.md5)}))},process(e,l,t){a.percentage=Math.floor(e),a.subscription=t}})}))}}else g.info(`文件(${a.name})的唯一指纹还在计算中,再等待一会儿再点击上传`),setTimeout((()=>{g.info("文件越大计算时间越长(1G通常需要20s)")}),100)}()}else g.warning("请先完成必要信息的填写")}const ua=r((()=>{for(const e of He.value)if("ready"===e.status)return!0;return!1})),da=r((()=>{for(const e of He.value)if(["success","ready"].includes(e.status))return!0;return!1})),ra=c(0);function ca(e){const{name:a}=e;if(oe.value.format.length&&oe.value.status){const l=L(a);if(!oe.value.format.find((e=>l.toLowerCase().endsWith(e))))return g.error(`${a} 格式不符合要求`),void Ke.value.handleRemove(e)}if(oe.value.size&&oe.value.size<e.size)return g.error(`${a} 大小${T(e.size)} 不符合要求`),void Ke.value.handleRemove(e);ra.value+=1,S(e.raw).then((a=>{e.md5=a,ra.value-=1}))}const pa=r((()=>oe.value.limit||10));function va(){g.warning(`一次提交最多只能选择${pa.value}个文件,请移除已经上传成功的或刷新页面`)}const fa=c(!1),ma=c("");function ga(){F.getTemplateUrl(K.template,ue.value).then((e=>{fa.value=!0;const{link:a}=e.data;ma.value=a,O(a,K.template)})).catch((()=>{g.warning("文件已从服务器上移除,请联系管理员重新上传")}))}const ha=c(!1);async function ya(){if(Ze.value){if(K.people&&!(await sa()))return;!function(){const e=He.value;for(const a of e)if(a.md5){if(!["fail","uploading"].includes(a.status)){let{name:e}=a;K.rewrite&&(e=Be.map((e=>e.value)).join(oe.value.splitChar||"-")+L(e)),F.withdrawFile({taskKey:ue.value,taskName:J.name,filename:e,hash:a.md5,info:JSON.stringify(Be),peopleName:la.peopleName}).then((()=>{g.success(`文件:${a.name}撤回成功`),a.name+=" - (已撤回 ✅ )",a.status="fail"})).catch((()=>{g.error(`撤回失败: 没有文件:${a.name}对应提交记录`)}))}}else g.info(`文件(${a.name})的唯一指纹还在计算中,再等待一会儿再点击上传`),setTimeout((()=>{g.info("文件越大计算时间越长(1G通常需要20s)")}),100)}()}else g.warning("请先完成必要信息的填写")}async function xa(){if(Ze.value){if(K.people&&!(await sa()))return;F.checkSubmitStatus(ue.value,Be,la.peopleName).then((e=>{e.data.isSubmit?g.success("已经提交过啦"):g.warning("还未提交过哟")}))}else g.warning("请先完成必要信息的填写,需和提交时信息完全一致")}const ka=c(!1),wa=c(!1);function ba(e=[],a=[]){return e.length===a.length&&e.every(((e,l)=>e.type===a[l].type&&e.text===a[l].text&&ba(e.children,a[l].children)))}function _a(e=!1){m.getTaskMoreInfo(ue.value).then((a=>{Object.assign(K,a.data),ba(Be,M(K.info))||(Be.splice(0,Be.length),Be.push(...M(K.info)),e&&g.success("表单信息有更新")),We(!1),ka.value=!1}))}function za(){wa.value=!0}function ja(){wa.value&&!Ye.value&&(wa.value=!1,_a(!0))}const Na=r((()=>ce.value?qe.value:qe.value+Re.value)),$a=d({text:"",imgs:[]}),Ca=c([]);p((()=>K.tip),(()=>{try{const e=JSON.parse(K.tip);$a.imgs=e.imgs,$a.text=e.text||"",Ca.value=$a.imgs.map((e=>({...e,url:"https://img.cdn.sugarat.top/mdImg/MTY3NzkxMDI1NTU1Nw==20140524124237518.gif"}))),Ca.value.length&&H.getTipImageUrl(ue.value,Ca.value.map((e=>({uid:e.uid,name:e.name})))).then((e=>{e.data.forEach(((e,a)=>{Ca.value[a].url=e.cover,Object.assign(Ca.value[a],{preview:e.preview})}))}))}catch{$a.text="",$a.imgs=[],Ca.value=[]}}));const Ea=v("disabledUpload",!1);return f((()=>{ue.value=t.params.key,ue.value&&(ka.value=!0,m.getTaskInfo(ue.value).then((e=>{Object.assign(J,e.data),Ea.value=!!e.data.limitUpload,Ea.value&&se.alert("任务存储空间容量已达到上限,已经无法进行上传,请联系发起人扩容空间")})).catch((e=>{4001===e.code&&(g.error("任务不存在"),ue.value="",J.name="任务不存在")})),_a(),We()),window.addEventListener("blur",za),window.addEventListener("focus",ja)})),h((()=>{window.removeEventListener("blur",za),window.removeEventListener("focus",ja)})),(e,t)=>{const o=y("router-link"),u=D,d=le,r=X,c=P,p=Q,v=ee,f=V,m=A,g=Z,h=Y;return n(),i("div",pe,[s("div",ve,[s("div",fe,[s("div",me,[x(o,{to:"/"},{default:k((()=>[ge])),_:1})]),s("nav",null,[(n(!0),i(w,null,b(G,((e,a)=>(n(),i("div",{key:a,class:"nav-item",onClick:e=>function(e){G[e].path.startsWith("http")?window.location.href=G[e].path:l.push({path:G[e].path})}(a)},_(e.title),9,he)))),128))])])]),ue.value?z((n(),i("div",ye,[s("h1",xe,_(J.name),1),j(Ea)?(n(),i("h2",ke," 任务存储空间容量已达到上限,已经无法进行上传,请联系发起人扩容空间 ")):N("",!0),!$a.text||qe.value&&ce.value?N("",!0):(n(),i(w,{key:1},[x(u,null,{default:k((()=>[$("⚠️ 注意事项 ⚠️")])),_:1}),x(ae,null,{default:k((()=>[s("div",we,[(n(!0),i(w,null,b($a.text.split("\n"),((e,a)=>(n(),i("p",{key:a},_(e.replace(/\s/g," ")),1)))),128))])])),_:1})],64)),!Ca.value.length||qe.value&&ce.value?N("",!0):(n(!0),i(w,{key:2},b(Ca.value,((e,a)=>(n(),C(d,{key:e.uid,"hide-on-click-modal":"",style:{width:"100px",height:"100px",margin:"10px"},src:e.url,"zoom-rate":1.2,"preview-src-list":Ca.value.map((e=>e.preview)),"initial-index":a,fit:"contain"},null,8,["src","preview-src-list","initial-index"])))),128)),qe.value?(n(),i(w,{key:3},[x(u,null,{default:k((()=>[$("截止时间")])),_:1}),s("h2",be,_(Na.value),1),ce.value?(n(),i("div",_e,[x(r,{description:"已经结束啦!"})])):N("",!0)],64)):N("",!0),qe.value&&ce.value?N("",!0):(n(),i("div",ze,[x(u,null,{default:k((()=>[$("必要信息填写")])),_:1}),s("div",je,[z(s("div",null,[x(ae,null,{default:k((()=>[$("“"+_(Qe.value)+"”在参与名单里才能正常提交",1)])),_:1})],512),[[E,K.people]]),aa.value?(n(),i("div",Ne,[s("div",$e,[x(v,{ref_key:"validModalRef",ref:na,rules:ia,"status-icon":"",model:la,disabled:Ye.value,"label-position":"top"},{default:k((()=>[x(p,{prop:"peopleName",label:Qe.value},{default:k((()=>[x(c,{modelValue:la.peopleName,"onUpdate:modelValue":t[0]||(t[0]=e=>la.peopleName=e),maxlength:14,clearable:"","show-word-limit":"",placeholder:`请输入 ${Qe.value}`},null,8,["modelValue","placeholder"])])),_:1},8,["label"])])),_:1},8,["rules","model","disabled"])])])):N("",!0),x(te,{infos:Be,disabled:Ye.value},null,8,["infos","disabled"])]),x(g,{ref_key:"fileUpload",ref:Ke,"file-list":He.value,"onUpdate:fileList":t[1]||(t[1]=e=>He.value=e),style:{"max-width":"400px",margin:"0 auto"},drag:!j(a),action:"","on-change":ca,"before-remove":Xe,"on-exceed":va,"auto-upload":!1,multiple:"",limit:pa.value},{tip:k((()=>[z(s("div",Ee,[x(ae,null,{default:k((()=>[$(" 还有 "+_(ra.value)+" 个文件正在生成校验信息,请稍等(1G通常需要20s) ",1)])),_:1})],512),[[E,!!ra.value]])])),default:k((()=>[j(a)?(n(),C(f,{key:0,type:"primary"},{default:k((()=>[$(" 选择文件 ")])),_:1})):(n(),i(w,{key:1},[x(m,{class:"el-icon--upload"},{default:k((()=>[x(j(re))])),_:1}),Ce],64))])),_:1},8,["file-list","drag","limit"]),s("div",Te,[ha.value?(n(),C(f,{key:0,size:"default",type:"warning",disabled:!da.value||!!ra.value,onClick:ya},{default:k((()=>[$(" 一键撤回 ")])),_:1},8,["disabled"])):j(Ea)?N("",!0):(n(),C(f,{key:1,size:"default",type:"success",disabled:!ua.value||!!ra.value,onClick:oa},{default:k((()=>[$(" 提交文件 ")])),_:1},8,["disabled"])),x(f,{size:"default",onClick:xa},{default:k((()=>[$(" 查询提交情况 ")])),_:1})]),s("div",Ue,[oe.value.status&&oe.value.format.length?(n(),C(ae,{key:0},{default:k((()=>[$(" 限制格式为: "),s("span",Ie,_(oe.value.format.join(", ")),1)])),_:1})):N("",!0),oe.value.size?(n(),C(ae,{key:1},{default:k((()=>[$(" 限制文件大小不超过: "),s("span",Le,_(j(T)(oe.value.size)),1)])),_:1})):N("",!0),ha.value?(n(),C(ae,{key:2},{default:k((()=>[$(" ① 须保证选择的文件与提交时的文件一致"),Se,$(" ② 填写表单信息一致 "),Fe,$(" ③ 完全一模一样的文件的提交记录(内容md5+命名),将会一次性全部撤回 ")])),_:1})):(n(),i(w,{key:3},[x(ae,null,{default:k((()=>[Oe])),_:1}),x(ae,null,{default:k((()=>[$(" ① 选择完文件,点击 ”提交文件“即可 "),Me,$(" ② "),De,K.template&&!j(Ea)?(n(),i(w,{key:0},[Pe,$(" ③ "),s("strong",null,[x(f,{type:"primary",text:"",style:{color:"#85ce61"},size:"small",onClick:ga},{default:k((()=>[$("右下角可 “查看提交示例” ")])),_:1})])],64)):N("",!0)])),_:1})],64))]),s("div",Ve,[K.template&&!j(Ea)?(n(),C(f,{key:0,type:"primary",text:"",style:{color:"#85ce61"},size:"small",onClick:ga},{default:k((()=>[$(" 查看提交示例 ")])),_:1})):N("",!0),ha.value?(n(),C(f,{key:1,size:"small",type:"primary",text:"",onClick:t[2]||(t[2]=e=>ha.value=!1)},{default:k((()=>[$(" 正常提交 ")])),_:1})):(n(),C(f,{key:2,size:"small",type:"primary",text:"",onClick:t[3]||(t[3]=e=>ha.value=!0)},{default:k((()=>[$(" 我要撤回 ")])),_:1}))])]))])),[[h,ka.value]]):(n(),i("div",Ae,[s("h1",Ge,_(J.name),1)])),x(ne,{value:fa.value,"onUpdate:value":t[4]||(t[4]=e=>fa.value=e),title:"示例文件下载链接",link:ma.value},null,8,["value","link"]),s("div",Je,[x(U,{type:"task"})])])}}}),[["__scopeId","data-v-8a74d233"]]))}}}));
2
+ //# sourceMappingURL=index-legacy-Cbyz8WHA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-legacy-BqL3XK76.js","sources":["../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/upload-filled.mjs","../../src/pages/task/index.vue"],"sourcesContent":["import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"UploadFilled\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M544 864V672h128L512 480 352 672h128v192H320v-1.6c-5.376.32-10.496 1.6-16 1.6A240 240 0 0 1 64 624c0-123.136 93.12-223.488 212.608-237.248A239.808 239.808 0 0 1 512 192a239.872 239.872 0 0 1 235.456 194.752c119.488 13.76 212.48 114.112 212.48 237.248a240 240 0 0 1-240 240c-5.376 0-10.56-1.28-16-1.6v1.6H544z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar uploadFilled = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { uploadFilled as default };\n","<script lang=\"ts\" setup>\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport type { FormInstance, UploadInstance, UploadUserFile } from 'element-plus'\nimport { computed, onMounted, onUnmounted, reactive, ref, watch } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport HomeFooter from '@components/HomeFooter/index.vue'\nimport LinkDialog from '@components/linkDialog.vue'\nimport { UploadFilled } from '@element-plus/icons-vue'\nimport { useStore } from 'vuex'\nimport { useLocalStorage } from '@vueuse/core'\nimport Tip from '../dashboard/tasks/components/infoPanel/tip.vue'\nimport {\n formatDate,\n formatSize,\n getFileMd5Hash,\n getFileSuffix,\n normalizeFileName,\n parseFileFormat,\n parseInfo,\n} from '@/utils/stringUtil'\nimport { downLoadByUrl, qiniuUpload } from '@/utils/networkUtil'\nimport { FileApi, PeopleApi, PublicApi, TaskApi } from '@/apis'\nimport InfosForm from '@/components/InfosForm/index.vue'\nimport { useIsMobile } from '@/composables'\n\nconst isMobile = useIsMobile()\n// 顶部导航\nconst $router = useRouter()\nconst $route = useRoute()\nconst pcNavs = reactive([\n {\n title: '我也要收集',\n path: 'https://docs.ep.sugarat.top/',\n },\n])\nfunction handleNav(idx: number) {\n if (pcNavs[idx].path.startsWith('http')) {\n window.location.href = pcNavs[idx].path\n return\n }\n $router.push({\n path: pcNavs[idx].path,\n })\n}\n\n// 任务基本信息展示\nconst taskInfo = reactive<TaskApiTypes.TaskInfo>({\n name: '',\n category: '',\n})\nconst taskMoreInfo = reactive<Partial<TaskApiTypes.TaskInfo>>({\n bindField: '',\n})\nconst formatData = computed(() => parseFileFormat(taskMoreInfo.format))\nconst k = ref('')\n\n// 用于展示截止日期\nconst waitTime = ref(0)\n// 判断是否结束\nconst isOver = computed(() => waitTime.value <= 0)\nconst waitTimeStr = computed(() => {\n let seconds = ~~(waitTime.value / 1000)\n let hour = ~~(seconds / (60 * 60))\n const day = ~~(hour / 24)\n hour %= 24\n const minute = ~~((seconds % 3600) / 60)\n seconds %= 60\n return `剩余${day}天${hour}时${minute}分${seconds}秒`\n})\nfunction refreshWaitTime(loop = true) {\n if (taskMoreInfo?.ddl) {\n const date = new Date(taskMoreInfo.ddl)\n waitTime.value = date.getTime() - Date.now()\n }\n else {\n waitTime.value = 0\n }\n if (loop) {\n setTimeout(() => {\n refreshWaitTime()\n }, 1000)\n }\n}\nconst ddlStr = computed(() => {\n if (taskMoreInfo?.ddl) {\n const date = new Date(taskMoreInfo.ddl)\n return formatDate(date)\n }\n return ''\n})\n\n// 必填信息\nconst infos = reactive<InfoItem[]>([])\n\n// 文件上传部分\n\n// 文件上传\nconst fileList = ref<(UploadUserFile & { md5: string, subscription: any })[]>(\n [],\n)\nconst fileUpload = ref<UploadInstance>()\nconst disableForm = computed(\n () => fileList.value.filter(item => item.status === 'uploading').length > 0,\n)\nconst handleRemoveFile: any = (file: any) => {\n if (file.status === 'uploading' || file.status === 'success') {\n return ElMessageBox.confirm(\n '不影响已经上传成功的,正在上传的将取消上传',\n '确定从列表移除文件吗?',\n )\n .then(() => {\n if (file.status === 'uploading') {\n ElMessage.info(`取消${file.name}的上传`)\n // 取消上传\n file.subscription.unsubscribe() // 取消上传\n }\n return true\n })\n .catch(() => false)\n }\n return true\n}\n\n// 校验表单填写\nconst isWriteFinish = computed(() => infos.every(item => item.value))\n// 提交文件\n\nconst limitBindField = computed(() => {\n return taskMoreInfo.bindField.trim() || '姓名'\n})\n\n// 身份核验表单\nconst isSameFieldName = computed(() =>\n infos.find(v => v.text === limitBindField.value),\n)\nconst showValidForm = computed(\n () => taskMoreInfo.people && !isSameFieldName.value,\n)\nconst validModal = reactive({\n peopleName: '',\n})\n\nfunction validatePeopleName(rule: any, value: any, callback: any) {\n if (!value) {\n const message = `请输入${limitBindField.value}`\n callback(new Error(message))\n ElMessage.error(message)\n return\n }\n // 异步校验\n PeopleApi.checkPeopleIsExist(k.value, value).then((res) => {\n if (!res.data.exist) {\n ElMessage.error('你不在此次提交名单中,如有疑问请联系管理员')\n }\n callback(\n res.data.exist\n ? undefined\n : new Error('你不在此次提交名单中,如有疑问请联系管理员'),\n )\n })\n}\n\nconst validModalRef = ref<FormInstance>()\nconst validModalRules = reactive({\n peopleName: [{ validator: validatePeopleName, trigger: 'blur' }],\n})\nfunction confirmPeopleName() {\n // 处理表单必填项含有 limitBindField 的情况\n if (isSameFieldName.value) {\n const value = infos.find(v => v.text === limitBindField.value)?.value\n validModal.peopleName = value || ''\n return new Promise((resolve) => {\n validatePeopleName(null, value, resolve)\n }).then(v => !v)\n }\n return validModalRef.value.validate((isValid: boolean) => isValid)\n}\n\nfunction startUpload() {\n const uploadFiles = fileList.value\n for (const file of uploadFiles) {\n if (!file.md5) {\n ElMessage.info(\n `文件(${file.name})的唯一指纹还在计算中,再等待一会儿再点击上传`,\n )\n setTimeout(() => {\n ElMessage.info('文件越大计算时间越长(1G通常需要20s)')\n }, 100)\n }\n else if (file.status === 'ready') {\n // 开始上传\n file.status = 'uploading'\n let { name } = file\n const originName = name\n // 如果开启了自动重命名,这里重命名一下\n if (taskMoreInfo.rewrite) {\n name\n = infos.map(v => v.value).join(formatData.value.splitChar || '-')\n + getFileSuffix(name)\n }\n // 替换不合法的字符\n name = normalizeFileName(name)\n const key = `easypicker2/${k.value}/${file.md5}/${name}`\n\n FileApi.getUploadToken().then((res) => {\n qiniuUpload(res.data.token, file.raw, key, {\n success(data: any) {\n const { fsize } = data\n FileApi.addFile({\n originName,\n name,\n taskKey: k.value,\n taskName: taskInfo.name,\n size: fsize,\n hash: file.md5,\n info: JSON.stringify(infos),\n people: validModal.peopleName,\n }).then(() => {\n file.status = 'success'\n ElMessage.success(`文件:${file.name}提交成功`)\n if (taskMoreInfo.people) {\n // 无感知更新一下\n PeopleApi.updatePeopleStatus(\n k.value,\n name,\n validModal.peopleName,\n file.md5,\n )\n }\n })\n },\n process(per: number, data: any, subscription: any) {\n file.percentage = Math.floor(per)\n // 挂载取消上传的方法\n file.subscription = subscription\n },\n })\n })\n }\n }\n}\n\nasync function submitUpload() {\n if (!isWriteFinish.value) {\n ElMessage.warning('请先完成必要信息的填写')\n return\n }\n\n if (taskMoreInfo.people) {\n const isValid = await confirmPeopleName()\n if (!isValid) {\n return\n }\n }\n startUpload()\n}\n\n// 是否允许上传\nconst allowUpload = computed(() => {\n for (const file of fileList.value) {\n if (file.status === 'ready') {\n return true\n }\n }\n return false\n})\n\n// 是否允许撤回\nconst allowWithdraw = computed(() => {\n for (const file of fileList.value) {\n if (['success', 'ready'].includes(file.status)) {\n return true\n }\n }\n return false\n})\n\n// 添加文件\n// 正在计算MD5值的文件个数\nconst calculateMd5Count = ref(0)\nfunction handleChangeFile(file: any) {\n // 校验文件后缀名\n const { name } = file\n if (formatData.value.format.length && formatData.value.status) {\n const suffix = getFileSuffix(name)\n if (\n !formatData.value.format.find(v => suffix.toLowerCase().endsWith(v))\n ) {\n ElMessage.error(`${name} 格式不符合要求`)\n fileUpload.value.handleRemove(file)\n return\n }\n }\n\n // 校验文件大小\n if (formatData.value.size && formatData.value.size < file.size) {\n ElMessage.error(`${name} 大小${formatSize(file.size)} 不符合要求`)\n fileUpload.value.handleRemove(file)\n return\n }\n\n calculateMd5Count.value += 1\n // 计算md5 hash\n getFileMd5Hash(file.raw).then((str) => {\n file.md5 = str\n calculateMd5Count.value -= 1\n })\n}\n\nconst limitUploadCount = computed(() => formatData.value.limit || 10)\nfunction handleExceed() {\n ElMessage.warning(\n `一次提交最多只能选择${limitUploadCount.value}个文件,请移除已经上传成功的或刷新页面`,\n )\n}\nconst showLinkModel = ref(false)\nconst templateLink = ref('')\nfunction runWithdraw() {\n const uploadFiles = fileList.value\n for (const file of uploadFiles) {\n if (!file.md5) {\n ElMessage.info(\n `文件(${file.name})的唯一指纹还在计算中,再等待一会儿再点击上传`,\n )\n setTimeout(() => {\n ElMessage.info('文件越大计算时间越长(1G通常需要20s)')\n }, 100)\n }\n else if (!['fail', 'uploading'].includes(file.status)) {\n // 准备开始撤回\n let { name } = file\n\n // 如果开启了自动重命名,这里重命名一下\n if (taskMoreInfo.rewrite) {\n name\n = infos.map(v => v.value).join(formatData.value.splitChar || '-')\n + getFileSuffix(name)\n }\n\n FileApi.withdrawFile({\n taskKey: k.value,\n taskName: taskInfo.name,\n filename: name,\n hash: file.md5,\n info: JSON.stringify(infos),\n peopleName: validModal.peopleName,\n })\n .then(() => {\n ElMessage.success(`文件:${file.name}撤回成功`)\n file.name += ' - (已撤回 ✅ )'\n file.status = 'fail'\n })\n .catch(() => {\n ElMessage.error(`撤回失败: 没有文件:${file.name}对应提交记录`)\n })\n }\n }\n}\nfunction downloadTemplate() {\n FileApi.getTemplateUrl(taskMoreInfo.template, k.value)\n .then((res) => {\n showLinkModel.value = true\n const { link } = res.data\n templateLink.value = link\n downLoadByUrl(link, taskMoreInfo.template)\n })\n .catch(() => {\n ElMessage.warning('文件已从服务器上移除,请联系管理员重新上传')\n })\n}\n\n// 撤回相关逻辑\nconst isWithdraw = ref(false)\nasync function startWithdraw() {\n // 校验表单填写\n if (!isWriteFinish.value) {\n ElMessage.warning('请先完成必要信息的填写')\n return\n }\n if (taskMoreInfo.people) {\n const isValid = await confirmPeopleName()\n if (!isValid) {\n return\n }\n }\n runWithdraw()\n}\n\n// 查询提交情况\nasync function checkSubmitStatus() {\n // 校验表单填写\n if (!isWriteFinish.value) {\n ElMessage.warning('请先完成必要信息的填写,需和提交时信息完全一致')\n return\n }\n // 卡控人员限制\n if (taskMoreInfo.people) {\n const isValid = await confirmPeopleName()\n if (!isValid) {\n return\n }\n }\n FileApi.checkSubmitStatus(k.value, infos, validModal.peopleName).then(\n (res) => {\n if (res.data.isSubmit) {\n ElMessage.success('已经提交过啦')\n }\n else {\n ElMessage.warning('还未提交过哟')\n }\n },\n )\n}\nconst isLoadingData = ref(false)\nconst readyRefresh = ref(false)\nfunction isEqualInfos(a: InfoItem[] = [], b: InfoItem[] = []) {\n if (a.length !== b.length) {\n return false\n }\n return a.every(\n (v, i) =>\n v.type === b[i].type\n && v.text === b[i].text\n && isEqualInfos(v.children, b[i].children),\n )\n}\nfunction refreshTaskMoreInfo(hot = false) {\n TaskApi.getTaskMoreInfo(k.value).then((res) => {\n Object.assign(taskMoreInfo, res.data)\n if (!isEqualInfos(infos, parseInfo(taskMoreInfo.info))) {\n infos.splice(0, infos.length)\n infos.push(...parseInfo(taskMoreInfo.info))\n if (hot) {\n ElMessage.success('表单信息有更新')\n }\n }\n refreshWaitTime(false)\n isLoadingData.value = false\n })\n}\nfunction handleBlur() {\n readyRefresh.value = true\n}\nfunction handleFocus() {\n if (readyRefresh.value && !disableForm.value) {\n readyRefresh.value = false\n refreshTaskMoreInfo(true)\n }\n}\n\n// 展示的时间提示文案\nconst timeInfo = computed(() => {\n if (!isOver.value) {\n return ddlStr.value + waitTimeStr.value\n }\n return ddlStr.value\n})\n\n// tipImage\nconst tipData = reactive<{\n text: string\n imgs: {\n uid: number\n name: string\n }[]\n}>({\n text: '',\n imgs: [],\n})\nconst imageList = ref<\n { name: string, uid: number, preview?: string, url: string }[]\n>([])\n\nwatch(\n () => taskMoreInfo.tip,\n () => {\n // 初始化\n try {\n const parseData = JSON.parse(taskMoreInfo.tip)\n tipData.imgs = parseData.imgs\n tipData.text = parseData.text || ''\n imageList.value = tipData.imgs.map((v) => {\n return {\n ...v,\n url: 'https://img.cdn.sugarat.top/mdImg/MTY3NzkxMDI1NTU1Nw==20140524124237518.gif',\n }\n })\n if (imageList.value.length) {\n // 异步填充url\n PublicApi.getTipImageUrl(\n k.value,\n imageList.value.map(v => ({\n uid: v.uid,\n name: v.name,\n })),\n ).then((v) => {\n v.data.forEach((url, idx) => {\n imageList.value[idx].url = url.cover\n Object.assign(imageList.value[idx], {\n preview: url.preview,\n })\n })\n })\n }\n }\n catch {\n tipData.text = ''\n tipData.imgs = []\n imageList.value = []\n }\n },\n)\n\n// 禁用上传\nconst disabledUpload = useLocalStorage('disabledUpload', false)\n\nonMounted(() => {\n k.value = $route.params.key as string\n if (k.value) {\n isLoadingData.value = true\n TaskApi.getTaskInfo(k.value)\n .then((res) => {\n Object.assign(taskInfo, res.data)\n disabledUpload.value = !!res.data.limitUpload\n if (disabledUpload.value) {\n ElMessageBox.alert(\n '任务存储空间容量已达到上限,已经无法进行上传,请联系发起人扩容空间',\n )\n }\n })\n .catch((err) => {\n if (err.code === 4001) {\n ElMessage.error('任务不存在')\n k.value = ''\n taskInfo.name = '任务不存在'\n }\n })\n refreshTaskMoreInfo()\n refreshWaitTime()\n }\n // 页面隐藏\n window.addEventListener('blur', handleBlur)\n\n // 页面展示\n window.addEventListener('focus', handleFocus)\n})\n\nonUnmounted(() => {\n // 页面隐藏\n window.removeEventListener('blur', handleBlur)\n // 页面展示\n window.removeEventListener('focus', handleFocus)\n})\n</script>\n\n<template>\n <div class=\"task-panel\">\n <div class=\"pc-nav\">\n <div class=\"nav\">\n <!-- LOGO -->\n <div class=\"logo\">\n <router-link to=\"/\">\n <img\n style=\"height: 40px; width: 170px\"\n src=\"https://img.cdn.sugarat.top/easypicker/EasyPicker.png\"\n alt=\"logo\"\n >\n </router-link>\n </div>\n <nav>\n <div\n v-for=\"(n, idx) in pcNavs\"\n :key=\"idx\"\n class=\"nav-item\"\n @click=\"handleNav(idx)\"\n >\n {{ n.title }}\n </div>\n </nav>\n </div>\n </div>\n <!-- 有效 -->\n <div\n v-if=\"k\"\n v-loading=\"isLoadingData\"\n element-loading-text=\"Loading...\"\n class=\"panel tc\"\n >\n <!-- 任务名 -->\n <h1 class=\"name\">\n {{ taskInfo.name }}\n </h1>\n <h2 v-if=\"disabledUpload\" style=\"color: red\">\n 任务存储空间容量已达到上限,已经无法进行上传,请联系发起人扩容空间\n </h2>\n <!-- 提示信息 -->\n <!-- 时间截止了也不再展示 -->\n <template v-if=\"tipData.text && (ddlStr ? !isOver : true)\">\n <el-divider>⚠️ 注意事项 ⚠️</el-divider>\n <Tip>\n <div class=\"tip-wrapper\">\n <p v-for=\"(t, i) in tipData.text.split('\\n')\" :key=\"i\">\n {{ t.replace(/\\s/g, '&nbsp;') }}\n </p>\n </div>\n </Tip>\n </template>\n <template v-if=\"imageList.length && (ddlStr ? !isOver : true)\">\n <el-image\n v-for=\"(img, idx) in imageList\"\n :key=\"img.uid\"\n hide-on-click-modal\n style=\"width: 100px; height: 100px; margin: 10px\"\n :src=\"img.url\"\n :zoom-rate=\"1.2\"\n :preview-src-list=\"imageList.map((v) => v.preview)\"\n :initial-index=\"idx\"\n fit=\"contain\"\n />\n </template>\n <!-- 截止时间字符串 -->\n <template v-if=\"ddlStr\">\n <el-divider>截止时间</el-divider>\n <h2 class=\"ddl\">\n {{ timeInfo }}\n </h2>\n <div v-if=\"isOver\">\n <el-empty description=\"已经结束啦!\" />\n </div>\n </template>\n <!-- 未设置ddl 或者 设置了还未结束 -->\n <div v-if=\"!ddlStr || !isOver\">\n <el-divider>必要信息填写</el-divider>\n <div class=\"infos\">\n <div v-show=\"taskMoreInfo.people\">\n <Tip>“{{ limitBindField }}”在参与名单里才能正常提交</Tip>\n </div>\n <div v-if=\"showValidForm\">\n <div class=\"infos\">\n <el-form\n ref=\"validModalRef\"\n :rules=\"validModalRules\"\n status-icon\n :model=\"validModal\"\n :disabled=\"disableForm\"\n label-position=\"top\"\n >\n <el-form-item prop=\"peopleName\" :label=\"limitBindField\">\n <el-input\n v-model=\"validModal.peopleName\"\n :maxlength=\"14\"\n clearable\n show-word-limit\n :placeholder=\"`请输入 ${limitBindField}`\"\n />\n </el-form-item>\n </el-form>\n </div>\n </div>\n <InfosForm :infos=\"infos\" :disabled=\"disableForm\" />\n </div>\n <el-upload\n ref=\"fileUpload\"\n v-model:file-list=\"fileList\"\n style=\"max-width: 400px; margin: 0 auto\"\n :drag=\"!isMobile\"\n action=\"\"\n :on-change=\"handleChangeFile\"\n :before-remove=\"handleRemoveFile\"\n :on-exceed=\"handleExceed\"\n :auto-upload=\"false\"\n multiple\n :limit=\"limitUploadCount\"\n >\n <el-button v-if=\"isMobile\" type=\"primary\">\n 选择文件\n </el-button>\n <template v-else>\n <el-icon class=\"el-icon--upload\">\n <UploadFilled />\n </el-icon>\n <div class=\"el-upload__text\">\n 将文件拖于此处 or <em>直接选择文件</em>\n </div>\n </template>\n <template #tip>\n <div v-show=\"!!calculateMd5Count\" class=\"p10\">\n <Tip>\n 还有\n {{ calculateMd5Count }}\n 个文件正在生成校验信息,请稍等(1G通常需要20s)\n </Tip>\n </div>\n </template>\n </el-upload>\n <div class=\"p10\">\n <el-button\n v-if=\"isWithdraw\"\n size=\"default\"\n type=\"warning\"\n :disabled=\"!allowWithdraw || !!calculateMd5Count\"\n @click=\"startWithdraw\"\n >\n 一键撤回\n </el-button>\n <el-button\n v-else-if=\"!disabledUpload\"\n size=\"default\"\n type=\"success\"\n :disabled=\"!allowUpload || !!calculateMd5Count\"\n @click=\"submitUpload\"\n >\n 提交文件\n </el-button>\n <el-button size=\"default\" @click=\"checkSubmitStatus\">\n 查询提交情况\n </el-button>\n </div>\n <!-- 提示信息 -->\n <div class=\"p10 option-tips\">\n <Tip v-if=\"formatData.status && formatData.format.length\">\n 限制格式为:\n <span style=\"color: red\">{{\n formatData.format.join(', ')\n }}</span>\n </Tip>\n <Tip v-if=\"formatData.size\">\n 限制文件大小不超过:\n <span style=\"color: red\">{{\n formatSize(formatData.size)\n }}</span>\n </Tip>\n <template v-if=\"isWithdraw\">\n <Tip>\n ① 须保证选择的文件与提交时的文件一致<br>\n ② 填写表单信息一致 <br>\n ③\n 完全一模一样的文件的提交记录(内容md5+命名),将会一次性全部撤回\n </Tip>\n </template>\n <template v-else>\n <Tip>\n <strong>查询提交情况,需填写和提交时一样的表单信息</strong>\n </Tip>\n <Tip>\n ① 选择完文件,点击 ”提交文件“即可 <br>\n ② <strong>选择大文件后需要等待一会儿才展示处理</strong>\n <template v-if=\"taskMoreInfo.template && !disabledUpload\">\n <br>\n ③\n <strong>\n <el-button\n type=\"primary\"\n text\n style=\"color: #85ce61\"\n size=\"small\"\n @click=\"downloadTemplate\"\n >右下角可 “查看提交示例”\n </el-button>\n </strong>\n </template>\n </Tip>\n </template>\n </div>\n <div class=\"withdraw\">\n <el-button\n v-if=\"taskMoreInfo.template && !disabledUpload\"\n type=\"primary\"\n text\n style=\"color: #85ce61\"\n size=\"small\"\n @click=\"downloadTemplate\"\n >\n 查看提交示例\n </el-button>\n <el-button\n v-if=\"isWithdraw\"\n size=\"small\"\n type=\"primary\"\n text\n @click=\"isWithdraw = false\"\n >\n 正常提交\n </el-button>\n <el-button\n v-else\n size=\"small\"\n type=\"primary\"\n text\n @click=\"isWithdraw = true\"\n >\n 我要撤回\n </el-button>\n </div>\n </div>\n </div>\n <!-- 无效任务 -->\n <div v-else class=\"panel tc\">\n <h1 class=\"name\">\n {{ taskInfo.name }}\n </h1>\n </div>\n <LinkDialog\n v-model:value=\"showLinkModel\"\n title=\"示例文件下载链接\"\n :link=\"templateLink\"\n />\n <div style=\"padding-top: 20px\">\n <HomeFooter type=\"task\" />\n </div>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n.task-panel :deep(ul.el-upload-list) {\n border: 1px dashed #d4d4d4;\n padding: 10px;\n\n &::before {\n content: '此处展示选择文件列表';\n font-size: 12px;\n position: relative;\n bottom: 4px;\n }\n}\n\n.task-panel :deep(.el-upload-list__item-name) {\n display: block;\n overflow: hidden;\n max-width: 290px;\n text-overflow: ellipsis;\n word-break: keep-all;\n}\n\n.task-panel :deep(.is-ready .el-icon--close) {\n display: block;\n color: black;\n}\n\n.task-panel {\n background-color: #f3f6f8;\n padding-bottom: 1rem;\n position: relative;\n}\n\n.pc-nav {\n background-color: #fff;\n display: flex;\n padding: 10px;\n justify-content: space-between;\n align-items: center;\n\n .exit {\n cursor: pointer;\n }\n\n .nav {\n display: flex;\n\n nav {\n display: flex;\n align-items: center;\n\n .nav-item {\n font-size: 1rem;\n color: #595959;\n padding: 10px;\n cursor: pointer;\n\n &.active {\n color: #409eff !important;\n font-weight: 600;\n }\n }\n }\n\n .exit {\n color: #595959;\n }\n }\n\n .logo {\n width: 180px;\n margin: 0 10px;\n\n img {\n height: 40px;\n }\n }\n}\n\n.panel {\n max-width: 1024px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n\n .name {\n text-align: center;\n }\n\n .ddl {\n margin-top: 10px;\n color: #919191;\n font-size: 14px;\n }\n\n .infos {\n max-width: 460px;\n margin: auto;\n overflow: hidden;\n :deep(div.el-form-item > label) {\n font-weight: bold;\n &::before {\n content: '* ';\n color: red;\n }\n }\n }\n}\n\n.withdraw {\n text-align: right;\n}\n\n.tip-wrapper {\n line-height: 20px;\n text-align: left;\n word-break: break-all;\n // max-height: 100px;\n overflow: hidden;\n padding: 0 20px;\n color: #e6a23c;\n max-width: 320px;\n font-size: 14px;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","name","_hoisted_1","viewBox","xmlns","_hoisted_3","createElementVNode","fill","d","uploadFilled","_export_sfc","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","isMobile","useIsMobile","$router","useRouter","$route","useRoute","pcNavs","reactive","title","path","taskInfo","category","taskMoreInfo","bindField","formatData","computed","parseFileFormat","format","k","ref","waitTime","isOver","value","waitTimeStr","seconds","hour","day","minute","refreshWaitTime","loop","ddl","date","Date","getTime","now","setTimeout","ddlStr","formatDate","infos","fileList","fileUpload","disableForm","filter","item","status","length","handleRemoveFile","file","ElMessageBox","confirm","then","ElMessage","info","subscription","unsubscribe","catch","isWriteFinish","every","limitBindField","trim","isSameFieldName","find","v","text","showValidForm","people","validModal","peopleName","validatePeopleName","rule","callback","message","Error","error","PeopleApi","checkPeopleIsExist","res","data","exist","validModalRef","validModalRules","validator","trigger","confirmPeopleName","Promise","resolve","validate","isValid","async","submitUpload","uploadFiles","md5","originName","rewrite","map","join","splitChar","getFileSuffix","normalizeFileName","key","FileApi","getUploadToken","qiniuUpload","token","raw","success","fsize","addFile","taskKey","taskName","size","hash","JSON","stringify","updatePeopleStatus","process","per","percentage","Math","floor","startUpload","warning","allowUpload","allowWithdraw","includes","calculateMd5Count","handleChangeFile","suffix","toLowerCase","endsWith","handleRemove","formatSize","getFileMd5Hash","str","limitUploadCount","limit","handleExceed","showLinkModel","templateLink","downloadTemplate","getTemplateUrl","template","link","downLoadByUrl","isWithdraw","startWithdraw","withdrawFile","filename","runWithdraw","checkSubmitStatus","isSubmit","isLoadingData","readyRefresh","isEqualInfos","a","b","i","type","children","refreshTaskMoreInfo","hot","TaskApi","getTaskMoreInfo","Object","assign","parseInfo","splice","push","handleBlur","handleFocus","timeInfo","tipData","imgs","imageList","watch","tip","parseData","parse","url","PublicApi","getTipImageUrl","uid","forEach","idx","cover","preview","disabledUpload","useLocalStorage","onMounted","params","getTaskInfo","limitUpload","alert","err","code","window","addEventListener","onUnmounted","removeEventListener","startsWith","location","href"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-legacy-Cbyz8WHA.js","sources":["../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.4.31_typescript@4.9.5_/node_modules/@element-plus/icons-vue/dist/es/upload-filled.mjs","../../src/pages/task/index.vue"],"sourcesContent":["import { defineComponent, openBlock, createElementBlock, createElementVNode } from 'vue';\nimport _export_sfc from './_virtual/plugin-vue_export-helper.mjs';\n\nconst _sfc_main = defineComponent({\n name: \"UploadFilled\"\n});\nconst _hoisted_1 = {\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M544 864V672h128L512 480 352 672h128v192H320v-1.6c-5.376.32-10.496 1.6-16 1.6A240 240 0 0 1 64 624c0-123.136 93.12-223.488 212.608-237.248A239.808 239.808 0 0 1 512 192a239.872 239.872 0 0 1 235.456 194.752c119.488 13.76 212.48 114.112 212.48 237.248a240 240 0 0 1-240 240c-5.376 0-10.56-1.28-16-1.6v1.6H544z\"\n}, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nvar uploadFilled = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { uploadFilled as default };\n","<script lang=\"ts\" setup>\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport type { FormInstance, UploadInstance, UploadUserFile } from 'element-plus'\nimport { computed, onMounted, onUnmounted, reactive, ref, watch } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport HomeFooter from '@components/HomeFooter/index.vue'\nimport LinkDialog from '@components/linkDialog.vue'\nimport { UploadFilled } from '@element-plus/icons-vue'\nimport { useStore } from 'vuex'\nimport { useLocalStorage } from '@vueuse/core'\nimport Tip from '../dashboard/tasks/components/infoPanel/tip.vue'\nimport {\n formatDate,\n formatSize,\n getFileMd5Hash,\n getFileSuffix,\n normalizeFileName,\n parseFileFormat,\n parseInfo,\n} from '@/utils/stringUtil'\nimport { downLoadByUrl, qiniuUpload } from '@/utils/networkUtil'\nimport { FileApi, PeopleApi, PublicApi, TaskApi } from '@/apis'\nimport InfosForm from '@/components/InfosForm/index.vue'\nimport { useIsMobile } from '@/composables'\n\nconst isMobile = useIsMobile()\n// 顶部导航\nconst $router = useRouter()\nconst $route = useRoute()\nconst pcNavs = reactive([\n {\n title: '我也要收集',\n path: 'https://docs.ep.sugarat.top/',\n },\n])\nfunction handleNav(idx: number) {\n if (pcNavs[idx].path.startsWith('http')) {\n window.location.href = pcNavs[idx].path\n return\n }\n $router.push({\n path: pcNavs[idx].path,\n })\n}\n\n// 任务基本信息展示\nconst taskInfo = reactive<TaskApiTypes.TaskInfo>({\n name: '',\n category: '',\n})\nconst taskMoreInfo = reactive<Partial<TaskApiTypes.TaskInfo>>({\n bindField: '',\n})\nconst formatData = computed(() => parseFileFormat(taskMoreInfo.format))\nconst k = ref('')\n\n// 用于展示截止日期\nconst waitTime = ref(0)\n// 判断是否结束\nconst isOver = computed(() => waitTime.value <= 0)\nconst waitTimeStr = computed(() => {\n let seconds = ~~(waitTime.value / 1000)\n let hour = ~~(seconds / (60 * 60))\n const day = ~~(hour / 24)\n hour %= 24\n const minute = ~~((seconds % 3600) / 60)\n seconds %= 60\n return `剩余${day}天${hour}时${minute}分${seconds}秒`\n})\nfunction refreshWaitTime(loop = true) {\n if (taskMoreInfo?.ddl) {\n const date = new Date(taskMoreInfo.ddl)\n waitTime.value = date.getTime() - Date.now()\n }\n else {\n waitTime.value = 0\n }\n if (loop) {\n setTimeout(() => {\n refreshWaitTime()\n }, 1000)\n }\n}\nconst ddlStr = computed(() => {\n if (taskMoreInfo?.ddl) {\n const date = new Date(taskMoreInfo.ddl)\n return formatDate(date)\n }\n return ''\n})\n\n// 必填信息\nconst infos = reactive<InfoItem[]>([])\n\n// 文件上传部分\n\n// 文件上传\nconst fileList = ref<(UploadUserFile & { md5: string, subscription: any })[]>(\n [],\n)\nconst fileUpload = ref<UploadInstance>()\nconst disableForm = computed(\n () => fileList.value.filter(item => item.status === 'uploading').length > 0,\n)\nconst handleRemoveFile: any = (file: any) => {\n if (file.status === 'uploading' || file.status === 'success') {\n return ElMessageBox.confirm(\n '不影响已经上传成功的,正在上传的将取消上传',\n '确定从列表移除文件吗?',\n )\n .then(() => {\n if (file.status === 'uploading') {\n ElMessage.info(`取消${file.name}的上传`)\n // 取消上传\n file.subscription.unsubscribe() // 取消上传\n }\n return true\n })\n .catch(() => false)\n }\n return true\n}\n\n// 校验表单填写\nconst isWriteFinish = computed(() => infos.every(item => item.value))\n// 提交文件\n\nconst limitBindField = computed(() => {\n return taskMoreInfo.bindField.trim() || '姓名'\n})\n\n// 身份核验表单\nconst isSameFieldName = computed(() =>\n infos.find(v => v.text === limitBindField.value),\n)\nconst showValidForm = computed(\n () => taskMoreInfo.people && !isSameFieldName.value,\n)\nconst validModal = reactive({\n peopleName: '',\n})\n\nfunction validatePeopleName(rule: any, value: any, callback: any) {\n if (!value) {\n const message = `请输入${limitBindField.value}`\n callback(new Error(message))\n ElMessage.error(message)\n return\n }\n // 异步校验\n PeopleApi.checkPeopleIsExist(k.value, value).then((res) => {\n if (!res.data.exist) {\n ElMessage.error('你不在此次提交名单中,如有疑问请联系管理员')\n }\n callback(\n res.data.exist\n ? undefined\n : new Error('你不在此次提交名单中,如有疑问请联系管理员'),\n )\n })\n}\n\nconst validModalRef = ref<FormInstance>()\nconst validModalRules = reactive({\n peopleName: [{ validator: validatePeopleName, trigger: 'blur' }],\n})\nfunction confirmPeopleName() {\n // 处理表单必填项含有 limitBindField 的情况\n if (isSameFieldName.value) {\n const value = infos.find(v => v.text === limitBindField.value)?.value\n validModal.peopleName = value || ''\n return new Promise((resolve) => {\n validatePeopleName(null, value, resolve)\n }).then(v => !v)\n }\n return validModalRef.value.validate((isValid: boolean) => isValid)\n}\n\nfunction startUpload() {\n const uploadFiles = fileList.value\n for (const file of uploadFiles) {\n if (!file.md5) {\n ElMessage.info(\n `文件(${file.name})的唯一指纹还在计算中,再等待一会儿再点击上传`,\n )\n setTimeout(() => {\n ElMessage.info('文件越大计算时间越长(1G通常需要20s)')\n }, 100)\n }\n else if (file.status === 'ready') {\n // 开始上传\n file.status = 'uploading'\n let { name } = file\n const originName = name\n // 如果开启了自动重命名,这里重命名一下\n if (taskMoreInfo.rewrite) {\n name\n = infos.map(v => v.value).join(formatData.value.splitChar || '-')\n + getFileSuffix(name)\n }\n // 替换不合法的字符\n name = normalizeFileName(name)\n const key = `easypicker2/${k.value}/${file.md5}/${name}`\n\n FileApi.getUploadToken().then((res) => {\n qiniuUpload(res.data.token, file.raw, key, {\n success(data: any) {\n const { fsize } = data\n FileApi.addFile({\n originName,\n name,\n taskKey: k.value,\n taskName: taskInfo.name,\n size: fsize,\n hash: file.md5,\n info: JSON.stringify(infos),\n people: validModal.peopleName,\n }).then(() => {\n file.status = 'success'\n ElMessage.success(`文件:${file.name}提交成功`)\n if (taskMoreInfo.people) {\n // 无感知更新一下\n PeopleApi.updatePeopleStatus(\n k.value,\n name,\n validModal.peopleName,\n file.md5,\n )\n }\n })\n },\n process(per: number, data: any, subscription: any) {\n file.percentage = Math.floor(per)\n // 挂载取消上传的方法\n file.subscription = subscription\n },\n })\n })\n }\n }\n}\n\nasync function submitUpload() {\n if (!isWriteFinish.value) {\n ElMessage.warning('请先完成必要信息的填写')\n return\n }\n\n if (taskMoreInfo.people) {\n const isValid = await confirmPeopleName()\n if (!isValid) {\n return\n }\n }\n startUpload()\n}\n\n// 是否允许上传\nconst allowUpload = computed(() => {\n for (const file of fileList.value) {\n if (file.status === 'ready') {\n return true\n }\n }\n return false\n})\n\n// 是否允许撤回\nconst allowWithdraw = computed(() => {\n for (const file of fileList.value) {\n if (['success', 'ready'].includes(file.status)) {\n return true\n }\n }\n return false\n})\n\n// 添加文件\n// 正在计算MD5值的文件个数\nconst calculateMd5Count = ref(0)\nfunction handleChangeFile(file: any) {\n // 校验文件后缀名\n const { name } = file\n if (formatData.value.format.length && formatData.value.status) {\n const suffix = getFileSuffix(name)\n if (\n !formatData.value.format.find(v => suffix.toLowerCase().endsWith(v))\n ) {\n ElMessage.error(`${name} 格式不符合要求`)\n fileUpload.value.handleRemove(file)\n return\n }\n }\n\n // 校验文件大小\n if (formatData.value.size && formatData.value.size < file.size) {\n ElMessage.error(`${name} 大小${formatSize(file.size)} 不符合要求`)\n fileUpload.value.handleRemove(file)\n return\n }\n\n calculateMd5Count.value += 1\n // 计算md5 hash\n getFileMd5Hash(file.raw).then((str) => {\n file.md5 = str\n calculateMd5Count.value -= 1\n })\n}\n\nconst limitUploadCount = computed(() => formatData.value.limit || 10)\nfunction handleExceed() {\n ElMessage.warning(\n `一次提交最多只能选择${limitUploadCount.value}个文件,请移除已经上传成功的或刷新页面`,\n )\n}\nconst showLinkModel = ref(false)\nconst templateLink = ref('')\nfunction runWithdraw() {\n const uploadFiles = fileList.value\n for (const file of uploadFiles) {\n if (!file.md5) {\n ElMessage.info(\n `文件(${file.name})的唯一指纹还在计算中,再等待一会儿再点击上传`,\n )\n setTimeout(() => {\n ElMessage.info('文件越大计算时间越长(1G通常需要20s)')\n }, 100)\n }\n else if (!['fail', 'uploading'].includes(file.status)) {\n // 准备开始撤回\n let { name } = file\n\n // 如果开启了自动重命名,这里重命名一下\n if (taskMoreInfo.rewrite) {\n name\n = infos.map(v => v.value).join(formatData.value.splitChar || '-')\n + getFileSuffix(name)\n }\n\n FileApi.withdrawFile({\n taskKey: k.value,\n taskName: taskInfo.name,\n filename: name,\n hash: file.md5,\n info: JSON.stringify(infos),\n peopleName: validModal.peopleName,\n })\n .then(() => {\n ElMessage.success(`文件:${file.name}撤回成功`)\n file.name += ' - (已撤回 ✅ )'\n file.status = 'fail'\n })\n .catch(() => {\n ElMessage.error(`撤回失败: 没有文件:${file.name}对应提交记录`)\n })\n }\n }\n}\nfunction downloadTemplate() {\n FileApi.getTemplateUrl(taskMoreInfo.template, k.value)\n .then((res) => {\n showLinkModel.value = true\n const { link } = res.data\n templateLink.value = link\n downLoadByUrl(link, taskMoreInfo.template)\n })\n .catch(() => {\n ElMessage.warning('文件已从服务器上移除,请联系管理员重新上传')\n })\n}\n\n// 撤回相关逻辑\nconst isWithdraw = ref(false)\nasync function startWithdraw() {\n // 校验表单填写\n if (!isWriteFinish.value) {\n ElMessage.warning('请先完成必要信息的填写')\n return\n }\n if (taskMoreInfo.people) {\n const isValid = await confirmPeopleName()\n if (!isValid) {\n return\n }\n }\n runWithdraw()\n}\n\n// 查询提交情况\nasync function checkSubmitStatus() {\n // 校验表单填写\n if (!isWriteFinish.value) {\n ElMessage.warning('请先完成必要信息的填写,需和提交时信息完全一致')\n return\n }\n // 卡控人员限制\n if (taskMoreInfo.people) {\n const isValid = await confirmPeopleName()\n if (!isValid) {\n return\n }\n }\n FileApi.checkSubmitStatus(k.value, infos, validModal.peopleName).then(\n (res) => {\n if (res.data.isSubmit) {\n ElMessage.success('已经提交过啦')\n }\n else {\n ElMessage.warning('还未提交过哟')\n }\n },\n )\n}\nconst isLoadingData = ref(false)\nconst readyRefresh = ref(false)\nfunction isEqualInfos(a: InfoItem[] = [], b: InfoItem[] = []) {\n if (a.length !== b.length) {\n return false\n }\n return a.every(\n (v, i) =>\n v.type === b[i].type\n && v.text === b[i].text\n && isEqualInfos(v.children, b[i].children),\n )\n}\nfunction refreshTaskMoreInfo(hot = false) {\n TaskApi.getTaskMoreInfo(k.value).then((res) => {\n Object.assign(taskMoreInfo, res.data)\n if (!isEqualInfos(infos, parseInfo(taskMoreInfo.info))) {\n infos.splice(0, infos.length)\n infos.push(...parseInfo(taskMoreInfo.info))\n if (hot) {\n ElMessage.success('表单信息有更新')\n }\n }\n refreshWaitTime(false)\n isLoadingData.value = false\n })\n}\nfunction handleBlur() {\n readyRefresh.value = true\n}\nfunction handleFocus() {\n if (readyRefresh.value && !disableForm.value) {\n readyRefresh.value = false\n refreshTaskMoreInfo(true)\n }\n}\n\n// 展示的时间提示文案\nconst timeInfo = computed(() => {\n if (!isOver.value) {\n return ddlStr.value + waitTimeStr.value\n }\n return ddlStr.value\n})\n\n// tipImage\nconst tipData = reactive<{\n text: string\n imgs: {\n uid: number\n name: string\n }[]\n}>({\n text: '',\n imgs: [],\n})\nconst imageList = ref<\n { name: string, uid: number, preview?: string, url: string }[]\n>([])\n\nwatch(\n () => taskMoreInfo.tip,\n () => {\n // 初始化\n try {\n const parseData = JSON.parse(taskMoreInfo.tip)\n tipData.imgs = parseData.imgs\n tipData.text = parseData.text || ''\n imageList.value = tipData.imgs.map((v) => {\n return {\n ...v,\n url: 'https://img.cdn.sugarat.top/mdImg/MTY3NzkxMDI1NTU1Nw==20140524124237518.gif',\n }\n })\n if (imageList.value.length) {\n // 异步填充url\n PublicApi.getTipImageUrl(\n k.value,\n imageList.value.map(v => ({\n uid: v.uid,\n name: v.name,\n })),\n ).then((v) => {\n v.data.forEach((url, idx) => {\n imageList.value[idx].url = url.cover\n Object.assign(imageList.value[idx], {\n preview: url.preview,\n })\n })\n })\n }\n }\n catch {\n tipData.text = ''\n tipData.imgs = []\n imageList.value = []\n }\n },\n)\n\n// 禁用上传\nconst disabledUpload = useLocalStorage('disabledUpload', false)\n\nonMounted(() => {\n k.value = $route.params.key as string\n if (k.value) {\n isLoadingData.value = true\n TaskApi.getTaskInfo(k.value)\n .then((res) => {\n Object.assign(taskInfo, res.data)\n disabledUpload.value = !!res.data.limitUpload\n if (disabledUpload.value) {\n ElMessageBox.alert(\n '任务存储空间容量已达到上限,已经无法进行上传,请联系发起人扩容空间',\n )\n }\n })\n .catch((err) => {\n if (err.code === 4001) {\n ElMessage.error('任务不存在')\n k.value = ''\n taskInfo.name = '任务不存在'\n }\n })\n refreshTaskMoreInfo()\n refreshWaitTime()\n }\n // 页面隐藏\n window.addEventListener('blur', handleBlur)\n\n // 页面展示\n window.addEventListener('focus', handleFocus)\n})\n\nonUnmounted(() => {\n // 页面隐藏\n window.removeEventListener('blur', handleBlur)\n // 页面展示\n window.removeEventListener('focus', handleFocus)\n})\n</script>\n\n<template>\n <div class=\"task-panel\">\n <div class=\"pc-nav\">\n <div class=\"nav\">\n <!-- LOGO -->\n <div class=\"logo\">\n <router-link to=\"/\">\n <img\n style=\"height: 40px; width: 170px\"\n src=\"https://img.cdn.sugarat.top/easypicker/EasyPicker.png\"\n alt=\"logo\"\n >\n </router-link>\n </div>\n <nav>\n <div\n v-for=\"(n, idx) in pcNavs\"\n :key=\"idx\"\n class=\"nav-item\"\n @click=\"handleNav(idx)\"\n >\n {{ n.title }}\n </div>\n </nav>\n </div>\n </div>\n <!-- 有效 -->\n <div\n v-if=\"k\"\n v-loading=\"isLoadingData\"\n element-loading-text=\"Loading...\"\n class=\"panel tc\"\n >\n <!-- 任务名 -->\n <h1 class=\"name\">\n {{ taskInfo.name }}\n </h1>\n <h2 v-if=\"disabledUpload\" style=\"color: red\">\n 任务存储空间容量已达到上限,已经无法进行上传,请联系发起人扩容空间\n </h2>\n <!-- 提示信息 -->\n <!-- 时间截止了也不再展示 -->\n <template v-if=\"tipData.text && (ddlStr ? !isOver : true)\">\n <el-divider>⚠️ 注意事项 ⚠️</el-divider>\n <Tip>\n <div class=\"tip-wrapper\">\n <p v-for=\"(t, i) in tipData.text.split('\\n')\" :key=\"i\">\n {{ t.replace(/\\s/g, '&nbsp;') }}\n </p>\n </div>\n </Tip>\n </template>\n <template v-if=\"imageList.length && (ddlStr ? !isOver : true)\">\n <el-image\n v-for=\"(img, idx) in imageList\"\n :key=\"img.uid\"\n hide-on-click-modal\n style=\"width: 100px; height: 100px; margin: 10px\"\n :src=\"img.url\"\n :zoom-rate=\"1.2\"\n :preview-src-list=\"imageList.map((v) => v.preview)\"\n :initial-index=\"idx\"\n fit=\"contain\"\n />\n </template>\n <!-- 截止时间字符串 -->\n <template v-if=\"ddlStr\">\n <el-divider>截止时间</el-divider>\n <h2 class=\"ddl\">\n {{ timeInfo }}\n </h2>\n <div v-if=\"isOver\">\n <el-empty description=\"已经结束啦!\" />\n </div>\n </template>\n <!-- 未设置ddl 或者 设置了还未结束 -->\n <div v-if=\"!ddlStr || !isOver\">\n <el-divider>必要信息填写</el-divider>\n <div class=\"infos\">\n <div v-show=\"taskMoreInfo.people\">\n <Tip>“{{ limitBindField }}”在参与名单里才能正常提交</Tip>\n </div>\n <div v-if=\"showValidForm\">\n <div class=\"infos\">\n <el-form\n ref=\"validModalRef\"\n :rules=\"validModalRules\"\n status-icon\n :model=\"validModal\"\n :disabled=\"disableForm\"\n label-position=\"top\"\n >\n <el-form-item prop=\"peopleName\" :label=\"limitBindField\">\n <el-input\n v-model=\"validModal.peopleName\"\n :maxlength=\"14\"\n clearable\n show-word-limit\n :placeholder=\"`请输入 ${limitBindField}`\"\n />\n </el-form-item>\n </el-form>\n </div>\n </div>\n <InfosForm :infos=\"infos\" :disabled=\"disableForm\" />\n </div>\n <el-upload\n ref=\"fileUpload\"\n v-model:file-list=\"fileList\"\n style=\"max-width: 400px; margin: 0 auto\"\n :drag=\"!isMobile\"\n action=\"\"\n :on-change=\"handleChangeFile\"\n :before-remove=\"handleRemoveFile\"\n :on-exceed=\"handleExceed\"\n :auto-upload=\"false\"\n multiple\n :limit=\"limitUploadCount\"\n >\n <el-button v-if=\"isMobile\" type=\"primary\">\n 选择文件\n </el-button>\n <template v-else>\n <el-icon class=\"el-icon--upload\">\n <UploadFilled />\n </el-icon>\n <div class=\"el-upload__text\">\n 将文件拖于此处 or <em>直接选择文件</em>\n </div>\n </template>\n <template #tip>\n <div v-show=\"!!calculateMd5Count\" class=\"p10\">\n <Tip>\n 还有\n {{ calculateMd5Count }}\n 个文件正在生成校验信息,请稍等(1G通常需要20s)\n </Tip>\n </div>\n </template>\n </el-upload>\n <div class=\"p10\">\n <el-button\n v-if=\"isWithdraw\"\n size=\"default\"\n type=\"warning\"\n :disabled=\"!allowWithdraw || !!calculateMd5Count\"\n @click=\"startWithdraw\"\n >\n 一键撤回\n </el-button>\n <el-button\n v-else-if=\"!disabledUpload\"\n size=\"default\"\n type=\"success\"\n :disabled=\"!allowUpload || !!calculateMd5Count\"\n @click=\"submitUpload\"\n >\n 提交文件\n </el-button>\n <el-button size=\"default\" @click=\"checkSubmitStatus\">\n 查询提交情况\n </el-button>\n </div>\n <!-- 提示信息 -->\n <div class=\"p10 option-tips\">\n <Tip v-if=\"formatData.status && formatData.format.length\">\n 限制格式为:\n <span style=\"color: red\">{{\n formatData.format.join(', ')\n }}</span>\n </Tip>\n <Tip v-if=\"formatData.size\">\n 限制文件大小不超过:\n <span style=\"color: red\">{{\n formatSize(formatData.size)\n }}</span>\n </Tip>\n <template v-if=\"isWithdraw\">\n <Tip>\n ① 须保证选择的文件与提交时的文件一致<br>\n ② 填写表单信息一致 <br>\n ③\n 完全一模一样的文件的提交记录(内容md5+命名),将会一次性全部撤回\n </Tip>\n </template>\n <template v-else>\n <Tip>\n <strong>查询提交情况,需填写和提交时一样的表单信息</strong>\n </Tip>\n <Tip>\n ① 选择完文件,点击 ”提交文件“即可 <br>\n ② <strong>选择大文件后需要等待一会儿才展示处理</strong>\n <template v-if=\"taskMoreInfo.template && !disabledUpload\">\n <br>\n ③\n <strong>\n <el-button\n type=\"primary\"\n text\n style=\"color: #85ce61\"\n size=\"small\"\n @click=\"downloadTemplate\"\n >右下角可 “查看提交示例”\n </el-button>\n </strong>\n </template>\n </Tip>\n </template>\n </div>\n <div class=\"withdraw\">\n <el-button\n v-if=\"taskMoreInfo.template && !disabledUpload\"\n type=\"primary\"\n text\n style=\"color: #85ce61\"\n size=\"small\"\n @click=\"downloadTemplate\"\n >\n 查看提交示例\n </el-button>\n <el-button\n v-if=\"isWithdraw\"\n size=\"small\"\n type=\"primary\"\n text\n @click=\"isWithdraw = false\"\n >\n 正常提交\n </el-button>\n <el-button\n v-else\n size=\"small\"\n type=\"primary\"\n text\n @click=\"isWithdraw = true\"\n >\n 我要撤回\n </el-button>\n </div>\n </div>\n </div>\n <!-- 无效任务 -->\n <div v-else class=\"panel tc\">\n <h1 class=\"name\">\n {{ taskInfo.name }}\n </h1>\n </div>\n <LinkDialog\n v-model:value=\"showLinkModel\"\n title=\"示例文件下载链接\"\n :link=\"templateLink\"\n />\n <div style=\"padding-top: 20px\">\n <HomeFooter type=\"task\" />\n </div>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n.task-panel :deep(ul.el-upload-list) {\n border: 1px dashed #d4d4d4;\n padding: 10px;\n\n &::before {\n content: '此处展示选择文件列表';\n font-size: 12px;\n position: relative;\n bottom: 4px;\n }\n}\n\n.task-panel :deep(.el-upload-list__item-name) {\n display: block;\n overflow: hidden;\n max-width: 290px;\n text-overflow: ellipsis;\n word-break: keep-all;\n}\n\n.task-panel :deep(.is-ready .el-icon--close) {\n display: block;\n color: black;\n}\n\n.task-panel {\n background-color: #f3f6f8;\n padding-bottom: 1rem;\n position: relative;\n}\n\n.pc-nav {\n background-color: #fff;\n display: flex;\n padding: 10px;\n justify-content: space-between;\n align-items: center;\n\n .exit {\n cursor: pointer;\n }\n\n .nav {\n display: flex;\n\n nav {\n display: flex;\n align-items: center;\n\n .nav-item {\n font-size: 1rem;\n color: #595959;\n padding: 10px;\n cursor: pointer;\n\n &.active {\n color: #409eff !important;\n font-weight: 600;\n }\n }\n }\n\n .exit {\n color: #595959;\n }\n }\n\n .logo {\n width: 180px;\n margin: 0 10px;\n\n img {\n height: 40px;\n }\n }\n}\n\n.panel {\n max-width: 1024px;\n padding: 1em;\n background-color: #fff;\n margin: 10px auto;\n box-sizing: border-box;\n box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);\n border-radius: 4px;\n\n .name {\n text-align: center;\n }\n\n .ddl {\n margin-top: 10px;\n color: #919191;\n font-size: 14px;\n }\n\n .infos {\n max-width: 460px;\n margin: auto;\n overflow: hidden;\n :deep(div.el-form-item > label) {\n font-weight: bold;\n &::before {\n content: '* ';\n color: red;\n }\n }\n }\n}\n\n.withdraw {\n text-align: right;\n}\n\n.tip-wrapper {\n line-height: 20px;\n text-align: left;\n word-break: break-all;\n // max-height: 100px;\n overflow: hidden;\n padding: 0 20px;\n color: #e6a23c;\n max-width: 320px;\n font-size: 14px;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","name","_hoisted_1","viewBox","xmlns","_hoisted_3","createElementVNode","fill","d","uploadFilled","_export_sfc","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","isMobile","useIsMobile","$router","useRouter","$route","useRoute","pcNavs","reactive","title","path","taskInfo","category","taskMoreInfo","bindField","formatData","computed","parseFileFormat","format","k","ref","waitTime","isOver","value","waitTimeStr","seconds","hour","day","minute","refreshWaitTime","loop","ddl","date","Date","getTime","now","setTimeout","ddlStr","formatDate","infos","fileList","fileUpload","disableForm","filter","item","status","length","handleRemoveFile","file","ElMessageBox","confirm","then","ElMessage","info","subscription","unsubscribe","catch","isWriteFinish","every","limitBindField","trim","isSameFieldName","find","v","text","showValidForm","people","validModal","peopleName","validatePeopleName","rule","callback","message","Error","error","PeopleApi","checkPeopleIsExist","res","data","exist","validModalRef","validModalRules","validator","trigger","confirmPeopleName","Promise","resolve","validate","isValid","async","submitUpload","uploadFiles","md5","originName","rewrite","map","join","splitChar","getFileSuffix","normalizeFileName","key","FileApi","getUploadToken","qiniuUpload","token","raw","success","fsize","addFile","taskKey","taskName","size","hash","JSON","stringify","updatePeopleStatus","process","per","percentage","Math","floor","startUpload","warning","allowUpload","allowWithdraw","includes","calculateMd5Count","handleChangeFile","suffix","toLowerCase","endsWith","handleRemove","formatSize","getFileMd5Hash","str","limitUploadCount","limit","handleExceed","showLinkModel","templateLink","downloadTemplate","getTemplateUrl","template","link","downLoadByUrl","isWithdraw","startWithdraw","withdrawFile","filename","runWithdraw","checkSubmitStatus","isSubmit","isLoadingData","readyRefresh","isEqualInfos","a","b","i","type","children","refreshTaskMoreInfo","hot","TaskApi","getTaskMoreInfo","Object","assign","parseInfo","splice","push","handleBlur","handleFocus","timeInfo","tipData","imgs","imageList","watch","tip","parseData","parse","url","PublicApi","getTipImageUrl","uid","forEach","idx","cover","preview","disabledUpload","useLocalStorage","onMounted","params","getTaskInfo","limitUpload","alert","err","code","window","addEventListener","onUnmounted","removeEventListener","startsWith","location","href"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- System.register(["./index-legacy-BLKO-78a.js","./el-loading-legacy-CRJF51cp.js","./el-form-item-legacy-CcX_hnMk.js","./el-dialog-legacy-u4KST5yo.js","./tip-legacy-DpAPUNpm.js","./el-pagination-legacy-C2E-fHif.js","./el-select-legacy-D4o92tvp.js","./el-table-column-legacy-C8A33Lav.js","./el-switch-legacy-D1AVOg2z.js","./el-dropdown-item-legacy-B2fmSGnI.js","./index-legacy-pP3Pmgbs.js","./index-legacy-C-gHf8SN.js","./refresh-legacy-CchIU9Mh.js","./data-analysis-legacy-CrjrJgyN.js","./index-legacy-2f3kE3Xe.js","./isEqual-legacy-4dmPHJnc.js","./index-legacy-6cMsZS3c.js","./validator-legacy-CN5REdqi.js","./aria-legacy-B70JmEZA.js"],(function(e,a){"use strict";var l,t,n,o,i,s,r,u,d,c,p,m,f,v,g,h,y,w,x,k,_,b,C,z,V,E,S,$,j,D,T,U,I,L,N,M,A,F,B,O,H,q,W,J,R,P,G,X,Z,K,Q,Y,ee,ae,le,te,ne,oe,ie,se,re,ue,de,ce,pe,me,fe,ve,ge,he;return{setters:[e=>{l=e.a4,t=e.g,n=e.d,o=e.a,i=e.c,s=e.b,r=e.Z,u=e.O,d=e.a5,c=e.o,p=e.U,m=e.a6,f=e.h,v=e.a1,g=e.r,h=e.a7,y=e.j,w=e.w,x=e.F,k=e.C,_=e.D,b=e.e,C=e.k,z=e.a8,V=e.s,E=e.a9,S=e.t,$=e.S,j=e.aa,D=e.ab,T=e.H,U=e.E,I=e.ac,L=e.ad,N=e.ae,M=e.af,A=e.ag,F=e.x,B=e.v,O=e.I,H=e.ah,q=e.p,W=e.f,J=e._},e=>{R=e.v},e=>{P=e.E,G=e.a},e=>{X=e.u,Z=e.E},e=>{K=e.T,Q=e.E},e=>{Y=e.s,ee=e.E},e=>{ae=e.E,le=e.a},e=>{te=e.E,ne=e.a},e=>{oe=e.E},e=>{ie=e.a,se=e.E,re=e.b,ue=e.c},e=>{de=e.I,ce=e.L},e=>{pe=e.A,me=e.D,fe=e.f},e=>{ve=e.r},e=>{ge=e.d},e=>{he=e.E},null,null,null,null],execute:function(){var a=document.createElement("style");a.textContent=".warnColor[data-v-74595087]{color:#f56c6c}.files[data-v-74595087]{max-width:1024px;margin:0 auto;padding-bottom:2em}@media screen and (max-width: 700px){.files[data-v-74595087]{margin-top:70px}.text-btns[data-v-74595087]{display:flex;flex-direction:column}.text-btns[data-v-74595087] .el-button{margin-left:0;margin-bottom:0}.header[data-v-74595087]{justify-content:center}.export-btns[data-v-74595087]{display:flex;flex-wrap:wrap;justify-content:space-around}}.panel[data-v-74595087]{padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px;z-index:1}.panel .label[data-v-74595087]{font-size:12px;margin-right:10px}.header[data-v-74595087]{display:flex;flex-wrap:wrap}.header .item[data-v-74595087]{margin-right:10px;margin-bottom:10px}.el-button[data-v-74595087]{margin-left:10px;margin-bottom:10px}.control-item[data-v-74595087]{margin-left:10px;margin-bottom:10px;font-size:14px}.imageLoading[data-v-74595087]{display:flex;align-items:center;justify-content:center;height:100%}.imageDes[data-v-74595087]{position:absolute;bottom:80px;color:#fff;left:50%;transform:translate(-50%)}.progress-list[data-v-74595087]{margin-top:10px}.progress-list .progress-item[data-v-74595087]{margin-bottom:10px;text-align:center}.progress-list .progress-item .progress[data-v-74595087]{display:flex;justify-content:center;align-items:center;margin-bottom:6px}.progress-list .progress-item .progress .el-progress--line[data-v-74595087]{min-width:200px;width:260px}.progress-list .progress-item .progress .el-button[data-v-74595087]{margin:0 6px}.progress-list .progress-item .des[data-v-74595087]{font-size:12px}.progress-list .progress-item .des .filename[data-v-74595087]{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;margin-right:10px}.progress-list .progress-item .des .mimeType[data-v-74595087]{width:60px;color:#409eff}.money-detail[data-v-74595087]{color:#409eff;cursor:pointer}\n",document.head.appendChild(a);const ye={getDownloadActions:function(e,a,t=[]){return l.post("/action/download/list",{pageSize:e,pageIndex:a,extraIds:t})}},we=n({name:"Download"}),xe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ke=[s("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64v450.304z"},null,-1)];var _e=t(we,[["render",function(e,a,l,t,n,s){return o(),i("svg",xe,ke)}]]);const be=n({name:"Picture"}),Ce={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ze=[s("path",{fill:"currentColor",d:"M160 160v704h704V160H160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32z"},null,-1),s("path",{fill:"currentColor",d:"M384 288q64 0 64 64t-64 64q-64 0-64-64t64-64zM185.408 876.992l-50.816-38.912L350.72 556.032a96 96 0 0 1 134.592-17.856l1.856 1.472 122.88 99.136a32 32 0 0 0 44.992-4.864l216-269.888 49.92 39.936-215.808 269.824-.256.32a96 96 0 0 1-135.04 14.464l-122.88-99.072-.64-.512a32 32 0 0 0-44.8 5.952L185.408 876.992z"},null,-1)];var Ve=t(be,[["render",function(e,a,l,t,n,s){return o(),i("svg",Ce,ze)}]]);const Ee=e=>(q("data-v-74595087"),e=e(),W(),e),Se={class:"files"},$e={class:"panel header"},je={class:"item"},De=Ee((()=>s("span",{class:"label"},"分类",-1))),Te={class:"item"},Ue=Ee((()=>s("span",{class:"label"},"任务",-1))),Ie={class:"item"},Le={class:"item"},Ne={class:"panel"},Me={class:"export-btns flex fac"},Ae={class:"control-item"},Fe={class:"control-item"},Be={class:"control-item"},Oe={class:"control-item"},He={class:"panel"},qe={"element-loading-text":"...",style:{"--el-loading-spinner-size":"20px"}},We={class:"panel"},Je={key:0},Re={key:1},Pe={key:2},Ge={key:0},Xe={key:1},Ze={key:2},Ke={key:3},Qe={class:"flex fc"},Ye={class:"panel"},ea=[Ee((()=>s("span",null,"查看详细",-1)))],aa=Ee((()=>s("h2",{style:{color:"#f56c6c"}}," 空间超限将无法上传/下载文件,如需要使用,请联系管理员扩容,或自行删除无关文件 ",-1))),la=Ee((()=>s("strong",null,[b("如果你觉得应用不错,"),s("a",{style:{color:"#409eff"},href:"http://docs.ep.sugarat.top/praise/index.html",target:"_blank",rel:"noopener noreferrer"},"给他发电⚡")],-1))),ta={key:0},na=Ee((()=>s("a",{style:{color:"#409eff"},href:"https://docs.ep.sugarat.top/author.html#%E8%81%94%E7%B3%BB%E4%BD%9C%E8%80%85",target:"_blank",rel:"noopener noreferrer"},"联系作者🔗",-1))),oa=Ee((()=>s("h3",{style:{color:"#f56c6c"}}," 由于部分用户用量较大,小站无法承担这笔开销,限制每个账户为 2GB 可用空间,2¥的默认余额 ",-1))),ia=Ee((()=>s("h3",null,[s("span",{style:{color:"#f56c6c"}},[b("你可以通过"),s("a",{style:{color:"#409eff"},href:"https://docs.ep.sugarat.top/author.html#%E8%81%94%E7%B3%BB%E4%BD%9C%E8%80%85",target:"_blank",rel:"noopener noreferrer"}," 联系作者进行赞助⚡ "),b("增加空间 或 充值余额")]),b(", "),s("strong",null,[s("a",{style:{color:"#409eff"},href:"https://docs.ep.sugarat.top/",target:"_blank",rel:"noopener noreferrer"},"也可以选择自己搭建💡 ")])],-1))),sa={class:"imageDes"},ra=Ee((()=>s("div",{class:"imageLoading"}," Loading... ",-1))),ua={class:"imageLoading"},da={class:"text-btns"},ca={class:"panel flex fc"};e("default",J(n({__name:"index",setup(e){const{value:a}=m(),l=u((()=>a.value.openPraise)),{limitDownload:t,spaceUsageText:n,moneyUsageText:q,limitSpace:W,limitWallet:J,priceText:we}=function(){const e=r({size:0,usage:0,limitUpload:!1,wallet:"0:00",cost:"0.00",limitSpace:!1,limitWallet:!1,price:{storage:"0:00",download:"0:00"}}),a=u((()=>e.usage)),l=u((()=>e.size)),t=u((()=>`${(e.usage/e.size*100).toFixed(2)}%`)),n=u((()=>`${(+e.cost/+e.wallet*100).toFixed(2)}%`)),o=u((()=>e.limitUpload)),i=u((()=>e.limitSpace)),s=u((()=>e.limitWallet)),m=u((()=>`空间 ${t.value}: ${d(e.usage)} / ${d(e.size)}`)),f=u((()=>`钱包 ${n.value}: ${e.cost} / ${e.wallet}¥`)),v=u((()=>`存储 ${e.price.storage}¥ + 下载 ${e.price.download}¥`));return c((()=>{p.usage().then((a=>{Object.assign(e,a.data)}))})),{usage:a,size:l,percentage:t,limitDownload:o,limitSpace:i,limitWallet:s,spaceUsageText:m,moneyUsageText:f,priceText:v}}(),xe=f(),ke=v(),be=g(!1),Ce=g(""),ze=g("true"===localStorage.getItem("ep-show-images")),Ee=g(!0),pa=g(!1),ma=g(!1),fa=r({actions:[],pageSize:3,pageCount:0,pageCurrent:1,pageTotal:0,compressTask:[]});function va(){const e=JSON.parse(localStorage.getItem("ep_compress_task")||"[]");fa.compressTask=e,ye.getDownloadActions(fa.pageSize,fa.pageCurrent,e.map((e=>e.id))).then((a=>{const{actions:l,sum:t}=a.data,n=!!l.find((e=>e.status===me.ARCHIVE));l.filter((e=>e.type===pe.Compress)).forEach((a=>{const l=e.findIndex((e=>e.id===a.id));a.status===me.SUCCESS&&-1!==l&&(Ce.value=a.url,be.value=!0,j(a.url),e.splice(l,1)),a.status===me.ARCHIVE&&-1===l&&e.push(a),a.status===me.FAIL&&-1!==l&&e.splice(l,1)})),fa.compressTask=e,localStorage.setItem("ep_compress_task",JSON.stringify(e)),n&&setTimeout(va,1e3),fa.pageTotal=t,fa.actions=l,fa.pageCount=Math.ceil(t/fa.pageSize)}))}function ga(e){fa.pageCurrent=e,va()}const ha=u((()=>xe.state.category.categoryList)),ya=g("all"),wa=u((()=>xe.state.task.taskList)),xa=g("all"),ka=u((()=>"all"===ya.value?wa.value:(xa.value="all",wa.value.filter((e=>e.category===ya.value))))),_a=u((()=>{const e=ka.value.find((e=>e.key===xa.value));return e?.name}));function ba(e,a){if(0===e.length)return void U.warning("表格中没有可导出的内容");const l=["提交时间","任务","文件名","大小"];pa.value&&l.push("原文件名"),Ee.value&&l.push("姓名");const t=l.map((e=>({value:e,row:2}))),n=e.reduce(((e,a)=>{try{JSON.parse(a.info).forEach((a=>{e.includes(a.text)||e.push(a.text)}))}catch(l){U.error({message:`数据异常${a.name},可联系平台管理员处理`,duration:5e3}),console.log(a)}return e}),[]);t.push({value:"提交信息",col:n.length});const o=e.map((e=>{const{date:a,task_name:l,name:t,size:o,people:i}=e;try{const s=JSON.parse(e.info).reduce(((e,a)=>(e[a.text]=`${a.value}`,e)),{}),r=n.map((e=>s[e]??"-")),u=[V(new Date(a)),l,t,d(o)];return pa.value&&u.push(e.origin_name||"-"),Ee.value&&u.push(i||"-"),u.push(...r),u}catch(s){U.error({message:`数据异常${e.name},可联系平台管理员处理`,duration:5e3}),console.log(e)}return[]})).filter((e=>!!e.length));o.unshift(n);const i=a||`数据导出_${V(new Date,"yyyy年MM月日hh时mm分ss秒")}.xlsx`,s=_a.value?`${I(_a.value)}_${i}`:i;L(t,o,s),U.success("导出成功")}h((()=>{wa.value.length&&wa.value.some((e=>e.key===ke.query.task))&&(xa.value=`${ke.query.task}`)}));const Ca=g(!1),za=r([]);function Va(){Ca.value=!0,za.splice(0,za.length),N.getFileList().then((e=>{za.push(...e.data.files),Ca.value=!1}))}const Ea=g(),Sa=g(""),$a=u((()=>za.filter((e=>"no-task"===ya.value?wa.value.every((a=>a.key!==e.task_key)):0!==ka.value.length&&("all"===xa.value?ka.value.find((a=>a.key===e.task_key)):xa.value===e.task_key))).filter((e=>!Sa.value||JSON.stringify([V(new Date(e.date)),d(e.size),e.people,e.name,e.task_name,e.info]).replace(/[:'"{},[\]]/g,"").includes(Sa.value))))),ja=r([]);function Da(e){ja.splice(0,ja.length),ja.push(...e)}const Ta=g(!1);function Ua(e){const a=ja.map((e=>e.id));switch(e){case"download":if(t.value)return void U.error("下载功能已被限制,请联系管理员扩容,或自行删除历史无用文件");if(0===ja.length)return void U.warning("没有选中需要下载的内容");if(Ta.value)return void U.warning("已经有批量下载任务正在进行,请稍后再试");N.batchDownload(a,`批量下载_${V(new Date,"yyyy年MM月日hh时mm分ss秒")}`).then((()=>{va()})).catch((()=>{U.error("所选文件均已从服务器上移除"),Ta.value=!1})),U.info("开始归档选中的文件,请赖心等待");break;case"delete":if(0===ja.length)return void U.warning("没有选中需要删除的内容");he.confirm("删除后无法恢复,是否删除","数据无价,请谨慎操作").then((()=>{N.batchDel(a).then((()=>{za.splice(0,za.length,...za.filter((e=>!a.includes(e.id)))),U.success("删除成功")}))})).catch((()=>{U.info("取消")}));break;case"excel":if(0===ja.length)return void U.warning("没有选中需要导出的内容");ba(ja,`批量导出_${V(new Date,"yyyy年MM月日hh时mm分ss秒")}.xlsx`),U.success("导出成功")}Ea.value.clearSelection()}const Ia=g(!1),La=r([]),Na=g(!1),Ma=r({oldName:"",newName:"",suffix:"",id:-1});function Aa(){if(fe.test(Ma.newName))return U.error(`文件名不能包含${fe.source}等字符`),void(fe.lastIndex=0);N.updateFilename(Ma.id,`${Ma.newName}${Ma.suffix}`).then((()=>{U.success("修改成功"),za.find((e=>e.id===Ma.id)).name=`${Ma.newName}${Ma.suffix}`})).catch((()=>{U.error("修改失败")})).finally((()=>{Na.value=!1}))}const Fa=g(6);function Ba(e){Fa.value=e}const Oa=u((()=>Math.ceil($a.value.length/Fa.value))),Ha=g(1),qa=u((()=>{const e=(Ha.value-1)*Fa.value,a=Ha.value*Fa.value;return $a.value.slice(e,a)})),Wa=u((()=>d($a.value.reduce(((e,a)=>e+a.size),0)))),Ja=u((()=>d(za.reduce(((e,a)=>e+a.size),0))));function Ra(e){Ha.value=e}function Pa(){U.success({message:"刷新成功"}),Va()}function Ga(){const e=za.filter((e=>e.task_key===xa.value)).map((e=>e.id));0!==e.length?Ta.value?U.warning("已经有批量下载任务正在进行,请稍后再试"):(Ta.value=!0,N.batchDownload(e,_a.value).then((()=>{va()})).catch((()=>{U.error("所选任务中的文件均已从服务器上移除")})).finally((()=>{setTimeout((()=>{Ta.value=!1}),1e3)})),U.info("开始归档选中的文件,请赖心等待")):U.warning("该任务中没有数据")}const Xa=r([]),Za=g(""),Ka=u((()=>Xa.map((e=>e.preview))));function Qa(e){Za.value=qa.value[e].name}let Ya=!1;function el(){const e=qa.value.map((e=>e.id));0===e.length||Ya||(Ya=!0,N.checkImageFilePreviewUrl(e).then((e=>{Ya=!1;const{data:a}=e;0!==a.length&&a.length===qa.value.length&&(Xa.splice(0,Xa.length),qa.value.forEach(((e,l)=>{const{cover:t,preview:n}=a[l];e.cover=t,Xa.push({cover:t,preview:n,name:e.name,date:e.date,id:e.id})})))})))}function al(){const e=qa.value.map((e=>e.id));0===e.length||Ya||N.fileDownloadCount(e).then((e=>{const{data:a}=e;0!==a.length&&a.length===qa.value.length&&qa.value.forEach(((e,l)=>{e.downloadCount=a[l]}))}))}h((()=>{Sa.value||Ha.value||Fa.value,al()})),h((()=>{window.localStorage.setItem("ep-show-images",`${ze.value}`),ze.value&&(Sa.value||Ha.value||Fa.value,el())})),c((()=>{Va(),va(),xe.dispatch("category/getCategory"),xe.dispatch("task/getTask")}));const ll=X();function tl(){he.confirm(we.value)}return(e,r)=>{const u=ae,c=le,p=F,m=B,f=O,v=se,g=re,h=ue,I=oe,L=te,X=H,fe=ne,ye=ee,we=Q,xe=Z,ke=P,wa=G,_a=R;return o(),i("div",Se,[s("div",$e,[s("div",je,[De,y(c,{modelValue:ya.value,"onUpdate:modelValue":r[0]||(r[0]=e=>ya.value=e),size:"default",filterable:"",placeholder:"请选择"},{default:w((()=>[y(u,{label:"全部",value:"all"}),y(u,{label:"默认",value:"default"}),(o(!0),i(x,null,k(ha.value,(e=>(o(),_(u,{key:e.k,label:e.name,value:e.k},null,8,["label","value"])))),128)),y(u,{label:"无关联任务",value:"no-task"}),y(u,{label:"♻️回收站♻️",value:"trash"})])),_:1},8,["modelValue"])]),s("div",Te,[Ue,y(c,{modelValue:xa.value,"onUpdate:modelValue":r[1]||(r[1]=e=>xa.value=e),size:"default",filterable:"",placeholder:"请选择"},{default:w((()=>[y(u,{label:"全部",value:"all"}),(o(!0),i(x,null,k(ka.value,(e=>(o(),_(u,{key:e.key,label:e.name,value:e.key},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])]),s("div",Ie,[y(p,{loading:Ta.value,disabled:"all"===xa.value,type:"primary",size:"default",icon:C(_e),onClick:Ga},{default:w((()=>[b(" 下载任务中的文件 ")])),_:1},8,["loading","disabled","icon"])]),s("div",Le,[y(m,{modelValue:Sa.value,"onUpdate:modelValue":r[2]||(r[2]=e=>Sa.value=e),size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":C(Y)},null,8,["modelValue","prefix-icon"])])]),s("div",Ne,[s("div",Me,[y(h,{trigger:"click",onCommand:Ua},{dropdown:w((()=>[y(g,null,{default:w((()=>[y(v,{disabled:0===ja.length,command:"download"},{default:w((()=>[b(" 下载 ")])),_:1},8,["disabled"]),y(v,{disabled:0===ja.length,command:"delete"},{default:w((()=>[b(" 删除 ")])),_:1},8,["disabled"]),y(v,{disabled:0===ja.length,command:"excel"},{default:w((()=>[b(" 导出记录 ")])),_:1},8,["disabled"])])),_:1})])),default:w((()=>[y(p,{type:"primary",size:"default"},{default:w((()=>[b(" 批量操作"),y(f,{class:"el-icon--right"},{default:w((()=>[y(C(ie))])),_:1})])),_:1})])),_:1}),z(s("div",null,[y(h,{trigger:"click",onCommand:Ua},{dropdown:w((()=>[y(g,null,{default:w((()=>[y(v,{command:"download"},{default:w((()=>[b(" 下载 ")])),_:1}),y(v,{command:"delete"},{default:w((()=>[b(" 删除 ")])),_:1}),y(v,{command:"excel"},{default:w((()=>[b(" 导出记录 ")])),_:1})])),_:1})])),default:w((()=>[y(p,{type:"primary",disabled:0===ja.length,size:"default"},{default:w((()=>[b(" 批量操作 "),y(f,null,{default:w((()=>[y(C(ie))])),_:1})])),_:1},8,["disabled"])])),_:1})],512),[[E,!1]]),y(p,{size:"default",icon:C(ve),onClick:Pa},{default:w((()=>[b(" 刷新 ")])),_:1},8,["icon"]),y(p,{title:"导出表格中所有的数据",type:"success",size:"default",icon:C(ge),disabled:0===qa.value.length,onClick:r[3]||(r[3]=()=>{ba($a.value,`筛选数据导出_${C(V)(new Date,"yyyy年MM月日hh时mm分ss秒")}.xlsx`)})},{default:w((()=>[b(" 导出记录 ")])),_:1},8,["icon","disabled"]),s("div",Ae,[b(" 显示图片 "),y(I,{modelValue:ze.value,"onUpdate:modelValue":r[4]||(r[4]=e=>ze.value=e),"inline-prompt":"","active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),s("div",Fe,[b(" 展示原文件名 "),y(I,{modelValue:pa.value,"onUpdate:modelValue":r[5]||(r[5]=e=>pa.value=e),"inline-prompt":"","active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),s("div",Be,[b(" 显示提交人姓名 "),y(I,{modelValue:Ee.value,"onUpdate:modelValue":r[6]||(r[6]=e=>Ee.value=e),"inline-prompt":"","active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),s("div",Oe,[b(" ⏰ 查看下载历史 "),y(I,{modelValue:ma.value,"onUpdate:modelValue":r[7]||(r[7]=e=>ma.value=e),style:{"--el-switch-on-color":"#13ce66","--el-switch-off-color":"#ff4949"}},null,8,["modelValue"])])])]),z(s("div",He,[y(K,{style:{"font-size":"16px"}},{default:w((()=>[b(" 正在进行归档的任务 "+S(fa.compressTask.length)+"个 ",1)])),_:1}),y(K,null,{default:w((()=>[b("详细归档记录点击右上角 “⏰查看下载历史”")])),_:1}),(o(!0),i(x,null,k(fa.compressTask,((e,a)=>(o(),i("p",{key:e.id,class:"tc",style:{"margin-top":"10px"}},[b(S(a+1)+". "+S(e.tip)+" ",1),z(s("span",qe,null,512),[[_a,!0]])])))),128))],512),[[E,fa.compressTask.length&&!ma.value]]),z(s("div",We,[y(K,{style:{"font-size":"16px"}},{default:w((()=>[b(" ”❤️下面展示历史的下载记录与归档任务完成情况❤️“ ")])),_:1}),y(K,null,{default:w((()=>[b("”再也不需要在页面停留等待归档完成“")])),_:1}),s("div",null,[z((o(),_(fe,{ref_key:"multipleTable",ref:Ea,"element-loading-text":"Loading...","tooltip-effect":"dark","multiple-table":"",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},"max-height":666,data:fa.actions,style:{width:"100%"},onSelectionChange:Da},{default:w((()=>[y(L,{prop:"date",label:"触发时间",width:"200"},{default:w((e=>[b(S(C(V)(new Date(e.row.date))),1)])),_:1}),y(L,{prop:"tip",label:"文件名"}),y(L,{prop:"type",label:"类型"},{default:w((e=>[e.row.type===C(pe).Compress?(o(),_(X,{key:0,type:"primary"},{default:w((()=>[b(" 归档下载 ")])),_:1})):(o(),_(X,{key:1,type:"default"},{default:w((()=>[b(" 普通下载 ")])),_:1}))])),_:1}),y(L,{prop:"size",label:"大小",width:"100"},{default:w((e=>[e.row.status===C(me).ARCHIVE?(o(),i("span",Je,[y(X,{type:"danger"},{default:w((()=>[b("归档中...")])),_:1})])):e.row.status!==C(me).FAIL?(o(),i("span",Re,S(e.row.size?C(d)(e.row.size):"未知大小"),1)):$("",!0),e.row.status===C(me).FAIL?(o(),i("span",Pe,[y(X,{type:"danger"},{default:w((()=>[b("归档失败")])),_:1})])):$("",!0)])),_:1}),y(L,{fixed:"right",label:"操作",width:"140"},{default:w((e=>[e.row.status===C(me).ARCHIVE?z((o(),i("div",Ge,[b(" 归档中... ")])),[[_a,!0]]):$("",!0),e.row.status===C(me).EXPIRED?(o(),i("div",Xe," 链接已失效 ")):$("",!0),e.row.status===C(me).FAIL?(o(),i("div",Ze," 联系开发者,提供错误信息:"+S(e.row.error),1)):$("",!0),e.row.status===C(me).SUCCESS?(o(),i("div",Ke,[y(X,{type:"primary",onClick:a=>C(j)(e.row.url)},{default:w((()=>[b(" 下载 ")])),_:2},1032,["onClick"]),y(X,{type:"success",style:{"margin-left":"10px"},onClick:a=>C(D)(e.row.url)},{default:w((()=>[b(" 链接 ")])),_:2},1032,["onClick"]),y(X,{type:"warning",style:{"margin-left":"10px"},onClick:()=>{be.value=!0,Ce.value=e.row.url}},{default:w((()=>[b(" 二维码 ")])),_:2},1032,["onClick"])])):$("",!0)])),_:1})])),_:1},8,["data"])),[[_a,Ca.value]]),s("div",Qe,[y(ye,{small:"","current-page":fa.pageCurrent,"page-count":fa.pageCount,total:fa.pageTotal,layout:"total, prev, pager, next",onCurrentChange:ga},null,8,["current-page","page-count","total"])])])],512),[[E,ma.value]]),s("div",Ye,[y(K,null,{default:w((()=>[b("全部文件大小:"+S(Ja.value)+",当前任务大小:"+S(Wa.value),1)])),_:1}),C(a).limitSpace?(o(),_(K,{key:0},{default:w((()=>[s("span",{class:T({warnColor:C(W)})},S(C(n)),3)])),_:1})):$("",!0),C(a).limitWallet?(o(),_(K,{key:1},{default:w((()=>[b(" 统计时间:"+S(C(V)(C(a).moneyStartDay,"yyyy-MM-dd"))+" - 至今 ",1)])),_:1})):$("",!0),C(a).limitWallet?(o(),_(K,{key:2},{default:w((()=>[s("span",{class:T({warnColor:C(J)})},S(C(q)),3),s("strong",{class:"money-detail",onClick:tl},ea)])),_:1})):$("",!0),C(t)?(o(),_(K,{key:3},{default:w((()=>[aa])),_:1})):$("",!0),y(K,null,{default:w((()=>[la,l.value?(o(),i("strong",ta,[b(",其它问题"),na])):$("",!0)])),_:1}),l.value?(o(),_(K,{key:4},{default:w((()=>[oa,ia])),_:1})):$("",!0),z((o(),_(fe,{ref_key:"multipleTable",ref:Ea,"element-loading-text":"Loading...","tooltip-effect":"dark","multiple-table":"",stripe:"",border:"","max-height":666,data:qa.value,style:{width:"100%"},onSelectionChange:Da},{default:w((()=>[y(L,{type:"selection",width:"55"}),y(L,{prop:"date",label:"提交时间",width:"160"},{default:w((e=>[b(S(C(V)(new Date(e.row.date))),1)])),_:1}),y(L,{prop:"task_name",label:"任务",width:"150"}),y(L,{prop:"name",label:"文件名",width:"200"}),pa.value?(o(),_(L,{key:0,prop:"origin_name",label:"原文件名",width:"200"},{default:w((e=>[b(S(e.row.origin_name||"-"),1)])),_:1})):$("",!0),y(L,{prop:"size",label:"大小"},{default:w((e=>[b(S(0===e.row.size?"未知大小":C(d)(e.row.size)),1)])),_:1}),y(L,{prop:"downloadCount",width:"90",label:"下载次数"}),ze.value?(o(),_(L,{key:1,label:"缩略图",width:"120"},{default:w((e=>[y(we,{"preview-teleported":"","preview-src-list":Ka.value,"initial-index":e.$index,lazy:"",style:{width:"100px",height:"100px"},src:e.row.cover,fit:"cover",onSwitch:Qa,onClick:a=>Qa(e.$index)},{viewer:w((()=>[s("div",sa,S(Za.value),1)])),placeholder:w((()=>[ra])),error:w((()=>[s("div",ua,[b(" 不支持 "),y(f,null,{default:w((()=>[y(C(Ve))])),_:1})])])),_:2},1032,["preview-src-list","initial-index","src","onClick"])])),_:1})):$("",!0),Ee.value?(o(),_(L,{key:2,prop:"people",width:"100",label:"限制名单"},{default:w((e=>[b(S(e.row.people||"-"),1)])),_:1})):$("",!0),y(L,{fixed:"right",label:"操作",width:"140"},{default:w((e=>[s("div",da,[y(p,{type:"primary",text:"",size:"small",onClick:a=>{return l=e.row,La.splice(0,La.length),La.push(...M(l.info)),void(Ia.value=!0);var l}},{default:w((()=>[b(" 查看提交信息 ")])),_:2},1032,["onClick"]),y(p,{type:"primary",text:"",size:"small",onClick:a=>function(e){const{id:a,name:l}=e,t=A(l);Ma.oldName=l,Ma.suffix=t,Ma.id=a,Na.value=!0}(e.row)},{default:w((()=>[b(" 修改文件名 ")])),_:2},1032,["onClick"]),y(p,{type:"primary",text:"",size:"small",onClick:a=>function(e){if(t.value)return void U.error("下载功能已被限制,请联系管理员扩容,或自行删除历史无用文件");const{id:a,name:l}=e;N.getOneFileUrl(a).then((e=>{const{link:a}=e.data;be.value=!0,Ce.value=a,j(a,l),va(),setTimeout((()=>{al()}),1e3)})).catch((()=>{U.error("文件已从服务器上移除")}))}(e.row)},{default:w((()=>[b(" 下载 ")])),_:2},1032,["onClick"]),y(p,{type:"primary",text:"",size:"small",onClick:a=>function(e){const a=za.findIndex((a=>a===e));he.confirm("确认删除此文件吗?","数据无价,请谨慎操作").then((()=>{N.deleteOneFile(e.id).then((()=>{U.success("删除成功"),za.splice(a,1)}))})).catch((()=>{U.info("取消删除")}))}(e.row)},{default:w((()=>[b(" 删除 ")])),_:2},1032,["onClick"])])])),_:1})])),_:1},8,["data"])),[[_a,Ca.value]])]),s("div",ca,[y(ye,{"current-page":Ha.value,background:"","page-count":Oa.value,"page-sizes":[6,10,50,100],"page-size":Fa.value,total:$a.value.length,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:Ra,onSizeChange:Ba},null,8,["current-page","page-count","page-size","total"])]),y(xe,{modelValue:Ia.value,"onUpdate:modelValue":r[8]||(r[8]=e=>Ia.value=e),fullscreen:C(ll),title:"提交填写的信息"},{default:w((()=>[y(de,{infos:La,disabled:!0},null,8,["infos"])])),_:1},8,["modelValue","fullscreen"]),y(ce,{value:be.value,"onUpdate:value":r[9]||(r[9]=e=>be.value=e),title:"下载链接",link:Ce.value},null,8,["value","link"]),y(xe,{modelValue:Na.value,"onUpdate:modelValue":r[13]||(r[13]=e=>Na.value=e),fullscreen:C(ll),title:"修改文件名"},{default:w((()=>[s("div",null,[y(wa,{"label-width":"100px",model:Ma},{default:w((()=>[y(ke,{label:"原文件名",prop:"newName"},{default:w((()=>[y(m,{modelValue:Ma.oldName,"onUpdate:modelValue":r[10]||(r[10]=e=>Ma.oldName=e),disabled:""},null,8,["modelValue"])])),_:1}),y(ke,{label:"新文件名",prop:"newName"},{default:w((()=>[y(m,{modelValue:Ma.newName,"onUpdate:modelValue":r[11]||(r[11]=e=>Ma.newName=e),placeholder:"请输入新文件名"},{append:w((()=>[b(S(Ma.suffix),1)])),_:1},8,["modelValue"])])),_:1}),y(ke,null,{default:w((()=>[y(p,{type:"success",onClick:Aa},{default:w((()=>[b(" 保存 ")])),_:1}),y(p,{onClick:r[12]||(r[12]=e=>Na.value=!1)},{default:w((()=>[b(" 取消 ")])),_:1})])),_:1})])),_:1},8,["model"])])])),_:1},8,["modelValue","fullscreen"])])}}}),[["__scopeId","data-v-74595087"]]))}}}));
2
- //# sourceMappingURL=index-legacy-DD6zMGGT.js.map
1
+ System.register(["./index-legacy-DC5-MYgp.js","./el-loading-legacy-CCDpn-BT.js","./el-form-item-legacy-DNwgpXzk.js","./el-dialog-legacy-CX7a77_4.js","./tip-legacy-Ci60OMi9.js","./el-pagination-legacy-CAxn6D5y.js","./el-select-legacy-BI1YK9Jv.js","./el-table-column-legacy-BWpnrxZl.js","./el-switch-legacy-CG_sT4XS.js","./el-dropdown-item-legacy-ChoB2YAN.js","./index-legacy-DM_G6GXF.js","./index-legacy-C-gHf8SN.js","./refresh-legacy-Cv7RM_sm.js","./data-analysis-legacy-sXkPNcPD.js","./index-legacy-DmJc-LaA.js","./isEqual-legacy-DVLZyo95.js","./index-legacy-DiNZXmUs.js","./validator-legacy-D-pC1hkO.js","./aria-legacy-B70JmEZA.js"],(function(e,a){"use strict";var l,t,n,o,i,s,r,u,d,c,p,m,f,v,g,h,y,w,x,k,_,b,C,z,V,E,S,$,j,D,T,U,I,L,N,M,A,F,B,O,H,q,W,J,R,P,G,X,Z,K,Q,Y,ee,ae,le,te,ne,oe,ie,se,re,ue,de,ce,pe,me,fe,ve,ge,he;return{setters:[e=>{l=e.a4,t=e.g,n=e.d,o=e.a,i=e.c,s=e.b,r=e.Z,u=e.O,d=e.a5,c=e.o,p=e.U,m=e.a6,f=e.h,v=e.a1,g=e.r,h=e.a7,y=e.j,w=e.w,x=e.F,k=e.C,_=e.D,b=e.e,C=e.k,z=e.a8,V=e.s,E=e.a9,S=e.t,$=e.S,j=e.aa,D=e.ab,T=e.H,U=e.E,I=e.ac,L=e.ad,N=e.ae,M=e.af,A=e.ag,F=e.x,B=e.v,O=e.I,H=e.ah,q=e.p,W=e.f,J=e._},e=>{R=e.v},e=>{P=e.E,G=e.a},e=>{X=e.u,Z=e.E},e=>{K=e.T,Q=e.E},e=>{Y=e.s,ee=e.E},e=>{ae=e.E,le=e.a},e=>{te=e.E,ne=e.a},e=>{oe=e.E},e=>{ie=e.a,se=e.E,re=e.b,ue=e.c},e=>{de=e.I,ce=e.L},e=>{pe=e.A,me=e.D,fe=e.f},e=>{ve=e.r},e=>{ge=e.d},e=>{he=e.E},null,null,null,null],execute:function(){var a=document.createElement("style");a.textContent=".warnColor[data-v-74595087]{color:#f56c6c}.files[data-v-74595087]{max-width:1024px;margin:0 auto;padding-bottom:2em}@media screen and (max-width: 700px){.files[data-v-74595087]{margin-top:70px}.text-btns[data-v-74595087]{display:flex;flex-direction:column}.text-btns[data-v-74595087] .el-button{margin-left:0;margin-bottom:0}.header[data-v-74595087]{justify-content:center}.export-btns[data-v-74595087]{display:flex;flex-wrap:wrap;justify-content:space-around}}.panel[data-v-74595087]{padding:1em;background-color:#fff;margin:10px auto;box-sizing:border-box;box-shadow:0 2px 12px rgba(0,0,0,.1);border-radius:4px;z-index:1}.panel .label[data-v-74595087]{font-size:12px;margin-right:10px}.header[data-v-74595087]{display:flex;flex-wrap:wrap}.header .item[data-v-74595087]{margin-right:10px;margin-bottom:10px}.el-button[data-v-74595087]{margin-left:10px;margin-bottom:10px}.control-item[data-v-74595087]{margin-left:10px;margin-bottom:10px;font-size:14px}.imageLoading[data-v-74595087]{display:flex;align-items:center;justify-content:center;height:100%}.imageDes[data-v-74595087]{position:absolute;bottom:80px;color:#fff;left:50%;transform:translate(-50%)}.progress-list[data-v-74595087]{margin-top:10px}.progress-list .progress-item[data-v-74595087]{margin-bottom:10px;text-align:center}.progress-list .progress-item .progress[data-v-74595087]{display:flex;justify-content:center;align-items:center;margin-bottom:6px}.progress-list .progress-item .progress .el-progress--line[data-v-74595087]{min-width:200px;width:260px}.progress-list .progress-item .progress .el-button[data-v-74595087]{margin:0 6px}.progress-list .progress-item .des[data-v-74595087]{font-size:12px}.progress-list .progress-item .des .filename[data-v-74595087]{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;margin-right:10px}.progress-list .progress-item .des .mimeType[data-v-74595087]{width:60px;color:#409eff}.money-detail[data-v-74595087]{color:#409eff;cursor:pointer}\n",document.head.appendChild(a);const ye={getDownloadActions:function(e,a,t=[]){return l.post("/action/download/list",{pageSize:e,pageIndex:a,extraIds:t})}},we=n({name:"Download"}),xe={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ke=[s("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64v450.304z"},null,-1)];var _e=t(we,[["render",function(e,a,l,t,n,s){return o(),i("svg",xe,ke)}]]);const be=n({name:"Picture"}),Ce={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},ze=[s("path",{fill:"currentColor",d:"M160 160v704h704V160H160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32z"},null,-1),s("path",{fill:"currentColor",d:"M384 288q64 0 64 64t-64 64q-64 0-64-64t64-64zM185.408 876.992l-50.816-38.912L350.72 556.032a96 96 0 0 1 134.592-17.856l1.856 1.472 122.88 99.136a32 32 0 0 0 44.992-4.864l216-269.888 49.92 39.936-215.808 269.824-.256.32a96 96 0 0 1-135.04 14.464l-122.88-99.072-.64-.512a32 32 0 0 0-44.8 5.952L185.408 876.992z"},null,-1)];var Ve=t(be,[["render",function(e,a,l,t,n,s){return o(),i("svg",Ce,ze)}]]);const Ee=e=>(q("data-v-74595087"),e=e(),W(),e),Se={class:"files"},$e={class:"panel header"},je={class:"item"},De=Ee((()=>s("span",{class:"label"},"分类",-1))),Te={class:"item"},Ue=Ee((()=>s("span",{class:"label"},"任务",-1))),Ie={class:"item"},Le={class:"item"},Ne={class:"panel"},Me={class:"export-btns flex fac"},Ae={class:"control-item"},Fe={class:"control-item"},Be={class:"control-item"},Oe={class:"control-item"},He={class:"panel"},qe={"element-loading-text":"...",style:{"--el-loading-spinner-size":"20px"}},We={class:"panel"},Je={key:0},Re={key:1},Pe={key:2},Ge={key:0},Xe={key:1},Ze={key:2},Ke={key:3},Qe={class:"flex fc"},Ye={class:"panel"},ea=[Ee((()=>s("span",null,"查看详细",-1)))],aa=Ee((()=>s("h2",{style:{color:"#f56c6c"}}," 空间超限将无法上传/下载文件,如需要使用,请联系管理员扩容,或自行删除无关文件 ",-1))),la=Ee((()=>s("strong",null,[b("如果你觉得应用不错,"),s("a",{style:{color:"#409eff"},href:"http://docs.ep.sugarat.top/praise/index.html",target:"_blank",rel:"noopener noreferrer"},"给他发电⚡")],-1))),ta={key:0},na=Ee((()=>s("a",{style:{color:"#409eff"},href:"https://docs.ep.sugarat.top/author.html#%E8%81%94%E7%B3%BB%E4%BD%9C%E8%80%85",target:"_blank",rel:"noopener noreferrer"},"联系作者🔗",-1))),oa=Ee((()=>s("h3",{style:{color:"#f56c6c"}}," 由于部分用户用量较大,小站无法承担这笔开销,限制每个账户为 2GB 可用空间,2¥的默认余额 ",-1))),ia=Ee((()=>s("h3",null,[s("span",{style:{color:"#f56c6c"}},[b("你可以通过"),s("a",{style:{color:"#409eff"},href:"https://docs.ep.sugarat.top/author.html#%E8%81%94%E7%B3%BB%E4%BD%9C%E8%80%85",target:"_blank",rel:"noopener noreferrer"}," 联系作者进行赞助⚡ "),b("增加空间 或 充值余额")]),b(", "),s("strong",null,[s("a",{style:{color:"#409eff"},href:"https://docs.ep.sugarat.top/",target:"_blank",rel:"noopener noreferrer"},"也可以选择自己搭建💡 ")])],-1))),sa={class:"imageDes"},ra=Ee((()=>s("div",{class:"imageLoading"}," Loading... ",-1))),ua={class:"imageLoading"},da={class:"text-btns"},ca={class:"panel flex fc"};e("default",J(n({__name:"index",setup(e){const{value:a}=m(),l=u((()=>a.value.openPraise)),{limitDownload:t,spaceUsageText:n,moneyUsageText:q,limitSpace:W,limitWallet:J,priceText:we}=function(){const e=r({size:0,usage:0,limitUpload:!1,wallet:"0:00",cost:"0.00",limitSpace:!1,limitWallet:!1,price:{storage:"0:00",download:"0:00"}}),a=u((()=>e.usage)),l=u((()=>e.size)),t=u((()=>`${(e.usage/e.size*100).toFixed(2)}%`)),n=u((()=>`${(+e.cost/+e.wallet*100).toFixed(2)}%`)),o=u((()=>e.limitUpload)),i=u((()=>e.limitSpace)),s=u((()=>e.limitWallet)),m=u((()=>`空间 ${t.value}: ${d(e.usage)} / ${d(e.size)}`)),f=u((()=>`钱包 ${n.value}: ${e.cost} / ${e.wallet}¥`)),v=u((()=>`存储 ${e.price.storage}¥ + 下载 ${e.price.download}¥`));return c((()=>{p.usage().then((a=>{Object.assign(e,a.data)}))})),{usage:a,size:l,percentage:t,limitDownload:o,limitSpace:i,limitWallet:s,spaceUsageText:m,moneyUsageText:f,priceText:v}}(),xe=f(),ke=v(),be=g(!1),Ce=g(""),ze=g("true"===localStorage.getItem("ep-show-images")),Ee=g(!0),pa=g(!1),ma=g(!1),fa=r({actions:[],pageSize:3,pageCount:0,pageCurrent:1,pageTotal:0,compressTask:[]});function va(){const e=JSON.parse(localStorage.getItem("ep_compress_task")||"[]");fa.compressTask=e,ye.getDownloadActions(fa.pageSize,fa.pageCurrent,e.map((e=>e.id))).then((a=>{const{actions:l,sum:t}=a.data,n=!!l.find((e=>e.status===me.ARCHIVE));l.filter((e=>e.type===pe.Compress)).forEach((a=>{const l=e.findIndex((e=>e.id===a.id));a.status===me.SUCCESS&&-1!==l&&(Ce.value=a.url,be.value=!0,j(a.url),e.splice(l,1)),a.status===me.ARCHIVE&&-1===l&&e.push(a),a.status===me.FAIL&&-1!==l&&e.splice(l,1)})),fa.compressTask=e,localStorage.setItem("ep_compress_task",JSON.stringify(e)),n&&setTimeout(va,1e3),fa.pageTotal=t,fa.actions=l,fa.pageCount=Math.ceil(t/fa.pageSize)}))}function ga(e){fa.pageCurrent=e,va()}const ha=u((()=>xe.state.category.categoryList)),ya=g("all"),wa=u((()=>xe.state.task.taskList)),xa=g("all"),ka=u((()=>"all"===ya.value?wa.value:(xa.value="all",wa.value.filter((e=>e.category===ya.value))))),_a=u((()=>{const e=ka.value.find((e=>e.key===xa.value));return e?.name}));function ba(e,a){if(0===e.length)return void U.warning("表格中没有可导出的内容");const l=["提交时间","任务","文件名","大小"];pa.value&&l.push("原文件名"),Ee.value&&l.push("姓名");const t=l.map((e=>({value:e,row:2}))),n=e.reduce(((e,a)=>{try{JSON.parse(a.info).forEach((a=>{e.includes(a.text)||e.push(a.text)}))}catch(l){U.error({message:`数据异常${a.name},可联系平台管理员处理`,duration:5e3}),console.log(a)}return e}),[]);t.push({value:"提交信息",col:n.length});const o=e.map((e=>{const{date:a,task_name:l,name:t,size:o,people:i}=e;try{const s=JSON.parse(e.info).reduce(((e,a)=>(e[a.text]=`${a.value}`,e)),{}),r=n.map((e=>s[e]??"-")),u=[V(new Date(a)),l,t,d(o)];return pa.value&&u.push(e.origin_name||"-"),Ee.value&&u.push(i||"-"),u.push(...r),u}catch(s){U.error({message:`数据异常${e.name},可联系平台管理员处理`,duration:5e3}),console.log(e)}return[]})).filter((e=>!!e.length));o.unshift(n);const i=a||`数据导出_${V(new Date,"yyyy年MM月日hh时mm分ss秒")}.xlsx`,s=_a.value?`${I(_a.value)}_${i}`:i;L(t,o,s),U.success("导出成功")}h((()=>{wa.value.length&&wa.value.some((e=>e.key===ke.query.task))&&(xa.value=`${ke.query.task}`)}));const Ca=g(!1),za=r([]);function Va(){Ca.value=!0,za.splice(0,za.length),N.getFileList().then((e=>{za.push(...e.data.files),Ca.value=!1}))}const Ea=g(),Sa=g(""),$a=u((()=>za.filter((e=>"no-task"===ya.value?wa.value.every((a=>a.key!==e.task_key)):0!==ka.value.length&&("all"===xa.value?ka.value.find((a=>a.key===e.task_key)):xa.value===e.task_key))).filter((e=>!Sa.value||JSON.stringify([V(new Date(e.date)),d(e.size),e.people,e.name,e.task_name,e.info]).replace(/[:'"{},[\]]/g,"").includes(Sa.value))))),ja=r([]);function Da(e){ja.splice(0,ja.length),ja.push(...e)}const Ta=g(!1);function Ua(e){const a=ja.map((e=>e.id));switch(e){case"download":if(t.value)return void U.error("下载功能已被限制,请联系管理员扩容,或自行删除历史无用文件");if(0===ja.length)return void U.warning("没有选中需要下载的内容");if(Ta.value)return void U.warning("已经有批量下载任务正在进行,请稍后再试");N.batchDownload(a,`批量下载_${V(new Date,"yyyy年MM月日hh时mm分ss秒")}`).then((()=>{va()})).catch((()=>{U.error("所选文件均已从服务器上移除"),Ta.value=!1})),U.info("开始归档选中的文件,请赖心等待");break;case"delete":if(0===ja.length)return void U.warning("没有选中需要删除的内容");he.confirm("删除后无法恢复,是否删除","数据无价,请谨慎操作").then((()=>{N.batchDel(a).then((()=>{za.splice(0,za.length,...za.filter((e=>!a.includes(e.id)))),U.success("删除成功")}))})).catch((()=>{U.info("取消")}));break;case"excel":if(0===ja.length)return void U.warning("没有选中需要导出的内容");ba(ja,`批量导出_${V(new Date,"yyyy年MM月日hh时mm分ss秒")}.xlsx`),U.success("导出成功")}Ea.value.clearSelection()}const Ia=g(!1),La=r([]),Na=g(!1),Ma=r({oldName:"",newName:"",suffix:"",id:-1});function Aa(){if(fe.test(Ma.newName))return U.error(`文件名不能包含${fe.source}等字符`),void(fe.lastIndex=0);N.updateFilename(Ma.id,`${Ma.newName}${Ma.suffix}`).then((()=>{U.success("修改成功"),za.find((e=>e.id===Ma.id)).name=`${Ma.newName}${Ma.suffix}`})).catch((()=>{U.error("修改失败")})).finally((()=>{Na.value=!1}))}const Fa=g(6);function Ba(e){Fa.value=e}const Oa=u((()=>Math.ceil($a.value.length/Fa.value))),Ha=g(1),qa=u((()=>{const e=(Ha.value-1)*Fa.value,a=Ha.value*Fa.value;return $a.value.slice(e,a)})),Wa=u((()=>d($a.value.reduce(((e,a)=>e+a.size),0)))),Ja=u((()=>d(za.reduce(((e,a)=>e+a.size),0))));function Ra(e){Ha.value=e}function Pa(){U.success({message:"刷新成功"}),Va()}function Ga(){const e=za.filter((e=>e.task_key===xa.value)).map((e=>e.id));0!==e.length?Ta.value?U.warning("已经有批量下载任务正在进行,请稍后再试"):(Ta.value=!0,N.batchDownload(e,_a.value).then((()=>{va()})).catch((()=>{U.error("所选任务中的文件均已从服务器上移除")})).finally((()=>{setTimeout((()=>{Ta.value=!1}),1e3)})),U.info("开始归档选中的文件,请赖心等待")):U.warning("该任务中没有数据")}const Xa=r([]),Za=g(""),Ka=u((()=>Xa.map((e=>e.preview))));function Qa(e){Za.value=qa.value[e].name}let Ya=!1;function el(){const e=qa.value.map((e=>e.id));0===e.length||Ya||(Ya=!0,N.checkImageFilePreviewUrl(e).then((e=>{Ya=!1;const{data:a}=e;0!==a.length&&a.length===qa.value.length&&(Xa.splice(0,Xa.length),qa.value.forEach(((e,l)=>{const{cover:t,preview:n}=a[l];e.cover=t,Xa.push({cover:t,preview:n,name:e.name,date:e.date,id:e.id})})))})))}function al(){const e=qa.value.map((e=>e.id));0===e.length||Ya||N.fileDownloadCount(e).then((e=>{const{data:a}=e;0!==a.length&&a.length===qa.value.length&&qa.value.forEach(((e,l)=>{e.downloadCount=a[l]}))}))}h((()=>{Sa.value||Ha.value||Fa.value,al()})),h((()=>{window.localStorage.setItem("ep-show-images",`${ze.value}`),ze.value&&(Sa.value||Ha.value||Fa.value,el())})),c((()=>{Va(),va(),xe.dispatch("category/getCategory"),xe.dispatch("task/getTask")}));const ll=X();function tl(){he.confirm(we.value)}return(e,r)=>{const u=ae,c=le,p=F,m=B,f=O,v=se,g=re,h=ue,I=oe,L=te,X=H,fe=ne,ye=ee,we=Q,xe=Z,ke=P,wa=G,_a=R;return o(),i("div",Se,[s("div",$e,[s("div",je,[De,y(c,{modelValue:ya.value,"onUpdate:modelValue":r[0]||(r[0]=e=>ya.value=e),size:"default",filterable:"",placeholder:"请选择"},{default:w((()=>[y(u,{label:"全部",value:"all"}),y(u,{label:"默认",value:"default"}),(o(!0),i(x,null,k(ha.value,(e=>(o(),_(u,{key:e.k,label:e.name,value:e.k},null,8,["label","value"])))),128)),y(u,{label:"无关联任务",value:"no-task"}),y(u,{label:"♻️回收站♻️",value:"trash"})])),_:1},8,["modelValue"])]),s("div",Te,[Ue,y(c,{modelValue:xa.value,"onUpdate:modelValue":r[1]||(r[1]=e=>xa.value=e),size:"default",filterable:"",placeholder:"请选择"},{default:w((()=>[y(u,{label:"全部",value:"all"}),(o(!0),i(x,null,k(ka.value,(e=>(o(),_(u,{key:e.key,label:e.name,value:e.key},null,8,["label","value"])))),128))])),_:1},8,["modelValue"])]),s("div",Ie,[y(p,{loading:Ta.value,disabled:"all"===xa.value,type:"primary",size:"default",icon:C(_e),onClick:Ga},{default:w((()=>[b(" 下载任务中的文件 ")])),_:1},8,["loading","disabled","icon"])]),s("div",Le,[y(m,{modelValue:Sa.value,"onUpdate:modelValue":r[2]||(r[2]=e=>Sa.value=e),size:"default",clearable:"",placeholder:"请输入要检索的内容","prefix-icon":C(Y)},null,8,["modelValue","prefix-icon"])])]),s("div",Ne,[s("div",Me,[y(h,{trigger:"click",onCommand:Ua},{dropdown:w((()=>[y(g,null,{default:w((()=>[y(v,{disabled:0===ja.length,command:"download"},{default:w((()=>[b(" 下载 ")])),_:1},8,["disabled"]),y(v,{disabled:0===ja.length,command:"delete"},{default:w((()=>[b(" 删除 ")])),_:1},8,["disabled"]),y(v,{disabled:0===ja.length,command:"excel"},{default:w((()=>[b(" 导出记录 ")])),_:1},8,["disabled"])])),_:1})])),default:w((()=>[y(p,{type:"primary",size:"default"},{default:w((()=>[b(" 批量操作"),y(f,{class:"el-icon--right"},{default:w((()=>[y(C(ie))])),_:1})])),_:1})])),_:1}),z(s("div",null,[y(h,{trigger:"click",onCommand:Ua},{dropdown:w((()=>[y(g,null,{default:w((()=>[y(v,{command:"download"},{default:w((()=>[b(" 下载 ")])),_:1}),y(v,{command:"delete"},{default:w((()=>[b(" 删除 ")])),_:1}),y(v,{command:"excel"},{default:w((()=>[b(" 导出记录 ")])),_:1})])),_:1})])),default:w((()=>[y(p,{type:"primary",disabled:0===ja.length,size:"default"},{default:w((()=>[b(" 批量操作 "),y(f,null,{default:w((()=>[y(C(ie))])),_:1})])),_:1},8,["disabled"])])),_:1})],512),[[E,!1]]),y(p,{size:"default",icon:C(ve),onClick:Pa},{default:w((()=>[b(" 刷新 ")])),_:1},8,["icon"]),y(p,{title:"导出表格中所有的数据",type:"success",size:"default",icon:C(ge),disabled:0===qa.value.length,onClick:r[3]||(r[3]=()=>{ba($a.value,`筛选数据导出_${C(V)(new Date,"yyyy年MM月日hh时mm分ss秒")}.xlsx`)})},{default:w((()=>[b(" 导出记录 ")])),_:1},8,["icon","disabled"]),s("div",Ae,[b(" 显示图片 "),y(I,{modelValue:ze.value,"onUpdate:modelValue":r[4]||(r[4]=e=>ze.value=e),"inline-prompt":"","active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),s("div",Fe,[b(" 展示原文件名 "),y(I,{modelValue:pa.value,"onUpdate:modelValue":r[5]||(r[5]=e=>pa.value=e),"inline-prompt":"","active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),s("div",Be,[b(" 显示提交人姓名 "),y(I,{modelValue:Ee.value,"onUpdate:modelValue":r[6]||(r[6]=e=>Ee.value=e),"inline-prompt":"","active-color":"#13ce66","inactive-color":"#ff4949","active-text":"是","inactive-text":"否"},null,8,["modelValue"])]),s("div",Oe,[b(" ⏰ 查看下载历史 "),y(I,{modelValue:ma.value,"onUpdate:modelValue":r[7]||(r[7]=e=>ma.value=e),style:{"--el-switch-on-color":"#13ce66","--el-switch-off-color":"#ff4949"}},null,8,["modelValue"])])])]),z(s("div",He,[y(K,{style:{"font-size":"16px"}},{default:w((()=>[b(" 正在进行归档的任务 "+S(fa.compressTask.length)+"个 ",1)])),_:1}),y(K,null,{default:w((()=>[b("详细归档记录点击右上角 “⏰查看下载历史”")])),_:1}),(o(!0),i(x,null,k(fa.compressTask,((e,a)=>(o(),i("p",{key:e.id,class:"tc",style:{"margin-top":"10px"}},[b(S(a+1)+". "+S(e.tip)+" ",1),z(s("span",qe,null,512),[[_a,!0]])])))),128))],512),[[E,fa.compressTask.length&&!ma.value]]),z(s("div",We,[y(K,{style:{"font-size":"16px"}},{default:w((()=>[b(" ”❤️下面展示历史的下载记录与归档任务完成情况❤️“ ")])),_:1}),y(K,null,{default:w((()=>[b("”再也不需要在页面停留等待归档完成“")])),_:1}),s("div",null,[z((o(),_(fe,{ref_key:"multipleTable",ref:Ea,"element-loading-text":"Loading...","tooltip-effect":"dark","multiple-table":"",stripe:"",border:"","default-sort":{prop:"date",order:"descending"},"max-height":666,data:fa.actions,style:{width:"100%"},onSelectionChange:Da},{default:w((()=>[y(L,{prop:"date",label:"触发时间",width:"200"},{default:w((e=>[b(S(C(V)(new Date(e.row.date))),1)])),_:1}),y(L,{prop:"tip",label:"文件名"}),y(L,{prop:"type",label:"类型"},{default:w((e=>[e.row.type===C(pe).Compress?(o(),_(X,{key:0,type:"primary"},{default:w((()=>[b(" 归档下载 ")])),_:1})):(o(),_(X,{key:1,type:"default"},{default:w((()=>[b(" 普通下载 ")])),_:1}))])),_:1}),y(L,{prop:"size",label:"大小",width:"100"},{default:w((e=>[e.row.status===C(me).ARCHIVE?(o(),i("span",Je,[y(X,{type:"danger"},{default:w((()=>[b("归档中...")])),_:1})])):e.row.status!==C(me).FAIL?(o(),i("span",Re,S(e.row.size?C(d)(e.row.size):"未知大小"),1)):$("",!0),e.row.status===C(me).FAIL?(o(),i("span",Pe,[y(X,{type:"danger"},{default:w((()=>[b("归档失败")])),_:1})])):$("",!0)])),_:1}),y(L,{fixed:"right",label:"操作",width:"140"},{default:w((e=>[e.row.status===C(me).ARCHIVE?z((o(),i("div",Ge,[b(" 归档中... ")])),[[_a,!0]]):$("",!0),e.row.status===C(me).EXPIRED?(o(),i("div",Xe," 链接已失效 ")):$("",!0),e.row.status===C(me).FAIL?(o(),i("div",Ze," 联系开发者,提供错误信息:"+S(e.row.error),1)):$("",!0),e.row.status===C(me).SUCCESS?(o(),i("div",Ke,[y(X,{type:"primary",onClick:a=>C(j)(e.row.url)},{default:w((()=>[b(" 下载 ")])),_:2},1032,["onClick"]),y(X,{type:"success",style:{"margin-left":"10px"},onClick:a=>C(D)(e.row.url)},{default:w((()=>[b(" 链接 ")])),_:2},1032,["onClick"]),y(X,{type:"warning",style:{"margin-left":"10px"},onClick:()=>{be.value=!0,Ce.value=e.row.url}},{default:w((()=>[b(" 二维码 ")])),_:2},1032,["onClick"])])):$("",!0)])),_:1})])),_:1},8,["data"])),[[_a,Ca.value]]),s("div",Qe,[y(ye,{small:"","current-page":fa.pageCurrent,"page-count":fa.pageCount,total:fa.pageTotal,layout:"total, prev, pager, next",onCurrentChange:ga},null,8,["current-page","page-count","total"])])])],512),[[E,ma.value]]),s("div",Ye,[y(K,null,{default:w((()=>[b("全部文件大小:"+S(Ja.value)+",当前任务大小:"+S(Wa.value),1)])),_:1}),C(a).limitSpace?(o(),_(K,{key:0},{default:w((()=>[s("span",{class:T({warnColor:C(W)})},S(C(n)),3)])),_:1})):$("",!0),C(a).limitWallet?(o(),_(K,{key:1},{default:w((()=>[b(" 统计时间:"+S(C(V)(C(a).moneyStartDay,"yyyy-MM-dd"))+" - 至今 ",1)])),_:1})):$("",!0),C(a).limitWallet?(o(),_(K,{key:2},{default:w((()=>[s("span",{class:T({warnColor:C(J)})},S(C(q)),3),s("strong",{class:"money-detail",onClick:tl},ea)])),_:1})):$("",!0),C(t)?(o(),_(K,{key:3},{default:w((()=>[aa])),_:1})):$("",!0),y(K,null,{default:w((()=>[la,l.value?(o(),i("strong",ta,[b(",其它问题"),na])):$("",!0)])),_:1}),l.value?(o(),_(K,{key:4},{default:w((()=>[oa,ia])),_:1})):$("",!0),z((o(),_(fe,{ref_key:"multipleTable",ref:Ea,"element-loading-text":"Loading...","tooltip-effect":"dark","multiple-table":"",stripe:"",border:"","max-height":666,data:qa.value,style:{width:"100%"},onSelectionChange:Da},{default:w((()=>[y(L,{type:"selection",width:"55"}),y(L,{prop:"date",label:"提交时间",width:"160"},{default:w((e=>[b(S(C(V)(new Date(e.row.date))),1)])),_:1}),y(L,{prop:"task_name",label:"任务",width:"150"}),y(L,{prop:"name",label:"文件名",width:"200"}),pa.value?(o(),_(L,{key:0,prop:"origin_name",label:"原文件名",width:"200"},{default:w((e=>[b(S(e.row.origin_name||"-"),1)])),_:1})):$("",!0),y(L,{prop:"size",label:"大小"},{default:w((e=>[b(S(0===e.row.size?"未知大小":C(d)(e.row.size)),1)])),_:1}),y(L,{prop:"downloadCount",width:"90",label:"下载次数"}),ze.value?(o(),_(L,{key:1,label:"缩略图",width:"120"},{default:w((e=>[y(we,{"preview-teleported":"","preview-src-list":Ka.value,"initial-index":e.$index,lazy:"",style:{width:"100px",height:"100px"},src:e.row.cover,fit:"cover",onSwitch:Qa,onClick:a=>Qa(e.$index)},{viewer:w((()=>[s("div",sa,S(Za.value),1)])),placeholder:w((()=>[ra])),error:w((()=>[s("div",ua,[b(" 不支持 "),y(f,null,{default:w((()=>[y(C(Ve))])),_:1})])])),_:2},1032,["preview-src-list","initial-index","src","onClick"])])),_:1})):$("",!0),Ee.value?(o(),_(L,{key:2,prop:"people",width:"100",label:"限制名单"},{default:w((e=>[b(S(e.row.people||"-"),1)])),_:1})):$("",!0),y(L,{fixed:"right",label:"操作",width:"140"},{default:w((e=>[s("div",da,[y(p,{type:"primary",text:"",size:"small",onClick:a=>{return l=e.row,La.splice(0,La.length),La.push(...M(l.info)),void(Ia.value=!0);var l}},{default:w((()=>[b(" 查看提交信息 ")])),_:2},1032,["onClick"]),y(p,{type:"primary",text:"",size:"small",onClick:a=>function(e){const{id:a,name:l}=e,t=A(l);Ma.oldName=l,Ma.suffix=t,Ma.id=a,Na.value=!0}(e.row)},{default:w((()=>[b(" 修改文件名 ")])),_:2},1032,["onClick"]),y(p,{type:"primary",text:"",size:"small",onClick:a=>function(e){if(t.value)return void U.error("下载功能已被限制,请联系管理员扩容,或自行删除历史无用文件");const{id:a,name:l}=e;N.getOneFileUrl(a).then((e=>{const{link:a}=e.data;be.value=!0,Ce.value=a,j(a,l),va(),setTimeout((()=>{al()}),1e3)})).catch((()=>{U.error("文件已从服务器上移除")}))}(e.row)},{default:w((()=>[b(" 下载 ")])),_:2},1032,["onClick"]),y(p,{type:"primary",text:"",size:"small",onClick:a=>function(e){const a=za.findIndex((a=>a===e));he.confirm("确认删除此文件吗?","数据无价,请谨慎操作").then((()=>{N.deleteOneFile(e.id).then((()=>{U.success("删除成功"),za.splice(a,1)}))})).catch((()=>{U.info("取消删除")}))}(e.row)},{default:w((()=>[b(" 删除 ")])),_:2},1032,["onClick"])])])),_:1})])),_:1},8,["data"])),[[_a,Ca.value]])]),s("div",ca,[y(ye,{"current-page":Ha.value,background:"","page-count":Oa.value,"page-sizes":[6,10,50,100],"page-size":Fa.value,total:$a.value.length,layout:"total, sizes, prev, pager, next, jumper",onCurrentChange:Ra,onSizeChange:Ba},null,8,["current-page","page-count","page-size","total"])]),y(xe,{modelValue:Ia.value,"onUpdate:modelValue":r[8]||(r[8]=e=>Ia.value=e),fullscreen:C(ll),title:"提交填写的信息"},{default:w((()=>[y(de,{infos:La,disabled:!0},null,8,["infos"])])),_:1},8,["modelValue","fullscreen"]),y(ce,{value:be.value,"onUpdate:value":r[9]||(r[9]=e=>be.value=e),title:"下载链接",link:Ce.value},null,8,["value","link"]),y(xe,{modelValue:Na.value,"onUpdate:modelValue":r[13]||(r[13]=e=>Na.value=e),fullscreen:C(ll),title:"修改文件名"},{default:w((()=>[s("div",null,[y(wa,{"label-width":"100px",model:Ma},{default:w((()=>[y(ke,{label:"原文件名",prop:"newName"},{default:w((()=>[y(m,{modelValue:Ma.oldName,"onUpdate:modelValue":r[10]||(r[10]=e=>Ma.oldName=e),disabled:""},null,8,["modelValue"])])),_:1}),y(ke,{label:"新文件名",prop:"newName"},{default:w((()=>[y(m,{modelValue:Ma.newName,"onUpdate:modelValue":r[11]||(r[11]=e=>Ma.newName=e),placeholder:"请输入新文件名"},{append:w((()=>[b(S(Ma.suffix),1)])),_:1},8,["modelValue"])])),_:1}),y(ke,null,{default:w((()=>[y(p,{type:"success",onClick:Aa},{default:w((()=>[b(" 保存 ")])),_:1}),y(p,{onClick:r[12]||(r[12]=e=>Na.value=!1)},{default:w((()=>[b(" 取消 ")])),_:1})])),_:1})])),_:1},8,["model"])])])),_:1},8,["modelValue","fullscreen"])])}}}),[["__scopeId","data-v-74595087"]]))}}}));
2
+ //# sourceMappingURL=index-legacy-Chw6iyCz.js.map