<template>
|
<ProDialog title="配置" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
|
<FieldRadio
|
v-model="form.enterpriseConfigureType"
|
:value-enum="EnterpriseConfigureTypeText"
|
buttonStyle
|
style="margin-bottom: 22px"
|
/>
|
<el-tabs v-model="form.enterpriseConfigureType" class="configure-dialog-tabs">
|
<el-tab-pane lazy :name="EnterpriseConfigureType.Bank">
|
<BankConfigureView :id="form.id" ref="bankConfigureViewRef" />
|
</el-tab-pane>
|
<el-tab-pane lazy :name="EnterpriseConfigureType.AliPay">
|
<AliPayConfigureView :id="form.id" ref="aliPayConfigureViewRef" />
|
</el-tab-pane>
|
<!-- <el-tab-pane lazy :name="EnterpriseConfigureType.Wechat">
|
<WechatConfigureView :id="form.id" ref="wechatConfigureViewRef" />
|
</el-tab-pane> -->
|
<el-tab-pane lazy :name="EnterpriseConfigureType.Electronic">
|
<ElectronicConfigureView :id="form.id" ref="electronicConfigureViewRef" />
|
</el-tab-pane>
|
<el-tab-pane lazy :name="EnterpriseConfigureType.ShortMessage">
|
<ShortMessageConfigureView :id="form.id" ref="shortMessageConfigureViewRef" />
|
</el-tab-pane>
|
</el-tabs>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="emit('onCancel')">取 消</el-button>
|
<el-button type="primary" @click="handleConfirm">确 定</el-button>
|
</span>
|
</template>
|
</ProDialog>
|
</template>
|
|
<script setup lang="ts">
|
import { ProDialog, FieldRadio } from '@bole-core/components';
|
import { EnterpriseConfigureType, EnterpriseConfigureTypeText } from '@/constants';
|
import BankConfigureView from './BankConfigureView.vue';
|
import AliPayConfigureView from './AliPayConfigureView.vue';
|
import ElectronicConfigureView from './ElectronicConfigureView.vue';
|
import ShortMessageConfigureView from './ShortMessageConfigureView.vue';
|
import WechatConfigureView from './WechatConfigureView.vue';
|
|
defineOptions({
|
name: 'ConfigureDialog',
|
});
|
|
type Form = {
|
enterpriseConfigureType: EnterpriseConfigureType;
|
id: string;
|
};
|
|
const form = defineModel<Form>('form');
|
const visible = defineModel({ type: Boolean });
|
|
const emit = defineEmits<{
|
(e: 'onConfirm'): void;
|
(e: 'onCancel'): void;
|
}>();
|
|
const bankConfigureViewRef =
|
useTemplateRef<InstanceType<typeof BankConfigureView>>('bankConfigureViewRef');
|
const aliPayConfigureViewRef =
|
useTemplateRef<InstanceType<typeof AliPayConfigureView>>('aliPayConfigureViewRef');
|
const electronicConfigureViewRef = useTemplateRef<InstanceType<typeof ElectronicConfigureView>>(
|
'electronicConfigureViewRef'
|
);
|
const shortMessageConfigureViewRef = useTemplateRef<InstanceType<typeof ShortMessageConfigureView>>(
|
'shortMessageConfigureViewRef'
|
);
|
|
const wechatConfigureViewRef =
|
useTemplateRef<InstanceType<typeof WechatConfigureView>>('wechatConfigureViewRef');
|
|
function onDialogClose() {
|
// if (!dialogForm.value) return;
|
// dialogForm.value.resetFields();
|
}
|
|
async function handleConfirm() {
|
let res: any;
|
if (form.value.enterpriseConfigureType === EnterpriseConfigureType.Bank) {
|
res = await bankConfigureViewRef.value?.onConfirm();
|
} else if (form.value.enterpriseConfigureType === EnterpriseConfigureType.AliPay) {
|
res = await aliPayConfigureViewRef.value?.onConfirm?.();
|
} else if (form.value.enterpriseConfigureType === EnterpriseConfigureType.Electronic) {
|
res = await electronicConfigureViewRef.value?.onConfirm?.();
|
} else if (form.value.enterpriseConfigureType === EnterpriseConfigureType.ShortMessage) {
|
res = await shortMessageConfigureViewRef.value?.onConfirm?.();
|
}
|
// else if (form.value.enterpriseConfigureType === EnterpriseConfigureType.Wechat) {
|
// res = await wechatConfigureViewRef.value?.onConfirm?.();
|
// }
|
if (res) {
|
emit('onConfirm');
|
}
|
}
|
</script>
|
<style lang="scss" scoped>
|
@use '@/style/common.scss' as *;
|
|
.configure-dialog-tabs {
|
:deep() {
|
.el-tabs__header {
|
display: none;
|
}
|
}
|
}
|
</style>
|