|
|
@@ -747,6 +747,7 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
created() {
|
|
|
+ this._prevDetailTypes = [...this.innerDetailTypes];
|
|
|
this.getAcupointList();
|
|
|
this.getMeridianList();
|
|
|
this.getEarAcupointList();
|
|
|
@@ -789,6 +790,7 @@ export default {
|
|
|
this.detailTables = JSON.parse(JSON.stringify(data.detailTables));
|
|
|
this.innerIsEditable = data.innerIsEditable;
|
|
|
this.innerDetailTypes = [...data.innerDetailTypes];
|
|
|
+ this._prevDetailTypes = [...data.innerDetailTypes];
|
|
|
this.detailRequired = data.detailRequired;
|
|
|
this.operationGuide = data.operationGuide;
|
|
|
this.singleCount = data.singleCount;
|
|
|
@@ -804,6 +806,7 @@ export default {
|
|
|
this.detailTables = def.detailTables;
|
|
|
this.innerIsEditable = def.innerIsEditable;
|
|
|
this.innerDetailTypes = def.innerDetailTypes;
|
|
|
+ this._prevDetailTypes = [...def.innerDetailTypes];
|
|
|
this.detailRequired = def.detailRequired;
|
|
|
this.operationGuide = def.operationGuide;
|
|
|
this.singleCount = def.singleCount;
|
|
|
@@ -1061,6 +1064,22 @@ export default {
|
|
|
this.$emit("update:isEditable", val);
|
|
|
},
|
|
|
onDetailTypesChange(val) {
|
|
|
+ // 无详情 与其他选项不能同时选中
|
|
|
+ const NO_DETAIL = "无详情";
|
|
|
+ const lastSelected = val.length > this._prevDetailTypes?.length
|
|
|
+ ? val.find((v) => !this._prevDetailTypes.includes(v))
|
|
|
+ : null;
|
|
|
+
|
|
|
+ if (lastSelected === NO_DETAIL) {
|
|
|
+ // 选中了"无详情",取消其他所有选项
|
|
|
+ val = [NO_DETAIL];
|
|
|
+ } else if (lastSelected && lastSelected !== NO_DETAIL && val.includes(NO_DETAIL)) {
|
|
|
+ // 选中了其他选项,取消"无详情"
|
|
|
+ val = val.filter((v) => v !== NO_DETAIL);
|
|
|
+ }
|
|
|
+ this.innerDetailTypes = val;
|
|
|
+ this._prevDetailTypes = [...val];
|
|
|
+
|
|
|
val.forEach((type) => {
|
|
|
const table = this.detailTables[type];
|
|
|
const isEmpty = !table || table.length === 0;
|