Bladeren bron

Merge branch 'AIControl' of http://192.168.2.236:10080/zhouna/platformFront into AIControl

zhangxc 5 jaren geleden
bovenliggende
commit
afbbd98a0a

+ 2 - 0
src/api/config.js

@@ -297,6 +297,8 @@ export default {
       'delQCTemp':'/api/mrman/qc/qcModuleInfo/delete', //删除模板
       'getQCTempDetail':'/api/mrman/qc/qcModuleInfo/getById', //获取模板详情
       'getQCName':'/api/mrman/qc/qcQuestionInfo/index', //获取字段名称
+      'delFieldMatch':"/api/mrman/qc/qcQuestionInfo/delete",    //删除字段映射
+      'getQcFlawList':'/api/mrman/qcCasesEntry/getAll',   //获取缺陷列表
   },
 	menuIconList: { //菜单对应图标
 		'YH-KZT': 'el-icon-menu',

+ 3 - 0
src/api/qualityControl.js

@@ -29,6 +29,9 @@ export default {
   },
   getQCName(param){ //获取字段名称
     return axios.post(urls.getQCName,param);
+  },
+  getQcFlawList(param){
+    return axios.post(urls.getQcFlawList,param);
   }
 
 }

+ 12 - 14
src/components/qualityControl/AddCombineFeild.vue

@@ -4,29 +4,27 @@
         <div class="contents">
             <div class="content">
                 <el-form ref="form" :label-position="labelPosition" label-width="118px" :model="form" :rules="rules">
-                    <el-form-item label="所属医院:" prop="hisName">
-                        <el-select v-model="form.hisName"
+                    <el-form-item label="所属医院:" prop="hospitalId">
+                        <el-select v-model="form.hospitalId"
                                    placeholder="请选择"
-                                   size="small"
-                                   :disabled="id && !copy?true:false">
+                                   size="small">
                             <el-option
                                     v-for="item in hisTypes"
                                     :key="item.val"
                                     :label="item.name"
-                                    :value="item.val">
+                                    :value="Number(item.val)">
                             </el-option>
                         </el-select>
                     </el-form-item>
-                    <el-form-item label="所属模块:" prop="moduleName">
-                        <el-select v-model="form.moduleName"
+                    <el-form-item label="所属模块:" prop="modeId">
+                        <el-select v-model="form.modeId"
                                    placeholder="请选择"
-                                   size="small"
-                                   :disabled="id && !copy?true:false">
+                                   size="small">
                             <el-option
                                     v-for="item in fieldTypes"
                                     :key="item.val"
                                     :label="item.name"
-                                    :value="item.val">
+                                    :value="Number(item.val)">
                             </el-option>
                         </el-select>
                     </el-form-item>
@@ -71,15 +69,15 @@
         isFirst:true,
         title:'组合字段维护-添加组合字段',
         form:{
-          moduleName:"",
-          hisName:"",
+          modeId:"",
+          hospitalId:"",
           name:'',
           remark:'',
         },
         id:null,
         rules:{
-          hisName:{ required: true, message: '请选择所属医院', trigger: ['blur', 'change']},
-          moduleName:{ required: true, message: '请选择所属模块', trigger: ['blur', 'change']},
+          hospitalId:{ required: true, message: '请选择所属医院', trigger: ['blur', 'change']},
+          modeId:{ required: true, message: '请选择所属模块', trigger: ['blur', 'change']},
           tagName:{ required: true, message: '请输入备注', trigger: ['blur', 'change']},
           /*name:[{ required: true, message: '请输入显示名称',trigger: ['blur', 'change'] }],*/
         },

+ 14 - 4
src/components/qualityControl/BaseFieldList.vue

@@ -3,12 +3,12 @@
         <crumbs title="字段映射维护">
             <el-form :inline="true" class="demo-form-inline">
                 <el-form-item label="所属医院:">
-                    <el-select size="mini" v-model="filter.hisType" placeholder="所属医院" clearable>
+                    <el-select size="mini" v-model="filter.hospitalId" placeholder="所属医院" clearable>
                         <el-option v-for="item in hisTypes" :label="item.name" :value="item.val" :key="item.id"></el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item label="所属模块:">
-                    <el-select size="mini" v-model="filter.moduleType" placeholder="所属模块" clearable>
+                    <el-select size="mini" v-model="filter.modeId" placeholder="所属模块" clearable>
                         <el-option v-for="item in fieldTypes" :label="item.name" :value="item.val" :key="item.id"></el-option>
                     </el-select>
                 </el-form-item>
@@ -37,10 +37,12 @@
                         prop="gmtModified"
                         label="所属医院"
                         width="150"
+                        :formatter="hisFormatter"
                         :show-overflow-tooltip="true">
                 </el-table-column>
                 <el-table-column
                         prop="name"
+                        :formatter="moduleFormatter"
                         label="所属模块">
                 </el-table-column>
                 <el-table-column
@@ -113,8 +115,8 @@
         fieldTypes:[],
         hisTypes:[],
         filter: {
-          hisType:'',
-          moduleType:'',
+          hospitalId:'',
+          modeId:'',
           tagName: ''
         }
       }
@@ -124,6 +126,14 @@
       this.getDataList();
     },
     methods: {
+      moduleFormatter(item){
+        const field = this.fieldTypes.filter((it)=>it.val==item.modeId);
+        return field[0]?field[0].name:'';
+      },
+      hisFormatter(item){
+        const field = this.hisTypes.filter((it)=>it.val==item.hospitalId);
+        return field[0]?field[0].name:'';
+      },
       getAllTypes(){
         if(localStorage.getItem("qcModuleTypes")){
           this.hisTypes = JSON.parse(localStorage.getItem("qcHospitalTypes"));

+ 15 - 5
src/components/qualityControl/CombineFeildList.vue

@@ -3,12 +3,12 @@
         <crumbs title="组合字段维护">
             <el-form :inline="true" class="demo-form-inline">
                 <el-form-item label="所属医院:">
-                    <el-select size="mini" v-model="filter.hisType" placeholder="所属医院" clearable>
+                    <el-select size="mini" v-model="filter.hospitalId" placeholder="所属医院" clearable>
                         <el-option v-for="item in hisTypes" :label="item.name" :value="item.val" :key="item.val"></el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item label="所属模块:">
-                    <el-select size="mini" v-model="filter.moduleType" placeholder="所属模块" clearable>
+                    <el-select size="mini" v-model="filter.modeId" placeholder="所属模块" clearable>
                         <el-option v-for="item in fieldTypes" :label="item.name" :value="item.val" :key="item.val"></el-option>
                     </el-select>
                 </el-form-item>
@@ -34,13 +34,15 @@
                         width="60">
                 </el-table-column>-->
                 <el-table-column
-                        prop="hisName"
+                        prop="hospitalId"
                         label="所属医院"
                         width="150"
+                        :formatter="hisFormatter"
                         :show-overflow-tooltip="true">
                 </el-table-column>
                 <el-table-column
                         prop="moduleName"
+                        :formatter="moduleFormatter"
                         label="所属模块">
                 </el-table-column>
                 <el-table-column
@@ -93,8 +95,8 @@
         fieldTypes:[],
         hisTypes:[],
         filter: {
-          hisType:'',
-          moduleType:'',
+          hospitalId:'',
+          modeId:'',
           tagName: ''
         }
       }
@@ -104,6 +106,14 @@
       this.getDataList();
     },
     methods: {
+      moduleFormatter(item){
+        const field = this.fieldTypes.filter((it)=>it.val==item.modeId);
+        return field[0]?field[0].name:'';
+      },
+      hisFormatter(item){
+        const field = this.hisTypes.filter((it)=>it.val==item.hospitalId);
+        return field[0]?field[0].name:'';
+      },
       getAllTypes(){
         if(localStorage.getItem("qcModuleTypes")){
           this.hisTypes = JSON.parse(localStorage.getItem("qcHospitalTypes"));

+ 65 - 33
src/components/qualityControl/FieldMatch.vue

@@ -4,29 +4,28 @@
         <div class="contents">
             <div class="content">
             <el-form ref="form" :label-position="labelPosition" label-width="118px" :model="form" :rules="rules">
-                <el-form-item label="所属医院:" prop="hisName">
-                    <el-select v-model="form.hisName"
+                <el-form-item label="所属医院:" prop="hospitalId">
+                    <el-select v-model="form.hospitalId"
                                placeholder="请选择"
-                               size="small"
-                               :disabled="id && !copy?true:false">
+                               size="small">
                         <el-option
                                 v-for="item in hisTypes"
                                 :key="item.val"
                                 :label="item.name"
-                                :value="item.val">
+                                :value="Number(item.val)">
                         </el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="所属模块:" prop="moduleName">
-                    <el-select v-model="form.moduleName"
+                <el-form-item label="所属模块:" prop="modeId">
+                    <el-select v-model="form.modeId"
                                placeholder="请选择"
-                               size="small"
-                               :disabled="id && !copy?true:false">
+                               @change="getQcFlawList"
+                               size="small">
                         <el-option
                                 v-for="item in fieldTypes"
                                 :key="item.val"
                                 :label="item.name"
-                                :value="item.val">
+                                :value="Number(item.val)">
                         </el-option>
                     </el-select>
                 </el-form-item>
@@ -37,26 +36,28 @@
                     <el-input type="text" placeholder="请输入显示名称" v-model="form.name"></el-input>
                 </el-form-item>
                 <el-form-item label="取值字段:" prop="value">
-                    <el-input type="text" placeholder="请输入取值字段" v-model="form.value"></el-input>
+                    <el-input type="text" placeholder="请输入取值字段" v-model="form.val"></el-input>
                 </el-form-item>
-                <el-form-item label="关联缺陷条目:" prop="flawId">
+                <el-form-item label="关联缺陷条目:" prop="casesEntryIds">
                     <el-select filterable
-                               v-model="form.flawId"
+                               multiple
+                               v-model="casesEIds"
                                placeholder="请选择"
-                               size="small"
-                               :disabled="id && !copy?true:false">
+                               class="big-select"
+                               size="small">
                         <el-option
                                 v-for="item in flawList"
-                                :key="item.val"
+                                :key="item.id"
                                 :label="item.name"
-                                :value="item.val">
+                                :value="String(item.id)">
                         </el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item>
-                    <el-checkbox v-model="form.breakLine">换行</el-checkbox>
-                    <el-checkbox v-model="form.bold">内容加粗</el-checkbox>
-                    <el-checkbox v-model="form.intent">缩进</el-checkbox>
+                    <el-checkbox v-model="form.addLine" :true-label="Number(1)" :false-label="Number(0)">换行</el-checkbox>
+                    <el-checkbox v-model="form.position" :true-label="Number(1)" :false-label="Number(0)">靠右显示</el-checkbox>
+                    <el-checkbox v-model="form.bold" :true-label="Number(1)" :false-label="Number(0)">内容加粗</el-checkbox>
+                    <el-checkbox v-model="form.retract" :true-label="Number(1)" :false-label="Number(0)">缩进</el-checkbox>
                 </el-form-item>
                 <el-button class="disclButn" size="small" type="primary" :disabled = 'saveDisable' @click="comfirn('form')">确定</el-button>
             </el-form>
@@ -75,16 +76,24 @@
         labelPosition:'left',
         isFirst:true,
         title:'字段映射维护-添加映射字段',
+        casesEIds:'',
         form:{
-          moduleName:"",
-          hisName:"",
+          tagType:1,        //固定
+          modeId:"",
+          hospitalId:"",
           name:'',
-          remark:'',
+          val:'',
+          tagName:'',
+          addLine:0,
+          bold:0,
+          position:0,
+          retract:0,
+          casesEntryIds:'',
         },
         id:null,
         rules:{
-          hisName:{ required: true, message: '请选择所属医院', trigger: ['blur', 'change']},
-          moduleName:{ required: true, message: '请选择所属模块', trigger: ['blur', 'change']},
+          hospitalId:{ required: true, message: '请选择所属医院', trigger: ['blur', 'change']},
+          modeId:{ required: true, message: '请选择所属模块', trigger: ['blur', 'change']},
           tagName:{ required: true, message: '请输入备注', trigger: ['blur', 'change']},
           /*name:[{ required: true, message: '请输入显示名称',trigger: ['blur', 'change'] }],*/
         },
@@ -99,11 +108,31 @@
       this.getAllTypes();
       let info = this.$route.params.info;
       if(info){
+        const infoCopy =  Object.assign({},info);
+        infoCopy.casesEntryIds?this.casesEIds = infoCopy.casesEntryIds.split(","):'';
+        this.getQcFlawList(infoCopy.modeId);
         this.title='字段映射维护-修改映射字段';
-        this.form = Object.assign({},info);
+        this.form = infoCopy;
+      }
+    },
+    watch:{
+      "casesEIds":function(val){
+        this.form.casesEntryIds = val.join(",");
       }
     },
     methods:{
+      getQcFlawList(val){
+        const param={modeId:val,name:"",pages:1,size:500};
+        api.getQcFlawList(param).then((res)=>{
+          if(res.data.code==="0") {
+            const data = res.data.data;
+            this.flawList = data.records;
+
+          }else{
+            this.warning("获取缺陷条目失败");
+          }
+        });
+      },
       getAllTypes(){
         if(localStorage.getItem("qcModuleTypes")){
           this.hisTypes = JSON.parse(localStorage.getItem("qcHospitalTypes"));
@@ -132,10 +161,10 @@
         }*/
         this.$refs[form].validate((valid) => {
           if (valid) {
-            if(this.id && !this.copy){//修改
-              const param = Object.assign({},this.form,{id:this.id})
-              this.saveDisable = true  //提交保存按钮不可点击,返回结果时才可点击,防止频繁发送请求
-              api.updateFieldMatch(param).then((res)=>{
+            if(this.id){//修改
+              const param = Object.assign({},this.form,{id:this.id});
+              this.saveDisable = true;  //提交保存按钮不可点击,返回结果时才可点击,防止频繁发送请求
+              api.addFieldMatch(param).then((res)=>{
                 if(res.data.code==0){
                   this.$message({
                     message:"修改成功",
@@ -143,7 +172,7 @@
                   });
                   //返回带搜索条件的首页
                   this.$router.push({
-                    name: 'VersionInfo',
+                    name: 'BaseField',
                     params: Object.assign({}, this.$route.params, {currentPage: 1})
                   });
                 }else{
@@ -157,12 +186,12 @@
             }else{//添加
               const params = Object.assign({},this.form);
               this.saveDisable = true;  //提交保存按钮不可点击,返回结果时才可点击,防止频繁发送请求
-              api.addFieldMatch(params).then((res)=>{
+              api.addFieldMatch({questionWrapper:params}).then((res)=>{
                 if(res.data.code==0){
                   this.$message({
                     message:"添加成功",
                     type:'success'
-                  })
+                  });
                   this.$router.push({name: 'BaseField'});
                 }else{
                   this.$message({
@@ -192,4 +221,7 @@
     .el-form-item{
         width: 600px;
     }
+    .el-select.big-select{
+        width: 360px;
+    }
 </style>