@sugarat/easypicker2-client 2.7.0-beta.0 → 2.7.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.
- package/dist/assets/{data-analysis-c8lgg0AB.js → data-analysis-CVdTnsNg.js} +2 -2
- package/dist/assets/{data-analysis-c8lgg0AB.js.map → data-analysis-CVdTnsNg.js.map} +1 -1
- package/dist/assets/{data-analysis-legacy-CW8BY_nY.js → data-analysis-legacy-CrjrJgyN.js} +2 -2
- package/dist/assets/{data-analysis-legacy-CW8BY_nY.js.map → data-analysis-legacy-CrjrJgyN.js.map} +1 -1
- package/dist/assets/{data-board-CfWZjPIl.js → data-board-CKaKy1IB.js} +2 -2
- package/dist/assets/{data-board-CfWZjPIl.js.map → data-board-CKaKy1IB.js.map} +1 -1
- package/dist/assets/{data-board-legacy-DDytbRz4.js → data-board-legacy-DfESxuEd.js} +2 -2
- package/dist/assets/{data-board-legacy-DDytbRz4.js.map → data-board-legacy-DfESxuEd.js.map} +1 -1
- package/dist/assets/{el-date-picker-CI8bdk_f.js → el-date-picker-cVKa-X4K.js} +2 -2
- package/dist/assets/{el-date-picker-CI8bdk_f.js.map → el-date-picker-cVKa-X4K.js.map} +1 -1
- package/dist/assets/{el-date-picker-legacy-CSDTG-yp.js → el-date-picker-legacy-CJ2heCkq.js} +2 -2
- package/dist/assets/{el-date-picker-legacy-CSDTG-yp.js.map → el-date-picker-legacy-CJ2heCkq.js.map} +1 -1
- package/dist/assets/{el-dialog-C8bI9VGw.js → el-dialog-U5Zmt3t3.js} +2 -2
- package/dist/assets/{el-dialog-C8bI9VGw.js.map → el-dialog-U5Zmt3t3.js.map} +1 -1
- package/dist/assets/{el-dialog-legacy-DfEb6k1B.js → el-dialog-legacy-u4KST5yo.js} +2 -2
- package/dist/assets/{el-dialog-legacy-DfEb6k1B.js.map → el-dialog-legacy-u4KST5yo.js.map} +1 -1
- package/dist/assets/{el-dropdown-item-febUKGk9.js → el-dropdown-item-flwUs2cH.js} +2 -2
- package/dist/assets/{el-dropdown-item-febUKGk9.js.map → el-dropdown-item-flwUs2cH.js.map} +1 -1
- package/dist/assets/{el-dropdown-item-legacy-Bi1TbzqG.js → el-dropdown-item-legacy-B2fmSGnI.js} +2 -2
- package/dist/assets/{el-dropdown-item-legacy-Bi1TbzqG.js.map → el-dropdown-item-legacy-B2fmSGnI.js.map} +1 -1
- package/dist/assets/{el-form-item-SCs-OERV.js → el-form-item-B08Ira7l.js} +2 -2
- package/dist/assets/{el-form-item-SCs-OERV.js.map → el-form-item-B08Ira7l.js.map} +1 -1
- package/dist/assets/{el-form-item-legacy-CNxAgkUf.js → el-form-item-legacy-CcX_hnMk.js} +2 -2
- package/dist/assets/{el-form-item-legacy-CNxAgkUf.js.map → el-form-item-legacy-CcX_hnMk.js.map} +1 -1
- package/dist/assets/{el-loading-DSlXrliU.js → el-loading-BMbhg8vq.js} +2 -2
- package/dist/assets/{el-loading-DSlXrliU.js.map → el-loading-BMbhg8vq.js.map} +1 -1
- package/dist/assets/{el-loading-legacy-CbNNE-qk.js → el-loading-legacy-CRJF51cp.js} +2 -2
- package/dist/assets/{el-loading-legacy-CbNNE-qk.js.map → el-loading-legacy-CRJF51cp.js.map} +1 -1
- package/dist/assets/{el-pagination-nfYZbPTI.js → el-pagination-D4Wuvfl8.js} +2 -2
- package/dist/assets/{el-pagination-nfYZbPTI.js.map → el-pagination-D4Wuvfl8.js.map} +1 -1
- package/dist/assets/{el-pagination-legacy-CeTPKkkI.js → el-pagination-legacy-C2E-fHif.js} +2 -2
- package/dist/assets/{el-pagination-legacy-CeTPKkkI.js.map → el-pagination-legacy-C2E-fHif.js.map} +1 -1
- package/dist/assets/{el-progress-BRTU4m5q.js → el-progress-ChbdZpVl.js} +2 -2
- package/dist/assets/{el-progress-BRTU4m5q.js.map → el-progress-ChbdZpVl.js.map} +1 -1
- package/dist/assets/{el-progress-legacy-B6EwNV6c.js → el-progress-legacy-zjlCtRh2.js} +2 -2
- package/dist/assets/{el-progress-legacy-B6EwNV6c.js.map → el-progress-legacy-zjlCtRh2.js.map} +1 -1
- package/dist/assets/{el-select-uDoCZCn5.js → el-select-DP5UYxt3.js} +2 -2
- package/dist/assets/{el-select-uDoCZCn5.js.map → el-select-DP5UYxt3.js.map} +1 -1
- package/dist/assets/{el-select-legacy-BFhy033s.js → el-select-legacy-D4o92tvp.js} +2 -2
- package/dist/assets/{el-select-legacy-BFhy033s.js.map → el-select-legacy-D4o92tvp.js.map} +1 -1
- package/dist/assets/{el-switch-B8IyK6ZR.js → el-switch-DAReoFaC.js} +2 -2
- package/dist/assets/{el-switch-B8IyK6ZR.js.map → el-switch-DAReoFaC.js.map} +1 -1
- package/dist/assets/{el-switch-legacy-LBGoMV4l.js → el-switch-legacy-D1AVOg2z.js} +2 -2
- package/dist/assets/{el-switch-legacy-LBGoMV4l.js.map → el-switch-legacy-D1AVOg2z.js.map} +1 -1
- package/dist/assets/{el-tab-pane-fWqYc0uG.js → el-tab-pane-6kk7HB4E.js} +2 -2
- package/dist/assets/{el-tab-pane-fWqYc0uG.js.map → el-tab-pane-6kk7HB4E.js.map} +1 -1
- package/dist/assets/{el-tab-pane-legacy-ChZdms4s.js → el-tab-pane-legacy-7aEB8qvn.js} +2 -2
- package/dist/assets/{el-tab-pane-legacy-ChZdms4s.js.map → el-tab-pane-legacy-7aEB8qvn.js.map} +1 -1
- package/dist/assets/{el-table-column-C3qC7HsW.js → el-table-column-DsGlAuX3.js} +2 -2
- package/dist/assets/{el-table-column-C3qC7HsW.js.map → el-table-column-DsGlAuX3.js.map} +1 -1
- package/dist/assets/{el-table-column-legacy-Wp8N0Zxv.js → el-table-column-legacy-C8A33Lav.js} +2 -2
- package/dist/assets/{el-table-column-legacy-Wp8N0Zxv.js.map → el-table-column-legacy-C8A33Lav.js.map} +1 -1
- package/dist/assets/index-BG1GuMIu.css +1 -0
- package/dist/assets/{index-CAbIiez7.js → index-BK3KKBAN.js} +2 -2
- package/dist/assets/{index-CAbIiez7.js.map → index-BK3KKBAN.js.map} +1 -1
- package/dist/assets/index-BMZu8UZ6.js +2 -0
- package/dist/assets/{index-E_UelRIx.js.map → index-BMZu8UZ6.js.map} +1 -1
- package/dist/assets/{index-B621FN6u.js → index-BVM3WMNO.js} +2 -2
- package/dist/assets/{index-B621FN6u.js.map → index-BVM3WMNO.js.map} +1 -1
- package/dist/assets/{index-D2jrbKvI.js → index-BdVQjSN6.js} +2 -2
- package/dist/assets/{index-D2jrbKvI.js.map → index-BdVQjSN6.js.map} +1 -1
- package/dist/assets/{index-Cbj5Qf1k.js → index-BnQi1XPn.js} +2 -2
- package/dist/assets/{index-Cbj5Qf1k.js.map → index-BnQi1XPn.js.map} +1 -1
- package/dist/assets/{index-DVHa0g7s.js → index-Caxtv5sl.js} +2 -2
- package/dist/assets/{index-DVHa0g7s.js.map → index-Caxtv5sl.js.map} +1 -1
- package/dist/assets/index-CeKw5v7N.js +2 -0
- package/dist/assets/index-CeKw5v7N.js.map +1 -0
- package/dist/assets/{index-CcPY3ZJk.js → index-D-JYypPJ.js} +2 -2
- package/dist/assets/{index-CcPY3ZJk.js.map → index-D-JYypPJ.js.map} +1 -1
- package/dist/assets/{index-DvM_o_Iw.js → index-D6LMez3u.js} +2 -2
- package/dist/assets/{index-DvM_o_Iw.js.map → index-D6LMez3u.js.map} +1 -1
- package/dist/assets/{index-AYz8tt3l.js → index-DcmA3tsY.js} +2 -2
- package/dist/assets/{index-AYz8tt3l.js.map → index-DcmA3tsY.js.map} +1 -1
- package/dist/assets/{index-UJqXhonq.js → index-Dczz94WX.js} +2 -2
- package/dist/assets/{index-UJqXhonq.js.map → index-Dczz94WX.js.map} +1 -1
- package/dist/assets/{index-BAFXwCno.js → index-DjTj_2YG.js} +2 -2
- package/dist/assets/{index-BAFXwCno.js.map → index-DjTj_2YG.js.map} +1 -1
- package/dist/assets/{index-Bp9D-Hzs.js → index-DkbS1z1O.js} +2 -2
- package/dist/assets/{index-Bp9D-Hzs.js.map → index-DkbS1z1O.js.map} +1 -1
- package/dist/assets/{index-BN8Mg9Y5.js → index-ITkwOdUc.js} +2 -2
- package/dist/assets/{index-BN8Mg9Y5.js.map → index-ITkwOdUc.js.map} +1 -1
- package/dist/assets/index-XNFQHmLL.css +1 -0
- package/dist/assets/{index-DIARiZcJ.js → index-ggQcjFPK.js} +2 -2
- package/dist/assets/{index-DIARiZcJ.js.map → index-ggQcjFPK.js.map} +1 -1
- package/dist/assets/{index-Lsr6KH3b.js → index-jSHW6lhR.js} +2 -2
- package/dist/assets/{index-Lsr6KH3b.js.map → index-jSHW6lhR.js.map} +1 -1
- package/dist/assets/{index-legacy-3jO8hk9z.js → index-legacy-2f3kE3Xe.js} +2 -2
- package/dist/assets/{index-legacy-3jO8hk9z.js.map → index-legacy-2f3kE3Xe.js.map} +1 -1
- package/dist/assets/{index-legacy-Bziat01y.js → index-legacy-6cMsZS3c.js} +2 -2
- package/dist/assets/{index-legacy-Bziat01y.js.map → index-legacy-6cMsZS3c.js.map} +1 -1
- package/dist/assets/{index-legacy-8ekXefFL.js → index-legacy-8BA9X4aO.js} +2 -2
- package/dist/assets/{index-legacy-8ekXefFL.js.map → index-legacy-8BA9X4aO.js.map} +1 -1
- package/dist/assets/{index-legacy-D93ANJJU.js → index-legacy-B4s89tRC.js} +2 -2
- package/dist/assets/{index-legacy-D93ANJJU.js.map → index-legacy-B4s89tRC.js.map} +1 -1
- package/dist/assets/{index-legacy-DiTQKLfl.js → index-legacy-BFfoAOF1.js} +2 -2
- package/dist/assets/{index-legacy-DiTQKLfl.js.map → index-legacy-BFfoAOF1.js.map} +1 -1
- package/dist/assets/{index-legacy-BaUX-zxP.js → index-legacy-BLKO-78a.js} +8 -13
- package/dist/assets/index-legacy-BLKO-78a.js.map +1 -0
- package/dist/assets/{index-legacy-BA8TBope.js → index-legacy-BezkAR3b.js} +2 -2
- package/dist/assets/{index-legacy-BA8TBope.js.map → index-legacy-BezkAR3b.js.map} +1 -1
- package/dist/assets/{index-legacy-GmcnXr6o.js → index-legacy-BqL3XK76.js} +2 -2
- package/dist/assets/{index-legacy-GmcnXr6o.js.map → index-legacy-BqL3XK76.js.map} +1 -1
- package/dist/assets/{index-legacy-BzCDv5Tg.js → index-legacy-CRq_O11N.js} +2 -2
- package/dist/assets/{index-legacy-BzCDv5Tg.js.map → index-legacy-CRq_O11N.js.map} +1 -1
- package/dist/assets/{index-legacy-Bwwm9nit.js → index-legacy-CUZgiMNa.js} +2 -2
- package/dist/assets/{index-legacy-Bwwm9nit.js.map → index-legacy-CUZgiMNa.js.map} +1 -1
- package/dist/assets/{index-legacy-DTtXpYbD.js → index-legacy-CW0OHQkF.js} +2 -2
- package/dist/assets/{index-legacy-DTtXpYbD.js.map → index-legacy-CW0OHQkF.js.map} +1 -1
- package/dist/assets/{index-legacy-D-yT7UP7.js → index-legacy-CqVgmAMA.js} +2 -2
- package/dist/assets/{index-legacy-D-yT7UP7.js.map → index-legacy-CqVgmAMA.js.map} +1 -1
- package/dist/assets/{index-legacy-D14E8pOh.js → index-legacy-CslCZVZ0.js} +2 -2
- package/dist/assets/{index-legacy-D14E8pOh.js.map → index-legacy-CslCZVZ0.js.map} +1 -1
- package/dist/assets/index-legacy-DD6zMGGT.js +2 -0
- package/dist/assets/{index-legacy-B8pZsXYp.js.map → index-legacy-DD6zMGGT.js.map} +1 -1
- package/dist/assets/{index-legacy-B865ACt-.js → index-legacy-DVOM8HaY.js} +2 -2
- package/dist/assets/{index-legacy-B865ACt-.js.map → index-legacy-DVOM8HaY.js.map} +1 -1
- package/dist/assets/{index-legacy-z4MDfS45.js → index-legacy-DasH54g3.js} +2 -2
- package/dist/assets/{index-legacy-z4MDfS45.js.map → index-legacy-DasH54g3.js.map} +1 -1
- package/dist/assets/{index-legacy-D8QuGa98.js → index-legacy-DcKfHHls.js} +2 -2
- package/dist/assets/{index-legacy-D8QuGa98.js.map → index-legacy-DcKfHHls.js.map} +1 -1
- package/dist/assets/index-legacy-Dt4Eky4l.js +2 -0
- package/dist/assets/index-legacy-Dt4Eky4l.js.map +1 -0
- package/dist/assets/{index-legacy-DqLKrBdr.js → index-legacy-bElvuK5I.js} +2 -2
- package/dist/assets/{index-legacy-DqLKrBdr.js.map → index-legacy-bElvuK5I.js.map} +1 -1
- package/dist/assets/{index-legacy-BWGaTIeh.js → index-legacy-pP3Pmgbs.js} +2 -2
- package/dist/assets/{index-legacy-BWGaTIeh.js.map → index-legacy-pP3Pmgbs.js.map} +1 -1
- package/dist/assets/{index-WblpVXQj.js → index-mKO4gpWB.js} +2 -2
- package/dist/assets/{index-WblpVXQj.js.map → index-mKO4gpWB.js.map} +1 -1
- package/dist/assets/{index-CYU98hsF.js → index-my4zFbcM.js} +2 -2
- package/dist/assets/{index-CYU98hsF.js.map → index-my4zFbcM.js.map} +1 -1
- package/dist/assets/{index-C1FTaXL2.js → index-q94vR-7W.js} +2 -2
- package/dist/assets/{index-C1FTaXL2.js.map → index-q94vR-7W.js.map} +1 -1
- package/dist/assets/index-yrncPnXk.js +36 -0
- package/dist/assets/index-yrncPnXk.js.map +1 -0
- package/dist/assets/{isEqual-a1R5cOCU.js → isEqual-DdkrQbjH.js} +2 -2
- package/dist/assets/{isEqual-a1R5cOCU.js.map → isEqual-DdkrQbjH.js.map} +1 -1
- package/dist/assets/{isEqual-legacy-D_cb03Zv.js → isEqual-legacy-4dmPHJnc.js} +2 -2
- package/dist/assets/{isEqual-legacy-D_cb03Zv.js.map → isEqual-legacy-4dmPHJnc.js.map} +1 -1
- package/dist/assets/{refresh-Bz5ULfz9.js → refresh-CCIG6-IB.js} +2 -2
- package/dist/assets/{refresh-Bz5ULfz9.js.map → refresh-CCIG6-IB.js.map} +1 -1
- package/dist/assets/{refresh-legacy-NT5iEzmI.js → refresh-legacy-CchIU9Mh.js} +2 -2
- package/dist/assets/{refresh-legacy-NT5iEzmI.js.map → refresh-legacy-CchIU9Mh.js.map} +1 -1
- package/dist/assets/{tip-BCCd4P_x.js → tip-BM0xMiq8.js} +2 -2
- package/dist/assets/{tip-BCCd4P_x.js.map → tip-BM0xMiq8.js.map} +1 -1
- package/dist/assets/{tip-legacy-Cm2JPa4-.js → tip-legacy-DpAPUNpm.js} +2 -2
- package/dist/assets/{tip-legacy-Cm2JPa4-.js.map → tip-legacy-DpAPUNpm.js.map} +1 -1
- package/dist/assets/validator-DG4_rB-x.js +2 -0
- package/dist/assets/{validator-BESrcCvQ.js.map → validator-DG4_rB-x.js.map} +1 -1
- package/dist/assets/validator-legacy-CN5REdqi.js +2 -0
- package/dist/assets/{validator-legacy-xarmcLjs.js.map → validator-legacy-CN5REdqi.js.map} +1 -1
- package/dist/index.html +2 -2
- package/package.json +3 -3
- package/dist/assets/index-BYEN2QaU.css +0 -1
- package/dist/assets/index-C0TTJR9g.js +0 -2
- package/dist/assets/index-C0TTJR9g.js.map +0 -1
- package/dist/assets/index-CvlaXQXr.js +0 -40
- package/dist/assets/index-CvlaXQXr.js.map +0 -1
- package/dist/assets/index-CwmiY_sv.css +0 -1
- package/dist/assets/index-E_UelRIx.js +0 -2
- package/dist/assets/index-legacy-B8pZsXYp.js +0 -2
- package/dist/assets/index-legacy-BaUX-zxP.js.map +0 -1
- package/dist/assets/index-legacy-DZC-JuD-.js +0 -2
- package/dist/assets/index-legacy-DZC-JuD-.js.map +0 -1
- package/dist/assets/validator-BESrcCvQ.js +0 -2
- package/dist/assets/validator-legacy-xarmcLjs.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-legacy-8ekXefFL.js","sources":["../../node_modules/.pnpm/element-plus@2.2.13_vue@3.4.31_typescript@4.9.5_/node_modules/element-plus/es/components/popover/src/popover.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.4.31_typescript@4.9.5_/node_modules/element-plus/es/components/popover/src/popover2.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.4.31_typescript@4.9.5_/node_modules/element-plus/es/components/popover/src/directive.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.4.31_typescript@4.9.5_/node_modules/element-plus/es/components/popover/index.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/bell.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/close.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/expand.mjs","../../src/components/MessageList/index.vue","../../src/components/MessagePanel/index.vue","../../src/pages/dashboard/index.vue"],"sourcesContent":["import '../../../utils/index.mjs';\nimport '../../tooltip/index.mjs';\nimport '../../dropdown/index.mjs';\nimport { buildProps } from '../../../utils/vue/props/runtime.mjs';\nimport { useTooltipTriggerProps, useTooltipContentProps } from '../../tooltip/src/tooltip.mjs';\nimport { dropdownProps } from '../../dropdown/src/dropdown.mjs';\nimport { isBoolean } from '@vueuse/core';\n\nconst popoverProps = buildProps({\n trigger: useTooltipTriggerProps.trigger,\n placement: dropdownProps.placement,\n disabled: useTooltipTriggerProps.disabled,\n visible: useTooltipContentProps.visible,\n transition: useTooltipContentProps.transition,\n popperOptions: dropdownProps.popperOptions,\n tabindex: dropdownProps.tabindex,\n content: useTooltipContentProps.content,\n popperStyle: useTooltipContentProps.popperStyle,\n popperClass: useTooltipContentProps.popperClass,\n enterable: {\n ...useTooltipContentProps.enterable,\n default: true\n },\n effect: {\n ...useTooltipContentProps.effect,\n default: \"light\"\n },\n teleported: useTooltipContentProps.teleported,\n title: String,\n width: {\n type: [String, Number],\n default: 150\n },\n offset: {\n type: Number,\n default: void 0\n },\n showAfter: {\n type: Number,\n default: 0\n },\n hideAfter: {\n type: Number,\n default: 200\n },\n autoClose: {\n type: Number,\n default: 0\n },\n showArrow: {\n type: Boolean,\n default: true\n },\n persistent: {\n type: Boolean,\n default: true\n },\n \"onUpdate:visible\": {\n type: Function\n }\n});\nconst popoverEmits = {\n \"update:visible\": (value) => isBoolean(value),\n \"before-enter\": () => true,\n \"before-leave\": () => true,\n \"after-enter\": () => true,\n \"after-leave\": () => true\n};\n\nexport { popoverEmits, popoverProps };\n//# sourceMappingURL=popover.mjs.map\n","import { defineComponent, computed, ref, unref, openBlock, createBlock, mergeProps, withCtx, createElementBlock, normalizeClass, toDisplayString, createCommentVNode, renderSlot, createTextVNode } from 'vue';\nimport { ElTooltip } from '../../tooltip/index.mjs';\nimport '../../../utils/index.mjs';\nimport '../../../hooks/index.mjs';\nimport { popoverProps, popoverEmits } from './popover.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { addUnit } from '../../../utils/dom/style.mjs';\n\nconst __default__ = {\n name: \"ElPopover\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: popoverProps,\n emits: popoverEmits,\n setup(__props, { expose, emit }) {\n const props = __props;\n const updateEventKeyRaw = `onUpdate:visible`;\n const onUpdateVisible = computed(() => {\n return props[updateEventKeyRaw];\n });\n const ns = useNamespace(\"popover\");\n const tooltipRef = ref();\n const popperRef = computed(() => {\n var _a;\n return (_a = unref(tooltipRef)) == null ? void 0 : _a.popperRef;\n });\n const style = computed(() => {\n return [\n {\n width: addUnit(props.width)\n },\n props.popperStyle\n ];\n });\n const kls = computed(() => {\n return [ns.b(), props.popperClass, { [ns.m(\"plain\")]: !!props.content }];\n });\n const gpuAcceleration = computed(() => {\n return props.transition === \"el-fade-in-linear\";\n });\n const hide = () => {\n var _a;\n (_a = tooltipRef.value) == null ? void 0 : _a.hide();\n };\n const beforeEnter = () => {\n emit(\"before-enter\");\n };\n const beforeLeave = () => {\n emit(\"before-leave\");\n };\n const afterEnter = () => {\n emit(\"after-enter\");\n };\n const afterLeave = () => {\n emit(\"update:visible\", false);\n emit(\"after-leave\");\n };\n expose({\n popperRef,\n hide\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(ElTooltip), mergeProps({\n ref_key: \"tooltipRef\",\n ref: tooltipRef\n }, _ctx.$attrs, {\n trigger: _ctx.trigger,\n placement: _ctx.placement,\n disabled: _ctx.disabled,\n visible: _ctx.visible,\n transition: _ctx.transition,\n \"popper-options\": _ctx.popperOptions,\n tabindex: _ctx.tabindex,\n content: _ctx.content,\n offset: _ctx.offset,\n \"show-after\": _ctx.showAfter,\n \"hide-after\": _ctx.hideAfter,\n \"auto-close\": _ctx.autoClose,\n \"show-arrow\": _ctx.showArrow,\n \"aria-label\": _ctx.title,\n effect: _ctx.effect,\n enterable: _ctx.enterable,\n \"popper-class\": unref(kls),\n \"popper-style\": unref(style),\n teleported: _ctx.teleported,\n persistent: _ctx.persistent,\n \"gpu-acceleration\": unref(gpuAcceleration),\n \"onUpdate:visible\": unref(onUpdateVisible),\n onBeforeShow: beforeEnter,\n onBeforeHide: beforeLeave,\n onShow: afterEnter,\n onHide: afterLeave\n }), {\n content: withCtx(() => [\n _ctx.title ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass(unref(ns).e(\"title\")),\n role: \"title\"\n }, toDisplayString(_ctx.title), 3)) : createCommentVNode(\"v-if\", true),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.content), 1)\n ])\n ]),\n default: withCtx(() => [\n _ctx.$slots.reference ? renderSlot(_ctx.$slots, \"reference\", { key: 0 }) : createCommentVNode(\"v-if\", true)\n ]),\n _: 3\n }, 16, [\"trigger\", \"placement\", \"disabled\", \"visible\", \"transition\", \"popper-options\", \"tabindex\", \"content\", \"offset\", \"show-after\", \"hide-after\", \"auto-close\", \"show-arrow\", \"aria-label\", \"effect\", \"enterable\", \"popper-class\", \"popper-style\", \"teleported\", \"persistent\", \"gpu-acceleration\", \"onUpdate:visible\"]);\n };\n }\n});\nvar Popover = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue\"]]);\n\nexport { Popover as default };\n//# sourceMappingURL=popover2.mjs.map\n","const attachEvents = (el, binding) => {\n const popperComponent = binding.arg || binding.value;\n const popover = popperComponent == null ? void 0 : popperComponent.popperRef;\n if (popover) {\n popover.triggerRef = el;\n }\n};\nvar PopoverDirective = {\n mounted(el, binding) {\n attachEvents(el, binding);\n },\n updated(el, binding) {\n attachEvents(el, binding);\n }\n};\nconst VPopover = \"popover\";\n\nexport { VPopover, PopoverDirective as default };\n//# sourceMappingURL=directive.mjs.map\n","import '../../utils/index.mjs';\nimport Popover from './src/popover2.mjs';\nimport PopoverDirective, { VPopover } from './src/directive.mjs';\nexport { popoverEmits, popoverProps } from './src/popover.mjs';\nimport { withInstallDirective, withInstall } from '../../utils/vue/install.mjs';\n\nconst ElPopoverDirective = withInstallDirective(PopoverDirective, VPopover);\nconst ElPopover = withInstall(Popover, {\n directive: ElPopoverDirective\n});\n\nexport { ElPopover, ElPopoverDirective, ElPopover as default };\n//# sourceMappingURL=index.mjs.map\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: \"Bell\"\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: \"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M256 768h512V448a256 256 0 1 0-512 0v320zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320z\"\n}, null, -1);\nconst _hoisted_4 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm352 128h128a64 64 0 0 1-128 0z\"\n}, null, -1);\nconst _hoisted_5 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_5);\n}\nvar bell = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { bell 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: \"Close\"\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: \"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z\"\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 close = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { close 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: \"Expand\"\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: \"M128 192h768v128H128V192zm0 256h512v128H128V448zm0 256h768v128H128V704zm576-352 192 160-192 128V352z\"\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 expand = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { expand as default };\n","<script lang=\"ts\" setup>\nimport { reactive, ref, watch } from 'vue'\nimport { formatDate } from '@/utils/stringUtil'\nimport { SuperUserApi } from '@/apis'\nimport { useIsMobile } from '@/composables'\n\nconst props = defineProps<{\n data: SuperUserApiTypes.MessageItem[]\n autoShow?: boolean\n}>()\n\nconst dialogMessage = reactive({\n show: false,\n title: '系统消息',\n text: '内容',\n})\nconst activeMessage = ref<SuperUserApiTypes.MessageItem>(null)\nfunction handleViewDialogMessage(v: SuperUserApiTypes.MessageItem) {\n activeMessage.value = v\n dialogMessage.text = v.text\n // TODO: 魔法数字问题\n // TODO:支持更多的消息类型\n dialogMessage.title = v.type === 0 ? '【系统消息】' : '【私信】'\n dialogMessage.show = true\n}\n\nfunction readMessage() {\n if (activeMessage.value.read) {\n dialogMessage.show = false\n return\n }\n SuperUserApi.readMessage(activeMessage.value.id).then(() => {\n activeMessage.value.read = true\n dialogMessage.show = false\n })\n}\n\nwatch(\n () => props.data.length,\n () => {\n if (!props.autoShow) {\n return\n }\n const showItem = props.data.find(v => !v.read)\n if (showItem) {\n handleViewDialogMessage(showItem)\n }\n },\n)\n\nconst isMobile = useIsMobile()\n</script>\n\n<template>\n <div v-if=\"!data.length\" class=\"empty\">\n 暂无更多消息 ღ( ´・ᴗ・` )比心\n </div>\n <ul class=\"message-list\">\n <li\n v-for=\"d in data\"\n :key=\"d.id\"\n :class=\"{\n read: d.read,\n }\"\n @click=\"handleViewDialogMessage(d)\"\n >\n <p class=\"text\">\n {{ d.text }}\n </p>\n <p class=\"date\">\n {{ formatDate(new Date(d.date)) }}\n </p>\n </li>\n </ul>\n <el-dialog\n v-model=\"dialogMessage.show\"\n center\n show-close\n append-to-body\n :close-on-click-modal=\"false\"\n :title=\"dialogMessage.title\"\n width=\"30%\"\n :fullscreen=\"isMobile\"\n >\n <div class=\"message-text\" v-html=\"dialogMessage.text\" />\n <template #footer>\n <p class=\"dialog-date\">\n 时间:{{ formatDate(new Date(activeMessage.date)) }}\n </p>\n <span>\n <el-button\n type=\"default\"\n @click=\"\n () => {\n dialogMessage.show = false\n }\n \"\n >\n 下次提醒\n </el-button>\n <el-button type=\"primary\" @click=\"readMessage\"> 确定 </el-button>\n </span>\n </template>\n </el-dialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.message-list {\n list-style: none;\n max-height: 500px;\n overflow-y: scroll;\n li {\n border-bottom: 1px solid #ddd;\n padding: 10px;\n cursor: pointer;\n &.read {\n opacity: 0.5;\n &:hover {\n opacity: 0.9;\n }\n }\n &:last-child {\n border-bottom: none;\n }\n\n p.text {\n font-size: 16px;\n display: -webkit-box;\n overflow: hidden;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n p.date {\n font-size: 14px;\n margin-top: 4px;\n }\n }\n}\n.empty {\n text-align: center;\n padding: 10px;\n}\n\n.dialog-date {\n font-size: 14px;\n text-align: right;\n padding: 10px;\n color: grey;\n}\n</style>\n\n<style lang=\"scss\">\n.message-text {\n overflow-y: scroll;\n max-height: 500px;\n ul,\n ol {\n list-style: none;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { Bell } from '@element-plus/icons-vue'\nimport { computed, reactive, onMounted, ref } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SuperUserApi } from '@/apis'\nimport MessageList from '@/components/MessageList/index.vue'\n\nconst activeTab = ref<'all' | 'no'>('all')\nconst messageData = reactive<SuperUserApiTypes.MessageItem[]>([])\n\nconst noReadMessage = computed(() => messageData.filter((v) => !v.read))\nconst route = useRoute()\nonMounted(() => {\n if (route.name !== 'config') {\n SuperUserApi.getMessageList().then((v) => {\n messageData.push(...v.data)\n })\n }\n})\n</script>\n<template>\n <div class=\"message-panel\">\n <el-popover placement=\"bottom-end\" :width=\"375\" trigger=\"hover\">\n <template #reference>\n <el-badge :value=\"noReadMessage.length || ''\" :max=\"99\">\n <el-button :icon=\"Bell\" circle />\n </el-badge>\n </template>\n <div>\n <el-tabs v-model=\"activeTab\">\n <el-tab-pane :label=\"`未读 ${noReadMessage.length || ''}`\" name=\"no\">\n <message-list auto-show :data=\"noReadMessage\" />\n </el-tab-pane>\n <el-tab-pane :label=\"`全部 ${messageData.length || ''}`\" name=\"all\">\n <message-list :data=\"messageData\" />\n </el-tab-pane>\n </el-tabs>\n </div>\n </el-popover>\n </div>\n</template>\n<style lang=\"scss\" scoped>\n.message-panel {\n margin-right: 10px;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { ArrowDown, Close, Expand } from '@element-plus/icons-vue'\nimport HomeFooter from '@components/HomeFooter/index.vue'\n\nimport { onMounted, reactive, ref, watch } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport MessagePanel from '@/components/MessagePanel/index.vue'\nimport { UserApi } from '@/apis'\nimport { useIsMobile } from '@/composables'\n\nconst isMobile = useIsMobile()\n\nconst $router = useRouter()\nconst $store = useStore()\nconst $route = useRoute()\nconst navList = reactive<\n { title: string, path: string, isExternal?: boolean }[]\n>([\n {\n title: '文件管理',\n path: '/dashboard/files',\n },\n {\n title: '任务管理',\n path: '/dashboard/tasks',\n },\n])\nconst navActiveIdx = ref(0)\nfunction handleNav(idx: number) {\n const n = navList[idx]\n if (!n.isExternal && idx !== navActiveIdx.value) {\n $router.push({\n path: n.path,\n })\n }\n if (n.isExternal) {\n window.open(n.path, '_blank')\n }\n}\n\n// 自动切换激活的标题栏\nwatch(\n () => $route.path,\n (path: string) => {\n const idx = navList.findIndex(n => path.startsWith(n.path))\n if (idx !== -1) {\n navActiveIdx.value = idx\n }\n },\n)\n\nfunction handleLogout() {\n ElMessageBox.confirm('确认退出登录?', '登出提示', {\n draggable: true,\n })\n .then(() => {\n // 登出接口\n UserApi.logout().finally(() => {\n $store.commit('user/setToken', null)\n $router.replace({\n name: 'home',\n })\n })\n })\n .catch(() => {\n ElMessage.info('取消')\n })\n}\nconst userName = ref('World')\n\nfunction refreshActiveTab() {\n // 动态修改active的项\n navActiveIdx.value = navList.findIndex(v => $route.path.startsWith(v.path))\n}\nonMounted(() => {\n // 动态添加管理页面入口\n UserApi.checkPower().then((r) => {\n const isSuperAdmin = r.data?.power\n userName.value = r.data?.name\n $store.commit('user/setSuperAdmin', isSuperAdmin)\n if (isSuperAdmin) {\n const superNavList = [\n {\n title: '应用管理',\n path: '/dashboard/manage',\n },\n {\n title: '网站监控',\n path: 'https://www.frontjs.com/app/87c1ef7667a513f313b4abb22a88dc78',\n isExternal: true,\n },\n ]\n navList.push(...superNavList)\n }\n const isSystem = r.data?.system\n if (isSystem) {\n navList.splice(0, navList.length)\n navList.push({\n title: '系统管理',\n path: '/dashboard/config',\n })\n }\n refreshActiveTab()\n })\n})\n</script>\n\n<template>\n <div class=\"dashboard\">\n <div class=\"pc-nav\">\n <div class=\"nav\">\n <!-- LOGO -->\n <div class=\"logo\">\n <router-link to=\"/\">\n <img\n src=\"https://img.cdn.sugarat.top/easypicker/EasyPicker.png\"\n alt=\"logo\"\n >\n </router-link>\n </div>\n <input v-if=\"isMobile\" id=\"navActive\" type=\"checkbox\">\n <nav>\n <label v-if=\"isMobile\" for=\"navActive\" class=\"nav-item\">\n <span>Hello💐,</span>\n {{ userName }}\n </label>\n <label\n v-for=\"(n, idx) in navList\"\n :key=\"idx\"\n for=\"navActive\"\n class=\"nav-item\"\n :class=\"{\n active: navActiveIdx === idx,\n }\"\n @click=\"handleNav(idx)\"\n >{{ n.title }}</label>\n <label\n v-if=\"isMobile\"\n for=\"navActive\"\n class=\"nav-item\"\n @click=\"handleLogout\"\n >\n <span style=\"margin-right: 6px\">退出</span>\n <el-icon size=\"16\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-v-53d86618\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.6667 2.55473C13.0212 3.58347 14.6667 5.93291 14.6667 8.66667C14.6667 12.3486 11.6819 15.3333 8 15.3333C4.3181 15.3333 1.33333 12.3486 1.33333 8.66667C1.33333 5.93291 2.97879 3.58347 5.33333 2.55473V4.04684C3.7392 4.969 2.66667 6.69259 2.66667 8.66667C2.66667 11.6122 5.05448 14 8 14C10.9455 14 13.3333 11.6122 13.3333 8.66667C13.3333 6.69259 12.2608 4.969 10.6667 4.04684V2.55473ZM7.33333 8.66667V1.33333C7.33333 1.14924 7.48257 1 7.66667 1H8.33333C8.51743 1 8.66667 1.14924 8.66667 1.33333V8.66667C8.66667 8.85076 8.51743 9 8.33333 9H7.66667C7.48257 9 7.33333 8.85076 7.33333 8.66667Z\"\n fill=\"#86909C\"\n data-v-53d86618\n />\n </svg>\n </el-icon>\n </label>\n </nav>\n <div class=\"mask\" />\n </div>\n <!-- 移动端展示 -->\n <span id=\"navMenu\">\n <MessagePanel v-if=\"isMobile\" class=\"mobile-message-bell\" />\n <label for=\"navActive\">\n <el-icon size=\"32\">\n <Expand />\n </el-icon>\n </label>\n </span>\n <div v-if=\"!isMobile\" class=\"flex fac\">\n <MessagePanel />\n <span>Hello 💐,</span>\n <el-dropdown class=\"exit\">\n <span class=\"exit-info\">\n <span class=\"ellipsis\">{{ userName }}</span>\n <el-icon>\n <ArrowDown />\n </el-icon>\n </span>\n <template #dropdown>\n <el-dropdown-menu>\n <el-dropdown-item :icon=\"Close\" @click=\"handleLogout\">\n 退出\n </el-dropdown-item>\n </el-dropdown-menu>\n </template>\n </el-dropdown>\n </div>\n </div>\n <router-view />\n <div>\n <HomeFooter type=\"dashboard\" />\n </div>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n.dashboard {\n background-color: #fafafa;\n}\n.pc-nav {\n background-color: #fff;\n display: flex;\n padding: 10px;\n justify-content: space-between;\n align-items: center;\n .exit {\n cursor: pointer;\n display: flex;\n align-items: center;\n .exit-info {\n display: flex;\n justify-content: center;\n align-items: center;\n > span {\n margin-right: 5px;\n display: block;\n max-width: 70px;\n }\n }\n }\n .nav {\n display: flex;\n nav {\n display: flex;\n align-items: center;\n .nav-item {\n font-size: 1rem;\n color: #595959;\n padding: 10px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n &.active {\n color: #409eff !important;\n font-weight: 600;\n }\n }\n }\n .exit {\n color: #595959;\n }\n }\n .logo {\n width: 180px;\n margin: 0 10px;\n img {\n height: 40px;\n }\n }\n}\n#navActive {\n display: none;\n opacity: 0;\n}\n#navMenu {\n display: none;\n}\n.mobile-message-bell {\n display: none;\n position: fixed;\n right: 0;\n top: 0;\n}\n@media screen and (max-width: 700px) {\n #navActive {\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n }\n .mobile-message-bell {\n display: block;\n }\n #navMenu {\n cursor: pointer;\n display: block;\n position: absolute;\n left: 10px;\n top: 5px;\n font-size: 2rem;\n }\n .pc-nav {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n z-index: 6;\n .nav {\n flex-wrap: wrap;\n width: 100%;\n .logo {\n width: 100%;\n text-align: center;\n }\n }\n #navActive {\n & + nav {\n display: none;\n }\n }\n #navActive:checked {\n & + nav {\n display: flex;\n flex-direction: column;\n width: 100%;\n position: absolute;\n z-index: 1;\n background: #fff;\n left: 0;\n top: 50px;\n + .mask {\n display: block;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 50px;\n background-color: rgba(0, 0, 0, 0.5);\n }\n }\n }\n .exit {\n position: absolute;\n right: 10px;\n top: 20px;\n }\n }\n}\n</style>\n"],"names":["popoverProps","buildProps","trigger","useTooltipTriggerProps","placement","dropdownProps","disabled","visible","useTooltipContentProps","transition","popperOptions","tabindex","content","popperStyle","popperClass","enterable","default","effect","teleported","title","String","width","type","Number","offset","showAfter","hideAfter","autoClose","showArrow","Boolean","persistent","Function","Popover","_export_sfc","defineComponent","name","props","emits","value","isBoolean","before-enter","before-leave","after-enter","after-leave","setup","__props","expose","emit","onUpdateVisible","computed","ns","useNamespace","tooltipRef","ref","popperRef","_a","unref","style","addUnit","kls","b","m","gpuAcceleration","beforeEnter","beforeLeave","afterEnter","afterLeave","hide","_ctx","_cache","openBlock","createBlock","ElTooltip","mergeProps","ref_key","$attrs","onBeforeShow","onBeforeHide","onShow","onHide","withCtx","createElementBlock","key","class","normalizeClass","e","role","toDisplayString","createCommentVNode","renderSlot","$slots","createTextVNode","reference","_","attachEvents","el","binding","popperComponent","arg","popover","triggerRef","ElPopoverDirective","withInstallDirective","mounted","updated","ElPopover","withInstall","directive","_sfc_main","_hoisted_1","viewBox","xmlns","_hoisted_5","createElementVNode","fill","d","bell","$props","$setup","$data","$options","_hoisted_3","close","expand","dialogMessage","reactive","show","text","activeMessage","handleViewDialogMessage","v","readMessage","read","SuperUserApi","id","then","watch","data","length","autoShow","showItem","find","isMobile","useIsMobile","activeTab","messageData","noReadMessage","filter","route","useRoute","onMounted","getMessageList","push","$router","useRouter","$store","useStore","$route","navList","path","navActiveIdx","handleLogout","ElMessageBox","confirm","draggable","UserApi","logout","finally","commit","replace","catch","ElMessage","info","idx","findIndex","n","startsWith","userName","checkPower","r","isSuperAdmin","power","superNavList","isExternal","isSystem","system","splice","window","open"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
|
1
|
+
{"version":3,"file":"index-legacy-8BA9X4aO.js","sources":["../../node_modules/.pnpm/element-plus@2.2.13_vue@3.4.31_typescript@4.9.5_/node_modules/element-plus/es/components/popover/src/popover.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.4.31_typescript@4.9.5_/node_modules/element-plus/es/components/popover/src/popover2.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.4.31_typescript@4.9.5_/node_modules/element-plus/es/components/popover/src/directive.mjs","../../node_modules/.pnpm/element-plus@2.2.13_vue@3.4.31_typescript@4.9.5_/node_modules/element-plus/es/components/popover/index.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/bell.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/close.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/expand.mjs","../../src/components/MessageList/index.vue","../../src/components/MessagePanel/index.vue","../../src/pages/dashboard/index.vue"],"sourcesContent":["import '../../../utils/index.mjs';\nimport '../../tooltip/index.mjs';\nimport '../../dropdown/index.mjs';\nimport { buildProps } from '../../../utils/vue/props/runtime.mjs';\nimport { useTooltipTriggerProps, useTooltipContentProps } from '../../tooltip/src/tooltip.mjs';\nimport { dropdownProps } from '../../dropdown/src/dropdown.mjs';\nimport { isBoolean } from '@vueuse/core';\n\nconst popoverProps = buildProps({\n trigger: useTooltipTriggerProps.trigger,\n placement: dropdownProps.placement,\n disabled: useTooltipTriggerProps.disabled,\n visible: useTooltipContentProps.visible,\n transition: useTooltipContentProps.transition,\n popperOptions: dropdownProps.popperOptions,\n tabindex: dropdownProps.tabindex,\n content: useTooltipContentProps.content,\n popperStyle: useTooltipContentProps.popperStyle,\n popperClass: useTooltipContentProps.popperClass,\n enterable: {\n ...useTooltipContentProps.enterable,\n default: true\n },\n effect: {\n ...useTooltipContentProps.effect,\n default: \"light\"\n },\n teleported: useTooltipContentProps.teleported,\n title: String,\n width: {\n type: [String, Number],\n default: 150\n },\n offset: {\n type: Number,\n default: void 0\n },\n showAfter: {\n type: Number,\n default: 0\n },\n hideAfter: {\n type: Number,\n default: 200\n },\n autoClose: {\n type: Number,\n default: 0\n },\n showArrow: {\n type: Boolean,\n default: true\n },\n persistent: {\n type: Boolean,\n default: true\n },\n \"onUpdate:visible\": {\n type: Function\n }\n});\nconst popoverEmits = {\n \"update:visible\": (value) => isBoolean(value),\n \"before-enter\": () => true,\n \"before-leave\": () => true,\n \"after-enter\": () => true,\n \"after-leave\": () => true\n};\n\nexport { popoverEmits, popoverProps };\n//# sourceMappingURL=popover.mjs.map\n","import { defineComponent, computed, ref, unref, openBlock, createBlock, mergeProps, withCtx, createElementBlock, normalizeClass, toDisplayString, createCommentVNode, renderSlot, createTextVNode } from 'vue';\nimport { ElTooltip } from '../../tooltip/index.mjs';\nimport '../../../utils/index.mjs';\nimport '../../../hooks/index.mjs';\nimport { popoverProps, popoverEmits } from './popover.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { addUnit } from '../../../utils/dom/style.mjs';\n\nconst __default__ = {\n name: \"ElPopover\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: popoverProps,\n emits: popoverEmits,\n setup(__props, { expose, emit }) {\n const props = __props;\n const updateEventKeyRaw = `onUpdate:visible`;\n const onUpdateVisible = computed(() => {\n return props[updateEventKeyRaw];\n });\n const ns = useNamespace(\"popover\");\n const tooltipRef = ref();\n const popperRef = computed(() => {\n var _a;\n return (_a = unref(tooltipRef)) == null ? void 0 : _a.popperRef;\n });\n const style = computed(() => {\n return [\n {\n width: addUnit(props.width)\n },\n props.popperStyle\n ];\n });\n const kls = computed(() => {\n return [ns.b(), props.popperClass, { [ns.m(\"plain\")]: !!props.content }];\n });\n const gpuAcceleration = computed(() => {\n return props.transition === \"el-fade-in-linear\";\n });\n const hide = () => {\n var _a;\n (_a = tooltipRef.value) == null ? void 0 : _a.hide();\n };\n const beforeEnter = () => {\n emit(\"before-enter\");\n };\n const beforeLeave = () => {\n emit(\"before-leave\");\n };\n const afterEnter = () => {\n emit(\"after-enter\");\n };\n const afterLeave = () => {\n emit(\"update:visible\", false);\n emit(\"after-leave\");\n };\n expose({\n popperRef,\n hide\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(ElTooltip), mergeProps({\n ref_key: \"tooltipRef\",\n ref: tooltipRef\n }, _ctx.$attrs, {\n trigger: _ctx.trigger,\n placement: _ctx.placement,\n disabled: _ctx.disabled,\n visible: _ctx.visible,\n transition: _ctx.transition,\n \"popper-options\": _ctx.popperOptions,\n tabindex: _ctx.tabindex,\n content: _ctx.content,\n offset: _ctx.offset,\n \"show-after\": _ctx.showAfter,\n \"hide-after\": _ctx.hideAfter,\n \"auto-close\": _ctx.autoClose,\n \"show-arrow\": _ctx.showArrow,\n \"aria-label\": _ctx.title,\n effect: _ctx.effect,\n enterable: _ctx.enterable,\n \"popper-class\": unref(kls),\n \"popper-style\": unref(style),\n teleported: _ctx.teleported,\n persistent: _ctx.persistent,\n \"gpu-acceleration\": unref(gpuAcceleration),\n \"onUpdate:visible\": unref(onUpdateVisible),\n onBeforeShow: beforeEnter,\n onBeforeHide: beforeLeave,\n onShow: afterEnter,\n onHide: afterLeave\n }), {\n content: withCtx(() => [\n _ctx.title ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass(unref(ns).e(\"title\")),\n role: \"title\"\n }, toDisplayString(_ctx.title), 3)) : createCommentVNode(\"v-if\", true),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.content), 1)\n ])\n ]),\n default: withCtx(() => [\n _ctx.$slots.reference ? renderSlot(_ctx.$slots, \"reference\", { key: 0 }) : createCommentVNode(\"v-if\", true)\n ]),\n _: 3\n }, 16, [\"trigger\", \"placement\", \"disabled\", \"visible\", \"transition\", \"popper-options\", \"tabindex\", \"content\", \"offset\", \"show-after\", \"hide-after\", \"auto-close\", \"show-arrow\", \"aria-label\", \"effect\", \"enterable\", \"popper-class\", \"popper-style\", \"teleported\", \"persistent\", \"gpu-acceleration\", \"onUpdate:visible\"]);\n };\n }\n});\nvar Popover = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__file\", \"/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue\"]]);\n\nexport { Popover as default };\n//# sourceMappingURL=popover2.mjs.map\n","const attachEvents = (el, binding) => {\n const popperComponent = binding.arg || binding.value;\n const popover = popperComponent == null ? void 0 : popperComponent.popperRef;\n if (popover) {\n popover.triggerRef = el;\n }\n};\nvar PopoverDirective = {\n mounted(el, binding) {\n attachEvents(el, binding);\n },\n updated(el, binding) {\n attachEvents(el, binding);\n }\n};\nconst VPopover = \"popover\";\n\nexport { VPopover, PopoverDirective as default };\n//# sourceMappingURL=directive.mjs.map\n","import '../../utils/index.mjs';\nimport Popover from './src/popover2.mjs';\nimport PopoverDirective, { VPopover } from './src/directive.mjs';\nexport { popoverEmits, popoverProps } from './src/popover.mjs';\nimport { withInstallDirective, withInstall } from '../../utils/vue/install.mjs';\n\nconst ElPopoverDirective = withInstallDirective(PopoverDirective, VPopover);\nconst ElPopover = withInstall(Popover, {\n directive: ElPopoverDirective\n});\n\nexport { ElPopover, ElPopoverDirective, ElPopover as default };\n//# sourceMappingURL=index.mjs.map\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: \"Bell\"\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: \"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M256 768h512V448a256 256 0 1 0-512 0v320zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320z\"\n}, null, -1);\nconst _hoisted_4 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32zm352 128h128a64 64 0 0 1-128 0z\"\n}, null, -1);\nconst _hoisted_5 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_5);\n}\nvar bell = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { bell 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: \"Close\"\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: \"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z\"\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 close = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { close 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: \"Expand\"\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: \"M128 192h768v128H128V192zm0 256h512v128H128V448zm0 256h768v128H128V704zm576-352 192 160-192 128V352z\"\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 expand = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { expand as default };\n","<script lang=\"ts\" setup>\nimport { reactive, ref, watch } from 'vue'\nimport { formatDate } from '@/utils/stringUtil'\nimport { SuperUserApi } from '@/apis'\nimport { useIsMobile } from '@/composables'\n\nconst props = defineProps<{\n data: SuperUserApiTypes.MessageItem[]\n autoShow?: boolean\n}>()\n\nconst dialogMessage = reactive({\n show: false,\n title: '系统消息',\n text: '内容',\n})\nconst activeMessage = ref<SuperUserApiTypes.MessageItem>(null)\nfunction handleViewDialogMessage(v: SuperUserApiTypes.MessageItem) {\n activeMessage.value = v\n dialogMessage.text = v.text\n // TODO: 魔法数字问题\n // TODO:支持更多的消息类型\n dialogMessage.title = v.type === 0 ? '【系统消息】' : '【私信】'\n dialogMessage.show = true\n}\n\nfunction readMessage() {\n if (activeMessage.value.read) {\n dialogMessage.show = false\n return\n }\n SuperUserApi.readMessage(activeMessage.value.id).then(() => {\n activeMessage.value.read = true\n dialogMessage.show = false\n })\n}\n\nwatch(\n () => props.data.length,\n () => {\n if (!props.autoShow) {\n return\n }\n const showItem = props.data.find(v => !v.read)\n if (showItem) {\n handleViewDialogMessage(showItem)\n }\n },\n)\n\nconst isMobile = useIsMobile()\n</script>\n\n<template>\n <div v-if=\"!data.length\" class=\"empty\">\n 暂无更多消息 ღ( ´・ᴗ・` )比心\n </div>\n <ul class=\"message-list\">\n <li\n v-for=\"d in data\"\n :key=\"d.id\"\n :class=\"{\n read: d.read,\n }\"\n @click=\"handleViewDialogMessage(d)\"\n >\n <p class=\"text\">\n {{ d.text }}\n </p>\n <p class=\"date\">\n {{ formatDate(new Date(d.date)) }}\n </p>\n </li>\n </ul>\n <el-dialog\n v-model=\"dialogMessage.show\"\n center\n show-close\n append-to-body\n :close-on-click-modal=\"false\"\n :title=\"dialogMessage.title\"\n width=\"30%\"\n :fullscreen=\"isMobile\"\n >\n <div class=\"message-text\" v-html=\"dialogMessage.text\" />\n <template #footer>\n <p class=\"dialog-date\">\n 时间:{{ formatDate(new Date(activeMessage.date)) }}\n </p>\n <span>\n <el-button\n type=\"default\"\n @click=\"\n () => {\n dialogMessage.show = false\n }\n \"\n >\n 下次提醒\n </el-button>\n <el-button type=\"primary\" @click=\"readMessage\"> 确定 </el-button>\n </span>\n </template>\n </el-dialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.message-list {\n list-style: none;\n max-height: 500px;\n overflow-y: scroll;\n li {\n border-bottom: 1px solid #ddd;\n padding: 10px;\n cursor: pointer;\n &.read {\n opacity: 0.5;\n &:hover {\n opacity: 0.9;\n }\n }\n &:last-child {\n border-bottom: none;\n }\n\n p.text {\n font-size: 16px;\n display: -webkit-box;\n overflow: hidden;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n p.date {\n font-size: 14px;\n margin-top: 4px;\n }\n }\n}\n.empty {\n text-align: center;\n padding: 10px;\n}\n\n.dialog-date {\n font-size: 14px;\n text-align: right;\n padding: 10px;\n color: grey;\n}\n</style>\n\n<style lang=\"scss\">\n.message-text {\n overflow-y: scroll;\n max-height: 500px;\n ul,\n ol {\n list-style: none;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { Bell } from '@element-plus/icons-vue'\nimport { computed, reactive, onMounted, ref } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SuperUserApi } from '@/apis'\nimport MessageList from '@/components/MessageList/index.vue'\n\nconst activeTab = ref<'all' | 'no'>('all')\nconst messageData = reactive<SuperUserApiTypes.MessageItem[]>([])\n\nconst noReadMessage = computed(() => messageData.filter((v) => !v.read))\nconst route = useRoute()\nonMounted(() => {\n if (route.name !== 'config') {\n SuperUserApi.getMessageList().then((v) => {\n messageData.push(...v.data)\n })\n }\n})\n</script>\n<template>\n <div class=\"message-panel\">\n <el-popover placement=\"bottom-end\" :width=\"375\" trigger=\"hover\">\n <template #reference>\n <el-badge :value=\"noReadMessage.length || ''\" :max=\"99\">\n <el-button :icon=\"Bell\" circle />\n </el-badge>\n </template>\n <div>\n <el-tabs v-model=\"activeTab\">\n <el-tab-pane :label=\"`未读 ${noReadMessage.length || ''}`\" name=\"no\">\n <message-list auto-show :data=\"noReadMessage\" />\n </el-tab-pane>\n <el-tab-pane :label=\"`全部 ${messageData.length || ''}`\" name=\"all\">\n <message-list :data=\"messageData\" />\n </el-tab-pane>\n </el-tabs>\n </div>\n </el-popover>\n </div>\n</template>\n<style lang=\"scss\" scoped>\n.message-panel {\n margin-right: 10px;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { ArrowDown, Close, Expand } from '@element-plus/icons-vue'\nimport HomeFooter from '@components/HomeFooter/index.vue'\n\nimport { onMounted, reactive, ref, watch } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\nimport { ElMessage, ElMessageBox } from 'element-plus'\nimport MessagePanel from '@/components/MessagePanel/index.vue'\nimport { UserApi } from '@/apis'\nimport { useIsMobile } from '@/composables'\n\nconst isMobile = useIsMobile()\n\nconst $router = useRouter()\nconst $store = useStore()\nconst $route = useRoute()\nconst navList = reactive<\n { title: string, path: string, isExternal?: boolean }[]\n>([\n {\n title: '文件管理',\n path: '/dashboard/files',\n },\n {\n title: '任务管理',\n path: '/dashboard/tasks',\n },\n])\nconst navActiveIdx = ref(0)\nfunction handleNav(idx: number) {\n const n = navList[idx]\n if (!n.isExternal && idx !== navActiveIdx.value) {\n $router.push({\n path: n.path,\n })\n }\n if (n.isExternal) {\n window.open(n.path, '_blank')\n }\n}\n\n// 自动切换激活的标题栏\nwatch(\n () => $route.path,\n (path: string) => {\n const idx = navList.findIndex(n => path.startsWith(n.path))\n if (idx !== -1) {\n navActiveIdx.value = idx\n }\n },\n)\n\nfunction handleLogout() {\n ElMessageBox.confirm('确认退出登录?', '登出提示', {\n draggable: true,\n })\n .then(() => {\n // 登出接口\n UserApi.logout().finally(() => {\n $store.commit('user/setToken', null)\n $router.replace({\n name: 'home',\n })\n })\n })\n .catch(() => {\n ElMessage.info('取消')\n })\n}\nconst userName = ref('World')\n\nfunction refreshActiveTab() {\n // 动态修改active的项\n navActiveIdx.value = navList.findIndex(v => $route.path.startsWith(v.path))\n}\nonMounted(() => {\n // 动态添加管理页面入口\n UserApi.checkPower().then((r) => {\n const isSuperAdmin = r.data?.power\n userName.value = r.data?.name\n $store.commit('user/setSuperAdmin', isSuperAdmin)\n if (isSuperAdmin) {\n const superNavList = [\n {\n title: '应用管理',\n path: '/dashboard/manage',\n },\n {\n title: '网站监控',\n path: 'https://www.frontjs.com/app/87c1ef7667a513f313b4abb22a88dc78',\n isExternal: true,\n },\n ]\n navList.push(...superNavList)\n }\n const isSystem = r.data?.system\n if (isSystem) {\n navList.splice(0, navList.length)\n navList.push({\n title: '系统管理',\n path: '/dashboard/config',\n })\n }\n refreshActiveTab()\n })\n})\n</script>\n\n<template>\n <div class=\"dashboard\">\n <div class=\"pc-nav\">\n <div class=\"nav\">\n <!-- LOGO -->\n <div class=\"logo\">\n <router-link to=\"/\">\n <img\n src=\"https://img.cdn.sugarat.top/easypicker/EasyPicker.png\"\n alt=\"logo\"\n >\n </router-link>\n </div>\n <input v-if=\"isMobile\" id=\"navActive\" type=\"checkbox\">\n <nav>\n <label v-if=\"isMobile\" for=\"navActive\" class=\"nav-item\">\n <span>Hello💐,</span>\n {{ userName }}\n </label>\n <label\n v-for=\"(n, idx) in navList\"\n :key=\"idx\"\n for=\"navActive\"\n class=\"nav-item\"\n :class=\"{\n active: navActiveIdx === idx,\n }\"\n @click=\"handleNav(idx)\"\n >{{ n.title }}</label>\n <label\n v-if=\"isMobile\"\n for=\"navActive\"\n class=\"nav-item\"\n @click=\"handleLogout\"\n >\n <span style=\"margin-right: 6px\">退出</span>\n <el-icon size=\"16\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-v-53d86618\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.6667 2.55473C13.0212 3.58347 14.6667 5.93291 14.6667 8.66667C14.6667 12.3486 11.6819 15.3333 8 15.3333C4.3181 15.3333 1.33333 12.3486 1.33333 8.66667C1.33333 5.93291 2.97879 3.58347 5.33333 2.55473V4.04684C3.7392 4.969 2.66667 6.69259 2.66667 8.66667C2.66667 11.6122 5.05448 14 8 14C10.9455 14 13.3333 11.6122 13.3333 8.66667C13.3333 6.69259 12.2608 4.969 10.6667 4.04684V2.55473ZM7.33333 8.66667V1.33333C7.33333 1.14924 7.48257 1 7.66667 1H8.33333C8.51743 1 8.66667 1.14924 8.66667 1.33333V8.66667C8.66667 8.85076 8.51743 9 8.33333 9H7.66667C7.48257 9 7.33333 8.85076 7.33333 8.66667Z\"\n fill=\"#86909C\"\n data-v-53d86618\n />\n </svg>\n </el-icon>\n </label>\n </nav>\n <div class=\"mask\" />\n </div>\n <!-- 移动端展示 -->\n <span id=\"navMenu\">\n <MessagePanel v-if=\"isMobile\" class=\"mobile-message-bell\" />\n <label for=\"navActive\">\n <el-icon size=\"32\">\n <Expand />\n </el-icon>\n </label>\n </span>\n <div v-if=\"!isMobile\" class=\"flex fac\">\n <MessagePanel />\n <span>Hello 💐,</span>\n <el-dropdown class=\"exit\">\n <span class=\"exit-info\">\n <span class=\"ellipsis\">{{ userName }}</span>\n <el-icon>\n <ArrowDown />\n </el-icon>\n </span>\n <template #dropdown>\n <el-dropdown-menu>\n <el-dropdown-item :icon=\"Close\" @click=\"handleLogout\">\n 退出\n </el-dropdown-item>\n </el-dropdown-menu>\n </template>\n </el-dropdown>\n </div>\n </div>\n <router-view />\n <div>\n <HomeFooter type=\"dashboard\" />\n </div>\n </div>\n</template>\n\n<style scoped lang=\"scss\">\n.dashboard {\n background-color: #fafafa;\n}\n.pc-nav {\n background-color: #fff;\n display: flex;\n padding: 10px;\n justify-content: space-between;\n align-items: center;\n .exit {\n cursor: pointer;\n display: flex;\n align-items: center;\n .exit-info {\n display: flex;\n justify-content: center;\n align-items: center;\n > span {\n margin-right: 5px;\n display: block;\n max-width: 70px;\n }\n }\n }\n .nav {\n display: flex;\n nav {\n display: flex;\n align-items: center;\n .nav-item {\n font-size: 1rem;\n color: #595959;\n padding: 10px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n &.active {\n color: #409eff !important;\n font-weight: 600;\n }\n }\n }\n .exit {\n color: #595959;\n }\n }\n .logo {\n width: 180px;\n margin: 0 10px;\n img {\n height: 40px;\n }\n }\n}\n#navActive {\n display: none;\n opacity: 0;\n}\n#navMenu {\n display: none;\n}\n.mobile-message-bell {\n display: none;\n position: fixed;\n right: 0;\n top: 0;\n}\n@media screen and (max-width: 700px) {\n #navActive {\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n }\n .mobile-message-bell {\n display: block;\n }\n #navMenu {\n cursor: pointer;\n display: block;\n position: absolute;\n left: 10px;\n top: 5px;\n font-size: 2rem;\n }\n .pc-nav {\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n z-index: 6;\n .nav {\n flex-wrap: wrap;\n width: 100%;\n .logo {\n width: 100%;\n text-align: center;\n }\n }\n #navActive {\n & + nav {\n display: none;\n }\n }\n #navActive:checked {\n & + nav {\n display: flex;\n flex-direction: column;\n width: 100%;\n position: absolute;\n z-index: 1;\n background: #fff;\n left: 0;\n top: 50px;\n + .mask {\n display: block;\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 50px;\n background-color: rgba(0, 0, 0, 0.5);\n }\n }\n }\n .exit {\n position: absolute;\n right: 10px;\n top: 20px;\n }\n }\n}\n</style>\n"],"names":["popoverProps","buildProps","trigger","useTooltipTriggerProps","placement","dropdownProps","disabled","visible","useTooltipContentProps","transition","popperOptions","tabindex","content","popperStyle","popperClass","enterable","default","effect","teleported","title","String","width","type","Number","offset","showAfter","hideAfter","autoClose","showArrow","Boolean","persistent","Function","Popover","_export_sfc","defineComponent","name","props","emits","value","isBoolean","before-enter","before-leave","after-enter","after-leave","setup","__props","expose","emit","onUpdateVisible","computed","ns","useNamespace","tooltipRef","ref","popperRef","_a","unref","style","addUnit","kls","b","m","gpuAcceleration","beforeEnter","beforeLeave","afterEnter","afterLeave","hide","_ctx","_cache","openBlock","createBlock","ElTooltip","mergeProps","ref_key","$attrs","onBeforeShow","onBeforeHide","onShow","onHide","withCtx","createElementBlock","key","class","normalizeClass","e","role","toDisplayString","createCommentVNode","renderSlot","$slots","createTextVNode","reference","_","attachEvents","el","binding","popperComponent","arg","popover","triggerRef","ElPopoverDirective","withInstallDirective","mounted","updated","ElPopover","withInstall","directive","_sfc_main","_hoisted_1","viewBox","xmlns","_hoisted_5","createElementVNode","fill","d","bell","$props","$setup","$data","$options","_hoisted_3","close","expand","dialogMessage","reactive","show","text","activeMessage","handleViewDialogMessage","v","readMessage","read","SuperUserApi","id","then","watch","data","length","autoShow","showItem","find","isMobile","useIsMobile","activeTab","messageData","noReadMessage","filter","route","useRoute","onMounted","getMessageList","push","$router","useRouter","$store","useStore","$route","navList","path","navActiveIdx","handleLogout","ElMessageBox","confirm","draggable","UserApi","logout","finally","commit","replace","catch","ElMessage","info","idx","findIndex","n","startsWith","userName","checkPower","r","isSuperAdmin","power","superNavList","isExternal","isSystem","system","splice","window","open"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["./index-legacy-
|
|
2
|
-
//# sourceMappingURL=index-legacy-
|
|
1
|
+
System.register(["./index-legacy-BLKO-78a.js"],(function(e,a){"use strict";var l,n,t,u,o,r,d,i,s,c,v,p,m,g,h,f,x,w,V,b,y,k,_,C,z,A,U,T;return{setters:[e=>{l=e.g,n=e.d,t=e.a,u=e.c,o=e.b,r=e.r,d=e.h,i=e.u,s=e.i,c=e.j,v=e.w,p=e.k,m=e.l,g=e.e,h=e.t,f=e.m,x=e.n,w=e.q,V=e.E,b=e.P,y=e.U,k=e.s,_=e.v,C=e.x,z=e.y,A=e.z,U=e.A,T=e._}],execute:function(){var a=document.createElement("style");a.textContent=".login[data-v-4e645608]{background-image:linear-gradient(120deg,#a1c4fd,#c2e9fb);min-height:100vh}.inputArea[data-v-4e645608]{margin:0 auto;max-width:320px}.inputArea div[data-v-4e645608]{margin-top:10px}.links[data-v-4e645608]{display:flex;justify-content:center}.links a[data-v-4e645608]{color:#409eff;margin-left:10px}\n",document.head.appendChild(a);const j=n({name:"ChatDotSquare"}),H={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},M=[o("path",{fill:"currentColor",d:"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z"},null,-1),o("path",{fill:"currentColor",d:"M512 499.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z"},null,-1)];var q=l(j,[["render",function(e,a,l,n,o,r){return t(),u("svg",H,M)}]]);const D={class:"login"},E={class:"inputArea"},P={class:"tc"},S={class:"links"};e("default",T(n({__name:"index",setup(e){const a=r(""),l=r(""),n=r(""),T=r(""),j=d(),H=i(),M=r("获取验证码"),$=r(0),B=()=>{0!==$.value?(M.value=`${$.value}s`,$.value-=1,setTimeout(B,1e3)):M.value="获取验证码"},I=()=>{w.test(a.value)?b.getCode(a.value).then((()=>{$.value=120,B(),V.success("获取成功,请注意查看手机短信")})):V.warning("手机号格式不正确")},L=()=>{(w.test(a.value)?A.test(n.value)?n.value!==T.value?(V.warning("两次输入的密码不一致"),0):U.test(l.value)||(V.warning("验证码不正确(4位 数字)"),0):(V.warning("密码格式不正确(6-16位 支持字母/数字/下划线)"),0):(V.warning("手机号格式不正确"),0))&&y.resetPwd(a.value,l.value,n.value).then((e=>{V.success("密码重置成功");const{token:a}=e.data;j.commit("user/setToken",a),H.replace({name:"dashboard"})})).catch((e=>{const{code:a,data:l}=e,n={1008:"该手机号未绑定任何账号",1003:"验证码不正确",1004:"密码格式不正确",1010:"账号已被封禁,有疑问请联系管理员",1009:`账号已被冻结,解冻时间${l?.openTime&&k(new Date(l.openTime))}`};V.error(n[a]||"重置失败,未知错误")}))};return(e,r)=>{const d=_,i=C,w=z,V=s("router-link");return t(),u("div",D,[c(x,null,{default:v((()=>[o("div",E,[o("div",null,[c(d,{maxlength:"11",placeholder:"手机号","prefix-icon":p(m),modelValue:a.value,"onUpdate:modelValue":r[0]||(r[0]=e=>a.value=e),clearable:""},null,8,["prefix-icon","modelValue"])]),o("div",null,[c(d,{maxlength:"4",type:"number",placeholder:"请输入验证码","prefix-icon":p(q),modelValue:l.value,"onUpdate:modelValue":r[1]||(r[1]=e=>l.value=e),clearable:""},{append:v((()=>[c(i,{disabled:0!==$.value,onClick:I},{default:v((()=>[g(h(M.value),1)])),_:1},8,["disabled"])])),_:1},8,["prefix-icon","modelValue"])]),o("div",null,[c(d,{maxlength:"16",minlength:"6",type:"password",placeholder:"请输入新密码","prefix-icon":p(f),modelValue:n.value,"onUpdate:modelValue":r[2]||(r[2]=e=>n.value=e),"show-password":"",clearable:""},null,8,["prefix-icon","modelValue"])]),o("div",null,[c(d,{maxlength:"16",minlength:"6",type:"password",placeholder:"请再次输入新密码","prefix-icon":p(f),modelValue:T.value,"onUpdate:modelValue":r[3]||(r[3]=e=>T.value=e),"show-password":"",clearable:""},null,8,["prefix-icon","modelValue"])]),o("div",P,[c(i,{onClick:L,type:"primary",class:"fw-w100"},{default:v((()=>[g("确认重置")])),_:1})]),c(w),o("div",S,[c(V,{to:"/login"},{default:v((()=>[g("去登陆")])),_:1})])])])),_:1})])}}}),[["__scopeId","data-v-4e645608"]]))}}}));
|
|
2
|
+
//# sourceMappingURL=index-legacy-B4s89tRC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-legacy-
|
|
1
|
+
{"version":3,"file":"index-legacy-B4s89tRC.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/chat-dot-square.mjs","../../src/pages/reset/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: \"ChatDotSquare\"\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: \"M273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64v570.88L273.536 736zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128H296z\"\n}, null, -1);\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M512 499.2a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm192 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4zm-384 0a51.2 51.2 0 1 1 0-102.4 51.2 51.2 0 0 1 0 102.4z\"\n}, null, -1);\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_4);\n}\nvar chatDotSquare = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\n\nexport { chatDotSquare as default };\n","<template>\n <div class=\"login\">\n <login-panel>\n <!-- 表单输入区域 -->\n <div class=\"inputArea\">\n <div>\n <el-input\n maxlength=\"11\"\n placeholder=\"手机号\"\n :prefix-icon=\"Phone\"\n v-model=\"account\"\n clearable\n ></el-input>\n </div>\n <div>\n <el-input\n maxlength=\"4\"\n type=\"number\"\n placeholder=\"请输入验证码\"\n :prefix-icon=\"ChatDotSquare\"\n v-model=\"code\"\n clearable\n >\n <template #append>\n <!-- 获取验证码 -->\n <el-button :disabled=\"time !== 0\" @click=\"getCode\">{{ codeText }}</el-button>\n </template>\n </el-input>\n </div>\n <div>\n <el-input\n maxlength=\"16\"\n minlength=\"6\"\n type=\"password\"\n placeholder=\"请输入新密码\"\n :prefix-icon=\"Lock\"\n v-model=\"pwd1\"\n show-password\n clearable\n ></el-input>\n </div>\n <div>\n <el-input\n maxlength=\"16\"\n minlength=\"6\"\n type=\"password\"\n placeholder=\"请再次输入新密码\"\n :prefix-icon=\"Lock\"\n v-model=\"pwd2\"\n show-password\n clearable\n ></el-input>\n </div>\n <div class=\"tc\">\n <el-button @click=\"reset\" type=\"primary\" class=\"fw-w100\">确认重置</el-button>\n </div>\n <el-divider></el-divider>\n <div class=\"links\">\n <router-link to=\"/login\">去登陆</router-link>\n </div>\n </div>\n </login-panel>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { ElMessage } from 'element-plus'\nimport {\n Lock, Phone, ChatDotSquare,\n} from '@element-plus/icons-vue'\nimport {\n ref,\n} from 'vue'\nimport { useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\nimport loginPanel from '@components/loginPanel.vue'\nimport { PublicApi, UserApi } from '@/apis'\nimport {\n rMobilePhone, rPassword, rVerCode,\n} from '@/utils/regExp'\nimport { formatDate } from '@/utils/stringUtil'\n\nconst account = ref('')\nconst code = ref('')\nconst pwd1 = ref('')\nconst pwd2 = ref('')\nconst $store = useStore()\nconst $router = useRouter()\nconst redirectDashBoard = () => {\n $router.replace({\n name: 'dashboard',\n })\n}\nconst checkForm = () => {\n if (!rMobilePhone.test(account.value)) {\n ElMessage.warning('手机号格式不正确')\n return false\n }\n\n if (!rPassword.test(pwd1.value)) {\n ElMessage.warning('密码格式不正确(6-16位 支持字母/数字/下划线)')\n return false\n }\n if (pwd1.value !== pwd2.value) {\n ElMessage.warning('两次输入的密码不一致')\n return false\n }\n\n if (!rVerCode.test(code.value)) {\n ElMessage.warning('验证码不正确(4位 数字)')\n return false\n }\n return true\n}\nconst codeText = ref('获取验证码')\nconst time = ref(0)\nconst refreshCodeText = () => {\n if (time.value === 0) {\n codeText.value = '获取验证码'\n return\n }\n codeText.value = `${time.value}s`\n time.value -= 1\n setTimeout(refreshCodeText, 1000)\n}\nconst getCode = () => {\n if (!rMobilePhone.test(account.value)) {\n ElMessage.warning('手机号格式不正确')\n return\n }\n PublicApi.getCode(account.value).then(() => {\n time.value = 120\n refreshCodeText()\n ElMessage.success('获取成功,请注意查看手机短信')\n })\n}\nconst reset = () => {\n if (!checkForm()) {\n return\n }\n UserApi\n .resetPwd(account.value, code.value, pwd1.value)\n .then((res) => {\n ElMessage.success('密码重置成功')\n const { token } = res.data\n $store.commit('user/setToken', token)\n redirectDashBoard()\n })\n .catch((err) => {\n const { code: c, data } = err\n const options: any = {\n 1008: '该手机号未绑定任何账号',\n 1003: '验证码不正确',\n 1004: '密码格式不正确',\n 1010: '账号已被封禁,有疑问请联系管理员',\n 1009: `账号已被冻结,解冻时间${data?.openTime && formatDate(new Date(data.openTime))}`,\n }\n ElMessage.error(options[c] || '重置失败,未知错误')\n })\n}\n\n</script>\n\n<style scoped lang=\"scss\">\n.login {\n background-image: linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%);\n min-height: 100vh;\n}\n\n.inputArea {\n // padding: 1rem;\n margin: 0 auto;\n max-width: 320px;\n div {\n margin-top: 10px;\n }\n}\n// 登录按钮下方链接\n.links {\n display: flex;\n justify-content: center;\n a {\n color: #409eff;\n margin-left: 10px;\n }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","name","_hoisted_1","viewBox","xmlns","_hoisted_4","createElementVNode","fill","d","chatDotSquare","_export_sfc","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","account","ref","code","pwd1","pwd2","$store","useStore","$router","useRouter","codeText","time","refreshCodeText","value","setTimeout","getCode","rMobilePhone","test","PublicApi","then","ElMessage","success","warning","reset","rPassword","rVerCode","UserApi","resetPwd","res","token","data","commit","replace","catch","err","c","options","openTime","formatDate","Date","error"],"mappings":"+uBAGA,MAAMA,EAAYC,EAAgB,CAChCC,KAAM,kBAEFC,EAAa,CACjBC,QAAS,gBACTC,MAAO,8BAUHC,EAAa,CARgBC,EAAmB,OAAQ,CAC5DC,KAAM,eACNC,EAAG,qOACF,MAAO,GACyBF,EAAmB,OAAQ,CAC5DC,KAAM,eACNC,EAAG,8KACF,MAAO,IAQV,IAAIC,EAAgCC,EAAYX,EAAW,CAAC,CAAC,SAH7D,SAAqBY,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GACxD,OAAOC,IAAaC,EAAmB,MAAOhB,EAAYG,EAC5D,6HCyDM,MAAAc,EAAUC,EAAI,IACdC,EAAOD,EAAI,IACXE,EAAOF,EAAI,IACXG,EAAOH,EAAI,IACXI,EAASC,IACTC,EAAUC,IA2BVC,EAAWR,EAAI,SACfS,EAAOT,EAAI,GACXU,EAAkBA,KACH,IAAfD,EAAKE,OAIAH,EAAAG,MAAQ,GAAGF,EAAKE,SACzBF,EAAKE,OAAS,EACdC,WAAWF,EAAiB,MAL1BF,EAASG,MAAQ,OAKa,EAE5BE,EAAUA,KACTC,EAAaC,KAAKhB,EAAQY,OAI/BK,EAAUH,QAAQd,EAAQY,OAAOM,MAAK,KACpCR,EAAKE,MAAQ,IACGD,IAChBQ,EAAUC,QAAQ,iBAAgB,IANlCD,EAAUE,QAAQ,WAOnB,EAEGC,EAAQA,MA1CPP,EAAaC,KAAKhB,EAAQY,OAK1BW,EAAUP,KAAKb,EAAKS,OAIrBT,EAAKS,QAAUR,EAAKQ,OACtBO,EAAUE,QAAQ,cACX,GAGJG,EAASR,KAAKd,EAAKU,SACtBO,EAAUE,QAAQ,qBATlBF,EAAUE,QAAQ,8BACX,IANPF,EAAUE,QAAQ,YACX,KA6CNI,EAAAC,SAAS1B,EAAQY,MAAOV,EAAKU,MAAOT,EAAKS,OACzCM,MAAMS,IACLR,EAAUC,QAAQ,UACZ,MAAAQ,MAAEA,GAAUD,EAAIE,KACfxB,EAAAyB,OAAO,gBAAiBF,GAxDnCrB,EAAQwB,QAAQ,CACdjD,KAAM,aAwDc,IAEnBkD,OAAOC,IACN,MAAQ/B,KAAMgC,EAAGL,KAAAA,GAASI,EACpBE,EAAe,CACnB,KAAM,cACN,KAAM,SACN,KAAM,UACN,KAAM,mBACN,KAAM,cAAcN,GAAMO,UAAYC,EAAW,IAAIC,KAAKT,EAAKO,cAEjEjB,EAAUoB,MAAMJ,EAAQD,IAAM,YAAW,GAC1C","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
System.register(["./index-legacy-
|
|
2
|
-
//# sourceMappingURL=index-legacy-
|
|
1
|
+
System.register(["./index-legacy-BLKO-78a.js","./el-form-item-legacy-CcX_hnMk.js","./tip-legacy-DpAPUNpm.js","./refresh-legacy-CchIU9Mh.js","./isEqual-legacy-4dmPHJnc.js","./index-legacy-6cMsZS3c.js"],(function(e,a){"use strict";var t,l,n,r,s,i,o,d,c,u,g,p,m,v,f,x,y,h,w,k,M,b,z,C,E,_,j,O,T,B,I,N,S;return{setters:[e=>{t=e.a4,l=e.g,n=e.d,r=e.a,s=e.c,i=e.b,o=e.Z,d=e.r,c=e.O,u=e.o,g=e.j,p=e.w,m=e.k,v=e.H,f=e.a8,x=e.a9,y=e.e,h=e.F,w=e.C,k=e.t,M=e.D,b=e.S,z=e.E,C=e.I,E=e.x,_=e.v,j=e.p,O=e.f,T=e._},e=>{B=e.E,I=e.a},e=>{N=e.T},e=>{S=e.r},null,null],execute:function(){var a=document.createElement("style");a.textContent="@media screen and (max-width: 700px){.user[data-v-9638922a]{margin-top:40px!important}}.user[data-v-9638922a]{margin:0 auto}.panel[data-v-9638922a]{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}h1[data-v-9638922a]{margin:0;padding:10px 0;font-size:20px;font-weight:700;text-align:center;display:flex;justify-content:center;align-items:center}.service-list[data-v-9638922a]{display:flex;flex-wrap:wrap;justify-content:space-around}.service-item[data-v-9638922a]{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:10px;min-width:120px}.service-item img[data-v-9638922a]{width:80px}.service-item p[data-v-9638922a]{text-align:center;padding-top:10px;font-size:14px}@keyframes rotate-9638922a{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading[data-v-9638922a]{margin-left:10px;animation:rotate-9638922a 1s linear infinite}.error-panel[data-v-9638922a]{padding:0 20px}.error-panel p[data-v-9638922a]{margin-bottom:10px}.error-panel p .error[data-v-9638922a]{color:red}.config-container[data-v-9638922a]{display:flex;justify-content:space-around;flex-wrap:wrap}.config-panel h2[data-v-9638922a]{text-align:center;font-size:16px;margin-bottom:10px}\n",document.head.appendChild(a);const D={getServiceOverview:function(){return t.get("/config/service/overview")},getServiceConfig:function(){return t.get("/config/service/config")},updateCfg:function(e){return t.put("/config/service/config",e)}},A=n({name:"CloseBold"}),L={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},Y=[i("path",{fill:"currentColor",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"},null,-1)];var q=l(A,[["render",function(e,a,t,l,n,i){return r(),s("svg",L,Y)}]]);const V=n({name:"Select"}),Q={viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"},U=[i("path",{fill:"currentColor",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"},null,-1)];var F=l(V,[["render",function(e,a,t,l,n,i){return r(),s("svg",Q,U)}]]);const H=e=>(j("data-v-9638922a"),e=e(),O(),e),R={class:"user"},Z={class:"panel"},G=H((()=>i("span",null,"服务概况",-1))),J={class:"service-list"},K=["src","alt"],P={key:2},W={class:"error-panel"},X=H((()=>i("h1",null,"错误信息",-1))),$={class:"error"},ee=H((()=>i("h1",null,"服务相关配置",-1))),ae={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"},te={class:"config-container"},le={class:"flex",style:{flex:"1"}};e("default",T(n({__name:"index",setup(e){const a=o([{name:"MySQL",key:"mysql",logo:"https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTAyMjIwNA==657359022204",status:!1,des:"存储用户数据",errMsg:""},{name:"七牛云",key:"qiniu",logo:"https://img.cdn.sugarat.top/mdImg/MTY1NzM1ODcyODM0Mg==657358728342",status:!1,des:"文件存储"},{name:"MongoDB",key:"mongodb",logo:"https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTA4OTc3Nw==657359089777",status:!1,des:"用户数据与日志"},{name:"Redis",key:"redis",logo:"https://img.cdn.sugarat.top/mdImg/MTY1NzM1ODgyNzM1MA==657358827350",status:!1,des:"持久化缓存数据",error:"确保安装redis,且监听端口6379"},{name:"腾讯云",key:"tx",logo:"https://img.cdn.sugarat.top/mdImg/MTY1NzM1OTE1MzQzOQ==657359153439",status:!1,des:"短信服务"}]),t=d(!1),l=c((()=>a.filter((e=>e.errMsg))));function n(){t.value||(t.value=!0,D.getServiceOverview().then((e=>{const{data:l}=e;a.forEach((e=>{const{status:a,errMsg:t}=l[e.key];e.status=a,e.errMsg=t})),z.success("服务状态刷新完成"),t.value=!1})))}const j=d([]);return u((()=>{n(),D.getServiceConfig().then((e=>{e.data.forEach((e=>{e.data.forEach((e=>{e.disabled=!0}))})),j.value=e.data}))})),(e,o)=>{const d=C,c=E,u=_,O=B,T=I;return r(),s("div",R,[i("div",Z,[i("div",null,[i("h1",null,[G,g(d,{class:v({loading:t.value}),style:{cursor:"pointer","margin-left":"10px"},onClick:n},{default:p((()=>[g(m(S))])),_:1},8,["class"]),f(i("span",null,"数据加载中...",512),[[x,t.value]])]),g(N,null,{default:p((()=>[y("查看各个服务的运行情况")])),_:1}),i("div",J,[(r(!0),s(h,null,w(a,(e=>(r(),s("div",{key:e.key,class:"service-item"},[i("img",{src:e.logo,alt:e.name},null,8,K),i("p",null,[g(N,null,{default:p((()=>[y(k(e.des),1)])),_:2},1024)]),e.status?(r(),M(c,{key:0,type:"success",size:"small",icon:m(F),circle:""},null,8,["icon"])):(r(),M(c,{key:1,type:"danger",size:"small",icon:m(q),circle:""},null,8,["icon"])),!e.status&&e.error?(r(),s("p",P,[g(N,null,{default:p((()=>[y(k(e.error),1)])),_:2},1024)])):b("",!0)])))),128))])]),f(i("div",W,[X,(r(!0),s(h,null,w(l.value,(e=>(r(),s("p",{key:e.key},[i("strong",null,k(e.name)+":",1),i("span",$,k(e.errMsg),1)])))),128))],512),[[x,l.value.length]]),i("div",null,[ee,g(N,null,{default:p((()=>[y(" 在此面板,配置服务器运行相关参数 "),i("a",ae,[g(c,{type:"primary",link:""},{default:p((()=>[y("配置手册?")])),_:1})])])),_:1})]),i("div",te,[(r(!0),s(h,null,w(j.value,(e=>(r(),s("div",{key:e.title,class:"config-panel"},[i("h2",null,k(e.title),1),g(T,{"label-position":"right","label-width":"100px",style:{"max-width":"400px",margin:"0 auto"}},{default:p((()=>[(r(!0),s(h,null,w(e.data,(e=>(r(),M(O,{key:e.key,"label-width":"auto",label:e.label||e.key},{default:p((()=>[i("div",le,[g(u,{modelValue:e.value,"onUpdate:modelValue":a=>e.value=a,disabled:e.disabled},null,8,["modelValue","onUpdate:modelValue","disabled"]),e.disabled?(r(),M(c,{key:0,type:"primary",text:"",onClick:a=>e.disabled=!1},{default:p((()=>[y(" 更新 ")])),_:2},1032,["onClick"])):(r(),M(c,{key:1,type:"success",text:"",onClick:a=>{return t=e,void D.updateCfg(t).then((()=>{t.disabled=!0,z.success("更新成功"),n()}));var t}},{default:p((()=>[y(" 完成 ")])),_:2},1032,["onClick"]))])])),_:2},1032,["label"])))),128))])),_:2},1024)])))),128))])])])}}}),[["__scopeId","data-v-9638922a"]]))}}}));
|
|
2
|
+
//# sourceMappingURL=index-legacy-BFfoAOF1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-legacy-DiTQKLfl.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-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]}
|