diff --git a/src/views/safetyManagement/wasteGasSet/components/addEditDialogDosingRecord.vue b/src/views/safetyManagement/wasteGasSet/components/addEditDialogDosingRecord.vue
index 68c2297..d685b48 100644
--- a/src/views/safetyManagement/wasteGasSet/components/addEditDialogDosingRecord.vue
+++ b/src/views/safetyManagement/wasteGasSet/components/addEditDialogDosingRecord.vue
@@ -9,10 +9,17 @@
>
插入一行
- 删除行
+ 删除选中行
-
+
+
@@ -114,6 +121,7 @@ export default {
return {
openShow: false,
tableData: [],
+ formError: '', // 全局错误提示
// 统一校验规则:支持数组项校验
formRules: {
// 表格整体校验:至少一行数据
@@ -156,18 +164,36 @@ export default {
this.openShow = false;
this.$emit('closeDialog');
// 重置表单
- // this.form.tableData = [];
+ this.tableData = [];
this.formError = '';
this.$refs.tableForm?.resetFields();
},
+ // 选择事件处理
+ selectChange(list, row) {
+ // 根据选中的列表更新当前行的选中状态
+ const isSelected = list.some(item => item === row);
+ row._select = isSelected;
+ },
// 插入一行
addTable() {
- this.tableData.push({});
+ this.tableData.push({
+ _select: false,
+ device: '',
+ drug: '',
+ dose: null,
+ dosingTime: '',
+ dosingMan: '',
+ memo: '',
+ });
},
-
- // 删除行
+ // 删除选中行
delTable() {
- this.tableData.pop();
+ const selectedRows = this.tableData.filter(row => row._select);
+ if (selectedRows.length === 0) {
+ this.$message.error('请至少选择一条数据');
+ return;
+ }
+ this.tableData = this.tableData.filter(row => !row._select);
},
// 提交数据
submit() {
@@ -187,10 +213,13 @@ export default {
return true;
});
if (isValid) {
- const submitData = this.tableData.map(row => ({
- ...row,
- dorType: 1,
- }));
+ const submitData = this.tableData.map(row => {
+ const { _select, ...validData } = row;
+ return {
+ ...validData,
+ dorType: 1,
+ };
+ });
// 如果所有必填项都填写了,则进行提交操作
this.$emit('submitData', submitData); // 通知父组件刷新表格数据
this.closeDialog();
diff --git a/src/views/safetyManagement/wastewater/components/addEditDialogDosingRecord.vue b/src/views/safetyManagement/wastewater/components/addEditDialogDosingRecord.vue
index c024127..a6ab5d7 100644
--- a/src/views/safetyManagement/wastewater/components/addEditDialogDosingRecord.vue
+++ b/src/views/safetyManagement/wastewater/components/addEditDialogDosingRecord.vue
@@ -2,13 +2,14 @@
插入一行
- 删除行
+ 删除选中行
{{ formError }}
-
+
+
@@ -104,6 +105,7 @@ export default {
return {
openShow: false,
tableData: [],
+ formError: '', // 全局错误提示
// 统一校验规则:支持数组项校验
formRules: {
// 表格整体校验:至少一行数据
@@ -157,18 +159,37 @@ export default {
this.openShow = false;
this.$emit('closeDialog');
// 重置表单
- // this.form.tableData = [];
+ this.tableData = [];
this.formError = '';
this.$refs.tableForm?.resetFields();
},
+ // 选择事件处理
+ selectChange(list, row) {
+ // 根据选中的列表更新当前行的选中状态
+ const isSelected = list.some(item => item === row);
+ row._select = isSelected;
+ },
// 插入一行
addTable() {
- this.tableData.push({});
+ this.tableData.push({
+ _select: false,
+ device: '',
+ drug: '',
+ dose: null,
+ dosingTime: '',
+ dosingMan: '',
+ memo: ''
+ });
},
- // 删除行
+ // 删除选中行
delTable() {
- this.tableData.pop()
+ const selectedRows = this.tableData.filter(row => row._select);
+ if (selectedRows.length === 0) {
+ this.$message.error('请至少选择一条数据');
+ return;
+ }
+ this.tableData = this.tableData.filter(row => !row._select);
},
// 提交数据
submit() {
@@ -188,10 +209,13 @@ export default {
return true;
});
if (isValid) {
- const submitData = this.tableData.map(row => ({
- ...row,
- dorType: 2
- }));
+ const submitData = this.tableData.map(row => {
+ const { _select, ...validData } = row;
+ return {
+ ...validData,
+ dorType: 2
+ };
+ });
// 如果所有必填项都填写了,则进行提交操作
this.$emit("submitData", submitData); // 通知父组件刷新表格数据
this.closeDialog()