<template>
|
<LoadingLayout :loading="isLoading">
|
<ProForm :model="form" ref="dialogForm" label-width="120px">
|
<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>
|
</ProForm>
|
</LoadingLayout>
|
</template>
|
|
<script setup lang="ts">
|
import { FormInstance } from 'element-plus';
|
import {
|
ProForm,
|
ProFormItemV2,
|
ProFormSelect,
|
LoadingLayout,
|
ProFormInputNumber,
|
} from '@bole-core/components';
|
import * as enterpriseServices from '@/services/api/enterprise';
|
import { useQuery } from '@tanstack/vue-query';
|
import { EnumSmsAccessText } from '@/constants';
|
|
defineOptions({
|
name: 'ShortMessageConfigureView',
|
});
|
|
type Props = {
|
id: string;
|
};
|
|
const props = withDefaults(defineProps<Props>(), {});
|
|
const dialogForm = ref<FormInstance>();
|
|
const form = reactive({
|
smsAccess: '' as any as EnumSmsAccess,
|
smsCost: 0,
|
});
|
|
const { isLoading } = useQuery({
|
queryKey: ['enterpriseServices/getEnterpriseSmsSetting', props.id],
|
queryFn: async () => {
|
return await enterpriseServices.getEnterpriseSmsSetting({
|
id: props.id,
|
});
|
},
|
onSuccess(data) {
|
form.smsAccess = data.smsAccess;
|
form.smsCost = data.smsCost;
|
},
|
});
|
|
async function createOrEditFlexEnterpriseMessageSetting() {
|
try {
|
if (!dialogForm.value) return;
|
const valid = await dialogForm.value.validate();
|
if (!valid) return;
|
let params: API.SetEnterpriseSmsSettingCommand = {
|
id: props.id,
|
smsAccess: form.smsAccess,
|
smsCost: form.smsCost,
|
};
|
let res = await enterpriseServices.setEnterpriseSmsSetting(params);
|
return res;
|
} catch (error) {}
|
}
|
|
defineExpose({
|
onConfirm: createOrEditFlexEnterpriseMessageSetting,
|
});
|
</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;
|
}
|
</style>
|