From 8a27eb793148aa30558f3efa317fde14b6367dc1 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 17 十月 2025 14:54:13 +0800
Subject: [PATCH] feat: 1.2.0.1
---
src/views/EnterpriseManage/components/ConfigureDialog.vue | 253 +++++++++++++-------------------------------------
1 files changed, 68 insertions(+), 185 deletions(-)
diff --git a/src/views/EnterpriseManage/components/ConfigureDialog.vue b/src/views/EnterpriseManage/components/ConfigureDialog.vue
index 46b8b87..a269906 100644
--- a/src/views/EnterpriseManage/components/ConfigureDialog.vue
+++ b/src/views/EnterpriseManage/components/ConfigureDialog.vue
@@ -1,116 +1,28 @@
<template>
<ProDialog title="閰嶇疆" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
- <ProForm :model="form" ref="dialogForm" label-width="120px">
- <ProFormItemV2 label="" prop="enterpriseConfigureType" label-width="0">
- <ProFormRadio
- v-model="form.enterpriseConfigureType"
- :value-enum="EnterpriseConfigureTypeText"
- buttonStyle
- />
- </ProFormItemV2>
- <!-- <template v-if="form.enterpriseConfigureType === EnterpriseConfigureType.Bank">
- <ProFormItemV2 label="寮�鎴锋�昏:" prop="openBank">
- <ProFormText
- v-model.trim="form.openBank"
- placeholder="璇疯緭鍏ュ紑鎴锋�昏"
- :maxlength="40"
- />
- </ProFormItemV2>
- <ProFormItemV2 label="寮�鎴锋敮琛�:" prop="openBranchBank">
- <ProFormText
- v-model.trim="form.openBranchBank"
- placeholder="璇疯緭鍏ュ紑鎴锋敮琛�"
- :maxlength="40"
- />
- </ProFormItemV2>
- <ProFormItemV2
- label="閾惰璐︽埛:"
- prop="bankAccount"
- :check-rules="[
- { message: '璇疯緭鍏ラ摱琛岃处鎴�' },
- { message: '閾惰璐︽埛浠呮敮鎸佹暟瀛�', pattern: BoleRegExp.RegNumber },
- ]"
- >
- <ProFormText v-model.trim="form.bankAccount" placeholder="璇疯緭鍏ラ摱琛岃处鎴�" />
- </ProFormItemV2>
- <ProFormItemV2 label="閾惰璐︽埛:" prop="verifyStatus">
- {{ VerifyStatusText[form.verifyStatus] }}
- <el-button style="margin-left: 10px" type="primary" link @click="handleCheckBankAccount"
- >鏍¢獙</el-button
- >
- </ProFormItemV2>
- </template> -->
- <template v-if="form.enterpriseConfigureType === EnterpriseConfigureType.AliPay">
- <ProFormItemV2
- label="鏀粯瀹濊处鍙�:"
- prop="alipayAccount"
- :checkRules="[{ message: '璇疯緭鍏ユ敮浠樺疂璐﹀彿' }]"
- >
- <div style="display: flex; width: 100%">
- <ProFormText v-model.trim="form.alipayAccount" placeholder="璇疯緭鍏ユ敮浠樺疂璐﹀彿">
- </ProFormText>
- <el-button style="margin-left: 10px" type="primary" link @click="openEnterpriseWallet"
- >鑾峰彇绛剧害閾炬帴</el-button
- >
- </div>
- </ProFormItemV2>
- <ProFormItemV2
- label="鍟嗘埛ID:"
- prop="alipayMerchantId"
- :checkRules="[{ message: '璇疯緭鍏ュ晢鎴稩D' }]"
- >
- <ProFormText v-model.trim="form.alipayMerchantId" placeholder="璇疯緭鍏ュ晢鎴稩D" />
- </ProFormItemV2>
- <ProFormItemV2 label="绛剧害鐘舵��:" prop="alipayAccount" required>
- <span>宸茬绾�</span>
- <el-button style="margin-left: 10px" type="primary" link @click="handleCheckBankAccount"
- >鏍¢獙</el-button
- >
- </ProFormItemV2>
- <ProFormItemV2 label="杩涗欢鐘舵��:" prop="alipayAccount" required>
- <span>宸茶繘浠�</span>
- <el-button style="margin-left: 10px" type="primary" link @click="handleCheckBankAccount"
- >鏍¢獙</el-button
- >
- </ProFormItemV2>
- </template>
- <template v-if="form.enterpriseConfigureType === EnterpriseConfigureType.Electronic">
- <div class="configure-dialog-form-title">閫氶亾閰嶇疆</div>
- <ProFormItemV2
- v-for="(item, index) in enabledElectronSignSettings"
- :label="item.accessName"
- :key="item.access"
- prop="electronSignAccesses"
- required
- >
- <ProFormSwitch
- v-model="form.electronSignAccesses[index]"
- :active-value="Number(item.access)"
- :inactive-value="null"
- ></ProFormSwitch>
- </ProFormItemV2>
- </template>
- <template v-if="form.enterpriseConfigureType === EnterpriseConfigureType.ShortMessage">
- <div class="configure-dialog-form-title">閫氶亾閰嶇疆</div>
- <ProFormItemV2 label="鍚嶇О:" prop="smsAccess" :checkRules="[{ message: '璇烽�夋嫨鐭俊閫氶亾' }]">
- <ProFormSelect
- v-model="form.smsAccess"
- :valueEnum="EnumSmsAccessText"
- placeholder="璇烽�夋嫨鐭俊閫氶亾"
- >
- </ProFormSelect>
- </ProFormItemV2>
- <div class="configure-dialog-form-title">璐圭敤閰嶇疆</div>
- <ProFormItemV2 label="鐭俊璐圭敤:" prop="smsCost">
- <ProFormInputNumber
- :controls="false"
- v-model="form.smsCost"
- placeholder="璇疯緭鍏�"
- unit="鍏�/鏉�"
- />
- </ProFormItemV2>
- </template>
- </ProForm>
+ <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>
@@ -118,33 +30,16 @@
</span>
</template>
</ProDialog>
- <QrcodeDialog v-bind="dialogQrcodeProps"></QrcodeDialog>
</template>
<script setup lang="ts">
-import { FormInstance } from 'element-plus';
-import {
- ProDialog,
- ProForm,
- ProFormItemV2,
- ProFormText,
- ProFormRadio,
- ProFormInputNumber,
- ProFormSelect,
- ProFormSwitch,
- useFormDialog,
-} from '@bole-core/components';
-import { BoleRegExp } from '@bole-core/core';
-import {
- EnterpriseConfigureType,
- EnterpriseConfigureTypeText,
- ChargeTypeEnum,
- EnumElectronSignAccessText,
- EnumSmsAccessText,
- EnumElectronSignAccess,
-} from '@/constants';
-import * as enterpriseWalletServices from '@/services/api/enterpriseWallet';
-import QrcodeDialog from './QrcodeDialog.vue';
+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',
@@ -152,74 +47,62 @@
type Form = {
enterpriseConfigureType: EnterpriseConfigureType;
- // openBank: string;
- // openBranchBank: string;
- // bankAccount: string;
- // verifyStatus: VerifyStatus;
- electronSignAccesses: EnumElectronSignAccess[];
- smsAccess: EnumSmsAccess;
- smsCost: number;
- alipayAccount: string;
- alipayMerchantId: string;
+ id: string;
};
const form = defineModel<Form>('form');
const visible = defineModel({ type: Boolean });
const emit = defineEmits<{
- (e: 'onConfirm'): void;
+ (e: 'onConfirm', value: any): void;
(e: 'onCancel'): void;
}>();
-const dialogForm = ref<FormInstance>();
+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 { enabledElectronSignSettings } = useEnabledElectronSignSettings();
-
-function handleCheckBankAccount() {}
+const wechatConfigureViewRef =
+ useTemplateRef<InstanceType<typeof WechatConfigureView>>('wechatConfigureViewRef');
function onDialogClose() {
- if (!dialogForm.value) return;
- dialogForm.value.resetFields();
+ // if (!dialogForm.value) return;
+ // dialogForm.value.resetFields();
}
-function handleConfirm() {
- if (!dialogForm.value) return;
- dialogForm.value.validate((valid) => {
- if (valid) {
- emit('onConfirm');
- } else {
- return;
- }
- });
-}
-
-const { dialogProps: dialogQrcodeProps, handleAdd } = useFormDialog({
- defaultFormParams: {
- qrcodeUrl: '',
- },
-});
-
-async function openEnterpriseWallet() {
- try {
- let params: API.OpenEnterpriseWalletCommand = {
- access: EnumEnterpriseWalletAccess.Alipay,
- };
- let res = await enterpriseWalletServices.openEnterpriseWallet(params);
- if (res) {
- handleAdd({
- qrcodeUrl: res.signUrl,
- });
- }
- } catch (error) {}
+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', res);
+ }
}
</script>
<style lang="scss" scoped>
@use '@/style/common.scss' as *;
-.configure-dialog-form-title {
- margin-bottom: 10px;
- font-size: 15px;
- font-weight: bold;
- line-height: 36px;
+.configure-dialog-tabs {
+ :deep() {
+ .el-tabs__header {
+ display: none;
+ }
+ }
}
</style>
--
Gitblit v1.9.1