<template>
|
<GlobalWindow
|
:title="title"
|
width="50%"
|
:visible.sync="visible"
|
:confirm-working="isWorking"
|
@confirm="confirm"
|
>
|
<div class="box">
|
<div class="box-info">
|
<i class="el-icon-info"></i>
|
<span>最多可添加50个标签</span>
|
</div>
|
<div class="box-serch">
|
<el-input v-model="value" placeholder="请输入请输入新标签"></el-input>
|
<el-button type="primary" style="margin-left: 15px;" @click="add">添加</el-button>
|
</div>
|
<div class="box-list">
|
<div class="box-list-item" v-for="(item, index) in list" :key="index">
|
<span>{{item.name}}</span>
|
<i class="el-icon-circle-close" @click="dele(item.id)"></i>
|
</div>
|
</div>
|
</div>
|
<template v-slot:footer>
|
<el-button @click="close">返回</el-button>
|
</template>
|
</GlobalWindow>
|
</template>
|
|
<script>
|
import BaseOpera from '@/components/base/BaseOpera'
|
import GlobalWindow from '@/components/common/GlobalWindow'
|
import { createLabels, list, labelsDeleteById } from '@/api/business/knowledge'
|
export default {
|
name: 'tagLibrary',
|
extends: BaseOpera,
|
components: { GlobalWindow },
|
data () {
|
return {
|
value: '',
|
list: []
|
}
|
},
|
created () {
|
this.config({
|
api: '/business/knowledge',
|
'field.id': 'id'
|
})
|
},
|
methods: {
|
async open (title, target) {
|
this.title = title
|
await this.getData()
|
this.visible = true
|
},
|
async getData () {
|
this.list = await list()
|
},
|
// 添加标签
|
async add () {
|
if (!this.value) return this.$message.warning('请先输入内容')
|
createLabels({ name: this.value })
|
.then(() => {
|
this.$message.success('添加成功')
|
this.$emit('success')
|
this.getData()
|
this.$emit('refresh')
|
this.value = ''
|
})
|
.catch(e => {
|
this.$tip.apiFailed(e)
|
})
|
},
|
// 删除
|
async dele (id) {
|
labelsDeleteById(id)
|
.then(() => {
|
this.$message.success('删除成功')
|
this.$emit('success')
|
this.getData()
|
this.$emit('refresh')
|
this.value = ''
|
})
|
.catch(e => {
|
this.$tip.apiFailed(e)
|
})
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
.box {
|
width: 100%;
|
.box-info {
|
width: 100%;
|
display: flex;
|
align-items: center;
|
margin-bottom: 15px;
|
span {
|
color: rgba(154,154,154,1);
|
font-size: 14px;
|
margin-left: 6px;
|
}
|
}
|
.box-serch {
|
width: 100%;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
margin-bottom: 20px;
|
}
|
.box-list {
|
width: 100%;
|
display: flex;
|
align-items: center;
|
flex-wrap: wrap;
|
.box-list-item {
|
padding: 5px 10px;
|
box-sizing: border-box;
|
border-radius: 20px;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
background-color: rgba(239,239,239,1);
|
cursor: pointer;
|
margin-right: 15px;
|
margin-bottom: 15px;
|
span {
|
color: rgba(16,16,16,1);
|
font-size: 16px;
|
margin-right: 10px;
|
}
|
i {
|
font-size: 20px;
|
color: red;
|
}
|
}
|
}
|
}
|
</style>
|