租户审批
parent
ad8c6dbc93
commit
21c9b78c05
@ -1,8 +1,8 @@
|
|||||||
# port
|
# port
|
||||||
VITE_PORT = 3110
|
VITE_PORT = 3112
|
||||||
|
|
||||||
# 网站标题
|
# 网站标题
|
||||||
VITE_GLOB_APP_TITLE = 东胜物流管理平台
|
VITE_GLOB_APP_TITLE = 东胜物流管理后台
|
||||||
|
|
||||||
# 简称,用于配置文件名字 不要出现空格、数字开头等特殊字符
|
# 简称,用于配置文件名字 不要出现空格、数字开头等特殊字符
|
||||||
VITE_GLOB_APP_SHORT_NAME = WmsAdmin
|
VITE_GLOB_APP_SHORT_NAME = WmsAdmin
|
||||||
|
@ -0,0 +1,125 @@
|
|||||||
|
<template>
|
||||||
|
<BasicModal
|
||||||
|
v-bind="$attrs"
|
||||||
|
@register="registerModal"
|
||||||
|
:useWrapper="true"
|
||||||
|
:title="getTitle"
|
||||||
|
width="50%"
|
||||||
|
@ok="handleSave"
|
||||||
|
>
|
||||||
|
<BasicForm @register="registerForm">
|
||||||
|
<template #auditStatusSlot="{ model, field }">
|
||||||
|
<canvas id="canvas" width="200" height="200"></canvas>
|
||||||
|
</template>
|
||||||
|
</BasicForm>
|
||||||
|
<!--右下角按钮-->
|
||||||
|
<template #footer>
|
||||||
|
<a-button
|
||||||
|
@click="closeModal"
|
||||||
|
preIcon="ant-design:close-outlined"
|
||||||
|
type="warning"
|
||||||
|
:loading="loading"
|
||||||
|
ghost
|
||||||
|
style="margin-right: 0.8rem"
|
||||||
|
>取消</a-button
|
||||||
|
>
|
||||||
|
<a-button
|
||||||
|
@click="handleAudit"
|
||||||
|
preIcon="ant-design:audit-outlined"
|
||||||
|
type="error"
|
||||||
|
:loading="loading"
|
||||||
|
style="margin-right: 0.8rem"
|
||||||
|
>审核
|
||||||
|
</a-button>
|
||||||
|
</template>
|
||||||
|
</BasicModal>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, computed, unref, h, reactive } from 'vue'
|
||||||
|
import { BasicModal, useModalInner } from '/@/components/Modal'
|
||||||
|
import { BasicForm, useForm } from '/@/components/Form/index'
|
||||||
|
import { formSchema } from './columns'
|
||||||
|
import chapter from '/@/utils/chapter'
|
||||||
|
// import { useUserStore } from '/@/store/modules/user';
|
||||||
|
import { getTenantAuditInfo, auditInfo } from './api'
|
||||||
|
import { useMessage } from '/@/hooks/web/useMessage'
|
||||||
|
|
||||||
|
const { notification, createConfirm } = useMessage()
|
||||||
|
// 声明Emits
|
||||||
|
const emit = defineEmits(['success', 'register'])
|
||||||
|
const isUpdate = ref(true)
|
||||||
|
const loading = ref(false)
|
||||||
|
const rowId = ref('')
|
||||||
|
const { createMessage } = useMessage()
|
||||||
|
const [registerForm, { resetFields, setFieldsValue, validate, updateSchema }] = useForm({
|
||||||
|
labelWidth: 100,
|
||||||
|
schemas: formSchema,
|
||||||
|
showActionButtonGroup: false,
|
||||||
|
})
|
||||||
|
|
||||||
|
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
|
||||||
|
resetFields()
|
||||||
|
setModalProps({ confirmLoading: false, loading: true })
|
||||||
|
isUpdate.value = !!data?.isUpdate
|
||||||
|
if (unref(isUpdate)) {
|
||||||
|
// setModalProps({ confirmLoading: true });
|
||||||
|
rowId.value = data.record.id
|
||||||
|
const res: API.DataResult = await getTenantAuditInfo({ id: unref(rowId) })
|
||||||
|
if (res.succeeded) {
|
||||||
|
setFieldsValue({
|
||||||
|
...res.data,
|
||||||
|
})
|
||||||
|
// ClearChapter();
|
||||||
|
const status = res.data.auditStatus
|
||||||
|
if (status === -1) {
|
||||||
|
chapter('未提交', '高速临空管理平台', 'red')
|
||||||
|
} else if (status === 0) {
|
||||||
|
chapter('待审批', '高速临空管理平台', 'blue')
|
||||||
|
} else if (status === 1) {
|
||||||
|
chapter('审核通过', '高速临空管理平台', 'green')
|
||||||
|
} else if (status === 2) {
|
||||||
|
chapter('审核驳回', '高速临空管理平台', 'orange')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// setModalProps({ confirmLoading: false });
|
||||||
|
}
|
||||||
|
setModalProps({ loading: false })
|
||||||
|
})
|
||||||
|
|
||||||
|
const getTitle = computed(() => (!unref(isUpdate) ? '' : '企业用户审批'))
|
||||||
|
|
||||||
|
async function handleAudit() {
|
||||||
|
try {
|
||||||
|
const { createConfirm } = useMessage()
|
||||||
|
const values = await validate()
|
||||||
|
// const userStore = useUserStore();
|
||||||
|
// const user = userStore.getUserInfo;
|
||||||
|
loading.value = true
|
||||||
|
const postData = reactive({
|
||||||
|
id: values.gid,
|
||||||
|
status: values.status,
|
||||||
|
auditNote: values.auditNote === null ? '通过' : values.auditNote,
|
||||||
|
})
|
||||||
|
createConfirm({
|
||||||
|
iconType: 'warning',
|
||||||
|
title: '确认审核',
|
||||||
|
content: '是否确认审核该单据!!!',
|
||||||
|
onOk: async () => {
|
||||||
|
const res: API.DataResult = await auditInfo(postData)
|
||||||
|
// console.log(res);
|
||||||
|
if (res.succeeded) {
|
||||||
|
notification.success({ message: res.message, duration: 3 })
|
||||||
|
closeModal()
|
||||||
|
emit('success')
|
||||||
|
} else {
|
||||||
|
notification.error({ message: res.message, duration: 3 })
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
loading.value = false
|
||||||
|
// exit && closeModal();
|
||||||
|
} finally {
|
||||||
|
// loading.value = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
@ -0,0 +1,31 @@
|
|||||||
|
// @ts-ignore
|
||||||
|
import { request } from '/@/utils/request'
|
||||||
|
import { DataResult, PageRequest } from '/@/api/model/baseModel'
|
||||||
|
enum Api {
|
||||||
|
list = '/mainApi/TenantApply/GetTenantApplyList',
|
||||||
|
getTenantAuditInfo = '/mainApi/TenantApply/GetTenantAuditInfo',
|
||||||
|
auditInfo = '/mainApi/TenantApply/AuditTenantApply',
|
||||||
|
}
|
||||||
|
export function getTenantApplyList(data: PageRequest) {
|
||||||
|
return request<DataResult>({
|
||||||
|
url: Api.list,
|
||||||
|
method: 'post',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getTenantAuditInfo(query: { id: string }) {
|
||||||
|
return request<DataResult>({
|
||||||
|
url: Api.getTenantAuditInfo,
|
||||||
|
method: 'get',
|
||||||
|
params: query,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function auditInfo(data: any) {
|
||||||
|
return request<DataResult>({
|
||||||
|
url: Api.auditInfo,
|
||||||
|
method: 'post',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
@ -0,0 +1,242 @@
|
|||||||
|
import { BasicColumn, FormSchema } from '/@/components/Table'
|
||||||
|
import { Tag } from 'ant-design-vue'
|
||||||
|
import { UploadTypeEnum } from '/@/components/Form/src/Ds/components/DUpload'
|
||||||
|
// import { getDictDropDown } from '/@/api/common';
|
||||||
|
// @ts-ignore
|
||||||
|
export const columns: BasicColumn[] = [
|
||||||
|
// {
|
||||||
|
// title: '唯一编码',
|
||||||
|
// dataIndex: 'countryCode',
|
||||||
|
// width: 200,
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
title: '公司名称',
|
||||||
|
dataIndex: 'name',
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '信用代码',
|
||||||
|
dataIndex: 'taxNo',
|
||||||
|
width: 150,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '公司法人',
|
||||||
|
dataIndex: 'chief',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '公司地址',
|
||||||
|
dataIndex: 'address',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '公司电话',
|
||||||
|
dataIndex: 'tel',
|
||||||
|
width: 100,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '审核状态',
|
||||||
|
dataIndex: 'auditStatus',
|
||||||
|
width: 100,
|
||||||
|
filters: [
|
||||||
|
{ text: '待审批', value: '0' },
|
||||||
|
{ text: '审核通过', value: '1' },
|
||||||
|
{ text: '驳回', value: '2' },
|
||||||
|
],
|
||||||
|
customRender: ({ text }) => {
|
||||||
|
if (text === 0) {
|
||||||
|
return <Tag color="blue">待审批</Tag>
|
||||||
|
} else if (text === 1) {
|
||||||
|
return <Tag color="success">审核通过</Tag>
|
||||||
|
} else if (text === 2) {
|
||||||
|
return <Tag color="warning">驳回</Tag>
|
||||||
|
}
|
||||||
|
return text
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '审批时间',
|
||||||
|
dataIndex: 'auditTime',
|
||||||
|
width: 100,
|
||||||
|
sorter: true,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
export const searchFormSchema: FormSchema[] = [
|
||||||
|
{
|
||||||
|
field: 'Name',
|
||||||
|
label: '公司名称',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
},
|
||||||
|
]
|
||||||
|
export const formSchema: FormSchema[] = [
|
||||||
|
{
|
||||||
|
field: 'divider-selects',
|
||||||
|
component: 'Divider',
|
||||||
|
label: '基本信息',
|
||||||
|
colProps: { span: 24 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
field: 'id',
|
||||||
|
component: 'Input',
|
||||||
|
defaultValue: '',
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'name',
|
||||||
|
label: '公司名称',
|
||||||
|
component: 'Input',
|
||||||
|
required: true,
|
||||||
|
colProps: { span: 16 },
|
||||||
|
componentProps: {
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'shortname',
|
||||||
|
label: '公司简称',
|
||||||
|
component: 'Input',
|
||||||
|
required: true,
|
||||||
|
colProps: { span: 8 },
|
||||||
|
componentProps: {
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'taxNo',
|
||||||
|
label: '信用代码',
|
||||||
|
component: 'Input',
|
||||||
|
required: true,
|
||||||
|
colProps: { span: 12 },
|
||||||
|
componentProps: {
|
||||||
|
disabled: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'chief',
|
||||||
|
label: '公司法人',
|
||||||
|
component: 'Input',
|
||||||
|
required: true,
|
||||||
|
colProps: { span: 12 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'address',
|
||||||
|
label: '公司地址',
|
||||||
|
component: 'Input',
|
||||||
|
required: true,
|
||||||
|
colProps: { span: 12 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'tel',
|
||||||
|
label: '公司电话',
|
||||||
|
component: 'Input',
|
||||||
|
required: true,
|
||||||
|
colProps: { span: 12 },
|
||||||
|
itemProps: {
|
||||||
|
extra: '电话格式 0531-XXXXXXX',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'email',
|
||||||
|
label: '公司邮箱',
|
||||||
|
component: 'Input',
|
||||||
|
required: true,
|
||||||
|
colProps: { span: 12 },
|
||||||
|
itemProps: {
|
||||||
|
extra: '请输入正确的邮箱格式',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'loginname',
|
||||||
|
label: '管理员账号',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: { span: 12 },
|
||||||
|
dynamicDisabled: ({ values }) => {
|
||||||
|
return !!values.gid
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'remark',
|
||||||
|
label: '备注',
|
||||||
|
component: 'InputTextArea',
|
||||||
|
colProps: { span: 18 },
|
||||||
|
// ifShow: ({ values }) => !isButton(values.menuType),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'divider-selects',
|
||||||
|
component: 'Divider',
|
||||||
|
label: '认证资料',
|
||||||
|
helpMessage: ['请按要求上传认证资料!'],
|
||||||
|
colProps: { span: 24 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'licensefiles',
|
||||||
|
component: 'DUpload',
|
||||||
|
helpMessage: '最多上传1个文件',
|
||||||
|
label: '营业执照',
|
||||||
|
colProps: {
|
||||||
|
span: 24,
|
||||||
|
},
|
||||||
|
componentProps: {
|
||||||
|
maxCount: 1,
|
||||||
|
disabled: true,
|
||||||
|
fileType: UploadTypeEnum.image,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'cardfiles',
|
||||||
|
component: 'DUpload',
|
||||||
|
helpMessage: '最多上传2个文件',
|
||||||
|
label: '法人身份证',
|
||||||
|
colProps: {
|
||||||
|
span: 24,
|
||||||
|
},
|
||||||
|
componentProps: {
|
||||||
|
maxCount: 2,
|
||||||
|
disabled: true,
|
||||||
|
fileType: UploadTypeEnum.image,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'divider-selects',
|
||||||
|
component: 'Divider',
|
||||||
|
label: '审批意见',
|
||||||
|
colProps: { span: 24 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'auditStatus',
|
||||||
|
label: '审核状态',
|
||||||
|
component: 'Input',
|
||||||
|
colProps: {
|
||||||
|
span: 24,
|
||||||
|
},
|
||||||
|
slot: 'auditStatusSlot',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'auditNote',
|
||||||
|
component: 'InputTextArea',
|
||||||
|
label: '审核意见',
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请填写审核意见',
|
||||||
|
rows: 4,
|
||||||
|
},
|
||||||
|
colProps: { span: 18 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'status',
|
||||||
|
component: 'RadioButtonGroup',
|
||||||
|
label: '审批选项',
|
||||||
|
defaultValue: 1,
|
||||||
|
required: true,
|
||||||
|
colProps: { span: 12 },
|
||||||
|
componentProps: {
|
||||||
|
placeholder: '请选择状态',
|
||||||
|
options: [
|
||||||
|
{ label: '通过', value: 1 },
|
||||||
|
{ label: '驳回', value: 2 },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
@ -0,0 +1,129 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<BasicTable @register="registerTable">
|
||||||
|
<template #toolbar> </template>
|
||||||
|
<template #bodyCell="{ column, record }">
|
||||||
|
<template v-if="column.key === 'name'">
|
||||||
|
<span style="color: #0d84ff" @click="handleAudit(record)">{{ record.name }}</span>
|
||||||
|
</template>
|
||||||
|
<template v-if="column.key === 'action'">
|
||||||
|
<TableAction
|
||||||
|
:actions="[
|
||||||
|
{
|
||||||
|
icon: 'ant-design:fork-outlined',
|
||||||
|
// tooltip: '编辑',
|
||||||
|
label: '审核',
|
||||||
|
color: 'error',
|
||||||
|
onClick: handleAudit.bind(null, record),
|
||||||
|
},
|
||||||
|
]"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</BasicTable>
|
||||||
|
<TenantModal @register="registerModal" @success="handleSuccess" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { defineComponent, onMounted, ref } from 'vue'
|
||||||
|
import {BasicTable, useTable, TableAction, SorterResult} from '/@/components/Table'
|
||||||
|
import { getTenantApplyList } from './api'
|
||||||
|
import { useModal } from '/@/components/Modal'
|
||||||
|
import TenantModal from './TenantModal.vue'
|
||||||
|
import { columns, searchFormSchema } from './columns'
|
||||||
|
let filterInfo: Partial<Recordable<string[]>> = []
|
||||||
|
let sortInfo: SorterResult = {}
|
||||||
|
const [registerModal, { openModal }] = useModal()
|
||||||
|
const [registerTable, { reload, getForm, getPaginationRef }] = useTable({
|
||||||
|
title: '企业用户审批',
|
||||||
|
api: async (p) => {
|
||||||
|
const res: API.DataResult = await getTenantApplyList(p)
|
||||||
|
// console.log(items);
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
resolve({ data: [...res.data], total: res.count })
|
||||||
|
})
|
||||||
|
},
|
||||||
|
beforeFetch: () => {
|
||||||
|
var currentPageInfo: any = getPaginationRef()
|
||||||
|
var data = getForm().getFieldsValue()
|
||||||
|
const postParam: API.PageRequest = {
|
||||||
|
queryCondition: '',
|
||||||
|
pageCondition: {
|
||||||
|
pageIndex: currentPageInfo.current,
|
||||||
|
pageSize: currentPageInfo.pageSize,
|
||||||
|
sortConditions: [],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
/* 排序字段 */
|
||||||
|
if (!!sortInfo.columnKey) {
|
||||||
|
postParam.pageCondition.sortConditions.push({
|
||||||
|
sortField: sortInfo.field,
|
||||||
|
listSortDirection: sortInfo.order === 'ascend' ? 0 : 1,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
postParam.pageCondition.sortConditions.push({
|
||||||
|
sortField: 'auditTime',
|
||||||
|
listSortDirection: 0,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
let condition: API.ConditionItem[] = []
|
||||||
|
if (!!data.Name) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'Name',
|
||||||
|
FieldValue: data.Name,
|
||||||
|
ConditionalType: 1,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
/* 筛选字段 */
|
||||||
|
if (filterInfo === null) {
|
||||||
|
} else {
|
||||||
|
// console.log(filterInfo);
|
||||||
|
// console.log('审核状态' + filterInfo.auditStatus);
|
||||||
|
if (!!filterInfo.auditStatus && filterInfo.auditStatus.length > 0) {
|
||||||
|
condition.push({
|
||||||
|
FieldName: 'AuditStatus',
|
||||||
|
FieldValue: filterInfo.auditStatus.join(),
|
||||||
|
ConditionalType: 6,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
postParam.queryCondition = JSON.stringify(condition)
|
||||||
|
// console.log(postParam);
|
||||||
|
return postParam
|
||||||
|
},
|
||||||
|
columns,
|
||||||
|
formConfig: {
|
||||||
|
labelWidth: 120,
|
||||||
|
schemas: searchFormSchema,
|
||||||
|
},
|
||||||
|
sortFn: (sorter) => {
|
||||||
|
// console.log('排序:' + sorter);
|
||||||
|
sortInfo = sorter
|
||||||
|
},
|
||||||
|
filterFn: (filters) => {
|
||||||
|
// console.log('筛选:' + filters);
|
||||||
|
filterInfo = filters
|
||||||
|
},
|
||||||
|
pagination: true,
|
||||||
|
bordered: true,
|
||||||
|
useSearchForm: true,
|
||||||
|
showTableSetting: true,
|
||||||
|
tableSetting: { fullScreen: true },
|
||||||
|
actionColumn: {
|
||||||
|
width: 80,
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'action',
|
||||||
|
fixed: undefined,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
function handleAudit(record: Recordable) {
|
||||||
|
openModal(true, {
|
||||||
|
record,
|
||||||
|
isUpdate: true,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function handleSuccess() {
|
||||||
|
reload()
|
||||||
|
}
|
||||||
|
</script>
|
@ -0,0 +1,39 @@
|
|||||||
|
using FluentValidation;
|
||||||
|
|
||||||
|
namespace DS.Module.Core.Data;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 企业用户审批实体
|
||||||
|
/// </summary>
|
||||||
|
public class CommonAuditInput
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// ID
|
||||||
|
/// </summary>
|
||||||
|
public long Id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 审核状态
|
||||||
|
/// </summary>
|
||||||
|
public int Status { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 审批备注
|
||||||
|
/// </summary>
|
||||||
|
public string AuditNote { get; set; } = "";
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 验证
|
||||||
|
/// </summary>
|
||||||
|
public class CommonAuditInputValidator : AbstractValidator<CommonAuditInput>
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
public CommonAuditInputValidator()
|
||||||
|
{
|
||||||
|
this.RuleFor(o => o.Id)
|
||||||
|
.NotEmpty().WithName("ID");
|
||||||
|
this.RuleFor(o => o.Status)
|
||||||
|
.NotEmpty().WithName("审核选项").InclusiveBetween(1, 2).WithMessage("非法状态") ;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,74 @@
|
|||||||
|
using DS.Module.Core;
|
||||||
|
|
||||||
|
namespace DS.WMS.Core.System.Dtos;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 企业用户注册列表
|
||||||
|
/// </summary>
|
||||||
|
public class TenantApplyListRes
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 主键ID
|
||||||
|
/// </summary>
|
||||||
|
public long Id { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 公司名称
|
||||||
|
/// </summary>
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 拼音码
|
||||||
|
/// </summary>
|
||||||
|
public string PinYinCode { get; set; }= "";
|
||||||
|
/// <summary>
|
||||||
|
/// 公司地址
|
||||||
|
/// </summary>
|
||||||
|
public string Address { get; set; }= "";
|
||||||
|
/// <summary>
|
||||||
|
/// 管理员电话
|
||||||
|
/// </summary>
|
||||||
|
public string Phone { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 公司电话
|
||||||
|
/// </summary>
|
||||||
|
public string Tel { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 邮箱
|
||||||
|
/// </summary>
|
||||||
|
public string Email { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 企业法人
|
||||||
|
/// </summary>
|
||||||
|
public string Chief { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 企业税号
|
||||||
|
/// </summary>
|
||||||
|
public string TaxNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 管理员账号
|
||||||
|
/// </summary>
|
||||||
|
public string AdminUserCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 合同开始日期
|
||||||
|
/// </summary>
|
||||||
|
public DateTime ContractBeginDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 合同结束日期
|
||||||
|
/// </summary>
|
||||||
|
public DateTime ContractEndDate { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 审批状态
|
||||||
|
/// </summary>
|
||||||
|
public AuditStatusEnum? AuditStatus { get; set; } = AuditStatusEnum.NoAudit;
|
||||||
|
/// <summary>
|
||||||
|
/// 审批意见
|
||||||
|
/// </summary>
|
||||||
|
public string AuditNote { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 审批时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime AuditTime { get; set; }
|
||||||
|
}
|
Loading…
Reference in New Issue