Merge pull request 'develop' (#15) from develop into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 3m49s

Reviewed-on: https://code.juyouwu.cn/pay/pay-admin/pulls/15
This commit is contained in:
uiujun 2025-10-10 00:29:29 +08:00
commit f35e37b707
16 changed files with 175 additions and 99 deletions

View File

@ -22,9 +22,9 @@ export default function Info(props: MyBetaModalFormProps) {
}, [props?.item?.id]); }, [props?.item?.id]);
return ( return (
<ProCard extra={props.extra}> <ProCard>
<ProDescriptions bordered column={3}> <ProDescriptions bordered column={1}>
<ProDescriptions.Item label="账单金额"> {/* <ProDescriptions.Item label="">
{getShow?.payable_amount_sum || '-'} {getShow?.payable_amount_sum || '-'}
</ProDescriptions.Item> </ProDescriptions.Item>
<ProDescriptions.Item label="滞纳金"> <ProDescriptions.Item label="滞纳金">
@ -32,8 +32,8 @@ export default function Info(props: MyBetaModalFormProps) {
</ProDescriptions.Item> </ProDescriptions.Item>
<ProDescriptions.Item label="优惠金额"> <ProDescriptions.Item label="优惠金额">
{getShow?.discount_amount_sum || '-'} {getShow?.discount_amount_sum || '-'}
</ProDescriptions.Item> </ProDescriptions.Item> */}
<ProDescriptions.Item label="应付金额"> <ProDescriptions.Item label="账单未缴金额">
<Space> <Space>
{getShow?.total_payable_sum || ''} {getShow?.total_payable_sum || ''}
{getShow?.payable_amount_sum ? ( {getShow?.payable_amount_sum ? (

View File

@ -126,7 +126,6 @@ export default function Index({ title = '房客关系' }) {
}, },
search: false, search: false,
}, },
MyColumns.Option({ MyColumns.Option({
render: (_, item: any, index, action) => ( render: (_, item: any, index, action) => (
<Space key={index}> <Space key={index}>

View File

@ -39,6 +39,7 @@ export default function Index({ title = '楼栋范围' }) {
<GridCreate key="Select" reload={action?.reload} title="楼栋划分" />, <GridCreate key="Select" reload={action?.reload} title="楼栋划分" />,
]} ]}
columns={[ columns={[
MyColumns.ID(),
{ {
title: '关联项目', title: '关联项目',
dataIndex: ['asset_project', 'name'], dataIndex: ['asset_project', 'name'],
@ -48,23 +49,15 @@ export default function Index({ title = '楼栋范围' }) {
}, },
}, },
}, },
{
title: 'ID',
dataIndex: 'id',
},
{ {
title: '板块名称', title: '板块名称',
dataIndex: 'name', dataIndex: 'name',
}, },
{
title: '标识',
dataIndex: 'grid_mark',
},
{ {
title: '楼栋管家', title: '楼栋管家',
dataIndex: ['company_employee', 'name'], dataIndex: ['company_employee', 'name'],
render: (_, item: any) => render: (_, item: any) =>
`${item?.company_employee?.name || ''}-${ `${item?.company_employee?.name || ''}${
item?.company_employee?.phone || '' item?.company_employee?.phone || ''
}`, }`,
}, },

View File

@ -131,7 +131,7 @@ export default function Index({ title = '项目列表' }) {
/> />
<MyButtons.Delete <MyButtons.Delete
onConfirm={() => onConfirm={() =>
Apis.Common.Admins.Delete({ id: item.id }).then(() => Apis.Asset.AssetProjects.Delete({ id: item.id }).then(() =>
action?.reload(), action?.reload(),
) )
} }

View File

@ -113,7 +113,7 @@ export default function Index({ title = '账单明细' }) {
<BillUpdate item={item} reload={action?.reload} title={title} /> <BillUpdate item={item} reload={action?.reload} title={title} />
<MyButtons.Delete <MyButtons.Delete
onConfirm={() => onConfirm={() =>
Apis.Common.Admins.Delete({ id: item.id }).then(() => Apis.Bill.HouseBills.Delete({ id: item.id }).then(() =>
action?.reload(), action?.reload(),
) )
} }

View File

@ -12,7 +12,7 @@ import { Space } from 'antd';
import Create from './modals/Create'; import Create from './modals/Create';
import Update from './modals/Update'; import Update from './modals/Update';
export default function Index({ title = '岗位管理' }) { export default function Index({ title = '岗位' }) {
const navigate = useNavigate(); const navigate = useNavigate();
// 注册当前页面为标签页 // 注册当前页面为标签页

View File

@ -45,10 +45,12 @@ export default function Index({ title = '品牌管理' }) {
{ {
title: '机构', title: '机构',
dataIndex: ['company', 'name'], dataIndex: ['company', 'name'],
width: 300,
}, },
{ {
title: '品牌名称', title: '品牌名称',
dataIndex: 'name', dataIndex: 'name',
width: 200,
}, },
{ {
title: 'logo', title: 'logo',
@ -66,7 +68,9 @@ export default function Index({ title = '品牌管理' }) {
</Space> </Space>
); );
}, },
width: 100,
}, },
MyColumns.UpdatedAt(),
MyColumns.Option({ MyColumns.Option({
render: (_, item: any, index, action) => ( render: (_, item: any, index, action) => (
<Space key={index}> <Space key={index}>

View File

@ -92,8 +92,8 @@ export default function Index({ title = '员工管理' }) {
<Change item={item} reload={action?.reload} title={title} /> <Change item={item} reload={action?.reload} title={title} />
<MyButtons.Delete <MyButtons.Delete
onConfirm={() => onConfirm={() =>
Apis.Common.Admins.Delete({ id: item.id }).then(() => Apis.Company.CompanyEmployees.Delete({ id: item.id }).then(
action?.reload(), () => action?.reload(),
) )
} }
/> />

View File

@ -166,7 +166,6 @@ export default function Index({ title = '投诉列表' }) {
title="分配" title="分配"
/> />
)} )}
<MyButtons.Delete <MyButtons.Delete
onConfirm={() => onConfirm={() =>
Apis.WorkOrder.HouseWorkOrders.SoftDelete({ Apis.WorkOrder.HouseWorkOrders.SoftDelete({

View File

@ -20,12 +20,13 @@ export default function Index(props: MyBetaModalFormProps) {
Apis.Archive.HouseOccupants.CustomerHouseByPhone, Apis.Archive.HouseOccupants.CustomerHouseByPhone,
) )
} }
// search={false} search={false}
// options={false} options={false}
columns={[ columns={[
{ {
title: '项目名称', title: '关联房屋',
dataIndex: ['asset_house', 'full_name'], dataIndex: ['asset_house', 'full_name'],
search: false, search: false,
}, },
MyColumns.EnumTag({ MyColumns.EnumTag({

View File

@ -11,7 +11,7 @@ import { Space } from 'antd';
import Create from './modals/Create'; import Create from './modals/Create';
import Update from './modals/Update'; import Update from './modals/Update';
export default function Index({ title = '朋友圈分类' }) { export default function Index({ title = '内容分类' }) {
// 注册当前页面为标签页 // 注册当前页面为标签页
usePageTabs({ usePageTabs({
tabKey: 'moments-classification', tabKey: 'moments-classification',

View File

@ -12,8 +12,8 @@ export default function infoPreview(props: MyBetaModalFormProps) {
<div className="preview_header"> <div className="preview_header">
<div className="avatar"></div> <div className="avatar"></div>
<div className="info"> <div className="info">
<div className="name"></div> <div className="name"></div>
<div className="desc"></div> <div className="desc"></div>
</div> </div>
</div> </div>
<div className="preview_content"> <div className="preview_content">
@ -31,8 +31,8 @@ export default function infoPreview(props: MyBetaModalFormProps) {
<div className="preview_header"> <div className="preview_header">
<div className="avatar"></div> <div className="avatar"></div>
<div className="info"> <div className="info">
<div className="name"></div> <div className="name"></div>
<div className="desc"></div> <div className="desc"></div>
</div> </div>
</div> </div>
<div className="preview_content"> <div className="preview_content">
@ -55,9 +55,9 @@ export default function infoPreview(props: MyBetaModalFormProps) {
</div> </div>
</div> </div>
<div className="preview_content cover_image_preview"> <div className="preview_content cover_image_preview">
<div className="cover_image"></div> <div className="cover_image"></div>
<div className="cover_info"> <div className="cover_info">
</div> </div>
</div> </div>
</ProCard> </ProCard>

View File

@ -2,7 +2,7 @@
background-color: #f8f8f8; background-color: #f8f8f8;
width: 400px; width: 400px;
padding: 15px; padding: 15px;
margin-left: 10px; margin-left: 60px;
border-radius: 10px; border-radius: 10px;
.title { .title {
border-left: 3px solid #1890ff; border-left: 3px solid #1890ff;

View File

@ -9,6 +9,7 @@ import { Apis } from '@/gen/Apis';
import { import {
CustomerMomentsChannelEnum, CustomerMomentsChannelEnum,
CustomerMomentsContentTypeEnum, CustomerMomentsContentTypeEnum,
CustomerMomentsPushStatusEnum,
CustomerMomentsPushTypeEnum, CustomerMomentsPushTypeEnum,
CustomerMomentsTaskEndTypeEnum, CustomerMomentsTaskEndTypeEnum,
} from '@/gen/Enums'; } from '@/gen/Enums';
@ -16,7 +17,7 @@ import { ProTable } from '@ant-design/pro-components';
import { Card, Space } from 'antd'; import { Card, Space } from 'antd';
import Create from './modals/Create'; import Create from './modals/Create';
export default function Index({ title = '推送任务' }) { export default function Index({ title = '创建内容' }) {
// 注册当前页面为标签页 // 注册当前页面为标签页
usePageTabs({ usePageTabs({
tabKey: 'moments-list', tabKey: 'moments-list',
@ -47,15 +48,29 @@ export default function Index({ title = '推送任务' }) {
]} ]}
columns={[ columns={[
MyColumns.ID(), MyColumns.ID(),
MyColumns.EnumTag({
title: '任务推送',
dataIndex: 'push_status',
valueEnum: CustomerMomentsPushStatusEnum,
search: false,
}),
{ {
title: '名称', title: '标题',
dataIndex: 'title', dataIndex: 'title',
render: (_, i: any) => { render: (_, i: any) => {
return ( return (
<Card size="small"> <Card size="small">
<Space align="start"> <Space align="start">
<img src={i?.cover_image[0]?.url} width={45} height={45} />
<div>{i?.title}</div> <div>{i?.title}</div>
<img
src={
i?.cover_image?.length > 0
? i?.cover_image[0]?.url
: i?.attachments[0]?.url
}
width={45}
height={45}
/>
</Space> </Space>
</Card> </Card>
); );
@ -77,7 +92,7 @@ export default function Index({ title = '推送任务' }) {
valueEnum: CustomerMomentsPushTypeEnum, valueEnum: CustomerMomentsPushTypeEnum,
}), }),
{ {
title: '定时发送时间', title: '送时间',
dataIndex: 'scheduled_time', dataIndex: 'scheduled_time',
search: false, search: false,
}, },
@ -89,15 +104,16 @@ export default function Index({ title = '推送任务' }) {
search: false, search: false,
}), }),
{ {
title: '任务结束天数', title: '任务结束时间',
dataIndex: 'task_days', dataIndex: 'task_days',
search: false, search: false,
render: (_, record: any) => {
return record?.task_end_type === 'AfterNDays'
? `任务发送后:${record?.task_days}`
: '${record?.task_end_time}';
}, },
{
title: '定时结束',
dataIndex: 'task_end_time',
search: false,
}, },
MyColumns.UpdatedAt(), MyColumns.UpdatedAt(),
MyColumns.CreatedAt(), MyColumns.CreatedAt(),
MyColumns.Option({ MyColumns.Option({

View File

@ -40,7 +40,7 @@ export default function Create(props: MyBetaModalFormProps) {
}), }),
Selects?.Companies({ Selects?.Companies({
key: 'companies_id', key: 'companies_id',
title: '公司', title: '选择机构',
colProps: { span: 24 }, colProps: { span: 24 },
required: true, required: true,
}), }),
@ -54,10 +54,11 @@ export default function Create(props: MyBetaModalFormProps) {
columns: [ columns: [
MyFormItems.EnumRadio({ MyFormItems.EnumRadio({
key: 'push_type', key: 'push_type',
title: '推送类型', title: '任务推送方式',
tooltip: '内容穿创建后,推送任务给员工的方式',
valueEnum: CustomerMomentsPushTypeEnum, valueEnum: CustomerMomentsPushTypeEnum,
required: true, required: true,
colProps: { span: 9 }, colProps: { span: 12 },
}), }),
{ {
name: ['push_type'], name: ['push_type'],
@ -67,9 +68,9 @@ export default function Create(props: MyBetaModalFormProps) {
? [ ? [
{ {
key: 'scheduled_time', key: 'scheduled_time',
title: '定时送时间', title: '定时送时间',
valueType: 'dateTime', valueType: 'dateTime',
colProps: { span: 10 }, colProps: { span: 12 },
}, },
] ]
: []; : [];
@ -86,7 +87,7 @@ export default function Create(props: MyBetaModalFormProps) {
title: '任务结束类型', title: '任务结束类型',
valueEnum: CustomerMomentsTaskEndTypeEnum, valueEnum: CustomerMomentsTaskEndTypeEnum,
required: true, required: true,
colProps: { span: 9 }, colProps: { span: 12 },
}), }),
{ {
name: ['task_end_type'], name: ['task_end_type'],
@ -96,7 +97,7 @@ export default function Create(props: MyBetaModalFormProps) {
? [ ? [
{ {
key: 'task_days', key: 'task_days',
title: '任务结束天数', title: ' ',
colProps: { span: 10 }, colProps: { span: 10 },
valueType: 'digit', valueType: 'digit',
formItemProps: { ...rulesHelper.number }, formItemProps: { ...rulesHelper.number },
@ -123,7 +124,7 @@ export default function Create(props: MyBetaModalFormProps) {
}, },
MyFormItems.EnumSelect({ MyFormItems.EnumSelect({
key: 'range_type', key: 'range_type',
title: '范围类型', title: '推送范围',
valueEnum: CustomerMomentsRangeTypeEnum, valueEnum: CustomerMomentsRangeTypeEnum,
required: true, required: true,
}), }),
@ -150,6 +151,12 @@ export default function Create(props: MyBetaModalFormProps) {
{ {
title: '创建内容', title: '创建内容',
columns: [ columns: [
{
key: 'title',
title: '标题',
formItemProps: { ...rulesHelper.text },
colProps: { span: 24 },
},
MyFormItems.EnumRadio({ MyFormItems.EnumRadio({
key: 'content_type', key: 'content_type',
title: '内容类型', title: '内容类型',
@ -157,18 +164,58 @@ export default function Create(props: MyBetaModalFormProps) {
required: true, required: true,
colProps: { span: 24 }, colProps: { span: 24 },
}), }),
{ {
key: 'skip_url', name: ['content_type'],
title: '链接', valueType: 'dependency',
columns: ({ content_type }: any) => {
return content_type === CustomerMomentsContentTypeEnum.Image.value
? [
{
key: 'content',
title: '发送文案',
valueType: 'textarea',
colProps: { span: 24 },
formItemProps: { ...rulesHelper.text }, formItemProps: { ...rulesHelper.text },
colProps: { span: 12 },
}, },
MyFormItems.UploadImages({
key: 'attachments',
title: '上传图片',
// uploadType: 'file',
required: true,
tooltip: '限9张图片',
max: 9,
colProps: { span: 24 },
}),
]
: content_type === CustomerMomentsContentTypeEnum.Video.value
? [
{ {
key: 'title', key: 'content',
title: '标题', title: '发送文案',
valueType: 'textarea',
colProps: { span: 24 },
formItemProps: { ...rulesHelper.text },
},
MyFormItems.UploadImages({
key: 'attachments',
title: '上传视频',
required: true,
tooltip: '限1个视频',
// uploadType: 'file',
max: 1,
colProps: { span: 24 },
}),
]
: content_type === CustomerMomentsContentTypeEnum.Link.value ||
content_type ===
CustomerMomentsContentTypeEnum.MiniProgram.value
? [
{
key: 'content',
title: '发送文案',
valueType: 'textarea',
colProps: { span: 24 },
formItemProps: { ...rulesHelper.text }, formItemProps: { ...rulesHelper.text },
colProps: { span: 12 },
}, },
{ {
name: ['content_type'], name: ['content_type'],
@ -181,37 +228,54 @@ export default function Create(props: MyBetaModalFormProps) {
key: 'mini_program_app_id', key: 'mini_program_app_id',
title: '小程序APPID', title: '小程序APPID',
formItemProps: { ...rulesHelper.text }, formItemProps: { ...rulesHelper.text },
colProps: { span: 12 },
},
{
key: 'skip_url',
title: '链接地址',
formItemProps: { ...rulesHelper.text },
colProps: { span: 12 },
},
]
: [
{
key: 'skip_url',
title: '链接地址',
formItemProps: { ...rulesHelper.text },
colProps: { span: 24 },
},
];
},
},
{
key: 'desc',
title: '链接标题',
colProps: { span: 24 },
formItemProps: { ...rulesHelper.text },
},
MyFormItems.UploadImages({
key: 'cover_image',
tooltip: '限1张图片',
title: '设置封面',
required: true,
max: 1,
}),
]
: content_type === CustomerMomentsContentTypeEnum.Link.value ||
content_type ===
CustomerMomentsContentTypeEnum.MiniProgram.value
? [
{
key: 'skip_url',
title: '链接',
formItemProps: { ...rulesHelper.text },
colProps: { span: 24 }, colProps: { span: 24 },
}, },
] ]
: []; : [];
}, },
}, },
{
key: 'content',
title: '内容',
valueType: 'textarea',
colProps: { span: 24 },
formItemProps: { ...rulesHelper.text },
},
{
key: 'desc',
title: '描述',
valueType: 'textarea',
colProps: { span: 24 },
},
MyFormItems.UploadImages({
key: 'cover_image',
title: '封面',
max: 1,
}),
MyFormItems.UploadImages({
key: 'attachments',
title: '附件',
uploadType: 'file',
max: 100,
colProps: { span: 12 },
}),
], ],
}, },
]; ];
@ -236,23 +300,23 @@ export default function Create(props: MyBetaModalFormProps) {
type="primary" type="primary"
size={'middle'} size={'middle'}
myRef={modalRef} myRef={modalRef}
width="1200px" width="580px"
node={ node={
<Space direction="vertical"> <Space direction="vertical">
<div style={{ width: '1160px' }}> <div style={{ width: '666px' }}>
<Steps <Steps
style={{ padding: '50px 150px 30px 150px' }} style={{ padding: '20px 200px 20px 20px' }}
current={current} current={current}
items={steps} items={steps}
/> />
</div> </div>
<Space align="start"> <Space align="start">
<div style={{ width: '700px' }}> <div style={{ width: '500px' }}>
<BetaSchemaForm<ApiTypes.Customer.CustomerMomentCategories.Store> <BetaSchemaForm<ApiTypes.Customer.CustomerMomentCategories.Store>
{...MyModalFormProps.props} {...MyModalFormProps.props}
title={`添加${props.title}`} title={`添加${props.title}`}
wrapperCol={{ span: 24 }} wrapperCol={{ span: 24 }}
width="800px" // width="1200px"
form={form} form={form}
layoutType="Form" layoutType="Form"
trigger={<MyButtons.Create title={`添加${props.title}`} />} trigger={<MyButtons.Create title={`添加${props.title}`} />}

View File

@ -113,8 +113,8 @@ export default function Index({ title = '支付订单' }) {
<Payments item={item} title="查看" reload={action?.reload} /> <Payments item={item} title="查看" reload={action?.reload} />
<MyButtons.Delete <MyButtons.Delete
onConfirm={() => onConfirm={() =>
Apis.Common.Admins.Delete({ id: item.id }).then(() => Apis.HouseOrder.HouseOrders.Delete({ id: item.id }).then(
action?.reload(), () => action?.reload(),
) )
} }
/> />