版本更新
Some checks failed
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Lint (ubuntu-latest) (push) Has been cancelled
CI / Lint (windows-latest) (push) Has been cancelled
CI / Check (ubuntu-latest) (push) Has been cancelled
CI / Check (windows-latest) (push) Has been cancelled
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
Deploy Website on push / Deploy Push Playground Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Docs Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Antd Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Element Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Naive Ftp (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
CI / CI OK (push) Has been cancelled

This commit is contained in:
hahwu 2025-06-16 15:03:52 +08:00
parent 2ec5d0a104
commit 707b2e2013

View File

@ -1,15 +1,15 @@
<script lang="ts" setup>
import { useVbenForm, useVbenModal } from '@vben/common-ui';
defineOptions({
name: 'DetailMailModal',
});
const [Form, FormApi] = useVbenForm({
//
//
commonConfig: {
//
componentProps: {
class: 'w-full h-full',
},
},
// 使 tailwindcss grid
@ -20,211 +20,212 @@ const [Form, FormApi] = useVbenForm({
// labelinput
schema: [
{
component: 'Input',
fieldName: 'Title',
label: '邮件标题',
rules: "required",
component: 'Input',
fieldName: 'Title',
label: '邮件标题',
rules: 'required',
},
{
component: 'Input',
fieldName: 'Subtitle',
label: '邮件副标题',
component: 'Input',
fieldName: 'Subtitle',
label: '邮件副标题',
},
{
component: 'Textarea',
fieldName: 'Content',
label: '邮件内容',
componentProps: {
type: 'textarea',
rows: 8,
},
rules: "required",
component: 'Textarea',
fieldName: 'Content',
label: '邮件内容',
componentProps: {
type: 'textarea',
rows: 8,
},
rules: 'required',
},
{
component: 'Input',
fieldName: 'TitleEN',
label: '英文邮件标题',
rules: "required",
component: 'Input',
fieldName: 'TitleEN',
label: '英文邮件标题',
rules: 'required',
},
{
component: 'Input',
fieldName: 'SubtitleEN',
label: '英文邮件副标题',
component: 'Input',
fieldName: 'SubtitleEN',
label: '英文邮件副标题',
},
{
component: 'Textarea',
fieldName: 'ContentEN',
label: '英文邮件内容',
componentProps: {
type: 'textarea',
rows: 8,
},
rules: "required",
component: 'Textarea',
fieldName: 'ContentEN',
label: '英文邮件内容',
componentProps: {
type: 'textarea',
rows: 8,
},
rules: 'required',
},
{
component: 'Textarea',
fieldName: 'items',
label: '邮件道具',
componentProps: {
placeholder: '{}',
type: 'textarea',
rows: 3,
},
component: 'Textarea',
fieldName: 'items',
label: '邮件道具',
componentProps: {
placeholder: '{}',
type: 'textarea',
rows: 3,
},
},
{
component: 'RangePicker',
fieldName: 'start_time',
label: '时间区间',
component: 'RangePicker',
fieldName: 'start_time',
label: '时间区间',
},
{
component: 'DatePicker',
fieldName: 'register_time',
label: '注册时间',
component: 'DatePicker',
fieldName: 'register_time',
label: '注册时间',
},
{
component: 'Select',
fieldName: 'mail_type',
defaultValue: 1,
label: '邮件类型',
componentProps: {
options :[
{
label: '节日邮件',
value: 2
},
{
label: '普通邮件',
value:1
}
]
}
component: 'Select',
fieldName: 'mail_type',
defaultValue: 1,
label: '邮件类型',
componentProps: {
options: [
{
label: '节日邮件',
value: 2,
},
{
label: '普通邮件',
value: 1,
},
],
},
},
{
component: 'Select',
fieldName: 'send_type',
defaultValue: 1,
label: '邮件发送类型',
componentProps: {
options :[
{
label: '个人邮件',
value: 2
},
{
label: '全服邮件',
value:1
}
]
}
component: 'Select',
fieldName: 'send_type',
defaultValue: 1,
label: '邮件发送类型',
componentProps: {
options: [
{
label: '个人邮件',
value: 2,
},
{
label: '全服邮件',
value: 1,
},
],
},
},
{
component: 'Textarea',
fieldName: 'ToUids',
label: '玩家uids',
componentProps: {
component: 'Textarea',
fieldName: 'ToUids',
label: '玩家uids',
componentProps: {
disabled: true,
placeholder: 'uid,uid ... 以‘,’分割',
type: 'textarea',
rows: 4,
},
dependencies: {
componentProps(values) {
if (values.send_type === 2) {
return {
disabled: false,
rules: 'required',
};
}
return {
disabled: true,
placeholder: 'uid,uid ... 以‘,’分割',
type: 'textarea',
rows: 4,
},
dependencies: {
componentProps(values) {
if(values.send_type === 2) {
return {
disabled: false,
rules: "required",
}
}
return {
disabled: true,
}
},
triggerFields: ['send_type'],
};
},
triggerFields: ['send_type'],
},
},
],
})
});
const [Modal, modalApi] = useVbenModal({
confirmText: '提交',
showConfirmButton:false,
onOpened: async () => {
const modalData = modalApi.getData();
FormApi.setValues({
Title: modalData.title,
Subtitle: modalData.subtitle,
Content: modalData.content,
TitleEN: modalData.title_en,
SubtitleEN: modalData.subtitle_en,
ContentEN: modalData.content_en,
items: modalData.items,
start_time: 0 ,
register_time: modalData.register_time ,
mail_type: modalData.mail_type===1 ? '全服邮件' : '个人邮件',
ToUids: modalData.to_uids,
})
FormApi.updateSchema([
{
component: 'Input',
disabled: true,
fieldName: 'Title',
},
{
component: 'Input',
disabled: true,
fieldName: 'Subtitle',
},
{
component: 'Textarea',
disabled: true,
fieldName: 'Content',
},
{
component: 'Input',
disabled: true,
fieldName: 'TitleEN',
},
{
component: 'Input',
disabled: true,
fieldName: 'SubtitleEN',
},
{
component: 'Textarea',
disabled: true,
fieldName: 'ContentEN',
},
{
component: 'Input',
disabled: true,
fieldName: 'items',
},
{
component: 'Input',
disabled: true,
fieldName: 'start_time',
},
{
component: 'Input',
disabled: true,
fieldName: 'register_time',
},
{
component: 'Input',
disabled: true,
fieldName: 'mail_type',
},
{
component: 'Input',
disabled: true,
fieldName: 'ToUids',
}
])
},
})
defineOptions({
name: 'DetailMailModal',
})
confirmText: '提交',
showConfirmButton: false,
onOpened: async () => {
const modalData = modalApi.getData();
FormApi.setValues({
Title: modalData.title,
Subtitle: modalData.subtitle,
Content: modalData.content,
TitleEN: modalData.title_en,
SubtitleEN: modalData.subtitle_en,
ContentEN: modalData.content_en,
items: modalData.items,
start_time: 0,
register_time: modalData.register_time,
mail_type: modalData.mail_type === 1 ? '全服邮件' : '个人邮件',
ToUids: modalData.to_uids,
});
FormApi.updateSchema([
{
component: 'Input',
disabled: true,
fieldName: 'Title',
},
{
component: 'Input',
disabled: true,
fieldName: 'Subtitle',
},
{
component: 'Textarea',
disabled: true,
fieldName: 'Content',
},
{
component: 'Input',
disabled: true,
fieldName: 'TitleEN',
},
{
component: 'Input',
disabled: true,
fieldName: 'SubtitleEN',
},
{
component: 'Textarea',
disabled: true,
fieldName: 'ContentEN',
},
{
component: 'Input',
disabled: true,
fieldName: 'items',
},
{
component: 'Input',
disabled: true,
fieldName: 'start_time',
},
{
component: 'Input',
disabled: true,
fieldName: 'register_time',
},
{
component: 'Input',
disabled: true,
fieldName: 'mail_type',
},
{
component: 'Input',
disabled: true,
fieldName: 'ToUids',
},
{
component: 'Input',
disabled: true,
fieldName: 'send_type',
},
]);
},
});
</script>
<template>
<Modal :width="800" title="邮件详情">