|
@@ -10,69 +10,67 @@
|
|
|
append-to-body
|
|
|
@opened="visibleChange"
|
|
|
>
|
|
|
- <div class="part-box part-box-pad part-box-border">
|
|
|
- <el-form
|
|
|
- ref="modalFormComp"
|
|
|
- :model="modalForm"
|
|
|
- :rules="rules"
|
|
|
- label-width="140px"
|
|
|
- >
|
|
|
- <el-form-item prop="courseCode" label="课程代码:" required>
|
|
|
- <el-input
|
|
|
- v-model.trim="modalForm.courseCode"
|
|
|
- placeholder="请输入课程代码"
|
|
|
- readonly
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item prop="courseName" label="课程名称:" required>
|
|
|
- <el-input
|
|
|
- v-model.trim="modalForm.courseName"
|
|
|
- placeholder="请输入课程名称"
|
|
|
- readonly
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item prop="namePrimary" label="一级知识维度:">
|
|
|
- <el-input
|
|
|
- v-model.trim="modalForm.namePrimary"
|
|
|
- placeholder="请输入一级知识维度"
|
|
|
- clearable
|
|
|
- @change="dimValidate"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item prop="codePrimary" label="一级维度编号:">
|
|
|
- <el-input
|
|
|
- v-model.trim="modalForm.codePrimary"
|
|
|
- placeholder="请输入一级维度编号"
|
|
|
- clearable
|
|
|
- @change="dimValidate"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item prop="nameSecond" label="二级知识维度:">
|
|
|
- <el-input
|
|
|
- v-model.trim="modalForm.nameSecond"
|
|
|
- placeholder="请输入二级知识维度"
|
|
|
- clearable
|
|
|
- @change="dimValidate"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item prop="codeSecond" label="二级维度编号:">
|
|
|
- <el-input
|
|
|
- v-model.trim="modalForm.codeSecond"
|
|
|
- placeholder="请输入二级维度编号"
|
|
|
- clearable
|
|
|
- @change="dimValidate"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="一级维度术语解释:">
|
|
|
- <el-input
|
|
|
- v-model.trim="modalForm.interpretation"
|
|
|
- type="textarea"
|
|
|
- :autosize="{ minRows: 1, maxRows: 5 }"
|
|
|
- placeholder="请输入一级维度术语解释"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
+ <el-form
|
|
|
+ ref="modalFormComp"
|
|
|
+ :model="modalForm"
|
|
|
+ :rules="rules"
|
|
|
+ label-width="140px"
|
|
|
+ >
|
|
|
+ <el-form-item prop="courseCode" label="课程代码:" required>
|
|
|
+ <el-input
|
|
|
+ v-model.trim="modalForm.courseCode"
|
|
|
+ placeholder="请输入课程代码"
|
|
|
+ readonly
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="courseName" label="课程名称:" required>
|
|
|
+ <el-input
|
|
|
+ v-model.trim="modalForm.courseName"
|
|
|
+ placeholder="请输入课程名称"
|
|
|
+ readonly
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="namePrimary" label="一级知识维度:">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="modalForm.namePrimary"
|
|
|
+ placeholder="请输入一级知识维度"
|
|
|
+ clearable
|
|
|
+ @change="dimValidate"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="codePrimary" label="一级维度编号:">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="modalForm.codePrimary"
|
|
|
+ placeholder="请输入一级维度编号"
|
|
|
+ clearable
|
|
|
+ @change="dimValidate"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="nameSecond" label="二级知识维度:">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="modalForm.nameSecond"
|
|
|
+ placeholder="请输入二级知识维度"
|
|
|
+ clearable
|
|
|
+ @change="dimValidate"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="codeSecond" label="二级维度编号:">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="modalForm.codeSecond"
|
|
|
+ placeholder="请输入二级维度编号"
|
|
|
+ clearable
|
|
|
+ @change="dimValidate"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="一级维度术语解释:">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="modalForm.interpretation"
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 2, maxRows: 5 }"
|
|
|
+ placeholder="请输入一级维度术语解释"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
<div slot="footer">
|
|
|
<el-button type="primary" :disabled="isSubmit" @click="submit"
|
|
|
>确认</el-button
|
|
@@ -93,7 +91,8 @@ const initModalForm = {
|
|
|
codePrimary: "",
|
|
|
nameSecond: "",
|
|
|
codeSecond: "",
|
|
|
- interpretation: ""
|
|
|
+ interpretation: "",
|
|
|
+ dimensionType: "KNOWLEDGE"
|
|
|
};
|
|
|
|
|
|
export default {
|
|
@@ -116,14 +115,14 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
data() {
|
|
|
- const firstNameValidator = (rule, value, callback) => {
|
|
|
+ const namePrimaryValidator = (rule, value, callback) => {
|
|
|
if (!this.modalForm.codePrimary || !value) return callback();
|
|
|
|
|
|
let existFirstDim = this.dictData.find(
|
|
|
item => item.code === this.modalForm.codePrimary
|
|
|
);
|
|
|
if (existFirstDim) {
|
|
|
- if (existFirstDim.namePrimary !== value)
|
|
|
+ if (existFirstDim.name !== value)
|
|
|
return callback(new Error("一级知识维度错误"));
|
|
|
} else {
|
|
|
existFirstDim = this.dictData.find(item => item.name === value);
|
|
@@ -133,7 +132,7 @@ export default {
|
|
|
callback();
|
|
|
};
|
|
|
|
|
|
- const secondNameValidator = (rule, value, callback) => {
|
|
|
+ const nameSecondValidator = (rule, value, callback) => {
|
|
|
if (
|
|
|
!this.modalForm.codeSecond ||
|
|
|
!value ||
|
|
@@ -142,32 +141,82 @@ export default {
|
|
|
)
|
|
|
return callback();
|
|
|
|
|
|
- let existFirstDim = this.dictData.find(
|
|
|
- item => item.code === this.modalForm.codePrimary
|
|
|
- );
|
|
|
- if (existFirstDim) {
|
|
|
- let existSecondDim = existFirstDim.children.find(
|
|
|
- item => item.code === this.modalForm.codeSecond
|
|
|
+ const addValidator = () => {
|
|
|
+ let existFirstDim = this.dictData.find(
|
|
|
+ item => item.code === this.modalForm.codePrimary
|
|
|
);
|
|
|
- if (existSecondDim) {
|
|
|
- return callback();
|
|
|
+ if (existFirstDim) {
|
|
|
+ let existSecondDim = existFirstDim.children.find(
|
|
|
+ item => item.code === this.modalForm.codeSecond
|
|
|
+ );
|
|
|
+
|
|
|
+ if (existSecondDim) {
|
|
|
+ return callback();
|
|
|
+ } else {
|
|
|
+ existSecondDim = existFirstDim.children.find(
|
|
|
+ item => item.name === value
|
|
|
+ );
|
|
|
+ if (existSecondDim)
|
|
|
+ return callback(new Error("二级知识维度已存在"));
|
|
|
+ }
|
|
|
} else {
|
|
|
- existSecondDim = existFirstDim.children.find(
|
|
|
- item => item.name === value
|
|
|
+ const secondDimExist = this.dictData.some(item =>
|
|
|
+ item.children.some(elem => elem.name === value)
|
|
|
);
|
|
|
- if (existSecondDim) return callback(new Error("二级知识维度已存在"));
|
|
|
+ if (secondDimExist) return callback(new Error("二级知识维度已存在"));
|
|
|
}
|
|
|
- } else {
|
|
|
- const secondDimExist = this.dictData.some(item =>
|
|
|
- item.children.some(elem => elem.name === value)
|
|
|
+
|
|
|
+ return callback();
|
|
|
+ };
|
|
|
+
|
|
|
+ const editValidator = () => {
|
|
|
+ let existFirstDim = this.dictData.find(
|
|
|
+ item => item.code === this.modalForm.codePrimary
|
|
|
);
|
|
|
- if (secondDimExist) return callback(new Error("二级知识维度已存在"));
|
|
|
- }
|
|
|
+ if (existFirstDim) {
|
|
|
+ let existSecondDim = existFirstDim.children.find(
|
|
|
+ item => item.code === this.modalForm.codeSecond
|
|
|
+ );
|
|
|
|
|
|
- callback();
|
|
|
+ if (existSecondDim) {
|
|
|
+ if (
|
|
|
+ existSecondDim.code === this.instance.codeSecond &&
|
|
|
+ existSecondDim.name !== value
|
|
|
+ ) {
|
|
|
+ return callback(new Error("二级知识维度错误"));
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ existSecondDim.code !== this.instance.codeSecond &&
|
|
|
+ existSecondDim.name === value
|
|
|
+ ) {
|
|
|
+ return callback(new Error("二级知识维度已存在"));
|
|
|
+ }
|
|
|
+
|
|
|
+ return callback();
|
|
|
+ } else {
|
|
|
+ existSecondDim = existFirstDim.children.find(
|
|
|
+ item =>
|
|
|
+ item.name === value && item.name !== this.instance.nameSecond
|
|
|
+ );
|
|
|
+ if (existSecondDim)
|
|
|
+ return callback(new Error("二级知识维度已存在"));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ const secondDimExist = this.dictData.some(item =>
|
|
|
+ item.children.some(
|
|
|
+ elem =>
|
|
|
+ elem.name === value && elem.name !== this.instance.nameSecond
|
|
|
+ )
|
|
|
+ );
|
|
|
+ if (secondDimExist) return callback(new Error("二级知识维度已存在"));
|
|
|
+ }
|
|
|
+ return callback();
|
|
|
+ };
|
|
|
+
|
|
|
+ return this.isEdit ? editValidator() : addValidator();
|
|
|
};
|
|
|
|
|
|
- const secondCodeValidator = (rule, value, callback) => {
|
|
|
+ const codeSecondValidator = (rule, value, callback) => {
|
|
|
if (
|
|
|
!this.modalForm.codeSecond ||
|
|
|
!value ||
|
|
@@ -188,7 +237,16 @@ export default {
|
|
|
let existSecondDim = existFirstDim.children.find(
|
|
|
item => item.code === this.modalForm.codeSecond
|
|
|
);
|
|
|
- if (existSecondDim) return callback(new Error("二级维度编号已存在"));
|
|
|
+ if (this.isEdit) {
|
|
|
+ if (
|
|
|
+ existSecondDim &&
|
|
|
+ existSecondDim.code !== this.instance.codeSecond
|
|
|
+ ) {
|
|
|
+ return callback(new Error("二级维度编号已存在"));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (existSecondDim) return callback(new Error("二级维度编号已存在"));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
callback();
|
|
@@ -212,7 +270,7 @@ export default {
|
|
|
trigger: "change"
|
|
|
},
|
|
|
{
|
|
|
- validator: firstNameValidator,
|
|
|
+ validator: namePrimaryValidator,
|
|
|
trigger: "change"
|
|
|
}
|
|
|
],
|
|
@@ -236,7 +294,7 @@ export default {
|
|
|
trigger: "change"
|
|
|
},
|
|
|
{
|
|
|
- validator: secondNameValidator,
|
|
|
+ validator: nameSecondValidator,
|
|
|
trigger: "change"
|
|
|
}
|
|
|
],
|
|
@@ -248,7 +306,7 @@ export default {
|
|
|
trigger: "change"
|
|
|
},
|
|
|
{
|
|
|
- validator: secondCodeValidator,
|
|
|
+ validator: codeSecondValidator,
|
|
|
trigger: "change"
|
|
|
}
|
|
|
]
|
|
@@ -273,24 +331,24 @@ export default {
|
|
|
this.modalIsShow = true;
|
|
|
},
|
|
|
getDict() {
|
|
|
- let dataDict = {};
|
|
|
+ let dictData = {};
|
|
|
|
|
|
this.dimensionList
|
|
|
.filter(item => item.dimensionType === "KNOWLEDGE")
|
|
|
.forEach(item => {
|
|
|
- if (!dataDict[item.codePrimary]) {
|
|
|
- dataDict[item.codePrimary] = {
|
|
|
+ if (!dictData[item.codePrimary]) {
|
|
|
+ dictData[item.codePrimary] = {
|
|
|
name: item.namePrimary,
|
|
|
code: item.codePrimary,
|
|
|
children: []
|
|
|
};
|
|
|
}
|
|
|
- dataDict[item.codePrimary].children.push({
|
|
|
+ dictData[item.codePrimary].children.push({
|
|
|
name: item.nameSecond,
|
|
|
code: item.codeSecond
|
|
|
});
|
|
|
});
|
|
|
- this.dataDict = Object.values(dataDict);
|
|
|
+ this.dictData = Object.values(dictData);
|
|
|
},
|
|
|
dimValidate() {
|
|
|
this.$refs.modalFormComp.validateField([
|