diff --git a/index.html b/index.html index e2c5d74..11aa1d5 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,7 @@ + 物联网管理平台 @@ -63,7 +64,7 @@ - + (); const activeNames = ref([]); const deviceTypeOptions = ref([]); //设备类型 const enabledDeptOptions = ref(); - +const debounceTimer = ref(null) // 用于防抖的定时器 const initData: PageData<'', deviceQuery> = { queryParams: { pageNum: 1, @@ -107,7 +108,8 @@ const initData: PageData<'', deviceQuery> = { groupId: '', deviceType: '', startTime: '', - endTime: '' + endTime: '', + content:"" }, rules: undefined, form: '' @@ -166,7 +168,15 @@ const handleNodeClick = (data: any) => { queryParams.value.groupId = data.id; handleQuery(); }; - +const handleInput = () => { + if (debounceTimer.value) { + clearTimeout(debounceTimer.value) + } + // 300ms后执行查询(避免输入过程中频繁调用接口) + debounceTimer.value = setTimeout(() => { + handleQuery() // 调用查询接口的方法 + }, 300) +}; /** 搜索按钮操作 */ const handleQuery = () => { queryParams.value.pageNum = 1; @@ -211,23 +221,34 @@ const getList = async () => { /** 查询部结构 */ const getDeptTree = async () => { const res = await api.devicegroupList(''); - const allDeviceOption = { + const allDeviceOption = { id: '', groupName: '全部设备', - disabled: false, - children: [] + disabled: false, + children: [] }; deptOptions.value = [allDeviceOption, ...res.data] enabledDeptOptions.value = filterDisabledDept(res.data); }; - +/** 导出按钮操作 */ +const handleExport = () => { + proxy?.download( + '/api/device/export', + { + ...queryParams.value + }, + `指令下发记录${new Date().getTime()}.xlsx`, + 'get' + ); +}; diff --git a/src/views/controlCenter/historyjectory/trackplayback.vue b/src/views/controlCenter/historyjectory/trackplayback.vue new file mode 100644 index 0000000..55b9b70 --- /dev/null +++ b/src/views/controlCenter/historyjectory/trackplayback.vue @@ -0,0 +1,449 @@ + + + + + diff --git a/src/views/equipmentAlarmRecord/index.vue b/src/views/equipmentAlarmRecord/index.vue index 988df46..f048fb7 100644 --- a/src/views/equipmentAlarmRecord/index.vue +++ b/src/views/equipmentAlarmRecord/index.vue @@ -4,19 +4,41 @@ :leave-active-class="proxy?.animate.searchAnimate.leave">
- + + {{ isListView ? '卡片显示' : '卡片显示' }} + + + {{ !isListView ? '列表显示' : '列表显示' }} + + - - + + + + - - + + + + + + + + - - + + + + + + + + 搜索 @@ -28,184 +50,187 @@ - - - - - - - - - - - - - - - - - - - - - - +
+
+ + + + + + + + + + + + + + + + + + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/src/views/equipmentManagement/deviceType/index.vue b/src/views/equipmentManagement/deviceType/index.vue index ffbd5ba..ee12015 100644 --- a/src/views/equipmentManagement/deviceType/index.vue +++ b/src/views/equipmentManagement/deviceType/index.vue @@ -42,7 +42,8 @@ @@ -97,9 +98,15 @@ - + - + + + + + @@ -180,7 +187,8 @@ const queryFormRef = ref>(); const userFormRef = ref>(); const formDialogRef = ref>(); const loadingIng = ref(false) -const modelDictionaryOptions = ref([]); +const appmodelDictionaryOptions = ref([]); +const pcmodelDictionaryOptions = ref([]); const dialog = reactive({ visible: false, title: '' @@ -237,11 +245,11 @@ const getList = async () => { }; const getDict = async () => { const res = await getDicts('app_model_dictionary'); - modelDictionaryOptions.value = res.data; + appmodelDictionaryOptions.value = res.data; } const pcgetDict = async () => { const res = await getDicts('pc_model_dictionary'); - modelDictionaryOptions.value = res.data; + pcmodelDictionaryOptions.value = res.data; } /** 搜索按钮操作 */ const handleQuery = () => { @@ -321,7 +329,9 @@ const submitForm = () => { try { const payload = { ...form.value, - modelDictionary: form.value.modelDictionary, + appModelDictionary: form.value.modelDictionary, + pcModelDictionary:form.value.modelDictionary, + locateMode: Number(form.value.locateMode), communicationMode: Number(form.value.communicationMode) };