gaoxizhong 5 månader sedan
förälder
incheckning
0d3bd0cee6
2 ändrade filer med 75 tillägg och 6 borttagningar
  1. 9 0
      src/api/rule/config.js
  2. 66 6
      src/views/rule/config/components/CreateDialog.vue

+ 9 - 0
src/api/rule/config.js

@@ -62,3 +62,12 @@ export function get_rule_detail(data) {
     params: data
   })
 }
+// 规则详情
+export function getSelectFormula(data) {
+  return request({
+    url: '/quality_rule/get_select_formula',
+    method: 'get',
+    params: data
+  })
+}
+

+ 66 - 6
src/views/rule/config/components/CreateDialog.vue

@@ -235,11 +235,7 @@
                     </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">
@@ -266,8 +262,63 @@
                 </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>
+                </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>
+                    </el-col>
+                    <el-col :span="8">
+                      <el-cascader
+                        v-model="sItem.param1"
+                        :options="objects"
+                        :props="{
+                          expandTrigger: 'hover',
+                          value: 'field',
+                          label: 'field_name',
+                          children: 'child'
+                        }"
+                        clearable
+                        filterable
+                        :show-all-levels="false"
+                        placeholder="请选择"
+                        style="width: 100%;"
+                      />
+                    </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-select>
+                    </el-col>
+                    <el-col :span="6">
+                      <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="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-col>
+                  </el-row>
+                  <!-- <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>
+              </el-card>
+            </el-col>
           </el-form-item>
         </el-col>
+
       </el-row>
     </el-form>
     <span slot="footer" class="dialog-footer">
@@ -280,7 +331,7 @@
 <script>
 import { add_rule } from '@/api/rule/config'
 import { get_all_word_map } from '@/api/dict'
-import { get_rule_detail } from '@/api/rule/config'
+import { get_rule_detail, getSelectFormula } from '@/api/rule/config'
 
 export default {
   props: {
@@ -321,6 +372,7 @@ export default {
         error_level: '',
         status: '',
         rule_type: '普通规则',
+        selectFormula: [],
         rule: [
           // 质控逻辑只有一条
           {
@@ -398,6 +450,7 @@ export default {
   },
   created() {
     this.getQcData()
+    this.getSelectFormula()
     if (this.data.row.id) {
       this.getDetail(this.data.row.id)
     }
@@ -453,6 +506,13 @@ export default {
       })
       return alist
     },
+    getSelectFormula() {
+      getSelectFormula({}).then(res => {
+        const { p } = res
+        console.log(p)
+        this.selectFormula = p
+      })
+    },
     // 搜索质控字典
     getQcData() {
       get_all_word_map({ status: 1 }).then(res => {