<template>
|
<LoadingLayout :loading="isLoading">
|
<AppContainer>
|
<PageFormLayout>
|
<ProForm :model="form" ref="formRef" label-width="120px" :is-read="isRead">
|
<ProFormCol>
|
<ProFormColItem :span="12">
|
<ProFormItemV2 label="是否禁用:" prop="isDisabled">
|
<ProFormRadio
|
v-model="form.isDisabled"
|
:value-enum="BooleanOptions"
|
:button-style="false"
|
></ProFormRadio>
|
</ProFormItemV2>
|
</ProFormColItem>
|
</ProFormCol>
|
<ProFormCol>
|
<ProFormColItem :span="12">
|
<ProFormItemV2 label="带出参数:" prop="withoutParams">
|
<ProFormRadio
|
v-model="form.withoutParams"
|
:value-enum="BooleanOptions"
|
:button-style="false"
|
></ProFormRadio>
|
</ProFormItemV2>
|
</ProFormColItem>
|
</ProFormCol>
|
<ProFormCol>
|
<ProFormColItem :span="12">
|
<ProFormItemV2 label="每分钟最大数量:" prop="minutelyMaxCount">
|
<ProFormInputNumber
|
:controls="false"
|
:min="0"
|
v-model="form.minutelyMaxCount"
|
placeholder="请输入"
|
></ProFormInputNumber>
|
</ProFormItemV2>
|
</ProFormColItem>
|
</ProFormCol>
|
<ProFormCol>
|
<ProFormColItem :span="12">
|
<ProFormItemV2 label="每小时最大数量:" prop="hourlyMaxCount">
|
<ProFormInputNumber
|
:controls="false"
|
:min="0"
|
v-model="form.hourlyMaxCount"
|
placeholder="请输入"
|
></ProFormInputNumber>
|
</ProFormItemV2>
|
</ProFormColItem>
|
</ProFormCol>
|
<ProFormCol>
|
<ProFormColItem :span="12">
|
<ProFormItemV2 label="每天最大数量:" prop="dailyMaxCount">
|
<ProFormInputNumber
|
:controls="false"
|
:min="0"
|
v-model="form.dailyMaxCount"
|
placeholder="请输入"
|
></ProFormInputNumber>
|
</ProFormItemV2>
|
</ProFormColItem>
|
</ProFormCol>
|
<ProFormCol>
|
<ProFormColItem :span="12">
|
<ProFormItemV2 label="通道配置:" prop="accesses">
|
<div class="access-list">
|
<div class="access-item" v-for="(item, index) in form.accesses" :key="index">
|
<div class="access-item-label">
|
{{ EnumSmsAccessTextUseInSms[item.access] }}
|
</div>
|
<ProFormRadio
|
v-model="item.isDisabled"
|
:value-enum="[
|
{
|
label: '启用',
|
value: false,
|
},
|
{
|
label: '禁用',
|
value: true,
|
},
|
]"
|
:button-style="false"
|
></ProFormRadio>
|
<ProFormInputNumber
|
:controls="false"
|
:min="0"
|
v-model="item.sort"
|
placeholder="请输入"
|
></ProFormInputNumber>
|
</div>
|
</div>
|
</ProFormItemV2>
|
</ProFormColItem>
|
</ProFormCol>
|
</ProForm>
|
<template #footer>
|
<el-button type="primary" v-if="isRead" @click="isRead = false">编辑</el-button>
|
<el-button type="primary" v-else @click="handleConfirm">确认</el-button>
|
</template>
|
</PageFormLayout>
|
</AppContainer>
|
</LoadingLayout>
|
</template>
|
|
<script setup lang="ts">
|
import {
|
LoadingLayout,
|
AppContainer,
|
PageFormLayout,
|
ProForm,
|
ProFormCol,
|
ProFormColItem,
|
ProFormItemV2,
|
ProFormInputNumber,
|
ProFormRadio,
|
} from '@bole-core/components';
|
import { useQuery } from '@tanstack/vue-query';
|
import * as smsServices from '@/services/api/sms';
|
import { BooleanOptions, EnumSmsAccessTextUseInSms } from '@/constants';
|
import { FormInstance } from 'element-plus';
|
import { Message } from '@bole-core/core';
|
|
defineOptions({
|
name: 'SmsSettingManage',
|
});
|
|
const form = reactive({
|
isDisabled: false,
|
withoutParams: false,
|
minutelyMaxCount: 0,
|
hourlyMaxCount: 0,
|
dailyMaxCount: 0,
|
accesses: [] as API.SaveSmsSettingCommandAccess[],
|
});
|
|
const isRead = ref(true);
|
|
const { isLoading } = useQuery({
|
queryKey: ['smsServices/getSmsSetting'],
|
queryFn: async () => {
|
return await smsServices.getSmsSetting(
|
{},
|
{
|
showLoading: false,
|
}
|
);
|
},
|
placeholderData: () => ({} as API.GetSmsSettingQueryResult),
|
onSuccess(data) {
|
form.isDisabled = data.isDisabled;
|
form.withoutParams = data.withoutParams;
|
form.minutelyMaxCount = data.minutelyMaxCount;
|
form.hourlyMaxCount = data.hourlyMaxCount;
|
form.dailyMaxCount = data.dailyMaxCount;
|
form.accesses = data.accesses;
|
},
|
});
|
|
const formRef = ref<FormInstance>();
|
|
function handleConfirm() {
|
if (!formRef.value) return;
|
formRef.value.validate((valid) => {
|
if (valid) {
|
submit();
|
} else {
|
return;
|
}
|
});
|
}
|
|
async function submit() {
|
try {
|
let params: API.SaveSmsSettingCommand = {
|
isDisabled: form.isDisabled,
|
withoutParams: form.withoutParams,
|
minutelyMaxCount: form.minutelyMaxCount,
|
hourlyMaxCount: form.hourlyMaxCount,
|
dailyMaxCount: form.dailyMaxCount,
|
accesses: form.accesses,
|
};
|
let res = await smsServices.saveSmsSetting(params);
|
if (res) {
|
Message.successMessage('操作成功');
|
isRead.value = true;
|
}
|
} catch (error) {}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
@use '@/style/common.scss' as *;
|
|
.access-list {
|
flex: 1;
|
min-width: 0;
|
|
:deep() {
|
.el-form-item__content {
|
flex-direction: column;
|
align-items: flex-start;
|
}
|
}
|
}
|
|
.access-item {
|
display: flex;
|
align-items: center;
|
margin-bottom: 10px;
|
|
.access-item-label {
|
margin-right: 20px;
|
word-break: keep-all;
|
}
|
|
:deep() {
|
.el-radio-group {
|
margin-right: 20px;
|
}
|
}
|
}
|
</style>
|