Bläddra i källkod

Merge branch 'dev2/luolei' into dev

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

+ 119 - 24
src/components/icss/CommonTemplate.vue

@@ -37,8 +37,24 @@
         ></span></p>
         ></span></p>
     </div>
     </div>
     <div class="bottomPartRight bottomPartRightTemplate">
     <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">
       <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>
         <i class="el-icon-arrow-left arrowWrapPub" @click="moveTag(0)"></i>
         <i class="el-icon-arrow-right arrowWrapPub" @click="moveTag(1)"></i>
         <i class="el-icon-arrow-right arrowWrapPub" @click="moveTag(1)"></i>
       </div>
       </div>
@@ -63,19 +79,25 @@
                   :key="item.id"
                   :key="item.id"
                 ></el-option>
                 ></el-option>
               </el-select>
               </el-select>
-              <el-button size="mini" @click="addDomTemplate(0,'submitForm')">添加</el-button>
-              <el-button size="mini" @click="delSubTemplate">删除子模板</el-button>
-              <el-button size="mini" @click="addDomTemplate(1)">插入输入栏</el-button>
-              <el-button size="mini" @click="addFlg(1)">1.插入选择症状模块</el-button>
-              <el-button size="mini" @click="addFlg(3)">2.插入病程变化模块</el-button>
-              <el-button size="mini" @click="addFlg(4)">3.插入从主诉中获取的伴/无症状模块</el-button>
+              <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" 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" 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">
               <div class="arrowWrap">
                 <i class="el-icon-arrow-left arrowWrapPub" @click="moveTag(0)"></i>
                 <i class="el-icon-arrow-left arrowWrapPub" @click="moveTag(0)"></i>
                 <i class="el-icon-arrow-right arrowWrapPub" @click="moveTag(1)"></i>
                 <i class="el-icon-arrow-right arrowWrapPub" @click="moveTag(1)"></i>
               </div>
               </div>
             </el-form-item>
             </el-form-item>
           </el-form>
           </el-form>
-        
       </div>
       </div>
       <ul class="tagList operationPool templateTagLists">
       <ul class="tagList operationPool templateTagLists">
         <li
         <li
@@ -92,18 +114,20 @@
                 @change="updataData"
                 @change="updataData"
               >
               >
               </el-input>
               </el-input>
-              <i class="tagFlag">{{item.flag?(item.flag == 3?2:item.flag == 4?3:1):''}}</i>
+              <!-- <i class="tagFlag">{{item.flag?(item.flag == 4?2:1):''}}</i> -->
           </div>
           </div>
           <p
           <p
             v-if="item.type === 'sub'"
             v-if="item.type === 'sub'"
             class="tagName  ellipsis"
             class="tagName  ellipsis"
             :title="'[ '+item.tagName+' ]'"
             :title="'[ '+item.tagName+' ]'"
-          >{{item.tagName}} <i class="tagFlag">{{item.flag?(item.flag == 3?2:item.flag == 4?3:1):''}}</i></p>
+          >{{item.tagName}} 
+            <!-- <i class="tagFlag">{{item.flag?(item.flag == 4?2:1):''}}</i> -->
+            </p>
           <p
           <p
             v-if="item.type !== 'input' && item.type !== 'sub'"
             v-if="item.type !== 'input' && item.type !== 'sub'"
             class="tagName  ellipsis"
             class="tagName  ellipsis"
             :title="'[ '+item.tagName+' ]'"
             :title="'[ '+item.tagName+' ]'"
-          >{{item.tagName}} <i class="tagFlag">{{item.flag?(item.flag == 3?2:item.flag == 4?3:1):''}}</i></p>
+          >{{item.tagName}} <i class="tagFlag" v-if="item.flag">{{item.flag}}</i></p>
         </li>
         </li>
       </ul>
       </ul>
     </div>
     </div>
@@ -123,6 +147,10 @@ export default {
       default: '',
       default: '',
       type: String
       type: String
     },
     },
+    sign: {
+      default: '',
+      type: String
+    },
     options: {
     options: {
       default: () => {},
       default: () => {},
       type: Object
       type: Object
@@ -147,6 +175,8 @@ export default {
       styles: {
       styles: {
         background: '#eae7e7'
         background: '#eae7e7'
       },
       },
+      flagLisFst:-1,
+      flagLisSec:-1
     }
     }
   },
   },
   destroyed: function () {
   destroyed: function () {
@@ -174,6 +204,7 @@ export default {
             }
             }
           }
           }
           this.rightTagsList = reviewList
           this.rightTagsList = reviewList
+          this.getFlagList()
         }
         }
         this.$emit('changeActionData', this.rightTagsList, false);
         this.$emit('changeActionData', this.rightTagsList, false);
         this.getSubTemplate()
         this.getSubTemplate()
@@ -185,7 +216,6 @@ export default {
   },
   },
   watch: {
   watch: {
     type(newVal, preVal) {
     type(newVal, preVal) {
-      this.searchTagList()       //重新获取标签池数据
       if(newVal != preVal){
       if(newVal != preVal){
         this.form = {region: ''}  
         this.form = {region: ''}  
         this.subTmpList = []     //子模板的id用于去重
         this.subTmpList = []     //子模板的id用于去重
@@ -195,8 +225,26 @@ export default {
         this.selectRightTagsList = []
         this.selectRightTagsList = []
         this.selectRightTagsListIndex = []
         this.selectRightTagsListIndex = []
         this.searchVal = ''
         this.searchVal = ''
+        this.flagLisFst = -1
+        this.flagLisSec = -1
         this.getSubTemplate()      //重新获取子模板
         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) {
     searchVal(newVal, preVal) {
       if (newVal.trim() == '') {
       if (newVal.trim() == '') {
@@ -210,17 +258,48 @@ export default {
     updataData(){
     updataData(){
       this.$emit('changeActionData', this.rightTagsList, false);
       this.$emit('changeActionData', this.rightTagsList, false);
     },
     },
-    addFlg(idx){
+    getFlagList(){
+      let lis =  this.rightTagsList;
+      for(let i = 0;i < lis.length;i++){
+        let tmpLi = lis[i];
+        if(tmpLi.flag == 1){
+          this.flagLisFst = 1
+        }else if(tmpLi.flag == 4){
+          this.flagLisSec = 4
+        }
+      }
+    },
+    addFlg(idx){//添加标记,已经有标记了先去掉标记,再点击才能加上,没有标记的加上标记
       let selectTagFlg = this.selectRightTagsListIndex;
       let selectTagFlg = this.selectRightTagsListIndex;
       let tmpSelectRightTagsList = this.selectRightTagsList;
       let tmpSelectRightTagsList = this.selectRightTagsList;
-      if(selectTagFlg.length == 0 || (tmpSelectRightTagsList && tmpSelectRightTagsList.length>0 && tmpSelectRightTagsList[0].type == 'input')){
+      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;
         return;
       }
       }
-      let tmpLis = this.rightTagsList.slice()
-      let tmpObj = tmpLis[selectTagFlg[0]];
-      tmpObj.flag = idx
-      this.rightTagsList = [...tmpLis]
+      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)
+          }
+        }
+      }
+      this.rightTagsList = [...tmpLis]
+      this.getFlagList()
     },
     },
     addDomTemplate(sign,dom){
     addDomTemplate(sign,dom){
       let tmpArr1 = this.rightTagsList.slice(0);
       let tmpArr1 = this.rightTagsList.slice(0);
@@ -254,6 +333,7 @@ export default {
       }
       }
       this.rightTagsList = tmpArr1;
       this.rightTagsList = tmpArr1;
       this.$emit('changeActionData', this.rightTagsList, false);
       this.$emit('changeActionData', this.rightTagsList, false);
+      this.getFlagList()
     },
     },
     moveTag(dir){
     moveTag(dir){
       let tmpArr1 = this.rightTagsList.slice(0);
       let tmpArr1 = this.rightTagsList.slice(0);
@@ -292,18 +372,20 @@ export default {
         this.selectRightTagsListIndex = tmpArr2
         this.selectRightTagsListIndex = tmpArr2
         this.rightTagsList = tmpArr
         this.rightTagsList = tmpArr
       }
       }
+      this.getFlagList()
       this.$emit('changeActionData', this.rightTagsList, false);
       this.$emit('changeActionData', this.rightTagsList, false);
     },
     },
     delSubTemplate(){   //删除子模板
     delSubTemplate(){   //删除子模板
       if (this.selectRightTagsList.length>0 && this.selectRightTagsList[0].type === 'sub') {    //删除子模板,输入框或者标签就不变
       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.selectLeftTagsList = []
       this.selectRightTagsList = []
       this.selectRightTagsList = []
       this.selectRightTagsListIndex = []
       this.selectRightTagsListIndex = []
       this.$emit('changeActionData', this.rightTagsList, false);
       this.$emit('changeActionData', this.rightTagsList, false);
       this.getSubTemplate()
       this.getSubTemplate()
+      this.getFlagList()
     },
     },
     selectLeftTag(tag, index, e) {
     selectLeftTag(tag, index, e) {
       const hasTag = this.isHasTag(tag, this.selectLeftTagsList)
       const hasTag = this.isHasTag(tag, this.selectLeftTagsList)
@@ -353,6 +435,7 @@ export default {
       this.selectLeftTagsList = []
       this.selectLeftTagsList = []
       this.selectRightTagsList = []
       this.selectRightTagsList = []
       this.selectRightTagsListIndex = []
       this.selectRightTagsListIndex = []
+      this.getFlagList()
     },
     },
     toRightList() {
     toRightList() {
       this.rightTagsList.push(...this.selectLeftTagsList);
       this.rightTagsList.push(...this.selectLeftTagsList);
@@ -363,10 +446,12 @@ export default {
       this.selectRightTagsList = []
       this.selectRightTagsList = []
       this.selectRightTagsListIndex = []
       this.selectRightTagsListIndex = []
       this.$emit('changeActionData', this.rightTagsList, false);
       this.$emit('changeActionData', this.rightTagsList, false);
+      this.getFlagList()
     },
     },
     searchTagList() {
     searchTagList() {
       let notIds = []
       let notIds = []
       let tmpArr = this.rightTagsList.slice();
       let tmpArr = this.rightTagsList.slice();
+      console.log(tmpArr)
       for (let i = 0; i < tmpArr.length; i++) {
       for (let i = 0; i < tmpArr.length; i++) {
         if(tmpArr[i].type != 'sub' && tmpArr[i].type != 'input'){
         if(tmpArr[i].type != 'sub' && tmpArr[i].type != 'input'){
           notIds.push(tmpArr[i].id)
           notIds.push(tmpArr[i].id)
@@ -557,23 +642,33 @@ export default {
     .el-button--mini, .el-button--mini.is-round {
     .el-button--mini, .el-button--mini.is-round {
       padding: 5px 8px 4px;
       padding: 5px 8px 4px;
     }
     }
-    .el-button:hover {
+    .normal.el-button:hover {
         color: @adminBase;
         color: @adminBase;
         border-color: @adminBase;
         border-color: @adminBase;
         outline: 0;
         outline: 0;
         opacity: 1;
         opacity: 1;
         background-color: #fff;
         background-color: #fff;
     }
     }
-    .el-button:active {
-        color: @adminBase;
+    .normal.el-button:active {
+      color: @adminBase;
         border-color: @adminBase;
         border-color: @adminBase;
         outline: 0;
         outline: 0;
     }
     }
-    .el-button:focus {
+    .normal.el-button:focus {
       background-color: #fff;
       background-color: #fff;
       color: @adminBase;
       color: @adminBase;
       opacity: 1;
       opacity: 1;
     }
     }
+    .flagStyle.el-button:hover {
+        outline: 0;
+        opacity: 1;
+    }
+    .flagStyle.el-button:active {
+        outline: 0;
+    }
+    .flagStyle.el-button:focus {
+      opacity: 1;
+    }
   }
   }
 }
 }
   
   

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

@@ -26,6 +26,26 @@
           ></el-option>
           ></el-option>
         </el-select>
         </el-select>
       </el-form-item>
       </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
       <el-form-item
         label="模板名称:"
         label="模板名称:"
         prop="region2"
         prop="region2"
@@ -54,10 +74,25 @@ export default {
   props:['editData'],
   props:['editData'],
   data() {
   data() {
     return {
     return {
+      numWord:0,
       Adscriptions:[],
       Adscriptions:[],
+      sonLis:[{
+        name:'空',
+        key:'-1',
+      },{
+        name:'主诉模板',
+        key:'1'
+      },{
+        name:'现病史模板',
+        key:'2'
+      },{
+        name:'现病史空模板',
+        key:'3'
+      }],
       form: {
       form: {
         region1: '',    //归属
         region1: '',    //归属
         region2: '',     //模板名称
         region2: '',     //模板名称
+        region3: '-1',     //子模板
         tagPool:[],      //标签池
         tagPool:[],      //标签池
       },
       },
       rules: {
       rules: {
@@ -68,11 +103,19 @@ export default {
           { required: true, message: '请输入模板名称', trigger: 'change' },
           { required: true, message: '请输入模板名称', trigger: 'change' },
           // { validator: validatePass2, trigger: 'blur' },
           // { validator: validatePass2, trigger: 'blur' },
         ],
         ],
+        region3: [
+          { required: true, message: '请选择子模板归属', trigger: 'change' },
+          // { validator: validatePass2, trigger: 'blur' },
+        ],
       },
       },
     }
     }
   },
   },
   beforeMount:function(){
   beforeMount:function(){
     let templateOwn = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleTypeEnum : []
     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;
     this.Adscriptions = templateOwn;
   },
   },
   mounted() {
   mounted() {
@@ -87,6 +130,22 @@ export default {
     // this.searchTagList()
     // this.searchTagList()
   },
   },
   methods:{
   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){
     sendData(val){
       this.$emit('changeVal', this.form, false)
       this.$emit('changeVal', this.form, false)
     },
     },

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

@@ -97,9 +97,44 @@
       this.getDropList().then(() => {
       this.getDropList().then(() => {
         this.getDataList()
         this.getDataList()
       })
       })
-
+      this.getSubTemplate()
     },
     },
     methods: {
     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() {
       getDropList() {
         let templateOwn = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleTypeEnum : []
         let templateOwn = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleTypeEnum : []
         this.Adscriptions = templateOwn;
         this.Adscriptions = templateOwn;

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

@@ -15,6 +15,7 @@
         v-if="dataPub.region1"
         v-if="dataPub.region1"
         :pool="dataPub.tagPool"
         :pool="dataPub.tagPool"
         :type="dataPub.region1"
         :type="dataPub.region1"
+        :sign="dataPub.region3"
         :options="editData"
         :options="editData"
          @changeActionData="changeActionData"
          @changeActionData="changeActionData"
       >
       >
@@ -82,6 +83,7 @@ export default {
         "modelDetils": detailLis,
         "modelDetils": detailLis,
         "name": name,
         "name": name,
         "type": type,
         "type": type,
+        "flag": type == 5?3:'',
         "textType": type,
         "textType": type,
         "id":this.editData.id || ''
         "id":this.editData.id || ''
       }
       }