This commit is contained in:
lxy 2024-06-07 22:01:16 +08:00
parent aed3686d16
commit b40c4d8316
12 changed files with 40 additions and 37 deletions

View File

@ -9,7 +9,7 @@
>
</l-status-show>
</view>
<view wx:elif="{{activePay}}" class="error-container">
<view wx:elif="{{activePay}}" class="error-container">
<l-status-show
show="{{true}}"
type="order"
@ -52,18 +52,16 @@
</view>
</view>
<view wx:if="{{rest}}" class="ctrl">
<view class="pc1">
<view class="pc1">
<view class="text">
请选择支付方式({{restYuan}}元):
</view>
</view>
<view class="pc2">
<channel-picker
payConfig="{{payConfig}}"
channel="{{channel}}"
meta="{{meta}}"
payChannels="{{payChannels}}"
payChannel="{{channel}}"
onPick="{{onPickMp}}"
onSetMeta="{{onSetMetaMp}}"
/>
</view>
</view>

View File

@ -9,7 +9,7 @@
<view class="list">
<l-list title="{{t('type.label')}}" icon="warning" right-desc="{{t('type.' + type)}}" is-link="{{false}}" />
<l-list title="{{t('pay:attr.price')}}" icon="cart" right-desc="{{priceStr}}" is-link="{{false}}" />
<l-list title="{{t('pay:attr.channel')}}" icon="research" right-desc="{{t('payChannel::' + pay.entity)}}" is-link="{{false}}" />
<l-list title="{{t('pay:attr.entity')}}" icon="research" right-desc="{{t('payChannel::' + pay.entity)}}" is-link="{{false}}" />
</view>
</view>
<view class="meta">

View File

@ -1,11 +1,12 @@
import React, { useState } from 'react';
import { Tag, Modal, Alert, Divider, Button } from 'antd';
import { Input, DatePicker, Form, Tag, Modal, Alert, Divider, Button } from 'antd';
import Styles from './web.pc.module.less';
import ListPro from 'oak-frontend-base/es/components/listPro';
import { RenderOffline } from '../detail/web.pc';
import { generateNewId, generateNewIdAsync } from 'oak-domain/lib/utils/uuid';
import { generateNewId } from 'oak-domain/lib/utils/uuid';
import { ToYuan } from 'oak-domain/lib/utils/money';
export default function Render(props) {
const { pays, offlines } = props.data;
const { pays, offlines, oakExecutable } = props.data;
const { t, execute, updateItem, setMessage, clean } = props.methods;
const [spId, setSpId] = useState('');
if (pays) {
@ -108,6 +109,9 @@ export default function Render(props) {
});
}
else {
updateItem({
paid: row.price,
}, row.id, 'succeedPaying');
setSpId(row.id);
}
}
@ -123,24 +127,23 @@ export default function Render(props) {
entity: 'offlineAccount',
entityId
}, spId)}/>
<Divider style={{ width: '80%', alignSelf: 'flex-end' }}/>
<Form labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} layout="horizontal" style={{ width: '100%', marginTop: 12 }}>
<Form.Item label={t('pay:attr.price')}>
<Input value={ToYuan(spRow.price)} addonBefore={t('common::pay.symbol')} disabled={true}/>
</Form.Item>
<Form.Item label={t('pay:attr.successAt')}>
<DatePicker showTime onChange={(value, dateString) => {
updateItem({
successAt: value?.valueOf(),
}, spId);
}}/>
</Form.Item>
</Form>
<div className={Styles.btn}>
<Button type="primary" onClick={async () => {
<Button disabled={oakExecutable !== true} type="primary" onClick={async () => {
const spRow = pays.find(ele => ele.id === spId);
await execute(undefined, undefined, undefined, [
{
entity: 'pay',
operation: {
id: await generateNewIdAsync(),
action: 'succeedPaying',
data: {
paid: spRow.price,
},
filter: {
id: spId,
},
},
}
]);
await execute();
setSpId('');
}}>
{t('common::confirm')}

View File

@ -17,4 +17,8 @@
height: 10px;
font-size: small;
}
.help {
color: blue;
}
}

View File

@ -8,7 +8,7 @@ import { OakAttrNotNullException, OakException } from 'oak-domain/lib/types';
import { generateNewIdAsync } from 'oak-domain/lib/utils/uuid';
function WpAccount(props) {
const { account, t, onUpdate, onRemove, oakFullpath, systemId } = props;
const { refundGapDays, mchId, enabled, price, refundLossFloor, refundLossRatio, taxlossRatio } = account;
const { refundGapDays, mchId, enabled, price, taxLossRatio } = account;
const legalActions = account['#oakLegalActions'];
const [activeKey, setActiveKey] = useState("1");
return (<Tabs activeKey={activeKey} onTabClick={(activeKey) => {
@ -28,9 +28,7 @@ function WpAccount(props) {
<Descriptions.Item label={t('wpAccount:attr.mchId')}>{mchId}</Descriptions.Item>
<Descriptions.Item label={t('wpAccount:attr.price')}>{price}</Descriptions.Item>
<Descriptions.Item label={t('wpAccount:attr.refundGapDays')}>{refundGapDays}</Descriptions.Item>
<Descriptions.Item label={t('wpAccount:attr.taxlossRatio')}>{taxlossRatio}%</Descriptions.Item>
<Descriptions.Item label={t('wpAccount:attr.refundLossRatio')}>{refundLossRatio}%</Descriptions.Item>
<Descriptions.Item label={t('wpAccount:attr.refundLossFloor')}>{t(`wpAccount:v.refundLossFloor.${refundLossFloor}`)}</Descriptions.Item>
<Descriptions.Item label={t('wpAccount:attr.taxLossRatio')}>{taxLossRatio}%</Descriptions.Item>
<Descriptions.Item label={t('wpAccount:attr.enabled')}>{t(`common::${enabled}`)}</Descriptions.Item>
</Descriptions>)
},

View File

@ -1,4 +1,4 @@
import { EntityDict } from '@oak-app-domain';
import { EntityDict } from '../oak-app-domain/index';
import { Checker } from 'oak-domain/lib/types';
import { RuntimeCxt } from '../types/RuntimeCxt';
declare const checkers: Checker<EntityDict, keyof EntityDict, RuntimeCxt>[];

View File

@ -1,5 +1,5 @@
import { Importation, Exportation } from "oak-domain/lib/types/Port";
import { EntityDict } from "@oak-app-domain";
import { EntityDict } from "../oak-app-domain/index";
import { BRC } from '../types/RuntimeCxt';
export declare const importations: Importation<EntityDict, keyof EntityDict, any, BRC>[];
export declare const exportations: Exportation<EntityDict, keyof EntityDict, any, BRC>[];

View File

@ -1,5 +1,5 @@
import { Routine } from 'oak-domain/lib/types/Timer';
import { EntityDict } from '@oak-app-domain';
import { EntityDict } from '../oak-app-domain/index';
import { BRC } from '../types/RuntimeCxt';
declare const startRoutines: Array<Routine<EntityDict, keyof EntityDict, BRC>>;
export default startRoutines;

View File

@ -1,5 +1,5 @@
import { Timer } from 'oak-domain/lib/types/Timer';
import { EntityDict } from '@oak-app-domain';
import { EntityDict } from '../oak-app-domain/index';
import { BRC } from '../types/RuntimeCxt';
declare const timers: Array<Timer<EntityDict, keyof EntityDict, BRC>>;
export default timers;

View File

@ -1,4 +1,4 @@
import { EntityDict } from '@oak-app-domain';
import { EntityDict } from '../oak-app-domain/index';
import { Trigger } from 'oak-domain/lib/types';
import { BRC } from '../types/RuntimeCxt';
declare const triggers: Trigger<EntityDict, keyof EntityDict, BRC>[];

View File

@ -1,5 +1,5 @@
import { OakException, OpRecord } from 'oak-domain/lib/types';
import { EntityDict } from '@oak-app-domain';
import { EntityDict } from '../oak-app-domain/index';
export declare class ExternalPrePayException<ED extends EntityDict> extends OakException<ED> {
reason: any;
constructor(reason: any, message?: string);

View File

@ -1,5 +1,5 @@
import { Watcher } from 'oak-domain/lib/types';
import { EntityDict } from '@oak-app-domain';
import { EntityDict } from '../oak-app-domain/index';
import { BRC } from '../types/RuntimeCxt';
declare const watchers: Watcher<EntityDict, keyof EntityDict, BRC>[];
export default watchers;