Browse Source

模板修改未对接

zhouna 6 years ago
parent
commit
28e9f13234

+ 132 - 60
src/components/preTreat/AddQuestionModules.vue

@@ -5,20 +5,84 @@
                 class="topBack"
                 linkTo="/admin/LT-YWZSJWH-MBWH"
         ></crumbs>
-        <PubIndeptQa
-                @changeVal="changeVal"
-                @changeSex="changeSex"
-                @changeType="changeType"
-                @validatePass="validatePass"
-                qaType="2"
-                :editData="editData"
-                ref="submitForm"
-        ></PubIndeptQa>
+        <div class="PubTagGroupWrapper">
+        <el-form class="groups"
+                :rules="rules"
+                ref="groups"
+                :model="form"
+                label-width="150px">
+            <el-form-item
+                    label="模板类型:"
+                    prop="moduleType">
+                <span class="changeTips">改变类型后,填写单明细将会恢复到默认状态</span>
+                <el-select
+                        v-model="form.moduleType"
+                        placeholder="请选择模板类型"
+                        @change="changeType(1)"
+                >
+                    <el-option
+                            v-for="item in moduleTypes"
+                            :label="item.name"
+                            :value="item.val"
+                            :key="item.id"
+                    ></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item
+                    label="模板归属:"
+                    prop="type"
+            >
+                <span class="changeTips">改变归属后,填写单明细将会恢复到默认状态</span>
+                <el-select
+                        v-model="form.type"
+                        placeholder="请选择模板归属"
+                        @change="changeType(0)"
+                >
+                    <el-option
+                            v-for="item in typeList"
+                            :label="item.name"
+                            :value="item.val"
+                            :key="item.id"
+                    ></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item
+                    v-if="form.moduleType==1"
+                    label="选择科室:"
+                    prop="relationId">
+                <span class="changeTips">改变类型后,填写单明细将会恢复到默认状态</span>
+                <el-select
+                        v-model="form.relationId"
+                        placeholder="请选择科室"
+                >
+                    <el-option
+                            v-for="item in deptList"
+                            :label="item.name"
+                            :value="item.val"
+                            :key="item.id"
+                    ></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item
+                    label="模板名称:"
+                    prop="name"
+            >
+                <el-input
+                        v-model="form.name"
+                        maxLength="30"
+                        placeholder="请输入模板名称"
+                ></el-input>
+            </el-form-item>
+            <el-form-item label="备注:">
+                <el-input type="textarea" v-model="form.desc"></el-input>
+            </el-form-item>
+        </el-form>
+    </div>
         <div class="main">
             <p class="title">
                 填写单明细:
             </p>
-            <QuestionTagGroup :ascription="dataPub.region1" :sexType="dataPub.region7" :type="dataPub.region2" @changeActionData="pushValues" :options="editData.questionMapping"></QuestionTagGroup>
+            <QuestionTagGroup :type="form.moduleType" @changeActionData="pushValues" :options="editData.modelDetils"></QuestionTagGroup>
             <div class="btn">
                 <el-button
                         type="primary"
@@ -30,92 +94,98 @@
 </template>
 <script>
   /**
-   * dataPub.region2  判断底部显示哪些
+   *
    */
-  import PubIndeptQa from './PubIndeptQa';
   import QuestionTagGroup from './QuestionTagGroup';
   import api from '@api/preTreat.js';
   import utils from '@api/utils.js';
 
   export default {
     name: 'addCombinQuestion',
+    props:[''],
     data() {
       return {
         txt:'模板维护-添加模板',
-        imgList:[],
-        dataPub: {},      //公用组件传的值都在这
-        itemsTypes:[1,2],            //有明细的类型
+        form:{
+          name:"",
+          type:"",
+          moduleType:"",
+          relationId:"",
+          remark:''
+        },
+        typeList:[],
+        moduleTypes:[],
+        deptList:[],
         editData:{},                    //编辑数据
         options: [],           //标签明细右侧操作数据
+        rules: {
+          type: [
+            { required: true, message: '请选择归属', trigger: 'change' }
+          ],
+          moduleType: [
+            { required: true, message: '请选择类型', trigger: 'change' }
+          ],
+          name: [
+            { required: true, message: '请输入模板名称', trigger: 'change' }
+          ],
+          relationId: [
+            { required: true, message: '请选择模板归属科室', trigger: 'change' },
+          ],
+        },
       }
     },
     beforeMount:function(){
       const {isEdit,data} = this.$route.params;
+      this.getDropDatas();
       if(isEdit){
         this.txt = '模板维护-修改模板';
-        this.editData = data;console.log(data)
+        this.editData = data;
       }
     },
     methods: {
       back() { this.$router.go(-1) },
-      changeVal(val) {    //子组件数据改变传递到父组件
-        this.dataPub = val;
-        //console.log('公用组件传的值都在这', val);
-      },
-      changeSex(sex) {       //性别改变,清空填写单明细
-        //console.log(sex)
+      getDropDatas(){
+        api.getPreTypeList().then((res) =>{
+          if(res.data.code === '0') {
+            this.typeList = res.data.data[1];
+            this.moduleTypes =  res.data.data[4];
+          }
+        });
+        api.getDeptList({moduleType:0,type:1}).then((res) =>{
+          if(res.data.code === '0') {
+            this.deptList = res.data.data&&res.data.data.deptDTOS||[];
+          }
+        });
       },
-      changeType(type) {        //填写单类型改变,标签明细左侧更新,右侧清空
+      changeType(flag) {        //填写单类型改变,标签明细左侧更新,右侧清空
         // console.log('type',type)
+        if(flag){
+          this.form.type='';
+        }
         this.options = [];
       },
       pushValues(its){
-        const arr = its.map((it,i)=>{
+        const arr = its.map((it)=>{
           return {
-            sonQuestion:it.id,
-            orderNo:+i+1,
-            exclusionType:0
+            questionId:it.id,
           }
         });
         this.options = arr;
       },
       submitForm() {      // 调用子组件的方法验证公用部分
-        this.$refs.submitForm.submitForm('groups');
-      },
-      validatePass() {      //验证成功回调,调取接口
-        //仍需验证填写单明细是否选择
-        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": this.dataPub.region2,             //模板类型
-            "tagName": this.dataPub.region3,             //系统名称
-            "name": this.dataPub.region4,                //医生界面名称
-            "description":this.dataPub.region5,
-            "sexType": this.dataPub.region7,             //1:男,2:女,3:通用
-            "ageBegin": this.dataPub.region8,       		 //最小年龄
-            "ageEnd": this.dataPub.region9,              //最大年龄
-            "itemType" :this.dataPub.region12,           //是否为主要内容
-            "url":this.dataPub.region13,                  //上传图片
-            //"questionDetails": this.options,                //明细项
-            "questionMappings": this.options,      //映射关系,
+        this.$refs.groups.validate((valid) => {
+          if (valid) {
+            let param = this.form;
+            param.modelDetils = this.options;
+            this.showSaveDialog(param);
+          }else{
+            return false;
           }
-        };
-        this.showSaveDialog(param);
+        });
       },
       showSaveDialog(param) {
         this.showConfirmDialog('是否保存该模板?', () => {
-          api.questionAdd(param).then((res) => {
+          api.addModule(param).then((res) => {
             if (res.data.code === '0') {
               this.warning(res.data.msg || '保存成功', 'success');
               this.$router.push("/admin/LT-YWZSJWH-MBWH");
@@ -144,13 +214,15 @@
       },
     },
     components: {
-      PubIndeptQa,
       QuestionTagGroup
     }
   }
 </script>
 <style lang="less">
     @import "../../less/common.less";
+    .PubTagGroupWrapper{
+        padding-bottom: 10px;
+    }
     .NoiseTemplateWrapper {
     .groupTitle {
         background-color: #fff;

+ 23 - 22
src/components/preTreat/QuestionModules.vue

@@ -6,18 +6,18 @@
                     <el-input size="mini" v-model="filter.name" placeholder="模板名称" clearable></el-input>
                 </el-form-item>
                 <el-form-item label="归属:">
-                    <el-select size="mini" v-model="filter.ascriptName" @change="getValue"  placeholder="归属" clearable>
+                    <el-select size="mini" v-model="filter.type" @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.mouduleTypeName" placeholder="类型" clearable>
+                    <el-select size="mini" v-model="filter.moduleType" 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-select size="mini" v-model="filter.relationName" @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-form-item label="归属科室:" v-if="filter.moduleType==1">
+                    <el-select size="mini" v-model="filter.relationId" @change="getValue"  placeholder="归属" clearable>
+                        <el-option v-for="item in deptList" :label="item.name" :value="item.conceptId" :key="item.conceptId" ></el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item>
@@ -57,7 +57,7 @@
                 </el-table-column>
                 <el-table-column
                         :resizable = "false"
-                        prop="moduleType"
+                        prop="moduleTypeName"
                         label="模板类型">
                 </el-table-column>
                 <el-table-column
@@ -105,12 +105,12 @@
         list: [],
         tagTypes: [],
         Adscriptions: [],
-        tagTypesList:[],
+        deptList:[],
         filter: {
           name: '', //模板名称
-          ascriptName: '', //模板归属
-          mouduleTypeName: '', //模板类型
-          relationName:'',  //归属科室
+          type: '', //模板归属
+          moduleType: '', //模板类型
+          relationId:'',  //归属科室
         },
         currentPage: 1,
         pageSize: 10,
@@ -129,12 +129,14 @@
           this.getDataList();
           if(res.data.code === '0') {
             this.Adscriptions = res.data.data[1];
-            this.tagTypes =  res.data.data[3];
-            this.tagTypes =  this.tagTypes.filter(item => item.val != 0)  //去掉名称为默认值的填写单类型
-
+            this.tagTypes =  res.data.data[4];
           }
-
-        })
+        });
+        api.getDeptList({moduleType:0,type:1}).then((res) =>{
+          if(res.data.code === '0') {
+            this.deptList = res.data.data&&res.data.data.deptDTOS||[];
+          }
+        });
       },
       getDataList() {
         const param = this.getFilterItems();
@@ -142,7 +144,7 @@
           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) {
+              if(list[i].moduleType == this.tagTypes[j].val) {
                 list[i].tagTypeCn = this.tagTypes[j].name;
               }
             }
@@ -165,7 +167,7 @@
         this.$router.push({path:'LT-YWZSJWH-TJMBWH'});
       },
       modifyModule(row) {
-        api.getModuleDetail({moduleId:row.id}).then((res)=>{
+        api.getModuleDetail({moduleId:row.id,type:row.type}).then((res)=>{
           const {code,data,msg} = res.data;
           if(code=='0'){
             const item = Object.assign({},row,data);
@@ -185,9 +187,9 @@
       getFilterItems() {
         const param = {
           name: this.filter.name,
-          ascriptName:this.filter.ascriptName,
-          mouduleTypeName: this.filter.mouduleTypeName,
-          relationName: this.filter.relationName,
+          type:this.filter.type,
+          moduleType: this.filter.moduleType,
+          relationId: this.filter.moduleType==1?this.filter.relationId:'',
           current: this.currentPage,
           size: this.pageSize,
         };
@@ -217,10 +219,9 @@
       showDelDialog(row){
         const param = {
           "ids": row.id,
-          "type": row.type
         };
         this.showConfirmDialog('是否删除该模板?',()=>{
-          api.addModule(param).then((res)=>{
+          api.delModule(param).then((res)=>{
             if(res.data.code=='0'){
               this.getDataList();
               this.warning(res.data.msg || '操作成功','success');

+ 3 - 29
src/components/preTreat/QuestionTagGroup.vue

@@ -43,7 +43,7 @@
         </ul>
     </div>
     <div class="buttonBox">
-        <div class="bottomPartMid bottomPartMidss fl" :class="(type == 1 && isSymp == 0)?'':'bottomPartMids'">
+        <div class="bottomPartMid bottomPartMidss fl" :class="(type == 1)?'':'bottomPartMids'">
             <p><span class="el-icon-arrow-up" @click="toggleTopDownList(1)"></span></p>
             <p><span class="el-icon-arrow-down" @click="toggleTopDownList(2)"></span></p>
         </div>
@@ -57,7 +57,7 @@ import { constants } from 'fs';
 
 export default {
     name: "QuestionTagGroup",
-    props: ['ascription','type','sexType','options'],
+    props: ['type','sexType','options'],
     data() {
         return {
             leftTagsList: [],
@@ -80,30 +80,13 @@ export default {
         }
     },
     watch: {
-        /*rightTagsList2(newVal, preVal) {
-             //this.pushValues(newVal);
-            this.$emit('pushValues', newVal);
-        },*/
         searchVal(newVal, preVal){
             if(newVal.trim() == ''){
                 this.searchTagList()
             }else if(newVal.trim() != preVal.trim()){
                 this.searchTagList()
             }
-        },/*
-        sexType(newVal, preVal) {
-            if (newVal != preVal) {
-                if (JSON.stringify(newVal) != JSON.stringify(preVal)) {
-                    this.leftTagsList = [];
-                    this.selectLeftTagsList = [];
-                    this.rightTagsList = [];
-                    this.rightTagsList2 = [];
-                    this.selectRightTagsList = [];
-                    this.searchVal = '';
-                    //  this.searchTagList();
-                }
-            }
-        },*/
+        },
     },
     methods: {
         selectLeftTag(tag, index, e) {
@@ -122,12 +105,6 @@ export default {
             }else{
               this.selectRightTagsList = tmpArr;
             }
-            // const hasTag = this.isHasTag(tag, this.selectRightTagsList)
-            // if (hasTag) {
-            //     this.selectRightTagsList = this.selectRightTagsList.filter(item => item.id !== tag.id)
-            // } else {
-            //     this.selectRightTagsList.push(tag);
-            // }
         },
         isHasTag(item, arr) {
             for ( let i = 0; i <arr.length; i++) {
@@ -138,12 +115,9 @@ export default {
             return false;
         },
         getStyle(item){       //左侧选中状态
-            // console.log('selected',utils.filterArr(this.leftTagsList,item,2))
-            // return utils.filterArr(this.selectLeftTagsList,item,2)
             return this.isHasTag(item, this.selectLeftTagsList)
         },
         getStyle2(item) {
-            // return utils.filterArr(this.selectRightTagsList,item,2)
             return this.isHasTag(item, this.selectRightTagsList);
         },
         toggleTopDownList(type){