@sugarat/easypicker2-client 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -0
  3. package/dist/assets/aria-bc8e8b0f.js +2 -0
  4. package/dist/assets/aria-bc8e8b0f.js.map +1 -0
  5. package/dist/assets/aria-legacy.af0825d3.js +2 -0
  6. package/dist/assets/data-analysis-13490516.js +2 -0
  7. package/dist/assets/data-analysis-13490516.js.map +1 -0
  8. package/dist/assets/data-analysis-legacy.f8612e65.js +2 -0
  9. package/dist/assets/data-board-229a3bf5.js +2 -0
  10. package/dist/assets/data-board-229a3bf5.js.map +1 -0
  11. package/dist/assets/data-board-legacy.a60c4519.js +2 -0
  12. package/dist/assets/el-date-picker-5a3e3d86.js +2 -0
  13. package/dist/assets/el-date-picker-5a3e3d86.js.map +1 -0
  14. package/dist/assets/el-date-picker-cf2e83b6.css +1 -0
  15. package/dist/assets/el-date-picker-legacy.6d67764b.js +2 -0
  16. package/dist/assets/el-dialog-25bd2fb8.css +1 -0
  17. package/dist/assets/el-dialog-463960e0.js +2 -0
  18. package/dist/assets/el-dialog-463960e0.js.map +1 -0
  19. package/dist/assets/el-dialog-legacy.0bcf48a4.js +2 -0
  20. package/dist/assets/el-dropdown-item-0c6ddabc.css +1 -0
  21. package/dist/assets/el-dropdown-item-7c33f4fa.js +2 -0
  22. package/dist/assets/el-dropdown-item-7c33f4fa.js.map +1 -0
  23. package/dist/assets/el-dropdown-item-legacy.8625546e.js +2 -0
  24. package/dist/assets/el-form-item-3aad794a.css +1 -0
  25. package/dist/assets/el-form-item-f40006bf.js +2 -0
  26. package/dist/assets/el-form-item-f40006bf.js.map +1 -0
  27. package/dist/assets/el-form-item-legacy.d28db5d0.js +2 -0
  28. package/dist/assets/el-loading-5d91bb6c.js +2 -0
  29. package/dist/assets/el-loading-5d91bb6c.js.map +1 -0
  30. package/dist/assets/el-loading-d0f2d079.css +1 -0
  31. package/dist/assets/el-loading-legacy.0f35210f.js +2 -0
  32. package/dist/assets/el-pagination-bf7c736d.css +1 -0
  33. package/dist/assets/el-pagination-ffb99240.js +2 -0
  34. package/dist/assets/el-pagination-ffb99240.js.map +1 -0
  35. package/dist/assets/el-pagination-legacy.25b54e8d.js +2 -0
  36. package/dist/assets/el-progress-2fff98be.js +2 -0
  37. package/dist/assets/el-progress-2fff98be.js.map +1 -0
  38. package/dist/assets/el-progress-63aabe3a.css +1 -0
  39. package/dist/assets/el-progress-legacy.db8b5855.js +2 -0
  40. package/dist/assets/el-select-6be23320.css +1 -0
  41. package/dist/assets/el-select-7d894fd0.js +2 -0
  42. package/dist/assets/el-select-7d894fd0.js.map +1 -0
  43. package/dist/assets/el-select-legacy.ad6ded5a.js +2 -0
  44. package/dist/assets/el-switch-2eda0412.js +2 -0
  45. package/dist/assets/el-switch-2eda0412.js.map +1 -0
  46. package/dist/assets/el-switch-aeab2c6b.css +1 -0
  47. package/dist/assets/el-switch-legacy.e17e7919.js +2 -0
  48. package/dist/assets/el-tab-pane-4a1bb4c7.css +1 -0
  49. package/dist/assets/el-tab-pane-b3156067.js +2 -0
  50. package/dist/assets/el-tab-pane-b3156067.js.map +1 -0
  51. package/dist/assets/el-tab-pane-legacy.2cf21031.js +2 -0
  52. package/dist/assets/el-table-column-22352e92.js +21 -0
  53. package/dist/assets/el-table-column-22352e92.js.map +1 -0
  54. package/dist/assets/el-table-column-6c2089f9.css +1 -0
  55. package/dist/assets/el-table-column-legacy.fd665e2a.js +24 -0
  56. package/dist/assets/index-01e33329.css +1 -0
  57. package/dist/assets/index-17fa8fb7.js +2 -0
  58. package/dist/assets/index-17fa8fb7.js.map +1 -0
  59. package/dist/assets/index-3091894a.css +1 -0
  60. package/dist/assets/index-34bd5929.js +2 -0
  61. package/dist/assets/index-34bd5929.js.map +1 -0
  62. package/dist/assets/index-34fd4f9f.css +1 -0
  63. package/dist/assets/index-37e15bc6.css +1 -0
  64. package/dist/assets/index-3f82ab7a.css +1 -0
  65. package/dist/assets/index-4c81cf78.css +1 -0
  66. package/dist/assets/index-5f3a9ae0.css +1 -0
  67. package/dist/assets/index-62c7029f.js +15 -0
  68. package/dist/assets/index-62c7029f.js.map +1 -0
  69. package/dist/assets/index-6d7ac779.js +2 -0
  70. package/dist/assets/index-6d7ac779.js.map +1 -0
  71. package/dist/assets/index-6f4c911e.js +2 -0
  72. package/dist/assets/index-6f4c911e.js.map +1 -0
  73. package/dist/assets/index-75b8c91c.js +2 -0
  74. package/dist/assets/index-75b8c91c.js.map +1 -0
  75. package/dist/assets/index-76f31e30.css +1 -0
  76. package/dist/assets/index-76ff9b9b.css +1 -0
  77. package/dist/assets/index-82a6b493.css +1 -0
  78. package/dist/assets/index-8eff6b5a.js +2 -0
  79. package/dist/assets/index-8eff6b5a.js.map +1 -0
  80. package/dist/assets/index-93c733b3.css +1 -0
  81. package/dist/assets/index-98964915.js +2 -0
  82. package/dist/assets/index-98964915.js.map +1 -0
  83. package/dist/assets/index-98b55468.css +1 -0
  84. package/dist/assets/index-9e6bd406.js +2 -0
  85. package/dist/assets/index-9e6bd406.js.map +1 -0
  86. package/dist/assets/index-afb7d164.js +2 -0
  87. package/dist/assets/index-afb7d164.js.map +1 -0
  88. package/dist/assets/index-b0a4c236.js +2 -0
  89. package/dist/assets/index-b0a4c236.js.map +1 -0
  90. package/dist/assets/index-b3774417.js +2 -0
  91. package/dist/assets/index-b3774417.js.map +1 -0
  92. package/dist/assets/index-bc1a6d96.js +2 -0
  93. package/dist/assets/index-bc1a6d96.js.map +1 -0
  94. package/dist/assets/index-c3a1cd43.js +2 -0
  95. package/dist/assets/index-c3a1cd43.js.map +1 -0
  96. package/dist/assets/index-c61deab7.js +2 -0
  97. package/dist/assets/index-c61deab7.js.map +1 -0
  98. package/dist/assets/index-c840d3aa.js +2 -0
  99. package/dist/assets/index-c840d3aa.js.map +1 -0
  100. package/dist/assets/index-ca90e8da.js +2 -0
  101. package/dist/assets/index-ca90e8da.js.map +1 -0
  102. package/dist/assets/index-d32645f3.js +2 -0
  103. package/dist/assets/index-d32645f3.js.map +1 -0
  104. package/dist/assets/index-d3ae2239.css +1 -0
  105. package/dist/assets/index-da51da36.css +1 -0
  106. package/dist/assets/index-e7d8a83e.css +1 -0
  107. package/dist/assets/index-eb08e7b7.css +1 -0
  108. package/dist/assets/index-f298d979.js +2 -0
  109. package/dist/assets/index-f298d979.js.map +1 -0
  110. package/dist/assets/index-f31c9ba4.css +1 -0
  111. package/dist/assets/index-f47a54b0.js +2 -0
  112. package/dist/assets/index-f47a54b0.js.map +1 -0
  113. package/dist/assets/index-f6ffb548.js +2 -0
  114. package/dist/assets/index-f6ffb548.js.map +1 -0
  115. package/dist/assets/index-legacy.01d9320a.js +2 -0
  116. package/dist/assets/index-legacy.08663170.js +2 -0
  117. package/dist/assets/index-legacy.1540c5bc.js +2 -0
  118. package/dist/assets/index-legacy.189f20a8.js +2 -0
  119. package/dist/assets/index-legacy.1f2405e5.js +2 -0
  120. package/dist/assets/index-legacy.45ec3501.js +2 -0
  121. package/dist/assets/index-legacy.4f956884.js +2 -0
  122. package/dist/assets/index-legacy.51740a44.js +2 -0
  123. package/dist/assets/index-legacy.5d174bde.js +2 -0
  124. package/dist/assets/index-legacy.6c7021b3.js +2 -0
  125. package/dist/assets/index-legacy.7dae3131.js +2 -0
  126. package/dist/assets/index-legacy.978f90e1.js +18 -0
  127. package/dist/assets/index-legacy.9c4986d3.js +2 -0
  128. package/dist/assets/index-legacy.9dc57803.js +2 -0
  129. package/dist/assets/index-legacy.9f65dcb9.js +2 -0
  130. package/dist/assets/index-legacy.bd5a4368.js +2 -0
  131. package/dist/assets/index-legacy.d32480a5.js +2 -0
  132. package/dist/assets/index-legacy.d9854cf5.js +2 -0
  133. package/dist/assets/index-legacy.e6994f0a.js +2 -0
  134. package/dist/assets/index-legacy.e7464d3c.js +2 -0
  135. package/dist/assets/index-legacy.f84efe08.js +2 -0
  136. package/dist/assets/isEqual-9c466456.js +2 -0
  137. package/dist/assets/isEqual-9c466456.js.map +1 -0
  138. package/dist/assets/isEqual-legacy.985bb619.js +2 -0
  139. package/dist/assets/other-8d7ba6a0.js +2 -0
  140. package/dist/assets/other-8d7ba6a0.js.map +1 -0
  141. package/dist/assets/other-legacy.39078796.js +2 -0
  142. package/dist/assets/polyfills-legacy.99e38685.js +4 -0
  143. package/dist/assets/refresh-6ae903c0.js +2 -0
  144. package/dist/assets/refresh-6ae903c0.js.map +1 -0
  145. package/dist/assets/refresh-legacy.8092415a.js +2 -0
  146. package/dist/assets/tip-00ddf749.js +2 -0
  147. package/dist/assets/tip-00ddf749.js.map +1 -0
  148. package/dist/assets/tip-9cb18ee8.css +1 -0
  149. package/dist/assets/tip-legacy.6e921091.js +2 -0
  150. package/dist/assets/validator-853854a1.js +2 -0
  151. package/dist/assets/validator-853854a1.js.map +1 -0
  152. package/dist/assets/validator-legacy.b34dfdfa.js +2 -0
  153. package/dist/favicon.ico +0 -0
  154. package/dist/index.html +134 -0
  155. package/dist/logo.png +0 -0
  156. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-b0a4c236.js","sources":["../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/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","<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 class=\"nav-item\"\n v-for=\"(n, idx) in pcNavs\"\n :key=\"idx\"\n @click=\"handleNav(idx)\"\n >\n {{ n.title }}\n </div>\n </nav>\n </div>\n </div>\n <!-- 有效 -->\n <div\n v-loading=\"isLoadingData\"\n element-loading-text=\"Loading...\"\n class=\"panel tc\"\n v-if=\"k\"\n >\n <!-- 任务名 -->\n <h1 class=\"name\">\n {{ taskInfo.name }}\n </h1>\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 hide-on-click-modal\n v-for=\"(img, idx) in imageList\"\n :key=\"img.uid\"\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=\"已经结束啦!\"> </el-empty>\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 :maxlength=\"14\"\n clearable\n show-word-limit\n :placeholder=\"`请输入 ${limitBindField}`\"\n v-model=\"validModal.peopleName\"\n ></el-input>\n </el-form-item>\n </el-form>\n </div>\n </div>\n <InfosForm :infos=\"infos\" :disabled=\"disableForm\"></InfosForm>\n </div>\n <el-upload\n style=\"max-width: 400px; margin: 0 auto\"\n :drag=\"!isMobile\"\n action=\"\"\n ref=\"fileUpload\"\n :on-change=\"handleChangeFile\"\n :before-remove=\"handleRemoveFile\"\n :on-exceed=\"handleExceed\"\n :auto-upload=\"false\"\n multiple\n :limit=\"limitUploadCount\"\n v-model:file-list=\"fileList\"\n >\n <el-button v-if=\"isMobile\" type=\"primary\">选择文件</el-button>\n <template v-else>\n <el-icon class=\"el-icon--upload\">\n <upload-filled />\n </el-icon>\n <div class=\"el-upload__text\">\n 将文件拖于此处 or <em>直接选择文件</em>\n </div>\n </template>\n <template #tip>\n <div class=\"p10\" v-show=\"!!calculateMd5Count\">\n <tip\n >还有\n {{ calculateMd5Count }}\n 个文件正在生成校验信息,请稍等(1G通常需要20s)</tip\n >\n </div>\n </template>\n </el-upload>\n <div class=\"p10\">\n <el-button\n v-if=\"isWithdraw\"\n size=\"default\"\n @click=\"startWithdraw\"\n type=\"warning\"\n :disabled=\"!allowWithdraw || !!calculateMd5Count\"\n >一键撤回</el-button\n >\n <el-button\n v-else\n size=\"default\"\n @click=\"submitUpload\"\n type=\"success\"\n :disabled=\"!allowUpload || !!calculateMd5Count\"\n >提交文件</el-button\n >\n <el-button @click=\"checkSubmitStatus\" size=\"default\"\n >查询提交情况</el-button\n >\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></tip\n >\n <tip v-if=\"formatData.size\"\n >限制文件大小不超过:\n <span style=\"color: red\">{{\n formatSize(formatData.size)\n }}</span></tip\n >\n <template v-if=\"isWithdraw\">\n <tip\n >① 须保证选择的文件与提交时的文件一致<br />\n ② 填写表单信息一致 <br />\n ③\n 完全一模一样的文件的提交记录(内容md5+命名),将会一次性全部撤回</tip\n >\n </template>\n <template v-else>\n <tip\n >① 选择完文件,点击 ”提交文件“即可 <br />\n ② <strong>选择大文件后需要等待一会儿才展示处理</strong>\n <template v-if=\"taskMoreInfo.template\"\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></template\n >\n </tip>\n </template>\n </div>\n <div class=\"withdraw\">\n <el-button\n type=\"primary\"\n text\n style=\"color: #85ce61\"\n v-if=\"taskMoreInfo.template\"\n size=\"small\"\n @click=\"downloadTemplate\"\n >查看提交示例</el-button\n >\n <el-button\n v-if=\"isWithdraw\"\n @click=\"isWithdraw = false\"\n size=\"small\"\n type=\"primary\"\n text\n >正常提交</el-button\n >\n <el-button\n v-else\n size=\"small\"\n @click=\"isWithdraw = true\"\n type=\"primary\"\n text\n >我要撤回</el-button\n >\n </div>\n </div>\n </div>\n <!-- 无效任务 -->\n <div class=\"panel tc\" v-else>\n <h1 class=\"name\">\n {{ taskInfo.name }}\n </h1>\n </div>\n <LinkDialog\n v-model:value=\"showLinkModel\"\n title=\"示例文件下载链接\"\n :link=\"templateLink\"\n ></LinkDialog>\n <div style=\"padding-top: 20px\">\n <home-footer type=\"task\"></home-footer>\n </div>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport type { UploadUserFile, UploadInstance, FormInstance } 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 {\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 Tip from '../dashboard/tasks/components/infoPanel/tip.vue'\nimport InfosForm from '@/components/InfosForm/index.vue'\n\nconst $store = useStore()\nconst isMobile = computed(() => $store.getters['public/isMobile'])\n// 顶部导航\nconst $router = useRouter()\nconst $route = useRoute()\nconst pcNavs = reactive([\n {\n title: '我也要收集',\n path: 'https://docs.ep.sugarat.top/'\n }\n])\nconst 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})\nconst refreshWaitTime = (loop = true) => {\n if (taskMoreInfo?.ddl) {\n const date = new Date(taskMoreInfo.ddl)\n waitTime.value = date.getTime() - Date.now()\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\nconst 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})\nconst 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\nconst 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 } 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\nconst submitUpload = async () => {\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)\nconst handleChangeFile = (file: any) => {\n // 校验文件后缀名\n const { name } = file\n if (formatData.value.format.length && formatData.value.status) {\n const suffix = getFileSuffix(name)\n if (!formatData.value.format.find((v) => suffix.endsWith(v))) {\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)\nconst handleExceed = () => {\n ElMessage.warning(\n `一次提交最多只能选择${limitUploadCount.value}个文件,请移除已经上传成功的或刷新页面`\n )\n}\nconst showLinkModel = ref(false)\nconst templateLink = ref('')\nconst 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 } 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}\nconst 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)\nconst startWithdraw = async () => {\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// 查询提交情况\nconst checkSubmitStatus = async () => {\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 } else {\n ElMessage.warning('还未提交过哟')\n }\n }\n )\n}\nconst isLoadingData = ref(false)\nconst readyRefresh = ref(false)\nconst 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}\nconst 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}\nconst handleBlur = () => {\n readyRefresh.value = true\n}\nconst 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 } catch {\n tipData.text = ''\n tipData.imgs = []\n imageList.value = []\n }\n }\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 })\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<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","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","uploadFilled","_export_sfc","$store","useStore","isMobile","computed","$router","useRouter","$route","useRoute","pcNavs","reactive","handleNav","idx","taskInfo","taskMoreInfo","formatData","parseFileFormat","k","ref","waitTime","isOver","waitTimeStr","seconds","hour","day","minute","refreshWaitTime","loop","date","ddlStr","formatDate","infos","fileList","fileUpload","disableForm","item","handleRemoveFile","file","ElMessageBox","ElMessage","isWriteFinish","limitBindField","isSameFieldName","v","showValidForm","validModal","validatePeopleName","rule","value","callback","message","PeopleApi","res","validModalRef","validModalRules","confirmPeopleName","_a","resolve","isValid","startUpload","uploadFiles","name","originName","getFileSuffix","normalizeFileName","key","FileApi","qiniuUpload","data","fsize","per","subscription","submitUpload","allowUpload","allowWithdraw","calculateMd5Count","handleChangeFile","suffix","formatSize","getFileMd5Hash","str","limitUploadCount","handleExceed","showLinkModel","templateLink","runWithdraw","downloadTemplate","link","downLoadByUrl","isWithdraw","startWithdraw","checkSubmitStatus","isLoadingData","readyRefresh","isEqualInfos","a","b","i","refreshTaskMoreInfo","hot","TaskApi","parseInfo","handleBlur","handleFocus","timeInfo","tipData","imageList","watch","parseData","PublicApi","url","e","onMounted","err","onUnmounted"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,2 @@
1
+ import{g as f,d as l,f as o,c as n,a as t,i as $,F as m,C as h,j as u,w as g,p as w,e as T,D as k,G as I,H as z,t as x,b as N,I as C,_ as M}from"./index-62c7029f.js";const y=l({name:"Promotion"}),E={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},B=t("path",{fill:"currentColor",d:"m64 448 832-320-128 704-446.08-243.328L832 192 242.816 545.472 64 448zm256 512V657.024L512 768 320 960z"},null,-1),O=[B];function Q(e,a,c,d,p,i){return o(),n("svg",E,O)}var Y=f(y,[["render",Q]]);const b=l({name:"UserFilled"}),j={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},D=t("path",{fill:"currentColor",d:"M288 320a224 224 0 1 0 448 0 224 224 0 1 0-448 0zm544 608H160a32 32 0 0 1-32-32v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 0 1-32 32z"},null,-1),F=[D];function S(e,a,c,d,p,i){return o(),n("svg",j,F)}var V=f(b,[["render",S]]);const r=e=>(w("data-v-a235cdd8"),e=e(),T(),e),L={class:"callme"},q={class:"panel"},A=r(()=>t("h1",null,"联系作者",-1)),H={class:"baseinfo"},G=["href"],P=r(()=>t("hr",null,null,-1)),U={class:"qq-wechat"},J={class:"title"},K={class:"content"},R=["src"],W=r(()=>t("div",{class:"description"},[t("p",null,"如遇无法解决的账号/使用问题,欢迎小窗联系我")],-1)),X={class:"links"},Z=l({__name:"index",setup(e){const a=[{icon:V,text:"粥里有勺糖",href:"https://sugarat.top"},{icon:Y,text:"engineerzjl@foxmail.com",href:"mailto:engineerzjl@foxmail.com"}],c=[{text:"微信",img:"https://img.cdn.sugarat.top/mdImg/MTYxOTE1NTk3MTkyNA==619155971925"},{text:"公众号",img:"https://img.cdn.sugarat.top/mdImg/MTYxOTE1NTYwNzQ5MQ==619155607491"},{text:"QQ",img:"https://img.cdn.sugarat.top/mdImg/MTYxOTE1NjQ5ODczOQ==619156498739"},{text:"交流群",img:"https://img.cdn.sugarat.top/mdImg/MTY0Nzc2MTE2MTE2NA==ep-group.png"}];return(d,p)=>{const i=C,v=$("router-link");return o(),n("div",L,[t("main",null,[t("div",q,[A,t("div",H,[(o(),n(m,null,h(a,(s,_)=>t("span",{key:_,class:"info-item"},[u(i,null,{default:g(()=>[(o(),k(I(s.icon)))]),_:2},1024),t("i",{class:z(s.icon)},null,2),t("a",{target:"_blank",href:s.href},x(s.text),9,G)])),64))]),P,t("div",U,[t("ul",null,[(o(),n(m,null,h(c,(s,_)=>t("li",{key:_},[t("div",J,x(s.text),1),t("div",K,[t("img",{src:s.img},null,8,R)])])),64))])]),W,t("div",X,[u(v,{to:"/"},{default:g(()=>[N("回到首页")]),_:1})])])])])}}});const st=M(Z,[["__scopeId","data-v-a235cdd8"]]);export{st as default};
2
+ //# sourceMappingURL=index-b3774417.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-b3774417.js","sources":["../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/promotion.mjs","../../node_modules/.pnpm/@element-plus+icons-vue@1.1.4_vue@3.3.4/node_modules/@element-plus/icons-vue/dist/es/user-filled.mjs","../../src/pages/callme/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: \"Promotion\"\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: \"m64 448 832-320-128 704-446.08-243.328L832 192 242.816 545.472 64 448zm256 512V657.024L512 768 320 960z\"\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 promotion = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { promotion 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: \"UserFilled\"\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: \"M288 320a224 224 0 1 0 448 0 224 224 0 1 0-448 0zm544 608H160a32 32 0 0 1-32-32v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 0 1-32 32z\"\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 userFilled = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { userFilled as default };\n","<template>\n <div class=\"callme\">\n <main>\n <div class=\"panel\">\n <h1>联系作者</h1>\n <!-- 基本信息 -->\n <div class=\"baseinfo\">\n <span v-for=\"(info, idx) in baseInfo\" :key=\"idx\" class=\"info-item\">\n <el-icon>\n <component :is=\"info.icon\" />\n </el-icon>\n <i :class=\"info.icon\"></i>\n <a target=\"_blank\" :href=\"info.href\">{{ info.text }}</a>\n </span>\n </div>\n <hr />\n <!-- 一堆二维码 -->\n <div class=\"qq-wechat\">\n <ul>\n <li v-for=\"(qrcode, idx) in qrCOdes\" :key=\"idx\">\n <div class=\"title\">{{ qrcode.text }}</div>\n <div class=\"content\">\n <img :src=\"qrcode.img\" />\n </div>\n </li>\n </ul>\n </div>\n <div class=\"description\">\n <p>如遇无法解决的账号/使用问题,欢迎小窗联系我</p>\n </div>\n <div class=\"links\">\n <router-link to=\"/\">回到首页</router-link>\n </div>\n </div>\n </main>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { UserFilled, Promotion } from '@element-plus/icons-vue'\n\nconst baseInfo = [\n {\n icon: UserFilled,\n text: '粥里有勺糖',\n href: 'https://sugarat.top',\n },\n {\n icon: Promotion,\n text: 'engineerzjl@foxmail.com',\n href: 'mailto:engineerzjl@foxmail.com',\n },\n]\n\nconst qrCOdes = [\n {\n text: '微信',\n img: 'https://img.cdn.sugarat.top/mdImg/MTYxOTE1NTk3MTkyNA==619155971925',\n },\n {\n text: '公众号',\n img: 'https://img.cdn.sugarat.top/mdImg/MTYxOTE1NTYwNzQ5MQ==619155607491',\n },\n {\n text: 'QQ',\n img: 'https://img.cdn.sugarat.top/mdImg/MTYxOTE1NjQ5ODczOQ==619156498739',\n },\n {\n text: '交流群',\n img: 'https://img.cdn.sugarat.top/mdImg/MTY0Nzc2MTE2MTE2NA==ep-group.png',\n },\n]\n\n</script>\n<style lang=\"scss\" scoped>\nh1,\nh2,\nh3,\nh4 {\n font-weight: 500;\n}\n.callme {\n background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);\n min-height: 100vh;\n}\nmain {\n max-width: 860px;\n margin: 0 auto;\n padding: 20px;\n .panel {\n position: relative;\n margin: 0 auto 20px;\n padding: 16px 20px;\n width: 100%;\n overflow: hidden;\n border-radius: 0.25rem;\n box-shadow: #eee;\n box-sizing: border-box;\n transition: all 0.3s;\n background-color: #fff;\n }\n h1 {\n font-size: 1.6rem;\n font-weight: 500;\n margin-bottom: 10px;\n }\n .baseinfo {\n color: #7f7f7f;\n font-size: 1rem;\n display: flex;\n flex-wrap: wrap;\n a {\n color: #7f7f7f;\n font-size: 1rem;\n margin-left: 10px;\n }\n .info-item {\n margin-right: 20px;\n }\n margin-bottom: 10px;\n }\n hr {\n margin-bottom: 10px;\n }\n .qq-wechat ul {\n list-style: none;\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 10px;\n li {\n text-align: center;\n .title {\n font-weight: 600;\n }\n .content {\n padding: 0.5em;\n }\n img {\n width: 150px;\n }\n }\n }\n .description {\n color: #242424;\n font-size: 15px;\n margin-bottom: 10px;\n text-align: center;\n }\n .links {\n text-align: center;\n a {\n color: #409eff;\n }\n }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","_hoisted_1","_hoisted_2","createElementVNode","_hoisted_3","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","promotion","_export_sfc","userFilled","baseInfo","UserFilled","Promotion","qrCOdes"],"mappings":"sKAGA,MAAMA,EAAYC,EAAgB,CAChC,KAAM,WACR,CAAC,EACKC,EAAa,CACjB,QAAS,gBACT,MAAO,4BACT,EACMC,EAA6BC,EAAmB,OAAQ,CAC5D,KAAM,eACN,EAAG,yGACL,EAAG,KAAM,EAAE,EACLC,EAAa,CACjBF,CACF,EACA,SAASG,EAAYC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAOC,EAAW,EAAEC,EAAmB,MAAOZ,EAAYG,CAAU,CACtE,CACA,IAAIU,EAA4BC,EAAYhB,EAAW,CAAC,CAAC,SAAUM,CAAW,CAAC,CAAC,ECjBhF,MAAMN,EAAYC,EAAgB,CAChC,KAAM,YACR,CAAC,EACKC,EAAa,CACjB,QAAS,gBACT,MAAO,4BACT,EACMC,EAA6BC,EAAmB,OAAQ,CAC5D,KAAM,eACN,EAAG,2JACL,EAAG,KAAM,EAAE,EACLC,EAAa,CACjBF,CACF,EACA,SAASG,EAAYC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,EAAU,CAClE,OAAOC,EAAW,EAAEC,EAAmB,MAAOZ,EAAYG,CAAU,CACtE,CACA,IAAIY,EAA6BD,EAAYhB,EAAW,CAAC,CAAC,SAAUM,CAAW,CAAC,CAAC,0XCoBjF,MAAAY,EAAA,CAAiB,CACf,KAAAC,EACQ,KAAA,QACA,KAAA,qBACA,EACR,CACA,KAAAC,EACQ,KAAA,0BACA,KAAA,gCACA,CACR,EAGFC,EAAA,CAAgB,CACd,KAAA,KACQ,IAAA,oEACD,EACP,CACA,KAAA,MACQ,IAAA,oEACD,EACP,CACA,KAAA,KACQ,IAAA,oEACD,EACP,CACA,KAAA,MACQ,IAAA,oEACD,CACP","x_google_ignoreList":[0,1]}
@@ -0,0 +1,2 @@
1
+ import{J as et,aj as vt,N as tt,d as Q,Q as lt,f as d,c as h,H as he,k as y,T as qe,b as u,t as L,S as R,a as i,aB as at,Y as nt,aD as gt,aE as de,aF as yt,aG as ht,aH as Ce,aI as kt,r as I,Z as W,aJ as bt,O,aK as Ne,aw as $t,aL as wt,$ as Se,o as Le,aM as Vt,a6 as ce,aN as Ve,j as e,w as t,D,av as Ct,aO as xt,I as $e,aP as It,aQ as Tt,aR as Be,v as _e,aS as Et,aT as Ge,g as fe,h as xe,E as U,_ as ve,i as Ae,F as ee,C as le,x as se,p as Me,e as Fe,a7 as be,s as ye,aU as Ie,a5 as we,aV as ot,aW as ke,aX as Nt,aa as Pe,ab as st,aY as ut,aZ as it,ad as We,a_ as rt,P as St,a$ as Mt,a9 as Ft,ac as dt}from"./index-62c7029f.js";import{E as zt,a as Ut}from"./el-tab-pane-b3156067.js";import{E as Oe}from"./el-dialog-463960e0.js";import{E as Ke,a as je}from"./el-form-item-f40006bf.js";import{b as ct,a as ze,E as Ue}from"./el-select-7d894fd0.js";import{E as He,a as Dt}from"./el-progress-2fff98be.js";import{E as Bt,a as Pt,b as Lt,I as At,L as Ot}from"./index-34bd5929.js";import{R as Ze,d as Kt,E as jt}from"./el-date-picker-5a3e3d86.js";import{E as De}from"./index-17fa8fb7.js";import{T as S,a as Ht}from"./tip-00ddf749.js";import{d as Yt}from"./other-8d7ba6a0.js";import{v as Rt}from"./el-loading-5d91bb6c.js";import{a as Qt,E as Jt}from"./el-table-column-22352e92.js";import{E as pt}from"./el-switch-2eda0412.js";import{u as qt}from"./index-6d7ac779.js";import"./isEqual-9c466456.js";import"./validator-853854a1.js";import"./aria-bc8e8b0f.js";const Gt=et({header:{type:String,default:""},bodyStyle:{type:vt([String,Object,Array]),default:""},shadow:{type:String,values:["always","hover","never"],default:"always"}}),Wt={name:"ElCard"},Zt=Q({...Wt,props:Gt,setup(o){const a=lt("card");return(n,s)=>(d(),h("div",{class:he([y(a).b(),y(a).is("".concat(n.shadow,"-shadow"))])},[n.$slots.header||n.header?(d(),h("div",{key:0,class:he(y(a).e("header"))},[qe(n.$slots,"header",{},()=>[u(L(n.header),1)])],2)):R("v-if",!0),i("div",{class:he(y(a).e("body")),style:at(n.bodyStyle)},[qe(n.$slots,"default")],6)],2))}});var Xt=tt(Zt,[["__file","/home/runner/work/element-plus/element-plus/packages/components/card/src/card.vue"]]);const el=nt(Xt),tl=et({id:{type:String,default:void 0},step:{type:Number,default:1},stepStrictly:Boolean,max:{type:Number,default:Number.POSITIVE_INFINITY},min:{type:Number,default:Number.NEGATIVE_INFINITY},modelValue:Number,disabled:Boolean,size:gt,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:"",values:["","right"]},valueOnClear:{type:[String,Number,null],validator:o=>o===null||de(o)||["min","max"].includes(o),default:null},name:String,label:String,placeholder:String,precision:{type:Number,validator:o=>o>=0&&o===Number.parseInt("".concat(o),10)},validateEvent:{type:Boolean,default:!0}}),ll={[yt]:(o,a)=>o!==a,blur:o=>o instanceof FocusEvent,focus:o=>o instanceof FocusEvent,[ht]:o=>de(o)||Ce(o),[kt]:o=>de(o)||Ce(o)},al=["aria-label","onKeydown"],nl=["aria-label","onKeydown"],ol={name:"ElInputNumber"},sl=Q({...ol,props:tl,emits:ll,setup(o,{expose:a,emit:n}){const s=o,{t:v}=qt(),p=lt("input-number"),k=I(),f=W({currentValue:s.modelValue,userInput:null}),{formItem:C}=bt(),c=O(()=>de(s.modelValue)&&B(s.modelValue,-1)<s.min),b=O(()=>de(s.modelValue)&&B(s.modelValue)>s.max),$=O(()=>{const l=H(s.step);return Ne(s.precision)?Math.max(H(s.modelValue),l):(l>s.precision,s.precision)}),F=O(()=>s.controls&&s.controlsPosition==="right"),j=$t(),z=wt(),m=O(()=>{if(f.userInput!==null)return f.userInput;let l=f.currentValue;if(Ce(l))return"";if(de(l)){if(Number.isNaN(l))return"";Ne(s.precision)||(l=l.toFixed(s.precision))}return l}),T=(l,r)=>{if(Ne(r)&&(r=$.value),r===0)return Math.round(l);let w=String(l);const M=w.indexOf(".");if(M===-1||!w.replace(".","").split("")[M+r])return l;const Z=w.length;return w.charAt(Z-1)==="5"&&(w="".concat(w.slice(0,Math.max(0,Z-1)),"6")),Number.parseFloat(Number(w).toFixed(r))},H=l=>{if(Ce(l))return 0;const r=l.toString(),w=r.indexOf(".");let M=0;return w!==-1&&(M=r.length-w-1),M},B=(l,r=1)=>de(l)?T(l+s.step*r):f.currentValue,A=()=>{if(z.value||b.value)return;const l=s.modelValue||0,r=B(l);E(r)},Y=()=>{if(z.value||c.value)return;const l=s.modelValue||0,r=B(l,-1);E(r)},K=(l,r)=>{const{max:w,min:M,step:x,precision:q,stepStrictly:Z,valueOnClear:re}=s;let V=Number(l);if(Ce(l)||Number.isNaN(V))return null;if(l===""){if(re===null)return null;V=Et(re)?{min:M,max:w}[re]:re}return Z&&(V=T(Math.round(V/x)*x,q)),Ne(q)||(V=T(V,q)),(V>w||V<M)&&(V=V>w?w:M,r&&n("update:modelValue",V)),V},E=l=>{var r;const w=f.currentValue,M=K(l);w!==M&&(f.userInput=null,n("update:modelValue",M),n("input",M),n("change",M,w),s.validateEvent&&((r=C==null?void 0:C.validate)==null||r.call(C,"change").catch(x=>Ge())),f.currentValue=M)},J=l=>f.userInput=l,ae=l=>{const r=l!==""?Number(l):"";(de(r)&&!Number.isNaN(r)||l==="")&&E(r),f.userInput=null},ue=()=>{var l,r;(r=(l=k.value)==null?void 0:l.focus)==null||r.call(l)},pe=()=>{var l,r;(r=(l=k.value)==null?void 0:l.blur)==null||r.call(l)},ge=l=>{n("focus",l)},ie=l=>{var r;n("blur",l),s.validateEvent&&((r=C==null?void 0:C.validate)==null||r.call(C,"blur").catch(w=>Ge()))};return Se(()=>s.modelValue,l=>{f.currentValue=K(l,!0),f.userInput=null},{immediate:!0}),Le(()=>{var l;const{min:r,max:w,modelValue:M}=s,x=(l=k.value)==null?void 0:l.input;if(x.setAttribute("role","spinbutton"),Number.isFinite(w)?x.setAttribute("aria-valuemax",String(w)):x.removeAttribute("aria-valuemax"),Number.isFinite(r)?x.setAttribute("aria-valuemin",String(r)):x.removeAttribute("aria-valuemin"),x.setAttribute("aria-valuenow",String(f.currentValue)),x.setAttribute("aria-disabled",String(z.value)),!de(M)&&M!=null){let q=Number(M);Number.isNaN(q)&&(q=null),n("update:modelValue",q)}}),Vt(()=>{var l;const r=(l=k.value)==null?void 0:l.input;r==null||r.setAttribute("aria-valuenow","".concat(f.currentValue))}),a({focus:ue,blur:pe}),(l,r)=>(d(),h("div",{class:he([y(p).b(),y(p).m(y(j)),y(p).is("disabled",y(z)),y(p).is("without-controls",!l.controls),y(p).is("controls-right",y(F))]),onDragstart:r[0]||(r[0]=Be(()=>{},["prevent"]))},[l.controls?ce((d(),h("span",{key:0,role:"button","aria-label":y(v)("el.inputNumber.decrease"),class:he([y(p).e("decrease"),y(p).is("disabled",y(c))]),onKeydown:Ve(Y,["enter"])},[e(y($e),null,{default:t(()=>[y(F)?(d(),D(y(Ct),{key:0})):(d(),D(y(xt),{key:1}))]),_:1})],42,al)),[[y(Ze),Y]]):R("v-if",!0),l.controls?ce((d(),h("span",{key:1,role:"button","aria-label":y(v)("el.inputNumber.increase"),class:he([y(p).e("increase"),y(p).is("disabled",y(b))]),onKeydown:Ve(A,["enter"])},[e(y($e),null,{default:t(()=>[y(F)?(d(),D(y(It),{key:0})):(d(),D(y(Tt),{key:1}))]),_:1})],42,nl)),[[y(Ze),A]]):R("v-if",!0),e(y(_e),{id:l.id,ref_key:"input",ref:k,type:"number",step:l.step,"model-value":y(m),placeholder:l.placeholder,disabled:y(z),size:y(j),max:l.max,min:l.min,name:l.name,label:l.label,"validate-event":!1,onKeydown:[Ve(Be(A,["prevent"]),["up"]),Ve(Be(Y,["prevent"]),["down"])],onBlur:ie,onFocus:ge,onInput:J,onChange:ae},null,8,["id","step","model-value","placeholder","disabled","size","max","min","name","label","onKeydown"])],34))}});var ul=tt(sl,[["__file","/home/runner/work/element-plus/element-plus/packages/components/input-number/src/input-number.vue"]]);const il=nt(ul),rl=Q({name:"CircleCloseFilled"}),dl={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},cl=i("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336L512 457.664z"},null,-1),pl=[cl];function ml(o,a,n,s,v,p){return d(),h("svg",dl,pl)}var Xe=fe(rl,[["render",ml]]);const _l=Q({name:"CirclePlusFilled"}),fl={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},vl=i("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896zm-38.4 409.6H326.4a38.4 38.4 0 1 0 0 76.8h147.2v147.2a38.4 38.4 0 0 0 76.8 0V550.4h147.2a38.4 38.4 0 0 0 0-76.8H550.4V326.4a38.4 38.4 0 1 0-76.8 0v147.2z"},null,-1),gl=[vl];function yl(o,a,n,s,v,p){return d(),h("svg",fl,gl)}var hl=fe(_l,[["render",yl]]);const kl=Q({name:"Delete"}),bl={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},$l=i("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32V256zm448-64v-64H416v64h192zM224 896h576V256H224v640zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32zm192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32z"},null,-1),wl=[$l];function Vl(o,a,n,s,v,p){return d(),h("svg",bl,wl)}var Cl=fe(kl,[["render",Vl]]);const xl=Q({name:"Edit"}),Il={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Tl=i("path",{fill:"currentColor",d:"M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640V512z"},null,-1),El=i("path",{fill:"currentColor",d:"m469.952 554.24 52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.44l-7.552 52.8zm422.4-422.4a96 96 0 0 1 0 135.808l-331.84 331.84a32 32 0 0 1-18.112 9.088L436.8 623.68a32 32 0 0 1-36.224-36.224l15.104-105.6a32 32 0 0 1 9.024-18.112l331.904-331.84a96 96 0 0 1 135.744 0z"},null,-1),Nl=[Tl,El];function Sl(o,a,n,s,v,p){return d(),h("svg",Il,Nl)}var Ml=fe(xl,[["render",Sl]]);const Fl=Q({name:"Menu"}),zl={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Ul=i("path",{fill:"currentColor",d:"M160 448a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32H160zm448 0a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32H608zM160 896a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32H160zm448 0a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32H608z"},null,-1),Dl=[Ul];function Bl(o,a,n,s,v,p){return d(),h("svg",zl,Dl)}var mt=fe(Fl,[["render",Bl]]);const Pl=Q({name:"Plus"}),Ll={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Al=i("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z"},null,-1),Ol=[Al];function Kl(o,a,n,s,v,p){return d(),h("svg",Ll,Ol)}var jl=fe(Pl,[["render",Kl]]);const Hl=Q({name:"Share"}),Yl={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Rl=i("path",{fill:"currentColor",d:"m679.872 348.8-301.76 188.608a127.808 127.808 0 0 1 5.12 52.16l279.936 104.96a128 128 0 1 1-22.464 59.904l-279.872-104.96a128 128 0 1 1-16.64-166.272l301.696-188.608a128 128 0 1 1 33.92 54.272z"},null,-1),Ql=[Rl];function Jl(o,a,n,s,v,p){return d(),h("svg",Yl,Ql)}var ql=fe(Hl,[["render",Jl]]);const Gl=Q({name:"Top"}),Wl={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Zl=i("path",{fill:"currentColor",d:"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z"},null,-1),Xl=[Zl];function ea(o,a,n,s,v,p){return d(),h("svg",Wl,Xl)}var ta=fe(Gl,[["render",ea]]);const la=Q({name:"categoryPanel",components:{DeleteFilled:Kt},props:{category:{type:String,required:!0,default:"default"}},setup(o,a){const n=xe(),s=O(()=>n.state.category.categoryList),v=O(()=>n.state.task.taskList),p=$=>{const F=v.value.filter(j=>j.category===$).length;return F===0?"":" (".concat(F,")")},k=I(!1),f=I(""),C=()=>{k.value=!1,f.value.trim()&&(n.dispatch("category/createCategory",f.value).then(()=>{U.success("创建成功")}).catch($=>{$.code===2001&&U.warning("分类名称已存在")}),f.value="")},c=$=>{a.emit("update:category",$)};return{categorys:s,isShowCreateCategory:k,categoryName:f,addCategory:C,handleDeleteCategory:$=>{De.confirm("是否删除","提示",{confirmButtonText:"确定",cancelButtonText:"取消"}).then(()=>{n.dispatch("category/deleteCategory",$.k).then(()=>{c("default"),U.success("删除成功"),n.dispatch("task/getTask")})}).catch(()=>{U.info("取消删除")})},handleClickCategory:c,taskCount:p}}});const aa=o=>(Me("data-v-89760030"),o=o(),Fe(),o),na={class:"panel"},oa=aa(()=>i("div",{class:"btn-area"},[i("h5",null,"分类列表"),i("h6",{style:{"font-weight":"lighter"}},"(点击分类可筛选任务)")],-1)),sa={style:{"margin-top":"15px"},class:"category-list"},ua={class:"new-tag-wrap"},ia={class:"list-tip"},ra={class:"tag-wrap"},da={class:"tag-list"};function ca(o,a,n,s,v,p){const k=_e,f=se,C=ct,c=Ae("DeleteFilled"),b=$e;return d(),h("div",na,[oa,i("div",sa,[i("div",ua,[o.isShowCreateCategory?(d(),D(k,{key:0,class:"input-new-tag el-tag",modelValue:o.categoryName,"onUpdate:modelValue":a[0]||(a[0]=$=>o.categoryName=$),ref:"saveTagInput",placeholder:"分类名称",onKeyup:Ve(o.addCategory,["enter"]),onFocusout:o.addCategory},null,8,["modelValue","onKeyup","onFocusout"])):(d(),D(f,{key:1,class:"button-new-tag el-tag",size:"small",onClick:a[1]||(a[1]=$=>o.isShowCreateCategory=!0)},{default:t(()=>[u("+ New 分类")]),_:1})),e(C,{effect:o.category==="default"?"dark":"plain",onClick:a[2]||(a[2]=$=>o.handleClickCategory("default"))},{default:t(()=>[u("默认"+L(o.taskCount("default")),1)]),_:1},8,["effect"]),i("span",ia,[e(C,{type:"danger",effect:o.category==="trash"?"dark":"plain",onClick:a[3]||(a[3]=$=>o.handleClickCategory("trash"))},{default:t(()=>[e(b,null,{default:t(()=>[e(c)]),_:1}),u(" 回收站"+L(o.taskCount("trash")),1)]),_:1},8,["effect"])])]),i("div",ra,[i("div",da,[(d(!0),h(ee,null,le(o.categorys,$=>(d(),D(C,{key:$.k,closable:"",effect:o.category===$.k?"dark":"plain",onClose:F=>o.handleDeleteCategory($),onClick:F=>o.handleClickCategory($.k)},{default:t(()=>[u(L($.name)+L(o.taskCount($.k)),1)]),_:2},1032,["effect","onClose","onClick"]))),128))])])])])}const pa=ve(la,[["render",ca],["__scopeId","data-v-89760030"]]),ma={class:"btn-area"},_a={class:"input-container"},fa=Q({__name:"CreateTask",props:{activeCategoryKey:{type:String,default:"default"}},setup(o){const a=o,n=xe(),s=O(()=>n.state.category.categoryList);O(()=>a.activeCategoryKey==="default"?"默认":s.value.find(f=>f.k===a.activeCategoryKey).name);const v=I(!1),p=I(""),k=()=>{if(!p.value.trim()){U.warning("不能为空");return}n.dispatch("task/createTask",{name:p.value,category:a.activeCategoryKey}).then(()=>{U.success("创建成功")}),p.value=""};return(f,C)=>{var F;const c=se,b=_e,$=$e;return d(),h("div",null,[i("div",ma,[e(c,{size:"large",type:"primary",plain:!v.value,onClick:C[0]||(C[0]=j=>v.value=!v.value)},{default:t(()=>[u(L(v.value?"关闭创建面板":"创建收集任务"),1)]),_:1},8,["plain"])]),ce(i("div",null,[i("div",_a,[e(b,{placeholder:"请输入任务名称(上述列表选择分类)",modelValue:p.value,"onUpdate:modelValue":C[1]||(C[1]=j=>p.value=j)},null,8,["modelValue"]),e(c,{onClick:k,type:(F=p.value)!=null&&F.length?"success":"default"},{default:t(()=>[u("确定")]),_:1},8,["type"])])],512),[[be,v.value]]),e(S,{class:"p10"},{default:t(()=>[u(" 点击 "),e($,null,{default:t(()=>[e(y(mt))]),_:1}),u(" 可以进一步的调整任务 ")]),_:1}),e(S,null,{default:t(()=>[u(" 设置截止时间,自动重命名,名单限制,批注,文件模板。。🚀 ")]),_:1})])}}});const va=ve(fa,[["__scopeId","data-v-74937fc2"]]);const ga={class:"header"},ya={class:"ellipsis"},ha={class:"actions"},ka={class:"body"},ba={key:0,class:"empty"},$a={key:1},wa={class:"check-files"},Va={class:"time"},Ca={class:"name"},xa=Q({__name:"TaskInfo",props:{item:{}},setup(o){return(a,n)=>{const s=se,v=Ae("router-link"),p=el;return d(),D(p,{class:"task-item"},{header:t(()=>[i("div",ga,[i("span",ya,L(a.item.name),1),i("div",ha,[e(s,{circle:"",type:"warning",icon:y(mt),title:"更多",onClick:n[0]||(n[0]=k=>a.$emit("more",a.item))},null,8,["icon"]),e(s,{circle:"",type:"success",icon:y(Ml),title:"编辑基本信息",onClick:n[1]||(n[1]=k=>a.$emit("edit",a.item))},null,8,["icon"]),e(s,{circle:"",type:"primary",icon:y(ql),title:"分享",onClick:n[2]||(n[2]=k=>a.$emit("share",a.item.key))},null,8,["icon"]),e(s,{circle:"",type:"danger",icon:y(Cl),title:"删除",onClick:n[3]||(n[3]=k=>a.$emit("delete",a.item.key,a.item.category==="trash"))},null,8,["icon"])])])]),default:t(()=>[i("div",ka,[a.item.recentLog.length===0?(d(),h("div",ba," 暂时没有提交记录... ")):(d(),h("ul",$a,[i("li",wa,[i("strong",null,"近 "+L(a.item.recentLog.length)+" 条提交记录",1),e(v,{to:"/dashboard/files?task=".concat(a.item.key)},{default:t(()=>[u("查看详情")]),_:1},8,["to"])]),(d(!0),h(ee,null,le(a.item.recentLog,(k,f)=>(d(),h("li",{key:Number(f),class:"ellipsis"},[i("span",Va,L(y(ye)(new Date(k.date))),1),i("span",Ca,L(k.filename),1)]))),128))]))])]),_:1})}}});const Ia=ve(xa,[["__scopeId","data-v-15cc9632"]]),oe=Yt((o,a,n=!0)=>{o&&Ie.updateTaskMoreInfo(o,a).then(()=>{n&&U.success({message:"设置成功",zIndex:4e3,duration:1e3})}).catch(()=>{U.error({message:"设置失败",zIndex:4e3})})},1e3,!0),Ta={class:"tc ddl"},Ea={class:"tc flex fc fac"},Na={key:0,style:{"margin-top":"10px"}},Sa=Q({__name:"ddl",props:{ddl:{type:String,default:"",required:!1},k:{type:String,default:""}},setup(o){const a=o,n=I();we(()=>{a.ddl?n.value=new Date(a.ddl):n.value=null});const s=()=>{if(n.value){const c=ye(new Date(n.value.getTime()-288e5));oe(a.k,{ddl:c})}},v=()=>{n.value=null,oe(a.k,{ddl:null})},p=I(0),k=O(()=>p.value<=0),f=O(()=>{let c=~~(p.value/1e3),b=~~(c/(60*60));const $=~~(b/24);b%=24;const F=~~(c%3600/60);return c%=60,"剩余".concat($,"天").concat(b,"时").concat(F,"分").concat(c,"秒")}),C=(c=!0)=>{n.value?p.value=n.value.getTime()-Date.now():p.value=0,c&&setTimeout(()=>{C()},1e3)};return Le(()=>{C()}),(c,b)=>{const $=jt,F=se;return d(),h("div",Ta,[e(S,{imgs:["https://img.cdn.sugarat.top/mdImg/MTY0OTE0OTI4NjU5Nw==649149286597","https://img.cdn.sugarat.top/mdImg/MTY0OTE0OTMxMDEyOQ==649149310129","https://img.cdn.sugarat.top/mdImg/MTY0OTE0OTM3MzgxOA==649149373818"]},{default:t(()=>[u("设置截止日期,截止后将不能再提交文件。")]),_:1},8,["imgs"]),i("div",Ea,[e($,{editable:!1,modelValue:n.value,"onUpdate:modelValue":b[0]||(b[0]=j=>n.value=j),type:"datetime",placeholder:"点击设置新截止日期",onChange:s,"default-time":new Date(o.ddl)},null,8,["modelValue","default-time"]),n.value?(d(),D(F,{key:0,onClick:v},{default:t(()=>[u("取消")]),_:1})):R("",!0)]),n.value?(d(),h("div",Na,[e(S,null,{default:t(()=>[u(L(k.value?"已经截止":"剩余时间: ".concat(f.value)),1)]),_:1})])):R("",!0)])}}});const Ma={class:"tc info-panel"},Fa={key:3,class:"upload-people"},za={class:"import-people-wrapper"},Ua={class:"el-upload__tip"},Da={class:"p10"},Ba={style:{"max-width":"300px",margin:"0 auto"}},Pa={class:"p10"},La={style:{"max-width":"320px",margin:"0 auto"}},Aa={class:"nav"},Oa={class:"item"},Ka={class:"item"},ja={class:"item"},Ha={class:"item"},Ya={class:"tc p10"},Ra={class:"tc p10"},Qa={style:{"text-align":"center"}},Ja={key:0,class:"submit-ok"},qa={key:1,class:"submit-fail"},Ga={class:"dialog-footer"},Wa=Q({__name:"people",props:{value:{type:Number,defalut:0},k:{type:String,default:""},name:{type:String,default:""},field:{type:String,default:"姓名"}},setup(o){const a=o;ot(V=>({"1fa0305c":q.value}));const n=I("手动添加"),s=I(""),v=I(!1),p=()=>{s.value&&(v.value=!0,ke.addPeopleByUser(s.value,a.k).then(V=>{U.success("添加 ".concat(s.value," 成功"))}).catch(()=>{U.error("".concat(s.value," 已存在"))}).finally(()=>{v.value=!1,s.value=""}))},k=I(!1),f=I(0);we(()=>{f.value=a.value});const C=V=>{oe(a.k,{people:+V}),f.value=+V},c=I(!1),b=W([]),$=I("all"),F=I(""),j=O(()=>F.value?b.filter(V=>V.name.includes(F.value)):b),z=O(()=>$.value==="all"?j.value:j.value.filter(V=>V.status===$.value)),m=I(!1),T=()=>{m.value=!0,ke.getPeople(a.k,"".concat(+k.value)).then(V=>{b.splice(0,b.length),b.push(...V.data.people),b.forEach(_=>{!_.status&&_.count===0?_.lastDate="暂无记录":_.lastDate=ye(new Date(_.lastDate),"yyyy-MM-dd hh:mm:ss")}),m.value=!1})},H=()=>{k.value=!k.value,k.value&&T()},B=()=>{c.value=!0,k.value=!1,T()},A=V=>{De.confirm("确认删除此人员吗","数据无价,请谨慎操作").then(()=>{ke.deletePeople(a.k,V.id).then(()=>{U.success("删除成功"),b.splice(b.findIndex(_=>_.id===V.id),1)})}).catch(()=>{U.info("取消删除")})},Y=I([]),K=I(),E=()=>{U.error("只能选择一个文件,可删除后重新选择")},J=()=>{Y.value.splice(0,Y.value.length),K.value.clearFiles()},ae=()=>{Y.value.forEach(V=>{Nt(V.raw,"/api/public/upload",{success:_=>{const{name:P,type:g}=_.data;ke.importPeople(a.k,P,g).then(G=>{const{success:te,fail:X}=G.data;U.success("导入完成:".concat(te,"成功,").concat(X.length,"失败")),X.length>0&&setTimeout(()=>{U.info("自动开始下载未成功导入名单"),Pe(["未成功导入名单"],X.map(ne=>[ne]),"".concat(a.name,"_导入失败名单_").concat(ye(new Date,"yyyy年MM月日hh时mm分ss秒"),".xlsx"))},1e3),J()})}})})},ue=V=>{V.raw.type!=="text/plain"&&(U.warning({message:"只支持txt文件",zIndex:4e3}),J())},pe=()=>{if(z.value.length===0){U.warning("表格中没有可导出数据");return}const V=["姓名","提交状态","提交数量","最后操作时间",...k.value?["现存数量","提交次数"]:[]],_=z.value.map(P=>{const{name:g,status:G,lastDate:te,submitCount:X,fileCount:ne,count:Te}=P;return[g,G?"✔":"x",X,G?ye(new Date(te)):"",...k.value?[ne,Te]:[]]});Pe(V,_,"".concat(a.name,"_提交情况_").concat(ye(new Date,"yyyy年MM月日hh时mm分ss秒"),".xlsx")),U.success("导出成功")},ge=xe(),ie=O(()=>ge.getters["public/isMobile"]),l=W({taskList:[],type:"override",taskValue:""}),r=I(!1),w=async()=>{var P;const V=a.k,{data:_}=await ke.getUsefulTemplate(V);l.taskList=_,l.taskValue=((P=_[0])==null?void 0:P.taskKey)||"",r.value=!0},M=O(()=>{const{taskList:V,taskValue:_}=l,P=V.find(g=>g.taskKey===_);return P?"".concat(P.count," 条数据"):"无可用任务"}),x=()=>{ke.importPeopleFromTpl(a.k,l.taskValue,l.type).then(V=>{r.value=!1;const{success:_,fail:P}=V.data;U.success("导入成功".concat(_,"条,失败").concat(P.length,"条")),P.length>0&&setTimeout(()=>{U.info("自动开始下载未成功导入名单"),Pe(["未成功导入名单"],P.map(g=>[g]),"".concat(a.name,"_导入失败名单_").concat(ye(new Date,"yyyy年MM月日hh时mm分ss秒"),".xlsx"))},1e3)})},q=O(()=>ie.value?"0 0 auto":.5),Z=I("姓名");Se(()=>a.field,V=>{Z.value=V},{immediate:!0});const re=()=>{if(!Z.value.trim().length){U.warning("绑定的表单项不能为空");return}Ie.updateTaskMoreInfo(a.k,{bindField:Z.value}).then(()=>{U.success("保存成功")})};return(V,_)=>{const P=se,g=Bt,G=Pt,te=He,X=_e,ne=Ke,Te=je,Ee=ze,Re=Ue,me=Qt,_t=Jt,Qe=Oe,Je=Lt,ft=Rt;return d(),h("div",Ma,[e(S,{imgs:["https://img.cdn.sugarat.top/mdImg/MTY1MDE4MzEwOTEzOQ==650183109139","https://img.cdn.sugarat.top/mdImg/MTY1MTQ5NjY3MTUyMw==651496671523"]},{default:t(()=>[u("只有名单里的成员,才可提交文件")]),_:1},8,["imgs"]),f.value?R("",!0):(d(),D(P,{key:0,onClick:_[0]||(_[0]=N=>C(!0)),size:"default",round:"",type:"success"},{default:t(()=>[u("开启")]),_:1})),f.value?(d(),D(P,{key:1,onClick:_[1]||(_[1]=N=>C(!1)),size:"default",round:"",type:"danger"},{default:t(()=>[u("关闭")]),_:1})):R("",!0),f.value?(d(),D(P,{key:2,onClick:B,round:"",size:"default",type:"primary"},{default:t(()=>[u("查看提交情况")]),_:1})):R("",!0),f.value?(d(),h("div",Fa,[e(G,{modelValue:n.value,"onUpdate:modelValue":_[2]||(_[2]=N=>n.value=N),size:"small"},{default:t(()=>[e(g,{label:"文件导入"}),e(g,{label:"任务导入"}),e(g,{label:"手动添加"})]),_:1},8,["modelValue"]),i("div",za,[ce(i("div",null,[e(te,{accept:"text/plain",action:"",class:"upload-demo",ref_key:"peopleUpload",ref:K,"on-change":ue,"on-exceed":E,"on-remove":J,"auto-upload":!1,limit:1,"file-list":Y.value,"onUpdate:fileList":_[3]||(_[3]=N=>Y.value=N)},{trigger:t(()=>[e(P,{size:"small",type:"primary"},{default:t(()=>[u("选择文件")]),_:1})]),tip:t(()=>[i("div",Ua,[e(S,{imgs:["https://img.cdn.sugarat.top/mdImg/MTY1MDE4Mjk2NjUxMA==650182966510"]},{default:t(()=>[u("只能上传 .txt 文本文件,每行一个名字")]),_:1},8,["imgs"]),e(S,null,{default:t(()=>[u("如名字有特殊字符,建议去除")]),_:1}),e(S,null,{default:t(()=>[u("上传文件导入的方式,为追加导入,不会覆盖已存在数据")]),_:1})])]),default:t(()=>[e(P,{onClick:ae,style:{"margin-left":"10px"},size:"small",type:"success",disabled:!Y.value.length},{default:t(()=>[u("确定上传")]),_:1},8,["disabled"])]),_:1},8,["file-list"])],512),[[be,n.value==="文件导入"]]),ce(i("div",null,[e(P,{size:"small",type:"success",onClick:w},{default:t(()=>[u("选择任务")]),_:1}),i("div",Da,[e(S,null,{default:t(()=>[u("支持从已有的任务直接导入名单")]),_:1})])],512),[[be,n.value==="任务导入"]]),ce(i("div",null,[i("div",Ba,[e(X,{disabled:v.value,modelValue:s.value,"onUpdate:modelValue":_[4]||(_[4]=N=>s.value=N),placeholder:"请输入姓名"},{append:t(()=>[e(P,{onClick:p},{default:t(()=>[u(" 确定 ")]),_:1})]),_:1},8,["disabled","modelValue"])]),i("div",Pa,[e(S,null,{default:t(()=>[u("会自动判重,不会重复添加")]),_:1}),e(S,null,{default:t(()=>[u("大量名单优先推荐使用文件导入")]),_:1})])],512),[[be,n.value==="手动添加"]])]),i("div",La,[e(Te,{"label-width":"120px"},{default:t(()=>[e(ne,{label:"绑定表单项",style:{"margin-bottom":"6px"}},{default:t(()=>[e(X,{size:"small",modelValue:Z.value,"onUpdate:modelValue":_[5]||(_[5]=N=>Z.value=N),clearable:""},{append:t(()=>[e(P,{onClick:re},{default:t(()=>[u(" 确定 ")]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(S,{style:{}},{default:t(()=>[u("和表单项同名字段,可以避免重复填写!!")]),_:1})]),_:1})])])):R("",!0),e(Qe,{fullscreen:ie.value,title:"提交情况",modelValue:c.value,"onUpdate:modelValue":_[8]||(_[8]=N=>c.value=N)},{default:t(()=>[i("div",Aa,[i("div",Oa,[e(P,{disabled:b.length===0,type:"success",size:"default",onClick:pe},{default:t(()=>[u("导出记录")]),_:1},8,["disabled"])]),i("div",Ka,[e(Re,{size:"default",modelValue:$.value,"onUpdate:modelValue":_[6]||(_[6]=N=>$.value=N),placeholder:"状态筛选"},{default:t(()=>[e(Ee,{label:"全部",value:"all"}),e(Ee,{label:"已提交",value:1}),e(Ee,{label:"未提交",value:0})]),_:1},8,["modelValue"])]),i("div",ja,[e(X,{size:"default",placeholder:"输入要查询的姓名",modelValue:F.value,"onUpdate:modelValue":_[7]||(_[7]=N=>F.value=N)},null,8,["modelValue"])]),i("div",Ha,[e(P,{type:"primary",size:"default",onClick:H},{default:t(()=>[u(L(k.value?"隐藏":"显示")+"详细提交情况 ",1)]),_:1})])]),i("div",Ya,[i("span",null,"共: "+L(z.value.length)+" 条数据",1),u(", "),i("span",null,"已提交: "+L(z.value.filter(N=>N.status).length),1),u(", "),i("span",null,"未提交: "+L(z.value.filter(N=>!N.status).length),1)]),i("div",Ra,[e(S,null,{default:t(()=>[u('"提交次数" 用户实际的提交次数')]),_:1}),e(S,null,{default:t(()=>[u('"现存数量" 还存在于服务器上的文件数 (不包含删除) --- 慢查询')]),_:1}),e(S,null,{default:t(()=>[u('"提交数量" 用户实际提交的文件数 (不包含撤回) --- 慢查询')]),_:1})]),ce((d(),D(_t,{"element-loading-text":"Loading...",stripe:"",border:"",data:z.value,height:"460px"},{default:t(()=>[e(me,{label:"序号",width:"60"},{default:t(N=>[i("div",Qa,L(N.$index+1),1)]),_:1}),e(me,{property:"name",label:"姓名"}),e(me,{label:"提交状态",width:"100"},{default:t(N=>[N.row.status?(d(),h("span",Ja,"已提交")):(d(),h("span",qa,"未提交"))]),_:1}),e(me,{property:"count",label:"提交次数",width:"94"}),e(me,{sortable:"",property:"lastDate",label:"最后操作时间",width:"120"}),k.value?(d(),h(ee,{key:0},[e(me,{property:"fileCount",label:"现存数量",width:"94"}),e(me,{sortable:"",property:"submitCount",label:"提交数量",width:"120"})],64)):R("",!0),e(me,{label:"操作",width:"100"},{default:t(N=>[e(P,{onClick:Gn=>A(N.row),type:"primary",text:"",size:"small"},{default:t(()=>[u("删除")]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data"])),[[ft,m.value]])]),_:1},8,["fullscreen","modelValue"]),e(Qe,{fullscreen:ie.value,title:"人员列表导入",modelValue:r.value,"onUpdate:modelValue":_[12]||(_[12]=N=>r.value=N)},{footer:t(()=>[i("span",Ga,[e(P,{onClick:_[11]||(_[11]=N=>r.value=!1)},{default:t(()=>[u("取 消")]),_:1}),e(P,{disabled:!l.taskValue,type:"primary",onClick:x},{default:t(()=>[u("确 定")]),_:1},8,["disabled"])])]),default:t(()=>[e(Te,{model:l,"label-width":"100px","label-position":"right"},{default:t(()=>[e(ne,{label:"任务"},{default:t(()=>[e(Re,{filterable:"",modelValue:l.taskValue,"onUpdate:modelValue":_[9]||(_[9]=N=>l.taskValue=N),placeholder:"请选择","no-data-text":"无可用任务"},{default:t(()=>[(d(!0),h(ee,null,le(l.taskList,N=>(d(),D(Ee,{key:N.taskKey,label:N.name,value:N.taskKey},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(S,null,{default:t(()=>[u(L(M.value),1)]),_:1}),e(ne,{label:"任务"},{default:t(()=>[e(G,{modelValue:l.type,"onUpdate:modelValue":_[10]||(_[10]=N=>l.type=N)},{default:t(()=>[e(Je,{label:"override"},{default:t(()=>[u("覆盖导入")]),_:1}),e(Je,{label:"add"},{default:t(()=>[u("追加导入")]),_:1})]),_:1},8,["modelValue"])]),_:1}),e(S,null,{default:t(()=>[u(L(l.type==="override"?"“覆盖导入” 将会覆盖原来的数据":"“追加导入” 将只会导入不存在数据"),1)]),_:1})]),_:1},8,["model"])]),_:1},8,["fullscreen","modelValue"])])}}});const Za=ve(Wa,[["__scopeId","data-v-325c5841"]]),Xa=Q({name:"templatePanel",props:{value:{type:String,default:""},k:{type:String,default:""}},setup(o){const a=I();we(()=>{o.value?a.value=o.value:a.value=""});const n=I(0),s=()=>{a.value&&(oe(o.k,{template:""}),a.value="",n.value=0)},v=I([]),p=I(),k=()=>{U.error("只能选择一个文件,可删除后重新选择")},f=()=>{p.value.clearFiles()};return{template:a,deleteTemplate:s,fileList:v,handleExceedFile:k,clearFiles:f,submitUploadPeople:()=>{v.value.forEach(c=>{if(!o.k)return;const{name:b}=c,$="easypicker2/".concat(o.k,"_template/").concat(b);c.status==="ready"&&(c.status="uploading",st.getUploadToken().then(F=>{ut(F.data.token,c.raw,$,{success(){U.success("上传成功"),oe(o.k,{template:b}),f(),a.value=b,c.status="success"},process(j){c.percentage=~~j}})}))})},elUpload:p,percentage:n}},components:{Tip:S}});const en=o=>(Me("data-v-77b4c9c1"),o=o(),Fe(),o),tn={class:"tc info-panel"},ln={class:"p10"},an={key:1,class:"upload-file"},nn=en(()=>i("div",{class:"el-upload__tip"},"选择模板文件,然后点击上传",-1));function on(o,a,n,s,v,p){const k=Ae("tip"),f=se,C=He;return d(),h("div",tn,[e(k,{imgs:["https://img.cdn.sugarat.top/mdImg/MTY1MDE4MjY3MjUxNw==650182672517"]},{default:t(()=>[u("设置的模板文件,可供用户在提交页下载。")]),_:1},8,["imgs"]),o.template?(d(),D(f,{key:0,disabled:!o.template,onClick:o.deleteTemplate,size:"default",round:"",type:"danger"},{default:t(()=>[u("删除")]),_:1},8,["disabled","onClick"])):R("",!0),i("div",ln,L(o.template||"尚未设置模板文件"),1),o.template?R("",!0):(d(),h("div",an,[e(C,{action:"",ref:"elUpload","on-exceed":o.handleExceedFile,"on-remove":o.clearFiles,"auto-upload":!1,limit:1,"file-list":o.fileList,"onUpdate:fileList":a[0]||(a[0]=c=>o.fileList=c)},{trigger:t(()=>[e(f,{size:"small",type:"primary"},{default:t(()=>[u("选取文件")]),_:1})]),tip:t(()=>[nn]),default:t(()=>[e(f,{onClick:o.submitUploadPeople,style:{"margin-left":"10px"},size:"small",type:"success"},{default:t(()=>[u("设为模板")]),_:1},8,["onClick"])]),_:1},8,["on-exceed","on-remove","file-list"])]))])}const sn=ve(Xa,[["render",on],["__scopeId","data-v-77b4c9c1"]]),un=o=>(Me("data-v-3fba454a"),o=o(),Fe(),o),rn={class:"tc"},dn={class:"auto-format"},cn=un(()=>i("span",null,"文件自动重命名:",-1)),pn={key:0,style:{"margin-bottom":"10px"}},mn={style:{color:"#409eff"}},_n={key:1,style:{"margin-bottom":"10px"}},fn={class:"form-wrapper"},vn={class:"flex fc fac"},gn={class:"num-wrapper"},yn={class:"form-item-wrapper"},hn={key:0,class:"radio-list"},kn={class:"form-item-wrapper"},bn={key:3,class:"p10"},$n={class:"p10"},wn={key:4,style:{color:"red"}},Vn={class:"info-panel"},Cn={class:"dialog-footer"},xn=Q({__name:"info",props:{rewrite:{type:Number,default:0},info:{typs:String,default:"[]"},k:{type:String,default:""},format:{type:String,default:"",required:!1}},setup(o){const a=o;ot(l=>({ddfb70e2:ue.value}));const n=W(it()),s=I(!1),v=W([{label:"输入框",value:"input"},{label:"固定内容",value:"text"},{label:"单选框",value:"radio"},{label:"下拉选择",value:"select"}]),p=l=>{var r;return(r=v.find(w=>w.value===l))==null?void 0:r.label},k=I("input"),f=+"14",C=I(!1),c=W([]),b=I(!1),$=O(()=>c.length<10&&!s.value);Se(()=>a.info,()=>{c.splice(0,c.length),k.value="input",s.value=!1,c.push(...We(a.info)),b.value=!1},{immediate:!0});const F=O(()=>"".concat(c.map(l=>l.text).join(n.splitChar),".后缀"));we(()=>{C.value=!!a.rewrite});const j=l=>{oe(a.k,{rewrite:+l})},z=(l,r)=>{const w=l||c,M=r||k.value,x={text:"标题".concat(w.length+1),type:M,value:""};(M==="radio"||M==="select")&&(x.children=[{text:"选项1"},{text:"选项2"}]),w.push(x),b.value=!0},m=(l,r,w=1)=>{const M=r||c;M.length<=w||(M.splice(l,1),b.value=!0)},T=l=>l.every(r=>r.text.trim()&&T(r.children||[])),H=()=>{if(!T(c)){U.error("请完整填写表单信息"),setTimeout(()=>{U.warning("不能有空项")},100);return}oe(a.k,{info:JSON.stringify(c.map(l=>(l.type==="text"&&(l.value=l.text),l)))}),b.value=!1},B=l=>{if(l===0)return;const r=c[l-1];c.splice(l-1,1),c.splice(l,0,r)},A=W({taskList:[],taskValue:""}),Y=I(!1),K=async()=>{var w;const l=a.k,{data:r}=await Ie.getUsefulTemplate(l);A.taskList=r,A.taskValue=((w=r[0])==null?void 0:w.taskKey)||"",Y.value=!0},E=()=>{const l=A.taskList.find(r=>r.taskKey===A.taskValue).info;c.splice(0,c.length),c.push(...We(l)),Y.value=!1,b.value=!0},J=xe(),ae=O(()=>J.getters["public/isMobile"]),ue=O(()=>ae.value?"0 0 auto":.5),pe=()=>{De.alert("<p>固定内容主要用于重命名中,固定的部分,如“活动名”,“班级名”</p><p>如要设置注意事项,请使用 <strong>批注</strong> 功能</p>","注意事项",{dangerouslyUseHTMLString:!0})},ge=()=>{oe(a.k,{format:JSON.stringify(n)})},ie=W(["-","+","_"]);return we(()=>{a.format!==null&&Object.assign(n,rt(a.format))}),(l,r)=>{const w=pt,M=ze,x=Ue,q=$e,Z=_e,re=Ke,V=je,_=se,P=Oe;return d(),h("div",rn,[e(S,{imgs:["https://img.cdn.sugarat.top/mdImg/MTY1MDE4MzM3NjUyNg==650183376526","https://img.cdn.sugarat.top/mdImg/MTY1MTQ5NjU2ODcyNg==651496568726"]},{default:t(()=>[u("上传文件必填表单信息")]),_:1},8,["imgs"]),i("div",dn,[cn,e(w,{style:{display:"block"},modelValue:C.value,"onUpdate:modelValue":r[0]||(r[0]=g=>C.value=g),"active-color":"#13ce66","inactive-color":"#ff4949","active-text":"开",onChange:j,"inactive-text":"关"},null,8,["modelValue"])]),C.value?(d(),h("div",pn,[u(" 预期格式: "),i("span",mn,L(F.value),1)])):R("",!0),C.value?(d(),h("div",_n,[u(" 分割符: "),e(x,{onChange:ge,modelValue:n.splitChar,"onUpdate:modelValue":r[1]||(r[1]=g=>n.splitChar=g),placeholder:"分隔符",style:{width:"60px"},size:"small"},{default:t(()=>[(d(!0),h(ee,null,le(ie,g=>(d(),D(M,{key:g,label:g,value:g},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])):R("",!0),C.value?(d(),D(S,{key:2,style:{color:"red"}},{default:t(()=>[u("开启自动重命名后,重点关注文件名格式是否符合预期")]),_:1})):R("",!0),i("div",null,[u(" 预览 "),e(w,{modelValue:s.value,"onUpdate:modelValue":r[2]||(r[2]=g=>s.value=g),"inline-prompt":"","active-text":"是","inactive-text":"否","active-color":"#13ce66","inactive-color":"#ff4949"},null,8,["modelValue"])]),i("div",fn,[s.value?(d(),D(At,{key:0,infos:c,disabled:s.value},null,8,["infos","disabled"])):(d(),D(V,{key:1,"label-width":"100px"},{default:t(()=>[(d(!0),h(ee,null,le(c,(g,G)=>(d(),D(re,{key:G},{label:t(()=>[i("div",vn,[i("div",gn,[i("div",null,L(G+1),1)]),i("div",{class:he(["form-item-type",g.type])},L(p(g.type)),3)])]),default:t(()=>[e(Z,{placeholder:"输入内容",modelValue:g.text,"onUpdate:modelValue":te=>g.text=te,maxlength:y(f),clearable:"","show-word-limit":""},{append:t(()=>[i("div",yn,[e(q,{color:c.length>1?"red":"grey",onClick:te=>m(G)},{default:t(()=>[e(y(Xe))]),_:2},1032,["color","onClick"]),G>0?(d(),D(q,{key:0,color:"#000",style:{"margin-left":"6px"},onClick:te=>B(G)},{default:t(()=>[e(y(ta))]),_:2},1032,["onClick"])):R("",!0)])]),_:2},1032,["modelValue","onUpdate:modelValue","maxlength"]),g.type==="radio"||g.type==="select"?(d(),h("div",hn,[(d(!0),h(ee,null,le(g.children,(te,X)=>(d(),D(Z,{size:"small",key:X,placeholder:"输入内容",modelValue:te.text,"onUpdate:modelValue":ne=>te.text=ne,maxlength:y(f),clearable:"","show-word-limit":""},{append:t(()=>[i("div",kn,[e(q,{color:g.children.length>2?"red":"grey",onClick:ne=>m(X,g.children,2)},{default:t(()=>[e(y(Xe))]),_:2},1032,["color","onClick"]),X+1===g.children.length?(d(),D(q,{key:0,style:{"margin-left":"10px"},color:"#67C23A",onClick:ne=>z(g.children,g.type)},{default:t(()=>[e(y(hl))]),_:2},1032,["onClick"])):R("",!0)])]),_:2},1032,["modelValue","onUpdate:modelValue","maxlength"]))),128))])):R("",!0)]),_:2},1024))),128))]),_:1}))]),$.value?(d(),h("div",bn,[e(_,{size:"small",type:"primary",onClick:r[3]||(r[3]=()=>{z()}),round:""},{default:t(()=>[u("添加一项")]),_:1}),e(x,{style:{margin:"0 10px"},size:"small",modelValue:k.value,"onUpdate:modelValue":r[4]||(r[4]=g=>k.value=g),placeholder:"选择添加的类型"},{default:t(()=>[(d(!0),h(ee,null,le(v,(g,G)=>(d(),D(M,{key:G,label:g.label,value:g.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e(_,{type:"primary",text:"",onClick:pe},{default:t(()=>[u("提示❓")]),_:1})])):R("",!0),e(_,{size:"small",type:"warning",onClick:K},{default:t(()=>[u("从其它任务导入")]),_:1}),i("div",$n,[e(S,null,{default:t(()=>[u("支持从已有的任务直接导入表单信息")]),_:1}),e(_,{type:"success",onClick:H,style:{width:"200px"}},{default:t(()=>[u("保存")]),_:1})]),b.value?(d(),h("div",wn,"有变动,请记得点击保存")):R("",!0),i("div",Vn,[e(P,{fullscreen:ae.value,title:"表单信息导入",modelValue:Y.value,"onUpdate:modelValue":r[7]||(r[7]=g=>Y.value=g)},{footer:t(()=>[i("span",Cn,[e(_,{onClick:r[6]||(r[6]=g=>Y.value=!1)},{default:t(()=>[u("取 消")]),_:1}),e(_,{disabled:!A.taskValue,type:"primary",onClick:E},{default:t(()=>[u("确 定 ")]),_:1},8,["disabled"])])]),default:t(()=>[e(V,{model:A,"label-width":"100px","label-position":"right"},{default:t(()=>[e(re,{label:"任务"},{default:t(()=>[e(x,{filterable:"",modelValue:A.taskValue,"onUpdate:modelValue":r[5]||(r[5]=g=>A.taskValue=g),placeholder:"请选择","no-data-text":"无可用任务"},{default:t(()=>[(d(!0),h(ee,null,le(A.taskList,g=>(d(),D(M,{key:g.taskKey,label:g.name,value:g.taskKey},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(S,null,{default:t(()=>[u(L(A.taskValue?"":"无可用任务"),1)]),_:1})]),_:1},8,["model"])]),_:1},8,["fullscreen","modelValue"])])])}}});const In=ve(xn,[["__scopeId","data-v-3fba454a"]]),Tn={class:"tc ddl"},En={class:"tc flex fc fac"},Nn={class:"p10"},Sn=Q({__name:"tipInfo",props:{tip:{type:String,default:"",required:!1},k:{type:String,default:""}},setup(o){const a=o,n=I(""),s=W({text:"",imgs:[]}),v=I(3),p=I([]),k=O(()=>p.value.map(m=>m.preview||m.url)),f=I(0);Se(()=>a.tip,()=>{try{const m=JSON.parse(a.tip);s.imgs=m.imgs,s.text=m.text||"",p.value=s.imgs.map(T=>({...T,url:"https://img.cdn.sugarat.top/mdImg/MTY3NzkxMDI1NTU1Nw==20140524124237518.gif"})),p.value.length&&St.getTipImageUrl(a.k,p.value.map(T=>({uid:T.uid,name:T.name}))).then(T=>{T.data.forEach((H,B)=>{p.value[B].url=H.cover,Object.assign(p.value[B],{preview:H.preview})})})}catch(m){s.text=a.tip||"",s.imgs=[],p.value=[]}s.text?n.value=s.text:n.value=""},{immediate:!0});const C=O(()=>s.text!==n.value),c=(m=!0)=>{s.text!==n.value&&(s.text=n.value),oe(a.k,{tip:JSON.stringify(s)},m)},b=I(!1),$=m=>{if(!a.k)return;const{name:T,uid:H}=m,B=Mt(a.k,T,H);m.status==="ready"&&(m.status="success",st.getUploadToken().then(A=>{ut(A.data.token,m.raw,B,{success(){s.imgs.push({uid:H,name:T}),c()}})}))},F=m=>{const{uid:T,name:H}=m,B=s.imgs.findIndex(A=>A.uid===T);s.imgs.splice(B,1),c(),Ie.delTipImage(a.k,T,H)},j=m=>{b.value=!0;const T=p.value.findIndex(H=>H.uid===m.uid);f.value=T},z=()=>{U.error("只能选择".concat(v.value,"个图片,可删除后重新选择"))};return(m,T)=>{const H=_e,B=se,A=$e,Y=He,K=Ht;return d(),h("div",Tn,[e(S,{imgs:["https://img.cdn.sugarat.top/mdImg/MTY1MTQ5NjI2OTI0MQ==651496269241"]},{default:t(()=>[u("设置注意事项,供用户提交时查看")]),_:1},8,["imgs"]),e(S,null,{default:t(()=>[u("注意控制字数和换行,避免展示异常,建议内容不超过5行")]),_:1}),i("div",En,[e(H,{modelValue:n.value,"onUpdate:modelValue":T[0]||(T[0]=E=>n.value=E),rows:5,clearable:"",max:500,"show-word-limit":"",type:"textarea",placeholder:"请输入要展示的批注信息"},null,8,["modelValue"])]),i("div",Nn,[e(B,{size:"default",onClick:c,type:"success"},{default:t(()=>[u("保存")]),_:1}),e(B,{size:"default",onClick:T[1]||(T[1]=E=>n.value=""),type:"danger"},{default:t(()=>[u("清空")]),_:1})]),C.value?(d(),D(S,{key:0},{default:t(()=>[u(" 有变动记得保存 ")]),_:1})):R("",!0),e(S,null,{default:t(()=>[u(" 可以设置图片啦↓ 最多3张 ")]),_:1}),e(Y,{accept:"image/*",limit:v.value,"file-list":p.value,"onUpdate:fileList":T[2]||(T[2]=E=>p.value=E),action:"",ref:"imgUpload","list-type":"picture-card","on-change":$,"on-exceed":z,"on-preview":j,"on-remove":F,"auto-upload":!1},{default:t(()=>[e(A,null,{default:t(()=>[e(y(jl))]),_:1})]),_:1},8,["limit","file-list"]),b.value?(d(),D(K,{key:1,"hide-on-click-modal":"","initial-index":f.value,"url-list":k.value,onClose:T[3]||(T[3]=E=>b.value=!1),teleported:""},null,8,["initial-index","url-list"])):R("",!0)])}}});const Ye=o=>(Me("data-v-28b884c6"),o=o(),Fe(),o),Mn={class:"tc"},Fn={class:"tc"},zn={style:{"max-width":"300px",margin:"0 auto"}},Un=Ye(()=>i("div",{class:"split-line"},null,-1)),Dn={class:"tc"},Bn=Ye(()=>i("div",{class:"split-line"},null,-1)),Pn={class:"tc"},Ln=Ye(()=>i("div",{class:"split-line"},null,-1)),An=Q({__name:"file",props:{format:{type:String,default:"",required:!1},k:{type:String,default:""}},setup(o){const a=o,n=W(it()),s=I(""),v=()=>{oe(a.k,{format:JSON.stringify(n)})},p=z=>{n.status=!!z,v()},k=()=>{const z=s.value.split(",");for(const m of z)if(n.format.includes(m)){U.error("".concat(m," 已存在"));return}n.format.push(...z),v(),s.value=""},f=z=>{n.format.splice(z,1),v()},C=()=>{dt(n.format.join(","))},c=z=>{n.limit=z,v()},b=I(0),$=W(["B","KB","MB","GB"]),F=()=>{const z=$.findIndex(m=>m===n.sizeUnit);n.size=b.value*1024**z,v()},j=z=>{b.value=z;const m=$.findIndex(T=>T===n.sizeUnit);n.size=b.value*1024**m,v()};return we(()=>{a.format!==null&&Object.assign(n,rt(a.format))}),(z,m)=>{const T=pt,H=se,B=_e,A=ct,Y=il,K=ze,E=Ue;return d(),h("div",Mn,[e(S,{class:"title"},{default:t(()=>[u(" ↓下方设置允许提交的文件类型↓ ")]),_:1}),e(S,null,{default:t(()=>[u("暂时只支持通过文件名后缀进行卡控,后续根据反馈再优化")]),_:1}),e(S,null,{default:t(()=>[u("例如:txt,png,jpeg,webp")]),_:1}),i("div",Fn,[e(T,{"active-text":"限制文件类型","inactive-text":"不限制文件类型",onChange:p,value:n.status,style:{"--el-switch-on-color":"#13ce66","--el-switch-off-color":"#ff4949"}},null,8,["value"])]),ce(i("div",null,[e(S,null,{default:t(()=>[u('支持英文逗号","分割,一次添加多个')]),_:1}),i("div",zn,[e(B,{modelValue:s.value,"onUpdate:modelValue":m[0]||(m[0]=J=>s.value=J),placeholder:"请输入文件类型(省略.)"},{append:t(()=>[e(H,{onClick:k},{default:t(()=>[u(" 确定 ")]),_:1})]),_:1},8,["modelValue"])]),(d(!0),h(ee,null,le(n.format,(J,ae)=>(d(),D(A,{key:ae,class:"type",closable:"","disable-transitions":!1,onClose:ue=>f(ae)},{default:t(()=>[u(L(J),1)]),_:2},1032,["onClose"]))),128)),ce(e(S,null,{default:t(()=>[u("已添加: "),i("span",null,L(n.format.join(",")),1),e(H,{type:"primary",text:"",size:"small",onClick:C},{default:t(()=>[u("一键复制")]),_:1})]),_:1},512),[[be,n.format.length]])],512),[[be,n.status]]),Un,e(S,{class:"title"},{default:t(()=>[u("↓下方设置最大同时提交文件数量(16 >= x >=1 默认 10)↓")]),_:1}),i("div",Dn,[e(Y,{"model-value":n.limit,min:1,max:16,onChange:c},null,8,["model-value"])]),Bn,e(S,{class:"title"},{default:t(()=>[u(" ↓下方设置文件最大的大小↓ ")]),_:1}),e(S,null,{default:t(()=>[u("1024B = 1KB, 1024KB = 1MB, 1024MB = 1GB")]),_:1}),e(S,null,{default:t(()=>[u("0表示不限制")]),_:1}),i("div",Pn,[e(Y,{"model-value":b.value,min:0,max:1024,onChange:j},null,8,["model-value"]),e(E,{onChange:F,modelValue:n.sizeUnit,"onUpdate:modelValue":m[1]||(m[1]=J=>n.sizeUnit=J),placeholder:"单位",style:{width:"100px"}},{default:t(()=>[(d(!0),h(ee,null,le($,J=>(d(),D(K,{key:J,label:J,value:J},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),Ln,e(S,{style:at(n.size===0?"color:grey":"color:red")},{default:t(()=>[u(L(n.size===0?"不限制大小":"限制为不超过: ".concat(y(Ft)(n.size))),1)]),_:1},8,["style"])])}}});const On=ve(An,[["__scopeId","data-v-28b884c6"]]),Kn={class:"tasks"},jn={class:"categorys-area"},Hn={class:"panel task-panel"},Yn={class:"task-list"},Rn={class:"dialog-footer"},Qn={class:"tc",style:{"font-size":"14px",color:"#9e9e9e"}},Jn={style:{color:"#000000"}},qn=Q({__name:"index",setup(o){const a=xe(),n=O(()=>a.getters["public/isMobile"]),s=O(()=>a.state.category.categoryList),v=I("default"),p=O(()=>a.state.task.taskList),k=O(()=>p.value.filter(E=>E.category===v.value)),f=(K,E=!1)=>{K&&De.confirm("确认删除此任务吗?",E?"!!回收站的删除后无法再恢复":"数据无价,请谨慎操作",{confirmButtonText:"确定",cancelButtonText:"取消",type:E?"error":"info"}).then(()=>{a.dispatch("task/deleteTask",K).then(()=>{U.success("删除成功")})}).catch(()=>{U.info("取消删除")})},C=I(!1),c=W({name:"",category:"",key:""}),b=K=>{c.name=K.name,c.category=K.category,c.key=K.key,C.value=!0},$=()=>{if(C.value=!1,!c.name.trim()){U.warning("不能为空");return}a.dispatch("task/updateTask",c).then(()=>{U.success("更新成功")})},F=I(""),j=I(!1),z=K=>{F.value="default";const{origin:E}=window.location;F.value="".concat(E,"/task/").concat(K),dt(F.value,"收集链接已自动复制到粘贴板"),j.value=!0},m=W({}),T=I(!1),H=I("info"),B=W({category:"",key:"",name:"",recentLog:[]}),A=K=>{Object.assign(B,K),Ie.getTaskMoreInfo(K.key).then(E=>{m.info="[]",m.ddl="",m.tip="",m.format="",m.bindField="",setTimeout(()=>{Object.assign(m,E.data),T.value=!0})})};Le(()=>{a.dispatch("category/getCategory"),a.dispatch("task/getTask")});const Y=()=>{window.open("/task/".concat(B.key))};return(K,E)=>{const J=Dt,ae=_e,ue=Ke,pe=ze,ge=Ue,ie=je,l=se,r=Oe,w=zt,M=Ut;return d(),h("div",Kn,[i("div",jn,[e(pa,{category:v.value,"onUpdate:category":E[0]||(E[0]=x=>v.value=x)},null,8,["category"])]),i("div",Hn,[e(va,{activeCategoryKey:v.value},null,8,["activeCategoryKey"]),i("div",Yn,[(d(!0),h(ee,null,le(k.value,x=>(d(),D(Ia,{onEdit:b,onDelete:f,onShare:z,onMore:A,key:x.key,item:x},null,8,["item"]))),128)),k.value.length===0?(d(),D(J,{key:0,description:"此分类下没有任务哟,快去创建吧"})):R("",!0)])]),e(r,{draggable:"",fullscreen:n.value,title:"基本信息修改",modelValue:C.value,"onUpdate:modelValue":E[4]||(E[4]=x=>C.value=x)},{footer:t(()=>[i("span",Rn,[e(l,{onClick:E[3]||(E[3]=x=>C.value=!1)},{default:t(()=>[u("取 消")]),_:1}),e(l,{type:"primary",onClick:$},{default:t(()=>[u("确 定")]),_:1})])]),default:t(()=>[e(ie,{model:c},{default:t(()=>[e(ue,{label:"任务名称","label-width":"100px"},{default:t(()=>[e(ae,{modelValue:c.name,"onUpdate:modelValue":E[1]||(E[1]=x=>c.name=x),autocomplete:"off"},null,8,["modelValue"])]),_:1}),e(ue,{label:"新的分类","label-width":"100px"},{default:t(()=>[e(ge,{modelValue:c.category,"onUpdate:modelValue":E[2]||(E[2]=x=>c.category=x),placeholder:"请选择新分类"},{default:t(()=>[e(pe,{label:"默认",value:"default"}),(d(!0),h(ee,null,le(s.value,x=>(d(),D(pe,{key:x.k,label:x.name,value:x.k},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["fullscreen","modelValue"]),e(Ot,{value:j.value,"onUpdate:value":E[5]||(E[5]=x=>j.value=x),download:!1,title:"收取链接",link:F.value},null,8,["value","link"]),e(r,{fullscreen:n.value,title:"更多设置",modelValue:T.value,"onUpdate:modelValue":E[7]||(E[7]=x=>T.value=x),center:""},{default:t(()=>[i("div",null,[i("h3",Qn,[u(" 任务名:"),i("strong",Jn,L(B.name),1),u(", "),e(l,{type:"primary",text:"",onClick:Y},{default:t(()=>[u("去查看效果")]),_:1})]),e(M,{modelValue:H.value,"onUpdate:modelValue":E[6]||(E[6]=x=>H.value=x)},{default:t(()=>[e(w,{label:"截止日期",name:"ddl"},{default:t(()=>[e(Sa,{ddl:m.ddl,k:B.key},null,8,["ddl","k"])]),_:1}),e(w,{label:"批注信息",name:"tip"},{default:t(()=>[e(Sn,{rewrite:m.rewrite,tip:m.tip,k:B.key},null,8,["rewrite","tip","k"])]),_:1}),e(w,{label:"限制名单",name:"people"},{default:t(()=>[e(Za,{name:B.name,value:m.people,k:B.key,field:m.bindField},null,8,["name","value","k","field"])]),_:1}),e(w,{label:"必填信息",name:"info"},{default:t(()=>[e(In,{rewrite:m.rewrite,info:m.info,k:B.key,format:m.format},null,8,["rewrite","info","k","format"])]),_:1}),e(w,{label:"模板文件",name:"template"},{default:t(()=>[e(sn,{value:m.template,k:B.key},null,8,["value","k"])]),_:1}),e(w,{label:"文件属性",name:"attr"},{default:t(()=>[e(On,{format:m.format,k:B.key},null,8,["format","k"])]),_:1})]),_:1},8,["modelValue"])])]),_:1},8,["fullscreen","modelValue"])])}}});const vo=ve(qn,[["__scopeId","data-v-a447a8ef"]]);export{vo as default};
2
+ //# sourceMappingURL=index-bc1a6d96.js.map