|
@@ -141,6 +141,7 @@
|
|
|
<el-col :span="24" style="margin-bottom: 20px;">
|
|
|
<el-button type="primary" plain icon="el-icon-plus" @click="onAddQZTJ">前置条件</el-button>
|
|
|
<el-button type="primary" plain icon="el-icon-plus" @click="onAddZKYJ">质控依据</el-button>
|
|
|
+ <el-button type="primary" plain icon="el-icon-plus" @click="onAddZKyujing">质控预警</el-button>
|
|
|
</el-col>
|
|
|
|
|
|
<!-- 前置条件 -->
|
|
@@ -245,22 +246,17 @@
|
|
|
</div>
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
- <!-- 质控逻辑 -->
|
|
|
- <el-col :span="24">
|
|
|
- <el-divider />
|
|
|
- <el-card v-for="(item, index) of ruleForm.rule" :key="'rule'+index" class="box-card" shadow="never">
|
|
|
+ <!-- 质控预警 -->
|
|
|
+ <el-col v-if="ruleForm.zkyujing.length" :span="24">
|
|
|
+ <el-card v-for="(item, index) of ruleForm.zkyujing" :key="'rule'+index" class="box-card" shadow="never">
|
|
|
<div slot="header" class="clearfix box-card_header span">
|
|
|
- <span class="text">质控逻辑</span>
|
|
|
- <span class="ml40">
|
|
|
- <span>流向</span>
|
|
|
- <el-radio v-model="item.detail_status" :label="1" class="ml40">正确</el-radio>
|
|
|
- <el-radio v-model="item.detail_status" :label="2">错误</el-radio>
|
|
|
- </span>
|
|
|
+ <span class="text">质控预警{{ index + 1 }}</span>
|
|
|
+ <i class="el-icon-delete" style="float: right; margin-top: 13px; cursor: pointer;" @click="onDeleteZKyujing(index)" />
|
|
|
</div>
|
|
|
<div>
|
|
|
<el-row v-for="(sItem, sIndex) of item.condition_content" :key="'tj'+sIndex" :gutter="12" class="mb12">
|
|
|
<el-col :span="2">
|
|
|
- <div class="text-right">逻辑{{ sIndex + 1 }}</div>
|
|
|
+ <div class="text-right">条件{{ sIndex + 1 }}</div>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-cascader
|
|
@@ -281,44 +277,45 @@
|
|
|
</el-col>
|
|
|
<el-col :span="4">
|
|
|
<el-select v-model="sItem.condition" filterable clearable placeholder="请选择" style="width: 100%;">
|
|
|
- <el-option v-for="(item,index) in selectFormula" :key="index" :label="item.formula" :value="item.formula" />
|
|
|
+ <el-option label="包含" value="包含" />
|
|
|
+ <el-option label="不包含" value="不包含" />
|
|
|
+ <el-option label="大于" value="大于" />
|
|
|
+ <el-option label="小于" value="小于" />
|
|
|
+ <el-option label="等于" value="等于" />
|
|
|
</el-select>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-autocomplete
|
|
|
- v-model="sItem.param2"
|
|
|
- class="inline-input"
|
|
|
- value-key="name"
|
|
|
- :fetch-suggestions="querySearch"
|
|
|
- placeholder="请输入"
|
|
|
- style="width: 100%;"
|
|
|
- @select="handleSelect"
|
|
|
- />
|
|
|
+ <el-input v-model="sItem.param2" clearable placeholder="请输入" style="width: 100%;" />
|
|
|
</el-col>
|
|
|
<el-col :span="4">
|
|
|
- <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="onAddGZ(index, sIndex)" />
|
|
|
- <el-button v-if="item.condition_content.length !== 1" type="primary" size="mini" plain icon="el-icon-minus" @click="onDeleteGZ(index, sIndex)" />
|
|
|
+ <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="onAddTJZKyujing(index, sIndex)" />
|
|
|
+ <el-button v-if="item.custom_msg.length !== 1" size="mini" type="primary" plain icon="el-icon-minus" @click="onDeleteTJZKyujing(index, sIndex)" />
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <div class="span">
|
|
|
- <span>规则之间的逻辑</span>
|
|
|
+ <!-- <div class="span">
|
|
|
+ <span>条件之间的逻辑</span>
|
|
|
<el-radio v-model="item.condition_relation" :label="1" class="ml40">且(满足所有条件)</el-radio>
|
|
|
<el-radio v-model="item.condition_relation" :label="2">或(满足任意一条件)</el-radio>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</div>
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
- <!-- 质控预警 -->
|
|
|
+ <!-- 质控逻辑 -->
|
|
|
<el-col :span="24">
|
|
|
<el-divider />
|
|
|
<el-card v-for="(item, index) of ruleForm.rule" :key="'rule'+index" class="box-card" shadow="never">
|
|
|
<div slot="header" class="clearfix box-card_header span">
|
|
|
- <span class="text">质控预警</span>
|
|
|
+ <span class="text">质控逻辑</span>
|
|
|
+ <span class="ml40">
|
|
|
+ <span>流向</span>
|
|
|
+ <el-radio v-model="item.detail_status" :label="1" class="ml40">正确</el-radio>
|
|
|
+ <el-radio v-model="item.detail_status" :label="2">错误</el-radio>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
<div>
|
|
|
<el-row v-for="(sItem, sIndex) of item.condition_content" :key="'tj'+sIndex" :gutter="12" class="mb12">
|
|
|
<el-col :span="2">
|
|
|
- <div class="text-right">条件{{ sIndex + 1 }}</div>
|
|
|
+ <div class="text-right">逻辑{{ sIndex + 1 }}</div>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-cascader
|
|
@@ -339,29 +336,34 @@
|
|
|
</el-col>
|
|
|
<el-col :span="4">
|
|
|
<el-select v-model="sItem.condition" filterable clearable placeholder="请选择" style="width: 100%;">
|
|
|
- <el-option label="包含" value="包含" />
|
|
|
- <el-option label="不包含" value="不包含" />
|
|
|
- <el-option label="大于" value="大于" />
|
|
|
- <el-option label="小于" value="小于" />
|
|
|
- <el-option label="等于" value="等于" />
|
|
|
+ <el-option v-for="(item,index) in selectFormula" :key="index" :label="item.formula" :value="item.formula" />
|
|
|
</el-select>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
- <el-input v-model="sItem.param2" clearable placeholder="请输入" style="width: 100%;" />
|
|
|
+ <el-autocomplete
|
|
|
+ v-model="sItem.param2"
|
|
|
+ class="inline-input"
|
|
|
+ value-key="name"
|
|
|
+ :fetch-suggestions="querySearch"
|
|
|
+ placeholder="请输入"
|
|
|
+ style="width: 100%;"
|
|
|
+ @select="handleSelect"
|
|
|
+ />
|
|
|
</el-col>
|
|
|
<el-col :span="4">
|
|
|
- <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="onAddTJ(index, sIndex)" />
|
|
|
- <el-button v-if="item.condition_content.length !== 1" size="mini" type="primary" plain icon="el-icon-minus" @click="onDeleteTJ(index, sIndex)" />
|
|
|
+ <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="onAddGZ(index, sIndex)" />
|
|
|
+ <el-button v-if="item.condition_content.length !== 1" type="primary" size="mini" plain icon="el-icon-minus" @click="onDeleteGZ(index, sIndex)" />
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <!-- <div class="span">
|
|
|
- <span>条件之间的逻辑</span>
|
|
|
+ <div class="span">
|
|
|
+ <span>规则之间的逻辑</span>
|
|
|
<el-radio v-model="item.condition_relation" :label="1" class="ml40">且(满足所有条件)</el-radio>
|
|
|
<el-radio v-model="item.condition_relation" :label="2">或(满足任意一条件)</el-radio>
|
|
|
- </div> -->
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
+
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
@@ -459,6 +461,16 @@ export default {
|
|
|
input2: ''
|
|
|
}]
|
|
|
}
|
|
|
+ ],
|
|
|
+ zkyujing: [
|
|
|
+ {
|
|
|
+ custom_msg: [{
|
|
|
+ aftertime: '',
|
|
|
+ param1: '',
|
|
|
+ input1: '',
|
|
|
+ input2: ''
|
|
|
+ }]
|
|
|
+ }
|
|
|
]
|
|
|
},
|
|
|
rules: {
|
|
@@ -589,6 +601,36 @@ export default {
|
|
|
handleSelect(item) {
|
|
|
console.log(item)
|
|
|
},
|
|
|
+ // 添加质控预警
|
|
|
+ onAddZKyujing() {
|
|
|
+ this.ruleForm.zkyujing.push({
|
|
|
+ custom_msg: [{
|
|
|
+ aftertime: '',
|
|
|
+ param1: '',
|
|
|
+ input1: '',
|
|
|
+ input2: ''
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 删除质控预警大框
|
|
|
+ onDeleteZKyujing(index) {
|
|
|
+ this.ruleForm.zkyujing.splice(index, 1)
|
|
|
+ },
|
|
|
+ // 新增质控预警大框中_条件
|
|
|
+ onAddTJZKyujing(index, sIndex) {
|
|
|
+ this.ruleForm.zkyujing[index].custom_msg.push({
|
|
|
+ aftertime: '',
|
|
|
+ param1: '',
|
|
|
+ input1: '',
|
|
|
+ input2: ''
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 删除质控预警大框中_条件
|
|
|
+ onDeleteTJZKyujing(index, sIndex) {
|
|
|
+ this.ruleForm.zkyujing[index].custom_basis.splice(sIndex, 1)
|
|
|
+ },
|
|
|
+
|
|
|
// 添加质控依据
|
|
|
onAddZKYJ() {
|
|
|
this.ruleForm.zkyj.push({
|