From 78c9439e91d11e7e387c5286bd06a7d30dcccd9e Mon Sep 17 00:00:00 2001 From: "hong.yang" <hong.yang@ustcinfo.com> Date: Tue, 11 Jul 2023 10:40:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E9=9B=86=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E9=80=89=E6=8B=A9=E5=99=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 数据集标签选择器优化 --- .../src/LabelSelect.vue | 88 ++++++++++++++++--- .../src/LabelTypeEdit.vue | 18 ++-- 2 files changed, 82 insertions(+), 24 deletions(-) diff --git a/data-room-ui/packages/DataSetLabelManagement/src/LabelSelect.vue b/data-room-ui/packages/DataSetLabelManagement/src/LabelSelect.vue index 4c8b9d1a..3c810bc6 100644 --- a/data-room-ui/packages/DataSetLabelManagement/src/LabelSelect.vue +++ b/data-room-ui/packages/DataSetLabelManagement/src/LabelSelect.vue @@ -5,6 +5,7 @@ :key="label.id" :closable="isEdit" :disable-transitions="false" + style="margin-right: 2px;margin-left: 2px;background-color: #2f3440;border-color: #313640;" @close="handleCloseTag(label)" > {{ label.labelName }} @@ -13,7 +14,7 @@ class="item" content="添加关联标签" effect="dark" - placement="right" + placement="bottom" > <el-button circle @@ -47,8 +48,10 @@ placeholder="请输入标签名称" /> </el-form-item> - - <el-form-item label=""> + <el-form-item + class="filter-item" + prop="labelType" + > <el-select v-model="searchForm.labelType" class="bs-el-select" @@ -59,15 +62,34 @@ @change="selectLabelType" > <el-option + key="all" label="全部" value="" /> <el-option - v-for="(item, index) in labelTypeList" + v-for="(type, index) in labelTypeList" :key="index" - :label="item" - :value="item" - /> + :label="type" + :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-form-item> <el-form-item> @@ -190,6 +212,11 @@ @afterEdit="afterEdit" ref="labelEdit" /> + <label-type-edit + v-if="labelTypeEditVisible" + @afterEdit="afterEdit(true)" + ref="labelTypeEdit" + /> </div> </el-dialog> </div> @@ -197,13 +224,15 @@ <script> import LabelEdit from './LabelConfigEdit' +import LabelTypeEdit from './LabelTypeEdit.vue' 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 { name: 'LabelSelect', components: { - LabelEdit + LabelEdit, + LabelTypeEdit }, mixins: [pageMixins], props: { @@ -233,6 +262,8 @@ export default { dialogFormVisible: false, // 编辑弹窗可见性 editFormVisible: false, + // 标签类型编辑弹窗可见性 + labelTypeEditVisible: false, searchForm: { labelName: '', labelType: '' @@ -351,7 +382,8 @@ export default { this.$confirm('确定删除当前标签吗?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', - type: 'warning' + type: 'warning', + customClass: 'bs-el-message-box' }).then(() => { removeLabel(id).then(() => { this.getDataList() @@ -411,6 +443,35 @@ export default { selectLabelType () { 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) }, /** - * 标签编辑/新增后回调 + * 标签编辑/新增、标签类型编辑 后回调 */ - afterEdit () { + afterEdit (cleanType) { + if (cleanType) { + this.searchForm.labelType = '' + } this.getDataList() this.getLabelType() } diff --git a/data-room-ui/packages/DataSetLabelManagement/src/LabelTypeEdit.vue b/data-room-ui/packages/DataSetLabelManagement/src/LabelTypeEdit.vue index c8a9e640..7be3d3b3 100644 --- a/data-room-ui/packages/DataSetLabelManagement/src/LabelTypeEdit.vue +++ b/data-room-ui/packages/DataSetLabelManagement/src/LabelTypeEdit.vue @@ -79,20 +79,14 @@ export default { }, submitForm (formName) { this.$refs[formName].validate((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 { + if (!valid) { return false } + updateLabelType(this.dataForm).then(() => { + this.$emit('afterEdit') + this.cancel() + this.$message.success('保存成功') + }) }) } }