perf(消息新增功能模块): 换动态表单为静态表单

This commit is contained in:
Kven 2025-01-06 11:29:35 +08:00
parent f7ef4fe1dd
commit daf3f540a4

View File

@ -20,116 +20,103 @@
@cancel="handleCancel"
>
<template #title>{{ modalTitle }}</template>
<DynamicForm :prem="fieIds" />
<!-- <a-form ref="CreateRef" :model="formData" :style="{ width: '650px' }">-->
<!-- <DynamicForm :prem="fieIds" />-->
<a-form ref="CreateRef" :model="formData" :style="{ width: '650px' }">
<a-form-item
field="userId"
label="用户"
:validate-trigger="['change', 'input']"
:rules="[
{ message: '请输入用戶' },
]"
>
<a-input
v-model="formData.userIds"
placeholder='请选择用戶'
:value=formData.userIds
@click="queryDeptTree"
/>
</a-form-item>
<a-form-item
field="title"
label="标题"
:validate-trigger="['change', 'input']"
:rules="[
{ required: true, message: '请输入标题' },
]"
>
<a-input
v-model="formData.title"
placeholder='请输入消息标题'
/>
</a-form-item>
<a-form-item
field="remark"
label="备注"
:validate-trigger="['change', 'input']"
>
<!-- v-if="isCreate"-->
<a-input
v-model="formData.attachment"
placeholder='请输入备注'
/>
</a-form-item>
<div style="display: flex;margin-left: 75px">
<a-form-item
field="sms"
label="短信"
:validate-trigger="['change', 'input']"
>
<a-switch
v-model="formData.sms"
:checked-value="true"
:unchecked-value="false"
/>
</a-form-item>
<a-form-item
field="email"
label="邮件"
:validate-trigger="['change', 'input']"
>
<a-switch
v-model="formData.email"
:checked-value="true"
:unchecked-value="false"
/>
</a-form-item>
</div>
<!-- <a-form-item-->
<!-- v-if="userId"-->
<!-- field="userId"-->
<!-- :label="userId.label"-->
<!-- :validate-trigger="['change', 'input']"-->
<!-- :rules="[-->
<!-- { message: '请输入用戶' },-->
<!-- ]"-->
<!-- >-->
<!-- <a-input-->
<!-- v-if="userId.component==='input'"-->
<!-- v-model="formData.userIds"-->
<!-- :type="userId.type"-->
<!-- placeholder='请选择用戶'-->
<!-- :value=formData.userIds-->
<!-- @click="queryDeptTree"-->
<!-- />-->
<!-- </a-form-item>-->
<!-- <a-form-item-->
<!-- v-if="title"-->
<!-- field="title"-->
<!-- :label="title.label"-->
<!-- :validate-trigger="['change', 'input']"-->
<!-- :rules="[-->
<!-- { required: true, message: '请输入标题' },-->
<!-- ]"-->
<!-- >-->
<!-- <a-input-->
<!-- v-if="title.component==='input'"-->
<!-- v-model="formData.title"-->
<!-- :type="title.type"-->
<!-- placeholder='请输入消息标题'-->
<!-- />-->
<!-- </a-form-item>-->
<!-- <a-form-item-->
<!-- v-if="remark"-->
<!-- field="remark"-->
<!-- :label="remark.label"-->
<!-- :validate-trigger="['change', 'input']"-->
<!-- field="attachmentIds"-->
<!-- label='附件'-->
<!-- >-->
<!-- &lt;!&ndash; v-if="isCreate"&ndash;&gt;-->
<!-- <a-input-->
<!-- v-if="remark.component==='input'"-->
<!-- v-model="formData.attachment"-->
<!-- :type="remark.type"-->
<!-- placeholder='请输入备注'-->
<!-- type="file"-->
<!-- v-model="formData.attachmentIds"-->
<!-- />-->
<!-- </a-form-item>-->
<!-- <div style="display: flex;margin-left: 75px">-->
<!-- <a-form-item-->
<!-- v-if="sms"-->
<!-- field="sms"-->
<!-- :label="sms.label"-->
<!-- :validate-trigger="['change', 'input']"-->
<!-- >-->
<!-- <a-switch-->
<!-- v-if="sms.component==='switch'"-->
<!-- v-model="formData.sms"-->
<!-- :checked-value="true"-->
<!-- :unchecked-value="false"-->
<!-- />-->
<!-- </a-form-item>-->
<!-- <a-form-item-->
<!-- v-if="email"-->
<!-- field="email"-->
<!-- :label="email.label"-->
<!-- :validate-trigger="['change', 'input']"-->
<!-- >-->
<!-- <a-switch-->
<!-- v-if="email.component==='switch'"-->
<!-- v-model="formData.email"-->
<!-- :checked-value="true"-->
<!-- :unchecked-value="false"-->
<!-- />-->
<!-- </a-form-item>-->
<!-- </div>-->
<!--&lt;!&ndash; <a-form-item&ndash;&gt;-->
<!--&lt;!&ndash; field="attachmentIds"&ndash;&gt;-->
<!--&lt;!&ndash; label='附件'&ndash;&gt;-->
<!--&lt;!&ndash; >&ndash;&gt;-->
<!--&lt;!&ndash; &lt;!&ndash; v-if="isCreate"&ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash; <a-input&ndash;&gt;-->
<!--&lt;!&ndash; type="file"&ndash;&gt;-->
<!--&lt;!&ndash; v-model="formData.attachmentIds"&ndash;&gt;-->
<!--&lt;!&ndash; />&ndash;&gt;-->
<!--&lt;!&ndash; </a-form-item>&ndash;&gt;-->
<!-- <a-form-item v-if="richEditor" field="content" label='内容' :rules="[{ required: true}]">-->
<!-- <div style="border: 1px solid #ccc;min-width: 700px">-->
<!-- <Toolbar-->
<!-- style="border-bottom: 1px solid #ccc"-->
<!-- :editor="editorRef"-->
<!-- :default-config="toolbarConfig"-->
<!-- :mode="mode"-->
<!-- :class="{'fullscreen-toolbar': isFullScreen}"-->
<!-- />-->
<!-- <Editor-->
<!-- v-model="formData.content"-->
<!-- style="overflow-y: hidden;height: 200px;"-->
<!-- :default-config="editorConfig"-->
<!-- :mode="mode"-->
<!-- :class="{'fullscreen-editor': isFullScreen}"-->
<!-- @on-created="handleCreated"-->
<!-- />-->
<!-- </div>-->
<!-- &lt;!&ndash; <a-textarea v-model="formData.content" placeholder="请输入公告内容" style="height: 100px" />&ndash;&gt;-->
<!-- </a-form-item>-->
<!-- </a-form>-->
<a-form-item field="content" label='内容' :rules="[{ required: true}]">
<div style="border: 1px solid #ccc;min-width: 700px">
<Toolbar
style="border-bottom: 1px solid #ccc"
:editor="editorRef"
:default-config="toolbarConfig"
:mode="mode"
:class="{'fullscreen-toolbar': isFullScreen}"
/>
<Editor
v-model="formData.content"
style="overflow-y: hidden;height: 200px;"
:default-config="editorConfig"
:mode="mode"
:class="{'fullscreen-editor': isFullScreen}"
@on-created="handleCreated"
/>
</div>
<!-- <a-textarea v-model="formData.content" placeholder="请输入公告内容" style="height: 100px" />-->
</a-form-item>
</a-form>
<template #footer>
<a-button class="editor-button" @click="handleCancel">取消</a-button>
<a-button class="editor-button" type="primary" @click="handleSubmit">确定</a-button>
@ -143,7 +130,7 @@
@cancel="deptTreeCancel"
>
<template #title>发送用户</template>
<div style="display: flex">
<div style="display: flex;height: 520px">
<a-card style="margin-right: 10px;width: 30%">
<a-tree
:data="deptTreeData"
@ -154,6 +141,7 @@
/>
</a-card>
<a-card style="flex: 1">
<a-button type="primary" >全选</a-button>
<a-table
:data="selectedDepartmentMembers"
:columns="columns"
@ -201,23 +189,19 @@
});
const { visible, setVisible } = useVisible(false);
const checkKeys = ref<number[]>([]);
const editorRef = shallowRef()
const handleCreated = (editor: any) => {
editorRef.value = editor; // editor
}
const CreateRef = ref<FormInstance>();
const formData = ref<any>({
...props.prem,
});
const messageStore = useMessageStore();
const editorRef = shallowRef()
const isFullScreen = ref(false);
const mode = 'default';
const selectedIds= ref<string[]>([]);
const toolbarConfig = { excludeKeys: ['uploadVideo', 'insertImage','insertVideo']}
// const handleCreated = (editor: any) => {
// editorRef.value = editor; // editor
// //
// editor.on('fullScreen', () => {
// })
// }
const columns = computed<any[]>(()=>[
{
title: '操作',
@ -230,46 +214,45 @@
},
])
const fieIds = ref(
{
userId:{
label: '用戶',
component: 'input',
type:'text'
},
title:{
label: '标题',
component: 'input',
type:'text'
},
remark:{
label: '备注',
component: 'input',
type:'text'
},
sms:{
label: '短信',
component: 'switch',
type:'switch'
},
email:{
label: '邮件',
component:'switch',
type:'switch'
},
attachmentIds:{
label: '附件',
component: 'input',
type:'text'
},
richEditor:{
label: '内容',
component: 'input',
type:'text'
},
},
);
const { userId, title, remark, sms, email, richEditor } = fieIds.value;
// const fieIds = ref(
// {
// userId:{
// label: '',
// component: 'input',
// type:'text'
// },
// title:{
// label: '',
// component: 'input',
// type:'text'
// },
// remark:{
// label: '',
// component: 'input',
// type:'text'
// },
// sms:{
// label: '',
// component: 'switch',
// type:'switch'
// },
// email:{
// label: '',
// component:'switch',
// type:'switch'
// },
// attachmentIds:{
// label: '',
// component: 'input',
// type:'text'
// },
// richEditor:{
// label: '',
// component: 'input',
// type:'text'
// },
// },
// );
const deptTreeData = reactive([
{
key: '1',
@ -311,9 +294,10 @@
// 广
const getSelectedMembers = (treeData: any[], selectedKeys: string[]) => {
const queue = [...treeData];
const queue:any = [...treeData];
const selectedMembers: any[] = [];
while (queue.length > 0) {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const node = queue.shift()!;
if (selectedKeys.includes(node.key)) {
if (node.members) {
@ -334,7 +318,7 @@
if (key[0] === '1' || key.length === 0) {
// 广
const allMembers: any[] = [];
const queue = [...deptTreeData];
const queue:any = [...deptTreeData];
while (queue.length > 0) {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const node = queue.shift()!;
@ -433,7 +417,6 @@
const deptTreeSubmit = () => {
deptVisible.value = false;
formData.value.userIds = selectedIds.value;
console.log(formData.value.userIds);
};
//