diff --git a/src/components/Setting/components/History.vue b/src/components/Setting/components/History.vue index 344c5c6..b862d7a 100644 --- a/src/components/Setting/components/History.vue +++ b/src/components/Setting/components/History.vue @@ -2,7 +2,14 @@

消毒名称

-

操作

+

+ + + +

-
-

{{ item }}

-
-
详情
+ +
+

  {{ item }}

+
+
详情
+
-
+
@@ -105,6 +110,7 @@
返回
+ @@ -114,18 +120,35 @@ import Down from '@/assets/img/arrow/down.png' import Top from '@/assets/img/arrow/top.png' import Right from '@/assets/img/arrow/right.png' import Left from '@/assets/img/arrow/left.png' -import { useHistoryStore, useWebSocketStore } from '@/store' -import { getDetailInfoById } from '@/mock/command' +import ClearRecordByKeysModal from 'cpns/dialogs/ClearRecordByKeysModal' +import { useHistoryStore, useWebSocketStore, useSettingStore } from '@/store' +import { getDetailInfoById, exportDisinfectionRecordByKeyListJSON } from '@/mock/command' const showDetailVisible = ref(false) const historyStore = useHistoryStore() const webSocketStore = useWebSocketStore() +const settingStore = useSettingStore() +// 清除记录对话框 +const clearRecordByKeys = ref(null) +// 选中的数据 +const checkedItems = ref([]) // 历史数据列表 const historyDataList = computed(() => { return historyStore.historyDataList.sort((a, b) => b.localeCompare(a)); }); +// 条目操作 +function actionOperationExecute( action ) { + if ( 'export' === action ) { + settingStore.updateExportText('导出消毒记录中') + settingStore.updateExportLoading(true) + webSocketStore.sendCommandMsg(exportDisinfectionRecordByKeyListJSON(checkedItems.value)); + } else if ( 'delete' === action ) { + clearRecordByKeys.value.showDialog(); + } +} + const topContainer = () => { const ele = document.getElementById('set_device_container') ele.scrollTop = ele.scrollTop - 100 < 100 ? 0 : ele.scrollTop - 100 @@ -165,7 +188,29 @@ const showDetailModal = item => { }) } - + diff --git a/src/main.js b/src/main.js index 6c8267c..80c1db2 100644 --- a/src/main.js +++ b/src/main.js @@ -11,6 +11,10 @@ import { NumberKeyboard, Toast, Overlay, + Checkbox, + CheckboxGroup, + DropdownMenu, + DropdownItem } from 'vant' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' @@ -28,6 +32,10 @@ createApp(App) .use(TimePicker) .use(Field) .use(Overlay) + .use(Checkbox) + .use(CheckboxGroup) + .use(DropdownMenu) + .use(DropdownItem) .use(ElementPlus) .use(Toast) .use(store) diff --git a/src/mock/command.js b/src/mock/command.js index de2b1ea..fbb61bd 100644 --- a/src/mock/command.js +++ b/src/mock/command.js @@ -223,11 +223,24 @@ export const exportDisinfectionRecordJSON = { messageId: 'exportDisinfectionRecord', } +export const exportDisinfectionRecordByKeyListJSON = ( keys ) => ({ + command: 'exportDisinfectionRecord', + messageId: 'exportDisinfectionRecord', + keys, +}); + export const cleanDisinfectionRecordJSON = { command: 'cleanDisinfectionRecord', messageId: 'cleanDisinfectionRecord', } +export const cleanDisinfectionRecordByKeysJSON = ( keys ) => ({ + command: 'cleanDisinfectionRecord', + messageId: 'cleanDisinfectionRecord', + keys, + +}); + export const cleanUserBehaviorRecordJSON = { command: 'cleanUserBehaviorRecord', messageId: 'cleanUserBehaviorRecord',