|
@@ -19,7 +19,7 @@
|
|
<Plus />
|
|
<Plus />
|
|
</el-icon>
|
|
</el-icon>
|
|
</el-button>
|
|
</el-button>
|
|
- <el-button type="danger" @click="batch_del">
|
|
|
|
|
|
+ <el-button type="danger" @click="batch_del" :disabled="curSelectionRows.length === 0">
|
|
<el-icon class="btn-icon">
|
|
<el-icon class="btn-icon">
|
|
<Delete />
|
|
<Delete />
|
|
</el-icon>
|
|
</el-icon>
|
|
@@ -53,7 +53,7 @@
|
|
v-if="visible"
|
|
v-if="visible"
|
|
ref="dialogUserRef"
|
|
ref="dialogUserRef"
|
|
v-model="visible"
|
|
v-model="visible"
|
|
- :title="`${isCreate ? '新增' : '编辑'}用户`"
|
|
|
|
|
|
+ :title="`${isCreate ? '新增' : '编辑'}岗位`"
|
|
width="600px"
|
|
width="600px"
|
|
:form-data="activeData"
|
|
:form-data="activeData"
|
|
:form-options="formOptions"
|
|
:form-options="formOptions"
|
|
@@ -62,7 +62,7 @@
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script lang="tsx" setup>
|
|
<script lang="tsx" setup>
|
|
-import user from '@/api/system/user'
|
|
|
|
|
|
+import post from '@/api/system/post'
|
|
import { computed, nextTick, ref, watch } from 'vue'
|
|
import { computed, nextTick, ref, watch } from 'vue'
|
|
import { ElMessage, ElTree } from 'element-plus'
|
|
import { ElMessage, ElTree } from 'element-plus'
|
|
import { useTablePage } from '@/hooks/useTablePage'
|
|
import { useTablePage } from '@/hooks/useTablePage'
|
|
@@ -74,42 +74,21 @@ const isCreate = ref(true)
|
|
const activeData = ref({})
|
|
const activeData = ref({})
|
|
const formsDialog = [
|
|
const formsDialog = [
|
|
{
|
|
{
|
|
- prop: 'username',
|
|
|
|
- label: '登录账号',
|
|
|
|
|
|
+ prop: 'name',
|
|
|
|
+ label: '岗位名称',
|
|
itemType: 'input',
|
|
itemType: 'input',
|
|
- placeholder: '用于登录系统',
|
|
|
|
- rules: [{ required: true, message: '请输入登录账号', trigger: 'blur' }]
|
|
|
|
|
|
+ rules: [{ required: true, message: '请输入岗位名称', trigger: 'blur' }]
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- prop: 'password',
|
|
|
|
- label: '登录密码',
|
|
|
|
|
|
+ prop: 'code',
|
|
|
|
+ label: '岗位编码',
|
|
itemType: 'input',
|
|
itemType: 'input',
|
|
- rules: [{ required: true, message: '请输入登录密码', trigger: 'blur' }]
|
|
|
|
|
|
+ rules: [{ required: true, message: '请输入岗位编码', trigger: 'blur' }]
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- prop: 'password2',
|
|
|
|
- label: '确认密码',
|
|
|
|
- itemType: 'input',
|
|
|
|
- rules: [{ required: true, message: '请再次输入密码', trigger: 'blur' }]
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- prop: 'nickName',
|
|
|
|
- label: '昵称',
|
|
|
|
- itemType: 'input'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- prop: 'realName',
|
|
|
|
- label: '姓名',
|
|
|
|
- itemType: 'input'
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- prop: 'sex',
|
|
|
|
- label: '性别',
|
|
|
|
- itemType: 'radio',
|
|
|
|
- options: [
|
|
|
|
- { value: '男', label: '男' },
|
|
|
|
- { value: '女', label: '女' }
|
|
|
|
- ]
|
|
|
|
|
|
+ prop: 'sort',
|
|
|
|
+ label: '排序',
|
|
|
|
+ itemType: 'inputNumber'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
prop: 'status',
|
|
prop: 'status',
|
|
@@ -119,26 +98,15 @@ const formsDialog = [
|
|
inactiveText: '否'
|
|
inactiveText: '否'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- prop: 'roleIds',
|
|
|
|
- label: '所属角色',
|
|
|
|
- itemType: 'select',
|
|
|
|
- multiple: true,
|
|
|
|
- collapseTags: true,
|
|
|
|
- maxCollapseTags: 1,
|
|
|
|
- filterable: true,
|
|
|
|
- options: []
|
|
|
|
|
|
+ prop: 'remark',
|
|
|
|
+ label: '备注',
|
|
|
|
+ itemType: 'input'
|
|
}
|
|
}
|
|
]
|
|
]
|
|
// 新增的表单 和 编辑的表单
|
|
// 新增的表单 和 编辑的表单
|
|
const formOptions = computed(() => {
|
|
const formOptions = computed(() => {
|
|
- // 去掉 formsDialog 下标为 1 2 的数据
|
|
|
|
- const { 1: password, 2: password2, ...rest } = formsDialog
|
|
|
|
- let editFormDialog = []
|
|
|
|
- for (let i in rest) {
|
|
|
|
- editFormDialog.push(rest[i])
|
|
|
|
- }
|
|
|
|
return {
|
|
return {
|
|
- forms: isCreate.value ? formsDialog : editFormDialog,
|
|
|
|
|
|
+ forms: formsDialog,
|
|
labelWidth: 120,
|
|
labelWidth: 120,
|
|
span: 30,
|
|
span: 30,
|
|
showResetBtn: true,
|
|
showResetBtn: true,
|
|
@@ -164,9 +132,8 @@ const forms = ref([
|
|
const queryList = async () => {
|
|
const queryList = async () => {
|
|
const { options, searchParams } = tableOpts
|
|
const { options, searchParams } = tableOpts
|
|
options.loading = true
|
|
options.loading = true
|
|
- console.log('搜索参数: ', JSON.stringify(tableOpts.searchParams))
|
|
|
|
try {
|
|
try {
|
|
- const { records: list, total } = await user.userPageApi(searchParams)
|
|
|
|
|
|
+ const { records: list, total } = await post.postPageApi(searchParams)
|
|
tableOpts.total = total
|
|
tableOpts.total = total
|
|
tableOpts.list = list
|
|
tableOpts.list = list
|
|
} catch {
|
|
} catch {
|
|
@@ -182,18 +149,13 @@ const queryList = async () => {
|
|
// table 参数
|
|
// table 参数
|
|
const columns = [
|
|
const columns = [
|
|
{
|
|
{
|
|
- prop: 'filterAvatar',
|
|
|
|
- label: '头像',
|
|
|
|
|
|
+ prop: 'name',
|
|
|
|
+ label: '岗位名称',
|
|
minWidth: 80,
|
|
minWidth: 80,
|
|
slots: {
|
|
slots: {
|
|
default: 'filterAvatarSlot'
|
|
default: 'filterAvatarSlot'
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- {
|
|
|
|
- prop: 'username',
|
|
|
|
- label: '登录账号',
|
|
|
|
- minWidth: 100
|
|
|
|
- },
|
|
|
|
{
|
|
{
|
|
prop: 'status',
|
|
prop: 'status',
|
|
label: '状态',
|
|
label: '状态',
|
|
@@ -203,18 +165,18 @@ const columns = [
|
|
}
|
|
}
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- prop: 'nickName',
|
|
|
|
- label: '昵称',
|
|
|
|
|
|
+ prop: 'code',
|
|
|
|
+ label: '编码',
|
|
minWidth: 100
|
|
minWidth: 100
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- prop: 'realName',
|
|
|
|
- label: '姓名',
|
|
|
|
|
|
+ prop: 'remark',
|
|
|
|
+ label: '备注',
|
|
minWidth: 100
|
|
minWidth: 100
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- prop: 'sex',
|
|
|
|
- label: '性别',
|
|
|
|
|
|
+ prop: 'sort',
|
|
|
|
+ label: '排序',
|
|
minWidth: 80
|
|
minWidth: 80
|
|
},
|
|
},
|
|
{
|
|
{
|
|
@@ -269,7 +231,7 @@ const { searchData, tableOpts, checkedColumns, activeColumns, curSelectionRows,
|
|
// 删除
|
|
// 删除
|
|
const deleteItem = async ids => {
|
|
const deleteItem = async ids => {
|
|
try {
|
|
try {
|
|
- await user.userDeleteApi(ids)
|
|
|
|
|
|
+ await post.postDeleteApi(ids)
|
|
updateParams()
|
|
updateParams()
|
|
} catch (e) {
|
|
} catch (e) {
|
|
console.log('删除失败')
|
|
console.log('删除失败')
|
|
@@ -289,14 +251,9 @@ const batch_del = () => {
|
|
}
|
|
}
|
|
|
|
|
|
const table_edit = async row => {
|
|
const table_edit = async row => {
|
|
- try {
|
|
|
|
- const data = await user.userRoleIdsApi({ id: row.id })
|
|
|
|
- isCreate.value = false
|
|
|
|
- activeData.value = { ...row, status: row.status ? true : false, roleIds: data }
|
|
|
|
- visible.value = true
|
|
|
|
- } catch (e) {
|
|
|
|
- ElMessage.error(`获取用户所属角色失败~`)
|
|
|
|
- }
|
|
|
|
|
|
+ isCreate.value = false
|
|
|
|
+ activeData.value = { ...row, status: row.status ? true : false }
|
|
|
|
+ visible.value = true
|
|
}
|
|
}
|
|
|
|
|
|
// 弹窗事件
|
|
// 弹窗事件
|
|
@@ -305,7 +262,7 @@ const submitHandler = async params => {
|
|
try {
|
|
try {
|
|
params.status = params.status ? 1 : 0
|
|
params.status = params.status ? 1 : 0
|
|
params.id = activeData.value.id ? activeData.value.id : null
|
|
params.id = activeData.value.id ? activeData.value.id : null
|
|
- await user.userAddOrEditSaveApi(params)
|
|
|
|
|
|
+ await post.postAddOrEditSaveApi(params)
|
|
ElMessage.success(`${isCreate.value ? '新增' : '修改'}成功~`)
|
|
ElMessage.success(`${isCreate.value ? '新增' : '修改'}成功~`)
|
|
visible.value = false
|
|
visible.value = false
|
|
updateParams()
|
|
updateParams()
|