Commit fae0848e438cce4c2e045d24ea9fdbf80b82968e

Authored by xp.Huang
2 parents 3443f055 b0f800ab

Merge branch 'ft-dev' into 'main'

站内通知前端页面和接口联调完成

See merge request huang/yun-teng-iot-front!18
@@ -18,6 +18,8 @@ enum NotifyManagerApi { @@ -18,6 +18,8 @@ enum NotifyManagerApi {
18 NOTICE_GET_MYDETAIL_URL = '/noticeUser', 18 NOTICE_GET_MYDETAIL_URL = '/noticeUser',
19 NOTICE_GET_PAGE_URL = '/noticeUser/page', 19 NOTICE_GET_PAGE_URL = '/noticeUser/page',
20 NOTICE_GET_READ_URL = '/noticeUser/read', 20 NOTICE_GET_READ_URL = '/noticeUser/read',
  21 + NOTICE_GET_DICT_URL = '/dictItem',
  22 + NOTICE_GET_DEPT_URL = '/organization/me/organizations',
21 } 23 }
22 24
23 // /** 25 // /**
@@ -105,3 +107,23 @@ export const notifyMyGetrReadApi = (params?: NoticeQueryParam) => { @@ -105,3 +107,23 @@ export const notifyMyGetrReadApi = (params?: NoticeQueryParam) => {
105 params, 107 params,
106 }); 108 });
107 }; 109 };
  110 +
  111 +/**
  112 + * 获取字典----id
  113 + * @param 无参数
  114 + */
  115 +export const notifyDictGetApi = () => {
  116 + return defHttp.get({
  117 + url: `${NotifyManagerApi.NOTICE_GET_DICT_URL}?page=1&pageSize=10&dictId=74a3878d-1bb9-4a59-bd2d-d5e4646c7239&_t=1638928298910`,
  118 + });
  119 +};
  120 +
  121 +/**
  122 + * 获取部门
  123 + * @param 无参数
  124 + */
  125 +export const notifyOrganizationGetApi = () => {
  126 + return defHttp.get({
  127 + url: NotifyManagerApi.NOTICE_GET_DEPT_URL,
  128 + });
  129 +};
@@ -18,11 +18,11 @@ @@ -18,11 +18,11 @@
18 label: '内容', 18 label: '内容',
19 }, 19 },
20 { 20 {
21 - field: 'creator', 21 + field: 'senderName',
22 label: '发送者', 22 label: '发送者',
23 }, 23 },
24 { 24 {
25 - field: 'readDate', 25 + field: 'createTime',
26 label: '发送时间', 26 label: '发送时间',
27 }, 27 },
28 { 28 {
@@ -5,6 +5,9 @@ export const columns: BasicColumn[] = [ @@ -5,6 +5,9 @@ export const columns: BasicColumn[] = [
5 title: '标题', 5 title: '标题',
6 dataIndex: 'title', 6 dataIndex: 'title',
7 width: 200, 7 width: 200,
  8 + format: (text: string, record: Recordable) => {
  9 + return record.title ? record.title : '无';
  10 + },
8 }, 11 },
9 { 12 {
10 title: '类型', 13 title: '类型',
@@ -22,12 +25,15 @@ export const columns: BasicColumn[] = [ @@ -22,12 +25,15 @@ export const columns: BasicColumn[] = [
22 }, 25 },
23 { 26 {
24 title: '发送者', 27 title: '发送者',
25 - dataIndex: 'receiverId', 28 + dataIndex: 'senderName',
26 width: 200, 29 width: 200,
  30 + format: (text: string, record: Recordable) => {
  31 + return record.senderName ? record.senderName : '无';
  32 + },
27 }, 33 },
28 { 34 {
29 title: '发送时间', 35 title: '发送时间',
30 - dataIndex: 'readDate', 36 + dataIndex: 'createTime',
31 width: 200, 37 width: 200,
32 }, 38 },
33 { 39 {
@@ -51,13 +57,22 @@ export const searchFormSchema: FormSchema[] = [ @@ -51,13 +57,22 @@ export const searchFormSchema: FormSchema[] = [
51 field: 'orderField', 57 field: 'orderField',
52 label: '', 58 label: '',
53 colProps: { span: 8 }, 59 colProps: { span: 8 },
54 - component: 'ApiTreeSelect', 60 + component: 'Select',
55 componentProps: { 61 componentProps: {
56 - // api: async () => {  
57 - // const data = await screenLinkOrganizationGetApi();  
58 - // copyTransFun(data as any as any[]);  
59 - // return data;  
60 - // }, 62 + options: [
  63 + {
  64 + label: '公告',
  65 + value: 'NOTICE',
  66 + },
  67 + {
  68 + label: '会议',
  69 + value: 'MEETING',
  70 + },
  71 + {
  72 + label: '其他',
  73 + value: 'OTHER',
  74 + },
  75 + ],
61 }, 76 },
62 }, 77 },
63 ]; 78 ];
1 import { BasicColumn, FormSchema } from '/@/components/Table'; 1 import { BasicColumn, FormSchema } from '/@/components/Table';
2 import { Tinymce } from '/@/components/Tinymce/index'; 2 import { Tinymce } from '/@/components/Tinymce/index';
3 -import { h } from 'vue'; 3 +import { h, ref } from 'vue';
  4 +import { findDictItemByCode } from '/@/api/system/dict';
  5 +import { getOrganizationList } from '/@/api/system/system';
  6 +import { copyTransFun } from '/@/utils/fnUtils';
  7 +
  8 +export const selectAll = ref(null);
  9 +export const selectOrg = ref(null);
  10 +export const selectDep = ref(null);
  11 +export const selectPer = ref(null);
  12 +export const isDeptId = ref(null);
4 13
5 export const columns: BasicColumn[] = [ 14 export const columns: BasicColumn[] = [
6 { 15 {
7 title: '类型', 16 title: '类型',
8 dataIndex: 'type', 17 dataIndex: 'type',
9 width: 200, 18 width: 200,
10 - format: (text: string, record: Recordable) => {  
11 - return record.type === 'MEETING' 19 + format: (_text: string, record: Recordable) => {
  20 + return record.type === 'NOTICE'
12 ? '公告' 21 ? '公告'
13 - : record.type === 'MEETING1' 22 + : record.type === 'MEETING'
14 ? '会议' 23 ? '会议'
15 - : record.type === 'MEETING2' 24 + : record.type === 'OTHER'
16 ? '其他' 25 ? '其他'
17 : ''; 26 : '';
18 }, 27 },
@@ -26,24 +35,24 @@ export const columns: BasicColumn[] = [ @@ -26,24 +35,24 @@ export const columns: BasicColumn[] = [
26 title: '内容', 35 title: '内容',
27 dataIndex: 'content', 36 dataIndex: 'content',
28 width: 120, 37 width: 120,
  38 + format: (text: string, record: Recordable) => {
  39 + return !record.content ? '' : record.content.slice(3, record.content.length - 4);
  40 + },
29 }, 41 },
30 { 42 {
31 title: '发送者', 43 title: '发送者',
32 dataIndex: 'senderName', 44 dataIndex: 'senderName',
33 width: 200, 45 width: 200,
  46 + format: (text: string, record: Recordable) => {
  47 + return record.senderName ? record.senderName : '无';
  48 + },
34 }, 49 },
35 { 50 {
36 title: '状态', 51 title: '状态',
37 dataIndex: 'status', 52 dataIndex: 'status',
38 width: 200, 53 width: 200,
39 - format: (text: string, record: Recordable) => {  
40 - return record.status == 0  
41 - ? '草稿'  
42 - : record.type == 1  
43 - ? '已发'  
44 - : record.type == 2  
45 - ? '其他'  
46 - : '其他'; 54 + format: (_text: string, record: Recordable) => {
  55 + return record.status;
47 }, 56 },
48 }, 57 },
49 ]; 58 ];
@@ -59,15 +68,15 @@ export const formSchema: FormSchema[] = [ @@ -59,15 +68,15 @@ export const formSchema: FormSchema[] = [
59 options: [ 68 options: [
60 { 69 {
61 label: '公告', 70 label: '公告',
62 - value: '1', 71 + value: 'NOTICE',
63 }, 72 },
64 { 73 {
65 label: '会议', 74 label: '会议',
66 - value: '2', 75 + value: 'MEETING',
67 }, 76 },
68 { 77 {
69 label: '其他', 78 label: '其他',
70 - value: '3', 79 + value: 'OTHER',
71 }, 80 },
72 ], 81 ],
73 }, 82 },
@@ -87,7 +96,7 @@ export const formSchema: FormSchema[] = [ @@ -87,7 +96,7 @@ export const formSchema: FormSchema[] = [
87 component: 'Input', 96 component: 'Input',
88 colProps: { span: 24 }, 97 colProps: { span: 24 },
89 label: '内容', 98 label: '内容',
90 - defaultValue: '请输入内容', 99 + defaultValue: '',
91 rules: [{ required: true }], 100 rules: [{ required: true }],
92 render: ({ model, field }) => { 101 render: ({ model, field }) => {
93 return h(Tinymce, { 102 return h(Tinymce, {
@@ -99,21 +108,46 @@ export const formSchema: FormSchema[] = [ @@ -99,21 +108,46 @@ export const formSchema: FormSchema[] = [
99 }, 108 },
100 }, 109 },
101 { 110 {
102 - field: 'receiverTypeIds', 111 + field: 'organizationId',
  112 + label: '所属组织',
  113 + colProps: { span: 12 },
  114 + component: 'ApiTreeSelect',
  115 + componentProps: {
  116 + api: async () => {
  117 + const data = await getOrganizationList();
  118 + copyTransFun(data as any as any[]);
  119 + return data;
  120 + },
  121 + onChange: (v) => {
  122 + isDeptId.value = v;
  123 + console.log(isDeptId.value);
  124 + },
  125 + },
  126 + },
  127 + {
  128 + field: 'receiverType',
  129 + required: true,
103 label: '接收者', 130 label: '接收者',
104 colProps: { span: 24 }, 131 colProps: { span: 24 },
105 - component: 'RadioGroup', 132 + component: 'ApiSelect',
106 componentProps: { 133 componentProps: {
107 - options: [  
108 - {  
109 - label: '全部',  
110 - value: '1',  
111 - },  
112 - {  
113 - label: '部门',  
114 - value: '2',  
115 - },  
116 - ], 134 + api: findDictItemByCode,
  135 + params: {
  136 + dictCode: 'receiver_type',
  137 + },
  138 + labelField: 'itemText',
  139 + valueField: 'itemValue',
  140 + onChange: (v) => {
  141 + if (v == 0) {
  142 + selectAll.value = 0;
  143 + } else if (v == 1) {
  144 + selectOrg.value = 1;
  145 + } else if (v == 2) {
  146 + selectDep.value = 2;
  147 + } else if (v == 3) {
  148 + selectPer.value = 3;
  149 + }
  150 + },
117 }, 151 },
118 }, 152 },
119 { 153 {
@@ -132,13 +166,22 @@ export const searchFormSchema: FormSchema[] = [ @@ -132,13 +166,22 @@ export const searchFormSchema: FormSchema[] = [
132 field: 'orderField', 166 field: 'orderField',
133 label: '', 167 label: '',
134 colProps: { span: 8 }, 168 colProps: { span: 8 },
135 - component: 'ApiSelect', 169 + component: 'Select',
136 componentProps: { 170 componentProps: {
137 - // api: async () => {  
138 - // const data = await screenLinkOrganizationGetApi();  
139 - // copyTransFun(data as any as any[]);  
140 - // return data;  
141 - // }, 171 + options: [
  172 + {
  173 + label: '公告',
  174 + value: 'NOTICE',
  175 + },
  176 + {
  177 + label: '会议',
  178 + value: 'MEETING',
  179 + },
  180 + {
  181 + label: '其他',
  182 + value: 'OTHER',
  183 + },
  184 + ],
142 }, 185 },
143 }, 186 },
144 ]; 187 ];
@@ -13,9 +13,20 @@ @@ -13,9 +13,20 @@
13 <TableAction 13 <TableAction
14 :actions="[ 14 :actions="[
15 { 15 {
  16 + label: '查看',
  17 + icon: 'clarity:note-edit-line',
  18 + onClick: handleView.bind(null, record),
  19 + // ifShow: (_action) => {
  20 + // return record.status == '已发布';
  21 + // },
  22 + },
  23 + {
16 label: '编辑', 24 label: '编辑',
17 icon: 'clarity:note-edit-line', 25 icon: 'clarity:note-edit-line',
18 onClick: handleEdit.bind(null, record), 26 onClick: handleEdit.bind(null, record),
  27 + // ifShow: (_action) => {
  28 + // return record.status == '草稿';
  29 + // },
19 }, 30 },
20 { 31 {
21 label: '删除', 32 label: '删除',
@@ -31,25 +42,29 @@ @@ -31,25 +42,29 @@
31 </template> 42 </template>
32 </BasicTable> 43 </BasicTable>
33 <NotifyManagerDrawer 44 <NotifyManagerDrawer
  45 + v-if="isJudgeStatus"
34 :getChildrenData="echoEditData" 46 :getChildrenData="echoEditData"
35 @register="registerDrawer" 47 @register="registerDrawer"
36 @success="handleSuccess" 48 @success="handleSuccess"
37 /> 49 />
  50 + <tableViewChild v-if="!isJudgeStatus" @register="registerDrawer" />
38 </div> 51 </div>
39 </template> 52 </template>
40 <script lang="ts"> 53 <script lang="ts">
41 - import { defineComponent, reactive } from 'vue'; 54 + import { defineComponent, reactive, ref } from 'vue';
42 import { BasicTable, useTable, TableAction } from '/@/components/Table'; 55 import { BasicTable, useTable, TableAction } from '/@/components/Table';
43 import { useDrawer } from '/@/components/Drawer'; 56 import { useDrawer } from '/@/components/Drawer';
44 import NotifyManagerDrawer from './useDrawer.vue'; 57 import NotifyManagerDrawer from './useDrawer.vue';
  58 + import tableViewChild from './viewDetailDrawer.vue';
45 import { columns, searchFormSchema } from './config.d'; 59 import { columns, searchFormSchema } from './config.d';
46 import { useMessage } from '/@/hooks/web/useMessage'; 60 import { useMessage } from '/@/hooks/web/useMessage';
47 import { notifyGetTableApi, notifyDeleteApi } from '/@/api/stationnotification/stationnotifyApi'; 61 import { notifyGetTableApi, notifyDeleteApi } from '/@/api/stationnotification/stationnotifyApi';
48 62
49 export default defineComponent({ 63 export default defineComponent({
50 name: 'index', 64 name: 'index',
51 - components: { BasicTable, NotifyManagerDrawer, TableAction }, 65 + components: { BasicTable, NotifyManagerDrawer, TableAction, tableViewChild },
52 setup() { 66 setup() {
  67 + let isJudgeStatus = ref(true);
53 let selectedRowKeys: Array<string> = []; 68 let selectedRowKeys: Array<string> = [];
54 let echoEditData = reactive({}); 69 let echoEditData = reactive({});
55 const [registerDrawer, { openDrawer }] = useDrawer(); 70 const [registerDrawer, { openDrawer }] = useDrawer();
@@ -81,6 +96,7 @@ @@ -81,6 +96,7 @@
81 openDrawer(true, { 96 openDrawer(true, {
82 isUpdate: false, 97 isUpdate: false,
83 }); 98 });
  99 + isJudgeStatus.value = true;
84 } 100 }
85 101
86 const useSelectionChange = () => { 102 const useSelectionChange = () => {
@@ -93,16 +109,22 @@ @@ -93,16 +109,22 @@
93 createMessage.success('删除成功'); 109 createMessage.success('删除成功');
94 reload(); 110 reload();
95 } 111 }
96 - 112 + const handleView = (record: Recordable) => {
  113 + openDrawer(true, {
  114 + record,
  115 + isUpdate: true,
  116 + });
  117 + isJudgeStatus.value = false;
  118 + };
97 function handleEdit(record: Recordable) { 119 function handleEdit(record: Recordable) {
98 openDrawer(true, { 120 openDrawer(true, {
99 record, 121 record,
100 isUpdate: true, 122 isUpdate: true,
101 }); 123 });
  124 + isJudgeStatus.value = true;
102 } 125 }
103 async function handleDelete(record: Recordable) { 126 async function handleDelete(record: Recordable) {
104 - console.log(record.id);  
105 - let ids = '1'; 127 + let ids = record.id;
106 await notifyDeleteApi(ids); 128 await notifyDeleteApi(ids);
107 createMessage.success('删除成功'); 129 createMessage.success('删除成功');
108 reload(); 130 reload();
@@ -111,6 +133,8 @@ @@ -111,6 +133,8 @@
111 reload(); 133 reload();
112 } 134 }
113 return { 135 return {
  136 + isJudgeStatus,
  137 + handleView,
114 useSelectionChange, 138 useSelectionChange,
115 echoEditData, 139 echoEditData,
116 registerTable, 140 registerTable,
@@ -18,24 +18,29 @@ @@ -18,24 +18,29 @@
18 </BasicDrawer> 18 </BasicDrawer>
19 </template> 19 </template>
20 <script lang="ts"> 20 <script lang="ts">
21 - import { defineComponent, ref, computed, unref } from 'vue'; 21 + import { defineComponent, ref, computed, unref, reactive, watch, onMounted } from 'vue';
22 import { Button } from '/@/components/Button'; 22 import { Button } from '/@/components/Button';
23 import { BasicForm, useForm } from '/@/components/Form'; 23 import { BasicForm, useForm } from '/@/components/Form';
24 - import { formSchema } from './config.d'; 24 + import { formSchema, selectAll, selectOrg, selectDep, selectPer, isDeptId } from './config.d';
25 import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; 25 import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
26 import { 26 import {
27 notifyAddDraftApi, 27 notifyAddDraftApi,
28 notifyAddLeaseApi, 28 notifyAddLeaseApi,
29 } from '/@/api/stationnotification/stationnotifyApi'; 29 } from '/@/api/stationnotification/stationnotifyApi';
30 import { useMessage } from '/@/hooks/web/useMessage'; 30 import { useMessage } from '/@/hooks/web/useMessage';
  31 + import { getOrganizationList } from '/@/api/system/system';
31 32
32 export default defineComponent({ 33 export default defineComponent({
33 name: 'ConfigDrawer', 34 name: 'ConfigDrawer',
34 components: { BasicDrawer, BasicForm, Button }, 35 components: { BasicDrawer, BasicForm, Button },
35 emits: ['success', 'register'], 36 emits: ['success', 'register'],
36 - setup() { 37 + setup(_, { emit }) {
37 const { createMessage } = useMessage(); 38 const { createMessage } = useMessage();
38 const isUpdate = ref(true); 39 const isUpdate = ref(true);
  40 + const pointArray = ref([]);
  41 + const isJudgeWherePoint = ref([]);
  42 + const newArray = ref([]);
  43 + let getAllData: any = reactive({});
39 const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({ 44 const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
40 labelWidth: 120, 45 labelWidth: 120,
41 schemas: formSchema, 46 schemas: formSchema,
@@ -59,32 +64,103 @@ @@ -59,32 +64,103 @@
59 closeDrawer(); 64 closeDrawer();
60 }; 65 };
61 66
  67 + watch([selectAll, selectOrg, selectDep, selectPer, isDeptId], (newV) => {
  68 + isJudgeWherePoint.value = newV;
  69 + });
  70 +
  71 + onMounted(() => {
  72 + getOrganizationList().then((res) => {
  73 + res.map((m) => {
  74 + if (m.children) {
  75 + m.children.map((m1) => {
  76 + newArray.value.push(m1.id);
  77 + });
  78 + }
  79 + });
  80 + });
  81 + });
  82 +
62 async function handleSend() { 83 async function handleSend() {
63 if (!unref(isUpdate)) { 84 if (!unref(isUpdate)) {
64 const values = await validate(); 85 const values = await validate();
65 - // saveForm = getFieldsValue();  
66 - await notifyAddLeaseApi(values); 86 + Object.assign(getAllData, values);
  87 + isJudgeWherePoint.value.forEach((f) => {
  88 + if (f == 0) {
  89 + pointArray.value = [];
  90 + } else if (f == 1) {
  91 + //组织
  92 + pointArray.value.push(getAllData.organizationId);
  93 + } else if (f == 2) {
  94 + //部门
  95 + let findDeptId = newArray.value.find((f) => {
  96 + return f == isJudgeWherePoint.value[4];
  97 + });
  98 + console.log(findDeptId);
  99 + pointArray.value.push(findDeptId);
  100 + } else if (f == 3) {
  101 + //个人
  102 + pointArray.value = [3];
  103 + }
  104 + });
  105 + getAllData.pointId = pointArray.value;
  106 + await notifyAddLeaseApi(getAllData);
67 createMessage.success('新增成功'); 107 createMessage.success('新增成功');
  108 + closeDrawer();
  109 + emit('success');
  110 + resetFields();
  111 + setTimeout(() => {
  112 + pointArray.value = [];
  113 + isJudgeWherePoint.value = [];
  114 + }, 1000);
68 } 115 }
69 if (unref(isUpdate)) { 116 if (unref(isUpdate)) {
70 const values = await validate(); 117 const values = await validate();
71 // saveForm = getFieldsValue(); 118 // saveForm = getFieldsValue();
72 await notifyAddLeaseApi(values); 119 await notifyAddLeaseApi(values);
73 createMessage.success('编辑成功'); 120 createMessage.success('编辑成功');
  121 + closeDrawer();
  122 + emit('success');
74 } 123 }
75 } 124 }
76 async function handleSubmit() { 125 async function handleSubmit() {
77 if (!unref(isUpdate)) { 126 if (!unref(isUpdate)) {
78 const values = await validate(); 127 const values = await validate();
79 - // saveForm = getFieldsValue();  
80 - await notifyAddDraftApi(values); 128 + Object.assign(getAllData, values);
  129 + isJudgeWherePoint.value.forEach((f) => {
  130 + if (f == 0) {
  131 + pointArray.value = [];
  132 + } else if (f == 1) {
  133 + //组织
  134 + pointArray.value.push(getAllData.organizationId);
  135 + } else if (f == 2) {
  136 + //部门
  137 + let findDeptId = newArray.value.find((f) => {
  138 + return f == isJudgeWherePoint.value[4];
  139 + });
  140 + pointArray.value.push(findDeptId);
  141 + } else if (f == 3) {
  142 + //个人
  143 + pointArray.value = [3];
  144 + }
  145 + });
  146 + getAllData.pointId = pointArray.value;
  147 + await notifyAddDraftApi(getAllData);
81 createMessage.success('新增成功'); 148 createMessage.success('新增成功');
  149 + closeDrawer();
  150 + emit('success');
  151 + resetFields();
  152 + setTimeout(() => {
  153 + pointArray.value = [];
  154 + isJudgeWherePoint.value = [];
  155 + }, 1000);
82 } 156 }
83 if (unref(isUpdate)) { 157 if (unref(isUpdate)) {
84 const values = await validate(); 158 const values = await validate();
85 // saveForm = getFieldsValue(); 159 // saveForm = getFieldsValue();
86 await notifyAddDraftApi(values); 160 await notifyAddDraftApi(values);
87 createMessage.success('编辑成功'); 161 createMessage.success('编辑成功');
  162 + closeDrawer();
  163 + emit('success');
88 } 164 }
89 } 165 }
90 return { 166 return {
  1 +<template>
  2 + <BasicDrawer
  3 + v-bind="$attrs"
  4 + @register="registerDrawer"
  5 + :showFooter="false"
  6 + :title="getTitle"
  7 + width="800px"
  8 + >
  9 + <PageWrapper title="我的通知详情">
  10 + <Description @register="register1" class="mt-4" />
  11 + </PageWrapper>
  12 + <BasicTable :columns="columns" :dataSource="tableData">
  13 + <span></span>
  14 + </BasicTable>
  15 + </BasicDrawer>
  16 +</template>
  17 +<script lang="ts">
  18 + import { defineComponent, ref, computed, unref } from 'vue';
  19 + import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
  20 + import { BasicTable } from '/@/components/Table';
  21 + import { Description, DescItem, useDescription } from '/@/components/Description/index';
  22 + import { PageWrapper } from '/@/components/Page';
  23 +
  24 + const schema: DescItem[] = [
  25 + {
  26 + field: 'title',
  27 + label: '标题',
  28 + },
  29 + {
  30 + field: 'content',
  31 + label: '内容',
  32 + },
  33 + {
  34 + field: 'senderName',
  35 + label: '发送者',
  36 + },
  37 + {
  38 + field: 'senderDate',
  39 + label: '发送时间',
  40 + },
  41 + {
  42 + field: 'type',
  43 + label: '类型',
  44 + render: (_, data) => {
  45 + return data.type === 'MEETING'
  46 + ? '公告'
  47 + : data.type === 'MEETING1'
  48 + ? '会议'
  49 + : data.type === 'MEETING2'
  50 + ? '其他'
  51 + : '';
  52 + },
  53 + },
  54 + ];
  55 +
  56 + export default defineComponent({
  57 + name: 'ConfigDrawer',
  58 + components: { BasicDrawer, BasicTable, Description, PageWrapper },
  59 + emits: ['success', 'register'],
  60 + setup() {
  61 + let tableData: [] = ref([]);
  62 + const columns: BasicColumn[] = [
  63 + {
  64 + title: '接收者',
  65 + dataIndex: 'senderName',
  66 + },
  67 + {
  68 + title: '阅读状态',
  69 + dataIndex: 'status',
  70 + },
  71 + {
  72 + title: '阅读时间',
  73 + dataIndex: 'createTime',
  74 + },
  75 + ];
  76 + const isUpdate = ref(true);
  77 + const [registerDrawer, { setDrawerProps }] = useDrawerInner(async (data) => {
  78 + setDrawerProps({ confirmLoading: false });
  79 + isUpdate.value = !!data?.isUpdate;
  80 + tableData.value.push(data.record);
  81 + });
  82 + const getTitle = computed(() => (!unref(isUpdate) ? '查看通知' : '查看通知'));
  83 + const [register1] = useDescription({
  84 + title: '详情',
  85 + bordered: false,
  86 + data: tableData,
  87 + schema: schema,
  88 + });
  89 + return {
  90 + register1,
  91 + tableData,
  92 + getTitle,
  93 + columns,
  94 + registerDrawer,
  95 + };
  96 + },
  97 + });
  98 +</script>