Commit fae0848e438cce4c2e045d24ea9fdbf80b82968e
Merge branch 'ft-dev' into 'main'
站内通知前端页面和接口联调完成 See merge request huang/yun-teng-iot-front!18
Showing
7 changed files
with
335 additions
and
57 deletions
@@ -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> |