|
|
|
@ -4,8 +4,8 @@ |
|
|
|
<div v-show="showSearch" class="mb-[10px]"> |
|
|
|
<el-card shadow="hover"> |
|
|
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true"> |
|
|
|
<el-form-item label="标签名称" prop="lableName"> |
|
|
|
<el-input v-model="queryParams.lableName" placeholder="请输入标签名称" clearable @keyup.enter="handleQuery" /> |
|
|
|
<el-form-item label="标签名称" prop="labelName"> |
|
|
|
<el-input v-model="queryParams.labelName" placeholder="请输入标签名称" clearable @keyup.enter="handleQuery" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="排序" prop="sort"> |
|
|
|
<el-input v-model="queryParams.sort" placeholder="请输入排序" clearable @keyup.enter="handleQuery" /> |
|
|
|
@ -23,34 +23,34 @@ |
|
|
|
<template #header> |
|
|
|
<el-row :gutter="10" class="mb8"> |
|
|
|
<el-col :span="1.5"> |
|
|
|
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['im:userLable:add']">新增</el-button> |
|
|
|
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['im:userLabel:add']">新增</el-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="1.5"> |
|
|
|
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['im:userLable:edit']">修改</el-button> |
|
|
|
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['im:userLabel:edit']">修改</el-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="1.5"> |
|
|
|
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['im:userLable:remove']">删除</el-button> |
|
|
|
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['im:userLabel:remove']">删除</el-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="1.5"> |
|
|
|
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['im:userLable:export']">导出</el-button> |
|
|
|
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['im:userLabel:export']">导出</el-button> |
|
|
|
</el-col> |
|
|
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> |
|
|
|
</el-row> |
|
|
|
</template> |
|
|
|
|
|
|
|
<el-table v-loading="loading" :data="userLableList" @selection-change="handleSelectionChange"> |
|
|
|
<el-table v-loading="loading" :data="userLabelList" @selection-change="handleSelectionChange"> |
|
|
|
<el-table-column type="selection" width="55" align="center" /> |
|
|
|
<el-table-column label="id" align="center" prop="id" v-if="true" /> |
|
|
|
<el-table-column label="标签名称" align="center" prop="lableName" /> |
|
|
|
<el-table-column label="标签名称" align="center" prop="labelName" /> |
|
|
|
<el-table-column label="排序" align="center" prop="sort" /> |
|
|
|
<el-table-column label="备注" align="center" prop="remark" /> |
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-tooltip content="修改" placement="top"> |
|
|
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['im:userLable:edit']"></el-button> |
|
|
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['im:userLabel:edit']"></el-button> |
|
|
|
</el-tooltip> |
|
|
|
<el-tooltip content="删除" placement="top"> |
|
|
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['im:userLable:remove']"></el-button> |
|
|
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['im:userLabel:remove']"></el-button> |
|
|
|
</el-tooltip> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
@ -60,9 +60,9 @@ |
|
|
|
</el-card> |
|
|
|
<!-- 添加或修改用户分组对话框 --> |
|
|
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body> |
|
|
|
<el-form ref="userLableFormRef" :model="form" :rules="rules" label-width="80px"> |
|
|
|
<el-form-item label="标签名称" prop="lableName"> |
|
|
|
<el-input v-model="form.lableName" placeholder="请输入标签名称" /> |
|
|
|
<el-form ref="userLabelFormRef" :model="form" :rules="rules" label-width="80px"> |
|
|
|
<el-form-item label="标签名称" prop="labelName"> |
|
|
|
<el-input v-model="form.labelName" placeholder="请输入标签名称" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="排序" prop="sort"> |
|
|
|
<el-input v-model="form.sort" placeholder="请输入排序" /> |
|
|
|
@ -81,13 +81,13 @@ |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script setup name="UserLable" lang="ts"> |
|
|
|
import { listUserLable, getUserLable, delUserLable, addUserLable, updateUserLable } from '@/api/im/userLable'; |
|
|
|
import { UserLableVO, UserLableQuery, UserLableForm } from '@/api/im/userLable/types'; |
|
|
|
<script setup name="UserLabel" lang="ts"> |
|
|
|
import { listUserLabel, getUserLabel, delUserLabel, addUserLabel, updateUserLabel } from '@/api/im/userLabel'; |
|
|
|
import { UserLabelVO, UserLabelQuery, UserLabelForm } from '@/api/im/userLabel/types'; |
|
|
|
|
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance; |
|
|
|
|
|
|
|
const userLableList = ref<UserLableVO[]>([]); |
|
|
|
const userLabelList = ref<UserLabelVO[]>([]); |
|
|
|
const buttonLoading = ref(false); |
|
|
|
const loading = ref(true); |
|
|
|
const showSearch = ref(true); |
|
|
|
@ -97,25 +97,25 @@ const multiple = ref(true); |
|
|
|
const total = ref(0); |
|
|
|
|
|
|
|
const queryFormRef = ref<ElFormInstance>(); |
|
|
|
const userLableFormRef = ref<ElFormInstance>(); |
|
|
|
const userLabelFormRef = ref<ElFormInstance>(); |
|
|
|
|
|
|
|
const dialog = reactive<DialogOption>({ |
|
|
|
visible: false, |
|
|
|
title: '' |
|
|
|
}); |
|
|
|
|
|
|
|
const initFormData: UserLableForm = { |
|
|
|
const initFormData: UserLabelForm = { |
|
|
|
id: undefined, |
|
|
|
lableName: undefined, |
|
|
|
labelName: undefined, |
|
|
|
sort: undefined, |
|
|
|
remark: undefined |
|
|
|
} |
|
|
|
const data = reactive<PageData<UserLableForm, UserLableQuery>>({ |
|
|
|
const data = reactive<PageData<UserLabelForm, UserLabelQuery>>({ |
|
|
|
form: {...initFormData}, |
|
|
|
queryParams: { |
|
|
|
pageNum: 1, |
|
|
|
pageSize: 10, |
|
|
|
lableName: undefined, |
|
|
|
labelName: undefined, |
|
|
|
sort: undefined, |
|
|
|
params: { |
|
|
|
} |
|
|
|
@ -124,7 +124,7 @@ const data = reactive<PageData<UserLableForm, UserLableQuery>>({ |
|
|
|
id: [ |
|
|
|
{ required: true, message: "id不能为空", trigger: "blur" } |
|
|
|
], |
|
|
|
lableName: [ |
|
|
|
labelName: [ |
|
|
|
{ required: true, message: "标签名称不能为空", trigger: "blur" } |
|
|
|
], |
|
|
|
sort: [ |
|
|
|
@ -141,8 +141,8 @@ const { queryParams, form, rules } = toRefs(data); |
|
|
|
/** 查询用户分组列表 */ |
|
|
|
const getList = async () => { |
|
|
|
loading.value = true; |
|
|
|
const res = await listUserLable(queryParams.value); |
|
|
|
userLableList.value = res.rows; |
|
|
|
const res = await listUserLabel(queryParams.value); |
|
|
|
userLabelList.value = res.rows; |
|
|
|
total.value = res.total; |
|
|
|
loading.value = false; |
|
|
|
} |
|
|
|
@ -156,7 +156,7 @@ const cancel = () => { |
|
|
|
/** 表单重置 */ |
|
|
|
const reset = () => { |
|
|
|
form.value = {...initFormData}; |
|
|
|
userLableFormRef.value?.resetFields(); |
|
|
|
userLabelFormRef.value?.resetFields(); |
|
|
|
} |
|
|
|
|
|
|
|
/** 搜索按钮操作 */ |
|
|
|
@ -172,7 +172,7 @@ const resetQuery = () => { |
|
|
|
} |
|
|
|
|
|
|
|
/** 多选框选中数据 */ |
|
|
|
const handleSelectionChange = (selection: UserLableVO[]) => { |
|
|
|
const handleSelectionChange = (selection: UserLabelVO[]) => { |
|
|
|
ids.value = selection.map(item => item.id); |
|
|
|
single.value = selection.length != 1; |
|
|
|
multiple.value = !selection.length; |
|
|
|
@ -186,10 +186,10 @@ const handleAdd = () => { |
|
|
|
} |
|
|
|
|
|
|
|
/** 修改按钮操作 */ |
|
|
|
const handleUpdate = async (row?: UserLableVO) => { |
|
|
|
const handleUpdate = async (row?: UserLabelVO) => { |
|
|
|
reset(); |
|
|
|
const _id = row?.id || ids.value[0] |
|
|
|
const res = await getUserLable(_id); |
|
|
|
const res = await getUserLabel(_id); |
|
|
|
Object.assign(form.value, res.data); |
|
|
|
dialog.visible = true; |
|
|
|
dialog.title = "修改用户分组"; |
|
|
|
@ -197,13 +197,13 @@ const handleUpdate = async (row?: UserLableVO) => { |
|
|
|
|
|
|
|
/** 提交按钮 */ |
|
|
|
const submitForm = () => { |
|
|
|
userLableFormRef.value?.validate(async (valid: boolean) => { |
|
|
|
userLabelFormRef.value?.validate(async (valid: boolean) => { |
|
|
|
if (valid) { |
|
|
|
buttonLoading.value = true; |
|
|
|
if (form.value.id) { |
|
|
|
await updateUserLable(form.value).finally(() => buttonLoading.value = false); |
|
|
|
await updateUserLabel(form.value).finally(() => buttonLoading.value = false); |
|
|
|
} else { |
|
|
|
await addUserLable(form.value).finally(() => buttonLoading.value = false); |
|
|
|
await addUserLabel(form.value).finally(() => buttonLoading.value = false); |
|
|
|
} |
|
|
|
proxy?.$modal.msgSuccess("操作成功"); |
|
|
|
dialog.visible = false; |
|
|
|
@ -213,19 +213,19 @@ const submitForm = () => { |
|
|
|
} |
|
|
|
|
|
|
|
/** 删除按钮操作 */ |
|
|
|
const handleDelete = async (row?: UserLableVO) => { |
|
|
|
const handleDelete = async (row?: UserLabelVO) => { |
|
|
|
const _ids = row?.id || ids.value; |
|
|
|
await proxy?.$modal.confirm('是否确认删除用户分组编号为"' + _ids + '"的数据项?').finally(() => loading.value = false); |
|
|
|
await delUserLable(_ids); |
|
|
|
await delUserLabel(_ids); |
|
|
|
proxy?.$modal.msgSuccess("删除成功"); |
|
|
|
await getList(); |
|
|
|
} |
|
|
|
|
|
|
|
/** 导出按钮操作 */ |
|
|
|
const handleExport = () => { |
|
|
|
proxy?.download('im/userLable/export', { |
|
|
|
proxy?.download('im/userLabel/export', { |
|
|
|
...queryParams.value |
|
|
|
}, `userLable_${new Date().getTime()}.xlsx`) |
|
|
|
}, `userLabel_${new Date().getTime()}.xlsx`) |
|
|
|
} |
|
|
|
|
|
|
|
onMounted(() => { |