【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"/>
</a-form-model-item>
</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获取文件的相应信息
const getFileInfo = (params) => getAction('/sys/oss/file/queryById', params)
@@ -162,5 +170,10 @@ export {
getDictItemsFromCache,
getShowAreaData,
getFileInfo
addAreaData,
editAreaData,
getFileInfo,
addTag,
editTag
}
+4 -3
View File
@@ -116,9 +116,9 @@
<a-icon slot="addonAfter" type="setting" @click="selectIcons" />
</a-input>
</a-form-model-item>
<!--v-show="show"-->
<a-form-model-item
v-show="show"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
prop="sortNo"
@@ -184,10 +184,11 @@
<script>
import { addPermission, editPermission, queryTreeList, duplicateCheck } from '@/api/api'
import Icons from './icon/Icons'
import JDictSelectTag from '../../../components/dict/JDictSelectTag'
export default {
name: 'PermissionModal',
components: { Icons },
components: { Icons, JDictSelectTag },
data () {
return {
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-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">
{{ translate(item.langKey) }}
</a-select-option>
@@ -39,9 +39,9 @@
:maxLength="50"
></a-input>
</a-form-model-item>
<!--序号-->
<a-form-model-item :label="$t('dict.rankingValue')" prop="sortOrder">
<a-input-number :min="1" v-model="model.sortOrder" />
<!--排序值-->
<a-form-model-item :label="$t('dict.rankingValue')" prop="sort">
<a-input-number :min="1" v-model="model.sort" />
{{ $t('dict.valueSmallerIsHigher')}}
</a-form-model-item>
<!--<a-form-model-item :label="$t('system.tag.displayOrder')" prop="orderNum">-->
@@ -56,6 +56,7 @@
<script>
import { TagsTypeEnums } from '../../../../enums/commonEnums'
import { addAreaData, editAreaData } from '../../../../api/api'
export default {
name: 'AreaFormModal',
@@ -102,7 +103,7 @@ export default {
{ required: true, message: this.$t('pleaseEnter') + this.$t('system.tag.showArea'), trigger: 'blur' },
{ min: 1, max: 50, message: this.$t('charactersLength'), trigger: 'blur' }
],
sortOrder: [
sort: [
{ required: true, message: this.$t('enterSortingNumber'), trigger: 'change' }
]
},
@@ -113,14 +114,14 @@ export default {
add () {
// 初始化默认值
this.edit({
isModel: this.type
isModel: this.type,
sort: 1
})
},
edit (record) {
if (record.id) {
}
this.model = Object.assign({}, record)
// 所属模块-转化成NUMBER 方便回显
this.model.isModel = Number(this.model.isModel)
this.visible = true
},
translate (key) {
@@ -129,23 +130,23 @@ export default {
handleOk () {
this.$refs.form.validate(valid => {
if (valid) {
// this.confirmLoading = true
// const formData = Object.assign({}, this.model)
// let Func
// if (record.id) {
// Func = ''
// }
// Func(formData).then(res => {
// if (res.success) {
// this.$message.success(res.message)
// this.$emit('ok')
// this.close()
// } else {
// this.$message.error(res.message)
// }
// }).finally(() => {
// this.confirmLoading = false
// })
this.confirmLoading = true
const formData = Object.assign({}, this.model)
let Func = addAreaData
if (this.model.id) {
Func = editAreaData
}
Func(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.$emit('ok')
this.close()
} else {
this.$message.error(res.message)
}
}).finally(() => {
this.confirmLoading = false
})
}
})
},
+51 -5
View File
@@ -14,7 +14,7 @@
@cancel="handleCancel">
<a-spin :spinning="confirmLoading">
<div class="table-operator">
<div class="operator-text" @click="handleAdd">
<div class="operator-text" @click="handleAdd" v-has="'area:add'">
<a-icon type="plus" />
{{$t('add')}}
</div>
@@ -40,15 +40,15 @@
</template>
<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>
<a class="table-del" @click="handleDelete(record.id)"
<a class="table-del" @click="handleDelete(record.id)" v-has="'area:delete'"
>{{ $t('delete') }}</a>
</div>
</a-table>
</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>
</template>
@@ -57,6 +57,7 @@ import '@assets/less/common.less'
import AreaFormModal from './AreaFormModal'
import { TagsTypeEnums } from '../../../../enums/commonEnums'
import { SimpleListMixin } from '../../../../mixins/SimpleListMixin'
import { postAction } from '../../../../api/manage'
export default {
name: 'AreaModal',
@@ -78,6 +79,15 @@ export default {
width: 800,
visible: false,
confirmLoading: false,
url: {
list: 'tag/LawsArea/page',
delete: 'tag/LawsArea/delete',
deleteBatch: 'tag/LawsArea/deleteBatch'
},
// 其他查询参数
filters: {
isModel: this.type
},
columns: [
{
title: this.$t('system.tag.showArea'),
@@ -115,6 +125,11 @@ export default {
width: 60
}
],
/* 排序参数--按照排序字段失序 */
isorter: {
column: 'sort',
order: 'ascend'
},
disableMixinCreated: true // 默认不加载数据
}
},
@@ -136,7 +151,38 @@ export default {
showModal () {
this.title = this.$t('add')
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>
@@ -161,7 +161,7 @@
<script>
import { getShowAreaData, queryDictName } from '../../../../api/api'
import { addTag, editTag, getShowAreaData, queryDictName } from '../../../../api/api'
import JDictSelectTag from '../../../../components/dict/JDictSelectTag'
import { TagsTypeEnums } from '../../../../enums/commonEnums'
@@ -331,6 +331,23 @@ export default {
this.$refs.editForm.validate((valid) => {
console.log('---err-----', 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>
<j-modal
title="title"
:title="title"
:width="width"
:visible="visible"
switchFullscreen
@@ -49,6 +49,7 @@
<script>
import JDictSelectTag from '../../../../components/dict/JDictSelectTag'
import { addDict, editDict } from '../../../../api/api'
export default {
name: 'TagContentModal',
@@ -90,38 +91,42 @@ export default {
}
},
methods: {
add (dictId) {
this.dictId = dictId
add () {
// this.dictId = dictId
this.isEdit = false
// 初始化默认值
this.edit({})
},
edit (record) {
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.dictId = this.dictId
this.model.status = this.status
// this.model.dictId = this.dictI
// this.model.status = this.status
this.visible = true
},
handleOk () {
// 这块的新增、编辑直接用数据字典的接口
this.$refs.form.validate(valid => {
if (valid) {
// this.confirmLoading = true
// const formData = Object.assign(this.model, values)
// changePromoter(formData).then(res => {
// if (res.success) {
// this.$message.success(res.message)
// this.$emit('ok')
// this.close()
// } else {
// this.$message.error(res.message)
// }
// }).finally(() => {
// this.confirmLoading = false
// })
this.confirmLoading = true
let Func = addDict
if (this.isEdit) {
Func = editDict
}
const formData = Object.assign({}, this.model)
Func(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.$emit('ok')
this.close()
} else {
this.$message.error(res.message)
}
}).finally(() => {
this.confirmLoading = false
})
}
})
},
@@ -21,11 +21,11 @@
</a-form>
</div>
<div class="table-operator">
<div class="operator-text" @click="handleAdd">
<div class="operator-text" @click="handleAdd" v-has="'tag:add'">
<a-icon type="plus" />
{{ $t('newlyAdded') }}
</div>
<div class="operator-text" @click="batchDel">
<div class="operator-text" @click="batchDel" v-has="'tag:logicDeleteBatch'">
<a-icon type="delete" />
{{ $t('batchDelete') }}
</div>
@@ -52,13 +52,13 @@
</template>
<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>
<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>
</div>
</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>
</template>
+16 -11
View File
@@ -31,15 +31,16 @@
</a-form>
</div>
<div class="table-operator">
<div class="operator-text" @click="handleAdd">
<div class="operator-text" @click="handleAdd" v-has="'tag:add'">
<a-icon type="plus" />
{{ $t('newlyAdded') }}
</div>
<div class="operator-text" @click="handleShow">
<!--展示区域管理-->
<div class="operator-text" @click="handleShow" v-has="'tag:area:list'">
<a-icon type="unordered-list" />
{{ $t('system.tag.exhibitionAreaManagement') }}
</div>
<div class="operator-text" @click="batchDel">
<div class="operator-text" @click="batchDel" v-has="'tag:logicDeleteBatch'">
<a-icon type="delete" />
{{ $t('batchDelete') }}
</div>
@@ -67,17 +68,17 @@
</template>
<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>
<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>
</div>
</a-table>
</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>
</template>
@@ -109,9 +110,9 @@ export default {
areasArr: [],
// 混入中查询等相关接口
url: {
list: 'tag/onlCgformTag/page',
delete: 'tag/onlCgformTag/logicDelete',
deleteBatch: 'tag/onlCgformTag/logicDeleteBatch'
list: 'tag/lawsTag/list',
delete: 'tag/lawsTag/logicDelete',
deleteBatch: 'tag/lawsTag/logicDeleteBatch'
},
filters: {
isModel: this.type
@@ -166,7 +167,7 @@ export default {
methods: {
// 获取展示区域下拉框数据
getShowAreaData () {
getShowAreaData({ type: this.type }).then(res => {
getShowAreaData({ isModel: this.type }).then(res => {
if (res.success) {
this.areasArr = res.result || []
}
@@ -175,6 +176,10 @@ export default {
// 展示区域管理
handleShow () {
this.$refs.areaModal.show()
},
refreshAreaData () {
this.getShowAreaData()
this.queryParam.showArea = undefined
}
},
created () {
+6 -2
View File
@@ -133,9 +133,13 @@ export default {
width: 170
}
],
dataSource: [{}],
// dataSource: [],
url: {
list: ''
list: 'sys/dict/tagDictPage'
},
// 增加其他的查询条件
filters: {
isTagDict: 1 // 是否为标签内容(1是 0否)
}
}
},
@@ -143,7 +143,6 @@ export const TagListMixin = {
this.loadData(1)
},
batchDel () {
console.log("------batchDel-----")
if (!this.url.deleteBatch) {
this.$message.error('请设置url.deleteBatch属性!')
return