|
@@ -1,5 +1,32 @@
|
|
<template>
|
|
<template>
|
|
- <div class="person-files flex flex-col h-full">
|
|
|
|
|
|
+ <div class="flex flex-col h-full">
|
|
|
|
+ <div class="page-action">
|
|
|
|
+ <t-space size="small">
|
|
|
|
+ <t-button theme="primary" @click="handleAdd">
|
|
|
|
+ <template #icon><svg-icon name="add-circle" color="#fff" /></template>
|
|
|
|
+ 新增
|
|
|
|
+ </t-button>
|
|
|
|
+ <upload-button
|
|
|
|
+ upload-url="/api/admin/user/archives/import"
|
|
|
|
+ :button-props="{
|
|
|
|
+ content: '批量导入',
|
|
|
|
+ variant: 'outline',
|
|
|
|
+ theme: 'default',
|
|
|
|
+ }"
|
|
|
|
+ param-file-name="MultipartFile"
|
|
|
|
+ ></upload-button>
|
|
|
|
+ <t-button variant="outline" @click="multExport">批量导出</t-button>
|
|
|
|
+ <t-button
|
|
|
|
+ variant="outline"
|
|
|
|
+ :disabled="!selectedRowKeys.length"
|
|
|
|
+ @click="handleDestroy"
|
|
|
|
+ >
|
|
|
|
+ <template #icon><svg-icon name="delete" color="#262626" /></template
|
|
|
|
+ >作废
|
|
|
|
+ </t-button>
|
|
|
|
+ </t-space>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
<SearchForm :fields="fields" :params="params">
|
|
<SearchForm :fields="fields" :params="params">
|
|
<template #city="{ item, params }">
|
|
<template #city="{ item, params }">
|
|
<select-area v-model="params[item.prop]" :level="2"></select-area>
|
|
<select-area v-model="params[item.prop]" :level="2"></select-area>
|
|
@@ -9,42 +36,18 @@
|
|
</template>
|
|
</template>
|
|
</SearchForm>
|
|
</SearchForm>
|
|
<div class="flex-1 page-wrap">
|
|
<div class="flex-1 page-wrap">
|
|
- <div class="flex justify-between items-center">
|
|
|
|
- <t-space>
|
|
|
|
- <span>在册:{{ statisticsInfo.totalCount }}人</span>
|
|
|
|
- <span>无效:{{ statisticsInfo.validCount }}人</span>
|
|
|
|
- <span>有效:{{ statisticsInfo.invalidCount }}人</span>
|
|
|
|
- <span
|
|
|
|
- >实施工程师有效:{{ statisticsInfo.effectEngineerCount }}人</span
|
|
|
|
- >
|
|
|
|
- <span
|
|
|
|
- >区域负责人有效:{{ statisticsInfo.regionCoordinatorCount }}人</span
|
|
|
|
- >
|
|
|
|
- <span
|
|
|
|
- >助理实施工程师有效:{{
|
|
|
|
- statisticsInfo.assistantEngineerCount
|
|
|
|
- }}人</span
|
|
|
|
- >
|
|
|
|
- </t-space>
|
|
|
|
- <t-space size="small">
|
|
|
|
- <t-button theme="success" @click="handleAdd">新增</t-button>
|
|
|
|
- <upload-button
|
|
|
|
- upload-url="/api/admin/user/archives/import"
|
|
|
|
- :button-props="{
|
|
|
|
- content: '批量导入',
|
|
|
|
- theme: 'success',
|
|
|
|
- }"
|
|
|
|
- param-file-name="MultipartFile"
|
|
|
|
- ></upload-button>
|
|
|
|
- <t-button theme="success" @click="multExport">批量导出</t-button>
|
|
|
|
- <t-button
|
|
|
|
- theme="success"
|
|
|
|
- :disabled="!selectedRowKeys.length"
|
|
|
|
- @click="handleDestroy"
|
|
|
|
- >作废</t-button
|
|
|
|
- >
|
|
|
|
- </t-space>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <p class="page-wrap-tips">
|
|
|
|
+ <ErrorCircleFilledIcon /> 在册:{{
|
|
|
|
+ statisticsInfo.totalCount
|
|
|
|
+ }}人,无效:{{ statisticsInfo.validCount }}人,有效:{{
|
|
|
|
+ statisticsInfo.invalidCount
|
|
|
|
+ }}人, 实施工程师有效:{{
|
|
|
|
+ statisticsInfo.effectEngineerCount
|
|
|
|
+ }}人,区域负责人有效:{{
|
|
|
|
+ statisticsInfo.regionCoordinatorCount
|
|
|
|
+ }}人,助理实施工程师有效:{{ statisticsInfo.assistantEngineerCount }}人
|
|
|
|
+ </p>
|
|
|
|
+
|
|
<t-table
|
|
<t-table
|
|
size="small"
|
|
size="small"
|
|
row-key="userArchivesId"
|
|
row-key="userArchivesId"
|
|
@@ -116,6 +119,7 @@ import { ref, reactive, computed, onMounted } from 'vue';
|
|
import { omit } from 'lodash';
|
|
import { omit } from 'lodash';
|
|
|
|
|
|
import { DialogPlugin, MessagePlugin } from 'tdesign-vue-next';
|
|
import { DialogPlugin, MessagePlugin } from 'tdesign-vue-next';
|
|
|
|
+import { ErrorCircleFilledIcon } from 'tdesign-icons-vue-next';
|
|
import useFetchTable from '@/hooks/useFetchTable';
|
|
import useFetchTable from '@/hooks/useFetchTable';
|
|
import AddPersonFileDialog from './add-person-file-dialog';
|
|
import AddPersonFileDialog from './add-person-file-dialog';
|
|
import {
|
|
import {
|
|
@@ -181,7 +185,7 @@ const fields = ref([
|
|
children: [
|
|
children: [
|
|
{
|
|
{
|
|
type: 'button',
|
|
type: 'button',
|
|
- text: '查询',
|
|
|
|
|
|
+ text: '搜索',
|
|
onClick: () => {
|
|
onClick: () => {
|
|
search();
|
|
search();
|
|
getStatisticsInfo();
|
|
getStatisticsInfo();
|
|
@@ -212,10 +216,18 @@ const fields = ref([
|
|
},
|
|
},
|
|
{
|
|
{
|
|
prop: 'remainValidDay',
|
|
prop: 'remainValidDay',
|
|
- label: '剩余有效天数:≥',
|
|
|
|
|
|
+ label: '剩余有效天数',
|
|
labelWidth: 140,
|
|
labelWidth: 140,
|
|
colSpan: 6,
|
|
colSpan: 6,
|
|
type: 'number',
|
|
type: 'number',
|
|
|
|
+ attrs: {
|
|
|
|
+ theme: 'column',
|
|
|
|
+ decimalPlaces: 0,
|
|
|
|
+ max: 1000000,
|
|
|
|
+ min: 0,
|
|
|
|
+ label: '≥',
|
|
|
|
+ style: 'width: 100%',
|
|
|
|
+ },
|
|
},
|
|
},
|
|
]);
|
|
]);
|
|
const params = reactive({
|
|
const params = reactive({
|
|
@@ -241,13 +253,13 @@ const columns = [
|
|
width: 50,
|
|
width: 50,
|
|
fixed: 'left',
|
|
fixed: 'left',
|
|
},
|
|
},
|
|
- { colKey: 'userArchivesId', title: '档案流水号' },
|
|
|
|
- { colKey: 'name', title: '姓名' },
|
|
|
|
|
|
+ { colKey: 'userArchivesId', title: '档案流水号', width: 200 },
|
|
|
|
+ { colKey: 'name', title: '姓名', width: 120 },
|
|
{ colKey: 'province', title: '省份' },
|
|
{ colKey: 'province', title: '省份' },
|
|
{ colKey: 'city', title: '城市' },
|
|
{ colKey: 'city', title: '城市' },
|
|
{ colKey: 'area', title: '区县' },
|
|
{ colKey: 'area', title: '区县' },
|
|
- { colKey: 'gender', title: '性别', cell: 'gender', width: 60 },
|
|
|
|
- { colKey: 'age', title: '年龄', width: 60 },
|
|
|
|
|
|
+ { colKey: 'gender', title: '性别', cell: 'gender', width: 70 },
|
|
|
|
+ { colKey: 'age', title: '年龄', width: 70 },
|
|
{ colKey: 'identity', title: '身份证号', width: 160 },
|
|
{ colKey: 'identity', title: '身份证号', width: 160 },
|
|
{ colKey: 'education', title: '学历', cell: 'education' },
|
|
{ colKey: 'education', title: '学历', cell: 'education' },
|
|
{ colKey: 'mobileNumber', title: '手机号', width: 120 },
|
|
{ colKey: 'mobileNumber', title: '手机号', width: 120 },
|
|
@@ -264,7 +276,7 @@ const columns = [
|
|
colKey: 'roleInfoList',
|
|
colKey: 'roleInfoList',
|
|
title: '认证项目角色',
|
|
title: '认证项目角色',
|
|
cell: 'roles',
|
|
cell: 'roles',
|
|
- minWidth: 110,
|
|
|
|
|
|
+ minWidth: 150,
|
|
},
|
|
},
|
|
{ colKey: 'authenticationScore', title: '认证分数' },
|
|
{ colKey: 'authenticationScore', title: '认证分数' },
|
|
{
|
|
{
|
|
@@ -273,16 +285,19 @@ const columns = [
|
|
cell: 'valid-time',
|
|
cell: 'valid-time',
|
|
width: 180,
|
|
width: 180,
|
|
},
|
|
},
|
|
- { colKey: 'r', title: '剩余有效天数', cell: 'remain-day', width: 110 },
|
|
|
|
|
|
+ {
|
|
|
|
+ colKey: 'remainValidDay',
|
|
|
|
+ title: '剩余有效天数',
|
|
|
|
+ cell: 'remain-day',
|
|
|
|
+ width: 80,
|
|
|
|
+ },
|
|
{ colKey: 'authenticationStatus', title: '认证状态', cell: 'status' },
|
|
{ colKey: 'authenticationStatus', title: '认证状态', cell: 'status' },
|
|
{ colKey: 'remark', title: '备注' },
|
|
{ colKey: 'remark', title: '备注' },
|
|
{
|
|
{
|
|
title: '管理',
|
|
title: '管理',
|
|
colKey: 'operate',
|
|
colKey: 'operate',
|
|
- cell: 'operate',
|
|
|
|
fixed: 'right',
|
|
fixed: 'right',
|
|
width: 80,
|
|
width: 80,
|
|
- align: 'center',
|
|
|
|
},
|
|
},
|
|
];
|
|
];
|
|
const { pagination, tableData, fetchData, search, onChange } = useFetchTable(
|
|
const { pagination, tableData, fetchData, search, onChange } = useFetchTable(
|