From 8e43e1835f234cf21dbcc54ec16302b3f8528577 Mon Sep 17 00:00:00 2001 From: Zzz1zz Date: Sun, 12 Oct 2025 15:08:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=90=88=E5=90=8C=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintignore | 6 +- .eslintrc.js | 146 +- package.json | 29 +- pnpm-lock.yaml | 2482 +++++++++-------- postcss.config.cjs | 6 + src/api/setting.ts | 63 +- src/assets/style/index.css | 3 + src/components/common/OnlyOfficeEditor.vue | 431 +++ src/components/index.ts | 2 + src/components/menu/index.vue | 157 +- src/components/menu/menu.tsx | 180 ++ src/env.d.ts | 2 +- src/hooks/permission.ts | 13 +- src/locale/en-US.ts | 1 - src/main.ts | 2 +- src/router/guard/permission.ts | 1 - src/router/routes/externalModules/result.ts | 4 +- src/router/routes/externalModules/user.ts | 4 +- .../routes/externalModules/visualization.ts | 4 +- src/router/routes/modules/property.ts | 2 +- src/router/routes/modules/setting.ts | 46 +- src/types/setting.ts | 3 + src/utils/axois.ts | 3 +- src/utils/is.ts | 2 +- .../contract-settings/contract-file-edit.vue | 189 ++ .../contract-settings/contract-file.vue | 23 +- .../contract-template-edit.vue | 709 +++++ .../contract-settings/contract-template.vue | 32 +- .../drawer/rent-setting-drawer.vue | 313 +++ .../modal/contract-template-form.vue | 51 +- .../system/contract-settings/terms/bond.vue | 113 + .../contract-settings/terms/discount.vue | 127 + .../contract-settings/terms/incremental.vue | 134 + .../contract-settings/terms/late-fee.vue | 144 + .../contract-settings/terms/rent-setting.vue | 312 +++ .../components/contract-card.vue | 195 ++ .../setting/system/data-dictionary/index.vue | 2 + tailwind.config.ts | 34 + 38 files changed, 4560 insertions(+), 1410 deletions(-) create mode 100644 postcss.config.cjs create mode 100644 src/assets/style/index.css create mode 100644 src/components/common/OnlyOfficeEditor.vue create mode 100644 src/components/menu/menu.tsx create mode 100644 src/views/setting/system/contract-settings/contract-file-edit.vue create mode 100644 src/views/setting/system/contract-settings/contract-template-edit.vue create mode 100644 src/views/setting/system/contract-settings/drawer/rent-setting-drawer.vue create mode 100644 src/views/setting/system/contract-settings/terms/bond.vue create mode 100644 src/views/setting/system/contract-settings/terms/discount.vue create mode 100644 src/views/setting/system/contract-settings/terms/incremental.vue create mode 100644 src/views/setting/system/contract-settings/terms/late-fee.vue create mode 100644 src/views/setting/system/contract-settings/terms/rent-setting.vue create mode 100644 src/views/setting/system/data-dictionary/components/contract-card.vue create mode 100644 tailwind.config.ts diff --git a/.eslintignore b/.eslintignore index fc04190..50f1b24 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,7 @@ /*.json /*.js -dist \ No newline at end of file +dist +*.config.js +*.config.ts +.eslintrc.js +node_modules/ diff --git a/.eslintrc.js b/.eslintrc.js index e74ce34..7d423ab 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,77 +1,129 @@ -// eslint-disable-next-line @typescript-eslint/no-var-requires const path = require('path'); module.exports = { root: true, - parser: 'vue-eslint-parser', - parserOptions: { - // Parser that checks the content of the + + diff --git a/src/components/index.ts b/src/components/index.ts index 797268f..bae0bd8 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -13,6 +13,7 @@ import Chart from './chart/index.vue'; import Breadcrumb from './breadcrumb/index.vue'; import DataTable from './common/DataTable.vue'; import ImageUpload from './common/ImageUpload.vue'; +import OnlyOfficeEditor from './common/OnlyOfficeEditor.vue'; // Manually introduce ECharts modules to reduce packing size @@ -35,5 +36,6 @@ export default { Vue.component('Breadcrumb', Breadcrumb); Vue.component('DataTable', DataTable); Vue.component('ImageUpload', ImageUpload); + Vue.component('OnlyOfficeEditor', OnlyOfficeEditor); }, }; diff --git a/src/components/menu/index.vue b/src/components/menu/index.vue index e0cd7b3..a9cb535 100644 --- a/src/components/menu/index.vue +++ b/src/components/menu/index.vue @@ -1,158 +1,23 @@ - + diff --git a/src/views/setting/system/contract-settings/contract-file.vue b/src/views/setting/system/contract-settings/contract-file.vue index 28116c2..a51ef09 100644 --- a/src/views/setting/system/contract-settings/contract-file.vue +++ b/src/views/setting/system/contract-settings/contract-file.vue @@ -61,7 +61,6 @@ import { Message } from '@arco-design/web-vue'; import useDataTable from '@/composables/useDataTable'; import { - getWordSettingFromId, delWordSetting, getWordSettingList, disableWordSetting, @@ -72,7 +71,7 @@ import { camelToSnake } from '@/utils/caseConvert'; // import contractNumberFormDrawer from './drawer/contract-number-form-drawer.vue'; import contractFileForm from './modal/contract-file-form.vue'; - + import { useRouter } from 'vue-router'; const { data: renderData, columns: projectColumn, @@ -91,7 +90,7 @@ initialPageSize: 10, pageSizeOptions: [10, 20, 50, 100], }); - + const router = useRouter(); const contractWordList = ref([]); const departmentListData = ref([]); const showModal = ref(false); @@ -200,26 +199,16 @@ // 处理错误 } }; - const getWordSettingFromIdData = async (id: number) => { - const { code, data } = await getWordSettingFromId(id); - if (code === 200 && data) { - const { contractCodeSetting } = data; - currentNumberInfo.value = contractCodeSetting || null; - currentNumberInfo.value.arrange = camelToSnake( - currentNumberInfo.value.arrange - ); - } - }; const handleAddContractNumber = () => { // currentNumberInfo.value = null; isEdit.value = false; showModal.value = true; }; const handleEditContractNumber = async (id: number) => { - await getWordSettingFromIdData(id); - isEdit.value = true; - // currentNumberInfo.value = info - showModal.value = true; + router.push({ + name: 'system-setting-contract-file-edit', + query: { id }, + }); }; // 初始化数据 onMounted(() => { diff --git a/src/views/setting/system/contract-settings/contract-template-edit.vue b/src/views/setting/system/contract-settings/contract-template-edit.vue new file mode 100644 index 0000000..28f5d2e --- /dev/null +++ b/src/views/setting/system/contract-settings/contract-template-edit.vue @@ -0,0 +1,709 @@ + + + + diff --git a/src/views/setting/system/contract-settings/contract-template.vue b/src/views/setting/system/contract-settings/contract-template.vue index 306a9d4..fd1cfc9 100644 --- a/src/views/setting/system/contract-settings/contract-template.vue +++ b/src/views/setting/system/contract-settings/contract-template.vue @@ -48,20 +48,19 @@ + + diff --git a/src/views/setting/system/contract-settings/modal/contract-template-form.vue b/src/views/setting/system/contract-settings/modal/contract-template-form.vue index 4687939..5309888 100644 --- a/src/views/setting/system/contract-settings/modal/contract-template-form.vue +++ b/src/views/setting/system/contract-settings/modal/contract-template-form.vue @@ -1,7 +1,7 @@