fix 短信模板配置

This commit is contained in:
wkj 2024-09-29 18:10:08 +08:00
parent 0bd528c6f4
commit 3de8a4a0a5
7 changed files with 61 additions and 110 deletions

View File

@ -31,10 +31,9 @@ export default OakComponent({
const selectedTypes = data
? data
.filter((ele) => !ele.$$deleteAt$$)
.map((ele) => {
ele.type;
})
.map((ele) => ele.type)
: [];
return {
mtt: data,
dirtyIds,
@ -54,39 +53,32 @@ export default OakComponent({
},
},
],
listeners: {
async selectedTypes(prev, next) {
if (next.selectedTypes?.length) {
await this.updateMessageTypes(next.selectedTypes);
}
},
},
listeners: {},
lifetimes: {
async ready() {
const { systemId, origin } = this.props;
const { data: smsTemplates } = await this.features.cache.refresh('smsTemplate', {
data: {
id: 1,
origin: 1,
systemId: 1,
templateName: 1,
templateCode: 1,
templateContent: 1,
},
filter: {
origin,
systemId,
},
});
this.setState({
smsTemplates,
});
async ready() {
await this.getSmsTemplate();
await this.getMessageTypes();
},
},
methods: {
async syncTemplate() {
const { systemId, origin } = this.props;
await this.features.template.syncSmsTemplate(systemId, origin);
await this.getSmsTemplate();
this.setMessage({
content: '同步成功',
type: 'success',
});
},
async getMessageTypes(selectedTypes) {
const { result: MessageTypes } = await this.features.template.getMessageType();
this.setState({
messageTypes: MessageTypes,
});
},
async getSmsTemplate() {
const { systemId, origin } = this.props;
const { data: smsTemplates } = await this.features.cache.refresh('smsTemplate', {
data: {
id: 1,
@ -104,17 +96,6 @@ export default OakComponent({
this.setState({
smsTemplates,
});
this.setMessage({
content: '操作成功',
type: 'success',
});
},
async updateMessageTypes(selectedTypes) {
const { result: MessageTypes } = await this.features.template.getMessageType();
const messageTypes = MessageTypes.filter((ele) => !selectedTypes.includes(ele));
this.setState({
messageTypes,
});
},
}
},
});

View File

@ -1,8 +1,8 @@
import React from 'react';
import { WebComponentProps } from 'oak-frontend-base';
import { EntityDict } from '../../../oak-app-domain';
export default function Render(props: WebComponentProps<EntityDict, 'messageTypeTemplate', true, {
mtt: EntityDict['messageTypeTemplate']['Schema'][];
export default function Render(props: WebComponentProps<EntityDict, 'messageTypeSmsTemplate', true, {
mtt: EntityDict['messageTypeSmsTemplate']['Schema'][];
smsTemplates: EntityDict['smsTemplate']['Schema'][];
dirtyIds: string[];
messageTypes: string[];

View File

@ -1,7 +1,7 @@
import React, { useState } from 'react';
import { Table, Button, Space, Typography, Select, Modal } from 'antd';
export default function Render(props) {
const { oakPagination, mtt = [], dirtyIds = [], oakLoading, messageTypes = [], systemId, smsTemplates = [], } = props.data;
const { oakPagination, mtt = [], dirtyIds = [], oakLoading, messageTypes = [], systemId, smsTemplates = [], selectedTypes = [] } = props.data;
const { setCurrentPage, setPageSize, t, addItem, syncTemplate, removeItem, updateItem, recoverItem, resetItem, execute, } = props.methods;
const [syncDisable, setSyncDisable] = useState(false);
const [open, setOpen] = useState(false);
@ -9,8 +9,11 @@ export default function Render(props) {
return (<>
<Space style={{ marginBottom: 16 }}>
<Button type="default" disabled={!(messageTypes.length > 0 && smsTemplates.length > 0)} onClick={() => {
const messageTypes2 = messageTypes.filter(ele => !selectedTypes.includes(ele))
addItem({
type: messageTypes[0],
type: messageTypes2[0],
templateId: smsTemplates[0].id,
});
}}>
@ -49,6 +52,7 @@ export default function Render(props) {
}, record.id)} options={messageTypes.map((ele) => ({
value: ele,
label: ele,
disabled: selectedTypes.includes(ele)
}))}/>);
}
return (<Typography.Text type={!!record.$$deleteAt$$
@ -77,7 +81,7 @@ export default function Render(props) {
return (<Typography.Text type={!!record.$$deleteAt$$
? 'danger'
: undefined} delete={!!record.$$deleteAt$$}>
{record?.template?.title}
{record?.template?.templateName}
</Typography.Text>);
},
},

View File

@ -12,7 +12,7 @@ export default function Render(props) {
children: (<MessageTypeSmsTemplateList oakAutoUnmount={true} systemId={systemId} origin={ele} oakPath={`$system-smsTemplate-${systemId}-${ele}`}/>),
};
});
return (<Tabs items={items} onChange={(key) => {
return (<Tabs activeKey={tabKey} items={items} onChange={(key) => {
setTabKey(key);
}}/>);
}

View File

@ -27,20 +27,14 @@ export default OakComponent({
const dirtyIds = operations
? operations
.map(
(ele) =>
(
ele.operation
.data as EntityDict['messageTypeSmsTemplate']['CreateSingle']['data']
)?.id || ele.operation.filter?.id
(ele) => (ele.operation.data as EntityDict['messageTypeSmsTemplate']['CreateSingle']['data'])?.id || ele.operation.filter?.id
)
.filter((ele) => !!ele)
: ([] as string[]);
const selectedTypes = data
? data
.filter((ele) => !ele.$$deleteAt$$)
.map((ele) => {
ele.type;
})
.map((ele) => ele.type)
: [];
return {
mtt: data,
@ -62,41 +56,31 @@ export default OakComponent({
},
],
listeners: {
async selectedTypes(prev, next) {
if (next.selectedTypes?.length) {
await this.updateMessageTypes(next.selectedTypes);
}
},
},
lifetimes: {
async ready() {
const { systemId, origin } = this.props;
const { data: smsTemplates } = await this.features.cache.refresh(
'smsTemplate',
{
data: {
id: 1,
origin: 1,
systemId: 1,
templateName: 1,
templateCode: 1,
templateContent: 1,
},
filter: {
origin,
systemId,
},
}
);
this.setState({
smsTemplates,
});
await this.getSmsTemplate();
await this.getMessageTypes();
},
},
methods: {
async syncTemplate() {
const { systemId, origin } = this.props;
await this.features.template.syncSmsTemplate(systemId!, origin!);
await this.getSmsTemplate();
this.setMessage({
content: '同步成功',
type: 'success',
});
},
async getMessageTypes() {
const { result: MessageTypes } = await this.features.template.getMessageType();
this.setState({
messageTypes: MessageTypes,
});
},
async getSmsTemplate() {
const { systemId, origin } = this.props;
const { data: smsTemplates } = await this.features.cache.refresh(
'smsTemplate',
{
@ -117,20 +101,6 @@ export default OakComponent({
this.setState({
smsTemplates,
});
this.setMessage({
content: '操作成功',
type: 'success',
});
},
async updateMessageTypes(selectedTypes: string[]) {
const { result: MessageTypes } =
await this.features.template.getMessageType();
const messageTypes = MessageTypes.filter(
(ele: string) => !selectedTypes.includes(ele)
);
this.setState({
messageTypes,
});
},
}
},
});

View File

@ -6,15 +6,16 @@ import { EntityDict } from '../../../oak-app-domain';
export default function Render(
props: WebComponentProps<
EntityDict,
'messageTypeTemplate',
'messageTypeSmsTemplate',
true,
{
mtt: EntityDict['messageTypeTemplate']['Schema'][];
mtt: EntityDict['messageTypeSmsTemplate']['Schema'][];
smsTemplates: EntityDict['smsTemplate']['Schema'][];
dirtyIds: string[];
messageTypes: string[];
systemId: string;
origin: EntityDict['smsTemplate']['Schema']['origin'];
selectedTypes: string[]
},
{
syncTemplate: () => Promise<void>;
@ -29,6 +30,7 @@ export default function Render(
messageTypes = [],
systemId,
smsTemplates = [],
selectedTypes = [],
} = props.data;
const {
setCurrentPage,
@ -124,17 +126,14 @@ export default function Render(
options={messageTypes.map((ele) => ({
value: ele,
label: ele,
disabled: selectedTypes.includes(ele)
}))}
/>
);
}
return (
<Typography.Text
type={
!!record.$$deleteAt$$
? 'danger'
: undefined
}
type={!!record.$$deleteAt$$ ? 'danger' : undefined}
delete={!!record.$$deleteAt$$}
>
{value}
@ -174,14 +173,10 @@ export default function Render(
}
return (
<Typography.Text
type={
!!record.$$deleteAt$$
? 'danger'
: undefined
}
type={!!record.$$deleteAt$$ ? 'danger' : undefined}
delete={!!record.$$deleteAt$$}
>
{record?.template?.title}
{record?.template?.templateName}
</Typography.Text>
);
},

View File

@ -1,9 +1,9 @@
import React, { useState } from 'react';
import { WebComponentProps } from 'oak-frontend-base';
import { Tabs } from 'antd';
import MessageTypeSmsTemplateList from '../list';
import { EntityDict } from '../../../oak-app-domain';
import { Origin } from '../../../oak-app-domain/SmsTemplate/Schema';
import MessageTypeSmsTemplateList from '../list';
export default function Render(
props: WebComponentProps<
@ -37,6 +37,7 @@ export default function Render(
return (
<Tabs
items={items}
activeKey={tabKey}
onChange={(key) => {
setTabKey(key as Origin);
}}