refactor(user): 优化用户管理功能

- 移除用户编码字段
- 添加真实姓名字段- 更新用户角色选择功能
- 优化表单布局和样式- 调整菜单添加提示信息
This commit is contained in:
du.meimei
2025-04-24 17:56:18 +08:00
parent 921f59e72f
commit 79be862637
4 changed files with 149 additions and 45 deletions

View File

@@ -26,7 +26,7 @@
:type="item.type"
:sortable="item.sortable"
:key="index"
:min-width="item.width ? item.width : 225"
:min-width="item.width ? item.width : null"
:fixed="item.fixed"
v-if="!item.type"
>
@@ -35,23 +35,46 @@
</template>
<template #default="scope">
<!--表单校验-->
<el-form-item v-if="item.ruleCode" :prop="'data.' + scope.$index + '.' + item.ruleCode" :rules="item.ruleCode ? item.rules : []">
<el-form-item
v-if="item.ruleCode"
:prop="'data.' + scope.$index + '.' + item.ruleCode"
:rules="item.ruleCode ? item.rules : []"
>
<body-slot :item="item" :scope="scope" v-if="item.render" />
</el-form-item>
<body-slot :item="item" :scope="scope" v-if="!item.ruleCode && item.render" />
<body-slot
:item="item"
:scope="scope"
v-if="!item.ruleCode && item.render"
/>
<!--自定义render模板-->
<!--</el-form>-->
<!--自带的btn 不能有prop 属性-->
<div v-if="!item.selfBtn && !item.prop && !item.type && !item.render" :fixed="item.fixed ? item.fixed : fixed">
<el-button class="normal-button" :disabled="disabled" icon="el-icon-delete" @click="del(scope.row, scope.$index)"></el-button>
<el-button class="normal-button" icon="el-icon-edit-outline" :disabled="disabled" @click="edit(scope.row, scope.$index)"></el-button>
<div
v-if="!item.selfBtn && !item.prop && !item.type && !item.render"
:fixed="item.fixed ? item.fixed : fixed"
>
<el-button
class="normal-button"
:disabled="disabled"
icon="el-icon-delete"
@click="del(scope.row, scope.$index)"
></el-button>
<el-button
class="normal-button"
icon="el-icon-edit-outline"
:disabled="disabled"
@click="edit(scope.row, scope.$index)"
></el-button>
</div>
<!--如果渲染的是selfBtn-->
<div v-if="item.selfBtn && !item.render">
<el-button
v-for="(btn, btnIndex) in item.selfBtn"
:fixed="item.fixed ? item.fixed : fixed"
:disabled="item.disabled !== undefined ? item.disabled : disabled"
:disabled="
item.disabled !== undefined ? item.disabled : disabled
"
:type="btn.type ? btn.type : 'primary'"
:size="btn.size ? btn.size : 'mini'"
:key="btnIndex"
@@ -62,7 +85,11 @@
</el-button>
</div>
<!--提示框 内部判断是否给单元格提示-->
<TooltipScope :scope="scope" :item="item" v-if="!item.type && !item.render && item.prop" />
<TooltipScope
:scope="scope"
:item="item"
v-if="!item.type && !item.render && item.prop"
/>
</template>
</el-table-column>
<!--有设置type 的表格 type 设置的是selection index-->
@@ -85,12 +112,22 @@
v-else-if="item.type === 'radio'"
>
<template #default="scope">
<el-radio v-model="check" :label="scope.$index" @change="setCheck($event, scope)">{{ null }}</el-radio>
<el-radio
v-model="check"
:label="scope.$index"
@change="setCheck($event, scope)"
>{{ null }}</el-radio
>
</template>
</el-table-column>
</template>
<!--自定义默认按钮 ps:增加 一行 删除一行-->
<el-table-column v-if="deletion" :align="align" width="180" :fixed="fixed">
<el-table-column
v-if="deletion"
:align="align"
width="180"
:fixed="fixed"
>
<template slot-scope="scope">
<div>
<el-button
@@ -229,7 +266,9 @@ export default {
this.$emit('select-row', { row: scope.row, index: scope.$index })
},
sortChange(sortData) {
let filters = this.columns.filter(item => item.key === sortData.column.label)
let filters = this.columns.filter(
item => item.key === sortData.column.label
)
if (filters && filters.length > 0) {
sortData.prop = filters[0].prop
}
@@ -238,7 +277,9 @@ export default {
},
//行拖拽
rowDrop() {
const tbody = document.querySelector('.dragTable .el-table__body-wrapper tbody')
const tbody = document.querySelector(
'.dragTable .el-table__body-wrapper tbody'
)
Sortable.create(tbody, {
animation: 180,
onEnd: ({ newIndex, oldIndex }) => {
@@ -249,7 +290,9 @@ export default {
},
//列拖拽 目前有问题 暂未解决
columnDrop() {
const wrapperTr = document.querySelector('.dragTable .el-table__header-wrapper tr')
const wrapperTr = document.querySelector(
'.dragTable .el-table__header-wrapper tr'
)
Sortable.create(wrapperTr, {
animation: 180,
filter: '.el-table-column--selection',
@@ -293,7 +336,9 @@ export default {
addRow(row, index) {
let newRow = JSON.parse(JSON.stringify(row))
for (let item in newRow) {
newRow[item] = this.getDataType(Object.prototype.toString.call(newRow[item]))
newRow[item] = this.getDataType(
Object.prototype.toString.call(newRow[item])
)
}
this.data.splice(index + 1, 0, newRow)
this.$emit('buttonAdd', row, newRow)
@@ -307,7 +352,9 @@ export default {
this.data.splice(index, 1)
if (this.data.length === 0) {
for (let item in newRow) {
newRow[item] = this.getDataType(Object.prototype.toString.call(newRow[item]))
newRow[item] = this.getDataType(
Object.prototype.toString.call(newRow[item])
)
}
this.data.push(newRow)
}