Merge pull request 'feat:更新账单任务、项目公告、项目活动' (#9) from develop into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 3m41s
All checks were successful
Build and Push Docker Image / build (push) Successful in 3m41s
Reviewed-on: https://code.juyouwu.cn/pay/pay-admin/pulls/9
This commit is contained in:
commit
31ed649a27
@ -14,6 +14,8 @@
|
|||||||
"@ant-design/icons": "^5.0.1",
|
"@ant-design/icons": "^5.0.1",
|
||||||
"@ant-design/pro-components": "^2.8.10",
|
"@ant-design/pro-components": "^2.8.10",
|
||||||
"@umijs/max": "^4.3.10",
|
"@umijs/max": "^4.3.10",
|
||||||
|
"@wangeditor/editor": "^5.1.23",
|
||||||
|
"@wangeditor/editor-for-react": "^1.0.6",
|
||||||
"antd": "^5.4.0",
|
"antd": "^5.4.0",
|
||||||
"axios": "^1.7.2",
|
"axios": "^1.7.2",
|
||||||
"dayjs": "^1.11.12",
|
"dayjs": "^1.11.12",
|
||||||
|
|||||||
@ -25,10 +25,10 @@ function MyEditor(props: any) {
|
|||||||
file: any,
|
file: any,
|
||||||
onSuccess: (url: string, file: any) => void,
|
onSuccess: (url: string, file: any) => void,
|
||||||
) => {
|
) => {
|
||||||
Apis.Auth.PreUpload({
|
Apis.Common.Auth.PreUpload({
|
||||||
filename: file.name,
|
filename: file.name,
|
||||||
alc: 'public-read',
|
alc: 'public-read',
|
||||||
}).then(async (res) => {
|
}).then(async (res: any) => {
|
||||||
axios
|
axios
|
||||||
.put(res.data.url, file, {
|
.put(res.data.url, file, {
|
||||||
headers: res.data.headers,
|
headers: res.data.headers,
|
||||||
@ -102,9 +102,9 @@ function MyEditor(props: any) {
|
|||||||
value={html}
|
value={html}
|
||||||
key="Editor2"
|
key="Editor2"
|
||||||
onCreated={setEditor}
|
onCreated={setEditor}
|
||||||
onChange={(editor) => props?.onChange?.(editor.getHtml())}
|
onChange={(editor: any) => props?.onChange?.(editor.getHtml())}
|
||||||
mode="default"
|
mode="default"
|
||||||
style={{ height: '500px', overflowY: 'hidden' }}
|
style={{ height: '320px', overflowY: 'hidden' }}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,12 +1,19 @@
|
|||||||
import { MyButtons } from '@/common';
|
import { MyButtons } from '@/common';
|
||||||
import { Modal } from 'antd';
|
import { Modal } from 'antd';
|
||||||
import { useImperativeHandle, useState } from 'react';
|
import { useEffect, useImperativeHandle, useState } from 'react';
|
||||||
|
|
||||||
export function MyModal(props?: any) {
|
export function MyModal(props?: any) {
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
const close = () => {
|
const close = () => {
|
||||||
setOpen(false);
|
setOpen(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (open && props?.onOpen) {
|
||||||
|
props.onOpen();
|
||||||
|
}
|
||||||
|
}, [open, props?.onOpen]);
|
||||||
|
|
||||||
useImperativeHandle(props.myRef, () => ({
|
useImperativeHandle(props.myRef, () => ({
|
||||||
close,
|
close,
|
||||||
}));
|
}));
|
||||||
|
|||||||
60
src/gen/ApiTypes.d.ts
vendored
60
src/gen/ApiTypes.d.ts
vendored
@ -1,4 +1,64 @@
|
|||||||
declare namespace ApiTypes {
|
declare namespace ApiTypes {
|
||||||
|
namespace Activity {
|
||||||
|
namespace Activities {
|
||||||
|
type List = {
|
||||||
|
"title"?: string; // 模糊搜索:名称
|
||||||
|
"status"?: string; // 状态,[enum:ActivitiesStatusEnum]
|
||||||
|
"publish_status"?: string; // 发布状态,[enum:ActivitiesPublishStatusEnum]
|
||||||
|
};
|
||||||
|
type Store = {
|
||||||
|
"title": string; // 活动标题
|
||||||
|
"start_time": Date; // 活动开始时间
|
||||||
|
"end_time": Date; // 活动结束时间
|
||||||
|
"publish_type"?: string; // 发布类型,[enum:ActivitiesPublishTypeEnum]
|
||||||
|
"schedule_publish_at"?: Date; // 定时发布时间
|
||||||
|
"is_enroll"?: boolean; // 是否报名:1 是、0 否
|
||||||
|
"project_ids"?: string[]; // 项目ID
|
||||||
|
"content": string; // 内容
|
||||||
|
};
|
||||||
|
type Update = {
|
||||||
|
"id": number; // id
|
||||||
|
"title": string; // 活动标题
|
||||||
|
"start_time": Date; // 活动开始时间
|
||||||
|
"end_time": Date; // 活动结束时间
|
||||||
|
"publish_type"?: string; // 发布类型,[enum:ActivitiesPublishTypeEnum]
|
||||||
|
"schedule_publish_at"?: Date; // 定时发布时间
|
||||||
|
"is_enroll"?: boolean; // 是否报名:1 是、0 否
|
||||||
|
"project_ids"?: string[]; // 项目ID
|
||||||
|
"content": string; // 内容
|
||||||
|
};
|
||||||
|
type ChangePublishStatus = {
|
||||||
|
"id": number; // id
|
||||||
|
"publish_status": string; // 状态,[enum:ActivitiesPublishStatusEnum]
|
||||||
|
};
|
||||||
|
type Show = {
|
||||||
|
"id": number; // id
|
||||||
|
};
|
||||||
|
type SoftDelete = {
|
||||||
|
"id": number; // id
|
||||||
|
};
|
||||||
|
type Restore = {
|
||||||
|
"id": number; // id
|
||||||
|
};
|
||||||
|
type Delete = {
|
||||||
|
"id": number; // id
|
||||||
|
};
|
||||||
|
}
|
||||||
|
namespace ActivityEnrolls {
|
||||||
|
type List = {
|
||||||
|
"activities_id"?: number; // 活动id,[ref:activities]
|
||||||
|
"customer_name"?: string; // 模糊搜索:客户名称
|
||||||
|
"customer_phone"?: string; // 模糊搜索:客户电话
|
||||||
|
};
|
||||||
|
type Show = {
|
||||||
|
"id": number; // id
|
||||||
|
};
|
||||||
|
type ChangeStatus = {
|
||||||
|
"id": number; // id
|
||||||
|
"status": string; // 状态:[ActivityEnrollsStatusEnum]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
namespace Archive {
|
namespace Archive {
|
||||||
namespace HouseOccupants {
|
namespace HouseOccupants {
|
||||||
type List = {
|
type List = {
|
||||||
|
|||||||
@ -2,6 +2,45 @@ import { MyResponseType } from '@/common';
|
|||||||
import { request } from '@umijs/max';
|
import { request } from '@umijs/max';
|
||||||
|
|
||||||
export const Apis = {
|
export const Apis = {
|
||||||
|
Activity: {
|
||||||
|
Activities: {
|
||||||
|
List(data?: ApiTypes.Activity.Activities.List): Promise<MyResponseType> {
|
||||||
|
return request('admin/activity/activities/list', { data });
|
||||||
|
},
|
||||||
|
Store(data: ApiTypes.Activity.Activities.Store): Promise<MyResponseType> {
|
||||||
|
return request('admin/activity/activities/store', { data });
|
||||||
|
},
|
||||||
|
Update(data: ApiTypes.Activity.Activities.Update): Promise<MyResponseType> {
|
||||||
|
return request('admin/activity/activities/update', { data });
|
||||||
|
},
|
||||||
|
ChangePublishStatus(data: ApiTypes.Activity.Activities.ChangePublishStatus): Promise<MyResponseType> {
|
||||||
|
return request('admin/activity/activities/change_publish_status', { data });
|
||||||
|
},
|
||||||
|
Show(data: ApiTypes.Activity.Activities.Show): Promise<MyResponseType> {
|
||||||
|
return request('admin/activity/activities/show', { data });
|
||||||
|
},
|
||||||
|
SoftDelete(data: ApiTypes.Activity.Activities.SoftDelete): Promise<MyResponseType> {
|
||||||
|
return request('admin/activity/activities/soft_delete', { data });
|
||||||
|
},
|
||||||
|
Restore(data: ApiTypes.Activity.Activities.Restore): Promise<MyResponseType> {
|
||||||
|
return request('admin/activity/activities/restore', { data });
|
||||||
|
},
|
||||||
|
Delete(data: ApiTypes.Activity.Activities.Delete): Promise<MyResponseType> {
|
||||||
|
return request('admin/activity/activities/delete', { data });
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ActivityEnrolls: {
|
||||||
|
List(data?: ApiTypes.Activity.ActivityEnrolls.List): Promise<MyResponseType> {
|
||||||
|
return request('admin/activity/activity_enrolls/list', { data });
|
||||||
|
},
|
||||||
|
Show(data: ApiTypes.Activity.ActivityEnrolls.Show): Promise<MyResponseType> {
|
||||||
|
return request('admin/activity/activity_enrolls/show', { data });
|
||||||
|
},
|
||||||
|
ChangeStatus(data: ApiTypes.Activity.ActivityEnrolls.ChangeStatus): Promise<MyResponseType> {
|
||||||
|
return request('admin/activity/activity_enrolls/change_status', { data });
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
Archive: {
|
Archive: {
|
||||||
HouseOccupants: {
|
HouseOccupants: {
|
||||||
List(data?: ApiTypes.Archive.HouseOccupants.List): Promise<MyResponseType> {
|
List(data?: ApiTypes.Archive.HouseOccupants.List): Promise<MyResponseType> {
|
||||||
|
|||||||
@ -1,3 +1,31 @@
|
|||||||
|
// ActivitiesPublishStatusEnum
|
||||||
|
export const ActivitiesPublishStatusEnum= {
|
||||||
|
'Unpublished': {"text":"未发布","color":"#9e9e9e","value":"Unpublished"},
|
||||||
|
'Published': {"text":"已发布","color":"#00c853","value":"Published"},
|
||||||
|
'Unlisted': {"text":"已下架","color":"#d32f2f","value":"Unlisted"},
|
||||||
|
};
|
||||||
|
|
||||||
|
// ActivitiesPublishTypeEnum
|
||||||
|
export const ActivitiesPublishTypeEnum= {
|
||||||
|
'Manual': {"text":"手动","color":"#4caf50","value":"Manual"},
|
||||||
|
'Schedule': {"text":"定时","color":"#2196f3","value":"Schedule"},
|
||||||
|
};
|
||||||
|
|
||||||
|
// ActivitiesStatusEnum
|
||||||
|
export const ActivitiesStatusEnum= {
|
||||||
|
'NotStarted': {"text":"未开始","color":"#9e9e9e","value":"NotStarted"},
|
||||||
|
'InProgress': {"text":"进行中","color":"#00c853","value":"InProgress"},
|
||||||
|
'Finished': {"text":"已结束","color":"#d32f2f","value":"Finished"},
|
||||||
|
};
|
||||||
|
|
||||||
|
// ActivityEnrollsStatusEnum
|
||||||
|
export const ActivityEnrollsStatusEnum= {
|
||||||
|
'PendingReview': {"text":"待审核","color":"#2196f3","value":"PendingReview"},
|
||||||
|
'Success': {"text":"成功","color":"#00c853","value":"Success"},
|
||||||
|
'Failed': {"text":"失败","color":"#d32f2f","value":"Failed"},
|
||||||
|
'Cancelled': {"text":"取消","color":"#ff9800","value":"Cancelled"},
|
||||||
|
};
|
||||||
|
|
||||||
// AssetHousesOrientationEnum
|
// AssetHousesOrientationEnum
|
||||||
export const AssetHousesOrientationEnum= {
|
export const AssetHousesOrientationEnum= {
|
||||||
'East': {"text":"东","color":"#007bff","value":"East"},
|
'East': {"text":"东","color":"#007bff","value":"East"},
|
||||||
@ -126,7 +154,7 @@ export const BannersTypeEnum= {
|
|||||||
|
|
||||||
// 缓存类型
|
// 缓存类型
|
||||||
export const CacheTypeEnum= {
|
export const CacheTypeEnum= {
|
||||||
'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#69355c","value":"MobilePhoneVerificationCode"},
|
'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#5acfb3","value":"MobilePhoneVerificationCode"},
|
||||||
};
|
};
|
||||||
|
|
||||||
// CompaniesMerchantTypeEnum
|
// CompaniesMerchantTypeEnum
|
||||||
|
|||||||
@ -46,7 +46,7 @@ export default function Index({ title = '项目账户' }) {
|
|||||||
// width: 360,
|
// width: 360,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '收款账号名称',
|
title: '收款名称',
|
||||||
dataIndex: ['receipt_account', 'company_name'],
|
dataIndex: ['receipt_account', 'company_name'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
176
src/pages/asset/activities/index.tsx
Normal file
176
src/pages/asset/activities/index.tsx
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
import {
|
||||||
|
MyButtons,
|
||||||
|
MyColumns,
|
||||||
|
MyPageContainer,
|
||||||
|
MyProTableProps,
|
||||||
|
usePageTabs,
|
||||||
|
} from '@/common';
|
||||||
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import {
|
||||||
|
ActivitiesPublishStatusEnum,
|
||||||
|
ActivitiesPublishTypeEnum,
|
||||||
|
ActivitiesStatusEnum,
|
||||||
|
} from '@/gen/Enums';
|
||||||
|
import { ProTable } from '@ant-design/pro-components';
|
||||||
|
import { useNavigate } from '@umijs/max';
|
||||||
|
import { Space } from 'antd';
|
||||||
|
import ActivityCreate from './modals/ActivityCreate';
|
||||||
|
import ActivityShow from './modals/ActivityShow';
|
||||||
|
import ActivityUpdate from './modals/ActivityUpdate';
|
||||||
|
import EnrollsList from './modals/EnrollsList';
|
||||||
|
|
||||||
|
export default function Index({ title = '项目活动' }) {
|
||||||
|
const navigate = useNavigate();
|
||||||
|
|
||||||
|
// 注册当前页面为标签页
|
||||||
|
usePageTabs({
|
||||||
|
tabKey: 'activity',
|
||||||
|
tabLabel: title,
|
||||||
|
});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<MyPageContainer
|
||||||
|
title={title}
|
||||||
|
enableTabs={true}
|
||||||
|
tabKey="activity"
|
||||||
|
tabLabel={title}
|
||||||
|
>
|
||||||
|
<ProTable
|
||||||
|
{...MyProTableProps.props}
|
||||||
|
request={async (params, sort) =>
|
||||||
|
MyProTableProps.request(params, sort, Apis.Activity.Activities.List)
|
||||||
|
}
|
||||||
|
toolBarRender={(action) => [
|
||||||
|
<ActivityCreate key="Create" reload={action?.reload} title={title} />,
|
||||||
|
]}
|
||||||
|
columns={[
|
||||||
|
MyColumns.ID(),
|
||||||
|
{
|
||||||
|
title: '活动标题',
|
||||||
|
dataIndex: 'title',
|
||||||
|
},
|
||||||
|
MyColumns.EnumTag({
|
||||||
|
title: '发布方式',
|
||||||
|
dataIndex: 'publish_type',
|
||||||
|
valueEnum: ActivitiesPublishTypeEnum,
|
||||||
|
search: false,
|
||||||
|
}),
|
||||||
|
MyColumns.EnumTag({
|
||||||
|
title: '发布状态',
|
||||||
|
dataIndex: 'publish_status',
|
||||||
|
valueEnum: ActivitiesPublishStatusEnum,
|
||||||
|
search: false,
|
||||||
|
}),
|
||||||
|
MyColumns.EnumTag({
|
||||||
|
title: '活动状态',
|
||||||
|
dataIndex: 'status',
|
||||||
|
valueEnum: ActivitiesStatusEnum,
|
||||||
|
search: false,
|
||||||
|
}),
|
||||||
|
{
|
||||||
|
title: '开始时间',
|
||||||
|
dataIndex: 'start_time',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '结束时间',
|
||||||
|
dataIndex: 'end_time',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '发布时间',
|
||||||
|
dataIndex: 'publish_time',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '活动报名',
|
||||||
|
dataIndex: 'is_enroll',
|
||||||
|
search: false,
|
||||||
|
render(_, record) {
|
||||||
|
return `${record?.is_enroll ? '开启' : '关闭'} `;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
MyColumns.SoftDelete({
|
||||||
|
onRestore: Apis.Activity.Activities.Restore,
|
||||||
|
onSoftDelete: Apis.Activity.Activities.SoftDelete,
|
||||||
|
search: false,
|
||||||
|
}),
|
||||||
|
MyColumns.UpdatedAt(),
|
||||||
|
MyColumns.Option({
|
||||||
|
render: (_, item: any, index, action) => (
|
||||||
|
<Space key={index}>
|
||||||
|
<ActivityShow item={item} />
|
||||||
|
{(!item.end_time || new Date(item.end_time) > new Date()) && (
|
||||||
|
<ActivityUpdate
|
||||||
|
item={item}
|
||||||
|
reload={action?.reload}
|
||||||
|
// title={title}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
{(!item.end_time || new Date(item.end_time) > new Date()) && (
|
||||||
|
<MyButtons.Default
|
||||||
|
title={
|
||||||
|
item.publish_status ===
|
||||||
|
ActivitiesPublishStatusEnum.Unpublished.value
|
||||||
|
? '发布'
|
||||||
|
: item.publish_status ===
|
||||||
|
ActivitiesPublishStatusEnum.Published.value
|
||||||
|
? '下架'
|
||||||
|
: '重新发布'
|
||||||
|
}
|
||||||
|
type="primary"
|
||||||
|
isConfirm
|
||||||
|
description={
|
||||||
|
item.publish_status ===
|
||||||
|
ActivitiesPublishStatusEnum.Unpublished.value
|
||||||
|
? '确认发布此活动吗?'
|
||||||
|
: item.publish_status ===
|
||||||
|
ActivitiesPublishStatusEnum.Published.value
|
||||||
|
? '确认下架此活动吗?'
|
||||||
|
: '确认重新发布此活动吗?'
|
||||||
|
}
|
||||||
|
onConfirm={() => {
|
||||||
|
let newStatus;
|
||||||
|
if (
|
||||||
|
item.publish_status ===
|
||||||
|
ActivitiesPublishStatusEnum.Unpublished.value
|
||||||
|
) {
|
||||||
|
newStatus = ActivitiesPublishStatusEnum.Published.value;
|
||||||
|
} else if (
|
||||||
|
item.publish_status ===
|
||||||
|
ActivitiesPublishStatusEnum.Published.value
|
||||||
|
) {
|
||||||
|
newStatus = ActivitiesPublishStatusEnum.Unlisted.value;
|
||||||
|
} else {
|
||||||
|
newStatus = ActivitiesPublishStatusEnum.Published.value;
|
||||||
|
}
|
||||||
|
Apis.Activity.Activities.ChangePublishStatus({
|
||||||
|
id: item.id,
|
||||||
|
publish_status: newStatus,
|
||||||
|
}).then(() => action?.reload());
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{item.is_enroll === 1 && (
|
||||||
|
<EnrollsList
|
||||||
|
item={item}
|
||||||
|
title="报名"
|
||||||
|
reload={action?.reload}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
<MyButtons.Delete
|
||||||
|
onConfirm={() =>
|
||||||
|
Apis.Activity.Activities.Delete({
|
||||||
|
id: item.id,
|
||||||
|
}).then(() => action?.reload())
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</Space>
|
||||||
|
),
|
||||||
|
}),
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</MyPageContainer>
|
||||||
|
);
|
||||||
|
}
|
||||||
159
src/pages/asset/activities/modals/ActivityCreate.tsx
Normal file
159
src/pages/asset/activities/modals/ActivityCreate.tsx
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
import {
|
||||||
|
MyBetaModalFormProps,
|
||||||
|
MyButtons,
|
||||||
|
MyFormItems,
|
||||||
|
MyModalFormProps,
|
||||||
|
rulesHelper,
|
||||||
|
} from '@/common';
|
||||||
|
import MyEditor from '@/common/components/Editor';
|
||||||
|
import { Selects } from '@/components/Select';
|
||||||
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import { ActivitiesPublishTypeEnum } from '@/gen/Enums';
|
||||||
|
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||||
|
import { Form, message } from 'antd';
|
||||||
|
|
||||||
|
export default function Create(props: MyBetaModalFormProps) {
|
||||||
|
const [form] = Form.useForm();
|
||||||
|
return (
|
||||||
|
<BetaSchemaForm<ApiTypes.Activity.Activities.Store>
|
||||||
|
{...MyModalFormProps.props}
|
||||||
|
title={`添加活动`}
|
||||||
|
layout="horizontal"
|
||||||
|
labelCol={{ span: 4 }}
|
||||||
|
wrapperCol={{ span: 20 }}
|
||||||
|
labelAlign="left"
|
||||||
|
width="950px"
|
||||||
|
trigger={<MyButtons.Create title={`添加活动`} />}
|
||||||
|
key={new Date().getTime()}
|
||||||
|
form={form}
|
||||||
|
onOpenChange={(open: any) => {
|
||||||
|
if (open) {
|
||||||
|
form.resetFields(); // 清空表单数据
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
onFinish={async (values) =>
|
||||||
|
Apis.Activity.Activities.Store({
|
||||||
|
...values,
|
||||||
|
project_ids: values?.project_ids
|
||||||
|
? [values?.project_ids]
|
||||||
|
: [props.item?.id],
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
props.reload?.();
|
||||||
|
message.success('添加活动成功');
|
||||||
|
return true;
|
||||||
|
})
|
||||||
|
.catch(() => false)
|
||||||
|
}
|
||||||
|
columns={[
|
||||||
|
...(props?.item?.id
|
||||||
|
? []
|
||||||
|
: [
|
||||||
|
Selects?.AssetProjects({
|
||||||
|
key: 'project_ids',
|
||||||
|
title: '关联项目',
|
||||||
|
colProps: { span: 24 },
|
||||||
|
required: true,
|
||||||
|
fieldProps: {
|
||||||
|
showSearch: true,
|
||||||
|
fieldNames: {
|
||||||
|
label: 'label',
|
||||||
|
value: 'value',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
]),
|
||||||
|
{
|
||||||
|
key: 'title',
|
||||||
|
title: '活动标题',
|
||||||
|
colProps: { span: 16 },
|
||||||
|
required: true,
|
||||||
|
formItemProps: {
|
||||||
|
labelCol: { span: 6 },
|
||||||
|
wrapperCol: { span: 16 },
|
||||||
|
...rulesHelper.text,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'is_enroll',
|
||||||
|
title: '活动报名',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
valueType: 'switch',
|
||||||
|
required: true,
|
||||||
|
formItemProps: {
|
||||||
|
labelCol: { span: 8 },
|
||||||
|
wrapperCol: { span: 14 },
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
fieldProps: {
|
||||||
|
checkedChildren: '开启',
|
||||||
|
unCheckedChildren: '关闭',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'activity_time',
|
||||||
|
title: '活动时间',
|
||||||
|
valueType: 'dateTimeRange',
|
||||||
|
colProps: { span: 24 },
|
||||||
|
fieldProps: {
|
||||||
|
style: { width: '50%' },
|
||||||
|
showTime: true,
|
||||||
|
format: 'YYYY-MM-DD HH:mm',
|
||||||
|
},
|
||||||
|
formItemProps: { ...rulesHelper.text },
|
||||||
|
transform: (value: any) => {
|
||||||
|
return {
|
||||||
|
start_time: value?.[0],
|
||||||
|
end_time: value?.[1],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
MyFormItems.EnumRadio({
|
||||||
|
key: 'publish_type',
|
||||||
|
title: '发布方式',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
valueEnum: ActivitiesPublishTypeEnum,
|
||||||
|
formItemProps: {
|
||||||
|
labelCol: { span: 12 },
|
||||||
|
wrapperCol: { span: 12 },
|
||||||
|
...rulesHelper.text,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
{
|
||||||
|
name: ['publish_type'],
|
||||||
|
valueType: 'dependency',
|
||||||
|
columns: ({ publish_type }) => {
|
||||||
|
return publish_type === ActivitiesPublishTypeEnum.Schedule.value
|
||||||
|
? [
|
||||||
|
{
|
||||||
|
key: 'schedule_publish_at',
|
||||||
|
// title: '定时发布时间',
|
||||||
|
valueType: 'dateTime',
|
||||||
|
colProps: { span: 16 },
|
||||||
|
fieldProps: {
|
||||||
|
style: { width: '40%' },
|
||||||
|
format: 'YYYY-MM-DD HH:mm',
|
||||||
|
},
|
||||||
|
formItemProps: {
|
||||||
|
...rulesHelper.text,
|
||||||
|
wrapperCol: { span: 24 },
|
||||||
|
placeholder: '请设置定时发布时间',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
: [];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'content',
|
||||||
|
title: '活动内容',
|
||||||
|
colProps: { span: 24 },
|
||||||
|
fieldProps: {
|
||||||
|
mode: 'simple',
|
||||||
|
},
|
||||||
|
renderFormItem: () => <MyEditor />,
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
112
src/pages/asset/activities/modals/ActivityShow.tsx
Normal file
112
src/pages/asset/activities/modals/ActivityShow.tsx
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
import { MyBetaModalFormProps, renderTextHelper } from '@/common';
|
||||||
|
import { MyModal } from '@/components/MyModal';
|
||||||
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import {
|
||||||
|
ActivitiesPublishStatusEnum,
|
||||||
|
ActivitiesPublishTypeEnum,
|
||||||
|
ActivitiesStatusEnum,
|
||||||
|
} from '@/gen/Enums';
|
||||||
|
import { ProCard, ProDescriptions } from '@ant-design/pro-components';
|
||||||
|
import { Space, Spin } from 'antd';
|
||||||
|
import { useState } from 'react';
|
||||||
|
|
||||||
|
export default function Show(props: MyBetaModalFormProps) {
|
||||||
|
const [show, setShow] = useState<any>({});
|
||||||
|
const [loading, setLoading] = useState(false);
|
||||||
|
const [hasLoaded, setHasLoaded] = useState(false);
|
||||||
|
|
||||||
|
const getShow = () => {
|
||||||
|
if (props?.item?.id && !loading && !hasLoaded) {
|
||||||
|
setLoading(true);
|
||||||
|
setHasLoaded(true);
|
||||||
|
Apis.Activity.Activities.Show({
|
||||||
|
id: props?.item?.id,
|
||||||
|
})
|
||||||
|
.then((res: any) => {
|
||||||
|
setShow(res?.data);
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
setHasLoaded(false); // 如果请求失败,允许重试
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
setLoading(false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<MyModal
|
||||||
|
title={props.title || '查看'}
|
||||||
|
width={800}
|
||||||
|
onOpen={getShow}
|
||||||
|
node={
|
||||||
|
<ProCard>
|
||||||
|
<Spin spinning={loading}>
|
||||||
|
<ProDescriptions
|
||||||
|
// bordered
|
||||||
|
column={1}
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
|
<ProDescriptions.Item label=" 关联项目">
|
||||||
|
{show?.activity_projects
|
||||||
|
?.map((project: any) => project?.asset_project?.name)
|
||||||
|
.join(', ') || '-'}
|
||||||
|
</ProDescriptions.Item>
|
||||||
|
<ProDescriptions.Item label="活动标题">
|
||||||
|
{show?.title || '-'}
|
||||||
|
</ProDescriptions.Item>
|
||||||
|
<ProDescriptions.Item label="活动时间">
|
||||||
|
<Space>
|
||||||
|
<renderTextHelper.Tag
|
||||||
|
Enums={ActivitiesStatusEnum}
|
||||||
|
value={props?.item?.status}
|
||||||
|
key="status"
|
||||||
|
/>
|
||||||
|
{show?.start_time || '-'} 至 {show?.end_time || '-'}
|
||||||
|
</Space>
|
||||||
|
</ProDescriptions.Item>
|
||||||
|
<ProDescriptions.Item label="发布时间">
|
||||||
|
<Space>
|
||||||
|
<renderTextHelper.Tag
|
||||||
|
Enums={ActivitiesPublishStatusEnum}
|
||||||
|
value={props?.item?.publish_status}
|
||||||
|
key="publish_status"
|
||||||
|
/>
|
||||||
|
<renderTextHelper.Tag
|
||||||
|
Enums={ActivitiesPublishTypeEnum}
|
||||||
|
value={props?.item?.publish_type}
|
||||||
|
key="publish_type"
|
||||||
|
/>
|
||||||
|
{show?.publish_time || '-'}
|
||||||
|
</Space>
|
||||||
|
</ProDescriptions.Item>
|
||||||
|
|
||||||
|
<ProDescriptions.Item label="活动内容">
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
border: '1px solid #ccc',
|
||||||
|
borderRadius: '6px',
|
||||||
|
padding: '12px',
|
||||||
|
maxHeight: '300px',
|
||||||
|
width: '100%',
|
||||||
|
overflow: 'auto',
|
||||||
|
backgroundColor: '#fafafa',
|
||||||
|
}}
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: show?.content || '暂无内容',
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</ProDescriptions.Item>
|
||||||
|
<ProDescriptions.Item label="创建时间">
|
||||||
|
{show?.created_at || '-'}
|
||||||
|
</ProDescriptions.Item>
|
||||||
|
<ProDescriptions.Item label="最近修改">
|
||||||
|
{show?.updated_at || '-'}
|
||||||
|
</ProDescriptions.Item>
|
||||||
|
</ProDescriptions>
|
||||||
|
</Spin>
|
||||||
|
</ProCard>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
159
src/pages/asset/activities/modals/ActivityUpdate.tsx
Normal file
159
src/pages/asset/activities/modals/ActivityUpdate.tsx
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
import {
|
||||||
|
MyBetaModalFormProps,
|
||||||
|
MyButtons,
|
||||||
|
MyFormItems,
|
||||||
|
MyModalFormProps,
|
||||||
|
rulesHelper,
|
||||||
|
} from '@/common';
|
||||||
|
import MyEditor from '@/common/components/Editor';
|
||||||
|
import { Selects } from '@/components/Select';
|
||||||
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import { ActivitiesPublishTypeEnum } from '@/gen/Enums';
|
||||||
|
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||||
|
import { Form, message } from 'antd';
|
||||||
|
|
||||||
|
export default function Update(props: MyBetaModalFormProps) {
|
||||||
|
const [form] = Form.useForm();
|
||||||
|
return (
|
||||||
|
<BetaSchemaForm<ApiTypes.Activity.Activities.Update>
|
||||||
|
{...MyModalFormProps.props}
|
||||||
|
title={`编辑活动内容`}
|
||||||
|
trigger={<MyButtons.Edit />}
|
||||||
|
layout="horizontal"
|
||||||
|
labelCol={{ span: 4 }}
|
||||||
|
wrapperCol={{ span: 20 }}
|
||||||
|
labelAlign="left"
|
||||||
|
width="1000px"
|
||||||
|
key={new Date().getTime()}
|
||||||
|
form={form}
|
||||||
|
onOpenChange={(open: any) => {
|
||||||
|
if (open && props.item) {
|
||||||
|
form.setFieldsValue(props.item);
|
||||||
|
form.setFieldValue('project_ids', props.item?.project_ids[0]);
|
||||||
|
form.setFieldValue('activity_time', [
|
||||||
|
props.item?.start_time,
|
||||||
|
props.item?.end_time,
|
||||||
|
]);
|
||||||
|
form.setFieldValue('content', props.item?.content);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
onFinish={async (values) =>
|
||||||
|
Apis.Activity.Activities.Update({
|
||||||
|
...values,
|
||||||
|
id: props.item?.id ?? 0,
|
||||||
|
project_ids: values?.project_ids
|
||||||
|
? [values?.project_ids]
|
||||||
|
: [props.item?.id],
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
props.reload?.();
|
||||||
|
message.success('编辑公告内容成功');
|
||||||
|
return true;
|
||||||
|
})
|
||||||
|
.catch(() => false)
|
||||||
|
}
|
||||||
|
columns={[
|
||||||
|
Selects?.AssetProjects({
|
||||||
|
key: 'project_ids',
|
||||||
|
title: '关联项目',
|
||||||
|
colProps: { span: 24 },
|
||||||
|
required: true,
|
||||||
|
fieldProps: {
|
||||||
|
showSearch: true,
|
||||||
|
fieldNames: {
|
||||||
|
label: 'label',
|
||||||
|
value: 'value',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
{
|
||||||
|
key: 'title',
|
||||||
|
title: '活动标题',
|
||||||
|
colProps: { span: 16 },
|
||||||
|
required: true,
|
||||||
|
formItemProps: {
|
||||||
|
labelCol: { span: 6 },
|
||||||
|
wrapperCol: { span: 16 },
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'is_enroll',
|
||||||
|
title: '活动报名',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
valueType: 'switch',
|
||||||
|
formItemProps: {
|
||||||
|
labelCol: { span: 8 },
|
||||||
|
wrapperCol: { span: 14 },
|
||||||
|
...rulesHelper.number,
|
||||||
|
},
|
||||||
|
fieldProps: {
|
||||||
|
checkedChildren: '开启',
|
||||||
|
unCheckedChildren: '关闭',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'activity_time',
|
||||||
|
title: '活动时间',
|
||||||
|
valueType: 'dateTimeRange',
|
||||||
|
colProps: { span: 24 },
|
||||||
|
fieldProps: {
|
||||||
|
style: { width: '50%' },
|
||||||
|
showTime: true,
|
||||||
|
format: 'YYYY-MM-DD HH:mm',
|
||||||
|
},
|
||||||
|
formItemProps: { ...rulesHelper.text },
|
||||||
|
transform: (value: any) => {
|
||||||
|
return {
|
||||||
|
start_time: value?.[0],
|
||||||
|
end_time: value?.[1],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
MyFormItems.EnumRadio({
|
||||||
|
key: 'publish_type',
|
||||||
|
title: '发布方式',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
valueEnum: ActivitiesPublishTypeEnum,
|
||||||
|
required: true,
|
||||||
|
formItemProps: {
|
||||||
|
labelCol: { span: 12 },
|
||||||
|
wrapperCol: { span: 12 },
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
{
|
||||||
|
name: ['publish_type'],
|
||||||
|
valueType: 'dependency',
|
||||||
|
columns: ({ publish_type }) => {
|
||||||
|
return publish_type === ActivitiesPublishTypeEnum.Schedule.value
|
||||||
|
? [
|
||||||
|
{
|
||||||
|
key: 'schedule_publish_at',
|
||||||
|
// title: '定时发布时间',
|
||||||
|
valueType: 'dateTime',
|
||||||
|
colProps: { span: 16 },
|
||||||
|
fieldProps: {
|
||||||
|
style: { width: '40%' },
|
||||||
|
format: 'YYYY-MM-DD HH:mm',
|
||||||
|
},
|
||||||
|
formItemProps: {
|
||||||
|
...rulesHelper.text,
|
||||||
|
wrapperCol: { span: 24 },
|
||||||
|
placeholder: '请设置定时发布时间',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
: [];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'content',
|
||||||
|
title: '活动内容',
|
||||||
|
colProps: { span: 24 },
|
||||||
|
renderFormItem: () => <MyEditor />,
|
||||||
|
initialValue: props.item?.content,
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
100
src/pages/asset/activities/modals/EnrollsList.tsx
Normal file
100
src/pages/asset/activities/modals/EnrollsList.tsx
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
import {
|
||||||
|
MyBetaModalFormProps,
|
||||||
|
MyButtons,
|
||||||
|
MyColumns,
|
||||||
|
MyProTableProps,
|
||||||
|
} from '@/common';
|
||||||
|
import { MyModal } from '@/components/MyModal';
|
||||||
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import { ActivityEnrollsStatusEnum } from '@/gen/Enums';
|
||||||
|
import { ProTable } from '@ant-design/pro-components';
|
||||||
|
import { Space } from 'antd';
|
||||||
|
|
||||||
|
export default function EnrollsList(props: MyBetaModalFormProps) {
|
||||||
|
return (
|
||||||
|
<MyModal
|
||||||
|
title={props.title || '报名'}
|
||||||
|
type={props.item?.type || 'primary'}
|
||||||
|
width="900px"
|
||||||
|
node={
|
||||||
|
<ProTable
|
||||||
|
{...MyProTableProps.props}
|
||||||
|
request={async (params, sort) =>
|
||||||
|
MyProTableProps.request(
|
||||||
|
{ ...params, activities_id: props?.item?.id },
|
||||||
|
sort,
|
||||||
|
Apis.Activity.ActivityEnrolls.List,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
columns={[
|
||||||
|
MyColumns.ID(),
|
||||||
|
{
|
||||||
|
title: '客户姓名',
|
||||||
|
dataIndex: 'customer_name',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '客户电话',
|
||||||
|
dataIndex: 'customer_phone',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
MyColumns.EnumTag({
|
||||||
|
title: '状态',
|
||||||
|
dataIndex: 'status',
|
||||||
|
valueEnum: ActivityEnrollsStatusEnum,
|
||||||
|
}),
|
||||||
|
MyColumns.Option({
|
||||||
|
render: (_, item: any, index, action) => (
|
||||||
|
<Space key={index}>
|
||||||
|
<MyButtons.Default
|
||||||
|
title={
|
||||||
|
item.status === ActivityEnrollsStatusEnum.Success.value
|
||||||
|
? '取消报名'
|
||||||
|
: item.status ===
|
||||||
|
ActivityEnrollsStatusEnum.Cancelled.value
|
||||||
|
? '重新报名'
|
||||||
|
: '报名'
|
||||||
|
}
|
||||||
|
isConfirm
|
||||||
|
description={
|
||||||
|
item.status === ActivityEnrollsStatusEnum.Success.value
|
||||||
|
? '确认取消报名吗?'
|
||||||
|
: item.status ===
|
||||||
|
ActivityEnrollsStatusEnum.Cancelled.value
|
||||||
|
? '确认重新报名吗?'
|
||||||
|
: '确认报名吗?'
|
||||||
|
}
|
||||||
|
onConfirm={() => {
|
||||||
|
let newStatus;
|
||||||
|
if (
|
||||||
|
item.status === ActivityEnrollsStatusEnum.Success.value
|
||||||
|
) {
|
||||||
|
newStatus = ActivityEnrollsStatusEnum.Cancelled.value;
|
||||||
|
} else if (
|
||||||
|
item.status ===
|
||||||
|
ActivityEnrollsStatusEnum.Cancelled.value
|
||||||
|
) {
|
||||||
|
newStatus = ActivityEnrollsStatusEnum.Success.value;
|
||||||
|
} else {
|
||||||
|
newStatus = ActivityEnrollsStatusEnum.Success.value;
|
||||||
|
}
|
||||||
|
Apis.Activity.ActivityEnrolls.ChangeStatus({
|
||||||
|
id: item.id,
|
||||||
|
status: newStatus,
|
||||||
|
}).then(() => action?.reload());
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<EnrollsList
|
||||||
|
item={item}
|
||||||
|
title="报名信息"
|
||||||
|
reload={action?.reload}
|
||||||
|
/>
|
||||||
|
</Space>
|
||||||
|
),
|
||||||
|
}),
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
@ -6,6 +6,7 @@ import {
|
|||||||
usePageTabs,
|
usePageTabs,
|
||||||
} from '@/common';
|
} from '@/common';
|
||||||
import { Apis } from '@/gen/Apis';
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import { MsgPropertyAnnouncementsPublishTypeEnum } from '@/gen/Enums';
|
||||||
import { ProTable } from '@ant-design/pro-components';
|
import { ProTable } from '@ant-design/pro-components';
|
||||||
import { useNavigate } from '@umijs/max';
|
import { useNavigate } from '@umijs/max';
|
||||||
import { Space } from 'antd';
|
import { Space } from 'antd';
|
||||||
@ -76,52 +77,37 @@ export default function Index({ title = '项目公告' }) {
|
|||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '公告内容',
|
title: '落款日期',
|
||||||
dataIndex: 'content',
|
|
||||||
valueType: 'textarea', // 仅影响表单编辑时的输入类型,不影响表格展示
|
|
||||||
search: false,
|
|
||||||
width: 200, // 关键:固定列宽(若父容器过窄,可设 minWidth: 200 优先保证列宽)
|
|
||||||
render: (text) => (
|
|
||||||
<div
|
|
||||||
style={{
|
|
||||||
width: '100%', // 继承列宽
|
|
||||||
// height: '60px', // 设置固定高度,约显示3行文本
|
|
||||||
overflow: 'hidden', // 超出隐藏
|
|
||||||
textOverflow: 'ellipsis', // 省略号
|
|
||||||
display: '-webkit-box',
|
|
||||||
WebkitBoxOrient: 'vertical',
|
|
||||||
WebkitLineClamp: 2, // 显示3行
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{text}
|
|
||||||
</div>
|
|
||||||
),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '发布日期',
|
|
||||||
dataIndex: 'publish_at',
|
dataIndex: 'publish_at',
|
||||||
valueType: 'date',
|
valueType: 'date',
|
||||||
search: false,
|
search: false,
|
||||||
},
|
},
|
||||||
|
MyColumns.EnumTag({
|
||||||
|
title: '发布方式',
|
||||||
|
dataIndex: 'publish_type',
|
||||||
|
valueEnum: MsgPropertyAnnouncementsPublishTypeEnum,
|
||||||
|
search: false,
|
||||||
|
}),
|
||||||
{
|
{
|
||||||
title: '是否发布小程序',
|
title: '发布时间',
|
||||||
dataIndex: 'is_publish',
|
dataIndex: 'schedule_publish_at',
|
||||||
render: (text) => (text ? '是' : '否'),
|
valueType: 'dateTime',
|
||||||
search: false,
|
search: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '是否发布',
|
||||||
|
dataIndex: 'is_publish',
|
||||||
|
search: false,
|
||||||
|
render: (text) => (text ? '是' : '否'),
|
||||||
|
},
|
||||||
|
|
||||||
MyColumns.SoftDelete({
|
MyColumns.SoftDelete({
|
||||||
title: '启/禁用',
|
title: '启/禁用',
|
||||||
onRestore: Apis.Msg.MsgPropertyAnnouncements.Restore,
|
onRestore: Apis.Msg.MsgPropertyAnnouncements.Restore,
|
||||||
onSoftDelete: Apis.Msg.MsgPropertyAnnouncements.SoftDelete,
|
onSoftDelete: Apis.Msg.MsgPropertyAnnouncements.SoftDelete,
|
||||||
search: false,
|
search: false,
|
||||||
}),
|
}),
|
||||||
{
|
MyColumns.UpdatedAt(),
|
||||||
//创建日期
|
|
||||||
title: '创建日期',
|
|
||||||
dataIndex: 'created_at',
|
|
||||||
valueType: 'date',
|
|
||||||
search: false,
|
|
||||||
},
|
|
||||||
MyColumns.Option({
|
MyColumns.Option({
|
||||||
render: (_, item: any, index, action) => (
|
render: (_, item: any, index, action) => (
|
||||||
<Space key={index}>
|
<Space key={index}>
|
||||||
@ -131,6 +117,30 @@ export default function Index({ title = '项目公告' }) {
|
|||||||
reload={action?.reload}
|
reload={action?.reload}
|
||||||
// title={title}
|
// title={title}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<MyButtons.Default
|
||||||
|
title={item.is_publish === 0 ? '发布' : '下架'}
|
||||||
|
type="primary"
|
||||||
|
isConfirm
|
||||||
|
description={
|
||||||
|
item.is_publish === 0
|
||||||
|
? '确认发布此公告吗?'
|
||||||
|
: '确认下架此公告吗?'
|
||||||
|
}
|
||||||
|
onConfirm={() => {
|
||||||
|
let newStatus: boolean;
|
||||||
|
if (item.is_publish === 0) {
|
||||||
|
newStatus = true;
|
||||||
|
} else {
|
||||||
|
newStatus = false;
|
||||||
|
}
|
||||||
|
Apis.Msg.MsgPropertyAnnouncements.IsPublish({
|
||||||
|
id: item.id,
|
||||||
|
is_publish: Boolean(newStatus),
|
||||||
|
}).then(() => action?.reload());
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
|
||||||
<MyButtons.Delete
|
<MyButtons.Delete
|
||||||
onConfirm={() =>
|
onConfirm={() =>
|
||||||
Apis.Msg.MsgPropertyAnnouncements.Delete({
|
Apis.Msg.MsgPropertyAnnouncements.Delete({
|
||||||
|
|||||||
@ -1,11 +1,14 @@
|
|||||||
import {
|
import {
|
||||||
MyBetaModalFormProps,
|
MyBetaModalFormProps,
|
||||||
MyButtons,
|
MyButtons,
|
||||||
|
MyFormItems,
|
||||||
MyModalFormProps,
|
MyModalFormProps,
|
||||||
rulesHelper,
|
rulesHelper,
|
||||||
} from '@/common';
|
} from '@/common';
|
||||||
|
import MyEditor from '@/common/components/Editor';
|
||||||
import { Selects } from '@/components/Select';
|
import { Selects } from '@/components/Select';
|
||||||
import { Apis } from '@/gen/Apis';
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import { MsgPropertyAnnouncementsPublishTypeEnum } from '@/gen/Enums';
|
||||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||||
import { Form, message } from 'antd';
|
import { Form, message } from 'antd';
|
||||||
|
|
||||||
@ -15,14 +18,18 @@ export default function Create(props: MyBetaModalFormProps) {
|
|||||||
<BetaSchemaForm<ApiTypes.Msg.MsgPropertyAnnouncements.Store>
|
<BetaSchemaForm<ApiTypes.Msg.MsgPropertyAnnouncements.Store>
|
||||||
{...MyModalFormProps.props}
|
{...MyModalFormProps.props}
|
||||||
title={`添加公告`}
|
title={`添加公告`}
|
||||||
wrapperCol={{ span: 24 }}
|
layout="horizontal"
|
||||||
width="600px"
|
labelCol={{ span: 4 }}
|
||||||
|
wrapperCol={{ span: 20 }}
|
||||||
|
labelAlign="left"
|
||||||
|
width="950px"
|
||||||
trigger={<MyButtons.Create title={`添加公告`} />}
|
trigger={<MyButtons.Create title={`添加公告`} />}
|
||||||
key={new Date().getTime()}
|
key={new Date().getTime()}
|
||||||
form={form}
|
form={form}
|
||||||
onOpenChange={(open: any) => {
|
onOpenChange={(open: any) => {
|
||||||
if (open) {
|
if (open) {
|
||||||
form.resetFields(); // 清空表单数据
|
form.resetFields(); // 清空表单数据
|
||||||
|
form.setFieldValue('is_publish', 1);
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
onFinish={async (values) =>
|
onFinish={async (values) =>
|
||||||
@ -48,58 +55,88 @@ export default function Create(props: MyBetaModalFormProps) {
|
|||||||
required: true,
|
required: true,
|
||||||
}),
|
}),
|
||||||
]),
|
]),
|
||||||
|
|
||||||
{
|
{
|
||||||
key: 'title',
|
key: 'title',
|
||||||
title: '公告标题',
|
title: '公告标题',
|
||||||
colProps: { span: 24 },
|
colProps: { span: 24 },
|
||||||
formItemProps: { ...rulesHelper.text },
|
required: true,
|
||||||
|
formItemProps: {
|
||||||
|
labelCol: { span: 4 },
|
||||||
|
wrapperCol: { span: 20 },
|
||||||
|
...rulesHelper.text,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
MyFormItems.EnumRadio({
|
||||||
|
key: 'publish_type',
|
||||||
|
title: '发布方式',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
valueEnum: MsgPropertyAnnouncementsPublishTypeEnum,
|
||||||
|
formItemProps: {
|
||||||
|
labelCol: { span: 12 },
|
||||||
|
wrapperCol: { span: 12 },
|
||||||
|
...rulesHelper.text,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
|
||||||
|
{
|
||||||
|
name: ['publish_type'],
|
||||||
|
valueType: 'dependency',
|
||||||
|
columns: ({ publish_type }) => {
|
||||||
|
return publish_type ===
|
||||||
|
MsgPropertyAnnouncementsPublishTypeEnum.Schedule.value
|
||||||
|
? [
|
||||||
|
{
|
||||||
|
key: 'schedule_publish_at',
|
||||||
|
// title: '定时发布时间',
|
||||||
|
valueType: 'dateTime',
|
||||||
|
colProps: { span: 16 },
|
||||||
|
fieldProps: {
|
||||||
|
style: { width: '40%' },
|
||||||
|
format: 'YYYY-MM-DD HH:mm',
|
||||||
|
},
|
||||||
|
formItemProps: {
|
||||||
|
...rulesHelper.text,
|
||||||
|
wrapperCol: { span: 24 },
|
||||||
|
placeholder: '请设置定时发布时间',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
: [];
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'content',
|
key: 'content',
|
||||||
title: '公告内容',
|
title: '公告内容',
|
||||||
valueType: 'textarea',
|
|
||||||
colProps: { span: 24 },
|
colProps: { span: 24 },
|
||||||
formItemProps: { ...rulesHelper.text },
|
|
||||||
fieldProps: {
|
fieldProps: {
|
||||||
autoSize: { minRows: 4, maxRows: 6 },
|
mode: 'simple',
|
||||||
},
|
},
|
||||||
|
renderFormItem: () => <MyEditor />,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'publish_at',
|
key: 'publish_at',
|
||||||
title: '内容显示的发布日期',
|
title: '落款日期',
|
||||||
valueType: 'date',
|
valueType: 'date',
|
||||||
colProps: { span: 12 },
|
colProps: { span: 24 },
|
||||||
fieldProps: {
|
fieldProps: {
|
||||||
style: { width: '100%' },
|
style: { width: '40%' },
|
||||||
},
|
},
|
||||||
formItemProps: { ...rulesHelper.text },
|
formItemProps: { ...rulesHelper.text },
|
||||||
},
|
},
|
||||||
// Selects?.AssetProjects({
|
// {
|
||||||
// title: '请选择项目',
|
// key: 'sort',
|
||||||
// key: 'asset_projects_id',
|
// title: '排序',
|
||||||
|
// valueType: 'digit',
|
||||||
// colProps: { span: 12 },
|
// colProps: { span: 12 },
|
||||||
// formItemProps: { ...rulesHelper.text },
|
// tooltip: '数值越大越靠前',
|
||||||
// }),
|
// fieldProps: {
|
||||||
{
|
// placeholder: '数值越大越靠前',
|
||||||
key: 'is_publish',
|
// min: 0,
|
||||||
title: '是否立刻发布',
|
// style: { width: '100%' },
|
||||||
tooltip: '如果选择了,那么内容会立刻发布到小程序中',
|
// },
|
||||||
valueType: 'switch',
|
// initialValue: 0,
|
||||||
colProps: { span: 8 },
|
// },
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 'sort',
|
|
||||||
title: '排序',
|
|
||||||
valueType: 'digit',
|
|
||||||
colProps: { span: 12 },
|
|
||||||
tooltip: '数值越大越靠前',
|
|
||||||
fieldProps: {
|
|
||||||
placeholder: '数值越大越靠前',
|
|
||||||
min: 0,
|
|
||||||
style: { width: '100%' },
|
|
||||||
},
|
|
||||||
initialValue: 0,
|
|
||||||
},
|
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,17 +1,39 @@
|
|||||||
import { MyBetaModalFormProps } from '@/common';
|
import { MyBetaModalFormProps, renderTextHelper } from '@/common';
|
||||||
import { MyModal } from '@/components/MyModal';
|
import { MyModal } from '@/components/MyModal';
|
||||||
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import { MsgPropertyAnnouncementsPublishTypeEnum } from '@/gen/Enums';
|
||||||
import { ProCard, ProDescriptions } from '@ant-design/pro-components';
|
import { ProCard, ProDescriptions } from '@ant-design/pro-components';
|
||||||
import { Typography } from 'antd';
|
import { Space } from 'antd';
|
||||||
|
import { useState } from 'react';
|
||||||
|
|
||||||
const { Text } = Typography;
|
export default function Show(props: MyBetaModalFormProps) {
|
||||||
|
const [show, setShow] = useState<any>({});
|
||||||
|
const [loading, setLoading] = useState(false);
|
||||||
|
const [hasLoaded, setHasLoaded] = useState(false);
|
||||||
|
|
||||||
export default function info(props: MyBetaModalFormProps) {
|
const getShow = () => {
|
||||||
|
if (props?.item?.id && !loading && !hasLoaded) {
|
||||||
|
setLoading(true);
|
||||||
|
setHasLoaded(true);
|
||||||
|
Apis.Msg.MsgPropertyAnnouncements.Show({
|
||||||
|
id: props?.item?.id,
|
||||||
|
})
|
||||||
|
.then((res: any) => {
|
||||||
|
setShow(res?.data);
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
setHasLoaded(false); // 如果请求失败,允许重试
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
setLoading(false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
return (
|
return (
|
||||||
<MyModal
|
<MyModal
|
||||||
title={props.title || '查看'}
|
title={props.title || '查看'}
|
||||||
// width="40vw"
|
width={800}
|
||||||
width={600}
|
onOpen={getShow}
|
||||||
// style={{ maxWidth: '650px' }}
|
|
||||||
node={
|
node={
|
||||||
<ProCard>
|
<ProCard>
|
||||||
<ProDescriptions
|
<ProDescriptions
|
||||||
@ -27,25 +49,42 @@ export default function info(props: MyBetaModalFormProps) {
|
|||||||
{props?.item?.title || '-'}
|
{props?.item?.title || '-'}
|
||||||
</ProDescriptions.Item>
|
</ProDescriptions.Item>
|
||||||
|
|
||||||
|
<ProDescriptions.Item label="发布方式">
|
||||||
|
<Space>
|
||||||
|
{props?.item?.is_publish ? '已发布' : '未发布'}
|
||||||
|
<renderTextHelper.Tag
|
||||||
|
Enums={MsgPropertyAnnouncementsPublishTypeEnum}
|
||||||
|
value={props?.item?.publish_type}
|
||||||
|
key="publish_type"
|
||||||
|
/>
|
||||||
|
{show?.schedule_publish_at || '-'}
|
||||||
|
</Space>
|
||||||
|
</ProDescriptions.Item>
|
||||||
<ProDescriptions.Item label="公告内容">
|
<ProDescriptions.Item label="公告内容">
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
whiteSpace: 'pre-wrap',
|
border: '1px solid #ccc',
|
||||||
|
borderRadius: '6px',
|
||||||
|
padding: '12px',
|
||||||
maxHeight: '300px',
|
maxHeight: '300px',
|
||||||
|
width: '100%',
|
||||||
overflow: 'auto',
|
overflow: 'auto',
|
||||||
|
backgroundColor: '#fafafa',
|
||||||
}}
|
}}
|
||||||
>
|
dangerouslySetInnerHTML={{
|
||||||
{props?.item?.content || '-'}
|
__html: props?.item?.content || '暂无内容',
|
||||||
</div>
|
}}
|
||||||
|
/>
|
||||||
</ProDescriptions.Item>
|
</ProDescriptions.Item>
|
||||||
<ProDescriptions.Item label="发布日期">
|
|
||||||
|
<ProDescriptions.Item label="落款日期">
|
||||||
{props?.item?.publish_at || '-'}
|
{props?.item?.publish_at || '-'}
|
||||||
</ProDescriptions.Item>
|
</ProDescriptions.Item>
|
||||||
<ProDescriptions.Item label="创建时间">
|
<ProDescriptions.Item label="创建时间">
|
||||||
{props?.item?.created_at || '-'}
|
{props?.item?.created_at || '-'}
|
||||||
</ProDescriptions.Item>
|
</ProDescriptions.Item>
|
||||||
<ProDescriptions.Item label="是否发布小程序">
|
<ProDescriptions.Item label="最近修改">
|
||||||
{props?.item?.is_publish ? '是' : '否'}
|
{props?.item?.updated_at || '-'}
|
||||||
</ProDescriptions.Item>
|
</ProDescriptions.Item>
|
||||||
</ProDescriptions>
|
</ProDescriptions>
|
||||||
</ProCard>
|
</ProCard>
|
||||||
|
|||||||
@ -1,10 +1,13 @@
|
|||||||
import {
|
import {
|
||||||
MyBetaModalFormProps,
|
MyBetaModalFormProps,
|
||||||
MyButtons,
|
MyButtons,
|
||||||
|
MyFormItems,
|
||||||
MyModalFormProps,
|
MyModalFormProps,
|
||||||
rulesHelper,
|
rulesHelper,
|
||||||
} from '@/common';
|
} from '@/common';
|
||||||
|
import MyEditor from '@/common/components/Editor';
|
||||||
import { Apis } from '@/gen/Apis';
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import { MsgPropertyAnnouncementsPublishTypeEnum } from '@/gen/Enums';
|
||||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
import { BetaSchemaForm } from '@ant-design/pro-components';
|
||||||
import { Form, message } from 'antd';
|
import { Form, message } from 'antd';
|
||||||
|
|
||||||
@ -15,8 +18,11 @@ export default function Update(props: MyBetaModalFormProps) {
|
|||||||
{...MyModalFormProps.props}
|
{...MyModalFormProps.props}
|
||||||
title={`编辑公告内容`}
|
title={`编辑公告内容`}
|
||||||
trigger={<MyButtons.Edit />}
|
trigger={<MyButtons.Edit />}
|
||||||
wrapperCol={{ span: 24 }}
|
layout="horizontal"
|
||||||
width="600px"
|
labelCol={{ span: 4 }}
|
||||||
|
wrapperCol={{ span: 20 }}
|
||||||
|
labelAlign="left"
|
||||||
|
width="950px"
|
||||||
key={new Date().getTime()}
|
key={new Date().getTime()}
|
||||||
form={form}
|
form={form}
|
||||||
onOpenChange={(open: any) => {
|
onOpenChange={(open: any) => {
|
||||||
@ -42,49 +48,68 @@ export default function Update(props: MyBetaModalFormProps) {
|
|||||||
key: 'title',
|
key: 'title',
|
||||||
title: '公告标题',
|
title: '公告标题',
|
||||||
colProps: { span: 24 },
|
colProps: { span: 24 },
|
||||||
formItemProps: { ...rulesHelper.text },
|
required: true,
|
||||||
|
formItemProps: {
|
||||||
|
labelCol: { span: 4 },
|
||||||
|
wrapperCol: { span: 20 },
|
||||||
|
...rulesHelper.text,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
MyFormItems.EnumRadio({
|
||||||
|
key: 'publish_type',
|
||||||
|
title: '发布方式',
|
||||||
|
colProps: { span: 8 },
|
||||||
|
valueEnum: MsgPropertyAnnouncementsPublishTypeEnum,
|
||||||
|
formItemProps: {
|
||||||
|
labelCol: { span: 12 },
|
||||||
|
wrapperCol: { span: 12 },
|
||||||
|
...rulesHelper.text,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
|
||||||
|
{
|
||||||
|
name: ['publish_type'],
|
||||||
|
valueType: 'dependency',
|
||||||
|
columns: ({ publish_type }) => {
|
||||||
|
return publish_type ===
|
||||||
|
MsgPropertyAnnouncementsPublishTypeEnum.Schedule.value
|
||||||
|
? [
|
||||||
|
{
|
||||||
|
key: 'schedule_publish_at',
|
||||||
|
// title: '定时发布时间',
|
||||||
|
valueType: 'dateTime',
|
||||||
|
colProps: { span: 16 },
|
||||||
|
fieldProps: {
|
||||||
|
style: { width: '40%' },
|
||||||
|
format: 'YYYY-MM-DD HH:mm',
|
||||||
|
},
|
||||||
|
formItemProps: {
|
||||||
|
...rulesHelper.text,
|
||||||
|
wrapperCol: { span: 24 },
|
||||||
|
placeholder: '请设置定时发布时间',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
: [];
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'content',
|
key: 'content',
|
||||||
title: '公告内容',
|
title: '公告内容',
|
||||||
valueType: 'textarea',
|
|
||||||
colProps: { span: 24 },
|
colProps: { span: 24 },
|
||||||
formItemProps: { ...rulesHelper.text },
|
renderFormItem: () => <MyEditor />,
|
||||||
fieldProps: {
|
initialValue: props.item?.content,
|
||||||
autoSize: { minRows: 4, maxRows: 6 },
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'publish_at',
|
key: 'publish_at',
|
||||||
title: '内容显示的发布日期',
|
title: '落款日期',
|
||||||
valueType: 'date',
|
valueType: 'date',
|
||||||
colProps: { span: 12 },
|
colProps: { span: 24 },
|
||||||
fieldProps: {
|
fieldProps: {
|
||||||
style: { width: '100%' },
|
style: { width: '40%' },
|
||||||
},
|
},
|
||||||
formItemProps: { ...rulesHelper.text },
|
formItemProps: { ...rulesHelper.text },
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
|
||||||
key: 'is_publish',
|
|
||||||
title: '是否立刻发布',
|
|
||||||
tooltip: '如果选择了,那么内容会立刻发布到小程序中',
|
|
||||||
valueType: 'switch',
|
|
||||||
colProps: { span: 8 },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 'sort',
|
|
||||||
title: '排序',
|
|
||||||
valueType: 'digit',
|
|
||||||
colProps: { span: 12 },
|
|
||||||
tooltip: '数值越大越靠前',
|
|
||||||
fieldProps: {
|
|
||||||
placeholder: '数值越大越靠前',
|
|
||||||
min: 0,
|
|
||||||
style: { width: '100%' },
|
|
||||||
},
|
|
||||||
initialValue: 0,
|
|
||||||
},
|
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import { useEffect, useState } from 'react';
|
|||||||
import AssetInfo from '../modals/AssetInfo';
|
import AssetInfo from '../modals/AssetInfo';
|
||||||
import AssetUpdate from '../modals/AssetUpdate';
|
import AssetUpdate from '../modals/AssetUpdate';
|
||||||
import BindCompany from '../modals/BindCompany';
|
import BindCompany from '../modals/BindCompany';
|
||||||
|
import Activities from '../table/Activities';
|
||||||
import Announcement from '../table/Announcement';
|
import Announcement from '../table/Announcement';
|
||||||
import AssetAccounts from '../table/AssetAccounts';
|
import AssetAccounts from '../table/AssetAccounts';
|
||||||
import MyAssetBuildings from '../table/AssetBuildings';
|
import MyAssetBuildings from '../table/AssetBuildings';
|
||||||
@ -79,6 +80,12 @@ export default function Show({ title }: { title?: string } = {}) {
|
|||||||
closable: false,
|
closable: false,
|
||||||
children: <Announcement item={data} />,
|
children: <Announcement item={data} />,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: '项目活动',
|
||||||
|
key: 'activities',
|
||||||
|
closable: false,
|
||||||
|
children: <Activities item={data} />,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: '便民服务',
|
label: '便民服务',
|
||||||
key: 'convenience_services',
|
key: 'convenience_services',
|
||||||
|
|||||||
156
src/pages/asset/list/table/Activities.tsx
Normal file
156
src/pages/asset/list/table/Activities.tsx
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
import { MyButtons, MyColumns, MyProTableProps } from '@/common';
|
||||||
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import {
|
||||||
|
ActivitiesPublishStatusEnum,
|
||||||
|
ActivitiesPublishTypeEnum,
|
||||||
|
ActivitiesStatusEnum,
|
||||||
|
} from '@/gen/Enums';
|
||||||
|
import { ProTable } from '@ant-design/pro-components';
|
||||||
|
import { Space } from 'antd';
|
||||||
|
import { useEffect, useRef } from 'react';
|
||||||
|
import ActivityCreate from '../../activities/modals/ActivityCreate';
|
||||||
|
import ActivityShow from '../../activities/modals/ActivityShow';
|
||||||
|
import ActivityUpdate from '../../activities/modals/ActivityUpdate';
|
||||||
|
import EnrollsList from '../../activities/modals/EnrollsList';
|
||||||
|
|
||||||
|
export default function Index({ ...rest }) {
|
||||||
|
const actionLooks = useRef<any>();
|
||||||
|
useEffect(() => {
|
||||||
|
actionLooks?.current.reloadAndRest();
|
||||||
|
}, [rest.loadmore]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<ProTable<Record<any, any>>
|
||||||
|
{...MyProTableProps.props}
|
||||||
|
actionRef={actionLooks}
|
||||||
|
request={async (params, sort) =>
|
||||||
|
MyProTableProps.request(
|
||||||
|
{ ...params, asset_projects_id: rest.item?.id },
|
||||||
|
sort,
|
||||||
|
Apis.Activity.Activities.List,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
search={false}
|
||||||
|
toolBarRender={(action) => [
|
||||||
|
<ActivityCreate
|
||||||
|
key="Create"
|
||||||
|
item={rest.item}
|
||||||
|
reload={action?.reload}
|
||||||
|
/>,
|
||||||
|
]}
|
||||||
|
columns={[
|
||||||
|
MyColumns.ID(),
|
||||||
|
{
|
||||||
|
title: '活动标题',
|
||||||
|
dataIndex: 'title',
|
||||||
|
},
|
||||||
|
MyColumns.EnumTag({
|
||||||
|
title: '发布方式',
|
||||||
|
dataIndex: 'publish_type',
|
||||||
|
valueEnum: ActivitiesPublishTypeEnum,
|
||||||
|
search: false,
|
||||||
|
}),
|
||||||
|
MyColumns.EnumTag({
|
||||||
|
title: '发布状态',
|
||||||
|
dataIndex: 'publish_status',
|
||||||
|
valueEnum: ActivitiesPublishStatusEnum,
|
||||||
|
search: false,
|
||||||
|
}),
|
||||||
|
MyColumns.EnumTag({
|
||||||
|
title: '活动状态',
|
||||||
|
dataIndex: 'status',
|
||||||
|
valueEnum: ActivitiesStatusEnum,
|
||||||
|
search: false,
|
||||||
|
}),
|
||||||
|
{
|
||||||
|
title: '开始时间',
|
||||||
|
dataIndex: 'start_time',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '结束时间',
|
||||||
|
dataIndex: 'end_time',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '发布时间',
|
||||||
|
dataIndex: 'publish_time',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
MyColumns.SoftDelete({
|
||||||
|
onRestore: Apis.Activity.Activities.Restore,
|
||||||
|
onSoftDelete: Apis.Activity.Activities.SoftDelete,
|
||||||
|
search: false,
|
||||||
|
}),
|
||||||
|
MyColumns.UpdatedAt(),
|
||||||
|
MyColumns.Option({
|
||||||
|
render: (_, item: any, index, action) => (
|
||||||
|
<Space key={index}>
|
||||||
|
<ActivityShow item={item} />
|
||||||
|
<ActivityUpdate
|
||||||
|
item={item}
|
||||||
|
reload={action?.reload}
|
||||||
|
// title={title}
|
||||||
|
/>
|
||||||
|
<MyButtons.Default
|
||||||
|
title={
|
||||||
|
item.publish_status ===
|
||||||
|
ActivitiesPublishStatusEnum.Unpublished.value
|
||||||
|
? '发布'
|
||||||
|
: item.publish_status ===
|
||||||
|
ActivitiesPublishStatusEnum.Published.value
|
||||||
|
? '下架'
|
||||||
|
: '重新发布'
|
||||||
|
}
|
||||||
|
isConfirm
|
||||||
|
description={
|
||||||
|
item.publish_status ===
|
||||||
|
ActivitiesPublishStatusEnum.Unpublished.value
|
||||||
|
? '确认发布此活动吗?'
|
||||||
|
: item.publish_status ===
|
||||||
|
ActivitiesPublishStatusEnum.Published.value
|
||||||
|
? '确认下架此活动吗?'
|
||||||
|
: '确认重新发布此活动吗?'
|
||||||
|
}
|
||||||
|
onConfirm={() => {
|
||||||
|
let newStatus;
|
||||||
|
if (
|
||||||
|
item.publish_status ===
|
||||||
|
ActivitiesPublishStatusEnum.Unpublished.value
|
||||||
|
) {
|
||||||
|
newStatus = ActivitiesPublishStatusEnum.Published.value;
|
||||||
|
} else if (
|
||||||
|
item.publish_status ===
|
||||||
|
ActivitiesPublishStatusEnum.Published.value
|
||||||
|
) {
|
||||||
|
newStatus = ActivitiesPublishStatusEnum.Unlisted.value;
|
||||||
|
} else {
|
||||||
|
newStatus = ActivitiesPublishStatusEnum.Published.value;
|
||||||
|
}
|
||||||
|
Apis.Activity.Activities.ChangePublishStatus({
|
||||||
|
id: item.id,
|
||||||
|
publish_status: newStatus,
|
||||||
|
}).then(() => action?.reload());
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<EnrollsList
|
||||||
|
item={item}
|
||||||
|
title="报名信息"
|
||||||
|
reload={action?.reload}
|
||||||
|
/>
|
||||||
|
<MyButtons.Delete
|
||||||
|
onConfirm={() =>
|
||||||
|
Apis.Activity.Activities.Delete({
|
||||||
|
id: item.id,
|
||||||
|
}).then(() => action?.reload())
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</Space>
|
||||||
|
),
|
||||||
|
}),
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
import { MyButtons, MyColumns, MyProTableProps } from '@/common';
|
import { MyButtons, MyColumns, MyProTableProps } from '@/common';
|
||||||
import { Apis } from '@/gen/Apis';
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import { MsgPropertyAnnouncementsPublishTypeEnum } from '@/gen/Enums';
|
||||||
import { ProTable } from '@ant-design/pro-components';
|
import { ProTable } from '@ant-design/pro-components';
|
||||||
import { Space } from 'antd';
|
import { Space } from 'antd';
|
||||||
import { useEffect, useRef } from 'react';
|
import { useEffect, useRef } from 'react';
|
||||||
@ -35,6 +36,14 @@ export default function Index({ ...rest }) {
|
|||||||
search={false}
|
search={false}
|
||||||
columns={[
|
columns={[
|
||||||
MyColumns.ID(),
|
MyColumns.ID(),
|
||||||
|
{
|
||||||
|
title: '关联项目',
|
||||||
|
dataIndex: ['asset_project', 'name'],
|
||||||
|
search: false,
|
||||||
|
render: (_, record) => {
|
||||||
|
return record?.asset_project?.name;
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '公告标题',
|
title: '公告标题',
|
||||||
dataIndex: 'title',
|
dataIndex: 'title',
|
||||||
@ -56,38 +65,28 @@ export default function Index({ ...rest }) {
|
|||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '公告内容',
|
title: '落款日期',
|
||||||
dataIndex: 'content',
|
|
||||||
valueType: 'textarea', // 仅影响表单编辑时的输入类型,不影响表格展示
|
|
||||||
search: false,
|
|
||||||
width: 200, // 关键:固定列宽(若父容器过窄,可设 minWidth: 200 优先保证列宽)
|
|
||||||
render: (text) => (
|
|
||||||
<div
|
|
||||||
style={{
|
|
||||||
width: '100%', // 继承列宽
|
|
||||||
// height: '60px', // 设置固定高度,约显示3行文本
|
|
||||||
overflow: 'hidden', // 超出隐藏
|
|
||||||
textOverflow: 'ellipsis', // 省略号
|
|
||||||
display: '-webkit-box',
|
|
||||||
WebkitBoxOrient: 'vertical',
|
|
||||||
WebkitLineClamp: 2, // 显示3行
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{text}
|
|
||||||
</div>
|
|
||||||
),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '发布日期',
|
|
||||||
dataIndex: 'publish_at',
|
dataIndex: 'publish_at',
|
||||||
valueType: 'date',
|
valueType: 'date',
|
||||||
search: false,
|
search: false,
|
||||||
},
|
},
|
||||||
{
|
MyColumns.EnumTag({
|
||||||
title: '是否发布小程序',
|
title: '发布方式',
|
||||||
dataIndex: 'is_publish',
|
dataIndex: 'publish_type',
|
||||||
render: (text) => (text ? '是' : '否'),
|
valueEnum: MsgPropertyAnnouncementsPublishTypeEnum,
|
||||||
search: false,
|
search: false,
|
||||||
|
}),
|
||||||
|
{
|
||||||
|
title: '发布时间',
|
||||||
|
dataIndex: 'schedule_publish_at',
|
||||||
|
valueType: 'dateTime',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '是否发布',
|
||||||
|
dataIndex: 'is_publish',
|
||||||
|
search: false,
|
||||||
|
render: (text) => (text ? '是' : '否'),
|
||||||
},
|
},
|
||||||
MyColumns.SoftDelete({
|
MyColumns.SoftDelete({
|
||||||
title: '启/禁用',
|
title: '启/禁用',
|
||||||
@ -95,13 +94,7 @@ export default function Index({ ...rest }) {
|
|||||||
onSoftDelete: Apis.Msg.MsgPropertyAnnouncements.SoftDelete,
|
onSoftDelete: Apis.Msg.MsgPropertyAnnouncements.SoftDelete,
|
||||||
search: false,
|
search: false,
|
||||||
}),
|
}),
|
||||||
{
|
MyColumns.UpdatedAt(),
|
||||||
//创建日期
|
|
||||||
title: '创建日期',
|
|
||||||
dataIndex: 'created_at',
|
|
||||||
valueType: 'date',
|
|
||||||
search: false,
|
|
||||||
},
|
|
||||||
MyColumns.Option({
|
MyColumns.Option({
|
||||||
render: (_, item: any, index, action) => (
|
render: (_, item: any, index, action) => (
|
||||||
<Space key={index}>
|
<Space key={index}>
|
||||||
@ -111,6 +104,30 @@ export default function Index({ ...rest }) {
|
|||||||
reload={action?.reload}
|
reload={action?.reload}
|
||||||
// title={title}
|
// title={title}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<MyButtons.Default
|
||||||
|
title={item.is_publish === 0 ? '发布' : '下架'}
|
||||||
|
type="primary"
|
||||||
|
isConfirm
|
||||||
|
description={
|
||||||
|
item.is_publish === 0
|
||||||
|
? '确认发布此公告吗?'
|
||||||
|
: '确认下架此公告吗?'
|
||||||
|
}
|
||||||
|
onConfirm={() => {
|
||||||
|
let newStatus: boolean;
|
||||||
|
if (item.is_publish === 0) {
|
||||||
|
newStatus = true;
|
||||||
|
} else {
|
||||||
|
newStatus = false;
|
||||||
|
}
|
||||||
|
Apis.Msg.MsgPropertyAnnouncements.IsPublish({
|
||||||
|
id: item.id,
|
||||||
|
is_publish: Boolean(newStatus),
|
||||||
|
}).then(() => action?.reload());
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
|
||||||
<MyButtons.Delete
|
<MyButtons.Delete
|
||||||
onConfirm={() =>
|
onConfirm={() =>
|
||||||
Apis.Msg.MsgPropertyAnnouncements.Delete({
|
Apis.Msg.MsgPropertyAnnouncements.Delete({
|
||||||
|
|||||||
@ -12,9 +12,9 @@ import {
|
|||||||
HouseChargeStandardsCalculationPeriodEnum,
|
HouseChargeStandardsCalculationPeriodEnum,
|
||||||
HouseChargeStandardsPriceAlgorithmEnum,
|
HouseChargeStandardsPriceAlgorithmEnum,
|
||||||
} from '@/gen/Enums';
|
} from '@/gen/Enums';
|
||||||
import ChargeStandardCreate from '@/pages/house_charge_standard/modals/ChargeStandardCreate';
|
import ChargeStandardCreate from '@/pages/charge/standard/modals/ChargeStandardCreate';
|
||||||
import ChargeStandardHasHouse from '@/pages/house_charge_standard/modals/ChargeStandardHasHouse';
|
import ChargeStandardHasHouse from '@/pages/charge/standard/modals/ChargeStandardHasHouse';
|
||||||
import ChargeStandardUpdate from '@/pages/house_charge_standard/modals/ChargeStandardUpdate';
|
import ChargeStandardUpdate from '@/pages/charge/standard/modals/ChargeStandardUpdate';
|
||||||
import { ProTable } from '@ant-design/pro-components';
|
import { ProTable } from '@ant-design/pro-components';
|
||||||
import { useNavigate } from '@umijs/max';
|
import { useNavigate } from '@umijs/max';
|
||||||
import { Space } from 'antd';
|
import { Space } from 'antd';
|
||||||
|
|||||||
@ -12,12 +12,13 @@ import {
|
|||||||
} from '@/gen/Enums';
|
} from '@/gen/Enums';
|
||||||
import { ProTable } from '@ant-design/pro-components';
|
import { ProTable } from '@ant-design/pro-components';
|
||||||
import { Space } from 'antd';
|
import { Space } from 'antd';
|
||||||
import ChargeTasksCreate from './modals/ChargeTasksCreate';
|
import TaskCreate from './modals/TaskCreate';
|
||||||
|
import TaskShow from './modals/TaskShow';
|
||||||
|
|
||||||
export default function Index({ title = '账单任务' }) {
|
export default function Index({ title = '账单任务' }) {
|
||||||
// 注册当前页面为标签页
|
// 注册当前页面为标签页
|
||||||
usePageTabs({
|
usePageTabs({
|
||||||
tabKey: 'charge_tasks',
|
tabKey: 'house_charge_tasks',
|
||||||
tabLabel: title,
|
tabLabel: title,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -25,7 +26,7 @@ export default function Index({ title = '账单任务' }) {
|
|||||||
<MyPageContainer
|
<MyPageContainer
|
||||||
title={title}
|
title={title}
|
||||||
enableTabs={true}
|
enableTabs={true}
|
||||||
tabKey="bills"
|
tabKey="house_charge_tasks"
|
||||||
tabLabel={title}
|
tabLabel={title}
|
||||||
>
|
>
|
||||||
<ProTable
|
<ProTable
|
||||||
@ -38,66 +39,65 @@ export default function Index({ title = '账单任务' }) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
toolBarRender={(action) => [
|
toolBarRender={(action) => [
|
||||||
<ChargeTasksCreate
|
<TaskCreate key="Create" reload={action?.reload} title="账单任务" />,
|
||||||
key="Create"
|
|
||||||
reload={action?.reload}
|
|
||||||
title={title}
|
|
||||||
/>,
|
|
||||||
]}
|
]}
|
||||||
columns={[
|
columns={[
|
||||||
MyColumns.ID(),
|
{
|
||||||
MyColumns.EnumTag({
|
title: '机构',
|
||||||
title: '任务状态',
|
dataIndex: ['company', 'name'],
|
||||||
dataIndex: 'status',
|
search: false,
|
||||||
valueEnum: HouseChargeTasksStatusEnum,
|
},
|
||||||
}),
|
{
|
||||||
|
title: '任务ID',
|
||||||
|
dataIndex: 'id',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
MyColumns.EnumTag({
|
MyColumns.EnumTag({
|
||||||
title: '创建类型',
|
title: '创建类型',
|
||||||
dataIndex: 'type',
|
dataIndex: 'type',
|
||||||
valueEnum: HouseChargeTasksTypeEnum,
|
valueEnum: HouseChargeTasksTypeEnum,
|
||||||
}),
|
}),
|
||||||
|
MyColumns.EnumTag({
|
||||||
|
title: '任务状态',
|
||||||
|
dataIndex: 'status',
|
||||||
|
valueEnum: HouseChargeTasksStatusEnum,
|
||||||
|
}),
|
||||||
{
|
{
|
||||||
title: '收费标准名称',
|
title: '收费标准',
|
||||||
dataIndex: 'charge_standard_name',
|
dataIndex: ['house_charge_standard', 'name'],
|
||||||
search: false,
|
search: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '账单月份',
|
title: '账单月份',
|
||||||
render: (_, record) => {
|
render: (_, record) => {
|
||||||
return `${record.year}-${String(record.month).padStart(2, '0')}`;
|
return `${record.bill_year}-${String(record.bill_month).padStart(
|
||||||
|
2,
|
||||||
|
'0',
|
||||||
|
)}`;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '计费开始日期',
|
title: '计费周期',
|
||||||
dataIndex: 'start_date',
|
|
||||||
|
render: (_, record) => {
|
||||||
|
return `${record.start_date}-${String(record.end_date).padStart(
|
||||||
|
2,
|
||||||
|
'0',
|
||||||
|
)}`;
|
||||||
|
},
|
||||||
search: false,
|
search: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '计费结束日期',
|
title: '账单数',
|
||||||
dataIndex: 'end_date',
|
dataIndex: 'task_count',
|
||||||
search: false,
|
search: false,
|
||||||
},
|
},
|
||||||
{
|
// MyColumns.UpdatedAt(),
|
||||||
title: '项目名称',
|
|
||||||
dataIndex: 'project_name',
|
|
||||||
search: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '机构名称',
|
|
||||||
dataIndex: 'company_name',
|
|
||||||
search: false,
|
|
||||||
},
|
|
||||||
MyColumns.SoftDelete({
|
|
||||||
title: '启/禁用',
|
|
||||||
onRestore: Apis.HouseCharage.HouseChargeTasks.Restore,
|
|
||||||
onSoftDelete: Apis.HouseCharage.HouseChargeTasks.SoftDelete,
|
|
||||||
search: false,
|
|
||||||
}),
|
|
||||||
MyColumns.UpdatedAt(),
|
|
||||||
MyColumns.CreatedAt(),
|
MyColumns.CreatedAt(),
|
||||||
MyColumns.Option({
|
MyColumns.Option({
|
||||||
render: (_, item: any, index, action) => (
|
render: (_, item: any, index, action) => (
|
||||||
<Space key={index}>
|
<Space key={index}>
|
||||||
|
<TaskShow item={item} title="查看" reload={action?.reload} />
|
||||||
<MyButtons.Delete
|
<MyButtons.Delete
|
||||||
onConfirm={() =>
|
onConfirm={() =>
|
||||||
Apis.HouseCharage.HouseChargeTasks.Delete({
|
Apis.HouseCharage.HouseChargeTasks.Delete({
|
||||||
69
src/pages/charge/tasks/modals/TaskShow.tsx
Normal file
69
src/pages/charge/tasks/modals/TaskShow.tsx
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
import { MyBetaModalFormProps, MyColumns, MyProTableProps } from '@/common';
|
||||||
|
import { MyModal } from '@/components/MyModal';
|
||||||
|
import { Apis } from '@/gen/Apis';
|
||||||
|
import { HouseChargeTaskDetailsStatusEnum } from '@/gen/Enums';
|
||||||
|
import { ProTable } from '@ant-design/pro-components';
|
||||||
|
|
||||||
|
export default function AssetInfo(props: MyBetaModalFormProps) {
|
||||||
|
return (
|
||||||
|
<MyModal
|
||||||
|
title={props.title || '查看'}
|
||||||
|
type={props.item?.type || 'primary'}
|
||||||
|
width="1000px"
|
||||||
|
node={
|
||||||
|
<ProTable
|
||||||
|
{...MyProTableProps.props}
|
||||||
|
request={async (params, sort) =>
|
||||||
|
MyProTableProps.request(
|
||||||
|
{ ...params, house_charge_tasks_id: props?.item?.id },
|
||||||
|
sort,
|
||||||
|
Apis.HouseCharage.HouseChargeTaskDetails.List,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
columns={[
|
||||||
|
MyColumns.ID(),
|
||||||
|
{
|
||||||
|
title: '对象',
|
||||||
|
dataIndex: 'full_name',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
MyColumns.EnumTag({
|
||||||
|
title: '状态',
|
||||||
|
dataIndex: 'status',
|
||||||
|
valueEnum: HouseChargeTaskDetailsStatusEnum,
|
||||||
|
}),
|
||||||
|
|
||||||
|
{
|
||||||
|
title: '收费标准',
|
||||||
|
dataIndex: ['house_charge_task', 'house_charge_standard', 'name'],
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '账单月份',
|
||||||
|
render: (_, record) => {
|
||||||
|
return `${record.year}-${String(record.month).padStart(
|
||||||
|
2,
|
||||||
|
'0',
|
||||||
|
)}`;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '计费周期',
|
||||||
|
render: (_, record) => {
|
||||||
|
return `${record.house_charge_task.start_date} 至 ${String(
|
||||||
|
record.house_charge_task.end_date,
|
||||||
|
).padStart(2, '0')}`;
|
||||||
|
},
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '完成时间',
|
||||||
|
dataIndex: 'processed_time',
|
||||||
|
search: false,
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
@ -1,109 +0,0 @@
|
|||||||
import {
|
|
||||||
MyBetaModalFormProps,
|
|
||||||
MyButtons,
|
|
||||||
MyModalFormProps,
|
|
||||||
rulesHelper,
|
|
||||||
} from '@/common';
|
|
||||||
import { Selects } from '@/components/Select';
|
|
||||||
import { Apis } from '@/gen/Apis';
|
|
||||||
import { BetaSchemaForm } from '@ant-design/pro-components';
|
|
||||||
import { Form, message } from 'antd';
|
|
||||||
|
|
||||||
export default function Create(props: MyBetaModalFormProps) {
|
|
||||||
const [form] = Form.useForm();
|
|
||||||
return (
|
|
||||||
<BetaSchemaForm<ApiTypes.HouseCharage.HouseChargeTasks.Store>
|
|
||||||
{...MyModalFormProps.props}
|
|
||||||
title={`创建${props.title}`}
|
|
||||||
width="480px"
|
|
||||||
layout="horizontal"
|
|
||||||
labelCol={{ span: 8 }}
|
|
||||||
wrapperCol={{ span: 16 }}
|
|
||||||
labelAlign="left"
|
|
||||||
trigger={<MyButtons.Create title={`创建${props.title}`} />}
|
|
||||||
key={new Date().getTime()}
|
|
||||||
form={form}
|
|
||||||
onOpenChange={(open: any) => {
|
|
||||||
if (open) {
|
|
||||||
form.resetFields(); // 清空表单数据
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
onFinish={async (values) =>
|
|
||||||
Apis.HouseCharage.HouseChargeTasks.Store(values)
|
|
||||||
.then(() => {
|
|
||||||
props.reload?.();
|
|
||||||
message.success(props.title + '账单任务创建成功');
|
|
||||||
return true;
|
|
||||||
})
|
|
||||||
.catch(() => false)
|
|
||||||
}
|
|
||||||
columns={[
|
|
||||||
Selects?.AssetProjects({
|
|
||||||
title: '选择项目',
|
|
||||||
key: 'asset_projects_id',
|
|
||||||
colProps: { span: 24 },
|
|
||||||
formItemProps: { ...rulesHelper.text },
|
|
||||||
}),
|
|
||||||
{
|
|
||||||
valueType: 'dependency',
|
|
||||||
name: ['asset_projects_id'],
|
|
||||||
columns: ({ asset_projects_id }) => {
|
|
||||||
return [
|
|
||||||
Selects?.ChargeStandard({
|
|
||||||
title: '选择收费标准',
|
|
||||||
key: 'house_charge_standards_id',
|
|
||||||
params: {
|
|
||||||
asset_projects_id: asset_projects_id,
|
|
||||||
},
|
|
||||||
colProps: { span: 24 },
|
|
||||||
formItemProps: { ...rulesHelper.text },
|
|
||||||
fieldProps: {
|
|
||||||
showSearch: true,
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
];
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 'month',
|
|
||||||
title: '选择生成月份',
|
|
||||||
valueType: 'date',
|
|
||||||
colProps: { span: 24 },
|
|
||||||
fieldProps: {
|
|
||||||
picker: 'month',
|
|
||||||
format: 'YYYY-MM',
|
|
||||||
valueFormat: 'YYYY-MM',
|
|
||||||
style: {
|
|
||||||
width: '100%',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
formItemProps: { ...rulesHelper.text },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 'start_date',
|
|
||||||
title: '计费开始日期',
|
|
||||||
valueType: 'date',
|
|
||||||
colProps: { span: 24 },
|
|
||||||
fieldProps: {
|
|
||||||
style: {
|
|
||||||
width: '100%',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
formItemProps: { ...rulesHelper.text },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 'end_date',
|
|
||||||
title: '计费结束日期',
|
|
||||||
valueType: 'date',
|
|
||||||
colProps: { span: 24 },
|
|
||||||
fieldProps: {
|
|
||||||
style: {
|
|
||||||
width: '100%',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
formItemProps: { ...rulesHelper.text },
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@ -1,100 +0,0 @@
|
|||||||
import {
|
|
||||||
MyButtons,
|
|
||||||
MyColumns,
|
|
||||||
MyPageContainer,
|
|
||||||
MyProTableProps,
|
|
||||||
usePageTabs,
|
|
||||||
} from '@/common';
|
|
||||||
import { Apis } from '@/gen/Apis';
|
|
||||||
import { HouseChargeTaskDetailsStatusEnum } from '@/gen/Enums';
|
|
||||||
import { ProTable } from '@ant-design/pro-components';
|
|
||||||
import { Space } from 'antd';
|
|
||||||
import ChargeTasksCreate from './modals/ChargeTasksCreate';
|
|
||||||
|
|
||||||
export default function Index({ title = '账单任务' }) {
|
|
||||||
// 注册当前页面为标签页
|
|
||||||
usePageTabs({
|
|
||||||
tabKey: 'house_charge_tasks',
|
|
||||||
tabLabel: title,
|
|
||||||
});
|
|
||||||
|
|
||||||
return (
|
|
||||||
<MyPageContainer
|
|
||||||
title={title}
|
|
||||||
enableTabs={true}
|
|
||||||
tabKey="house_charge_tasks"
|
|
||||||
tabLabel={title}
|
|
||||||
>
|
|
||||||
<ProTable
|
|
||||||
{...MyProTableProps.props}
|
|
||||||
request={async (params, sort) =>
|
|
||||||
MyProTableProps.request(
|
|
||||||
params,
|
|
||||||
sort,
|
|
||||||
Apis.HouseCharage.HouseChargeTasks.List,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
toolBarRender={(action) => [
|
|
||||||
<ChargeTasksCreate
|
|
||||||
key="Create"
|
|
||||||
reload={action?.reload}
|
|
||||||
title="账单任务"
|
|
||||||
/>,
|
|
||||||
]}
|
|
||||||
columns={[
|
|
||||||
{
|
|
||||||
title: '任务ID',
|
|
||||||
dataIndex: 'house_charge_tasks_id',
|
|
||||||
search: false,
|
|
||||||
},
|
|
||||||
MyColumns.EnumTag({
|
|
||||||
title: '任务状态',
|
|
||||||
dataIndex: 'status',
|
|
||||||
valueEnum: HouseChargeTaskDetailsStatusEnum,
|
|
||||||
}),
|
|
||||||
{
|
|
||||||
title: '账单ID',
|
|
||||||
dataIndex: 'id',
|
|
||||||
search: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '关联对象',
|
|
||||||
dataIndex: 'full_name',
|
|
||||||
search: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '账单月份',
|
|
||||||
render: (_, record) => {
|
|
||||||
return `${record.year}-${String(record.month).padStart(2, '0')}`;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '计费开始日期',
|
|
||||||
dataIndex: ['house_charge_task', 'start_date'],
|
|
||||||
search: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '计费结束日期',
|
|
||||||
dataIndex: ['house_charge_task', 'end_date'],
|
|
||||||
search: false,
|
|
||||||
},
|
|
||||||
// MyColumns.UpdatedAt(),
|
|
||||||
MyColumns.CreatedAt(),
|
|
||||||
MyColumns.Option({
|
|
||||||
render: (_, item: any, index, action) => (
|
|
||||||
<Space key={index}>
|
|
||||||
<MyButtons.Delete
|
|
||||||
onConfirm={() =>
|
|
||||||
Apis.HouseCharage.HouseChargeTaskDetails.Delete({
|
|
||||||
id: item.id,
|
|
||||||
}).then(() => action?.reload())
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</Space>
|
|
||||||
),
|
|
||||||
}),
|
|
||||||
]}
|
|
||||||
/>
|
|
||||||
</MyPageContainer>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
257
yarn.lock
257
yarn.lock
@ -629,6 +629,11 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.6.tgz#ec4070a04d76bae8ddbb10770ba55714a417b7c6"
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.6.tgz#ec4070a04d76bae8ddbb10770ba55714a417b7c6"
|
||||||
integrity sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==
|
integrity sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==
|
||||||
|
|
||||||
|
"@babel/runtime@^7.12.0":
|
||||||
|
version "7.28.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326"
|
||||||
|
integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==
|
||||||
|
|
||||||
"@babel/template@^7.22.15", "@babel/template@^7.27.2", "@babel/template@^7.3.3":
|
"@babel/template@^7.22.15", "@babel/template@^7.27.2", "@babel/template@^7.3.3":
|
||||||
version "7.27.2"
|
version "7.27.2"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d"
|
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d"
|
||||||
@ -1772,6 +1777,11 @@
|
|||||||
"@tanstack/query-core" "4.40.0"
|
"@tanstack/query-core" "4.40.0"
|
||||||
use-sync-external-store "^1.2.0"
|
use-sync-external-store "^1.2.0"
|
||||||
|
|
||||||
|
"@transloadit/prettier-bytes@0.0.7":
|
||||||
|
version "0.0.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz#cdb5399f445fdd606ed833872fa0cabdbc51686b"
|
||||||
|
integrity sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==
|
||||||
|
|
||||||
"@trysound/sax@0.2.0":
|
"@trysound/sax@0.2.0":
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
|
resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
|
||||||
@ -1810,6 +1820,11 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.20.7"
|
"@babel/types" "^7.20.7"
|
||||||
|
|
||||||
|
"@types/event-emitter@^0.3.3":
|
||||||
|
version "0.3.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/event-emitter/-/event-emitter-0.3.5.tgz#ce9b513f72c50dcf0443a12165a93a79ba7a7092"
|
||||||
|
integrity sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==
|
||||||
|
|
||||||
"@types/graceful-fs@^4.1.3":
|
"@types/graceful-fs@^4.1.3":
|
||||||
version "4.1.9"
|
version "4.1.9"
|
||||||
resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4"
|
resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4"
|
||||||
@ -2521,6 +2536,49 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@umijs/zod2ts/-/zod2ts-4.4.11.tgz#f41d646739d06fd08ae8bcdc8c748c40f3c7daf3"
|
resolved "https://registry.yarnpkg.com/@umijs/zod2ts/-/zod2ts-4.4.11.tgz#f41d646739d06fd08ae8bcdc8c748c40f3c7daf3"
|
||||||
integrity sha512-B4CGKU6N9Qws5zNEu8TJjQgp61xAEdrBEmXGStXLl32f3zz0oUcIq/N4vBYciCDbwjHQKviqGcl3iSy2pbn7BA==
|
integrity sha512-B4CGKU6N9Qws5zNEu8TJjQgp61xAEdrBEmXGStXLl32f3zz0oUcIq/N4vBYciCDbwjHQKviqGcl3iSy2pbn7BA==
|
||||||
|
|
||||||
|
"@uppy/companion-client@^2.2.2":
|
||||||
|
version "2.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@uppy/companion-client/-/companion-client-2.2.2.tgz#c70b42fdcca728ef88b3eebf7ee3e2fa04b4923b"
|
||||||
|
integrity sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==
|
||||||
|
dependencies:
|
||||||
|
"@uppy/utils" "^4.1.2"
|
||||||
|
namespace-emitter "^2.0.1"
|
||||||
|
|
||||||
|
"@uppy/core@^2.1.1":
|
||||||
|
version "2.3.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@uppy/core/-/core-2.3.4.tgz#260b85b6bf3aa03cdc67da231f8c69cfbfdcc84a"
|
||||||
|
integrity sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==
|
||||||
|
dependencies:
|
||||||
|
"@transloadit/prettier-bytes" "0.0.7"
|
||||||
|
"@uppy/store-default" "^2.1.1"
|
||||||
|
"@uppy/utils" "^4.1.3"
|
||||||
|
lodash.throttle "^4.1.1"
|
||||||
|
mime-match "^1.0.2"
|
||||||
|
namespace-emitter "^2.0.1"
|
||||||
|
nanoid "^3.1.25"
|
||||||
|
preact "^10.5.13"
|
||||||
|
|
||||||
|
"@uppy/store-default@^2.1.1":
|
||||||
|
version "2.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@uppy/store-default/-/store-default-2.1.1.tgz#62a656a099bdaa012306e054d093754cb2d36e3e"
|
||||||
|
integrity sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==
|
||||||
|
|
||||||
|
"@uppy/utils@^4.1.2", "@uppy/utils@^4.1.3":
|
||||||
|
version "4.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/@uppy/utils/-/utils-4.1.3.tgz#9d0be6ece4df25f228d30ef40be0f14208258ce3"
|
||||||
|
integrity sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==
|
||||||
|
dependencies:
|
||||||
|
lodash.throttle "^4.1.1"
|
||||||
|
|
||||||
|
"@uppy/xhr-upload@^2.0.3":
|
||||||
|
version "2.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz#0d4e355332fe0c6eb372d7731315e04d02aeeb18"
|
||||||
|
integrity sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==
|
||||||
|
dependencies:
|
||||||
|
"@uppy/companion-client" "^2.2.2"
|
||||||
|
"@uppy/utils" "^4.1.2"
|
||||||
|
nanoid "^3.1.25"
|
||||||
|
|
||||||
"@vitejs/plugin-react@4.0.0":
|
"@vitejs/plugin-react@4.0.0":
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.0.0.tgz#46d1c37c507447d10467be1c111595174555ef28"
|
resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.0.0.tgz#46d1c37c507447d10467be1c111595174555ef28"
|
||||||
@ -2531,6 +2589,84 @@
|
|||||||
"@babel/plugin-transform-react-jsx-source" "^7.19.6"
|
"@babel/plugin-transform-react-jsx-source" "^7.19.6"
|
||||||
react-refresh "^0.14.0"
|
react-refresh "^0.14.0"
|
||||||
|
|
||||||
|
"@wangeditor/basic-modules@^1.1.7":
|
||||||
|
version "1.1.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz#a9c3ccf4ef53332f29550d59d3676e15f395946f"
|
||||||
|
integrity sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==
|
||||||
|
dependencies:
|
||||||
|
is-url "^1.2.4"
|
||||||
|
|
||||||
|
"@wangeditor/code-highlight@^1.0.3":
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz#90256857714d5c0cf83ac475aea64db7bf29a7cd"
|
||||||
|
integrity sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==
|
||||||
|
dependencies:
|
||||||
|
prismjs "^1.23.0"
|
||||||
|
|
||||||
|
"@wangeditor/core@^1.1.19":
|
||||||
|
version "1.1.19"
|
||||||
|
resolved "https://registry.yarnpkg.com/@wangeditor/core/-/core-1.1.19.tgz#f9155f7fd92d03cb1982405b3b82e54c31f1c2b0"
|
||||||
|
integrity sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==
|
||||||
|
dependencies:
|
||||||
|
"@types/event-emitter" "^0.3.3"
|
||||||
|
event-emitter "^0.3.5"
|
||||||
|
html-void-elements "^2.0.0"
|
||||||
|
i18next "^20.4.0"
|
||||||
|
scroll-into-view-if-needed "^2.2.28"
|
||||||
|
slate-history "^0.66.0"
|
||||||
|
|
||||||
|
"@wangeditor/editor-for-react@^1.0.6":
|
||||||
|
version "1.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/@wangeditor/editor-for-react/-/editor-for-react-1.0.6.tgz#c77fa5651e196bb7e5a63e4abf0e32d54d4f38af"
|
||||||
|
integrity sha512-KJNSfgMr5Blzae3oyaiz20flMKHZHnvsz4bCYQKDCUs/qkvC+xNTnwedlCmhGP187oPWPEypCIYI8Zg6sz0psQ==
|
||||||
|
|
||||||
|
"@wangeditor/editor@^5.1.23":
|
||||||
|
version "5.1.23"
|
||||||
|
resolved "https://registry.yarnpkg.com/@wangeditor/editor/-/editor-5.1.23.tgz#c9d2007b7cb0ceef6b72692b4ee87b01ee2367b3"
|
||||||
|
integrity sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==
|
||||||
|
dependencies:
|
||||||
|
"@uppy/core" "^2.1.1"
|
||||||
|
"@uppy/xhr-upload" "^2.0.3"
|
||||||
|
"@wangeditor/basic-modules" "^1.1.7"
|
||||||
|
"@wangeditor/code-highlight" "^1.0.3"
|
||||||
|
"@wangeditor/core" "^1.1.19"
|
||||||
|
"@wangeditor/list-module" "^1.0.5"
|
||||||
|
"@wangeditor/table-module" "^1.1.4"
|
||||||
|
"@wangeditor/upload-image-module" "^1.0.2"
|
||||||
|
"@wangeditor/video-module" "^1.1.4"
|
||||||
|
dom7 "^3.0.0"
|
||||||
|
is-hotkey "^0.2.0"
|
||||||
|
lodash.camelcase "^4.3.0"
|
||||||
|
lodash.clonedeep "^4.5.0"
|
||||||
|
lodash.debounce "^4.0.8"
|
||||||
|
lodash.foreach "^4.5.0"
|
||||||
|
lodash.isequal "^4.5.0"
|
||||||
|
lodash.throttle "^4.1.1"
|
||||||
|
lodash.toarray "^4.4.0"
|
||||||
|
nanoid "^3.2.0"
|
||||||
|
slate "^0.72.0"
|
||||||
|
snabbdom "^3.1.0"
|
||||||
|
|
||||||
|
"@wangeditor/list-module@^1.0.5":
|
||||||
|
version "1.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@wangeditor/list-module/-/list-module-1.0.5.tgz#3fc0b167acddf885536b45fa0c127f9c6adaea33"
|
||||||
|
integrity sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==
|
||||||
|
|
||||||
|
"@wangeditor/table-module@^1.1.4":
|
||||||
|
version "1.1.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@wangeditor/table-module/-/table-module-1.1.4.tgz#757d4a5868b2b658041cd323854a4d707c8347e9"
|
||||||
|
integrity sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==
|
||||||
|
|
||||||
|
"@wangeditor/upload-image-module@^1.0.2":
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz#89e9b9467e10cbc6b11dc5748e08dd23aaebee30"
|
||||||
|
integrity sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==
|
||||||
|
|
||||||
|
"@wangeditor/video-module@^1.1.4":
|
||||||
|
version "1.1.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@wangeditor/video-module/-/video-module-1.1.4.tgz#b9df1b3ab2cd53f678b19b4d927e200774a6f532"
|
||||||
|
integrity sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==
|
||||||
|
|
||||||
"@xobotyi/scrollbar-width@^1.9.5":
|
"@xobotyi/scrollbar-width@^1.9.5":
|
||||||
version "1.9.5"
|
version "1.9.5"
|
||||||
resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d"
|
resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d"
|
||||||
@ -4113,6 +4249,13 @@ dom-walk@^0.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
|
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
|
||||||
integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
|
integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
|
||||||
|
|
||||||
|
dom7@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/dom7/-/dom7-3.0.0.tgz#b861ce5d67a6becd7aaa3ad02942ff14b1240331"
|
||||||
|
integrity sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==
|
||||||
|
dependencies:
|
||||||
|
ssr-window "^3.0.0-alpha.1"
|
||||||
|
|
||||||
domain-browser@^1.1.1:
|
domain-browser@^1.1.1:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
|
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
|
||||||
@ -5504,6 +5647,11 @@ html-tags@^3.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce"
|
resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce"
|
||||||
integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==
|
integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==
|
||||||
|
|
||||||
|
html-void-elements@^2.0.0:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-2.0.1.tgz#29459b8b05c200b6c5ee98743c41b979d577549f"
|
||||||
|
integrity sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==
|
||||||
|
|
||||||
html-webpack-plugin@5.5.0:
|
html-webpack-plugin@5.5.0:
|
||||||
version "5.5.0"
|
version "5.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50"
|
resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50"
|
||||||
@ -5569,6 +5717,13 @@ hyphenate-style-name@^1.0.3:
|
|||||||
resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz#1797bf50369588b47b72ca6d5e65374607cf4436"
|
resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz#1797bf50369588b47b72ca6d5e65374607cf4436"
|
||||||
integrity sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==
|
integrity sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==
|
||||||
|
|
||||||
|
i18next@^20.4.0:
|
||||||
|
version "20.6.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/i18next/-/i18next-20.6.1.tgz#535e5f6e5baeb685c7d25df70db63bf3cc0aa345"
|
||||||
|
integrity sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==
|
||||||
|
dependencies:
|
||||||
|
"@babel/runtime" "^7.12.0"
|
||||||
|
|
||||||
iconv-lite@0.4.24:
|
iconv-lite@0.4.24:
|
||||||
version "0.4.24"
|
version "0.4.24"
|
||||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
||||||
@ -5615,6 +5770,11 @@ immer@^8.0.4:
|
|||||||
resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.4.tgz#3a21605a4e2dded852fb2afd208ad50969737b7a"
|
resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.4.tgz#3a21605a4e2dded852fb2afd208ad50969737b7a"
|
||||||
integrity sha512-jMfL18P+/6P6epANRvRk6q8t+3gGhqsJ9EuJ25AXE+9bNTYtssvzeYbEd0mXRYWCmmXSIbnlpz6vd6iJlmGGGQ==
|
integrity sha512-jMfL18P+/6P6epANRvRk6q8t+3gGhqsJ9EuJ25AXE+9bNTYtssvzeYbEd0mXRYWCmmXSIbnlpz6vd6iJlmGGGQ==
|
||||||
|
|
||||||
|
immer@^9.0.6:
|
||||||
|
version "9.0.21"
|
||||||
|
resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176"
|
||||||
|
integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==
|
||||||
|
|
||||||
import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0:
|
import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0:
|
||||||
version "3.3.1"
|
version "3.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf"
|
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf"
|
||||||
@ -5899,6 +6059,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-extglob "^2.1.1"
|
is-extglob "^2.1.1"
|
||||||
|
|
||||||
|
is-hotkey@^0.2.0:
|
||||||
|
version "0.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-hotkey/-/is-hotkey-0.2.0.tgz#1835a68171a91e5c9460869d96336947c8340cef"
|
||||||
|
integrity sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==
|
||||||
|
|
||||||
is-inside-container@^1.0.0:
|
is-inside-container@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4"
|
resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4"
|
||||||
@ -6017,6 +6182,11 @@ is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15:
|
|||||||
dependencies:
|
dependencies:
|
||||||
which-typed-array "^1.1.16"
|
which-typed-array "^1.1.16"
|
||||||
|
|
||||||
|
is-url@^1.2.4:
|
||||||
|
version "1.2.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52"
|
||||||
|
integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
|
||||||
|
|
||||||
is-weakmap@^2.0.2:
|
is-weakmap@^2.0.2:
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd"
|
resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd"
|
||||||
@ -6515,11 +6685,31 @@ lodash-es@^4.17.21:
|
|||||||
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
|
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
|
||||||
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
|
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
|
||||||
|
|
||||||
|
lodash.camelcase@^4.3.0:
|
||||||
|
version "4.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
|
||||||
|
integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
|
||||||
|
|
||||||
|
lodash.clonedeep@^4.5.0:
|
||||||
|
version "4.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
|
||||||
|
integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==
|
||||||
|
|
||||||
lodash.debounce@^4.0.8:
|
lodash.debounce@^4.0.8:
|
||||||
version "4.0.8"
|
version "4.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
|
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
|
||||||
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
|
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
|
||||||
|
|
||||||
|
lodash.foreach@^4.5.0:
|
||||||
|
version "4.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
|
||||||
|
integrity sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==
|
||||||
|
|
||||||
|
lodash.isequal@^4.5.0:
|
||||||
|
version "4.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
|
||||||
|
integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==
|
||||||
|
|
||||||
lodash.merge@^4.6.2:
|
lodash.merge@^4.6.2:
|
||||||
version "4.6.2"
|
version "4.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
|
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
|
||||||
@ -6530,6 +6720,11 @@ lodash.throttle@^4.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
|
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
|
||||||
integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
|
integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
|
||||||
|
|
||||||
|
lodash.toarray@^4.4.0:
|
||||||
|
version "4.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
|
||||||
|
integrity sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==
|
||||||
|
|
||||||
lodash.truncate@^4.4.2:
|
lodash.truncate@^4.4.2:
|
||||||
version "4.4.2"
|
version "4.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
|
resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
|
||||||
@ -6717,6 +6912,13 @@ mime-db@1.52.0:
|
|||||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5"
|
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5"
|
||||||
integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
|
integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
|
||||||
|
|
||||||
|
mime-match@^1.0.2:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/mime-match/-/mime-match-1.0.2.tgz#3f87c31e9af1a5fd485fb9db134428b23bbb7ba8"
|
||||||
|
integrity sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==
|
||||||
|
dependencies:
|
||||||
|
wildcard "^1.1.0"
|
||||||
|
|
||||||
mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34:
|
mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34:
|
||||||
version "2.1.35"
|
version "2.1.35"
|
||||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
|
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
|
||||||
@ -6816,6 +7018,11 @@ ms@2.1.3, ms@^2.1.1, ms@^2.1.3:
|
|||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
||||||
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
||||||
|
|
||||||
|
namespace-emitter@^2.0.1:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz#978d51361c61313b4e6b8cf6f3853d08dfa2b17c"
|
||||||
|
integrity sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==
|
||||||
|
|
||||||
nano-css@^5.6.2:
|
nano-css@^5.6.2:
|
||||||
version "5.6.2"
|
version "5.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/nano-css/-/nano-css-5.6.2.tgz#584884ddd7547278f6d6915b6805069742679a32"
|
resolved "https://registry.yarnpkg.com/nano-css/-/nano-css-5.6.2.tgz#584884ddd7547278f6d6915b6805069742679a32"
|
||||||
@ -6830,7 +7037,7 @@ nano-css@^5.6.2:
|
|||||||
stacktrace-js "^2.0.2"
|
stacktrace-js "^2.0.2"
|
||||||
stylis "^4.3.0"
|
stylis "^4.3.0"
|
||||||
|
|
||||||
nanoid@^3.3.11:
|
nanoid@^3.1.25, nanoid@^3.2.0, nanoid@^3.3.11:
|
||||||
version "3.3.11"
|
version "3.3.11"
|
||||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b"
|
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b"
|
||||||
integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==
|
integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==
|
||||||
@ -7793,6 +8000,11 @@ postcss@^8.4.13, postcss@^8.4.21, postcss@^8.4.27, postcss@^8.4.31, postcss@^8.4
|
|||||||
picocolors "^1.1.1"
|
picocolors "^1.1.1"
|
||||||
source-map-js "^1.2.1"
|
source-map-js "^1.2.1"
|
||||||
|
|
||||||
|
preact@^10.5.13:
|
||||||
|
version "10.27.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/preact/-/preact-10.27.2.tgz#19b9009c1be801a76a0aaf0fe5ba665985a09312"
|
||||||
|
integrity sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==
|
||||||
|
|
||||||
prelude-ls@^1.2.1:
|
prelude-ls@^1.2.1:
|
||||||
version "1.2.1"
|
version "1.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
||||||
@ -7842,6 +8054,11 @@ pretty-format@^24:
|
|||||||
ansi-styles "^3.2.0"
|
ansi-styles "^3.2.0"
|
||||||
react-is "^16.8.4"
|
react-is "^16.8.4"
|
||||||
|
|
||||||
|
prismjs@^1.23.0:
|
||||||
|
version "1.30.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.30.0.tgz#d9709969d9d4e16403f6f348c63553b19f0975a9"
|
||||||
|
integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==
|
||||||
|
|
||||||
process-nextick-args@~2.0.0:
|
process-nextick-args@~2.0.0:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
||||||
@ -9217,7 +9434,7 @@ screenfull@^5.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.2.0.tgz#6533d524d30621fc1283b9692146f3f13a93d1ba"
|
resolved "https://registry.yarnpkg.com/screenfull/-/screenfull-5.2.0.tgz#6533d524d30621fc1283b9692146f3f13a93d1ba"
|
||||||
integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==
|
integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==
|
||||||
|
|
||||||
scroll-into-view-if-needed@^2.2.25:
|
scroll-into-view-if-needed@^2.2.25, scroll-into-view-if-needed@^2.2.28:
|
||||||
version "2.2.31"
|
version "2.2.31"
|
||||||
resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587"
|
resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587"
|
||||||
integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==
|
integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==
|
||||||
@ -9422,6 +9639,22 @@ slash@^4.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
|
resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
|
||||||
integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
|
integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
|
||||||
|
|
||||||
|
slate-history@^0.66.0:
|
||||||
|
version "0.66.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/slate-history/-/slate-history-0.66.0.tgz#ac63fddb903098ceb4c944433e3f75fe63acf940"
|
||||||
|
integrity sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==
|
||||||
|
dependencies:
|
||||||
|
is-plain-object "^5.0.0"
|
||||||
|
|
||||||
|
slate@^0.72.0:
|
||||||
|
version "0.72.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/slate/-/slate-0.72.8.tgz#5a018edf24e45448655293a68bfbcf563aa5ba81"
|
||||||
|
integrity sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==
|
||||||
|
dependencies:
|
||||||
|
immer "^9.0.6"
|
||||||
|
is-plain-object "^5.0.0"
|
||||||
|
tiny-warning "^1.0.3"
|
||||||
|
|
||||||
slice-ansi@^4.0.0:
|
slice-ansi@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
|
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
|
||||||
@ -9439,6 +9672,11 @@ slice-ansi@^5.0.0:
|
|||||||
ansi-styles "^6.0.0"
|
ansi-styles "^6.0.0"
|
||||||
is-fullwidth-code-point "^4.0.0"
|
is-fullwidth-code-point "^4.0.0"
|
||||||
|
|
||||||
|
snabbdom@^3.1.0:
|
||||||
|
version "3.6.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/snabbdom/-/snabbdom-3.6.2.tgz#57dd66878f6320497fa7f67941df356a045c75a1"
|
||||||
|
integrity sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==
|
||||||
|
|
||||||
sonic-boom@^2.2.1:
|
sonic-boom@^2.2.1:
|
||||||
version "2.8.0"
|
version "2.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611"
|
resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611"
|
||||||
@ -9578,6 +9816,11 @@ sprintf-js@~1.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
||||||
integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
|
integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
|
||||||
|
|
||||||
|
ssr-window@^3.0.0-alpha.1:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/ssr-window/-/ssr-window-3.0.0.tgz#fd5b82801638943e0cc704c4691801435af7ac37"
|
||||||
|
integrity sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==
|
||||||
|
|
||||||
stable@^0.1.8:
|
stable@^0.1.8:
|
||||||
version "0.1.8"
|
version "0.1.8"
|
||||||
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
|
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
|
||||||
@ -10044,6 +10287,11 @@ timers-browserify@^2.0.4:
|
|||||||
dependencies:
|
dependencies:
|
||||||
setimmediate "^1.0.4"
|
setimmediate "^1.0.4"
|
||||||
|
|
||||||
|
tiny-warning@^1.0.3:
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
|
||||||
|
integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
|
||||||
|
|
||||||
tinycolor2@^1.4.2:
|
tinycolor2@^1.4.2:
|
||||||
version "1.6.0"
|
version "1.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e"
|
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e"
|
||||||
@ -10552,6 +10800,11 @@ which@^2.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
isexe "^2.0.0"
|
isexe "^2.0.0"
|
||||||
|
|
||||||
|
wildcard@^1.1.0:
|
||||||
|
version "1.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-1.1.2.tgz#a7020453084d8cd2efe70ba9d3696263de1710a5"
|
||||||
|
integrity sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==
|
||||||
|
|
||||||
word-wrap@^1.2.5:
|
word-wrap@^1.2.5:
|
||||||
version "1.2.5"
|
version "1.2.5"
|
||||||
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
|
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user