Showing
9 changed files
with
83 additions
and
37 deletions
... | ... | @@ -16,7 +16,7 @@ VITE_PUBLIC_PATH = / |
16 | 16 | # VITE_PROXY = [["/api","http://localhost:8080/api"],["/thingskit-drawio","http://localhost:3000/"]] |
17 | 17 | VITE_PROXY = [["/api","https://dev.thingskit.com/api"],["/thingskit-drawio","http://localhost:3000/"]] |
18 | 18 | # VITE_PROXY = [["/api","http://121.37.251.8:8080/api"],["/thingskit-drawio","http://localhost:3000/"]] |
19 | -# VITE_PROXY = [["/api","http://192.168.10.111:8080/api"],["/thingskit-drawio","http://192.168.10.106:8080/api"]] | |
19 | +# VITE_PROXY = [["/api","http://192.168.10.136:8080/api"],["/thingskit-drawio","http://192.168.10.136:8080/api"]] | |
20 | 20 | |
21 | 21 | # 实时数据的ws地址 |
22 | 22 | # VITE_WEB_SOCKET = ws://localhost:8080/api/ws/plugins/telemetry?token= | ... | ... |
... | ... | @@ -16,6 +16,11 @@ |
16 | 16 | </Popconfirm> |
17 | 17 | </Authority> |
18 | 18 | </template> |
19 | + <template #remark="{ record }"> | |
20 | + <Tooltip :title="record.remark"> | |
21 | + <div class="truncate w-full">{{ record.remark }}</div> | |
22 | + </Tooltip> | |
23 | + </template> | |
19 | 24 | <template #action="{ record }"> |
20 | 25 | <TableAction |
21 | 26 | :actions="[ |
... | ... | @@ -51,11 +56,11 @@ |
51 | 56 | import EmailDetail from './EmailDetail.vue'; |
52 | 57 | import { useBatchDelete } from '/@/hooks/web/useBatchDelete'; |
53 | 58 | import { Authority } from '/@/components/Authority'; |
54 | - import { Popconfirm } from 'ant-design-vue'; | |
59 | + import { Popconfirm, Tooltip } from 'ant-design-vue'; | |
55 | 60 | |
56 | 61 | export default defineComponent({ |
57 | 62 | name: 'EmailLog', |
58 | - components: { EmailDetail, BasicTable, TableAction, Authority, Popconfirm }, | |
63 | + components: { EmailDetail, BasicTable, TableAction, Authority, Popconfirm, Tooltip }, | |
59 | 64 | setup() { |
60 | 65 | const [registerModal, { openModal }] = useModal(); |
61 | 66 | const [registerTable, { reload, setProps }] = useTable({ | ... | ... |
... | ... | @@ -16,6 +16,11 @@ |
16 | 16 | </Popconfirm> |
17 | 17 | </Authority> |
18 | 18 | </template> |
19 | + <template #remark="{ record }"> | |
20 | + <Tooltip :title="record.remark"> | |
21 | + <div class="truncate w-full">{{ record.remark }}</div> | |
22 | + </Tooltip> | |
23 | + </template> | |
19 | 24 | <template #action="{ record }"> |
20 | 25 | <TableAction |
21 | 26 | :actions="[ |
... | ... | @@ -45,7 +50,7 @@ |
45 | 50 | import { defineComponent, h, nextTick } from 'vue'; |
46 | 51 | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
47 | 52 | import { columns, searchFormSchema } from './sms.data'; |
48 | - import { Modal, Popconfirm } from 'ant-design-vue'; | |
53 | + import { Modal, Popconfirm, Tooltip } from 'ant-design-vue'; | |
49 | 54 | import { smsLogPage, deleteSmsLog } from '/@/api/message/records'; |
50 | 55 | import { JsonPreview } from '/@/components/CodeEditor'; |
51 | 56 | import { useBatchDelete } from '/@/hooks/web/useBatchDelete'; |
... | ... | @@ -53,7 +58,7 @@ |
53 | 58 | |
54 | 59 | export default defineComponent({ |
55 | 60 | name: 'SmsLog', |
56 | - components: { BasicTable, TableAction, Authority, Popconfirm }, | |
61 | + components: { BasicTable, TableAction, Authority, Popconfirm, Tooltip }, | |
57 | 62 | setup() { |
58 | 63 | const [registerTable, { reload, setProps }] = useTable({ |
59 | 64 | title: '短信发送列表', |
... | ... | @@ -86,7 +91,7 @@ |
86 | 91 | }); |
87 | 92 | function handleQuery(record: Recordable) { |
88 | 93 | Modal.info({ |
89 | - title: '当前配置', | |
94 | + title: '消息内容', | |
90 | 95 | width: 480, |
91 | 96 | centered: true, |
92 | 97 | maskClosable: true, | ... | ... |
... | ... | @@ -36,6 +36,14 @@ export const columns: BasicColumn[] = [ |
36 | 36 | width: 160, |
37 | 37 | }, |
38 | 38 | { |
39 | + title: '备注', | |
40 | + dataIndex: 'remark', | |
41 | + width: 120, | |
42 | + slots: { | |
43 | + customRender: 'remark', | |
44 | + }, | |
45 | + }, | |
46 | + { | |
39 | 47 | title: '发送时间', |
40 | 48 | dataIndex: 'sendTime', |
41 | 49 | width: 180, | ... | ... |
... | ... | @@ -14,6 +14,7 @@ |
14 | 14 | const props = defineProps<{ |
15 | 15 | id: string; |
16 | 16 | record: DataSource[]; |
17 | + panelName: string; | |
17 | 18 | }>(); |
18 | 19 | const { hasPermission } = usePermission(); |
19 | 20 | const dropMenuList = computed<DropMenu[]>(() => { |
... | ... | @@ -54,37 +55,40 @@ |
54 | 55 | </script> |
55 | 56 | |
56 | 57 | <template> |
57 | - <div class="flex justify-between w-full p-5"> | |
58 | - <div class="flex" :style="{ width: `calc(100% - 60px)` }"> | |
59 | - <div | |
60 | - v-for="(item, index) in props.record" | |
61 | - class="box-border truncate" | |
62 | - :style="{ width: `${100 / props.record.length}%` }" | |
63 | - :key="index" | |
64 | - > | |
65 | - <Tooltip :title="item.deviceName" placement="topLeft"> | |
66 | - <div class="flex p-1"> | |
67 | - <!-- <SvgIcon name="" prefix="iconfont" class="!fill-emerald-400" /> --> | |
68 | - <div class="truncate font-bold">{{ item.deviceRename || item.deviceName }}</div> | |
69 | - </div> | |
70 | - </Tooltip> | |
58 | + <div> | |
59 | + <div class="text-center pt-5 px-5 pb-3 font-bold text-lg">{{ props.panelName || '' }}</div> | |
60 | + <div class="flex justify-between w-full px-5 pb-5"> | |
61 | + <div class="flex" :style="{ width: `calc(100% - 60px)` }"> | |
62 | + <div | |
63 | + v-for="(item, index) in props.record" | |
64 | + class="box-border truncate" | |
65 | + :style="{ width: `${100 / props.record.length}%` }" | |
66 | + :key="index" | |
67 | + > | |
68 | + <Tooltip :title="item.deviceName" placement="topLeft"> | |
69 | + <div class="flex p-1"> | |
70 | + <!-- <SvgIcon name="" prefix="iconfont" class="!fill-emerald-400" /> --> | |
71 | + <div class="truncate font-bold">{{ item.deviceRename || item.deviceName }}</div> | |
72 | + </div> | |
73 | + </Tooltip> | |
74 | + </div> | |
75 | + </div> | |
76 | + <div class="flex items-center gap-5"> | |
77 | + <slot name="moreAction"></slot> | |
78 | + <Dropdown | |
79 | + v-if="dropMenuList.length" | |
80 | + :drop-menu-list="dropMenuList" | |
81 | + :trigger="['click']" | |
82 | + @menu-event="handleMenuEvent" | |
83 | + > | |
84 | + <Tooltip title="更多"> | |
85 | + <MoreOutlined | |
86 | + v-if="!getIsSharePage" | |
87 | + class="transform rotate-90 cursor-pointer w-4.5 h-4.5 text-lg" | |
88 | + /> | |
89 | + </Tooltip> | |
90 | + </Dropdown> | |
71 | 91 | </div> |
72 | - </div> | |
73 | - <div class="flex items-center gap-5"> | |
74 | - <slot name="moreAction"></slot> | |
75 | - <Dropdown | |
76 | - v-if="dropMenuList.length" | |
77 | - :drop-menu-list="dropMenuList" | |
78 | - :trigger="['click']" | |
79 | - @menu-event="handleMenuEvent" | |
80 | - > | |
81 | - <Tooltip title="更多"> | |
82 | - <MoreOutlined | |
83 | - v-if="!getIsSharePage" | |
84 | - class="transform rotate-90 cursor-pointer w-4.5 h-4.5 text-lg" | |
85 | - /> | |
86 | - </Tooltip> | |
87 | - </Dropdown> | |
88 | 92 | </div> |
89 | 93 | </div> |
90 | 94 | </template> | ... | ... |
... | ... | @@ -203,6 +203,21 @@ |
203 | 203 | }, |
204 | 204 | }); |
205 | 205 | |
206 | + if (options.length && options.at(0)?.value) { | |
207 | + const value = options.at(0)!.value; | |
208 | + getDeviceDataKey(value); | |
209 | + try { | |
210 | + deviceAttrs.value = (await getDeviceAttributes({ deviceId: value })) || []; | |
211 | + method.updateSchema({ | |
212 | + field: SchemaFiled.KEYS, | |
213 | + componentProps: { | |
214 | + options: unref(deviceAttrs).map((item) => ({ label: item, value: item })), | |
215 | + }, | |
216 | + }); | |
217 | + await method.setFieldsValue({ [SchemaFiled.DEVICE_ID]: value }); | |
218 | + } catch (error) {} | |
219 | + } | |
220 | + | |
206 | 221 | await handleModalOpen(); |
207 | 222 | }); |
208 | 223 | </script> | ... | ... |
... | ... | @@ -32,7 +32,7 @@ export const basicSchema: FormSchema[] = [ |
32 | 32 | field: BasicConfigField.NAME, |
33 | 33 | label: '组件名称', |
34 | 34 | component: 'Input', |
35 | - rules: [{ required: true, message: '组件名称为必填项' }], | |
35 | + // rules: [{ required: true, message: '组件名称为必填项' }], | |
36 | 36 | componentProps: { |
37 | 37 | placeholder: '请输入组件名称', |
38 | 38 | }, | ... | ... |