Sfoglia il codice sorgente

独立无明细类型

zhouna 6 anni fa
parent
commit
c183e25898

+ 1 - 0
src/api/config.js

@@ -219,6 +219,7 @@ export default {
     'preTypeList':'/api/precman/dictionaryInfo_prec/getList',   //类型枚举
     'questionDel':'/api/precman/questionInfo_prec/delete',      //删除
     'uploadImg':'/api/precman/file_prec/uploadImage',       //图片上传
+    'fileDel':'/api/precman/file_prec/deleteRemoteFile',          //图片删除
   },
 	menuIconList: { //菜单对应图标
 		'YH-KZT': 'el-icon-menu',

+ 3 - 0
src/api/preTreat.js

@@ -17,5 +17,8 @@ export default {
   },
   questionDel(param){
     return axios.post(urls.questionDel,param);
+  },
+  fileDel(param){
+    return axios.post(urls.fileDel,param);
   }
 }

+ 17 - 46
src/components/preTreat/AddSimpleQuestion.vue

@@ -34,7 +34,7 @@
    */
   import PubIndeptQa from './PubIndeptQa';
   import PubSelect from './PubSelect';
-  import api from '@api/icss.js';
+  import api from '@api/preTreat.js';
   import utils from '@api/utils.js';
 
   export default {
@@ -46,41 +46,21 @@
         dataPub: {},      //公用组件传的值都在这
         itemsTypes:[1,2],            //有明细的类型
         editData:{},                    //编辑数据
-        form: {
-          currentOrder: '0',     //标签成文顺序
-        },
-        rules: {
-          currentOrder: [
-            { required: true, message: '选择标签成文顺序', trigger: 'change' }
-          ]
-        },
         options: [],           //标签明细右侧操作数据
       }
     },
     beforeMount:function(){
       const {isEdit,data} = this.$route.params;
       if(isEdit){
-        this.txt = '独立填写单维护-修改独立填写单'
+        this.txt = '独立填写单维护-修改独立填写单';
         this.editData = data;
       }
     },
-    computed: {
-      newSign() {
-        return this.dataPub.region2;
-      },
-    },
-    watch: {
-      newSign(nextVal, prevVal) {
-        if (nextVal != prevVal) {
-          this.form.currentOrder = '0'
-        }
-      },
-    },
     methods: {
       back() { this.$router.go(-1) },
       changeVal(val) {    //子组件数据改变传递到父组件
-        this.dataPub = val
-        console.log('公用组件传的值都在这', val)
+        this.dataPub = val;
+        //console.log('公用组件传的值都在这', val);
       },
       changeSex(sex) {       //性别改变,清空填写单明细
         //console.log(sex)
@@ -97,8 +77,8 @@
       },
       validatePass() {      //验证成功回调,调取接口
         //仍需验证填写单明细是否选择
-        let isNull = true
-        let options2 = []
+        let isNull = true;
+        let options2 = [];
         const opts = this.options;
         for (let i = 0; i < this.options.length; i++) {
           if(this.options[i].name.trim() != '') {
@@ -126,11 +106,11 @@
           return;
         }
         if(parseFloat(this.dataPub.region8) >= parseFloat(this.dataPub.region9)) {
-          this.warning('最小年龄不能大于或等于最大年龄')
+          this.warning('最小年龄不能大于或等于最大年龄');
           return;
         }
         if(parseFloat(this.dataPub.minNormalVal) >= parseFloat(this.dataPub.maxNormalVal)) {
-          this.warning('最小正常值不能大于或等于最大正常值')
+          this.warning('最小正常值不能大于或等于最大正常值');
           return;
         }
         const {isEdit,data} = this.$route.params;
@@ -139,36 +119,27 @@
             "controlType": this.dataPub.region2,                            //控件类型(0:默认值 1:下拉单选 2:下拉多选 6:文本框 7:数字键盘文本框 99:联合推送)
             "id": isEdit?data.id:'',                                    //新增id置空
             "type": this.dataPub.region1,                //填写单归属
-            "tagType": 1,             //填写单类型
+            "tagType": 1,             //独立填写单类型
             "tagName": this.dataPub.region3,             //系统名称
-            "name": this.dataPub.region4,                //界面名称
-            "joint": this.dataPub.region5,               //标签间的连接符
-            // "subType": this.dataPub.region6,   	         //0:可以,1:不可以(当项目检索)  //这个字段暂时不用
+            "name": this.dataPub.region4,                //医生界面名称
+            "description":this.dataPub.region5,
             "sexType": this.dataPub.region7,             //1:男,2:女,3:通用
             "ageBegin": this.dataPub.region8,       		 //最小年龄
             "ageEnd": this.dataPub.region9,              //最大年龄
-            "textGenerate": this.form.currentOrder,      //成文顺序 默认0
-            "copyType": this.dataPub.region2 == 6 ? this.dataPub.region10 : (this.dataPub.region2 == 3 ? this.dataPub.region11 : ''),                               //是否复制
-            "showAdd": 0,                                //是否显示加号血压
-            "itemType" :this.dataPub.region12,
-            "showInfo": 0,
-            "labelPrefix":this.dataPub.prefix,                                 //前缀
-            "labelSuffix":this.dataPub.suffix,                                 //后缀
-            "minValue": this.dataPub.minNormalVal,        //化验最小正常值
-            "maxValue": this.dataPub.maxNormalVal,         //化验最大正常值
-            "questionDetails": this.options,
-            "questionMappings": [],      //映射关系,
-            "formulaCode": isEdit?data.formulaCode : ''
+            "itemType" :this.dataPub.region12,           //是否为主要内容
+            "url":this.dataPub.region13,                  //上传图片
+            "questionDetails": this.options,                //明细项
+            //"questionMappings": [],      //映射关系,
           }
         };
         this.showSaveDialog(param);
       },
       showSaveDialog(param) {
         this.showConfirmDialog('是否保存该填写单?', () => {
-          api.saveOrUpdate(param).then((res) => {
+          api.questionAdd(param).then((res) => {
             if (res.data.code === '0') {
               this.warning(res.data.msg || '保存成功', 'success');
-              this.$router.push("/admin/LT-YXSJWH-DLLXBQWH");
+              this.$router.push("/admin/LT-YWZSJWH-DLTXDWH");
             } else {
               this.warning(res.data.msg)
             }

+ 89 - 69
src/components/preTreat/PubIndeptQa.vue

@@ -48,8 +48,9 @@
                 </el-select>
             </el-form-item>
             <el-form-item
+                    v-if="qaType==2"
                     :label="'是否为主要内容'"
-                    prop="region5"
+                    prop="region12"
             >
                 <el-select
                         v-model="form.region12"
@@ -68,8 +69,7 @@
 
             <el-form-item
                     label="填写单系统名称:"
-                    prop="region3"
-            >
+                    prop="region3">
                 <div @click.stop style="display:inline-block;">
                     <el-input
                             v-model="form.region3"
@@ -77,25 +77,34 @@
                             maxLength="30"
                             placeholder="请输入填写单系统名称"
                             @change="sendData"
-                            @focus="focusSystemName"
-                    ></el-input>
-                    <ul
-                            class="systemNames"
-                            v-if="systemNameShow"
-                    >
-                        <li
-                                v-for="item in systemNameLis"
-                                class="ellipsis"
-                                :key="item.conceptId"
-                                @click="pushSystemName(item.name)"
-                        >{{item.name}}</li>
+                            @focus="focusSystemName"></el-input>
+                    <ul class="systemNames"
+                        v-if="systemNameShow">
+                        <li v-for="item in systemNameLis"
+                            class="ellipsis"
+                            :key="item.conceptId"
+                            @click="pushSystemName(item.name)">{{item.name}}</li>
                     </ul>
                 </div>
-                <span
-                        class="changeTips changeTipsName"
-                >当为症状时,填写单系统名称需要与医学标准术语内容相对应,如果没有可以先在医学标准术语中建立相关信息!未建立相关信息可能会影响系统使用!</span>
+                <span class="changeTips changeTipsName">
+                    当为症状时,填写单系统名称需要与医学标准术语内容相对应,如果没有可以先在医学标准术语中建立相关信息!未建立相关信息可能会影响系统使用!
+                </span>
+            </el-form-item>
+            <el-form-item
+                    v-if="qaType==1"
+                    label="填写单界面描述名称:"
+                    prop="region6"
+            >
+                <el-input
+                        :disabled="!form.region1"
+                        v-model="form.region6"
+                        maxLength="30"
+                        placeholder="请输入填写单界面描述名称"
+                        @change="sendData"
+                ></el-input>
             </el-form-item>
             <el-form-item
+                    v-if="qaType==2"
                     label="填写单医生界面展示标准内容:"
                     prop="region4"
             >
@@ -108,12 +117,13 @@
                 ></el-input>
             </el-form-item>
             <el-form-item
+                    v-if="qaType==2"
                     label="填写单患者界面展示通俗内容:"
-                    prop="region4"
+                    prop="region5"
             >
                 <el-input
                         :disabled="!form.region1"
-                        v-model="form.region4"
+                        v-model="form.region5"
                         maxLength="30"
                         placeholder="请输入填写单患者界面展示通俗内容"
                         @change="sendData"
@@ -168,21 +178,18 @@
                         @input="sendData"
                 ></el-input>
             </el-form-item>
-            <el-form-item
-                    label="填写单图片内容:"
-                    prop="region4"
-            >
+            <el-form-item label="填写单图片内容:"
+                    prop="region13">
                 <el-upload
-                        class="upload-imgs"
+                        :class="form.region13?'upload-hide':''"
                         :limit="1"
                         :action="uploadUrl"
                         list-type="picture"
                         :on-remove="handleRemove"
-                        :before-remove="beforeRemove"
                         :on-success="handleSuccess"
                         accept="image/*"
                         name="upfile">
-                    <el-button size="small" type="primary">上传图片</el-button>
+                    <el-button slot="trigger" size="small" type="primary">上传图片</el-button>
                 </el-upload>
             </el-form-item>
         </el-form>
@@ -200,7 +207,6 @@
    * submitForm 基本信息验证必填项
    * validatePass 基本信息必填项验证成功回调
    * 父组件根据form.region2改变底部组件操作项
-   * searchTagList 函数的参数根据type变化
    */
 
   // 归属和填写单类型限制:
@@ -214,7 +220,7 @@
 // 补充内容(val:52):单选(val:1)、多选(val:2)、多列填写(val:3)、输入框(val:6)、数字输入框(val:7)、文本域(val:5)
 
   export default {
-    props:['editData'],
+    props:['editData','qaType'],      //qaType:独立1/组合2填写单
     data() {
       var validatePass1 = (rule, value, callback) => {
         this.validateSystomName(value,callback,1)
@@ -227,28 +233,29 @@
           this.validateSystomName(value,callback,2)
         }
       };
+      var validatePass11 = (rule, value, callback) => {
+        this.validateSystomName(value,callback,11)
+      };
+      var validatePass12 = (rule, value, callback) => {
+        this.validateSystomName(value,callback,12)
+      };
       return {
         form: {
           region1: '',    //归属
           region2: '',     //填写单类型
           region3: '',      //系统名称
           region4: '',      //医生界面名称
-          region5: '',      //选项之间的链接
-          region6: '0',      //是否可以检索
+          region5: '',      //患者界面名称
+          region6: '',      //填写单界面描述问题名称
           region7: '3',       //性别
           region8: '0',          //最小年龄
           region9: '200',         //最大年龄
-          minNormalVal: '',       //化验正常值最小值
-          maxNormalVal: '',       //化验正常值最大值
-          region12: '1',        //是否为查体推送
-          region13:'',
-          prefix:'',            //前缀
-          suffix:'',            //后缀
+          region12: '0',        //是否为主要内容
+          region13:'',          //上传图片
           isNeedSearch: false, //是否需要查询(系统名称)
         },
-        imgName:'',
-        imgUrl:'',
-        uploadUrl:config.urls.uploadImg,
+        //imgName:'',
+        uploadUrl:config.urls.uploadImg,        //图片上传地址
         labelTypesMaps: {       // 归属和填写单类型限制
           '1':['1','2','3','5', '6','7'], //症状情况
           '51':['1','2','3','4','5', '6','7'],    //诊疗情况
@@ -260,20 +267,25 @@
             { required: true, message: '请选择归属', trigger: 'change' }
           ],
           region2: [
-            { required: true, message: '请选择填写单类型', trigger: 'change' }
+            { required: true, message: '请选择类型', trigger: 'change' }
           ],
           region3: [
             { required: true, message: '请输入填写单系统名称', trigger: 'change' },
             { validator: validatePass2, trigger: 'blur' },
           ],
           region4: [
-            { required: true, message: '请输入填写单界面名称', trigger: 'change' },
-            { validator: validatePass1, trigger: 'blur' },
+            { required: true, message: '请输入填写单医生界面名称', trigger: 'change' },
+            { validator: validatePass11, trigger: 'blur' },
+          ],
+          region5: [
+            { required: true, message: '请输入填写单患者界面名称', trigger: 'change' },
+            { validator: validatePass12, trigger: 'blur' },
           ],
           region6: [
-            { required: true, message: '请输入能否当项目检索', trigger: 'change' }
+            { required: true, message: '请输入填写单界面描述名称', trigger: 'change' },
+            { validator: validatePass1, trigger: 'blur' },
           ],
-          region7: [
+          /*region7: [
             { required: true, message: '请选择性别', trigger: 'change' }
           ],
           region8: [
@@ -281,19 +293,15 @@
           ],
           region9: [
             { required: true, message: '请输入最大年龄', trigger: 'change' }
-          ],
+          ],*/
           region12: [
-            { required: true, message: '请选择是否为查体', trigger: 'change' }
+            { required: true, message: '请选择是否为主要内容', trigger: 'change' }
           ],
         },
-        tmpSex: '通用',
-        tmpOwn: '',
-        tmpType: '',
         Adscriptions: [],
         labelTypes: [],
         labelTypesList: [],
         systemNameShow: false,//系统名称列表显示
-        type:'',
         systom:null,      //填写单系统名称存在与否
       }
     },
@@ -327,7 +335,7 @@
     },
     watch: {
       newSex(nextVal, prevVal) {
-        this.tmpSex = prevVal;
+        //this.tmpSex = prevVal;
       },
       newName(nextVal, prevVal) {
         if (this.isNeedSearch && nextVal != prevVal && (this.form.region12 == 0)) {
@@ -337,19 +345,16 @@
     },
     methods: {
       handleRemove(){
-
+        //this.imgName = '';
+        this.region13 = '';
       },
-      beforeRemove(){
-
-      },
-      handleSuccess(response, file, fileList){
+      handleSuccess(response){
         if(response.state==='SUCCESS'){
-          this.imgName = response.title;
-          this.imgUrl = response.url;
+          //this.imgName = response.title;
+          this.form.region13 = '{imageUrlPrefix}'+response.url;
         }else{
           this.warning(response.msg);
         }
-
       },
       getDropList() {
         return api.getPreTypeList().then((res) => {
@@ -362,19 +367,35 @@
       },
       validateSystomName(name,callback,flg) {
         if(flg == 1){
-          let tmpVal = this.form.region4;
+          let tmpVal = this.form.region6;
           if(tmpVal.trim() == ''){
-            callback(new Error('填写单界面名称不能为空'));
+            callback(new Error('填写单界面描述名称不能为空'));
           }else{
-            this.form.region4 = tmpVal.trim()
+            this.form.region6 = tmpVal.trim();
             callback();
           }
         }else if(flg == 2){
-          let tmpVal = this.form.region3
+          let tmpVal = this.form.region3;
           if(tmpVal.trim() == ''){
             callback(new Error('填写单系统名称不能为空'));
           }else{
-            this.form.region3 = tmpVal.trim()
+            this.form.region3 = tmpVal.trim();
+            callback();
+          }
+        }else if(flg == 11){
+          let tmpVal = this.form.region4;
+          if(tmpVal.trim() == ''){
+            callback(new Error('填写单医生界面名称不能为空'));
+          }else{
+            this.form.region4 = tmpVal.trim();
+            callback();
+          }
+        }else if(flg == 12){
+          let tmpVal = this.form.region5;
+          if(tmpVal.trim() == ''){
+            callback(new Error('填写单患者界面名称不能为空'));
+          }else{
+            this.form.region5 = tmpVal.trim();
             callback();
           }
         }
@@ -469,10 +490,6 @@
         })
       },
       initForm() {
-        this.form.prefix = ''
-        this.form.suffix = ''
-        this.form.minNormalVal = ''
-        this.form.maxNormalVal = ''
         this.form.region5 = ''
         this.form.region12 = '1'
       },
@@ -558,5 +575,8 @@
     .el-upload-list{
         float: left;
     }
+    .upload-hide .el-upload--picture{
+        display: none;
+    }
 </style>
 

+ 55 - 26
src/components/preTreat/PubSelect.vue

@@ -2,31 +2,40 @@
     <div class="single-container">
         <el-form>
             <div class="operation-row">
-                <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="type!=2&&(focusOn==i||(focusOn==-1&&i==0))" :key="1+i" v-model="rows[i].defaultSelect" @change="emitValues(i,'hasDefault',rows[i].defaultSelect)">
-                    <el-checkbox-button  v-if=" !(ascription == 5 && type == 1 || type == 2 || type == 11) " :label="i" :disabled="hasNone==i||hasBan==i|| hasError==i || (hasDefault!=-1&&hasDefault!=i)||focusOn==-1">默认选中</el-checkbox-button>
+                <el-checkbox-group size="small"  v-if="type==2">
+                    <el-checkbox-button :label="0">文字输入框占位符</el-checkbox-button>
                 </el-checkbox-group>
-                <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="type!=1&&(focusOn==i||(focusOn==-1&&i==0))" :key="2+i" v-model="rows[i].isNone" @change="emitValues(i,'hasNone',rows[i].isNone)">
-                    <el-checkbox-button  v-if=" !(ascription == 5 && type == 1 || type == 11)" :label="i" :disabled="rows[i].isBan || hasError==i ||focusOn==-1">同“无”类型</el-checkbox-button>
+                <el-checkbox-group size="small"  v-if="type==2">
+                    <el-checkbox-button :label="0">数字输入框占位符</el-checkbox-button>
                 </el-checkbox-group>
-                <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="type!=1&&(focusOn==i||(focusOn==-1&&i==0))" :key="3+i" v-model="rows[i].isBan" @change="emitValues(i,'hasBan',rows[i].isBan)">
-                    <el-checkbox-button v-if=" !(ascription == 5 && type == 1 || type == 11)" :label="i" :disabled="rows[i].isNone || hasError==i||focusOn==-1">同“伴”类型</el-checkbox-button>
-                </el-checkbox-group>
-                <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="focusOn==i||(focusOn==-1&&i==0)" :key="4+i" v-model="rows[i].isError" @change="emitValues(i,'hasError',rows[i].isError)">
-                    <el-checkbox-button v-if="ascription==5 && (type == 1 || type != 11)" :label="i" :disabled="hasDefault==i||hasBan==i ||hasNone==i ||focusOn==-1">标记异常选项</el-checkbox-button>
+                <el-checkbox-group size="small">
+                    <el-checkbox-button :label="0">互斥项</el-checkbox-button>
                 </el-checkbox-group>
                 <span v-if="type == 11" class="tip">可输入中文全角括号"()", 当作可输入内容的占位符</span>
                 <el-button type="danger" size="small" class="del" @click="delRow">删除</el-button>
 
             </div>
             <div class="main-area">
+                <el-col class="col-title">
+                    <span><i>*</i>填写单医生界面展示标准内容</span>
+                    <span>填写单医生界面展示通俗内容</span>
+                </el-col>
                 <el-col v-for="(it,i) in rows" :key="i">
-                    <el-input v-model="rows[i].name"
-                              v-bind:class="{select:focusOn==i}"
-                              @focus="selectRow(i)"
-                              ref = "inputName"
-                              @input="HandleInputName(i, rows[i].name)"
-                              @blur="emitValues"></el-input>
-                    <el-tag type="info" size="mini" v-if="showTag(it)">{{showTag(it)}}</el-tag>
+                    <div class="inps">
+                        <el-input v-model="rows[i].name"
+                                  v-bind:class="{select:focusOn==i}"
+                                  @focus="selectRow(i)"
+                                  ref = "inputName"
+                                  @input="HandleInputName(i, rows[i].name)"
+                                  @blur="emitValues"></el-input>
+                        <el-input v-model="rows[i].description"
+                                  v-bind:class="{select:focusOn==i}"
+                                  @focus="selectRow(i)"
+                                  ref = "inputName"
+                                  @input="HandleInputName(i, rows[i].name)"
+                                  @blur="emitValues"></el-input>
+                     </div>
+                    <el-tag v-if="it.isExclu" type="info" size="mini">互斥项</el-tag>
                 </el-col>
                 <el-button @click="addRow">+</el-button>
             </div>
@@ -67,23 +76,43 @@
     }
     }
     .main-area{
-        width: 290px;
+        width: 420px;
         margin:20px 150px;
+    .inps{
+        display: inline-block;
+        width: calc(100% - 60px);
+    }
     .el-tag{
         margin-left: 10px;
     }
+    .col-title{
+        margin-bottom:10px;
+        span{
+            display: inline-block;
+            width: 210px;
+            font-size:12px;
+            i{
+                color: #f56c6c;
+                margin-right: 3px;
+            }
+        }
+    }
     .el-col .el-input {
-        width: 200px;
+        width: 50%;
         display: inline-block;
-    &.select{
-    input{
-        border-color: @adminBase;
-    }
-    }
+        .el-input__inner{
+            border-radius: 0;
+        }
+        &.select{
+        input{
+            border-color: @adminBase;
+        }
+      }
     }
 
     .el-button{
-        width: 200px;
+        width: calc(100% - 60px);
+        border-radius: 0;
     }
     }
 </style>
@@ -94,8 +123,8 @@
     props:['type','options','ascription','sexType'],
     data(){
       return {
-        maps:{isBan:'同“伴”',isNone:'同“无”',defaultSelect:'默认选中',isError:'异常选项'},
-        rows:[{name:'',defaultSelect:'',isBan:'',isNone:'',isError:''},{name:'',defaultSelect:'',isBan:'',isNone:'',isError:''},{name:'',defaultSelect:'',isBan:'',isNone:'',isError:''},{name:'',defaultSelect:'',isBan:'',isNone:'',isError:''}],
+        //maps:{isBan:'同“伴”',isNone:'同“无”',defaultSelect:'默认选中',isError:'异常选项'},
+        rows:new Array(4).fill({name:'',description:'',isExclu:false}),
         focusOn:-1
       }
     },

+ 213 - 204
src/components/preTreat/SimpleQuestion.vue

@@ -1,182 +1,208 @@
 <template>
-    <div class="NoiseTemplateWrapper TemplateWrapper">
-        <crumbs
-                :title="txt"
-                class="topBack"
-                linkTo="/admin/LT-YWZSJWH-DLTXDWH"
-        ></crumbs>
-        <PubIndeptQa
-                @changeVal="changeVal"
-                @changeSex="changeSex"
-                @changeType="changeType"
-                @validatePass="validatePass"
-                :editData="editData"
-                ref="submitForm"
-        ></PubIndeptQa>
-        <div class="main">
-            <p class="title" v-if="dataPub.region2==1||dataPub.region2==2|| dataPub.region2==11">
-                <i>*</i> 填写单明细:
-                <i v-if='dataPub.region2==2' style="margin-left:70px;color: #22ccc8; font-size: 12px;">所有选项必须都有或者都没有同“伴”/“无”标记</i>
-            </p>
-            <PubSelect v-if="dataPub.region2==1 || dataPub.region2==2 || dataPub.region2==11" :ascription="dataPub.region1" :sexType="dataPub.region7" :type="dataPub.region2" @pushValues="pushValues" :options="editData.questionDetailList"></PubSelect>
-            <div class="btn">
-                <el-button
-                        type="primary"
-                        @click="submitForm"
-                >确 定</el-button>
-            </div>
+    <div>
+        <crumbs title="独立填写单维护">
+            <el-form :inline="true" class="demo-form-inline">
+                <el-form-item label="归属:">
+                    <el-select size="mini" v-model="filter.tagAdscription" @change="getValue"  placeholder="归属" clearable>
+                        <el-option v-if="item.val!=6&&item.val!=7&&item.val!=8&&item.val!=9&&item.val!=10&&item.val!=21&&item.val!=22" v-for="item in Adscriptions" :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.controlType[0]" placeholder="类型" clearable>
+                        <el-option v-for="item in tagTypes" :label="item.name" :value="item.val" :key="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="填写单系统名称:">
+                    <el-input size="mini" v-model="filter.tagSysName" placeholder="填写单系统名称" clearable></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button size="mini" @click="filterDatas">确认</el-button>
+                    <el-button size="mini" type="warning" @click="addIndeptTag">添加独立填写单</el-button>
+                </el-form-item>
+            </el-form>
+        </crumbs>
+        <div class="contents">
+            <el-table
+                    :data="list"
+                    border
+                    style="width: 100%">
+                <el-table-column
+                        :resizable = "false"
+                        type="index"
+                        :index = 'indexMethod'
+                        label="编号"
+                        width="60">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="gmtModified"
+                        label="操作时间"
+                        width="180">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="tagName"
+                        label="填写单系统名称">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="typeCn"
+                        label="归属"
+                        width="80">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="tagTypeCn"
+                        label="类型">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="modifier"
+                        label="操作人"
+                        width="120">
+                </el-table-column>
+                <el-table-column
+                        :resizable = "false"
+                        prop="operate"
+                        label="操作"
+                        width="120">
+                    <template slot-scope="scope">
+                        <el-button  @click="modifyIndeptTag(scope.row)" type="text" size="small">修改</el-button>
+                        <span style="margin:0 3px;">|</span>
+                        <el-button @click="showDelDialog(scope.row)" class="delete" type="text" size="small">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination v-if="total>pageSize"
+                           :current-page.sync="currentPage"
+                           @current-change="currentChange"
+                           background
+                           :page-size="pageSize"
+                           layout="total,prev, pager, next, jumper"
+                           :total="total">
+            </el-pagination>
         </div>
     </div>
 </template>
+
 <script>
-  /**
-   * dataPub.region2  判断底部显示哪些
-   */
-  import PubIndeptQa from './PubIndeptQa';
-  import PubSelect from './PubSelect';
-  import api from '@api/icss.js';
-  import utils from '@api/utils.js';
+  import api from '@api/preTreat.js';
 
   export default {
-    name: 'addSimpleQuestion',
-    data() {
+    name: 'simpleQuestion',
+    data: function() {
       return {
-        txt:'独立填写单维护-添加独立填写单',
-        dataPub: {},      //公用组件传的值都在这
-        itemsTypes:[1,2],            //有明细的类型
-        editData:{},                    //编辑数据
-        form: {
-          currentOrder: '0',     //标签成文顺序
-        },
-        rules: {
-          currentOrder: [
-            { required: true, message: '选择标签成文顺序', trigger: 'change' }
-          ]
+        list: [],
+        tagTypes: [],
+        Adscriptions: [],
+        tagTypesList:[],
+        filter: {
+          tagType: [], //标签类型
+          controlType: [],
+          tagAdscription: '', //标签归属
+          tagSysName: '', //标签系统名称
         },
-        options: [],           //标签明细右侧操作数据
-      }
-    },
-    beforeMount:function(){
-      const {isEdit,data} = this.$route.params;
-      if(isEdit){
-        this.txt = '独立填写单维护-修改独立填写单'
-        this.editData = data;
+        currentPage: 1,
+        pageSize: 10,
+        total: 0,
       }
     },
-    computed: {
-      newSign() {
-        return this.dataPub.region2;
-      },
-    },
-    watch: {
-      newSign(nextVal, prevVal) {
-        if (nextVal != prevVal) {
-          this.form.currentOrder = '0'
-        }
-      },
+    created() {
+      this.getDropList();
     },
     methods: {
-      back() { this.$router.go(-1) },
-      changeVal(val) {    //子组件数据改变传递到父组件
-        this.dataPub = val
-        console.log('公用组件传的值都在这', val)
+      getValue(val) {
+        console.log('changeVal', val, this.filter.tagAdscription)
       },
-      changeSex(sex) {       //性别改变,清空填写单明细
-        //console.log(sex)
+      getDropList() {
+        api.getPreTypeList().then((res) =>{
+          this.getDataList();
+          if(res.data.code === '0') {
+            this.Adscriptions = res.data.data[1];
+            this.tagTypes =  res.data.data[2];
+            this.tagTypes =  this.tagTypes.filter(item => item.val != 0)  //去掉名称为默认值的填写单类型
+
+          }
+
+        })
       },
-      changeType(type) {        //填写单类型改变,标签明细左侧更新,右侧清空
-        // console.log('type',type)
-        this.options = [];
+      getDataList() {
+        const param = this.getFilterItems();
+        api.getQuestionList(param).then((res) => {
+          const list = [...res.data.data.records];
+          for (var i = 0; i < list.length; i++) {
+            for (var j =  0; j < this.tagTypes.length; j++) {
+              if(list[i].controlType == this.tagTypes[j].val) {
+                list[i].tagTypeCn = this.tagTypes[j].name;
+              }
+            }
+            //后台数据typeCn转换为筛选中对应的字段名称
+            for (var z =  0; z < this.Adscriptions.length; z++) {
+              if(list[i].type == this.Adscriptions[z].val) {
+                list[i].typeCn = this.Adscriptions[z].name;
+              }
+            }
+          }
+          this.list = list;
+          this.total = res.data.data.total;
+        })
       },
-      pushValues(its){
-        this.options = its;
+      filterDatas() {
+        this.currentPage = 1;
+        this.getDataList();
       },
-      submitForm() {      // 调用子组件的方法验证公用部分
-        this.$refs.submitForm.submitForm('groups');
+      addIndeptTag() {
+        this.$router.push({path:'LT-YWZSJWH-TJDLTXD'})
       },
-      validatePass() {      //验证成功回调,调取接口
-        //仍需验证填写单明细是否选择
-        let isNull = true
-        let options2 = []
-        const opts = this.options;
-        for (let i = 0; i < this.options.length; i++) {
-          if(this.options[i].name.trim() != '') {
-            isNull = false
-            options2.push(this.options[i])
-          }
-        }
-        this.options = options2;
-        if(this.itemsTypes.includes(+this.dataPub.region2)&&isNull) {
-          this.warning('至少填一个选项')
-          return;
-        }
-        let flag=true;
-        if(opts[0] && opts[0].code){
-          flag=opts.findIndex((it)=>{
-            return !it.code;
-          })==-1;
-        }else{
-          flag=opts.findIndex((it)=>{
-            return it.code;
-          })==-1;
-        }
-        if(!flag){
-          this.warning('所有选项必须都有或者都没有同“伴”/“无”标记')
-          return;
-        }
-        if(parseFloat(this.dataPub.region8) >= parseFloat(this.dataPub.region9)) {
-          this.warning('最小年龄不能大于或等于最大年龄')
-          return;
-        }
-        if(parseFloat(this.dataPub.minNormalVal) >= parseFloat(this.dataPub.maxNormalVal)) {
-          this.warning('最小正常值不能大于或等于最大正常值')
-          return;
-        }
-        const {isEdit,data} = this.$route.params;
-        let param = {
-          "questionWrapper": {
-            "controlType": this.dataPub.region2,                            //控件类型(0:默认值 1:下拉单选 2:下拉多选 6:文本框 7:数字键盘文本框 99:联合推送)
-            "id": isEdit?data.id:'',                                    //新增id置空
-            "type": this.dataPub.region1,                //填写单归属
-            "tagType": 1,             //填写单类型
-            "tagName": this.dataPub.region3,             //系统名称
-            "name": this.dataPub.region4,                //界面名称
-            "joint": this.dataPub.region5,               //标签间的连接符
-            // "subType": this.dataPub.region6,   	         //0:可以,1:不可以(当项目检索)  //这个字段暂时不用
-            "sexType": this.dataPub.region7,             //1:男,2:女,3:通用
-            "ageBegin": this.dataPub.region8,       		 //最小年龄
-            "ageEnd": this.dataPub.region9,              //最大年龄
-            "textGenerate": this.form.currentOrder,      //成文顺序 默认0
-            "copyType": this.dataPub.region2 == 6 ? this.dataPub.region10 : (this.dataPub.region2 == 3 ? this.dataPub.region11 : ''),                               //是否复制
-            "showAdd": 0,                                //是否显示加号血压
-            "itemType" :this.dataPub.region12,
-            "showInfo": 0,
-            "labelPrefix":this.dataPub.prefix,                                 //前缀
-            "labelSuffix":this.dataPub.suffix,                                 //后缀
-            "minValue": this.dataPub.minNormalVal,        //化验最小正常值
-            "maxValue": this.dataPub.maxNormalVal,         //化验最大正常值
-            "questionDetails": this.options,
-            "questionMappings": [],      //映射关系,
-            "formulaCode": isEdit?data.formulaCode : ''
+      modifyIndeptTag(row) {
+        api.detailsTag({id:row.id}).then((res)=>{
+          const {code,data,msg} = res.data;
+          if(code=='0'){
+            const item = Object.assign({},row,data);
+            this.$router.push({name:'addSimpleQuestion',params:{isEdit:true,data:item}});
+          }else{
+            this.$message({
+              message: msg,
+              type: 'warning'
+            });
           }
+        });
+        //this.$router.push({name:'AddIndeptLabel',params:{isEdit:true,data:row}});
+      },
+      currentChange(next) {
+        this.currentPage = next;
+        this.getDataList();
+        // if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+        //     this.list = this.cacheData[next];
+        // } else {
+        //     this.getDataList();
+        // }
+      },
+      getFilterItems() {
+        const param = {
+          tagTypeList: [1],
+          current: this.currentPage,
+          size: this.pageSize,
+          type: this.filter.tagAdscription,
+          tagName: this.filter.tagSysName,
+          controlTypeList: this.filter.controlType[0] ? this.filter.controlType: []
         };
-        this.showSaveDialog(param);
+        return param;
       },
-      showSaveDialog(param) {
-        this.showConfirmDialog('是否保存该填写单?', () => {
-          api.saveOrUpdate(param).then((res) => {
-            if (res.data.code === '0') {
-              this.warning(res.data.msg || '保存成功', 'success');
-              this.$router.push("/admin/LT-YXSJWH-DLLXBQWH");
-            } else {
-              this.warning(res.data.msg)
-            }
-          }).catch((err) => {
-            this.warning(err);
-          })
-        });
+      indexMethod(index) {
+        return ((this.currentPage - 1) * this.pageSize) + index + 1;
+      },
+      getTagType(val) {
+        return val
       },
-      showConfirmDialog(msg, resolve) {
+      warning(msg,type){
+        this.$message({
+          showClose: true,
+          message:msg,
+          type:type||'warning'
+        })
+      },
+      showConfirmDialog(msg,resolve){
         this.$alert(msg, '提示', {
           confirmButtonText: '确定',
           type: 'warning'
@@ -184,58 +210,41 @@
           resolve();
         }).catch(() => {});
       },
-      warning(msg, type) {
-        this.$message({
-          showClose: true,
-          message: msg,
-          type: type || 'warning'
-        })
-      },
-    },
-    components: {
-      PubIndeptQa,
-      PubSelect
+      showDelDialog(row){
+        const param = {
+          "ids": row.id,
+          "type": row.type
+        };
+        this.showConfirmDialog('是否删除该填写单?',()=>{
+          api.questionDel(param).then((res)=>{
+            if(res.data.code=='0'){
+              this.getDataList();
+              this.warning(res.data.msg || '操作成功','success');
+            }else{
+              this.warning(res.data.msg);
+            }
+          }).catch((error)=>{
+            this.warning(error);
+          })
+        });
+      }
     }
   }
 </script>
+
+
 <style lang="less">
-    @import "../../less/common.less";
-    .NoiseTemplateWrapper {
-    .groupTitle {
-        background-color: #fff;
-        height: 40px;
-        line-height: 40px;
-        padding-left: 20px;
-    }
-    .main {
-        background-color: #fff;
-        margin: 0 20px 20px;
-        padding: 20px;
-        border-top: 1px solid @icssBorder;
-        box-sizing: border-box;
-        font-size: 14px;
-        color: #606266;
-    .title {
-        margin-bottom: 20px;
-    i {
-        color: #f56c6c;
+    @import "../../less/admin.less";
+    .delete{
+        color: red
     }
+    .delete:hover {
+        color: red;
     }
+    .el-select .el-input .el-icon-arrow-up{
+        display: inline-block!important;
     }
-    .btn {
-        text-align: right;
+    .el-select .el-input .el-icon-circle-close{
+        float:left;
     }
-    .order {
-        margin-bottom: 20px;
-    .el-input__inner {
-        line-height: 30px;
-        height: 30px;
-    }
-    }
-    }
-    .toast-cancel{
-        color: #22ccc8 !important;
-    // background: #22ccc8;
-    }
-</style>
-
+</style>

+ 1 - 1
vue.config.js

@@ -1,6 +1,6 @@
 const path = require('path');
 // const proxy_path = 'http://192.168.2.236:80';
-const proxy_path = 'http://192.168.2.241:88';
+const proxy_path = 'http://192.168.2.236:88';
 // const proxy_path = 'http://192.168.2.236:88';
 // const proxy_path = 'http://192.168.3.101:5050';
 // const proxy_path = 'http://192.168.3.117:5050';//周铁刚