fix: 数据集标签选择器优化

数据集标签选择器优化
main
hong.yang 2 years ago
parent 28c04093bb
commit 78c9439e91

@ -5,6 +5,7 @@
:key="label.id" :key="label.id"
:closable="isEdit" :closable="isEdit"
:disable-transitions="false" :disable-transitions="false"
style="margin-right: 2px;margin-left: 2px;background-color: #2f3440;border-color: #313640;"
@close="handleCloseTag(label)" @close="handleCloseTag(label)"
> >
{{ label.labelName }} {{ label.labelName }}
@ -13,7 +14,7 @@
class="item" class="item"
content="添加关联标签" content="添加关联标签"
effect="dark" effect="dark"
placement="right" placement="bottom"
> >
<el-button <el-button
circle circle
@ -47,8 +48,10 @@
placeholder="请输入标签名称" placeholder="请输入标签名称"
/> />
</el-form-item> </el-form-item>
<el-form-item
<el-form-item label=""> class="filter-item"
prop="labelType"
>
<el-select <el-select
v-model="searchForm.labelType" v-model="searchForm.labelType"
class="bs-el-select" class="bs-el-select"
@ -59,15 +62,34 @@
@change="selectLabelType" @change="selectLabelType"
> >
<el-option <el-option
key="all"
label="全部" label="全部"
value="" value=""
/> />
<el-option <el-option
v-for="(item, index) in labelTypeList" v-for="(type, index) in labelTypeList"
:key="index" :key="index"
:label="item" :label="type"
:value="item" :value="type"
/> >
<span>
{{ type }}
</span>
<span style="float: right;padding-right: 20px">
<el-button
v-show="isManage"
icon="el-icon-edit"
type="text"
@click.stop="editLabelType(type)"
/>
<el-button
v-if="isManage"
icon="el-icon-delete"
type="text"
@click.stop="deleteLabelType(type)"
/>
</span>
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -190,6 +212,11 @@
@afterEdit="afterEdit" @afterEdit="afterEdit"
ref="labelEdit" ref="labelEdit"
/> />
<label-type-edit
v-if="labelTypeEditVisible"
@afterEdit="afterEdit(true)"
ref="labelTypeEdit"
/>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
@ -197,13 +224,15 @@
<script> <script>
import LabelEdit from './LabelConfigEdit' import LabelEdit from './LabelConfigEdit'
import LabelTypeEdit from './LabelTypeEdit.vue'
import { pageMixins } from 'packages/js/mixins/page' import { pageMixins } from 'packages/js/mixins/page'
import {getLabelType, labelList, getLabelListByDatasetId, removeLabel} from 'packages/js/utils/LabelConfigService' import {getLabelType, labelList, getLabelListByDatasetId, removeLabel, removeLabelByType} from 'packages/js/utils/LabelConfigService'
export default { export default {
name: 'LabelSelect', name: 'LabelSelect',
components: { components: {
LabelEdit LabelEdit,
LabelTypeEdit
}, },
mixins: [pageMixins], mixins: [pageMixins],
props: { props: {
@ -233,6 +262,8 @@ export default {
dialogFormVisible: false, dialogFormVisible: false,
// //
editFormVisible: false, editFormVisible: false,
//
labelTypeEditVisible: false,
searchForm: { searchForm: {
labelName: '', labelName: '',
labelType: '' labelType: ''
@ -351,7 +382,8 @@ export default {
this.$confirm('确定删除当前标签吗?', '提示', { this.$confirm('确定删除当前标签吗?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning',
customClass: 'bs-el-message-box'
}).then(() => { }).then(() => {
removeLabel(id).then(() => { removeLabel(id).then(() => {
this.getDataList() this.getDataList()
@ -411,6 +443,35 @@ export default {
selectLabelType () { selectLabelType () {
this.getDataList() this.getDataList()
}, },
/**
* 标签类型编辑
*/
editLabelType (type) {
this.labelTypeEditVisible = true
this.$nextTick(() => {
this.$refs.labelTypeEdit.dialogFormVisible = true
this.$refs.labelTypeEdit.init(type)
})
},
/**
* 标签类型删除
*/
deleteLabelType (type) {
this.$confirm('是否删除当前标签类型? ', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
customClass: 'bs-el-message-box'
}).then(() => {
removeLabelByType({ labelType: type }).then(() => {
this.$nextTick(() => {
this.getDataList()
this.getLabelType()
this.$message.success('删除成功')
})
})
})
},
/** /**
* 弹窗关闭 * 弹窗关闭
*/ */
@ -428,9 +489,12 @@ export default {
this.$emit('commit', this.idListCopy) this.$emit('commit', this.idListCopy)
}, },
/** /**
* 标签编辑/新增后回调 * 标签编辑/新增标签类型编辑 后回调
*/ */
afterEdit () { afterEdit (cleanType) {
if (cleanType) {
this.searchForm.labelType = ''
}
this.getDataList() this.getDataList()
this.getLabelType() this.getLabelType()
} }

@ -79,20 +79,14 @@ export default {
}, },
submitForm (formName) { submitForm (formName) {
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (!valid) {
updateLabelType(this.dataForm).then(() => {
if (this.$parent.queryForm.labelType !== '') {
this.$parent.queryForm.labelType = this.dataForm.labelType
}
this.$parent.reSearch()
this.$parent.getLabelType()
this.cancel()
this.$message.success('保存成功')
})
} else {
return false return false
} }
updateLabelType(this.dataForm).then(() => {
this.$emit('afterEdit')
this.cancel()
this.$message.success('保存成功')
})
}) })
} }
} }

Loading…
Cancel
Save