【update】标签管理-代码的优化

This commit is contained in:
fengchenchen
2023-08-21 17:03:54 +08:00
parent e331340e55
commit 2c9214c9ec
11 changed files with 181 additions and 78 deletions
+13 -1
View File
@@ -193,4 +193,16 @@ code: {
style="width: 100%" :formatter="limitNumber" :parser="limitNumber"/> style="width: 100%" :formatter="limitNumber" :parser="limitNumber"/>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
``` ```
5、表格内插槽 禁止用span 包裹,用template 或者div
```html
<div slot="action" slot-scope="text, record">
<a class="action-edit" @click="handleEdit(record)" v-has="'area:edit'"
>{{ $t('edit') }}</a>
<a class="table-del" @click="handleDelete(record.id)" v-has="'area:delete'"
>{{ $t('delete') }}</a>
</div>
```
6、
+15 -2
View File
@@ -99,8 +99,16 @@ export const transitRESTful = {
} }
// 标签管理- 展示区域查询接口 // 标签管理- 展示区域查询接口
const getShowAreaData = (params) => getAction('/tag/onlCgformArea/queryShowArea', params) const getShowAreaData = (params) => getAction('/tag/LawsArea/queryShowArea', params)
// 标签管理-展示区域管理-新增
const addAreaData = (params) => postAction('/tag/LawsArea/add', params)
// 标签管理-展示区域管理-编辑
const editAreaData = (params) => postAction('/tag/LawsArea/edit', params)
// 标签管理- 新增
const addTag = (params) => postAction('/tag/lawsTag/add', params)
// 标签管理- 编辑
const editTag = (params) => postAction('/tag/lawsTag/edit', params)
// 通过文件的id获取文件的相应信息 // 通过文件的id获取文件的相应信息
const getFileInfo = (params) => getAction('/sys/oss/file/queryById', params) const getFileInfo = (params) => getAction('/sys/oss/file/queryById', params)
@@ -162,5 +170,10 @@ export {
getDictItemsFromCache, getDictItemsFromCache,
getShowAreaData, getShowAreaData,
getFileInfo addAreaData,
editAreaData,
getFileInfo,
addTag,
editTag
} }
+4 -3
View File
@@ -116,9 +116,9 @@
<a-icon slot="addonAfter" type="setting" @click="selectIcons" /> <a-icon slot="addonAfter" type="setting" @click="selectIcons" />
</a-input> </a-input>
</a-form-model-item> </a-form-model-item>
<!--v-show="show"-->
<a-form-model-item <a-form-model-item
v-show="show"
:labelCol="labelCol" :labelCol="labelCol"
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
prop="sortNo" prop="sortNo"
@@ -184,10 +184,11 @@
<script> <script>
import { addPermission, editPermission, queryTreeList, duplicateCheck } from '@/api/api' import { addPermission, editPermission, queryTreeList, duplicateCheck } from '@/api/api'
import Icons from './icon/Icons' import Icons from './icon/Icons'
import JDictSelectTag from '../../../components/dict/JDictSelectTag'
export default { export default {
name: 'PermissionModal', name: 'PermissionModal',
components: { Icons }, components: { Icons, JDictSelectTag },
data () { data () {
return { return {
drawerWidth: 700, drawerWidth: 700,
+27 -26
View File
@@ -14,7 +14,7 @@
<a-form-model ref="form" :model="model" :rules="validatorRules" :label-col="labelCol" :wrapper-col="wrapperCol"> <a-form-model ref="form" :model="model" :rules="validatorRules" :label-col="labelCol" :wrapper-col="wrapperCol">
<!--所属模块--> <!--所属模块-->
<a-form-model-item :label="$t('system.tag.module')" prop="isModel"> <a-form-model-item :label="$t('system.tag.module')" prop="isModel">
<a-select :placeholder="$t('pleaseSelect') + $t('system.tag.module')" v-model="model.isModel"> <a-select :placeholder="$t('pleaseSelect') + $t('system.tag.module')" disabled v-model="model.isModel">
<a-select-option v-for="item in moduleArr" :key="item.value" :value="item.value"> <a-select-option v-for="item in moduleArr" :key="item.value" :value="item.value">
{{ translate(item.langKey) }} {{ translate(item.langKey) }}
</a-select-option> </a-select-option>
@@ -39,9 +39,9 @@
:maxLength="50" :maxLength="50"
></a-input> ></a-input>
</a-form-model-item> </a-form-model-item>
<!--序号--> <!--排序值-->
<a-form-model-item :label="$t('dict.rankingValue')" prop="sortOrder"> <a-form-model-item :label="$t('dict.rankingValue')" prop="sort">
<a-input-number :min="1" v-model="model.sortOrder" /> <a-input-number :min="1" v-model="model.sort" />
{{ $t('dict.valueSmallerIsHigher')}} {{ $t('dict.valueSmallerIsHigher')}}
</a-form-model-item> </a-form-model-item>
<!--<a-form-model-item :label="$t('system.tag.displayOrder')" prop="orderNum">--> <!--<a-form-model-item :label="$t('system.tag.displayOrder')" prop="orderNum">-->
@@ -56,6 +56,7 @@
<script> <script>
import { TagsTypeEnums } from '../../../../enums/commonEnums' import { TagsTypeEnums } from '../../../../enums/commonEnums'
import { addAreaData, editAreaData } from '../../../../api/api'
export default { export default {
name: 'AreaFormModal', name: 'AreaFormModal',
@@ -102,7 +103,7 @@ export default {
{ required: true, message: this.$t('pleaseEnter') + this.$t('system.tag.showArea'), trigger: 'blur' }, { required: true, message: this.$t('pleaseEnter') + this.$t('system.tag.showArea'), trigger: 'blur' },
{ min: 1, max: 50, message: this.$t('charactersLength'), trigger: 'blur' } { min: 1, max: 50, message: this.$t('charactersLength'), trigger: 'blur' }
], ],
sortOrder: [ sort: [
{ required: true, message: this.$t('enterSortingNumber'), trigger: 'change' } { required: true, message: this.$t('enterSortingNumber'), trigger: 'change' }
] ]
}, },
@@ -113,14 +114,14 @@ export default {
add () { add () {
// 初始化默认值 // 初始化默认值
this.edit({ this.edit({
isModel: this.type isModel: this.type,
sort: 1
}) })
}, },
edit (record) { edit (record) {
if (record.id) {
}
this.model = Object.assign({}, record) this.model = Object.assign({}, record)
// 所属模块-转化成NUMBER 方便回显
this.model.isModel = Number(this.model.isModel)
this.visible = true this.visible = true
}, },
translate (key) { translate (key) {
@@ -129,23 +130,23 @@ export default {
handleOk () { handleOk () {
this.$refs.form.validate(valid => { this.$refs.form.validate(valid => {
if (valid) { if (valid) {
// this.confirmLoading = true this.confirmLoading = true
// const formData = Object.assign({}, this.model) const formData = Object.assign({}, this.model)
// let Func let Func = addAreaData
// if (record.id) { if (this.model.id) {
// Func = '' Func = editAreaData
// } }
// Func(formData).then(res => { Func(formData).then(res => {
// if (res.success) { if (res.success) {
// this.$message.success(res.message) this.$message.success(res.message)
// this.$emit('ok') this.$emit('ok')
// this.close() this.close()
// } else { } else {
// this.$message.error(res.message) this.$message.error(res.message)
// } }
// }).finally(() => { }).finally(() => {
// this.confirmLoading = false this.confirmLoading = false
// }) })
} }
}) })
}, },
+51 -5
View File
@@ -14,7 +14,7 @@
@cancel="handleCancel"> @cancel="handleCancel">
<a-spin :spinning="confirmLoading"> <a-spin :spinning="confirmLoading">
<div class="table-operator"> <div class="table-operator">
<div class="operator-text" @click="handleAdd"> <div class="operator-text" @click="handleAdd" v-has="'area:add'">
<a-icon type="plus" /> <a-icon type="plus" />
{{$t('add')}} {{$t('add')}}
</div> </div>
@@ -40,15 +40,15 @@
</template> </template>
<div slot="action" slot-scope="text, record"> <div slot="action" slot-scope="text, record">
<a class="action-edit" @click="handleEdit(record.id)" <a class="action-edit" @click="handleEdit(record)" v-has="'area:edit'"
>{{ $t('edit') }}</a> >{{ $t('edit') }}</a>
<a class="table-del" @click="handleDelete(record.id)" <a class="table-del" @click="handleDelete(record.id)" v-has="'area:delete'"
>{{ $t('delete') }}</a> >{{ $t('delete') }}</a>
</div> </div>
</a-table> </a-table>
</a-spin> </a-spin>
<!--新增表单--> <!--新增表单-->
<area-form-modal v-bind="$props" ref="modalForm"></area-form-modal> <area-form-modal v-bind="$props" ref="modalForm" @ok="modalFormOk"></area-form-modal>
</j-modal> </j-modal>
</template> </template>
@@ -57,6 +57,7 @@ import '@assets/less/common.less'
import AreaFormModal from './AreaFormModal' import AreaFormModal from './AreaFormModal'
import { TagsTypeEnums } from '../../../../enums/commonEnums' import { TagsTypeEnums } from '../../../../enums/commonEnums'
import { SimpleListMixin } from '../../../../mixins/SimpleListMixin' import { SimpleListMixin } from '../../../../mixins/SimpleListMixin'
import { postAction } from '../../../../api/manage'
export default { export default {
name: 'AreaModal', name: 'AreaModal',
@@ -78,6 +79,15 @@ export default {
width: 800, width: 800,
visible: false, visible: false,
confirmLoading: false, confirmLoading: false,
url: {
list: 'tag/LawsArea/page',
delete: 'tag/LawsArea/delete',
deleteBatch: 'tag/LawsArea/deleteBatch'
},
// 其他查询参数
filters: {
isModel: this.type
},
columns: [ columns: [
{ {
title: this.$t('system.tag.showArea'), title: this.$t('system.tag.showArea'),
@@ -115,6 +125,11 @@ export default {
width: 60 width: 60
} }
], ],
/* 排序参数--按照排序字段失序 */
isorter: {
column: 'sort',
order: 'ascend'
},
disableMixinCreated: true // 默认不加载数据 disableMixinCreated: true // 默认不加载数据
} }
}, },
@@ -136,7 +151,38 @@ export default {
showModal () { showModal () {
this.title = this.$t('add') this.title = this.$t('add')
this.newVisible = true this.newVisible = true
} },
// 新增编辑回调函数
modalFormOk () {
this.$emit('refresh')
this.loadData()
},
handleDelete: function (id) {
if (!this.url.delete) {
this.$message.error('请设置url.delete属性!')
return
}
const that = this
this.$confirm({
title: '确认删除',
content: '确定要删除此条数据吗?',
onOk: function () {
postAction(that.url.delete, { id: id }).then((res) => {
if (res.success) {
that.$message.success(res.message)
// 判断当前删除的数据是否是最后一页的最后一条数据,如果是的话页码减一
if (that.ipagination.current > 1 && ((that.ipagination.current - 1) * that.ipagination.pageSize) + 1 === that.ipagination.total) {
that.ipagination.current -= 1
}
this.$emit('refresh')
that.loadData()
} else {
that.$message.warning(res.message)
}
})
}
})
},
} }
} }
</script> </script>
@@ -161,7 +161,7 @@
<script> <script>
import { getShowAreaData, queryDictName } from '../../../../api/api' import { addTag, editTag, getShowAreaData, queryDictName } from '../../../../api/api'
import JDictSelectTag from '../../../../components/dict/JDictSelectTag' import JDictSelectTag from '../../../../components/dict/JDictSelectTag'
import { TagsTypeEnums } from '../../../../enums/commonEnums' import { TagsTypeEnums } from '../../../../enums/commonEnums'
@@ -331,6 +331,23 @@ export default {
this.$refs.editForm.validate((valid) => { this.$refs.editForm.validate((valid) => {
console.log('---err-----', valid) console.log('---err-----', valid)
if (valid) { if (valid) {
this.confirmLoading = true
const formData = Object.assign({}, this.form)
let Func = addTag
if (this.isEdit) {
Func = editTag
}
Func(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.$emit('ok')
this.onClose()
} else {
this.$message.error(res.message)
}
}).finally(() => {
this.confirmLoading = false
})
} }
}) })
}, },
@@ -1,6 +1,6 @@
<template> <template>
<j-modal <j-modal
title="title" :title="title"
:width="width" :width="width"
:visible="visible" :visible="visible"
switchFullscreen switchFullscreen
@@ -49,6 +49,7 @@
<script> <script>
import JDictSelectTag from '../../../../components/dict/JDictSelectTag' import JDictSelectTag from '../../../../components/dict/JDictSelectTag'
import { addDict, editDict } from '../../../../api/api'
export default { export default {
name: 'TagContentModal', name: 'TagContentModal',
@@ -90,38 +91,42 @@ export default {
} }
}, },
methods: { methods: {
add (dictId) { add () {
this.dictId = dictId // this.dictId = dictId
this.isEdit = false
// 初始化默认值 // 初始化默认值
this.edit({}) this.edit({})
}, },
edit (record) { edit (record) {
if (record.id) { if (record.id) {
this.dictId = record.dictId this.isEdit = true
} }
this.status = record.status
this.visibleCheck = (record.status === 1)
this.model = Object.assign({}, record) this.model = Object.assign({}, record)
this.model.dictId = this.dictId // this.model.dictId = this.dictI
this.model.status = this.status // this.model.status = this.status
this.visible = true this.visible = true
}, },
handleOk () { handleOk () {
// 这块的新增、编辑直接用数据字典的接口
this.$refs.form.validate(valid => { this.$refs.form.validate(valid => {
if (valid) { if (valid) {
// this.confirmLoading = true this.confirmLoading = true
// const formData = Object.assign(this.model, values) let Func = addDict
// changePromoter(formData).then(res => { if (this.isEdit) {
// if (res.success) { Func = editDict
// this.$message.success(res.message) }
// this.$emit('ok') const formData = Object.assign({}, this.model)
// this.close() Func(formData).then(res => {
// } else { if (res.success) {
// this.$message.error(res.message) this.$message.success(res.message)
// } this.$emit('ok')
// }).finally(() => { this.close()
// this.confirmLoading = false } else {
// }) this.$message.error(res.message)
}
}).finally(() => {
this.confirmLoading = false
})
} }
}) })
}, },
@@ -21,11 +21,11 @@
</a-form> </a-form>
</div> </div>
<div class="table-operator"> <div class="table-operator">
<div class="operator-text" @click="handleAdd"> <div class="operator-text" @click="handleAdd" v-has="'tag:add'">
<a-icon type="plus" /> <a-icon type="plus" />
{{ $t('newlyAdded') }} {{ $t('newlyAdded') }}
</div> </div>
<div class="operator-text" @click="batchDel"> <div class="operator-text" @click="batchDel" v-has="'tag:logicDeleteBatch'">
<a-icon type="delete" /> <a-icon type="delete" />
{{ $t('batchDelete') }} {{ $t('batchDelete') }}
</div> </div>
@@ -52,13 +52,13 @@
</template> </template>
<div slot="action" slot-scope="text, record"> <div slot="action" slot-scope="text, record">
<a class="action-edit" @click="editVisible(record.id)" v-if="record.isReadOnly===0" <a class="action-edit" @click="handleEdit(record)" v-has="'tag:edit'" v-if="record.isReadOnly===0"
>{{ $t('edit') }}</a> >{{ $t('edit') }}</a>
<a class="table-del" v-if="record.isReadOnly===2 || record.isReadOnly===0" @click="deleteVisible(record.id)" <a class="table-del" v-if="record.isReadOnly===2 || record.isReadOnly===0" v-has="'tag:logicDelete'" @click="handleDelete(record.id)"
>{{ $t('delete') }}</a> >{{ $t('delete') }}</a>
</div> </div>
</a-table> </a-table>
<clause-splitting-drawer ref="modalForm" v-bind="$props"></clause-splitting-drawer> <clause-splitting-drawer ref="modalForm" v-bind="$props" @ok="modalFormOk"></clause-splitting-drawer>
</div> </div>
</template> </template>
+16 -11
View File
@@ -31,15 +31,16 @@
</a-form> </a-form>
</div> </div>
<div class="table-operator"> <div class="table-operator">
<div class="operator-text" @click="handleAdd"> <div class="operator-text" @click="handleAdd" v-has="'tag:add'">
<a-icon type="plus" /> <a-icon type="plus" />
{{ $t('newlyAdded') }} {{ $t('newlyAdded') }}
</div> </div>
<div class="operator-text" @click="handleShow"> <!--展示区域管理-->
<div class="operator-text" @click="handleShow" v-has="'tag:area:list'">
<a-icon type="unordered-list" /> <a-icon type="unordered-list" />
{{ $t('system.tag.exhibitionAreaManagement') }} {{ $t('system.tag.exhibitionAreaManagement') }}
</div> </div>
<div class="operator-text" @click="batchDel"> <div class="operator-text" @click="batchDel" v-has="'tag:logicDeleteBatch'">
<a-icon type="delete" /> <a-icon type="delete" />
{{ $t('batchDelete') }} {{ $t('batchDelete') }}
</div> </div>
@@ -67,17 +68,17 @@
</template> </template>
<div slot="action" slot-scope="text, record"> <div slot="action" slot-scope="text, record">
<a class="action-edit" @click="editVisible(record.id)" v-if="record.isReadOnly===0" <a class="action-edit" @click="handleEdit(record)" v-if="record.isReadOnly===0" v-has="'tag:edit'"
>{{ $t('edit') }}</a> >{{ $t('edit') }}</a>
<a class="table-del" v-if="record.isReadOnly===2 || record.isReadOnly===0" @click="deleteVisible(record.id)" <a class="table-del" v-if="record.isReadOnly===2 || record.isReadOnly===0" v-has="'tag:logicDelete'" @click="handleDelete(record.id)"
>{{ $t('delete') }}</a> >{{ $t('delete') }}</a>
</div> </div>
</a-table> </a-table>
</div> </div>
<!--新增字段--> <!--新增字段-->
<standard-drawer ref="modalForm" v-bind="$props"></standard-drawer> <standard-drawer ref="modalForm" v-bind="$props" @ok="modalFormOk"></standard-drawer>
<!--区域管理模态框--> <!--区域管理模态框-->
<area-modal ref="areaModal" v-bind="$props"></area-modal> <area-modal ref="areaModal" v-bind="$props" @refresh="refreshAreaData"></area-modal>
</div> </div>
</template> </template>
@@ -109,9 +110,9 @@ export default {
areasArr: [], areasArr: [],
// 混入中查询等相关接口 // 混入中查询等相关接口
url: { url: {
list: 'tag/onlCgformTag/page', list: 'tag/lawsTag/list',
delete: 'tag/onlCgformTag/logicDelete', delete: 'tag/lawsTag/logicDelete',
deleteBatch: 'tag/onlCgformTag/logicDeleteBatch' deleteBatch: 'tag/lawsTag/logicDeleteBatch'
}, },
filters: { filters: {
isModel: this.type isModel: this.type
@@ -166,7 +167,7 @@ export default {
methods: { methods: {
// 获取展示区域下拉框数据 // 获取展示区域下拉框数据
getShowAreaData () { getShowAreaData () {
getShowAreaData({ type: this.type }).then(res => { getShowAreaData({ isModel: this.type }).then(res => {
if (res.success) { if (res.success) {
this.areasArr = res.result || [] this.areasArr = res.result || []
} }
@@ -175,6 +176,10 @@ export default {
// 展示区域管理 // 展示区域管理
handleShow () { handleShow () {
this.$refs.areaModal.show() this.$refs.areaModal.show()
},
refreshAreaData () {
this.getShowAreaData()
this.queryParam.showArea = undefined
} }
}, },
created () { created () {
+6 -2
View File
@@ -133,9 +133,13 @@ export default {
width: 170 width: 170
} }
], ],
dataSource: [{}], // dataSource: [],
url: { url: {
list: '' list: 'sys/dict/tagDictPage'
},
// 增加其他的查询条件
filters: {
isTagDict: 1 // 是否为标签内容(1是 0否)
} }
} }
}, },
@@ -143,7 +143,6 @@ export const TagListMixin = {
this.loadData(1) this.loadData(1)
}, },
batchDel () { batchDel () {
console.log("------batchDel-----")
if (!this.url.deleteBatch) { if (!this.url.deleteBatch) {
this.$message.error('请设置url.deleteBatch属性!') this.$message.error('请设置url.deleteBatch属性!')
return return