Переглянути джерело

文本类型修改,单选类型修改未完

zhouna 6 роки тому
батько
коміт
be7cbda8c0

+ 25 - 0
src/api/utils.js

@@ -162,6 +162,31 @@ export default {
       return {name:it.name,defaultSelect:it.defaultSelect?'1':'0',code,remark:'单选项-'+it.name}
     });
     return arr;
+  },
+  /**
+   *将提交的参数转换成对应的组件form中的key
+   *
+   */
+  transformKeys(data){
+    const maps = {
+      "controlType": 'region2',                            //控件类型(0:默认值 1:下拉单选 2:下拉多选 6:文本框 7:数字键盘文本框 99:联合推送)
+      "id": "id",                                    //新增id置空
+      "type": 'region1',                //标签归属
+      "tagName": 'region3',             //系统名称
+      "name": 'region4',                //界面名称
+      "joint": 'region5',               //标签间的连接符
+      "subType": 'region6',   	         //0:可以,1:不可以(当项目检索)
+      "sexType": 'region7',             //1:男,2:女,3:通用
+      "ageBegin": 'region8',       		 //最小年龄
+      "ageEnd": 'region9',              //最大年龄
+      "labelPrefix":'prefix',                                 //前缀
+      "labelSuffix":'suffix'                                 //后缀
+    };
+    let obj = {};
+    for(let it in maps){
+      obj[maps[it]] = typeof data[it]=='number'?data[it]+'':data[it];
+    }
+    return obj;
   }
 }
 

+ 13 - 4
src/components/icss/AddIndeptLabel.vue

@@ -9,11 +9,12 @@
                 @changeSex="changeSex"
                 @changeType="changeType"
                 @validatePass="validatePass"
+                :editData="editData"
                 ref="submitForm"
         ></PubIndeptTag>
         <div class="main">
             <p class="title" v-if="dataPub.region2==1||dataPub.region2==2||dataPub.region2==99"> <i>*</i> 标签明细:</p>
-            <SingleSelect v-if="dataPub.region2==1" :type="dataPub.region2" @pushValues="pushValues"></SingleSelect>
+            <SingleSelect v-if="dataPub.region2==1" :type="dataPub.region2" @pushValues="pushValues" :options="editData.questionDetails"></SingleSelect>
             <div class="btn">
                 <el-button
                         type="primary"
@@ -38,6 +39,7 @@
       return {
         dataPub: {},      //公用组件传的值都在这
         itemsTypes:[1,2,99],            //有明细的类型
+        editData:{},                    //编辑数据
         form: {
           currentOrder: '0',     //标签成文顺序
         },
@@ -49,6 +51,12 @@
         options: [],           //标签明细右侧操作数据
       }
     },
+    beforeMount:function(){
+      const {params} = this.$route;
+      if(params.isEdit){
+        this.editData = params.data;
+      }
+    },
     computed: {
       newSign() {
         return this.dataPub.region2;
@@ -106,8 +114,8 @@
             "copyType": this.dataPub.region2 == 6 ? this.dataPub.region10 : (this.dataPub.region2 == 3 ? this.dataPub.region11 : ''),                               //是否复制
             "showAdd": 0,                                //是否显示加号血压
             "showInfo": 0,
-            "prefix":this.dataPub.prefix,                                 //前缀
-            "suffix":this.dataPub.suffix,                                 //后缀
+            "labelPrefix":this.dataPub.prefix,                                 //前缀
+            "labelSuffix":this.dataPub.suffix,                                 //后缀
             "questionDetails": this.options,
             "questionMappings": []       //映射关系,
           }
@@ -118,7 +126,8 @@
         this.showConfirmDialog('是否保存该标签?', () => {
           api.saveOrUpdate(param).then((res) => {
             if (res.data.code === '0') {
-              this.warning(res.data.msg || '保存成功', 'success')
+              this.warning(res.data.msg || '保存成功', 'success');
+              this.$router.push("/admin/LT-YXSJWH-DLLXBQWH");
             } else {
               this.warning(res.data.msg)
             }

+ 4 - 3
src/components/icss/IndeptLabel.vue

@@ -111,7 +111,7 @@
           console.log('dropList', res)
           if(res.data.code === '0') {
             this.Adscriptions = res.data.data[1];
-            this.tagTypes =  res.data.data[3];
+            this.tagTypes =  res.data.data[6];
             for (var i = 0; i < this.tagTypes.length; i++) {
               this.tagTypesList.push(this.tagTypes[i].val)
             }
@@ -127,7 +127,7 @@
           for (var i = 0; i < list.length; i++) {
             for (var j =  0; j < this.tagTypes.length; j++) {
               if(list[i].tagType === this.tagTypes[j].val) {
-                list[i].tagTypeCn = this.tagTypes[j].name
+                list[i].tagTypeCn = this.tagTypes[j].name;
               }
             }
             for (var z =  0; z < this.Adscriptions.length; z++) {
@@ -149,7 +149,8 @@
       addIndeptTag() {
         this.$router.push({path:'LT-YXSJWH-TJDLBQ'})
       },
-      modifyIndeptTag() {
+      modifyIndeptTag(row) {
+        this.$router.push({name:'AddIndeptLabel',params:{isEdit:true,data:row}});
       },
       currentChange(next) {
         this.currentPage = next;

+ 12 - 5
src/components/icss/PubIndeptTag.vue

@@ -159,6 +159,7 @@
 </template>
 <script>
   import api from '@api/icss.js';
+  import utils from '@api/utils.js';
   /**
    * titlePar 顶部显示左(有默认值可不填)
    * titleSub  顶部显示右(有默认值可不填)
@@ -170,6 +171,7 @@
    */
 
   export default {
+    props:['editData'],
     data() {
       var validatePass2 = (rule, value, callback) => {
         this.validateSystomName(value,callback)
@@ -188,7 +190,6 @@
           region12:'',
           prefix:'',            //前缀
           suffix:'',            //后缀
-          order:[],            //排序方式
           tipLis:[],           //提示列表
         },
         rules: {
@@ -224,7 +225,6 @@
         Adscriptions: [],
         labelTypes: [],
         labelTypesList: [],
-        tagTypes: [],        //标签池数据
         type:'',
         systom:null,      //标签系统名称存在与否
       }
@@ -241,9 +241,17 @@
       },
     },
     mounted() {
+      //编辑时赋值
+      const editData = this.$props.editData;
+      if(editData.id){
+        const trans = utils.transformKeys(editData);
+        this.form = Object.assign({},this.form,trans);
+      }
+
       this.$emit('submitForm', 'groups', false);
       this.getDropList();
-      this.$emit('changeVal', this.form, false)
+      this.$emit('changeVal', this.form, false);
+
     },
     watch: {
       newSex(nextVal, prevVal) {
@@ -256,7 +264,6 @@
           if (res.data.code === '0') {
             this.Adscriptions = res.data.data[1];
             this.labelTypes = res.data.data[6];
-            this.form.order = res.data.data[5];
             this.form.tipLis = res.data.data[6];
           }
         })
@@ -277,7 +284,7 @@
           }
         })
       },
-      sendData() {console.log(this.form.region2)
+      sendData() {
         this.$emit('changeVal', this.form, false)
       },
       changeType(type){

+ 5 - 2
src/components/icss/SingleSelect.vue

@@ -79,7 +79,7 @@
 <script>
   import utils from '@api/utils.js';
     export default {
-      props:['type'],
+      props:['type','options'],
       data(){
         return {
           maps:{isBan:'同“伴”',isNone:'同“无”',defaultSelect:'默认选中'},
@@ -87,6 +87,9 @@
           focusOn:-1
         }
       },
+      mounted(){
+        console.log(this.$props.options)
+      },
       computed:{
         showTag:function(){
           return function(it){
@@ -99,7 +102,7 @@
         hasDefault:function(){               //是否有选项默认选中
           let index =this.rows.findIndex((it)=>{
             return it.defaultSelect;
-          });console.log(index)
+          });
           return index;
         },
         hasNone:function(){                 //是否有选项同无