|
@@ -12,7 +12,7 @@
|
|
|
:rules="rules"
|
|
|
>
|
|
|
<div class="content">
|
|
|
- <el-form-item label="疾病名称:" class="item" prop="conceptId">
|
|
|
+ <el-form-item label="疾病名称:" class="item" prop="conceptId" :rules="rules.conceptId">
|
|
|
<el-select
|
|
|
clearable
|
|
|
remote
|
|
@@ -28,7 +28,7 @@
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="诊断依据描述:" class="item">
|
|
|
+ <el-form-item label="诊断依据描述:" prop="description" class="item">
|
|
|
<el-input
|
|
|
class="inps"
|
|
|
maxlength="200"
|
|
@@ -94,7 +94,7 @@
|
|
|
<el-form-item
|
|
|
class="is-request"
|
|
|
:prop="'klDiagnoseTypeVO.'+scope.$index+'.conditionType'"
|
|
|
- :rules="[{ required: true, message: '请选择诊断依据类型',trigger: ['change'] }]"
|
|
|
+ :rules="rules.conditionType"
|
|
|
>
|
|
|
<el-select
|
|
|
v-model="form.klDiagnoseTypeVO[scope.$index].conditionType"
|
|
@@ -143,7 +143,7 @@
|
|
|
<template slot-scope="scope">
|
|
|
<el-form-item
|
|
|
:prop="'klDiagnoseTypeVO.'+scope.$index+'.groupVO.'+0+'.fitNo'"
|
|
|
- :rules="[{required:true,message:'请选择符合条件的数量',trigger:'change'}]"
|
|
|
+ :rules="rules.fitNo"
|
|
|
>
|
|
|
<el-select v-model="scope.row.groupVO[0].fitNo">
|
|
|
<el-option
|
|
@@ -190,7 +190,7 @@
|
|
|
'.groupVO.' +
|
|
|
index +
|
|
|
'.klDiagnoseDetail.'+i+'.basDescription'"
|
|
|
- :rules="[{required:true,message:'请输入基础依据名称',trigger:'blur'}]"
|
|
|
+ :rules="rules.basDescription"
|
|
|
>
|
|
|
<el-input
|
|
|
class="inp-name"
|
|
@@ -207,7 +207,7 @@
|
|
|
'.groupVO.' +
|
|
|
index +
|
|
|
'.klDiagnoseDetail.'+i+'.basType'"
|
|
|
- :rules="[{ required: true, message: '请选择基础依据类型',trigger: ['change'] }]"
|
|
|
+ :rules="rules.basType"
|
|
|
>
|
|
|
<el-select
|
|
|
v-model="items.basType"
|
|
@@ -229,7 +229,7 @@
|
|
|
index +
|
|
|
'.klDiagnoseDetail.'+i+'.basLibType'"
|
|
|
v-if="!items.basNameType && v.title == '基础依据术语类型'"
|
|
|
- :rules="[{required: true,message: '请选择基础依据术语类型',trigger: ['change']}]"
|
|
|
+ :rules="rules.basLibType"
|
|
|
>
|
|
|
<el-select
|
|
|
v-model="items.basLibType"
|
|
@@ -259,7 +259,7 @@
|
|
|
'.groupVO.' +
|
|
|
index +
|
|
|
'.klDiagnoseDetail.'+i+'.basConceptId'"
|
|
|
- :rules="[{required:true,message:'请输入医学标准术语',trigger:'change'}]"
|
|
|
+ :rules="rules.subConceptId"
|
|
|
>
|
|
|
<el-select
|
|
|
clearable
|
|
@@ -286,6 +286,7 @@
|
|
|
index +
|
|
|
'.klDiagnoseDetail.'+i+'.dataType'"
|
|
|
v-if="items.basType===2&&!items.onlyNumType&&!items.onlyTxtType"
|
|
|
+ :rules="rules.dataType"
|
|
|
>
|
|
|
<el-select
|
|
|
class="box-1"
|
|
@@ -315,6 +316,14 @@
|
|
|
'.groupVO.' +
|
|
|
index +
|
|
|
'.klDiagnoseDetail.'+i+'.maxOperator'"
|
|
|
+ :rules="[
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ maxOperator(items, rule, value, callback);
|
|
|
+ },
|
|
|
+ trigger: ['change']
|
|
|
+ }
|
|
|
+ ]"
|
|
|
>
|
|
|
<el-select
|
|
|
v-model="items.maxOperator"
|
|
@@ -334,10 +343,18 @@
|
|
|
<el-form-item
|
|
|
class="num"
|
|
|
:prop="'klDiagnoseTypeVO.' +
|
|
|
- scope.$index +
|
|
|
- '.groupVO.' +
|
|
|
- index +
|
|
|
- '.klDiagnoseDetail.'+i+'.maxVal'"
|
|
|
+ scope.$index +
|
|
|
+ '.groupVO.' +
|
|
|
+ index +
|
|
|
+ '.klDiagnoseDetail.'+i+'.maxVal'"
|
|
|
+ :rules="[
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ maxVal(items, rule, value, callback);
|
|
|
+ },
|
|
|
+ trigger: ['blur']
|
|
|
+ }
|
|
|
+ ]"
|
|
|
>
|
|
|
<el-input v-model="items.maxVal" placeholder="填写数值"></el-input>
|
|
|
</el-form-item>
|
|
@@ -358,6 +375,14 @@
|
|
|
'.groupVO.' +
|
|
|
index +
|
|
|
'.klDiagnoseDetail.'+i+'.minOperator'"
|
|
|
+ :rules="[
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ minOperator(items, rule, value, callback);
|
|
|
+ },
|
|
|
+ trigger: ['change']
|
|
|
+ }
|
|
|
+ ]"
|
|
|
>
|
|
|
<el-select
|
|
|
v-model="items.minOperator"
|
|
@@ -373,7 +398,6 @@
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
<el-form-item
|
|
|
class="minnum"
|
|
|
:prop="'klDiagnoseTypeVO.' +
|
|
@@ -381,44 +405,68 @@
|
|
|
'.groupVO.' +
|
|
|
index +
|
|
|
'.klDiagnoseDetail.'+i+'.minVal'"
|
|
|
+ :rules="[
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ minVal(items, rule, value, callback);
|
|
|
+ },
|
|
|
+ trigger: ['blur']
|
|
|
+ }
|
|
|
+ ]"
|
|
|
>
|
|
|
<el-input v-model="items.minVal" placeholder="填写数值"></el-input>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
<el-form-item prop="minUnit">
|
|
|
<el-input v-model.trim="items.minUnit" placeholder="填写单位"></el-input>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
- <el-form-item
|
|
|
- :prop="'klDiagnoseTypeVO.' +
|
|
|
+ <div>
|
|
|
+ <el-form-item
|
|
|
+ :prop="'klDiagnoseTypeVO.' +
|
|
|
scope.$index +
|
|
|
'.groupVO.' +
|
|
|
index +
|
|
|
'.klDiagnoseDetail.'+i+'.eqValue'"
|
|
|
- v-if="items.basType===4 || items.basType===3"
|
|
|
- maxlength="200"
|
|
|
- label="正则表达式:"
|
|
|
- class="discDesc"
|
|
|
- :rules="[{required:true,message:'不能为空~',trigger:'change'}]"
|
|
|
- >
|
|
|
- <el-input class="inp" placeholder="请输入正则表达式" v-model.trim="items.eqValue"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- :prop="'klDiagnoseTypeVO.' +
|
|
|
+ v-if="items.basType===4 || items.basType===3"
|
|
|
+ maxlength="200"
|
|
|
+ label="正则表达式:"
|
|
|
+ class="discDesc"
|
|
|
+ :rules="[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入正则表达式',
|
|
|
+ trigger: 'blur'
|
|
|
+ },
|
|
|
+
|
|
|
+ ]"
|
|
|
+ >
|
|
|
+ <el-input class="inp" placeholder="请输入正则表达式" v-model.trim="items.eqValue"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-form-item
|
|
|
+ :prop="'klDiagnoseTypeVO.' +
|
|
|
scope.$index +
|
|
|
'.groupVO.' +
|
|
|
index +
|
|
|
'.klDiagnoseDetail.'+i+'.eqValue'"
|
|
|
- maxlength="200"
|
|
|
- v-if="(!items.onlyNumType&&!items.basNameType&&(items.basType===2 || items.basType===1)&&items.dataType==='2')||items.onlyTxtType"
|
|
|
- label="医学内容:"
|
|
|
- class="discDesc"
|
|
|
- :rules="[{required:true,message:'不能为空~',trigger:'change'}]"
|
|
|
- >
|
|
|
- <el-input v-model.trim="items.eqValue" class="inp" placeholder="请输入医学内容"></el-input>
|
|
|
- </el-form-item>
|
|
|
+ maxlength="200"
|
|
|
+ v-if="(!items.onlyNumType&&!items.basNameType&&(items.basType===2 || items.basType===1)&&items.dataType==='2')||items.onlyTxtType"
|
|
|
+ label="医学内容:"
|
|
|
+ class="discDesc"
|
|
|
+ :rules="[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入医学内容',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+
|
|
|
+ ]"
|
|
|
+ >
|
|
|
+ <el-input v-model.trim="items.eqValue" class="inp" placeholder="请输入医学内容"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -436,7 +484,7 @@
|
|
|
<script type="text/javascript">
|
|
|
import util from '../../api/utils.js';
|
|
|
import api from '@api/zskDiagBase.js';
|
|
|
-
|
|
|
+import { tableRules } from './rules';
|
|
|
export default {
|
|
|
name: 'AddZskDiagBase',
|
|
|
data() {
|
|
@@ -502,40 +550,7 @@ export default {
|
|
|
]
|
|
|
},
|
|
|
id: null,
|
|
|
- rules: {
|
|
|
- conceptId: [
|
|
|
- { required: true, message: '请输入疾病名称', trigger: ['change'] }
|
|
|
- ],
|
|
|
- description: [
|
|
|
- {
|
|
|
- validator: (rule, value, callback) => {
|
|
|
- if (value && value.length > 100) {
|
|
|
- callback(new Error('诊断依据描述不能超过100字'));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- },
|
|
|
- trigger: 'change'
|
|
|
- }
|
|
|
- ],
|
|
|
- conditionType: [
|
|
|
- { required: true, message: '请选择基础规则类型', trigger: ['change'] }
|
|
|
- ],
|
|
|
- subEqValue: [
|
|
|
- {
|
|
|
- validator: (rule, value, callback) => {
|
|
|
- if (value === '') {
|
|
|
- callback(new Error('请输入' + this.textName));
|
|
|
- } else if (value.length > 200) {
|
|
|
- callback(new Error(this.textName + '不能超过200字'));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- },
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
+ rules: tableRules,
|
|
|
dataTypes: [
|
|
|
{ id: '1', name: '数值类型' },
|
|
|
{ id: '2', name: '文本类型' }
|
|
@@ -669,10 +684,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
this.i = this.form.klDiagnoseTypeVO.slice(-1)[0].depart_id + 1;
|
|
|
- console.log(this.i);
|
|
|
}
|
|
|
-
|
|
|
- this.setRules();
|
|
|
},
|
|
|
computed: {
|
|
|
numArr() {
|
|
@@ -721,6 +733,52 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 最大值 选择rule
|
|
|
+ maxOperator(items, rule, value, callback) {
|
|
|
+ const { maxVal, minOperator, minVal } = items;
|
|
|
+ const val = value + minOperator + minVal + maxVal;
|
|
|
+ if (!val || (!value && maxVal !== '')) {
|
|
|
+ callback(new Error('最大值和最小值至少完整填写一个,单位不必填'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 最大值 数值rule
|
|
|
+ maxVal(items, rule, value, callback) {
|
|
|
+ const { maxOperator, minOperator, minVal } = items;
|
|
|
+ const val = value + maxOperator + minOperator + minVal;
|
|
|
+ const isNum = /^(\-|\+)?\d+(\.\d+)?$/.test(value);
|
|
|
+ if (!val || (value == '' && maxOperator)) {
|
|
|
+ callback(new Error('最大值和最小值至少完整填写一个,单位不必填'));
|
|
|
+ } else if (value !== '' && !isNum) {
|
|
|
+ callback(new Error('只能输入数字'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 最小值 选择rule
|
|
|
+ minOperator(items, rule, value, callback) {
|
|
|
+ const { maxVal, maxOperator, minVal } = items;
|
|
|
+ const val = value + maxVal + maxOperator + minVal;
|
|
|
+ if (!val || (!value && minVal !== '')) {
|
|
|
+ callback(new Error('最大值和最小值至少完整填写一个,单位不必填'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 最小值 数值rule
|
|
|
+ minVal(items, rule, value, callback) {
|
|
|
+ const { maxVal, minOperator, maxOperator } = items;
|
|
|
+ const val = value + maxVal + minOperator + maxOperator;
|
|
|
+ const isNum = /^(\-|\+)?\d+(\.\d+)?$/.test(value);
|
|
|
+ if (!val || (value == '' && minOperator)) {
|
|
|
+ callback(new Error('最大值和最小值至少完整填写一个,单位不必填'));
|
|
|
+ } else if (value !== '' && !isNum) {
|
|
|
+ callback(new Error('只能输入数字'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
isMax(id) {
|
|
|
const typeNum = this.form.klDiagnoseTypeVO.filter(
|
|
|
item => item.depart_id === id
|
|
@@ -832,7 +890,6 @@ export default {
|
|
|
// this.$refs.form.clearValidate();
|
|
|
});
|
|
|
this.form.klDiagnoseTypeVO.splice(i + 1, 0, temp);
|
|
|
- this.setRules();
|
|
|
},
|
|
|
//复制依据
|
|
|
copyDiag(id, inx) {
|
|
@@ -868,7 +925,6 @@ export default {
|
|
|
item.depart_id = i;
|
|
|
});
|
|
|
this.form.klDiagnoseTypeVO = dest;
|
|
|
- this.setRules();
|
|
|
},
|
|
|
//删除依据
|
|
|
delDiag(id, inx) {
|
|
@@ -880,7 +936,6 @@ export default {
|
|
|
item.depart_id = item.depart_id - 1;
|
|
|
}
|
|
|
});
|
|
|
- this.setRules();
|
|
|
},
|
|
|
//新增组
|
|
|
addGroup(i) {
|
|
@@ -914,11 +969,9 @@ export default {
|
|
|
]
|
|
|
};
|
|
|
this.form.klDiagnoseTypeVO[i].groupVO.splice(i + 1, 0, temp);
|
|
|
- this.setRules();
|
|
|
},
|
|
|
delGroup(id, i) {
|
|
|
this.form.klDiagnoseTypeVO.splice(i, 1);
|
|
|
- this.setRules();
|
|
|
},
|
|
|
//新增基础依据
|
|
|
addRule(row, index, i) {
|
|
@@ -944,7 +997,6 @@ export default {
|
|
|
dataType: ''
|
|
|
};
|
|
|
this.form.klDiagnoseTypeVO[index].groupVO[i].klDiagnoseDetail.push(temp);
|
|
|
- this.setRules();
|
|
|
},
|
|
|
delRule(row, inx, index, i) {
|
|
|
if (
|
|
@@ -958,7 +1010,6 @@ export default {
|
|
|
1
|
|
|
);
|
|
|
}
|
|
|
- this.setRules();
|
|
|
},
|
|
|
//诊断依据类型修改
|
|
|
basTypeChange(val, inx) {
|
|
@@ -1035,6 +1086,9 @@ export default {
|
|
|
this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
|
|
|
i
|
|
|
].conceptList = [];
|
|
|
+ this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
|
|
|
+ i
|
|
|
+ ].basConceptId = '';
|
|
|
if ((this.numTypes + ',').indexOf(val + ',') > -1) {
|
|
|
this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail[
|
|
|
i
|
|
@@ -1421,8 +1475,18 @@ export default {
|
|
|
}
|
|
|
.inps {
|
|
|
width: 500px !important;
|
|
|
- .el-input__inner {
|
|
|
+ font-size: 14px;
|
|
|
+ /deep/ .el-input__inner {
|
|
|
width: 500px !important;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .item {
|
|
|
+ /deep/.el-form-item__label {
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ /deep/.el-input__inner {
|
|
|
+ font-size: 14px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1511,6 +1575,7 @@ export default {
|
|
|
top: 38px;
|
|
|
left: 10px;
|
|
|
white-space: nowrap;
|
|
|
+ width: 360px;
|
|
|
}
|
|
|
}
|
|
|
.last-box-s {
|
|
@@ -1519,6 +1584,7 @@ export default {
|
|
|
top: 38px;
|
|
|
left: 0px;
|
|
|
white-space: nowrap;
|
|
|
+ width: 260px;
|
|
|
}
|
|
|
}
|
|
|
/deep/ .el-form-item__error {
|