Browse Source

Merge remote-tracking branch 'origin/master'

master
zy 2 months ago
parent
commit
9007c287be
  1. 44
      src/api/system/taglibrary/index.ts
  2. 1
      src/utils/dict.ts
  3. 172
      src/views/system/taglibrary/TagLibraryForm.vue
  4. 186
      src/views/system/taglibrary/index.vue
  5. 118
      src/views/system/task/form.vue
  6. 217
      src/views/system/task/index.vue
  7. 44
      src/views/system/user/enterprisesDetail.vue
  8. 215
      src/views/system/user/examine.vue
  9. 59
      src/views/system/user/examineform.vue

44
src/api/system/taglibrary/index.ts

@ -0,0 +1,44 @@
import request from '@/config/axios'
// 企业标签 VO
export interface TagLibraryVO {
id: number // 签的唯一标识,自增主键
tagName: string // 标签的名称
parentTagId: number // 父标签的ID
tagLevel: number // 标签层级(一级、二级、三级)
tagType: number // 1、企业标签2、执法标签
sort: number
}
// 企业标签 API
export const TagLibraryApi = {
// 查询企业标签分页
getTagLibraryPage: async (params: any) => {
return await request.get({ url: `/system/tag-library/page`, params })
},
// 查询企业标签详情
getTagLibrary: async (id: number) => {
return await request.get({ url: `/system/tag-library/get?id=` + id })
},
// 新增企业标签
createTagLibrary: async (data: TagLibraryVO) => {
return await request.post({ url: `/system/tag-library/create`, data })
},
// 修改企业标签
updateTagLibrary: async (data: TagLibraryVO) => {
return await request.put({ url: `/system/tag-library/update`, data })
},
// 删除企业标签
deleteTagLibrary: async (id: number) => {
return await request.delete({ url: `/system/tag-library/delete?id=` + id })
},
// 导出企业标签 Excel
exportTagLibrary: async (params) => {
return await request.download({ url: `/system/tag-library/export-excel`, params })
},
}

1
src/utils/dict.ts

@ -131,6 +131,7 @@ export enum DICT_TYPE {
SYSTEM_SOCIAL_TYPE = 'system_social_type',
USER_AUDIT_TYPE = 'user_audit_type',
WX_USER_TYPE = 'wx_user_type',
TAG_TYPE = 'tag_type',
// ========== 企业 模块 ==========
ENTERPRISES_TYPE='enterprises_type',

172
src/views/system/taglibrary/TagLibraryForm.vue

@ -0,0 +1,172 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="类型" prop="tagType">
<el-select v-model="formData.tagType" placeholder="请选择1、企业标签2、执法标签">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.TAG_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="父标签的ID" prop="tagName">
<el-select
v-model="formData.parentId"
placeholder="请选择标签"
filterable
clearable
>
<!-- 使用递归方法生成多层级选项 -->
<template v-for="option in list" :key="option.id">
<el-option
:label="option.tagName"
:value="option.id"
:style="{ paddingLeft: option.tag_level * 20 + 'px' }"
>
{{ option.tagName }}
</el-option>
<!-- 如果有子选项递归渲染 -->
<template v-for="child in option.children" :key="child.id">
<el-option :label="'-- ' + child.tagName" :value="child.id">
{{ '-- ' + child.tagName }}
</el-option>
</template>
</template>
</el-select>
</el-form-item>
<el-form-item label="标签的名称" prop="tagName">
<el-input v-model="formData.tagName" placeholder="请输入标签的名称" />
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model="formData.sort" placeholder="排序" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { TagLibraryApi, TagLibraryVO } from '@/api/system/taglibrary'
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
/** 企业标签 表单 */
defineOptions({ name: 'TagLibraryForm' })
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
tagId: undefined,
tagName: undefined,
parentId: undefined,
tagLevel: undefined,
tagType: undefined,
sort: undefined
})
const formRules = reactive({
tagName: [{ required: true, message: '标签的名称不能为空', trigger: 'blur' }],
tagLevel: [{ required: true, message: '标签层级(一级、二级、三级)不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
tagName: undefined,
parentTagId: undefined,
tagLevel: undefined,
tagType: undefined,
createTime: [],
})
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
//
levelList()
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await TagLibraryApi.getTagLibrary(id)
console.log('formData.value=>', formData.value)
} finally {
formLoading.value = false
}
}
}
const list:any = ref([])
const levelList =async ()=>{
const data = await TagLibraryApi.getTagLibraryPage(queryParams)
list.value = data
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
await formRef.value.validate()
//
formLoading.value = true
try {
const data = formData.value as unknown as TagLibraryVO
if (formType.value === 'create') {
await TagLibraryApi.createTagLibrary(data)
message.success(t('common.createSuccess'))
} else {
await TagLibraryApi.updateTagLibrary(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
tagId: undefined,
tagName: undefined,
parentId: undefined,
tagLevel: undefined,
tagType: undefined,
sort: undefined
}
formRef.value?.resetFields()
}
</script>

186
src/views/system/taglibrary/index.vue

@ -0,0 +1,186 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="名称" prop="tagName">
<el-input
v-model="queryParams.tagName"
placeholder="请输入标签的名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="父标签" prop="parentTagId">
<el-input
v-model="queryParams.parentId"
placeholder="请输入父标签的ID"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="类型" prop="tagType">
<el-select
v-model="queryParams.tagType"
placeholder="请选择1、企业标签2、执法标签"
clearable
class="!w-240px"
>
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['system:tag-library:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-tree
:data="list"
node-key="id"
:props="treeProps"
highlight-current
default-expand-all
@node-click="handleNodeClick"
>
<template #default="{ node, data }">
<span>{{ node.label }}{{ data.tagName }}</span>
<el-tag size="small" type="info">层级: {{ data.tagLevel }}</el-tag>
<!-- <el-tag size="small" :type="data.tag_type === 1 ? 'success' : 'warning'">
{{ data.tag_type === 1 ? '企业标签' : '执法标签' }}
</el-tag> -->
<el-button type="text" @click="openForm('update', data.id)"><el-icon><EditPen /></el-icon></el-button>
<el-button type="text" @click="handleDelete(data.id)"><el-icon><DeleteFilled /></el-icon></el-button>
</template>
</el-tree>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<TagLibraryForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { TagLibraryApi, TagLibraryVO } from '@/api/system/taglibrary/index'
import TagLibraryForm from './TagLibraryForm.vue'
/** 企业标签 列表 */
defineOptions({ name: 'TagLibrary' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const list = ref<TagLibraryVO[]>([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
tagName: undefined,
parentId: undefined,
tagLevel: undefined,
tagType: undefined,
createTime: [],
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await TagLibraryApi.getTagLibraryPage(queryParams)
list.value = data
} finally {
loading.value = false
}
}
const treeProps = ref({
label: "tag_name", //
children: "children", //
})
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
const handleNodeClick = (node) => {
console.log("当前点击的标签:", node);
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await TagLibraryApi.deleteTagLibrary(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await TagLibraryApi.exportTagLibrary(queryParams)
download.excel(data, '企业标签.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 初始化 **/
onMounted(() => {
getList()
})
</script>

118
src/views/system/task/form.vue

@ -0,0 +1,118 @@
<template>
<el-dialog :title="title" v-model="show" width="500px" append-to-body>
<el-form ref="roleRef" :model="form" :rules="rule" label-width="100px">
<el-form-item label="任务标题" prop="roleName">
<el-input v-model="form.roleName" placeholder="请输入任务标题" />
</el-form-item>
<el-form-item label="任务类型" prop="roleSort">
<el-select placeholder="请选择任务类型">
<el-option
v-for="dict in task_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="执行周期">
<el-select placeholder="请选择执行周期">
<el-option
v-for="dict in task_period_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="执行日期">
<el-date-picker
type="daterange"
range-separator="至"
start-placeholder="请选择开始日期"
end-placeholder="请选择结束日期"
/>
</el-form-item>
<el-form-item label="任务内容">
<el-input
type="textarea"
:autosize="{
minRows: 2,
}"
placeholder="请输入任务内容"
/>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
const title = ref("");
const show = ref(false);
const form = ref({});
const rule = ref({});
const { proxy } = getCurrentInstance();
const { task_period_type, task_type } = proxy.useDict(
"task_period_type",
"task_type",
);
/** 提交按钮 */
function submitForm() {
proxy.$refs["roleRef"].validate((valid) => {
if (valid) {
if (form.value.roleId != undefined) {
form.value.menuIds = getMenuAllCheckedKeys();
updateRole(form.value).then((response) => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
form.value.menuIds = getMenuAllCheckedKeys();
addRole(form.value).then((response) => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
});
}
/** 取消按钮 */
function cancel() {
show.value = false;
reset();
}
/** 重置新增的表单以及其他数据 */
function reset() {
form.value = {
roleId: undefined,
roleName: undefined,
roleKey: undefined,
roleSort: 0,
status: "0",
menuIds: [],
deptIds: [],
menuCheckStrictly: true,
deptCheckStrictly: true,
remark: undefined,
};
proxy.resetForm("roleRef");
}
function open(param) {
title.value = param.title;
show.value = true;
}
defineExpose({ open });
</script>
<style scoped lang="scss"></style>

217
src/views/system/task/index.vue

@ -0,0 +1,217 @@
<template>
<section class="app-container">
<el-form
:model="queryParams"
ref="queryRef"
v-show="showSearch"
:inline="true"
label-width="auto"
>
<el-form-item label="任务标题" prop="roleName">
<el-input
v-model="queryParams.roleName"
placeholder="请输入角色名称"
clearable
style="width: 240px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="权限字符" prop="roleKey">
<el-input
v-model="queryParams.roleKey"
placeholder="请输入权限字符"
clearable
style="width: 240px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="任务类型" prop="status">
<el-select
v-model="queryParams.status"
placeholder="角色状态"
clearable
style="width: 240px"
>
<el-option
v-for="dict in sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间" style="width: 308px">
<el-date-picker
v-model="dateRange"
value-format="YYYY-MM-DD"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">
搜索
</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="create()"
>新增</el-button
>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="Download"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['system:role:export']"-->
<!-- >导出</el-button-->
<!-- >-->
<!-- </el-col>-->
<right-toolbar
v-model:showSearch="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<!-- 表格数据 -->
<el-table v-loading="loading" :data="list">
<el-table-column label="任务标题" prop="roleId" align="center" />
<el-table-column
label="执行周期"
prop="roleName"
:show-overflow-tooltip="true"
align="center"
/>
<el-table-column
label="任务类型"
prop="roleKey"
:show-overflow-tooltip="true"
align="center"
/>
<el-table-column
label="进度"
prop="roleKey"
:show-overflow-tooltip="true"
align="center"
/>
<el-table-column label="执行范围" prop="roleSort" align="center">
<template #default>
<el-link type="primary" @click="selectCompany">共200家</el-link>
</template>
</el-table-column>
<el-table-column label="任务状态" align="center" />
<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="Document"></el-button>
</el-tooltip>
<el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<TaskForm ref="taskFormRef" />
<ChooseCompany ref="chooseCompanyRef"/>
</section>
</template>
<script setup>
import TaskForm from "./form.vue";
import ChooseCompany from '@/BusinessCom/ChooseCompany/index.vue'
const { proxy } = getCurrentInstance();
const { task_period_type } = proxy.useDict("task_period_type");
const chooseCompanyRef=ref()
const loading = ref(false);
const showSearch = ref(true);
const taskFormRef = ref();
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
roleName: undefined,
roleKey: undefined,
status: undefined,
},
rules: {
roleName: [
{ required: true, message: "角色名称不能为空", trigger: "blur" },
],
roleKey: [{ required: true, message: "权限字符不能为空", trigger: "blur" }],
roleSort: [
{ required: true, message: "角色顺序不能为空", trigger: "blur" },
],
},
});
const total = ref(0);
const { queryParams, form, rules } = toRefs(data);
const dateRange = ref([]);
const list = ref([
{
roleId: 1,
roleName: "超级管理员",
roleKey: "admin",
roleSort: 1,
roleStatus: "0",
roleRemark: "超级管理员拥有所有权限",
},
]);
/**
* 获取列表
*/
function getList() {}
/** 重置按钮操作 */
function resetQuery() {
dateRange.value = [];
proxy.resetForm("queryRef");
handleQuery();
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
}
/**
* 新增任务
*/
function create() {
unref(taskFormRef).open({ title: "新增任务" });
}
/**
* 选择公司
*/
function selectCompany(){
unref(chooseCompanyRef).open({ title: "选择执行范围" });
}
</script>
<style scoped lang="scss"></style>

44
src/views/system/user/enterprisesDetail.vue

@ -0,0 +1,44 @@
<template>
<el-dialog v-model="show">
<el-descriptions
title="Width vertical list"
direction="vertical"
border
style="margin-top: 20px"
>
<el-descriptions-item
:rowspan="2"
:width="140"
label="Photo"
align="center"
>
<el-image
style="width: 100px; height: 100px"
src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"
/>
</el-descriptions-item>
<el-descriptions-item label="Username">kooriookami</el-descriptions-item>
<el-descriptions-item label="Telephone">18100000000</el-descriptions-item>
<el-descriptions-item label="Place">Suzhou</el-descriptions-item>
<el-descriptions-item label="Remarks">
<el-tag size="small">School</el-tag>
</el-descriptions-item>
<el-descriptions-item label="Address">
No.1188, Wuzhong Avenue, Wuzhong District, Suzhou, Jiangsu Province
</el-descriptions-item>
</el-descriptions>
</el-dialog>
</template>
<script setup>
const show = ref(false);
function open(id) {
show.value = true;
}
defineExpose({ open });
</script>
<style scoped lang="scss"></style>

215
src/views/system/user/examine.vue

@ -0,0 +1,215 @@
<template>
<section class="app-container">
<el-form
:model="queryParams"
ref="queryRef"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="用户名称" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
clearable
style="width: 240px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="创建时间" style="width: 308px">
<el-date-picker
v-model="dateRange"
value-format="YYYY-MM-DD"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
/>
</el-form-item>
<el-form-item label="审批状态" style="width: 308px">
<el-select placeholder="请选择审批状态" v-model="queryParams.audit">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.USER_AUDIT_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">
搜索
</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- <el-row :gutter="10" class="mb8">
<right-toolbar
v-model:showSearch="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row> -->
<el-table
v-loading="loading"
:data="userList"
@selection-change="handleSelectionChange"
>
<el-table-column
label="姓名"
align="center"
key="realName"
prop="realName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="手机号码"
align="center"
key="mobile"
prop="mobile"
/>
<el-table-column align="center" key="audit" prop="audit" label="申请角色">
<template #default="scope">
<dict-tag :type="DICT_TYPE.WX_USER_TYPE" :value="scope.row.userType" />
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime">
<template #default="scope">
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="审批状态" align="center" key="audit" prop="audit">
<template #default="scope">
<dict-tag :type="DICT_TYPE.USER_AUDIT_TYPE" :value="scope.row.audit" />
</template>
</el-table-column>
<!-- <el-table-column
label="审批内容"
align="center"
key="content"
prop="content"
/> -->
<el-table-column
label="操作"
align="center"
width="250"
class-name="small-padding fixed-width"
>
<template #default="scope">
<el-button
link
type="primary"
v-if="scope.row.userType === 2"
@click="showDetail(scope.row.id)"
>
<el-icon style="margin-right: 5px"><OfficeBuilding /></el-icon>
公司信息
</el-button>
<el-button
link
type="danger"
@click="examine(scope.row)"
v-if="scope.row.audit == 1 || scope.row.audit == 3"
>
<el-icon style="margin-right: 5px"><Stamp /></el-icon>
审核
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</section>
<ExamineForm ref="examineFormRef" @success="handleQuery" />
<EnterprisesDetail ref="enterprisesDetailRef" />
</template>
<script setup>
import * as UserApi from '@/api/system/user'
import ExamineForm from "./examineform.vue";
import EnterprisesDetail from "./enterprisesDetail.vue";
const userList = ref([]);
const loading = ref(true);
const total = ref(0);
const { proxy } = getCurrentInstance();
// const { user_status, user_type } = proxy.useDict("user_status", "user_type");
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
const examineFormRef = ref();
const enterprisesDetailRef = ref();
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
username: undefined,
mobile: undefined,
status: undefined,
deptId: undefined,
audit: [1,3],
userType: "1,2",
createTime: []
})
const data = reactive({
queryParams: {
pageNum: 1,
pageSize: 10,
deptId: undefined,
},
});
// const { queryParams } = toRefs(data);
const dateRange = ref([]);
const showSearch = ref(true);
/** 查询用户列表 */
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await UserApi.getUserPage(queryParams)
userList.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
dateRange.value = [];
handleQuery();
}
/**
* 查看企业信息
* @param id
*/
function showDetail(id) {
unref(enterprisesDetailRef).open(id);
}
/**
* 审核用户
*/
function examine(row) {
unref(examineFormRef).open(row);
}
getList();
</script>
<style scoped lang="scss"></style>

59
src/views/system/user/examineform.vue

@ -0,0 +1,59 @@
<template>
<el-dialog
v-model="show"
title="审核用户"
width="400px"
style="margin-top: 15vh"
>
<el-input
v-model="form.content"
type="textarea"
:autosize="{
minRows: 4,
}"
placeholder="请输入审核意见"
/>
<template #footer>
<el-button type="success" @click="submit(2)">
<el-icon style="margin-right: 5px"><Select /></el-icon>
通过
</el-button>
<el-button type="danger" @click="submit(3)">
<el-icon style="margin-right: 5px"><Close /></el-icon>
不通过
</el-button>
</template>
</el-dialog>
</template>
<script setup>
import * as UserApi from '@/api/system/user'
const { proxy } = getCurrentInstance();
const emits = defineEmits(["success"]);
const show = ref(false);
const form = ref({
content: "",
userId: undefined,
audit: undefined,
});
function open(param) {
form.value.userId = param.id;
show.value = true;
}
function submit(type) {
form.value.audit = type;
UserApi.examineUser(form.value).then((res) => {
proxy.$modal.msgSuccess("审批成功");
emits("success");
show.value = false;
});
}
defineExpose({ open });
</script>
<style scoped lang="scss"></style>
Loading…
Cancel
Save