员工管理
This commit is contained in:
parent
78ba1e64d1
commit
7dbb11039a
|
|
@ -2,7 +2,7 @@
|
|||
VITE_USE_MOCK = false
|
||||
|
||||
# 发布路径
|
||||
VITE_PUBLIC_PATH = /biz101
|
||||
VITE_PUBLIC_PATH = /biz102
|
||||
|
||||
# 是否启用gzip或brotli压缩
|
||||
# 选项值: gzip | brotli | none
|
||||
|
|
@ -13,10 +13,10 @@ VITE_BUILD_COMPRESS = 'gzip'
|
|||
VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
|
||||
|
||||
#后台接口父地址(必填)
|
||||
VITE_GLOB_API_URL=/nursingunit101
|
||||
VITE_GLOB_API_URL=/nursingunit102
|
||||
|
||||
#后台接口全路径地址(必填)
|
||||
VITE_GLOB_DOMAIN_URL=https://www.focusnu.com/nursingunit101
|
||||
VITE_GLOB_DOMAIN_URL=https://www.focusnu.com/nursingunit102
|
||||
|
||||
# 接口父路径前缀
|
||||
VITE_GLOB_API_URL_PREFIX=
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ enum Api {
|
|||
deleteBatch = '/admin/employeesAdvisoryInfo/deleteBatch',
|
||||
importExcel = '/admin/employeesAdvisoryInfo/importExcel',
|
||||
exportXls = '/admin/employeesAdvisoryInfo/exportXls',
|
||||
acquireIdenCard = '/admin/employeesAdvisoryInfo/acquireIdenCard',
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -70,3 +71,11 @@ export const saveOrUpdate = (params, isUpdate) => {
|
|||
let url = isUpdate ? Api.edit : Api.save;
|
||||
return defHttp.post({ url: url, params }, { isTransformResponse: false });
|
||||
};
|
||||
|
||||
/**
|
||||
* 拉取身份证
|
||||
* @param params
|
||||
*/
|
||||
export const acquireIdenCard = (params) => {
|
||||
return defHttp.post({ url: Api.acquireIdenCard, params });
|
||||
};
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ import { ref, reactive } from 'vue';
|
|||
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||
import { useListPage } from '/@/hooks/system/useListPage';
|
||||
import { columns, superQuerySchema } from './NuEmployeesAdvisoryInfo.data';
|
||||
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './NuEmployeesAdvisoryInfo.api';
|
||||
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, acquireIdenCard } from './NuEmployeesAdvisoryInfo.api';
|
||||
import { downloadFile } from '/@/utils/common/renderUtils';
|
||||
import NuEmployeesAdvisoryInfoModal from './components/NuEmployeesAdvisoryInfoModal.vue'
|
||||
import { useUserStore } from '/@/store/modules/user';
|
||||
|
|
@ -78,7 +78,7 @@ const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
|||
canResize: false,
|
||||
useSearchForm: false,
|
||||
actionColumn: {
|
||||
width: 120,
|
||||
width: 200,
|
||||
fixed: 'right',
|
||||
},
|
||||
beforeFetch: async (params) => {
|
||||
|
|
@ -206,6 +206,13 @@ function handleInvite(data) {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取身份证
|
||||
*/
|
||||
function handleAcquireIdenCard(record) {
|
||||
acquireIdenCard(record)
|
||||
}
|
||||
|
||||
/**
|
||||
* 操作栏
|
||||
*/
|
||||
|
|
@ -218,6 +225,26 @@ function getTableAction(record) {
|
|||
{
|
||||
label: '邀请',
|
||||
onClick: handleInvite.bind(null, record),
|
||||
},
|
||||
{
|
||||
label: '获取身份证',
|
||||
onClick: handleAcquireIdenCard.bind(null, record),
|
||||
ifShow: () => {
|
||||
//正面hasCardZmPath和反面hasCardFmPath两个字段 员工传了且已拉取时为1 没有证件为0 拉取中是2 未获取/拉取失败都是null/undefined
|
||||
let result = false
|
||||
if (record.hasCardZmPath == '2' || record.hasCardFmPath == '2') {
|
||||
//有正在拉取中的不让拉
|
||||
return false;
|
||||
}
|
||||
if (record.hasCardZmPath == '1' && record.hasCardFmPath == '1') {
|
||||
//两个都成功了不让拉
|
||||
return false;
|
||||
}
|
||||
if (record.hasCardZmPath == null || record.hasCardZmPath == undefined || record.hasCardFmPath == null || record.hasCardFmPath == undefined) {
|
||||
result = true
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="住址" v-bind="validateInfos.idCardAddress"
|
||||
<a-form-item label="户籍所在地" v-bind="validateInfos.idCardAddress"
|
||||
id="NuEmployeesAdvisoryInfoForm-idCardAddress" name="idCardAddress">
|
||||
<!-- <a-input v-model:value="formData.idCardAddress" placeholder="请输入住址" allow-clear disabled ></a-input> -->
|
||||
{{ formData.idCardAddress }}
|
||||
|
|
@ -123,6 +123,19 @@
|
|||
{{ formData.hukouType }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<SectionDivider :title="'身份证'" />
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="身份证正面">
|
||||
<j-image-upload :fileMax="1" v-model:value="formData.cardZmPath" disabled></j-image-upload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="身份证反面">
|
||||
<j-image-upload :fileMax="1" v-model:value="formData.cardFmPath" disabled></j-image-upload>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</template>
|
||||
|
|
@ -150,6 +163,7 @@ const useForm = Form.useForm;
|
|||
const emit = defineEmits(['register', 'ok']);
|
||||
const formData = reactive<Record<string, any>>({
|
||||
id: '',
|
||||
openId: '',
|
||||
tel: '',
|
||||
name: '',
|
||||
sex: '',
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
|||
pageSizeOptions: ['15', '50', '70', '100'],
|
||||
},
|
||||
beforeFetch: async (params) => {
|
||||
queryParam.sta
|
||||
queryParam.isInvited = '1'
|
||||
return Object.assign(params, queryParam);
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@
|
|||
</template>
|
||||
<template v-if="column.dataIndex === 'status_dictText'">
|
||||
<span v-if="record.status == '1'">待确认</span>
|
||||
<span v-else-if="record.status == '2'">已同意</span>
|
||||
<span v-else-if="record.status == '3'">已拒绝</span>
|
||||
<span v-else-if="record.status == '2'">审核同意</span>
|
||||
<span v-else-if="record.status == '3'">审核驳回</span>
|
||||
<span v-else></span>
|
||||
</template>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -47,12 +47,6 @@
|
|||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="家庭住址" v-bind="validateInfos.address" id="EmployeesApplyForm-address" name="address">
|
||||
<!-- <a-textarea v-model:value="formData.address" :rows="4" placeholder="请输入家庭住址" disabled /> -->
|
||||
<span>{{ formData.address }}</span>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="12">
|
||||
<a-form-item label="身份证号">
|
||||
<span>{{ formData.idCard }}</span>
|
||||
</a-form-item>
|
||||
|
|
@ -241,21 +235,23 @@
|
|||
dictCode="employees_audit_status_form" placeholder="请选择审核意见" allow-clear disabled/> -->
|
||||
<div v-if="disabled">
|
||||
<span v-if="formData.status == 1">待审核</span>
|
||||
<span v-if="formData.status == 2">通过</span>
|
||||
<span v-if="formData.status == 3">拒绝</span>
|
||||
<span v-if="formData.status == 2">审核通过</span>
|
||||
<span v-if="formData.status == 3">审核驳回</span>
|
||||
</div>
|
||||
<a-select v-else v-model:value="statusVal" placeholder="请选择审核意见" style="width: 200px" :disabled="false">
|
||||
<a-select-option value="auditPass">审核通过</a-select-option>
|
||||
<a-select-option value="auditFaild">审核不通过</a-select-option>
|
||||
<a-select-option value="auditFaild">审核驳回</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<!-- <a-col :span="12" v-show="statusVal == 'auditFaild'">
|
||||
<a-form-item label="审核备注" v-bind="validateInfos.auditContent" id="EmployeesApplyForm-auditContent"
|
||||
<a-col :span="12" v-show="statusVal == 'auditFaild' && !disabled">
|
||||
<a-form-item label="驳回原因" v-bind="validateInfos.auditContent" id="EmployeesApplyForm-auditContent"
|
||||
name="auditContent">
|
||||
<a-input v-model:value="formData.auditContent" placeholder="请输入审核备注" allow-clear></a-input>
|
||||
<a-textarea v-if="!disabled" :autosize="{ minRows: 3 }" maxlength="50" show-count
|
||||
v-model:value="formData.auditContent" allow-clear placeholder="请输入驳回原因"></a-textarea>
|
||||
<span v-else>{{ formData.auditContent }} </span>
|
||||
</a-form-item>
|
||||
</a-col> -->
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</template>
|
||||
|
|
@ -284,7 +280,8 @@ const emit = defineEmits(['register', 'ok']);
|
|||
const activeKey = ref('1')
|
||||
const formData = reactive<Record<string, any>>({
|
||||
id: '',
|
||||
employeeId:'',
|
||||
openId: '',
|
||||
employeeId: '',
|
||||
name: '',
|
||||
sex: '',
|
||||
national: '',
|
||||
|
|
@ -326,6 +323,16 @@ const labelCol3 = ref<any>({ xs: { span: 24 }, sm: { span: 2 } });
|
|||
const confirmLoading = ref<boolean>(false);
|
||||
//表单验证
|
||||
const validatorRules = reactive({
|
||||
auditContent: [
|
||||
{
|
||||
validator: async (_rule, value) => {
|
||||
if (statusVal.value === 'auditFaild' && !value) {
|
||||
return Promise.reject('请输入驳回原因!');
|
||||
}
|
||||
return Promise.resolve();
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
|
||||
|
||||
|
|
@ -409,7 +416,7 @@ async function submitForm() {
|
|||
if (!disabled.value) {
|
||||
if (!statusVal.value) {
|
||||
createMessage.warning('请选择审批意见');
|
||||
return ;
|
||||
return;
|
||||
}
|
||||
}
|
||||
confirmLoading.value = true;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
<j-dict-select-tag type='radio' v-model:value="formData.advisoryType" dictCode="advisory_type" placeholder="请选择咨询类型" allow-clear disabled/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="formData.advisoryType == '1'">
|
||||
<!-- <a-col :span="24" v-if="formData.advisoryType == '1'">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<a-form-item label="老人姓名" v-bind="validateInfos.oldManName" id="NuBizAdvisoryInfoForm-oldManName" name="oldManName">
|
||||
|
|
@ -57,7 +57,7 @@
|
|||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-col> -->
|
||||
<a-col :span="24">
|
||||
<a-form-item label="审核状态" v-bind="validateInfos.status" id="NuBizAdvisoryInfoForm-status" name="status">
|
||||
<j-dict-select-tag type='radio' v-model:value="formData.status" dictCode="advisory_approval" placeholder="请选择状态" allow-clear />
|
||||
|
|
|
|||
Loading…
Reference in New Issue