diff --git a/index.html b/index.html index d58f4d1..bf903f2 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,3 @@ -<<<<<<< HEAD @@ -91,18 +90,4 @@ } } -======= - - - - - - - Vite App - - -
- - ->>>>>>> 232db255 ('首次提交') diff --git a/package.json b/package.json index 438eb2a..059b48c 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,4 @@ { -<<<<<<< HEAD "name": "jurs-zun", "description": "Vue3 + Vite + TypeScript + Element-Plus 的后台管理模板,vue-element-admin 的 Vue3 版本", "version": "3.4.2", @@ -125,27 +124,5 @@ "node": "^20.19.0 || >=22.12.0" }, "repository": "https://gitee.com/youlaiorg/vue3-element-admin.git", - "author": "有来开源组织", "license": "MIT" -======= - "name": "vue3-element-admin", - "version": "0.0.0", - "scripts": { - "dev": "vite", - "build": "vue-tsc --noEmit && vite build", - "serve": "vite preview" - }, - "dependencies": { - "element-plus": "^1.2.0-beta.3", - "vue": "^3.2.16", - "vue-router": "^4.0.12", - "vuex": "^4.0.2" - }, - "devDependencies": { - "@vitejs/plugin-vue": "^1.9.3", - "typescript": "^4.4.3", - "vite": "^2.6.4", - "vue-tsc": "^0.3.0" - } ->>>>>>> 232db255 ('首次提交') } diff --git a/src/App.vue b/src/App.vue index 9ce4a77..db139b1 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,4 +1,3 @@ -<<<<<<< HEAD -
@@ -54,11 +58,16 @@
-

相对方信息

- + @@ -80,7 +89,6 @@ -
@@ -92,7 +100,6 @@
-
@@ -106,7 +113,6 @@ required />
-
@@ -123,7 +129,6 @@
-
提交 @@ -158,6 +163,11 @@ interface FormData { handler: string; } +// 选择的委托人 +const selectedClients = ref([]); +// 选择的相对方 +const selectedOpponents = ref([]); + // 表单数据 const formData = reactive({ preCaseDate: "", @@ -181,8 +191,10 @@ const deleteClient = (index: number) => { formData.clients.forEach((client, idx) => { client.index = idx + 1; }); + } else if (formData.opponents.length === 0) { + ElMessage.warning("委托方和相对方至少需要存在一个"); } else { - ElMessage.warning("至少保留一项委托人信息"); + formData.clients.splice(index, 1); } }; @@ -192,10 +204,36 @@ const copyClient = (client: Client) => { formData.clients.push({ ...client, index: newIndex }); }; +// 处理委托人选择 +const handleClientSelectionChange = (selection: Client[]) => { + selectedClients.value = selection; +}; + // 批量删除委托人 const batchDeleteClients = () => { - // 这里需要结合表格的selection功能实现批量删除 - ElMessage.info("批量删除功能待实现"); + if (selectedClients.value.length === 0) { + ElMessage.warning("请选择要删除的委托人"); + return; + } + + // 检查是否删除后还剩至少一个(或相对方存在) + if ( + formData.clients.length - selectedClients.value.length === 0 && + formData.opponents.length === 0 + ) { + ElMessage.warning("委托方和相对方至少需要存在一个"); + return; + } + + // 执行批量删除 + formData.clients = formData.clients.filter((client) => !selectedClients.value.includes(client)); + // 更新序号 + formData.clients.forEach((client, idx) => { + client.index = idx + 1; + }); + // 清空选择 + selectedClients.value = []; + ElMessage.success("批量删除成功"); }; // 新增相对方 @@ -212,8 +250,10 @@ const deleteOpponent = (index: number) => { formData.opponents.forEach((opponent, idx) => { opponent.index = idx + 1; }); + } else if (formData.clients.length === 0) { + ElMessage.warning("委托方和相对方至少需要存在一个"); } else { - ElMessage.warning("至少保留一项相对方信息"); + formData.opponents.splice(index, 1); } }; @@ -223,10 +263,38 @@ const copyOpponent = (opponent: Opponent) => { formData.opponents.push({ ...opponent, index: newIndex }); }; +// 处理相对方选择 +const handleOpponentSelectionChange = (selection: Opponent[]) => { + selectedOpponents.value = selection; +}; + // 批量删除相对方 const batchDeleteOpponents = () => { - // 这里需要结合表格的selection功能实现批量删除 - ElMessage.info("批量删除功能待实现"); + if (selectedOpponents.value.length === 0) { + ElMessage.warning("请选择要删除的相对方"); + return; + } + + // 检查是否删除后还剩至少一个(或委托方存在) + if ( + formData.opponents.length - selectedOpponents.value.length === 0 && + formData.clients.length === 0 + ) { + ElMessage.warning("委托方和相对方至少需要存在一个"); + return; + } + + // 执行批量删除 + formData.opponents = formData.opponents.filter( + (opponent) => !selectedOpponents.value.includes(opponent) + ); + // 更新序号 + formData.opponents.forEach((opponent, idx) => { + opponent.index = idx + 1; + }); + // 清空选择 + selectedOpponents.value = []; + ElMessage.success("批量删除成功"); }; // 提交表单 @@ -237,14 +305,20 @@ const handleSubmit = () => { return; } - // 验证委托人信息 + // 验证委托方和相对方至少存在一个 + if (formData.clients.length === 0 && formData.opponents.length === 0) { + ElMessage.error("委托方和相对方至少需要存在一个"); + return; + } + + // 验证委托人信息(如果存在) const invalidClients = formData.clients.filter((client) => !client.name || !client.idNumber); if (invalidClients.length > 0) { ElMessage.error("请填写完整的委托人信息"); return; } - // 验证相对方信息 + // 验证相对方信息(如果存在) const invalidOpponents = formData.opponents.filter( (opponent) => !opponent.name || !opponent.idNumber ); diff --git a/tsconfig.json b/tsconfig.json index 8e1a1fa..4b4ebba 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,6 @@ { "compilerOptions": { "target": "esnext", -<<<<<<< HEAD "module": "esnext", "moduleResolution": "bundler", "lib": ["esnext", "dom"], @@ -38,18 +37,4 @@ "uno.config.ts" ], "exclude": ["node_modules", "dist"] -======= - "useDefineForClassFields": true, - "module": "esnext", - "moduleResolution": "node", - "strict": true, - "jsx": "preserve", - "sourceMap": true, - "resolveJsonModule": true, - "esModuleInterop": true, - "lib": ["esnext", "dom"] - }, - "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], - ->>>>>>> 232db255 ('首次提交') } diff --git a/vite.config.ts b/vite.config.ts index 28951e4..15bca5f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,4 +1,3 @@ -<<<<<<< HEAD import vue from "@vitejs/plugin-vue"; import { type ConfigEnv, type UserConfig, loadEnv, defineConfig, PluginOption } from "vite"; @@ -238,12 +237,3 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => { }, }; }); -======= -import { defineConfig } from 'vite' -import vue from '@vitejs/plugin-vue' - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [vue()] -}) ->>>>>>> 232db255 ('首次提交')