Merge branch 'develop' of ssh://code.linyikj.com.cn:2222/pay/pay-company into develop
All checks were successful
Build and Push Docker Image / build (push) Successful in 4m25s
All checks were successful
Build and Push Docker Image / build (push) Successful in 4m25s
* 'develop' of ssh://code.linyikj.com.cn:2222/pay/pay-company: fix:活动、组织、放行 # Conflicts: # src/gen/Enums.ts
This commit is contained in:
commit
ae327d9b56
@ -83,7 +83,7 @@ export const SysSelects = {
|
||||
value: 'id',
|
||||
},
|
||||
},
|
||||
request: async () => (await Apis.Permission.SysRoles.Select()).data,
|
||||
request: async () => (await Apis.Permission.Roles.Select()).data,
|
||||
...rest,
|
||||
};
|
||||
},
|
||||
|
||||
@ -251,7 +251,7 @@ export const BannersTypeEnum= {
|
||||
|
||||
// 缓存类型
|
||||
export const CacheTypeEnum= {
|
||||
'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#817c26","value":"MobilePhoneVerificationCode"},
|
||||
'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#bba798","value":"MobilePhoneVerificationCode"},
|
||||
};
|
||||
|
||||
// CompaniesMerchantTypeEnum
|
||||
|
||||
@ -8,7 +8,10 @@ import {
|
||||
import MyEditor from '@/common/components/Editor';
|
||||
import { Selects } from '@/components/Select';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import { MsgPropertyAnnouncementsPublishTypeEnum } from '@/gen/Enums';
|
||||
import {
|
||||
MsgPropertyAnnouncementsObjectEnum,
|
||||
MsgPropertyAnnouncementsPublishTypeEnum,
|
||||
} from '@/gen/Enums';
|
||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||
import { Form, message } from 'antd';
|
||||
|
||||
@ -67,6 +70,17 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
...rulesHelper.text,
|
||||
},
|
||||
},
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'object',
|
||||
title: '发布对象',
|
||||
colProps: { span: 8 },
|
||||
valueEnum: MsgPropertyAnnouncementsObjectEnum,
|
||||
formItemProps: {
|
||||
labelCol: { span: 12 },
|
||||
wrapperCol: { span: 12 },
|
||||
...rulesHelper.text,
|
||||
},
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'publish_type',
|
||||
title: '发布方式',
|
||||
|
||||
@ -7,7 +7,10 @@ import {
|
||||
} from '@/common';
|
||||
import MyEditor from '@/common/components/Editor';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import { MsgPropertyAnnouncementsPublishTypeEnum } from '@/gen/Enums';
|
||||
import {
|
||||
MsgPropertyAnnouncementsObjectEnum,
|
||||
MsgPropertyAnnouncementsPublishTypeEnum,
|
||||
} from '@/gen/Enums';
|
||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||
import { Form, message } from 'antd';
|
||||
|
||||
@ -55,7 +58,17 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
...rulesHelper.text,
|
||||
},
|
||||
},
|
||||
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'object',
|
||||
title: '发布对象',
|
||||
colProps: { span: 8 },
|
||||
valueEnum: MsgPropertyAnnouncementsObjectEnum,
|
||||
formItemProps: {
|
||||
labelCol: { span: 12 },
|
||||
wrapperCol: { span: 12 },
|
||||
...rulesHelper.text,
|
||||
},
|
||||
}),
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'publish_type',
|
||||
title: '发布方式',
|
||||
|
||||
@ -21,7 +21,7 @@ import Audit from './modals/Audit';
|
||||
import SerialNumber from './modals/SerialNumber';
|
||||
import Show from './modals/Show';
|
||||
|
||||
export default function Index({ title = '收款单' }) {
|
||||
export default function Index({ title = '线下收款单' }) {
|
||||
const [getParams, setParams] = useState({});
|
||||
const getCurrentPermissions = useCurrentPermissions();
|
||||
let toolBarRender = (action: any) => {
|
||||
|
||||
@ -1,9 +1,16 @@
|
||||
import { MyColumns, MyPageContainer, MyProTableProps } from '@/common';
|
||||
import {
|
||||
MyButtons,
|
||||
MyColumns,
|
||||
MyPageContainer,
|
||||
MyProTableProps,
|
||||
} from '@/common';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import { OrganizationsTypeEnum } from '@/gen/Enums';
|
||||
import { ProTable } from '@ant-design/pro-components';
|
||||
import { useNavigate } from '@umijs/max';
|
||||
import { Space } from 'antd';
|
||||
import NextOrganizationChange from './modals/NextOrganizationChange';
|
||||
import OrganizationChange from './modals/OrganizationChange';
|
||||
import OrganizationCreate from './modals/OrganizationCreate';
|
||||
import OrganizationUpdate from './modals/OrganizationUpdate';
|
||||
|
||||
@ -60,18 +67,19 @@ export default function Index({ title = '组织管理' }) {
|
||||
MyColumns.Option({
|
||||
render: (_, item: any, index, action) => (
|
||||
<Space key={index}>
|
||||
<OrganizationUpdate
|
||||
item={item}
|
||||
reload={action?.reload}
|
||||
title="组织"
|
||||
/>
|
||||
{/* {item?.type !== OrganizationsTypeEnum.Group.value && (
|
||||
{item?.type !== OrganizationsTypeEnum.Group.value && (
|
||||
<OrganizationChange
|
||||
item={{ ...item, companies_id: item?.companies_id }}
|
||||
reload={action?.reload}
|
||||
title="组织"
|
||||
/>
|
||||
)}
|
||||
<OrganizationUpdate
|
||||
item={item}
|
||||
reload={action?.reload}
|
||||
title="组织"
|
||||
/>
|
||||
|
||||
<NextOrganizationChange
|
||||
item={{ ...item, companies_id: item?.companies_id }}
|
||||
reload={action?.reload}
|
||||
@ -83,7 +91,7 @@ export default function Index({ title = '组织管理' }) {
|
||||
() => action?.reload(),
|
||||
)
|
||||
}
|
||||
/> */}
|
||||
/>
|
||||
</Space>
|
||||
),
|
||||
}),
|
||||
|
||||
@ -19,7 +19,7 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
title={`添加${props.title}`}
|
||||
wrapperCol={{ span: 24 }}
|
||||
width="500px"
|
||||
trigger={<MyButtons.Create title={`添加组织`} size="small" />}
|
||||
trigger={<MyButtons.Create title={`组织`} size="small" />}
|
||||
key={new Date().getTime()}
|
||||
form={form}
|
||||
onOpenChange={(open: any) => {
|
||||
@ -44,6 +44,7 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'type',
|
||||
title: '组织类型',
|
||||
tooltip: '可根据自身情况自定义设置',
|
||||
colProps: { span: 24 },
|
||||
valueEnum: OrganizationsTypeEnum,
|
||||
required: true,
|
||||
|
||||
@ -16,9 +16,7 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
{...MyModalFormProps.props}
|
||||
title={`${props.title}调整`}
|
||||
form={form}
|
||||
trigger={
|
||||
<MyButtons.Default title="调整上级" type="primary" size="small" />
|
||||
}
|
||||
trigger={<MyButtons.Default title="调整" type="primary" size="small" />}
|
||||
wrapperCol={{ span: 24 }}
|
||||
width="500px"
|
||||
onOpenChange={(open: any) => {
|
||||
|
||||
@ -45,6 +45,7 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'type',
|
||||
title: '组织类型',
|
||||
tooltip: '可根据自身情况自定义设置',
|
||||
colProps: { span: 24 },
|
||||
valueEnum: OrganizationsTypeEnum,
|
||||
required: true,
|
||||
@ -63,13 +64,14 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
? [
|
||||
Selects?.OrganizationsTree({
|
||||
title: '请设置上级组织',
|
||||
tooltip: '非必填,可按需选择',
|
||||
key: 'parent_id',
|
||||
params: { companies_id: props?.item?.id },
|
||||
colProps: { span: 24 },
|
||||
fieldProps: {
|
||||
placeholder: '可搜索或手动选择上级组织',
|
||||
},
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
// formItemProps: { ...rulesHelper.text },
|
||||
}),
|
||||
]
|
||||
: [];
|
||||
|
||||
@ -43,6 +43,7 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'type',
|
||||
title: '类型',
|
||||
tooltip: '可根据自身情况自定义设置',
|
||||
colProps: { span: 24 },
|
||||
valueEnum: OrganizationsTypeEnum,
|
||||
required: true,
|
||||
|
||||
@ -45,7 +45,7 @@ export default function Index({ title = '岗位管理' }) {
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: '岗位备注',
|
||||
title: '岗位说明',
|
||||
dataIndex: 'remark',
|
||||
search: false,
|
||||
width: 200,
|
||||
|
||||
@ -1,132 +0,0 @@
|
||||
import {
|
||||
MyBetaModalFormProps,
|
||||
MyButtons,
|
||||
MyColumns,
|
||||
MyProTableProps,
|
||||
} from '@/common';
|
||||
import { MyModal } from '@/components/MyModal';
|
||||
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import { ProTable } from '@ant-design/pro-components';
|
||||
import { message, Space } from 'antd';
|
||||
import { useRef, useState } from 'react';
|
||||
|
||||
export default function PositionAdd(props: MyBetaModalFormProps) {
|
||||
// 使用 useState 保存选中的岗位 ID 和行数据,确保跨页选中状态保持
|
||||
const [selectedPositionsIds, setSelectedPositionsIds] = useState<number[]>(
|
||||
[],
|
||||
);
|
||||
|
||||
// 添加 tableRef 用于操作表格
|
||||
const tableRef = useRef<any>();
|
||||
|
||||
const onShowContactPhone = () => {
|
||||
if (selectedPositionsIds.length === 0) {
|
||||
message.warning('请至少选择一个岗位');
|
||||
return;
|
||||
}
|
||||
|
||||
// 确保 positions_ids 是字符串数组
|
||||
const positionsIds = selectedPositionsIds.map((id) => String(id));
|
||||
|
||||
Apis.Company.CompanyPositions.BatchStore({
|
||||
positions_ids: positionsIds,
|
||||
})
|
||||
.then(() => {
|
||||
// 成功后重置选中状态
|
||||
setSelectedPositionsIds([]);
|
||||
props.reload?.();
|
||||
message.success('添加成功!');
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('添加失败:', error);
|
||||
message.error('添加失败: ' + (error.message || '未知错误'));
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<MyModal
|
||||
title={'岗位库'}
|
||||
type="primary"
|
||||
size="middle"
|
||||
width="600px"
|
||||
node={
|
||||
<ProTable
|
||||
actionRef={tableRef}
|
||||
{...MyProTableProps.props}
|
||||
request={async (params, sort) =>
|
||||
MyProTableProps.request(
|
||||
{
|
||||
...params,
|
||||
is_use: 1,
|
||||
},
|
||||
sort,
|
||||
Apis.Common.Positions.List,
|
||||
undefined,
|
||||
(res) => {
|
||||
// 确保响应数据正确处理
|
||||
console.log('加载岗位数据:', res);
|
||||
return res;
|
||||
},
|
||||
)
|
||||
}
|
||||
// style={{ height: '680px', overflowY: 'auto', overflowX: 'hidden' }}
|
||||
pagination={{
|
||||
showQuickJumper: true,
|
||||
}}
|
||||
rowSelection={{
|
||||
type: 'checkbox',
|
||||
preserveSelectedRowKeys: true, // 启用跨页选择
|
||||
selectedRowKeys: selectedPositionsIds,
|
||||
onChange: (selectedRowKeys) => {
|
||||
// 确保 selectedRowKeys 是数字类型
|
||||
const numericKeys = selectedRowKeys.map((key) =>
|
||||
typeof key === 'string' ? parseInt(key, 10) : key,
|
||||
) as number[];
|
||||
|
||||
// 更新选中状态
|
||||
setSelectedPositionsIds(numericKeys);
|
||||
|
||||
// 合并当前页面选中的行和之前选中的行
|
||||
|
||||
// 设置选中行数据
|
||||
},
|
||||
}}
|
||||
tableAlertOptionRender={({ selectedRowKeys, onCleanSelected }) => {
|
||||
return (
|
||||
<Space>
|
||||
<span>已选 {selectedRowKeys.length} 项</span>
|
||||
<a onClick={onCleanSelected}>清空</a>
|
||||
<MyButtons.Create
|
||||
title="批量添加"
|
||||
type="primary"
|
||||
key="create2"
|
||||
onClick={() => onShowContactPhone()}
|
||||
/>
|
||||
</Space>
|
||||
);
|
||||
}}
|
||||
options={false}
|
||||
columns={[
|
||||
MyColumns.ID({
|
||||
search: false,
|
||||
}),
|
||||
{
|
||||
title: '岗位名称',
|
||||
dataIndex: 'name',
|
||||
width: 300,
|
||||
},
|
||||
{
|
||||
title: '是否启用',
|
||||
dataIndex: 'is_use',
|
||||
search: false,
|
||||
render: (text) => (text ? '是' : '否'),
|
||||
width: 200,
|
||||
},
|
||||
]}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@ -46,7 +46,7 @@ export default function Create(props: MyBetaModalFormProps) {
|
||||
},
|
||||
{
|
||||
key: 'remark',
|
||||
title: '备注',
|
||||
title: '岗位说明',
|
||||
colProps: { span: 24 },
|
||||
valueType: 'textarea',
|
||||
},
|
||||
|
||||
@ -27,7 +27,6 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
onFinish={async (values) =>
|
||||
Apis.Company.CompanyPositions.Update({
|
||||
...values,
|
||||
companies_id: props?.item?.companies_id,
|
||||
id: props.item?.id ?? 0,
|
||||
})
|
||||
.then(() => {
|
||||
@ -58,7 +57,7 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
// },
|
||||
{
|
||||
key: 'remark',
|
||||
title: '备注',
|
||||
title: '岗位说明',
|
||||
colProps: { span: 24 },
|
||||
valueType: 'textarea',
|
||||
},
|
||||
|
||||
@ -5,10 +5,15 @@ import {
|
||||
MyProTableProps,
|
||||
} from '@/common';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import {
|
||||
GoodsReleasesAuditStatusEnum,
|
||||
GoodsReleasesPassedTypeEnum,
|
||||
} from '@/gen/Enums';
|
||||
import { ProTable } from '@ant-design/pro-components';
|
||||
import { useNavigate } from '@umijs/max';
|
||||
import { Space, Tooltip } from 'antd';
|
||||
import Audit from './modals/Audit';
|
||||
import Show from './modals/Show';
|
||||
|
||||
export default function Index({ title = '物品放行' }) {
|
||||
const navigate = useNavigate();
|
||||
@ -47,7 +52,7 @@ export default function Index({ title = '物品放行' }) {
|
||||
MyColumns.EnumTag({
|
||||
title: '申请状态',
|
||||
dataIndex: 'status',
|
||||
// valueEnum: GoodsReleasesAuditStatusEnum,
|
||||
valueEnum: GoodsReleasesAuditStatusEnum,
|
||||
}),
|
||||
{
|
||||
title: '房屋',
|
||||
@ -67,7 +72,7 @@ export default function Index({ title = '物品放行' }) {
|
||||
MyColumns.EnumTag({
|
||||
title: '通行类型',
|
||||
dataIndex: 'passed_type',
|
||||
// valueEnum: GoodsReleasesPassedTypeEnum,
|
||||
valueEnum: GoodsReleasesPassedTypeEnum,
|
||||
}),
|
||||
|
||||
{
|
||||
@ -155,25 +160,16 @@ export default function Index({ title = '物品放行' }) {
|
||||
},
|
||||
search: false,
|
||||
},
|
||||
MyColumns.CreatedAt(),
|
||||
// MyColumns.CreatedAt(),
|
||||
MyColumns.UpdatedAt(),
|
||||
MyColumns.Option({
|
||||
render: (_, item: any, index, action) => (
|
||||
<Space key={index}>
|
||||
{/* {item?.status ===
|
||||
{item?.status ===
|
||||
GoodsReleasesAuditStatusEnum.Pending.value && (
|
||||
<Audit item={item} reload={action?.reload} title={title} />
|
||||
)} */}
|
||||
<Audit item={item} reload={action?.reload} title={title} />
|
||||
<MyButtons.Default
|
||||
key="Create"
|
||||
size="small"
|
||||
type="primary"
|
||||
disabled={item.status !== 'Pending'}
|
||||
onClick={() => {
|
||||
navigate(`/goods_releases/list/pages/review?id=${item.id}`);
|
||||
}}
|
||||
title="查看并审核"
|
||||
/>
|
||||
)}
|
||||
<Show item={item} reload={action?.reload} title={title} />
|
||||
</Space>
|
||||
),
|
||||
}),
|
||||
|
||||
@ -1,11 +1,17 @@
|
||||
import {
|
||||
MyBetaModalFormProps,
|
||||
MyButtons,
|
||||
MyFormItems,
|
||||
MyModalFormProps,
|
||||
MyProTableProps,
|
||||
renderTextHelper,
|
||||
rulesHelper,
|
||||
} from '@/common';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import {
|
||||
GoodsReleasesAuditStatusEnum,
|
||||
GoodsReleasesPassedTypeEnum,
|
||||
} from '@/gen/Enums';
|
||||
import {
|
||||
BetaSchemaForm,
|
||||
ProCard,
|
||||
@ -50,8 +56,8 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
renderFormItem: () => (
|
||||
<Space direction="vertical" style={{ width: '100%' }}>
|
||||
<ProCard size="small">
|
||||
<ProDescriptions bordered size="small" column={1}>
|
||||
<ProDescriptions.Item label="房屋信息">
|
||||
<ProDescriptions bordered size="small" column={2}>
|
||||
<ProDescriptions.Item label="房屋信息" span={2}>
|
||||
<a
|
||||
onClick={() =>
|
||||
navigate(
|
||||
@ -59,11 +65,27 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
)
|
||||
}
|
||||
>
|
||||
{props?.item?.house?.full_name || '-'}
|
||||
{props?.item?.asset_house?.full_name || '-'}
|
||||
</a>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="申请人">
|
||||
{props?.item?.customer?.name || '-'}
|
||||
{props?.item?.apply_name || '-'}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="联系电话">
|
||||
{props?.item?.apply_phone || '-'}
|
||||
</ProDescriptions.Item>
|
||||
|
||||
<ProDescriptions.Item label="通行类型">
|
||||
<renderTextHelper.Tag
|
||||
Enums={GoodsReleasesPassedTypeEnum}
|
||||
value={props?.item?.passed_type}
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="通行日期">
|
||||
{props?.item?.passed_time || '-'}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="申请说明" span={2}>
|
||||
{props?.item?.remark || '-'}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="申请时间">
|
||||
{props?.item?.created_at || '-'}
|
||||
@ -111,19 +133,19 @@ export default function Update(props: MyBetaModalFormProps) {
|
||||
{
|
||||
valueType: 'group',
|
||||
columns: [
|
||||
// MyFormItems.EnumRadio({
|
||||
// key: 'status',
|
||||
// title: '审核操作',
|
||||
// colProps: { span: 24 },
|
||||
// valueEnum: () => {
|
||||
// let obj: any = JSON.parse(
|
||||
// JSON.stringify(GoodsReleasesPassedTypeEnum),
|
||||
// );
|
||||
// delete obj.Pending;
|
||||
// return obj;
|
||||
// },
|
||||
// required: true,
|
||||
// }),
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'status',
|
||||
title: '审核操作',
|
||||
colProps: { span: 24 },
|
||||
valueEnum: () => {
|
||||
let obj: any = JSON.parse(
|
||||
JSON.stringify(GoodsReleasesAuditStatusEnum),
|
||||
);
|
||||
delete obj.Pending;
|
||||
return obj;
|
||||
},
|
||||
required: true,
|
||||
}),
|
||||
{
|
||||
valueType: 'dependency',
|
||||
name: ['status'],
|
||||
|
||||
@ -1,80 +0,0 @@
|
||||
import {
|
||||
MyBetaModalFormProps,
|
||||
MyButtons,
|
||||
MyFormItems,
|
||||
MyModalFormProps,
|
||||
rulesHelper,
|
||||
} from '@/common';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||
import { useNavigate } from '@umijs/max';
|
||||
import { Form, message } from 'antd';
|
||||
|
||||
const GoodsReleasesAuditStatusEnum = {
|
||||
Approved: { text: '通过', value: 'Approved' },
|
||||
Rejected: { text: '驳回', value: 'Rejected' },
|
||||
};
|
||||
|
||||
export default function Review(props: MyBetaModalFormProps) {
|
||||
const [form] = Form.useForm();
|
||||
const navigate = useNavigate();
|
||||
return (
|
||||
<BetaSchemaForm<ApiTypes.GoodsReleases.GoodsReleases.ApproveByEmployee>
|
||||
{...MyModalFormProps.props}
|
||||
title="审核"
|
||||
trigger={<MyButtons.Default title="审核" size="middle" type="primary" />}
|
||||
wrapperCol={{ span: 24 }}
|
||||
key={new Date().getTime()}
|
||||
width="500px"
|
||||
form={form}
|
||||
onOpenChange={(open: any) => {
|
||||
if (open && props.item) {
|
||||
form.setFieldsValue(props.item);
|
||||
}
|
||||
}}
|
||||
onFinish={async (values) =>
|
||||
Apis.GoodsReleases.GoodsReleases.ApproveByEmployee({
|
||||
...values,
|
||||
id: props.item?.id ?? 0,
|
||||
})
|
||||
.then(() => {
|
||||
message.success('审核成功');
|
||||
navigate(-1);
|
||||
return true;
|
||||
})
|
||||
.catch(() => false)
|
||||
}
|
||||
columns={[
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'status',
|
||||
title: '审核意见',
|
||||
valueEnum: GoodsReleasesAuditStatusEnum,
|
||||
colProps: { span: 24 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
}),
|
||||
{
|
||||
valueType: 'dependency',
|
||||
name: ['status'],
|
||||
columns: ({ status }) => {
|
||||
return status === 'Rejected'
|
||||
? [
|
||||
{
|
||||
title: '驳回理由',
|
||||
valueType: 'textarea',
|
||||
key: 'reason',
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
]
|
||||
: [
|
||||
{
|
||||
title: '审核意见',
|
||||
valueType: 'textarea',
|
||||
key: 'reason',
|
||||
},
|
||||
];
|
||||
},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
);
|
||||
}
|
||||
138
src/pages/goods_releases/list/modals/Show.tsx
Normal file
138
src/pages/goods_releases/list/modals/Show.tsx
Normal file
@ -0,0 +1,138 @@
|
||||
import {
|
||||
MyBetaModalFormProps,
|
||||
MyButtons,
|
||||
MyModalFormProps,
|
||||
MyProTableProps,
|
||||
renderTextHelper,
|
||||
} from '@/common';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import {
|
||||
GoodsReleasesAuditStatusEnum,
|
||||
GoodsReleasesPassedTypeEnum,
|
||||
} from '@/gen/Enums';
|
||||
import {
|
||||
BetaSchemaForm,
|
||||
ProCard,
|
||||
ProDescriptions,
|
||||
ProTable,
|
||||
} from '@ant-design/pro-components';
|
||||
import { useNavigate } from '@umijs/max';
|
||||
import { Form, message, Space } from 'antd';
|
||||
|
||||
export default function Update(props: MyBetaModalFormProps) {
|
||||
const [form] = Form.useForm();
|
||||
const navigate = useNavigate();
|
||||
|
||||
return (
|
||||
<BetaSchemaForm<ApiTypes.GoodsReleases.GoodsReleases.ApproveByEmployee>
|
||||
{...MyModalFormProps.props}
|
||||
title={props.title}
|
||||
trigger={<MyButtons.Default title="查看" type="primary" />}
|
||||
wrapperCol={{ span: 24 }}
|
||||
width="800px"
|
||||
modalProps={{
|
||||
bodyStyle: { maxHeight: '70vh', overflowY: 'auto' },
|
||||
}}
|
||||
key={new Date().getTime()}
|
||||
form={form}
|
||||
onFinish={async (values: any) =>
|
||||
Apis.GoodsReleases.GoodsReleases.ApproveByEmployee({
|
||||
id: props.item?.id ?? 0,
|
||||
...values,
|
||||
})
|
||||
.then(() => {
|
||||
props.reload?.();
|
||||
message.success(props.title + '成功');
|
||||
return true;
|
||||
})
|
||||
.catch(() => false)
|
||||
}
|
||||
columns={[
|
||||
{
|
||||
dataIndex: 'info_display',
|
||||
valueType: 'text',
|
||||
renderFormItem: () => (
|
||||
<Space direction="vertical" style={{ width: '100%' }}>
|
||||
<ProCard size="small">
|
||||
<ProDescriptions bordered size="small" column={2}>
|
||||
<ProDescriptions.Item label="房屋信息" span={2}>
|
||||
<Space>
|
||||
<a
|
||||
onClick={() =>
|
||||
navigate(
|
||||
`/customer/archive/show/${props?.item?.asset_houses_id}`,
|
||||
)
|
||||
}
|
||||
>
|
||||
{props?.item?.asset_house?.full_name || '-'}
|
||||
</a>
|
||||
</Space>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="申请人">
|
||||
{props?.item?.apply_name || '-'}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="联系电话">
|
||||
{props?.item?.apply_phone || '-'}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="通行类型">
|
||||
<renderTextHelper.Tag
|
||||
Enums={GoodsReleasesPassedTypeEnum}
|
||||
value={props?.item?.passed_type}
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="通行日期">
|
||||
{props?.item?.passed_time || '-'}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="申请说明" span={2}>
|
||||
{props?.item?.remark || '-'}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="申请时间" span={2}>
|
||||
{props?.item?.created_at || '-'}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="审核时间">
|
||||
{props?.item?.audit_time || '-'}
|
||||
</ProDescriptions.Item>
|
||||
<ProDescriptions.Item label="审核结果">
|
||||
<renderTextHelper.Tag
|
||||
Enums={GoodsReleasesAuditStatusEnum}
|
||||
value={props?.item?.status}
|
||||
/>
|
||||
</ProDescriptions.Item>
|
||||
</ProDescriptions>
|
||||
</ProCard>
|
||||
|
||||
{props?.item?.goods && props?.item?.goods.length > 0 && (
|
||||
<ProCard size="small" title="物品清单">
|
||||
<ProTable
|
||||
{...MyProTableProps.props}
|
||||
search={false}
|
||||
toolBarRender={false}
|
||||
pagination={false}
|
||||
dataSource={props?.item?.goods}
|
||||
rowKey={(record, index) => record?.id || index}
|
||||
size="small"
|
||||
columns={[
|
||||
{
|
||||
title: '物品名称',
|
||||
dataIndex: 'name',
|
||||
},
|
||||
{
|
||||
title: '数量',
|
||||
dataIndex: 'number',
|
||||
},
|
||||
{
|
||||
title: '备注',
|
||||
dataIndex: 'remark',
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</ProCard>
|
||||
)}
|
||||
</Space>
|
||||
),
|
||||
colProps: { span: 24 },
|
||||
},
|
||||
]}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@ -6,6 +6,7 @@ import {
|
||||
} from '@/common';
|
||||
import MyModalsHouseSelectList from '@/components/ModalsHouseSelectList';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import { GoodsReleasesPassedTypeEnum } from '@/gen/Enums';
|
||||
import { BetaSchemaForm, ProCard } from '@ant-design/pro-components';
|
||||
import { useNavigate } from '@umijs/max';
|
||||
import { Form, message, Space } from 'antd';
|
||||
@ -99,7 +100,7 @@ export default function Index({ title = '物品放行申请' }) {
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'passed_type',
|
||||
title: '通行类型',
|
||||
// valueEnum: GoodsReleasesPassedTypeEnum,
|
||||
valueEnum: GoodsReleasesPassedTypeEnum,
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
}),
|
||||
@ -109,8 +110,14 @@ export default function Index({ title = '物品放行申请' }) {
|
||||
valueType: 'date',
|
||||
colProps: { span: 6 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
|
||||
fieldProps: {
|
||||
style: { width: '100%' },
|
||||
disabledDate: (current: any) => {
|
||||
// 禁用过去的日期(只允许今天及之后的日期)
|
||||
const today = new Date();
|
||||
today.setHours(0, 0, 0, 0);
|
||||
return current && current < today;
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
@ -1,164 +0,0 @@
|
||||
import {
|
||||
MyFormItems,
|
||||
MyModalFormProps,
|
||||
MyPageContainer,
|
||||
rulesHelper,
|
||||
} from '@/common';
|
||||
import { Apis } from '@/gen/Apis';
|
||||
import { BetaSchemaForm, ProCard } from '@ant-design/pro-components';
|
||||
import { useNavigate, useSearchParams } from '@umijs/max';
|
||||
import { Form, Space } from 'antd';
|
||||
import { useEffect, useState } from 'react';
|
||||
import Review from '../modals/Review';
|
||||
|
||||
export default function Index({ title = '物品放行审核' }) {
|
||||
const [form] = Form.useForm();
|
||||
const navigate = useNavigate();
|
||||
const [searchParams] = useSearchParams();
|
||||
const id = searchParams.get('id') ?? 0;
|
||||
const [data, setShow] = useState<any>({});
|
||||
|
||||
const loadShow = () => {
|
||||
Apis.GoodsReleases.GoodsReleases.Show({ id: Number(id) }).then((res) => {
|
||||
setShow(res?.data);
|
||||
form.setFieldsValue(res?.data); // 编辑赋值
|
||||
});
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
loadShow();
|
||||
}, [id]);
|
||||
|
||||
return (
|
||||
<MyPageContainer
|
||||
title={
|
||||
<Space
|
||||
style={{ cursor: 'pointer' }}
|
||||
onClick={() => {
|
||||
navigate(-1);
|
||||
}}
|
||||
>
|
||||
{/* <LeftCircleOutlined size={34} /> */}
|
||||
{title}
|
||||
</Space>
|
||||
}
|
||||
enableTabs={false}
|
||||
tabKey="goods_releases_review"
|
||||
tabLabel={title}
|
||||
>
|
||||
<ProCard>
|
||||
<div style={{ width: 900, minHeight: '83vh', margin: '0 auto' }}>
|
||||
<BetaSchemaForm<ApiTypes.GoodsReleases.GoodsReleases.Update>
|
||||
{...MyModalFormProps.props}
|
||||
title={title}
|
||||
// 基础表单
|
||||
layoutType="Form"
|
||||
labelCol={{ span: 24 }}
|
||||
wrapperCol={{ span: 24 }}
|
||||
labelAlign="left"
|
||||
width="900px"
|
||||
form={form}
|
||||
submitter={{
|
||||
render: () => {
|
||||
return [<Review item={data} key="review" />];
|
||||
},
|
||||
}}
|
||||
columns={[
|
||||
{
|
||||
colProps: { span: 24 },
|
||||
title: '选择房屋',
|
||||
key: 'asset_houses_id',
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
renderFormItem: () => {
|
||||
return (
|
||||
<ProCard bordered>
|
||||
<div>已选择房屋:{data?.asset_house?.full_name}</div>
|
||||
</ProCard>
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '申请人',
|
||||
key: 'apply_name',
|
||||
colProps: { span: 8 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
{
|
||||
title: '申请人电话',
|
||||
key: 'apply_phone',
|
||||
colProps: { span: 8 },
|
||||
fieldProps: {
|
||||
maxLength: 11,
|
||||
},
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
MyFormItems.EnumRadio({
|
||||
key: 'passed_type',
|
||||
title: '装修类型',
|
||||
// valueEnum: GoodsReleasesPassedTypeEnum,
|
||||
colProps: { span: 8 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
}),
|
||||
{
|
||||
valueType: 'formList',
|
||||
dataIndex: 'goods',
|
||||
title: '添加放行物品',
|
||||
formItemProps: { ...rulesHelper.array },
|
||||
fieldProps: {
|
||||
copyIconProps: false,
|
||||
initialValue: [
|
||||
{
|
||||
number: 1,
|
||||
},
|
||||
],
|
||||
creatorRecord: {
|
||||
number: 1,
|
||||
},
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
valueType: 'group',
|
||||
colProps: { span: 24 },
|
||||
columns: [
|
||||
{
|
||||
key: 'name',
|
||||
title: '物品名称',
|
||||
colProps: { span: 8 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
{
|
||||
key: 'number',
|
||||
title: '数量',
|
||||
valueType: 'digit',
|
||||
colProps: { span: 3 },
|
||||
formItemProps: { ...rulesHelper.number },
|
||||
},
|
||||
{
|
||||
key: 'remark',
|
||||
title: '物品备注',
|
||||
colProps: { span: 13 },
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: '放行日期',
|
||||
key: 'passed_time',
|
||||
valueType: 'date',
|
||||
colProps: { span: 24 },
|
||||
formItemProps: { ...rulesHelper.text },
|
||||
},
|
||||
{
|
||||
title: '其他备注',
|
||||
key: 'remark',
|
||||
valueType: 'textarea',
|
||||
colProps: { span: 24 },
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ProCard>
|
||||
</MyPageContainer>
|
||||
);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user