From f6afbac2a550c8d39bf60be5f65dd4f4b87bee5c Mon Sep 17 00:00:00 2001 From: sy2084 Date: Wed, 17 Jul 2024 11:33:26 +0800 Subject: [PATCH 01/16] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.cjs | 2 +- components.d.ts | 3 + src/components/common/y-chart.vue | 9 +- src/components/common/y-table.vue | 3 +- .../module-cfg/components/create-modal.vue | 69 +++++++--- src/views/config-manage/module-cfg/config.ts | 2 +- src/views/config-manage/module-cfg/service.js | 6 +- .../view-all-manage/create-view/index.vue | 119 ++++++++++++++---- .../view-all-manage/create-view/service.js | 28 ++++- src/views/view-all-manage/view-list/index.vue | 6 +- 10 files changed, 192 insertions(+), 55 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index cf37a63..ed2f2e6 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -12,7 +12,7 @@ module.exports = { ecmaVersion: 'latest', }, rules: { - semi: 2, + semi: 0, 'vue/multi-word-component-names': 0, indent: [ 2, 2, { diff --git a/components.d.ts b/components.d.ts index 3da7a8b..6b6a4be 100644 --- a/components.d.ts +++ b/components.d.ts @@ -25,6 +25,9 @@ declare module 'vue' { AModal: typeof import('ant-design-vue/es')['Modal'] APagination: typeof import('ant-design-vue/es')['Pagination'] APopconfirm: typeof import('ant-design-vue/es')['Popconfirm'] + ARadio: typeof import('ant-design-vue/es')['Radio'] + ARadioButton: typeof import('ant-design-vue/es')['RadioButton'] + ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup'] ASelect: typeof import('ant-design-vue/es')['Select'] ASelectOption: typeof import('ant-design-vue/es')['SelectOption'] ASpace: typeof import('ant-design-vue/es')['Space'] diff --git a/src/components/common/y-chart.vue b/src/components/common/y-chart.vue index 6a45cb9..1d6b604 100644 --- a/src/components/common/y-chart.vue +++ b/src/components/common/y-chart.vue @@ -7,13 +7,14 @@
- + +
diff --git a/src/components/common/y-table.vue b/src/components/common/y-table.vue index f5b9c5d..8ec7284 100644 --- a/src/components/common/y-table.vue +++ b/src/components/common/y-table.vue @@ -1,5 +1,8 @@ diff --git a/src/plugins/antv-g2plot/pie.vue b/src/plugins/antv-g2plot/pie.vue index 6bcc8de..ed7bebb 100644 --- a/src/plugins/antv-g2plot/pie.vue +++ b/src/plugins/antv-g2plot/pie.vue @@ -22,5 +22,5 @@ const props = defineProps({ }, }); -const { container } = useChart(Pie, props.config); +const { container } = useChart(Pie, props); diff --git a/src/plugins/antv-g2plot/useChart.js b/src/plugins/antv-g2plot/useChart.js index 1fb5e17..8f1d1f2 100644 --- a/src/plugins/antv-g2plot/useChart.js +++ b/src/plugins/antv-g2plot/useChart.js @@ -1,20 +1,20 @@ import { onBeforeUnmount, onMounted, ref, watch } from "vue"; import _ from "lodash"; -export default function useChart(ChartClass, config) { +export default function useChart(ChartClass, props) { const chart = ref(null); // 表格实例 const chartOptions = ref(null); // 图表配置 const container = ref(null); // 渲染图表元素 - const { onReady, onEvent } = config; + const { onReady, onEvent } = props.config; // 全局事件侦听器 let handler; onMounted(() => { - chartOptions.value = _.cloneDeep(config); + chartOptions.value = _.cloneDeep(props.config); // 实例化图表 - const chartInstance = new ChartClass(container.value, { ...config }); + const chartInstance = new ChartClass(container.value, { ...props.config }); chartInstance.toDataURL = (type, encoderOptions) => { return toDataURL(type, encoderOptions); }; @@ -46,7 +46,7 @@ export default function useChart(ChartClass, config) { // 配置更改时更新图表 watch( - () => config, + () => props.config, (config) => { const newConfig = _.cloneDeep(config); chartOptions.value = newConfig; diff --git a/src/views/config-manage/module-cfg/components/field-modal.vue b/src/views/config-manage/module-cfg/components/field-modal.vue index 62d150f..e6a9c86 100644 --- a/src/views/config-manage/module-cfg/components/field-modal.vue +++ b/src/views/config-manage/module-cfg/components/field-modal.vue @@ -40,6 +40,18 @@ {{ record[column.dataIndex] }} + @@ -96,6 +108,7 @@ import { onMounted, reactive, ref, watch } from "vue"; import { viewCfgCols } from "@/views/config-manage/module-cfg/config"; import { getFieldTypeSelect, + getFieldNumSelect, getFieldList, // deleteField, saveField, @@ -117,6 +130,7 @@ const listLoading = ref(false); const fieldName = ref(""); const dataList = ref([]); const fieldTypeSel = ref([]); +const fieldNumTypeSel = ref([]); const pageState = reactive({ page: 1, perPage: 20, @@ -135,15 +149,23 @@ watch( onMounted(() => { toGetFieldTypes(); + toGetFieldNumSelect(); }); -// 字段类型下拉 +// 字段搜索类型下拉 const toGetFieldTypes = () => { getFieldTypeSelect().then((res) => { fieldTypeSel.value = res.data; }); }; +// 字段类型下拉 +const toGetFieldNumSelect = () => { + getFieldNumSelect().then((res) => { + fieldNumTypeSel.value = res.data; + }) +}; + // 字段列表 const toGetList = () => { listLoading.value = true; @@ -172,6 +194,7 @@ const addField = () => { field_id: new Date().getTime() + "", field_title: undefined, field_name: undefined, + field_numerical_type_id: undefined, is_search: 0, field_type_id: undefined, belong_to_table: undefined, @@ -203,6 +226,7 @@ const handleSave = (record) => { field_id: record.field_id, field_title: record.field_title, field_name: record.field_name, + field_numerical_type_id: record.field_numerical_type_id, is_search: record.is_search, field_type_id: record.field_type_id, belong_to_table: record.belong_to_table, diff --git a/src/views/config-manage/module-cfg/config.ts b/src/views/config-manage/module-cfg/config.ts index cbe882f..d05f3b6 100644 --- a/src/views/config-manage/module-cfg/config.ts +++ b/src/views/config-manage/module-cfg/config.ts @@ -11,7 +11,8 @@ export const moduleCfgCols = [ export const viewCfgCols = [ { dataIndex: 'field_name', title: '字段名称', align: 'center'}, { dataIndex: 'field_title', title: '字段标题', align: 'center'}, - { dataIndex: 'field_type_name', title: '字段类型', align: 'center'}, + { dataIndex: 'field_numerical_name', title: '字段类型', align: 'center'}, + { dataIndex: 'field_type_name', title: '搜索类型', align: 'center'}, { dataIndex: 'is_search', title: '是否可搜索', align: 'center'}, { dataIndex: 'sort', title: '排序', align: 'center'}, { dataIndex: 'belong_to_table', title: '所属表名称', align: 'center'}, diff --git a/src/views/config-manage/module-cfg/service.js b/src/views/config-manage/module-cfg/service.js index 29272be..e2a57be 100644 --- a/src/views/config-manage/module-cfg/service.js +++ b/src/views/config-manage/module-cfg/service.js @@ -64,13 +64,20 @@ export function getDbTableSelect({ projectId }) { }); } -// 字段类型下拉 +// 字段搜索类型下拉 export function getFieldTypeSelect() { return get({ url: `/api/v1/field/get-field-type-drop`, }); } +// 字段类型下拉 +export function getFieldNumSelect() { + return get({ + url: `/api/v1/field/get-field-numerical-type-drop`, + }) +} + // 获取字段列表 export function getFieldList({ modularId, fieldName, page, perPage }) { return get({ diff --git a/src/views/view-all-manage/view-list/index.vue b/src/views/view-all-manage/view-list/index.vue index bf6103c..d6ac8ed 100644 --- a/src/views/view-all-manage/view-list/index.vue +++ b/src/views/view-all-manage/view-list/index.vue @@ -111,6 +111,11 @@ const selectedRowId = ref(); const selectViewInfo = ref({ type: "", filter: [], + config: { + line: { + data: [] + } + } }); const pageState = reactive({ @@ -146,6 +151,9 @@ const toGetViewInfo = (params = {}) => { ...params, }).then((res) => { selectViewInfo.value = res.data; + delete selectViewInfo.value.config.line.isGroup + delete selectViewInfo.value.config.line.label + selectViewInfo.value.config.line.data = res.data.config.line.data }); }; From f31f5d470c30e2be7765986548dd20acbae2b077 Mon Sep 17 00:00:00 2001 From: wuluoting Date: Wed, 17 Jul 2024 23:19:56 +0800 Subject: [PATCH 05/16] =?UTF-8?q?feat:=E6=96=B0=E5=A2=9E=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .npmrc | 2 +- components.d.ts | 9 +- package-lock.json | 435 +++++++++++++++++- package.json | 4 +- src/api/common.ts | 22 +- src/api/preview/index.js | 28 -- src/api/preview/index.ts | 21 + src/main.ts | 14 +- src/router/routes.ts | 100 ++-- src/views/page-show-info/page-info/index,.vue | 330 +++++++++++++ src/views/page-show-info/page-info/service.ts | 10 + 11 files changed, 876 insertions(+), 99 deletions(-) delete mode 100644 src/api/preview/index.js create mode 100644 src/api/preview/index.ts create mode 100644 src/views/page-show-info/page-info/index,.vue create mode 100644 src/views/page-show-info/page-info/service.ts diff --git a/.npmrc b/.npmrc index 434547d..dce03c3 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1 @@ -registry=http://sy-registry.shiyue.com +# registry=http://sy-registry.shiyue.com diff --git a/components.d.ts b/components.d.ts index aeb9fb3..69cc5e2 100644 --- a/components.d.ts +++ b/components.d.ts @@ -12,9 +12,10 @@ declare module 'vue' { AButton: typeof import('ant-design-vue/es')['Button'] ACheckbox: typeof import('ant-design-vue/es')['Checkbox'] ACheckboxGroup: typeof import('ant-design-vue/es')['CheckboxGroup'] + ACol: typeof import('ant-design-vue/es')['Col'] AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider'] ADropdown: typeof import('ant-design-vue/es')['Dropdown'] - AEmpty: typeof import('ant-design-vue/es')['Empty'] + AEmpty: typeof import("ant-design-vue/es")["Empty"] AFloatButton: typeof import('ant-design-vue/es')['FloatButton'] AForm: typeof import('ant-design-vue/es')['Form'] AFormItem: typeof import('ant-design-vue/es')['FormItem'] @@ -29,14 +30,16 @@ declare module 'vue' { ARadioButton: typeof import('ant-design-vue/es')['RadioButton'] ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup'] ARangePicker: typeof import('ant-design-vue/es')['RangePicker'] + ARow: typeof import('ant-design-vue/es')['Row'] ASelect: typeof import('ant-design-vue/es')['Select'] - ASelectOption: typeof import('ant-design-vue/es')['SelectOption'] + ASelectOption: typeof import("ant-design-vue/es")["SelectOption"] ASpace: typeof import('ant-design-vue/es')['Space'] + ASpin: typeof import('ant-design-vue/es')['Spin'] ASwitch: typeof import('ant-design-vue/es')['Switch'] ATable: typeof import('ant-design-vue/es')['Table'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] - Table: typeof import('./src/components/common/table.vue')['default'] + Table: typeof import("./src/components/common/table.vue")["default"] YChart: typeof import('./src/components/common/y-chart.vue')['default'] YTable: typeof import('./src/components/common/y-table.vue')['default'] } diff --git a/package-lock.json b/package-lock.json index fbd72ab..feb139b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,8 +13,10 @@ "ant-design-vue": "^4.1.2", "axios": "^1.6.7", "lodash": "^4.17.21", + "p-limit": "^6.1.0", "pinia": "^2.1.7", "vue": "^3.4.15", + "vue-grid-layout": "^3.0.0-beta1", "vue-router": "^4.2.5" }, "devDependencies": { @@ -1352,6 +1354,173 @@ "deprecated": "Use @eslint/object-schema instead", "dev": true }, + "node_modules/@interactjs/actions": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/actions/-/actions-1.10.27.tgz", + "integrity": "sha512-FCRg5KwB+stkPcAMx/Cn0fgGP6p4LyMX9S/Upcn/W+hpYme31bPi54PCqmOebzz6myTthN6zFf9jMyLOqtI/gg==", + "optionalDependencies": { + "@interactjs/interact": "1.10.27" + }, + "peerDependencies": { + "@interactjs/core": "1.10.27", + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/auto-scroll": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/auto-scroll/-/auto-scroll-1.10.27.tgz", + "integrity": "sha512-zPg5TnVsZv+9Hnt4qnbxLvBMf+rIWHkoJVoSETEbLNaj90C8hIyr0pVwukSUySSgDhCgQ7np0f3pg4INLq9beQ==", + "optionalDependencies": { + "@interactjs/interact": "1.10.27" + }, + "peerDependencies": { + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/auto-start": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/auto-start/-/auto-start-1.10.27.tgz", + "integrity": "sha512-ECLBO/nxmaF1knncJKIE5F7la3KKRgEkn0Cu2JTPOYj9xy/LpfYElo3wkRHsodgOqF651nR70GK2/IzPR2lO9A==", + "optionalDependencies": { + "@interactjs/interact": "1.10.27" + }, + "peerDependencies": { + "@interactjs/core": "1.10.27", + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/core": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/core/-/core-1.10.27.tgz", + "integrity": "sha512-SliUr/3ZbLAdED8LokzYzWHWMdCB5Cq+UnpXuRy+BIod1j97m4IUFf/D1iIKUBBjBcucgXbz28z96WnenVCB7Q==", + "peerDependencies": { + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/dev-tools": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/dev-tools/-/dev-tools-1.10.27.tgz", + "integrity": "sha512-YolmBwRaKH1gWbvyLeV3m5QSwtD38lOZnCBA87PCAlcd9PQAC2gb03fEPeEyD336bE20oLB8f0WZt4Wre+afiw==", + "optionalDependencies": { + "@interactjs/interact": "1.10.27", + "vue": "3" + }, + "peerDependencies": { + "@interactjs/modifiers": "1.10.27", + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/inertia": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/inertia/-/inertia-1.10.27.tgz", + "integrity": "sha512-S/SVj/M0D+wWWPVXHcXN/YUWOK51LFJsEA+CTgVnFhlSU04+1FUvNLwilCZcHgECu1RJxZNKDwZysDATg+r8jQ==", + "dependencies": { + "@interactjs/offset": "1.10.27" + }, + "optionalDependencies": { + "@interactjs/interact": "1.10.27" + }, + "peerDependencies": { + "@interactjs/core": "1.10.27", + "@interactjs/modifiers": "1.10.27", + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/interact": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/interact/-/interact-1.10.27.tgz", + "integrity": "sha512-XdH3A2UUzjEFGGJgFuJlhiz99tE8jB8xNh/DmnoMuL6uOQPxNA+sWRnzEVjG0+zY2P3/dbhEpi4Cn3FLPzydwA==", + "dependencies": { + "@interactjs/core": "1.10.27", + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/interactjs": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/interactjs/-/interactjs-1.10.27.tgz", + "integrity": "sha512-UwhfUZMZVXUY72efPABuKSBz1sUY+r+49v8t6Ku9o5Jq76AKg9mwmdGszIlOn3ppnFDDjvtzK/8TL+Sbd0EQEA==", + "dependencies": { + "@interactjs/actions": "1.10.27", + "@interactjs/auto-scroll": "1.10.27", + "@interactjs/auto-start": "1.10.27", + "@interactjs/core": "1.10.27", + "@interactjs/dev-tools": "1.10.27", + "@interactjs/inertia": "1.10.27", + "@interactjs/interact": "1.10.27", + "@interactjs/modifiers": "1.10.27", + "@interactjs/offset": "1.10.27", + "@interactjs/pointer-events": "1.10.27", + "@interactjs/reflow": "1.10.27", + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/modifiers": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/modifiers/-/modifiers-1.10.27.tgz", + "integrity": "sha512-ei/qfoQ+9/8k6WzNzdNqHI6cWkIV576N4Ap16r5CoqOWwhA6Xzj3OMHf1g0t1O4eSq2HdJsVJn3eLNfw9HsbeQ==", + "dependencies": { + "@interactjs/snappers": "1.10.27" + }, + "optionalDependencies": { + "@interactjs/interact": "1.10.27" + }, + "peerDependencies": { + "@interactjs/core": "1.10.27", + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/offset": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/offset/-/offset-1.10.27.tgz", + "integrity": "sha512-AezsLiuK+Qv4jXdYuRa65HJ2pMFMZPlqiAep6ZRLwhP9HE7O75c0EAm+gfx+dpPrHNHs6J9LaiKSZl+B+A2qAw==", + "optionalDependencies": { + "@interactjs/interact": "1.10.27" + }, + "peerDependencies": { + "@interactjs/core": "1.10.27", + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/pointer-events": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/pointer-events/-/pointer-events-1.10.27.tgz", + "integrity": "sha512-Yo5SS6PhWfC93gHNxnwwW0wvebo5hSYJKGaSnAHO4f9Lh25yibecMnmPBmiEfWVcdMboK/kXrme43mHQaRegVg==", + "optionalDependencies": { + "@interactjs/interact": "1.10.27" + }, + "peerDependencies": { + "@interactjs/core": "1.10.27", + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/reflow": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/reflow/-/reflow-1.10.27.tgz", + "integrity": "sha512-Msm0QdYFr40oSsPFxyCR3dHN/pQx34k7QSkdN1uIsUn/drrm+YSFvrvVOu99DFOwr7gTThr5vNe06Sz4vubTSA==", + "optionalDependencies": { + "@interactjs/interact": "1.10.27" + }, + "peerDependencies": { + "@interactjs/core": "1.10.27", + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/snappers": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/snappers/-/snappers-1.10.27.tgz", + "integrity": "sha512-HZLZ0XSi6HI08OmTv/HKG6AltQoaKAALLQ+KDW92utj3XSgw7oren0KsWUKPhaPg3Av7R1jFQd08s+uafqIlLw==", + "optionalDependencies": { + "@interactjs/interact": "1.10.27" + }, + "peerDependencies": { + "@interactjs/utils": "1.10.27" + } + }, + "node_modules/@interactjs/utils": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/utils/-/utils-1.10.27.tgz", + "integrity": "sha512-+qfLOio2OxQqg1cXSnRaCl+N8MQDQLDS9w+aOGxH8YLAhIMyt7Asxx/46//sT8orgsi16pmlBPtngPHT9s8zKw==" + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -2568,6 +2737,11 @@ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/batch-processor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", + "integrity": "sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA==" + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -3148,6 +3322,14 @@ "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==", "dev": true }, + "node_modules/element-resize-detector": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.4.tgz", + "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==", + "dependencies": { + "batch-processor": "1.0.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", @@ -4969,6 +5151,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/mitt": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-2.1.0.tgz", + "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==" + }, "node_modules/mock-property": { "version": "1.0.3", "resolved": "http://sy-registry.shiyue.com/mock-property/-/mock-property-1.0.3.tgz", @@ -5192,15 +5379,14 @@ } }, "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.1.0.tgz", + "integrity": "sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==", "dependencies": { - "yocto-queue": "^0.1.0" + "yocto-queue": "^1.1.1" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5221,6 +5407,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", @@ -6424,6 +6637,20 @@ "node": ">=10" } }, + "node_modules/vue-grid-layout": { + "version": "3.0.0-beta1", + "resolved": "https://registry.npmjs.org/vue-grid-layout/-/vue-grid-layout-3.0.0-beta1.tgz", + "integrity": "sha512-MsW0yfYNtnAO/uDhfZvkP6effxSJxvhAFbIL37x6Rn3vW9xf0WHVefKaSbQMLpSq3mXnR6ut0pg2Cd5lqIIZzg==", + "dependencies": { + "@interactjs/actions": "^1.10.2", + "@interactjs/auto-start": "^1.10.2", + "@interactjs/dev-tools": "^1.10.2", + "@interactjs/interactjs": "^1.10.2", + "@interactjs/modifiers": "^1.10.2", + "element-resize-detector": "^1.2.1", + "mitt": "^2.1.0" + } + }, "node_modules/vue-router": { "version": "4.4.0", "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.4.0.tgz", @@ -6627,12 +6854,11 @@ } }, "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "engines": { - "node": ">=10" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7601,6 +7827,128 @@ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, + "@interactjs/actions": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/actions/-/actions-1.10.27.tgz", + "integrity": "sha512-FCRg5KwB+stkPcAMx/Cn0fgGP6p4LyMX9S/Upcn/W+hpYme31bPi54PCqmOebzz6myTthN6zFf9jMyLOqtI/gg==", + "requires": { + "@interactjs/interact": "1.10.27" + } + }, + "@interactjs/auto-scroll": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/auto-scroll/-/auto-scroll-1.10.27.tgz", + "integrity": "sha512-zPg5TnVsZv+9Hnt4qnbxLvBMf+rIWHkoJVoSETEbLNaj90C8hIyr0pVwukSUySSgDhCgQ7np0f3pg4INLq9beQ==", + "requires": { + "@interactjs/interact": "1.10.27" + } + }, + "@interactjs/auto-start": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/auto-start/-/auto-start-1.10.27.tgz", + "integrity": "sha512-ECLBO/nxmaF1knncJKIE5F7la3KKRgEkn0Cu2JTPOYj9xy/LpfYElo3wkRHsodgOqF651nR70GK2/IzPR2lO9A==", + "requires": { + "@interactjs/interact": "1.10.27" + } + }, + "@interactjs/core": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/core/-/core-1.10.27.tgz", + "integrity": "sha512-SliUr/3ZbLAdED8LokzYzWHWMdCB5Cq+UnpXuRy+BIod1j97m4IUFf/D1iIKUBBjBcucgXbz28z96WnenVCB7Q==", + "requires": {} + }, + "@interactjs/dev-tools": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/dev-tools/-/dev-tools-1.10.27.tgz", + "integrity": "sha512-YolmBwRaKH1gWbvyLeV3m5QSwtD38lOZnCBA87PCAlcd9PQAC2gb03fEPeEyD336bE20oLB8f0WZt4Wre+afiw==", + "requires": { + "@interactjs/interact": "1.10.27", + "vue": "3" + } + }, + "@interactjs/inertia": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/inertia/-/inertia-1.10.27.tgz", + "integrity": "sha512-S/SVj/M0D+wWWPVXHcXN/YUWOK51LFJsEA+CTgVnFhlSU04+1FUvNLwilCZcHgECu1RJxZNKDwZysDATg+r8jQ==", + "requires": { + "@interactjs/interact": "1.10.27", + "@interactjs/offset": "1.10.27" + } + }, + "@interactjs/interact": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/interact/-/interact-1.10.27.tgz", + "integrity": "sha512-XdH3A2UUzjEFGGJgFuJlhiz99tE8jB8xNh/DmnoMuL6uOQPxNA+sWRnzEVjG0+zY2P3/dbhEpi4Cn3FLPzydwA==", + "requires": { + "@interactjs/core": "1.10.27", + "@interactjs/utils": "1.10.27" + } + }, + "@interactjs/interactjs": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/interactjs/-/interactjs-1.10.27.tgz", + "integrity": "sha512-UwhfUZMZVXUY72efPABuKSBz1sUY+r+49v8t6Ku9o5Jq76AKg9mwmdGszIlOn3ppnFDDjvtzK/8TL+Sbd0EQEA==", + "requires": { + "@interactjs/actions": "1.10.27", + "@interactjs/auto-scroll": "1.10.27", + "@interactjs/auto-start": "1.10.27", + "@interactjs/core": "1.10.27", + "@interactjs/dev-tools": "1.10.27", + "@interactjs/inertia": "1.10.27", + "@interactjs/interact": "1.10.27", + "@interactjs/modifiers": "1.10.27", + "@interactjs/offset": "1.10.27", + "@interactjs/pointer-events": "1.10.27", + "@interactjs/reflow": "1.10.27", + "@interactjs/utils": "1.10.27" + } + }, + "@interactjs/modifiers": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/modifiers/-/modifiers-1.10.27.tgz", + "integrity": "sha512-ei/qfoQ+9/8k6WzNzdNqHI6cWkIV576N4Ap16r5CoqOWwhA6Xzj3OMHf1g0t1O4eSq2HdJsVJn3eLNfw9HsbeQ==", + "requires": { + "@interactjs/interact": "1.10.27", + "@interactjs/snappers": "1.10.27" + } + }, + "@interactjs/offset": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/offset/-/offset-1.10.27.tgz", + "integrity": "sha512-AezsLiuK+Qv4jXdYuRa65HJ2pMFMZPlqiAep6ZRLwhP9HE7O75c0EAm+gfx+dpPrHNHs6J9LaiKSZl+B+A2qAw==", + "requires": { + "@interactjs/interact": "1.10.27" + } + }, + "@interactjs/pointer-events": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/pointer-events/-/pointer-events-1.10.27.tgz", + "integrity": "sha512-Yo5SS6PhWfC93gHNxnwwW0wvebo5hSYJKGaSnAHO4f9Lh25yibecMnmPBmiEfWVcdMboK/kXrme43mHQaRegVg==", + "requires": { + "@interactjs/interact": "1.10.27" + } + }, + "@interactjs/reflow": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/reflow/-/reflow-1.10.27.tgz", + "integrity": "sha512-Msm0QdYFr40oSsPFxyCR3dHN/pQx34k7QSkdN1uIsUn/drrm+YSFvrvVOu99DFOwr7gTThr5vNe06Sz4vubTSA==", + "requires": { + "@interactjs/interact": "1.10.27" + } + }, + "@interactjs/snappers": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/snappers/-/snappers-1.10.27.tgz", + "integrity": "sha512-HZLZ0XSi6HI08OmTv/HKG6AltQoaKAALLQ+KDW92utj3XSgw7oren0KsWUKPhaPg3Av7R1jFQd08s+uafqIlLw==", + "requires": { + "@interactjs/interact": "1.10.27" + } + }, + "@interactjs/utils": { + "version": "1.10.27", + "resolved": "https://registry.npmjs.org/@interactjs/utils/-/utils-1.10.27.tgz", + "integrity": "sha512-+qfLOio2OxQqg1cXSnRaCl+N8MQDQLDS9w+aOGxH8YLAhIMyt7Asxx/46//sT8orgsi16pmlBPtngPHT9s8zKw==" + }, "@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -8434,6 +8782,11 @@ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "batch-processor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", + "integrity": "sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA==" + }, "binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -8852,6 +9205,14 @@ "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==", "dev": true }, + "element-resize-detector": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.4.tgz", + "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==", + "requires": { + "batch-processor": "1.0.0" + } + }, "entities": { "version": "4.5.0", "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", @@ -10150,6 +10511,11 @@ "resolved": "http://sy-registry.shiyue.com/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, + "mitt": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-2.1.0.tgz", + "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==" + }, "mock-property": { "version": "1.0.3", "resolved": "http://sy-registry.shiyue.com/mock-property/-/mock-property-1.0.3.tgz", @@ -10305,12 +10671,11 @@ } }, "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.1.0.tgz", + "integrity": "sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==", "requires": { - "yocto-queue": "^0.1.0" + "yocto-queue": "^1.1.1" } }, "p-locate": { @@ -10320,6 +10685,23 @@ "dev": true, "requires": { "p-limit": "^3.0.2" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } } }, "parent-module": { @@ -11097,6 +11479,20 @@ } } }, + "vue-grid-layout": { + "version": "3.0.0-beta1", + "resolved": "https://registry.npmjs.org/vue-grid-layout/-/vue-grid-layout-3.0.0-beta1.tgz", + "integrity": "sha512-MsW0yfYNtnAO/uDhfZvkP6effxSJxvhAFbIL37x6Rn3vW9xf0WHVefKaSbQMLpSq3mXnR6ut0pg2Cd5lqIIZzg==", + "requires": { + "@interactjs/actions": "^1.10.2", + "@interactjs/auto-start": "^1.10.2", + "@interactjs/dev-tools": "^1.10.2", + "@interactjs/interactjs": "^1.10.2", + "@interactjs/modifiers": "^1.10.2", + "element-resize-detector": "^1.2.1", + "mitt": "^2.1.0" + } + }, "vue-router": { "version": "4.4.0", "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.4.0.tgz", @@ -11247,10 +11643,9 @@ } }, "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==" } } } diff --git a/package.json b/package.json index 643fb99..8ee5b5a 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,10 @@ "ant-design-vue": "^4.1.2", "axios": "^1.6.7", "lodash": "^4.17.21", + "p-limit": "^6.1.0", "pinia": "^2.1.7", "vue": "^3.4.15", + "vue-grid-layout": "^3.0.0-beta1", "vue-router": "^4.2.5" }, "devDependencies": { @@ -37,4 +39,4 @@ "vite": "^5.0.11", "vue-tsc": "^1.8.27" } -} \ No newline at end of file +} diff --git a/src/api/common.ts b/src/api/common.ts index fe15e8e..d843e8a 100644 --- a/src/api/common.ts +++ b/src/api/common.ts @@ -1,4 +1,4 @@ -import { get } from '@/utils/request'; +import { get } from "@/utils/request"; export interface UserInfoType { alias: string; @@ -15,8 +15,20 @@ export interface UserInfoType { username: string; } -export const getUserInfo = () => get({ - url: '/api/home/grade', -}); +interface DropListItem { + label: string; + value: string | number; + mark: string; +} -export const logout = () => get({ url: '/api/common/logout' }); +export const getUserInfo = () => + get({ + url: "/api/home/grade", + }); + +export const logout = () => get({ url: "/api/common/logout" }); + +export const getProjectDrop = () => + get({ + url: "/api/v1/project/get-project-drop", + }); diff --git a/src/api/preview/index.js b/src/api/preview/index.js deleted file mode 100644 index a46c8c6..0000000 --- a/src/api/preview/index.js +++ /dev/null @@ -1,28 +0,0 @@ -import { get, post } from "@/utils/request"; - -// 预览 -export function preview({ modularId, fieldIds, page, perPage, filter }) { - return post({ - url: "api/v1/preview/view", - data: { - modular_id: modularId, - field_ids: fieldIds, - page, - per_page: perPage, - filter, - }, - }); -} - -// 查看视图 -export function searchInfo({ previewId, page, perPage, filter }) { - return get({ - url: `/api/v1/preview/info`, - params: { - preview_id: previewId, - page, - per_page: perPage, - filter, - }, - }); -} diff --git a/src/api/preview/index.ts b/src/api/preview/index.ts new file mode 100644 index 0000000..3cf8bfa --- /dev/null +++ b/src/api/preview/index.ts @@ -0,0 +1,21 @@ +import { post } from "@/utils/request"; + +interface PreviewItemParams { + previewId: string | number; + filter?: string | []; + page?: number; + perPage?: number; +} + +// 查看视图 +export function searchInfo(data: PreviewItemParams) { + return post({ + url: `/api/v1/preview/info`, + data: { + preview_id: data.previewId, + filter: data.filter, + page: data.page, + per_page: data.perPage, + }, + }); +} diff --git a/src/main.ts b/src/main.ts index e81259d..a7db608 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,12 +1,14 @@ -import { createApp } from 'vue'; -import { createPinia } from 'pinia'; -import App from './App.vue'; -import router from './router'; -import './global.less'; +import { createApp } from "vue"; +import { createPinia } from "pinia"; +import App from "./App.vue"; +import router from "./router"; +import "./global.less"; +import VueGridLayout from "vue-grid-layout"; // 引入layout const app = createApp(App); +app.use(VueGridLayout); app.use(createPinia()); app.use(router); -app.mount('#app'); +app.mount("#app"); diff --git a/src/router/routes.ts b/src/router/routes.ts index b773584..20311d6 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,7 +1,11 @@ -import Layout from '@/layout/index.vue'; -import { HomeOutlined, BarChartOutlined } from '@ant-design/icons-vue'; -import { h } from 'vue'; -import type { VNode, RendererNode, RendererElement } from 'vue'; +import Layout from "@/layout/index.vue"; +import { + HomeOutlined, + BarChartOutlined, + AppstoreOutlined, +} from "@ant-design/icons-vue"; +import { h } from "vue"; +import type { VNode, RendererNode, RendererElement } from "vue"; export interface RouteType { path: string; @@ -11,70 +15,96 @@ export interface RouteType { isMenu?: boolean; redirect?: string; children: RouteType[]; - icon?: () => VNode + icon?: () => VNode< + RendererNode, + RendererElement, + { + [key: string]: any; + } + >; } const routeList: RouteType[] = [ { - path: '/', - name: 'layout', + path: "/", + name: "layout", component: Layout, - meta: { title: '首页' }, + meta: { title: "首页" }, children: [ { - path: '', - name: '-', + path: "", + name: "-", meta: {}, children: [], - redirect: '/config-manage/project-cfg', + redirect: "/config-manage/project-cfg", }, { - path: '/config-manage', - name: 'config-manage', + path: "/config-manage", + name: "config-manage", isMenu: true, - meta: { title: '配置管理' }, + meta: { title: "配置管理" }, icon: () => h(HomeOutlined), children: [ { - path: 'project-cfg', - name: 'project-cfg', - component: () => import('@/views/config-manage/project-cfg/index.vue'), - meta: { title: '项目配置' }, + path: "project-cfg", + name: "project-cfg", + component: () => + import("@/views/config-manage/project-cfg/index.vue"), + meta: { title: "项目配置" }, isMenu: true, children: [], }, { - path: 'module-cfg', - name: 'module-cfg', - component: () => import('@/views/config-manage/module-cfg/index.vue'), - meta: { title: '数据来源配置' }, + path: "module-cfg", + name: "module-cfg", + component: () => + import("@/views/config-manage/module-cfg/index.vue"), + meta: { title: "数据来源配置" }, isMenu: true, children: [], }, ], }, { - path: '/view-all-manage', - name: 'view-all-manage', + path: "/view-all-manage", + name: "view-all-manage", isMenu: true, - meta: { title: '视图管理' }, + meta: { title: "视图管理" }, icon: () => h(BarChartOutlined), children: [ { - path: 'view-list', - name: 'view-list', - component: () => import('@/views/view-all-manage/view-list/index.vue'), - meta: { title: '视图列表' }, + path: "view-list", + name: "view-list", + component: () => + import("@/views/view-all-manage/view-list/index.vue"), + meta: { title: "视图列表" }, isMenu: true, children: [], }, { - path: 'create-view', - name: 'create-view', - component: () => import('@/views/view-all-manage/create-view/index.vue'), - meta: { title: '创建视图' }, + path: "create-view", + name: "create-view", + component: () => + import("@/views/view-all-manage/create-view/index.vue"), + meta: { title: "创建视图" }, + isMenu: true, + children: [], + }, + ], + }, + { + path: "/page-show-info", + name: "page-show-info", + isMenu: true, + meta: { title: "视图预览" }, + icon: () => h(AppstoreOutlined), + children: [ + { + path: "page-info", + name: "page-info", + component: () => + import("@/views/page-show-info/page-info/index,.vue"), + meta: { title: "页面展示" }, isMenu: true, children: [], }, diff --git a/src/views/page-show-info/page-info/index,.vue b/src/views/page-show-info/page-info/index,.vue new file mode 100644 index 0000000..d864e1e --- /dev/null +++ b/src/views/page-show-info/page-info/index,.vue @@ -0,0 +1,330 @@ + + + diff --git a/src/views/page-show-info/page-info/service.ts b/src/views/page-show-info/page-info/service.ts new file mode 100644 index 0000000..403acff --- /dev/null +++ b/src/views/page-show-info/page-info/service.ts @@ -0,0 +1,10 @@ +import { get, post } from "@/utils/request"; +interface PageInfoParams { + mark: string; + page_id: number | string; +} +export const getPageInfo = (data: PageInfoParams) => + get({ + url: "/api/v1/preview/get-preview-info", + params: data, + }); From ae724d916dc84ae3936e48a65877a3baca64e461 Mon Sep 17 00:00:00 2001 From: sy2084 Date: Wed, 17 Jul 2024 23:24:34 +0800 Subject: [PATCH 06/16] =?UTF-8?q?fix:=20=E5=90=88=E5=B9=B6=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/components.d.ts b/components.d.ts index 69cc5e2..087f8e1 100644 --- a/components.d.ts +++ b/components.d.ts @@ -10,36 +10,26 @@ declare module 'vue' { ABreadcrumb: typeof import('ant-design-vue/es')['Breadcrumb'] ABreadcrumbItem: typeof import('ant-design-vue/es')['BreadcrumbItem'] AButton: typeof import('ant-design-vue/es')['Button'] - ACheckbox: typeof import('ant-design-vue/es')['Checkbox'] - ACheckboxGroup: typeof import('ant-design-vue/es')['CheckboxGroup'] ACol: typeof import('ant-design-vue/es')['Col'] AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider'] ADropdown: typeof import('ant-design-vue/es')['Dropdown'] - AEmpty: typeof import("ant-design-vue/es")["Empty"] AFloatButton: typeof import('ant-design-vue/es')['FloatButton'] AForm: typeof import('ant-design-vue/es')['Form'] AFormItem: typeof import('ant-design-vue/es')['FormItem'] AInput: typeof import('ant-design-vue/es')['Input'] - AInputNumber: typeof import('ant-design-vue/es')['InputNumber'] AMenu: typeof import('ant-design-vue/es')['Menu'] AMenuItem: typeof import('ant-design-vue/es')['MenuItem'] - AModal: typeof import('ant-design-vue/es')['Modal'] APagination: typeof import('ant-design-vue/es')['Pagination'] APopconfirm: typeof import('ant-design-vue/es')['Popconfirm'] - ARadio: typeof import('ant-design-vue/es')['Radio'] ARadioButton: typeof import('ant-design-vue/es')['RadioButton'] ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup'] ARangePicker: typeof import('ant-design-vue/es')['RangePicker'] ARow: typeof import('ant-design-vue/es')['Row'] ASelect: typeof import('ant-design-vue/es')['Select'] - ASelectOption: typeof import("ant-design-vue/es")["SelectOption"] - ASpace: typeof import('ant-design-vue/es')['Space'] ASpin: typeof import('ant-design-vue/es')['Spin'] - ASwitch: typeof import('ant-design-vue/es')['Switch'] ATable: typeof import('ant-design-vue/es')['Table'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] - Table: typeof import("./src/components/common/table.vue")["default"] YChart: typeof import('./src/components/common/y-chart.vue')['default'] YTable: typeof import('./src/components/common/y-table.vue')['default'] } From 0dfdb11c58317a19b70544ede7b52ab5a42eef01 Mon Sep 17 00:00:00 2001 From: sy2084 Date: Wed, 17 Jul 2024 23:36:28 +0800 Subject: [PATCH 07/16] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .npmrc | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .npmrc diff --git a/.npmrc b/.npmrc deleted file mode 100644 index dce03c3..0000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -# registry=http://sy-registry.shiyue.com From 7b15075276a738a65166e42ea4f07791adb439a0 Mon Sep 17 00:00:00 2001 From: sy2084 Date: Thu, 18 Jul 2024 11:40:28 +0800 Subject: [PATCH 08/16] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9D=A5=E6=BA=90=E6=93=8D=E4=BD=9Cbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 7 +++ src/plugins/antv-g2plot/line.vue | 6 +-- src/router/routes.ts | 2 +- .../module-cfg/components/create-modal.vue | 10 +--- src/views/page-show-info/page-info/index,.vue | 20 +------- .../view-all-manage/create-view/index.vue | 47 +++++++++++++------ src/views/view-all-manage/view-list/index.vue | 3 -- 7 files changed, 46 insertions(+), 49 deletions(-) diff --git a/components.d.ts b/components.d.ts index 087f8e1..2f988da 100644 --- a/components.d.ts +++ b/components.d.ts @@ -10,6 +10,8 @@ declare module 'vue' { ABreadcrumb: typeof import('ant-design-vue/es')['Breadcrumb'] ABreadcrumbItem: typeof import('ant-design-vue/es')['BreadcrumbItem'] AButton: typeof import('ant-design-vue/es')['Button'] + ACheckbox: typeof import('ant-design-vue/es')['Checkbox'] + ACheckboxGroup: typeof import('ant-design-vue/es')['CheckboxGroup'] ACol: typeof import('ant-design-vue/es')['Col'] AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider'] ADropdown: typeof import('ant-design-vue/es')['Dropdown'] @@ -17,16 +19,21 @@ declare module 'vue' { AForm: typeof import('ant-design-vue/es')['Form'] AFormItem: typeof import('ant-design-vue/es')['FormItem'] AInput: typeof import('ant-design-vue/es')['Input'] + AInputNumber: typeof import('ant-design-vue/es')['InputNumber'] AMenu: typeof import('ant-design-vue/es')['Menu'] AMenuItem: typeof import('ant-design-vue/es')['MenuItem'] + AModal: typeof import('ant-design-vue/es')['Modal'] APagination: typeof import('ant-design-vue/es')['Pagination'] APopconfirm: typeof import('ant-design-vue/es')['Popconfirm'] + ARadio: typeof import('ant-design-vue/es')['Radio'] ARadioButton: typeof import('ant-design-vue/es')['RadioButton'] ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup'] ARangePicker: typeof import('ant-design-vue/es')['RangePicker'] ARow: typeof import('ant-design-vue/es')['Row'] ASelect: typeof import('ant-design-vue/es')['Select'] + ASpace: typeof import('ant-design-vue/es')['Space'] ASpin: typeof import('ant-design-vue/es')['Spin'] + ASwitch: typeof import('ant-design-vue/es')['Switch'] ATable: typeof import('ant-design-vue/es')['Table'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] diff --git a/src/plugins/antv-g2plot/line.vue b/src/plugins/antv-g2plot/line.vue index 1012be1..eeeeba9 100644 --- a/src/plugins/antv-g2plot/line.vue +++ b/src/plugins/antv-g2plot/line.vue @@ -3,7 +3,7 @@ diff --git a/src/router/routes.ts b/src/router/routes.ts index 20311d6..5d46619 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -104,7 +104,7 @@ const routeList: RouteType[] = [ name: "page-info", component: () => import("@/views/page-show-info/page-info/index,.vue"), - meta: { title: "页面展示" }, + meta: { title: "项目报表" }, isMenu: true, children: [], }, diff --git a/src/views/config-manage/module-cfg/components/create-modal.vue b/src/views/config-manage/module-cfg/components/create-modal.vue index 1955be3..4587eec 100644 --- a/src/views/config-manage/module-cfg/components/create-modal.vue +++ b/src/views/config-manage/module-cfg/components/create-modal.vue @@ -56,19 +56,12 @@ /> - @@ -389,6 +405,9 @@ const toFilt = () => { .input-item { width: 180px; } +.date-item { + width: 240px; +} .y-table-content { margin-top: 10px; } diff --git a/src/views/view-all-manage/view-list/index.vue b/src/views/view-all-manage/view-list/index.vue index d6ac8ed..3f9d73a 100644 --- a/src/views/view-all-manage/view-list/index.vue +++ b/src/views/view-all-manage/view-list/index.vue @@ -151,9 +151,6 @@ const toGetViewInfo = (params = {}) => { ...params, }).then((res) => { selectViewInfo.value = res.data; - delete selectViewInfo.value.config.line.isGroup - delete selectViewInfo.value.config.line.label - selectViewInfo.value.config.line.data = res.data.config.line.data }); }; From 28f4e3a1ff24913fb98f9b21b72c14c69fa00df8 Mon Sep 17 00:00:00 2001 From: sy2084 Date: Thu, 18 Jul 2024 12:16:00 +0800 Subject: [PATCH 09/16] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E7=B1=BB=E5=9E=8B=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/y-table.vue | 2 +- src/views/view-all-manage/create-view/index.vue | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/common/y-table.vue b/src/components/common/y-table.vue index e519106..2298a50 100644 --- a/src/components/common/y-table.vue +++ b/src/components/common/y-table.vue @@ -104,7 +104,7 @@ const getData = () => { return filterData.value[item.name] !== undefined && filterData.value[item.name] !== null; }) .map((item) => { - return item.type === 'time' ? { + return item.type === 'time' && filterData.value[item.name] ? { name: item.name, type: item.type, start_time: filterData.value[item.name][0].format('YYYY-MM-DD'), diff --git a/src/views/view-all-manage/create-view/index.vue b/src/views/view-all-manage/create-view/index.vue index ff1d4b8..503cbc1 100644 --- a/src/views/view-all-manage/create-view/index.vue +++ b/src/views/view-all-manage/create-view/index.vue @@ -266,10 +266,10 @@ const toPreview = ({filter}) => { if (!filter) { filterData = previewData.filterConfig .filter((item) => { - return previewData.filterData[item.name] !== undefined; + return previewData.filterData[item.name] !== undefined && previewData.filterData[item.name] !== null; }) .map((item) => { - return item.type === 'time' ? { + return item.type === 'time' && previewData.filterData[item.name] ? { name: item.name, type: item.type, start_time: previewData.filterData[item.name][0].format('YYYY-MM-DD'), From bce12305c80bf1e8eeae8cafa3544e0ac838ff61 Mon Sep 17 00:00:00 2001 From: sy2084 Date: Thu, 18 Jul 2024 12:20:59 +0800 Subject: [PATCH 10/16] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E6=8A=A5=E9=94=99bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/view-all-manage/create-view/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/view-all-manage/create-view/index.vue b/src/views/view-all-manage/create-view/index.vue index 503cbc1..b8023a7 100644 --- a/src/views/view-all-manage/create-view/index.vue +++ b/src/views/view-all-manage/create-view/index.vue @@ -331,8 +331,8 @@ const toSaveView = () => { fieldIds: fieldIds.value.toString(), previewName: previewName.value, showTypeId: showTypeId.value, - xDataId: xDataId.value.toString(), - yDataId: yDataId.value.toString(), + xDataId: xDataId.value?.toString(), + yDataId: yDataId.value?.toString(), }).then(() => { message.success("保存成功,可前往视图列表查看"); nameVisible.value = false; From f78a5001a77b5b5bc47eec39f03af8f38e5a59b5 Mon Sep 17 00:00:00 2001 From: sy2084 Date: Fri, 19 Jul 2024 11:33:39 +0800 Subject: [PATCH 11/16] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=AD=9B?= =?UTF-8?q?=E9=80=89bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/view-all-manage/create-view/index.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/views/view-all-manage/create-view/index.vue b/src/views/view-all-manage/create-view/index.vue index b8023a7..585da6d 100644 --- a/src/views/view-all-manage/create-view/index.vue +++ b/src/views/view-all-manage/create-view/index.vue @@ -141,6 +141,7 @@ import { import { message } from "ant-design-vue"; import { BarChartOutlined } from "@ant-design/icons-vue"; import yChart from "@/components/common/y-chart.vue"; +import _ from 'lodash' const projectSel = ref([]); // 项目下拉 const modularSel = ref([]) // 数据来源下拉 @@ -264,7 +265,8 @@ const toPreview = ({filter}) => { previewLoading.value = true; let filterData if (!filter) { - filterData = previewData.filterConfig + const cloneFilter = _.cloneDeep(previewData.filterConfig) + filterData = cloneFilter .filter((item) => { return previewData.filterData[item.name] !== undefined && previewData.filterData[item.name] !== null; }) From da56c2438beb728d6d1a27bd14f6948015a2a2e2 Mon Sep 17 00:00:00 2001 From: sy2084 Date: Wed, 24 Jul 2024 17:55:12 +0800 Subject: [PATCH 12/16] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/y-chart.vue | 9 ----- src/components/common/y-table.vue | 10 ----- .../module-cfg/components/create-modal.vue | 4 -- .../module-cfg/components/field-modal.vue | 38 ++++++++++++++----- 4 files changed, 28 insertions(+), 33 deletions(-) diff --git a/src/components/common/y-chart.vue b/src/components/common/y-chart.vue index 5d33496..154e32c 100644 --- a/src/components/common/y-chart.vue +++ b/src/components/common/y-chart.vue @@ -71,15 +71,6 @@ const currentChart = computed(() => { return props.chartCfg[chartType.value]; }) -watch( - () => props.filterConfig, - (newVal) => { - // newVal.forEach((item) => { - // filterData.value[item.name] = undefined; - // }); - }, -); - const toFilt = () => { const cloneFilter = _.cloneDeep(props.filterConfig); const filter = cloneFilter diff --git a/src/components/common/y-table.vue b/src/components/common/y-table.vue index 2298a50..73dd1c9 100644 --- a/src/components/common/y-table.vue +++ b/src/components/common/y-table.vue @@ -87,16 +87,6 @@ const pageState = reactive({ perPage: 20, }); -watch( - () => props.filterConfig, - (newVal) => { - - // newVal.forEach((item) => { - // filterData.value[item.name] = undefined; - // }); - } -); - const getData = () => { const cloneFilter = _.cloneDeep(props.filterConfig); const filter = cloneFilter diff --git a/src/views/config-manage/module-cfg/components/create-modal.vue b/src/views/config-manage/module-cfg/components/create-modal.vue index 4587eec..6c9c58b 100644 --- a/src/views/config-manage/module-cfg/components/create-modal.vue +++ b/src/views/config-manage/module-cfg/components/create-modal.vue @@ -126,10 +126,6 @@ watch( } ); -// onMounted(() => { -// toGetDbTable(); -// }); - const toGetDbTable = () => { getDbTableSelect({ projectId: formData.value.project_id }).then((res) => { tableTypes.value = res.data; diff --git a/src/views/config-manage/module-cfg/components/field-modal.vue b/src/views/config-manage/module-cfg/components/field-modal.vue index e6a9c86..ff16c9b 100644 --- a/src/views/config-manage/module-cfg/components/field-modal.vue +++ b/src/views/config-manage/module-cfg/components/field-modal.vue @@ -34,6 +34,7 @@ + @@ -104,6 +153,13 @@ const formData = ref({ // show_type_id: undefined, original_sql: undefined, table: undefined, + is_other_database: 0, + drive_type: 1, + database_address: undefined, + database_port: undefined, + database_name: undefined, + database_username: undefined, + database_password: undefined, }); watch( @@ -121,6 +177,13 @@ watch( // show_type_id: newVal.show_type_id, original_sql: newVal.original_sql, table: newVal.table, + drive_type: newVal.drive_type, + is_other_database: newVal.is_other_database, + database_address: newVal.database_address, + database_port: newVal.database_port, + database_name: newVal.database_name, + database_username: newVal.database_username, + database_password: newVal.database_password, }; } } @@ -132,6 +195,15 @@ const toGetDbTable = () => { }); }; +const isOtherChange = (val) => { + formData.value.drive_type = val ? 1 : undefined + formData.value.database_address = undefined + formData.value.database_port = undefined + formData.value.database_name = undefined + formData.value.database_username = undefined + formData.value.database_password = undefined +} + const resetFormData = () => { formData.value = { project_id: undefined, @@ -141,6 +213,13 @@ const resetFormData = () => { // show_type_id: undefined, original_sql: undefined, table: undefined, + is_other_database: 0, + drive_type: undefined, + database_address: undefined, + database_port: undefined, + database_name: undefined, + database_username: undefined, + database_password: undefined, }; }; diff --git a/src/views/config-manage/project-cfg/components/create-modal.vue b/src/views/config-manage/project-cfg/components/create-modal.vue index 5791173..3ed61c5 100644 --- a/src/views/config-manage/project-cfg/components/create-modal.vue +++ b/src/views/config-manage/project-cfg/components/create-modal.vue @@ -59,6 +59,12 @@ > + + + MySQL + Click House + + @@ -98,12 +104,6 @@ const formRules = { database_name: [ { required: true, message: "请输入数据库名称", trigger: "submit" }, ], - database_username: [ - { required: true, message: "请输入数据库用户", trigger: "submit" }, - ], - database_password: [ - { required: true, message: "请输入数据库密码", trigger: "submit" }, - ], }; const formRef = ref(); @@ -116,6 +116,7 @@ const formData = ref({ database_name: undefined, database_username: undefined, database_password: undefined, + drive_type: 1, }); watch( @@ -138,6 +139,7 @@ const toCheckDbConnect = () => { database_address: formData.value.database_address, database_username: formData.value.database_username, database_password: formData.value.database_password, + drive_type: formData.value.drive_type, }).then((res) => { message.success(res.message); }); @@ -149,8 +151,6 @@ const validateConnect = () => { database_name: "请输入数据库名称", database_port: "请输入数据库端口", database_address: "请输入数据库地址", - database_username: "请输入数据库用户", - database_password: "请输入数据库密码", }; for (const key in fields) { if (!formData.value[key]) { @@ -171,6 +171,7 @@ const resetFormData = () => { database_name: undefined, database_username: undefined, database_password: undefined, + drive_type: 1, }; }; From 179c46f73a0e2d48105115d9764bf881b0372570 Mon Sep 17 00:00:00 2001 From: sy2084 Date: Fri, 26 Jul 2024 17:04:40 +0800 Subject: [PATCH 15/16] =?UTF-8?q?fix:=20=E6=96=B0=E5=A2=9E=E9=85=8D?= =?UTF-8?q?=E7=BD=AEqiankun?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 2 + .env.production | 2 + .env.staging | 2 + components.d.ts | 7 + index.html | 2 +- package-lock.json | 366 +++++++++++++++++- package.json | 8 +- src/layout/index.vue | 10 +- src/main.ts | 53 ++- src/router/index.ts | 20 +- src/views/page-show-info/page-info/index,.vue | 51 ++- vite.config.ts | 39 +- 12 files changed, 513 insertions(+), 49 deletions(-) diff --git a/.env.development b/.env.development index 150d4ef..1e96b37 100644 --- a/.env.development +++ b/.env.development @@ -4,3 +4,5 @@ VITE_NODE_ENV = pre VITE_OA_BASEURL = https://oa-pre.shiyue.com VITE_YCODE_BASEURL = https://custom-chart-pre-api.shiyue.com + +VITE_YCODE_BASEURL_FRONT = https://custom-chart.shiyue.com diff --git a/.env.production b/.env.production index e172bf4..f5baabc 100644 --- a/.env.production +++ b/.env.production @@ -3,3 +3,5 @@ VITE_NODE_ENV = prod VITE_OA_BASEURL = https://oa.shiyuegame.com VITE_YCODE_BASEURL = https://custom-chart-api.shiyuegame.com + +VITE_YCODE_BASEURL_FRONT = https://custom-chart.shiyuegame.com diff --git a/.env.staging b/.env.staging index 0b2cd22..98ecf72 100644 --- a/.env.staging +++ b/.env.staging @@ -3,3 +3,5 @@ VITE_NODE_ENV = pre VITE_OA_BASEURL = https://oa-pre.shiyue.com VITE_YCODE_BASEURL = https://custom-chart-pre-api.shiyue.com + +VITE_YCODE_BASEURL_FRONT = https://custom-chart.shiyue.com diff --git a/components.d.ts b/components.d.ts index 7f0e73f..2f988da 100644 --- a/components.d.ts +++ b/components.d.ts @@ -10,6 +10,9 @@ declare module 'vue' { ABreadcrumb: typeof import('ant-design-vue/es')['Breadcrumb'] ABreadcrumbItem: typeof import('ant-design-vue/es')['BreadcrumbItem'] AButton: typeof import('ant-design-vue/es')['Button'] + ACheckbox: typeof import('ant-design-vue/es')['Checkbox'] + ACheckboxGroup: typeof import('ant-design-vue/es')['CheckboxGroup'] + ACol: typeof import('ant-design-vue/es')['Col'] AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider'] ADropdown: typeof import('ant-design-vue/es')['Dropdown'] AFloatButton: typeof import('ant-design-vue/es')['FloatButton'] @@ -23,9 +26,13 @@ declare module 'vue' { APagination: typeof import('ant-design-vue/es')['Pagination'] APopconfirm: typeof import('ant-design-vue/es')['Popconfirm'] ARadio: typeof import('ant-design-vue/es')['Radio'] + ARadioButton: typeof import('ant-design-vue/es')['RadioButton'] ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup'] + ARangePicker: typeof import('ant-design-vue/es')['RangePicker'] + ARow: typeof import('ant-design-vue/es')['Row'] ASelect: typeof import('ant-design-vue/es')['Select'] ASpace: typeof import('ant-design-vue/es')['Space'] + ASpin: typeof import('ant-design-vue/es')['Spin'] ASwitch: typeof import('ant-design-vue/es')['Switch'] ATable: typeof import('ant-design-vue/es')['Table'] RouterLink: typeof import('vue-router')['RouterLink'] diff --git a/index.html b/index.html index ee89f27..c903bf5 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ 悦码后台 -
+
diff --git a/package-lock.json b/package-lock.json index feb139b..68ad969 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,12 +12,14 @@ "@vueuse/core": "^10.11.0", "ant-design-vue": "^4.1.2", "axios": "^1.6.7", + "cross-env": "^7.0.3", "lodash": "^4.17.21", "p-limit": "^6.1.0", "pinia": "^2.1.7", "vue": "^3.4.15", "vue-grid-layout": "^3.0.0-beta1", - "vue-router": "^4.2.5" + "vue-router": "^4.2.5", + "yargs-parser": "^21.1.1" }, "devDependencies": { "@rushstack/eslint-patch": "^1.3.3", @@ -34,6 +36,7 @@ "typescript": "~5.3.0", "unplugin-vue-components": "^0.26.0", "vite": "^5.0.11", + "vite-plugin-qiankun": "^1.0.15", "vue-tsc": "^1.8.27" } }, @@ -2898,6 +2901,44 @@ "node": ">=4" } }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dev": true, + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", @@ -3019,11 +3060,27 @@ "url": "https://opencollective.com/core-js" } }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3033,6 +3090,34 @@ "node": ">= 8" } }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", @@ -3285,6 +3370,61 @@ "resolved": "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==" }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/dotignore": { "version": "0.1.2", "resolved": "http://sy-registry.shiyue.com/dotignore/-/dotignore-0.1.2.tgz", @@ -4431,6 +4571,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -4813,8 +4972,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/js-tokens": { "version": "4.0.0", @@ -5455,6 +5613,31 @@ "node": ">= 0.10" } }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dev": true, + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", @@ -5482,7 +5665,6 @@ "version": "3.1.1", "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -5981,7 +6163,6 @@ "version": "2.0.0", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -5993,7 +6174,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -6581,6 +6761,19 @@ } } }, + "node_modules/vite-plugin-qiankun": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/vite-plugin-qiankun/-/vite-plugin-qiankun-1.0.15.tgz", + "integrity": "sha512-0QB0Wr8Eu/LGcuJAfuNXDb7BAFDszo3GCxq4bzgXdSFAlK425u1/UGMxaDEBVA1uPFrLsZPzig83Ufdfl6J45A==", + "dev": true, + "dependencies": { + "cheerio": "^1.0.0-rc.10" + }, + "peerDependencies": { + "typescript": ">=4", + "vite": ">=2" + } + }, "node_modules/vue": { "version": "3.4.31", "resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.31.tgz", @@ -6745,7 +6938,6 @@ "version": "2.0.2", "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -6845,6 +7037,14 @@ "window-size": "0.1.0" } }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, "node_modules/yargs/node_modules/camelcase": { "version": "1.2.1", "resolved": "http://sy-registry.shiyue.com/camelcase/-/camelcase-1.2.1.tgz", @@ -8879,6 +9079,35 @@ "supports-color": "^5.3.0" } }, + "cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dev": true, + "requires": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + } + }, + "cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + } + }, "chokidar": { "version": "3.6.0", "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", @@ -8980,17 +9209,43 @@ "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.37.1.tgz", "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==" }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "requires": { + "cross-spawn": "^7.0.1" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, + "css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, "cssesc": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", @@ -9172,6 +9427,43 @@ "resolved": "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==" }, + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + } + }, "dotignore": { "version": "0.1.2", "resolved": "http://sy-registry.shiyue.com/dotignore/-/dotignore-0.1.2.tgz", @@ -10014,6 +10306,18 @@ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", "dev": true }, + "htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, "iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -10263,8 +10567,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "js-tokens": { "version": "4.0.0", @@ -10719,6 +11022,25 @@ "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true }, + "parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "requires": { + "entities": "^4.4.0" + } + }, + "parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dev": true, + "requires": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + } + }, "path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", @@ -10739,8 +11061,7 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-parse": { "version": "1.0.7", @@ -11060,7 +11381,6 @@ "version": "2.0.0", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -11068,8 +11388,7 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "shell-quote": { "version": "1.8.1", @@ -11444,6 +11763,15 @@ "rollup": "^4.13.0" } }, + "vite-plugin-qiankun": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/vite-plugin-qiankun/-/vite-plugin-qiankun-1.0.15.tgz", + "integrity": "sha512-0QB0Wr8Eu/LGcuJAfuNXDb7BAFDszo3GCxq4bzgXdSFAlK425u1/UGMxaDEBVA1uPFrLsZPzig83Ufdfl6J45A==", + "dev": true, + "requires": { + "cheerio": "^1.0.0-rc.10" + } + }, "vue": { "version": "3.4.31", "resolved": "https://registry.npmmirror.com/vue/-/vue-3.4.31.tgz", @@ -11562,7 +11890,6 @@ "version": "2.0.2", "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -11642,6 +11969,11 @@ } } }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + }, "yocto-queue": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", diff --git a/package.json b/package.json index 8ee5b5a..4957ea6 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "private": true, "type": "module", "scripts": { - "dev": "vite --mode staging", + "dev": "cross-env DEV_ENV=development vite --mode staging", + "pro": "cross-env DEV_ENV=development vite --mode production", "build:pre": "vite build --mode staging", "build:pro": "vite build --mode production", "type-check": "vue-tsc --build --force", @@ -15,12 +16,14 @@ "@vueuse/core": "^10.11.0", "ant-design-vue": "^4.1.2", "axios": "^1.6.7", + "cross-env": "^7.0.3", "lodash": "^4.17.21", "p-limit": "^6.1.0", "pinia": "^2.1.7", "vue": "^3.4.15", "vue-grid-layout": "^3.0.0-beta1", - "vue-router": "^4.2.5" + "vue-router": "^4.2.5", + "yargs-parser": "^21.1.1" }, "devDependencies": { "@rushstack/eslint-patch": "^1.3.3", @@ -37,6 +40,7 @@ "typescript": "~5.3.0", "unplugin-vue-components": "^0.26.0", "vite": "^5.0.11", + "vite-plugin-qiankun": "^1.0.15", "vue-tsc": "^1.8.27" } } diff --git a/src/layout/index.vue b/src/layout/index.vue index e5d7992..7dfb81b 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -1,6 +1,6 @@