Bläddra i källkod

模板维护修改

Luolei 6 år sedan
förälder
incheckning
f928587957

+ 70 - 28
src/components/icss/CommonTemplate.vue

@@ -37,7 +37,22 @@
         ></span></p>
     </div>
     <div class="bottomPartRight bottomPartRightTemplate">
-      <p class="poolTitle poolTitleTmp">模板内容:</p>
+      <p class="poolTitle poolTitleTmp">模板内容:
+        <span style="color:#22ccc8;fontSize:12px" v-if="type == 1 || type == 2 || type == 3">主诉中的主/伴症状,引用到现病史中显示的位置和现病史中添加其他症状显示的位置</span>
+        <span style="color:#22ccc8;fontSize:12px" v-if="type == 5">特殊标记1-只可放入主诉模块中,放入其他模块数据会显示异常;特殊标记4-只可放入现病史模块中,放入其他模块数据会显示异常;</span>
+      </p>
+        <div v-if="type == 5">
+          <span style="marginLeft:10px;">
+            <el-button v-if="flagLisFst == 1" type="primary" class="flagStyle" size="mini" @click="addFlg(1)" :disabled="flagLisSec == 4">1、标示主诉中添加症状展示位置</el-button>
+            <el-button v-else class="flagStyle" size="mini" @click="addFlg(1)" :disabled="flagLisSec == 4">1、标示主诉中添加症状展示位置</el-button>
+          </span>
+          <span style="marginLeft:10px;">
+            <el-button style="marginTop:3px;" v-if="flagLisSec == 4" type="primary" class="flagStyle" size="mini" @click="addFlg(4)" :disabled="flagLisFst == 1">4、标示在主诉中症状引用到现病史中展示位置
+  和添加症状位置</el-button>
+            <el-button style="marginTop:3px;" v-else class="flagStyle" size="mini" @click="addFlg(4)" :disabled="flagLisFst == 1">4、标示在主诉中症状引用到现病史中展示位置
+  和添加症状位置</el-button>
+          </span>
+        </div>
       <div class="arrowWrap" style="float:right;marginRight:10px" v-if="type != 1 && type != 2 && type != 3">
         <el-button size="mini" @click="addDomTemplate(1)">插入输入栏</el-button>
         <i class="el-icon-arrow-left arrowWrapPub" @click="moveTag(0)"></i>
@@ -67,13 +82,15 @@
               <el-button size="mini" class="normal" @click="addDomTemplate(0,'submitForm')">添加</el-button>
               <el-button size="mini" class="normal" @click="delSubTemplate">删除子模板</el-button>
               <el-button size="mini" class="normal" @click="addDomTemplate(1)">插入输入栏</el-button>
-              <span v-if="type == 1">
-                <el-button v-if="flagLisFst == 1" type="primary" class="flagStyle" size="mini" @click="addFlg(1)">插入选择症状模块</el-button>
-                <el-button v-else class="flagStyle" size="mini" @click="addFlg(1)">插入选择症状模块</el-button>
+              <span v-if="type == 1" style="marginLeft:10px;">
+                <el-button v-if="flagLisFst == 1" type="primary" class="flagStyle" size="mini" @click="addFlg(1)">1、标示主诉中添加症状展示位置</el-button>
+                <el-button v-else class="flagStyle" size="mini" @click="addFlg(1)">1、标示主诉中添加症状展示位置</el-button>
               </span>
-              <span v-if="type == 2 || type == 3">
-                <el-button v-if="flagLisSec == 4" type="primary" class="flagStyle" size="mini" @click="addFlg(4)">插入从主诉中获取的伴/无症状模块</el-button>
-                <el-button v-else class="flagStyle" size="mini" @click="addFlg(4)">插入从主诉中获取的伴/无症状模块</el-button>
+              <span v-if="type == 2 || type == 3" style="marginLeft:10px;">
+                <el-button v-if="flagLisSec == 4" type="primary" class="flagStyle" size="mini" @click="addFlg(4)">4、标示在主诉中症状引用到现病史中展示位置
+和添加症状位置</el-button>
+                <el-button v-else class="flagStyle" size="mini" @click="addFlg(4)">4、标示在主诉中症状引用到现病史中展示位置
+和添加症状位置</el-button>
               </span>
               <div class="arrowWrap">
                 <i class="el-icon-arrow-left arrowWrapPub" @click="moveTag(0)"></i>
@@ -81,7 +98,6 @@
               </div>
             </el-form-item>
           </el-form>
-        
       </div>
       <ul class="tagList operationPool templateTagLists">
         <li
@@ -131,6 +147,10 @@ export default {
       default: '',
       type: String
     },
+    sign: {
+      default: '',
+      type: String
+    },
     options: {
       default: () => {},
       type: Object
@@ -184,6 +204,7 @@ export default {
             }
           }
           this.rightTagsList = reviewList
+          this.getFlagList()
         }
         this.$emit('changeActionData', this.rightTagsList, false);
         this.getSubTemplate()
@@ -195,7 +216,6 @@ export default {
   },
   watch: {
     type(newVal, preVal) {
-      this.searchTagList()       //重新获取标签池数据
       if(newVal != preVal){
         this.form = {region: ''}  
         this.subTmpList = []     //子模板的id用于去重
@@ -209,6 +229,22 @@ export default {
         this.flagLisSec = -1
         this.getSubTemplate()      //重新获取子模板
       }
+      this.searchTagList()       //重新获取标签池数据
+    },
+    sign(newVal, preVal) {
+      if(newVal != preVal){
+        this.form = {region: ''}  
+        this.subTmpList = []     //子模板的id用于去重
+        this.leftTagsList = []
+        this.selectLeftTagsList = []
+        this.rightTagsList = []
+        this.selectRightTagsList = []
+        this.selectRightTagsListIndex = []
+        this.searchVal = ''
+        this.flagLisFst = -1
+        this.flagLisSec = -1
+      }
+      this.searchTagList()       //重新获取标签池数据
     },
     searchVal(newVal, preVal) {
       if (newVal.trim() == '') {
@@ -233,30 +269,35 @@ export default {
         }
       }
     },
-    addFlg(idx){
+    addFlg(idx){//添加标记,已经有标记了先去掉标记,再点击才能加上,没有标记的加上标记
       let selectTagFlg = this.selectRightTagsListIndex;
       let tmpSelectRightTagsList = this.selectRightTagsList;
-      let tmpLis = this.rightTagsList.slice()
-      let tmpObj = tmpLis[selectTagFlg[0]];
-      if(selectTagFlg.length == 0 || (tmpSelectRightTagsList && tmpSelectRightTagsList.length>0 && (tmpSelectRightTagsList[0].type == 'input' || tmpSelectRightTagsList[0].type == 'sub'))){
+      let tmpLis = this.rightTagsList;
+      let tmpObj = tmpLis[selectTagFlg[0]],m = 0;
+      if(tmpSelectRightTagsList && tmpSelectRightTagsList.length>0 && (tmpSelectRightTagsList[0].type == 'input' || tmpSelectRightTagsList[0].type == 'sub')){
         return;
       }
-      for(let i = 0;i < tmpLis.length;i++){
-        if(tmpLis[i].flag == idx){
-          if(tmpObj.flag == idx){
-            tmpLis[i].flag = null
-          }else{
-            tmpLis[i].flag = idx
+      for(let i = 0;i < tmpLis.length;i++){//循环右侧所有标签,点击的这个有标记,去掉标记,点击的没有标记,去掉其他标记,标记当前项
+        let tmpLi = tmpLis[i];
+        if(tmpLi.flag == idx){
+          console.log(idx,787878)
+          tmpLi.flag = null
+          idx == 1?(this.flagLisFst = -1):(idx == 4?this.flagLisSec = -1:null)
+          // if(idx == 1){//点的是1
+          //   if(this.flagLisFst == -1){//第一个未被选中
+          //     this.flagLisFst = 1
+          //   }else{
+
+          //   }
+          // }
+        }else{//没有标记,判断是否有选中,选中就加上标记,没有不做处理
+          ++m
+          if((m == tmpLis.length)&& tmpSelectRightTagsList && tmpSelectRightTagsList.length>0){
+            tmpObj.flag = idx
+            idx == 1?(this.flagLisFst = 1):(idx == 4?this.flagLisSec = 4:null)
           }
-        }else{
-          
         }
       }
-      // if(selectTagFlg.length == 0 || (tmpSelectRightTagsList && tmpSelectRightTagsList.length>0 && (tmpSelectRightTagsList[0].flag == '1' || tmpSelectRightTagsList[0].flag == '4'))){
-      //   tmpObj.flag = null
-      // }else{
-      //   tmpObj.flag = idx
-      // }
       this.rightTagsList = [...tmpLis]
       this.getFlagList()
     },
@@ -336,8 +377,8 @@ export default {
     },
     delSubTemplate(){   //删除子模板
       if (this.selectRightTagsList.length>0 && this.selectRightTagsList[0].type === 'sub') {    //删除子模板,输入框或者标签就不变
-        this.rightTagsList = this.rightTagsList.filter(item => item.id !== this.selectRightTagsList[0].id)
-        this.subTmpList = this.subTmpList.filter(item => item.id !== this.selectRightTagsList[0].id)  //选中的子模板id去掉
+        this.rightTagsList = this.rightTagsList.filter(item => item.id != this.selectRightTagsList[0].id)
+        this.subTmpList = this.subTmpList.filter(item => item != parseInt(this.selectRightTagsList[0].id))  //选中的子模板id去掉
       }
       this.selectLeftTagsList = []
       this.selectRightTagsList = []
@@ -410,6 +451,7 @@ export default {
     searchTagList() {
       let notIds = []
       let tmpArr = this.rightTagsList.slice();
+      console.log(tmpArr)
       for (let i = 0; i < tmpArr.length; i++) {
         if(tmpArr[i].type != 'sub' && tmpArr[i].type != 'input'){
           notIds.push(tmpArr[i].id)

+ 59 - 0
src/components/icss/PubTemplateGroup.vue

@@ -26,6 +26,26 @@
           ></el-option>
         </el-select>
       </el-form-item>
+      <!-- <el-form-item
+        label="选择子模板归属:"
+        prop="region3"
+        v-if="form.region1 == 5"
+      >
+        <span class="changeTips">改变子模板归属后,模板内容将会恢复到默认状态</span>
+        <el-select
+          :disabled="!!editData.id"
+          v-model="form.region3"
+          placeholder="请选择子模板"
+          @change="sendData"
+        >
+          <el-option
+            v-for="item in sonLis"
+            :label="item.name"
+            :value="item.key+''"
+            :key="item.key"
+          ></el-option>
+        </el-select>
+      </el-form-item> -->
       <el-form-item
         label="模板名称:"
         prop="region2"
@@ -54,10 +74,25 @@ export default {
   props:['editData'],
   data() {
     return {
+      numWord:0,
       Adscriptions:[],
+      sonLis:[{
+        name:'空',
+        key:'-1',
+      },{
+        name:'主诉模板',
+        key:'1'
+      },{
+        name:'现病史模板',
+        key:'2'
+      },{
+        name:'现病史空模板',
+        key:'3'
+      }],
       form: {
         region1: '',    //归属
         region2: '',     //模板名称
+        region3: '-1',     //子模板
         tagPool:[],      //标签池
       },
       rules: {
@@ -68,11 +103,19 @@ export default {
           { required: true, message: '请输入模板名称', trigger: 'change' },
           // { validator: validatePass2, trigger: 'blur' },
         ],
+        region3: [
+          { required: true, message: '请选择子模板归属', trigger: 'change' },
+          // { validator: validatePass2, trigger: 'blur' },
+        ],
       },
     }
   },
   beforeMount:function(){
     let templateOwn = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleTypeEnum : []
+    let guisu = localStorage.getItem('guisu') ? JSON.parse(localStorage.getItem('guisu')) : []
+    for(let k = 0;k < guisu.length;k++){
+      templateOwn = templateOwn.filter(item => item.key != guisu[k])
+    }
     this.Adscriptions = templateOwn;
   },
   mounted() {
@@ -87,6 +130,22 @@ export default {
     // this.searchTagList()
   },
   methods:{
+    changes(){
+      let nameVal = this.form.region2
+      console.log(nameVal.length)
+      if(nameVal.length == 10){
+        this.$message({
+          message: '最多输入120个字',
+          type: 'warning',
+          showClose: true,
+        });
+      }
+      if(nameVal.length == 10){
+        this.numWord = 10
+      }else{
+        this.numWord = 0
+      }
+    },
     sendData(val){
       this.$emit('changeVal', this.form, false)
     },

+ 36 - 1
src/components/icss/TemplateMaintenance.vue

@@ -97,9 +97,44 @@
       this.getDropList().then(() => {
         this.getDataList()
       })
-
+      this.getSubTemplate()
     },
     methods: {
+      getSubTemplate() {
+        let param = {
+          noIds:this.subTmpList,
+        }
+        api.getModuleInfoSub(param).then((res) => {
+          if (res.data.code === '0') {
+            let result = res.data.data
+            let arr = [],main = '',now = '',nowEmpt = '',other = '';
+            for(let i = 0;i < result.length;i++){
+              if(result[i].name == '主诉模板'){
+                if(!main){
+                  main = 1
+                  arr.push(main)
+                }
+              }else if(result[i].name == '现病史模板'){
+                if(!now){
+                  now = 2
+                  arr.push(now)
+                }
+              }else if(result[i].name == '现病史空模板'){
+                if(!nowEmpt){
+                  nowEmpt = 3
+                  arr.push(nowEmpt)
+                }
+              }else if(result[i].name == '其他史模板'){
+                if(!other){
+                  other = 4
+                  arr.push(other)
+                }
+              }
+            }
+            localStorage.setItem('guisu',JSON.stringify(arr))
+          }
+        })
+      },
       getDropList() {
         let templateOwn = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleTypeEnum : []
         this.Adscriptions = templateOwn;

+ 1 - 0
src/components/icss/TemplateMaintenanceWrap.vue

@@ -15,6 +15,7 @@
         v-if="dataPub.region1"
         :pool="dataPub.tagPool"
         :type="dataPub.region1"
+        :sign="dataPub.region3"
         :options="editData"
          @changeActionData="changeActionData"
       >