|
|
@@ -0,0 +1,263 @@
|
|
|
+<!-- 模板区域 -->
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <!-- <div class="container">
|
|
|
+ <img src="@/assets/images/logo.png" alt="" class="blend-hard-light">
|
|
|
+ </div> -->
|
|
|
+ <PageMain class="vh100 flex-1 overflow-hidden flex flex-col">
|
|
|
+ <el-tabs v-model="formInline.partnerStatus" @tab-click="handleClick">
|
|
|
+ <el-tab-pane :label="`待审核 (${pendingReview})`" name="1"></el-tab-pane>
|
|
|
+ <el-tab-pane :label="`审核不通过(${isNotApproved})`" name="2"></el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ <SearchForm :fields="fields" :formInline="formInline" :onSearch="findpage" :onReset="resetForm" />
|
|
|
+ <div class="flex-1 overflow-auto">
|
|
|
+ <el-dropdown placement="bottom-start" trigger="click" >
|
|
|
+ <el-button>
|
|
|
+ 批量审核<el-icon class="el-icon--right">
|
|
|
+ <arrow-down />
|
|
|
+ </el-icon>
|
|
|
+ </el-button>
|
|
|
+ <template #dropdown>
|
|
|
+ <el-dropdown-menu>
|
|
|
+ <el-dropdown-item :disabled="!sysUpAndDownList.length" @click="handleCommand(3)">审核通过</el-dropdown-item>
|
|
|
+ <el-dropdown-item :disabled="!sysUpAndDownList.length" @click="handleCommand(2)">审核不通过</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </template>
|
|
|
+ </el-dropdown>
|
|
|
+ <ComplexTable :tableData="tableData" :columns="columns" :showIndex="false" :columnwidth="250"
|
|
|
+ :showOperation="true" :showSelect="true" @selectionChange="selectionChange" uniqueIdName="userInfoId"
|
|
|
+ :pageInfo="pageInfo" @getList="getList">
|
|
|
+ <!-- 自定义操作插槽 -->
|
|
|
+ <template v-slot:operation="scope">
|
|
|
+ <el-button v-if="formInline.partnerStatus == '1'" type="primary" link
|
|
|
+ @click="isApproved(scope.operationData)">审核通过</el-button>
|
|
|
+ <el-button v-if="formInline.partnerStatus == '1'" type="primary" link
|
|
|
+ @click="rejectReason(scope.operationData)">审核不通过</el-button>
|
|
|
+ <el-button v-if="formInline.partnerStatus == '2'" type="primary" link
|
|
|
+ @click="details(scope.operationData)">详情</el-button>
|
|
|
+ </template>
|
|
|
+ <!-- 自定义表头插槽 -->
|
|
|
+ <template v-slot:search="scope">
|
|
|
+ {{ scope.slotData.label }}
|
|
|
+ </template>
|
|
|
+ </ComplexTable>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </PageMain>
|
|
|
+
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<!-- 行为区域 -->
|
|
|
+<script lang='ts' setup>
|
|
|
+import { ref, reactive, onBeforeMount } from 'vue'
|
|
|
+import { ElMessage } from 'element-plus'
|
|
|
+import api from '@/api'
|
|
|
+// 页面加载时获取机构列表
|
|
|
+onBeforeMount(() => {
|
|
|
+ getGradeOptions();//获取合伙人等级s
|
|
|
+ getDeptTree();//获取机构树
|
|
|
+ findpage();
|
|
|
+});
|
|
|
+interface PageInfo {
|
|
|
+ pageNum: number;
|
|
|
+ pageSize: number;
|
|
|
+ sizes: number[];
|
|
|
+ total: number;
|
|
|
+}
|
|
|
+// 机构树相关变量
|
|
|
+const id = ref("");//选中的id
|
|
|
+const userGradeList = ref()
|
|
|
+const sysUpAndDownList = ref<any>([]);//选中的行数据
|
|
|
+const deptOptions = ref();//机构树选项
|
|
|
+const pendingReview = ref(0);//待审核条数
|
|
|
+const isNotApproved = ref(0);//审核不通过条数
|
|
|
+const OperationVisible = ref(false);//拒绝操作弹窗是否显示
|
|
|
+const tableData = ref([
|
|
|
+]);//表格数据
|
|
|
+const formInline = reactive({
|
|
|
+ deptId: '',
|
|
|
+ name: '',//姓名
|
|
|
+ leaderId: '',//管理人id
|
|
|
+ leaderName: '',//管理人姓名
|
|
|
+ partnerStatus: "1",//合伙人状态
|
|
|
+ grade: '',//等级
|
|
|
+})
|
|
|
+const pageInfo = ref({
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 20,
|
|
|
+ sizes: [10, 20, 30, 40, 50],
|
|
|
+ total: 0,
|
|
|
+});
|
|
|
+const parentIdprops = {
|
|
|
+ expandTrigger: 'hover' as const,
|
|
|
+ value: 'id',
|
|
|
+ label: 'name',
|
|
|
+ checkStrictly: true,
|
|
|
+}
|
|
|
+//表格字段数据
|
|
|
+const fields = ref([
|
|
|
+ { label: "合伙人", model: "name", type: "input", placeholder: "输入姓名,手机号查找" },
|
|
|
+ {
|
|
|
+ label: "归属机构", model: "deptId", type: "cascader", options: deptOptions, props: parentIdprops, onChange: (value: any) => {
|
|
|
+ formInline.deptId = value[value.length - 1];
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "等级", model: "grade", type: "select", placeholder: "选择等级", options: userGradeList, props: {
|
|
|
+ label: 'gradeName',
|
|
|
+ value: 'grade',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ { label: "管理人", model: "leaderId", type: "input", placeholder: "管理人工号" },
|
|
|
+]);
|
|
|
+const columns = [
|
|
|
+ { prop: "name", label: "姓名", width: '200'},
|
|
|
+ { prop: "mobile", label: "手机号", width: '200' },
|
|
|
+ {
|
|
|
+ prop: "gradeList", label: "等级", width: '200',
|
|
|
+ formatter: (row: any) => {
|
|
|
+ return row.gradeList
|
|
|
+ .split(',')
|
|
|
+ .map((gradeId: any) => userGradeList.value.find((item: any) => item.grade == gradeId)?.gradeName || gradeId)
|
|
|
+ .join(',') || '未知';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { prop: "deptName", label: "所属机构", width: '200' },
|
|
|
+ {
|
|
|
+ prop: "partnerReviewTime", label: "审核时间", width: '200',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "partnerReviewer", label: "审核人", width: '200',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "leaderIdName", label: "管理人", width: '200',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "leaderId", label: "管理人工号", width: '200'
|
|
|
+ },
|
|
|
+ { prop: "referrerName", label: "推荐人", width: '200' },
|
|
|
+ { prop: "referrerId", label: "推荐人工号", width: '200' },
|
|
|
+];
|
|
|
+// 通过
|
|
|
+const isApproved = (item: any) => {
|
|
|
+ api.partnerApi.userInfoPartnerReview({ userInfoId: item.userInfoId, reviewStatus: 3 }).then((res: any) => {
|
|
|
+ if (res.code == '200') {
|
|
|
+ ElMessage.success('审核成功');
|
|
|
+ findpage();
|
|
|
+ } else {
|
|
|
+ ElMessage.error(res.msg);
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+const rejectReason = (item: any) => {
|
|
|
+ api.partnerApi.userInfoPartnerReview({ userInfoId: item.userInfoId, reviewStatus: 2 }).then((res: any) => {
|
|
|
+ if (res.code == '200') {
|
|
|
+ ElMessage.success('驳回成功');
|
|
|
+ findpage();
|
|
|
+ } else {
|
|
|
+ ElMessage.error(res.msg);
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+// 详情
|
|
|
+const details = (item: any) => {
|
|
|
+ OperationVisible.value = true;
|
|
|
+ id.value = item.id;
|
|
|
+}
|
|
|
+// 批量审核
|
|
|
+const selectionChange = (value: any[]) => {
|
|
|
+ sysUpAndDownList.value = value;
|
|
|
+}
|
|
|
+// 处理点击事件
|
|
|
+const handleClick = (tab: any) => {
|
|
|
+ formInline.partnerStatus = tab.props.name;
|
|
|
+ findpage();
|
|
|
+};
|
|
|
+//分页事件
|
|
|
+function getList(item: PageInfo) {
|
|
|
+ pageInfo.value.pageNum = item.pageNum;
|
|
|
+ pageInfo.value.pageSize = item.pageSize;
|
|
|
+ findpage();
|
|
|
+
|
|
|
+};
|
|
|
+const resetForm = () => {
|
|
|
+ findpage();
|
|
|
+}
|
|
|
+//数据查询
|
|
|
+function findpage() {
|
|
|
+ api.partnerApi.partnerReviewList({ pages: pageInfo.value.pageNum, size: pageInfo.value.pageSize, ...formInline }).then((res: any) => {
|
|
|
+ if (res.code == '200') {
|
|
|
+ tableData.value = res.data.records;
|
|
|
+ pageInfo.value.pageNum = res.data.current;
|
|
|
+ pageInfo.value.pageSize = res.data.size;
|
|
|
+ pageInfo.value.total = res.data.total;
|
|
|
+ if (formInline.partnerStatus == '1') {
|
|
|
+ pendingReview.value = res.data.total;
|
|
|
+ } else {
|
|
|
+ isNotApproved.value = res.data.total;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+// 处理点击事件
|
|
|
+const handleCommand = (status:any) => {
|
|
|
+ console.log(sysUpAndDownList.value)
|
|
|
+ api.partnerApi.userInfoPartnerReview({ userInfoId: sysUpAndDownList.value.join(','), reviewStatus: status }).then((res: any) => {
|
|
|
+ if (res.code == '200') {
|
|
|
+ ElMessage.success(status == 3 ? '审核成功' : '驳回成功');
|
|
|
+ findpage();
|
|
|
+ } else {
|
|
|
+ ElMessage.error(res.msg);
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+// 获取人员等级列表
|
|
|
+const getGradeOptions = () => {
|
|
|
+ api.partnerApi.queryGradeName().then((res: any) => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ userGradeList.value = res.data;
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+// 获取机构归属
|
|
|
+const getDeptTree = () => {
|
|
|
+ api.institutionApi.institutionList({}).then((res: any) => {
|
|
|
+ if (res.code == '200') {
|
|
|
+ deptOptions.value = res.data;
|
|
|
+ } else {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+</script>
|
|
|
+<!-- 样式区域 -->
|
|
|
+<style lang='scss' scoped>
|
|
|
+.custom-tree-node {
|
|
|
+ flex: 1;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ font-size: 14px;
|
|
|
+ padding-right: 8px;
|
|
|
+}
|
|
|
+
|
|
|
+:deep(.el-dropdown-link) {
|
|
|
+ cursor: pointer;
|
|
|
+ color: var(--el-color-primary);
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-left: 15px;
|
|
|
+}
|
|
|
+
|
|
|
+.container {
|
|
|
+ background-color: #000;
|
|
|
+ /* 下层背景色(可替换为图片或其他元素) */
|
|
|
+}
|
|
|
+
|
|
|
+.blend-hard-light {
|
|
|
+ mix-blend-mode: difference;
|
|
|
+ /* 强光混合模式 */
|
|
|
+}
|
|
|
+</style>
|