|
@@ -3,14 +3,23 @@
|
|
|
<div class="bottomPartLeft fl">
|
|
|
<p class="poolTitle">标签池</p>
|
|
|
<div class="pool">
|
|
|
- <input class="search" @input="searchTag"/>
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入搜索内容"
|
|
|
+ v-model="searchVal"
|
|
|
+ >
|
|
|
+ <i
|
|
|
+ slot="prefix"
|
|
|
+ class="el-input__icon el-icon-search"
|
|
|
+ ></i>
|
|
|
+ </el-input>
|
|
|
<ul class="tagList">
|
|
|
- <li class = "tagItem"
|
|
|
- v-for="item in leftTagsList"
|
|
|
+ <li v-for="(item, index) in leftTagsList"
|
|
|
+ class = "tagItem"
|
|
|
:key='item.id'
|
|
|
- @click='selectLeftTag(item)'
|
|
|
+ :style="getStyle(item)?styles:null"
|
|
|
+ @click='selectLeftTag(item, index, $event)'
|
|
|
>
|
|
|
- <p class="tagName">{{item.tagName}} </p>
|
|
|
+ <p class="tagName" >{{item.tagName}} </p>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
@@ -23,38 +32,84 @@
|
|
|
<p class="poolTitle">操作池</p>
|
|
|
<ul class="tagList">
|
|
|
<li class = "tagItem"
|
|
|
- v-for="item in rightTagsList"
|
|
|
- :key='item.id'
|
|
|
+ v-for="(item, index) in rightTagsList2"
|
|
|
+ :key='index'
|
|
|
+ :style="getStyle2(item)?styles:null"
|
|
|
@click='selectRightTag(item)'
|
|
|
- >
|
|
|
- <p class="tagName">{{item.tagName}} </p>
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ <el-input
|
|
|
+ v-if="item.text"
|
|
|
+ placeholder=""
|
|
|
+ v-model="item.text"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </div>
|
|
|
+ <p v-if="item.tagName" class="tagName">{{item.tagName}} </p>
|
|
|
+ <p v-if="item.symptomType === 1">跟主症状</p>
|
|
|
+ <p v-if="item.symptomType === 2">跟伴随症状</p>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
+ <div :style="{widt: '20%'}">
|
|
|
+ <el-button type="primary" @click="mainSymptom">跟主症状</el-button>
|
|
|
+ <el-button type="primary" @click="followSymptom">跟伴随症状</el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
import api from '@api/icss.js';
|
|
|
+import utils from '@api/utils.js';
|
|
|
+
|
|
|
export default {
|
|
|
name: "SymptomTagGroup",
|
|
|
props: {
|
|
|
- dataPub: {},
|
|
|
+ pool: {
|
|
|
+ default: () => [],
|
|
|
+ type: Array
|
|
|
+ },
|
|
|
+ type: {
|
|
|
+ default: '',
|
|
|
+ type: String
|
|
|
+ },
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
leftTagsList: [],
|
|
|
selectLeftTagsList: [],
|
|
|
rightTagsList: [],
|
|
|
+ rightTagsList2: [],
|
|
|
selectRightTagsList: [],
|
|
|
-
|
|
|
+ searchVal: '',
|
|
|
+ styles:{
|
|
|
+ background:'#eae7e7'
|
|
|
+ },
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
- this.leftTagsList = this.dataPub.tagPool
|
|
|
- console.log('TAGPOOL', this.dataPub)
|
|
|
+ this.searchTagList()
|
|
|
+ // this.leftTagsList = this.pool
|
|
|
+ // console.log('TAGPOOL', this.pool)
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ pool(newVal, preVal) {
|
|
|
+ if (JSON.stringify(newVal) != JSON.stringify(preVal)) {
|
|
|
+ this.leftTagsList = newVal
|
|
|
+ }
|
|
|
+ },
|
|
|
+ searchVal(newVal, preVal){
|
|
|
+ if(newVal.trim() == ''){
|
|
|
+ this.searchTagList()
|
|
|
+ }else if(newVal.trim() != preVal.trim()){
|
|
|
+ this.searchTagList()
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
},
|
|
|
methods: {
|
|
|
- selectLeftTag(tag) {
|
|
|
+ selectLeftTag(tag, index, e) {
|
|
|
+
|
|
|
const hasTag = this.isHasTag(tag, this.selectLeftTagsList)
|
|
|
console.log(hasTag)
|
|
|
if (hasTag) {
|
|
@@ -63,7 +118,6 @@ export default {
|
|
|
this.selectLeftTagsList.push(tag);
|
|
|
}
|
|
|
console.log(this.selectLeftTagsList)
|
|
|
- // this.isSelectTag(tag, this.selectLeftTagsList)
|
|
|
|
|
|
},
|
|
|
selectRightTag(tag) {
|
|
@@ -75,7 +129,6 @@ export default {
|
|
|
this.selectRightTagsList.push(tag);
|
|
|
}
|
|
|
console.log(this.selectRightTagsList)
|
|
|
- // this.isSelectTag(tag, this.selectRightTagsList)
|
|
|
|
|
|
},
|
|
|
isHasTag(item, arr) {
|
|
@@ -86,55 +139,106 @@ export default {
|
|
|
}
|
|
|
return false;
|
|
|
},
|
|
|
- isSelectTag(tag, arr) {
|
|
|
- const hasTag = this.isHasTag(tag, arr)
|
|
|
- console.log(hasTag)
|
|
|
- if (hasTag) {
|
|
|
- // arr = arr.filter(item => item.id !== tag.id)
|
|
|
- arr = arr.filter((item) => {console.log('aaa',item.id === tag.id); return item.id !== tag.id})
|
|
|
- } else {
|
|
|
- arr.push(tag);
|
|
|
- }
|
|
|
- console.log(arr)
|
|
|
+ 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)
|
|
|
},
|
|
|
toLeftList() {
|
|
|
- this.leftTagsList = this.tagPool
|
|
|
+ // if(!this.searchVal) {
|
|
|
+ // this.leftTagsList = this.searchTagList()
|
|
|
+ // }
|
|
|
+
|
|
|
+ this.searchTagList()
|
|
|
for (let i = 0; i < this.selectRightTagsList.length; i++) {
|
|
|
this.rightTagsList = this.rightTagsList.filter(item => item.id !== this.selectRightTagsList[i].id)
|
|
|
}
|
|
|
+ this.rightTagsList2 = [];
|
|
|
+ let textItem = { text: ',' }
|
|
|
for (let i = 0; i < this.rightTagsList.length; i++) {
|
|
|
- this.leftTagsList = this.leftTagsList.filter(item => item.id !== this.rightTagsList[i].id)
|
|
|
+ if(this.rightTagsList2.length === 0) {
|
|
|
+ this.rightTagsList2.push(JSON.parse(JSON.stringify(textItem)))
|
|
|
+ }
|
|
|
+ this.rightTagsList2.push(this.rightTagsList[i]);
|
|
|
+ this.rightTagsList2.push(JSON.parse(JSON.stringify(textItem)))
|
|
|
}
|
|
|
+ // for (let i = 0; i < this.rightTagsList.length; i++) {
|
|
|
+ // this.leftTagsList = this.leftTagsList.filter(item => item.id !== this.rightTagsList[i].id)
|
|
|
+ // }
|
|
|
+ this.selectLeftTagsList = []
|
|
|
this.selectRightTagsList = []
|
|
|
+ this.searchTagList()
|
|
|
},
|
|
|
toRightList() {
|
|
|
this.rightTagsList.push(...this.selectLeftTagsList);
|
|
|
+ let textItem = { text: ',' }
|
|
|
+ for (let i = 0; i < this.selectLeftTagsList.length; i++) {
|
|
|
+ if(this.rightTagsList2.length === 0) {
|
|
|
+ this.rightTagsList2.push(JSON.parse(JSON.stringify(textItem)))
|
|
|
+ }
|
|
|
+ this.rightTagsList2.push(this.selectLeftTagsList[i]);
|
|
|
+ this.rightTagsList2.push(JSON.parse(JSON.stringify(textItem)))
|
|
|
+ }
|
|
|
+
|
|
|
for (let i = 0; i < this.rightTagsList.length; i++) {
|
|
|
this.leftTagsList = this.leftTagsList.filter(item => item.id !== this.rightTagsList[i].id)
|
|
|
}
|
|
|
- console.log(this.rightTagsList)
|
|
|
+ console.log('this.rightTagsList',this.rightTagsList)
|
|
|
this.selectLeftTagsList = []
|
|
|
+ this.selectRightTagsList = []
|
|
|
},
|
|
|
- searchTag(value) {
|
|
|
- console.log('value', value)
|
|
|
+ searchTagList() {
|
|
|
let notIds = []
|
|
|
for (let i = 0; i < this.rightTagsList.length; i++) {
|
|
|
- notIds.push(rightTagsList[i].id)
|
|
|
+ if(this.rightTagsList[i].id) {
|
|
|
+ notIds.push(this.rightTagsList[i].id)
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
- console.log(this.dataPub)
|
|
|
let param = {
|
|
|
- "tagName": value.data,
|
|
|
- "tagType": [
|
|
|
- 4
|
|
|
- ],
|
|
|
- "type": this.dataPub.region1 || ''
|
|
|
+ "tagName": this.searchVal,
|
|
|
+ "tagType": [1, 2],
|
|
|
+ "controlType": [],
|
|
|
+ "type": this.type || '',
|
|
|
+ "notIds": notIds,
|
|
|
+
|
|
|
}
|
|
|
api.searchTagList(param).then((res) => {
|
|
|
if (res.data.code === '0') {
|
|
|
this.leftTagsList = res.data.data
|
|
|
+ this.selectLeftTagsList = []
|
|
|
+ this.selectRightTagsList = []
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+ },
|
|
|
+ mainSymptom() {
|
|
|
+ console.log(this.selectRightTag)
|
|
|
+ for(let i = 0; i < this.selectRightTagsList.length; i++) {
|
|
|
+ this.rightTagsList = this.rightTagsList.filter((item) =>{
|
|
|
+ if(item.id === this.selectRightTagsList[i].id) {
|
|
|
+ item.symptomType = 1
|
|
|
+ }
|
|
|
+ return item
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ this.selectRightTagsList = []
|
|
|
+ },
|
|
|
+ followSymptom() {
|
|
|
+ for(let i = 0; i < this.selectRightTagsList.length; i++) {
|
|
|
+ this.rightTagsList = this.rightTagsList.filter((item) =>{
|
|
|
+ if(item.id === this.selectRightTagsList[i].id) {
|
|
|
+ item.symptomType = 2
|
|
|
+ }
|
|
|
+ return item
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.selectRightTagsList = []
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -154,7 +258,7 @@ export default {
|
|
|
margin-bottom: 20px;
|
|
|
}
|
|
|
.pool {
|
|
|
- border:1px solid @icssBorder;
|
|
|
+ // border:1px solid @icssBorder;
|
|
|
|
|
|
}
|
|
|
.search {
|
|
@@ -167,6 +271,8 @@ export default {
|
|
|
padding: 10px 10px;
|
|
|
height: 300px;
|
|
|
overflow-y: auto;
|
|
|
+ // width: 80%;
|
|
|
+ border: 1px solid @icssBorder;
|
|
|
}
|
|
|
.tagItem {
|
|
|
line-height: 20px;
|
|
@@ -192,7 +298,10 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
.bottomPartRight {
|
|
|
- width: 60%;
|
|
|
+ width: 40%;
|
|
|
+ }
|
|
|
+ .active {
|
|
|
+ color: #aBcdef;
|
|
|
}
|
|
|
}
|
|
|
</style>
|