Pārlūkot izejas kodu

合伙人审核

@dongkboy 7 mēneši atpakaļ
vecāks
revīzija
de0e7783b1
1 mainītis faili ar 263 papildinājumiem un 0 dzēšanām
  1. 263 0
      src/views/representative/partnerReview.vue

+ 263 - 0
src/views/representative/partnerReview.vue

@@ -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>