From dceb3305034065a82c5a13dc311fd9dd3d2c3a8f Mon Sep 17 00:00:00 2001 From: 23688nl <329261568@qq.com> Date: Thu, 20 Oct 2022 10:27:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4:=201.=E6=9D=83=E9=99=90?= =?UTF-8?q?=E8=AF=B4=E6=98=8Edoc=EF=BC=8C=20=E5=A2=9E=E5=8A=A0doc=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95;=202.=20=E7=9B=91=E6=8E=A7=E5=A4=A7=E5=B1=8F?= =?UTF-8?q?=20title=20=E5=A2=9E=E8=AE=BE=20=E9=85=8D=E7=BD=AE=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E8=AE=BE=E7=BD=AE=E5=8F=82=E6=95=B0(bigTitle);=203?= =?UTF-8?q?.=E5=B7=A6=E4=BE=A7=20=E8=8F=9C=E5=8D=95=E6=A0=8F=20=E4=B8=8B?= =?UTF-8?q?=E6=96=B9=E5=A2=9E=E5=8A=A0=20'=E9=80=80=E5=87=BA=E7=99=BB?= =?UTF-8?q?=E5=BD=95'=20=E6=93=8D=E4=BD=9C=EF=BC=8C=E5=BF=AB=E6=8D=B7?= =?UTF-8?q?=E9=80=80=E5=87=BA=EF=BC=814.=20=E4=BC=81=E4=B8=9A=E7=AB=AF=20?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=AF=A6=E6=83=85=20=E5=90=8C=E6=AD=A5(?= =?UTF-8?q?=E5=8E=BB=E9=99=A4=20=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8,=20?= =?UTF-8?q?=E6=9D=83=E9=99=90=E9=85=8D=E7=BD=AE=20=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=8C=89=E9=92=AE=E6=93=8D=E4=BD=9C=EF=BC=8C?= =?UTF-8?q?/doc/=E6=9D=83=E9=99=90=E8=AF=B4=E6=98=8E.md)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/权限说明.md | 30 +++ src/api/iot/projectTenant.js | 14 +- src/api/personal/device.js | 2 +- src/api/power/maintenance.js | 2 +- src/api/setting/config.js | 12 +- src/api/system/tenant.js | 10 +- src/assets/styles/sidebar.scss | 2 +- src/components/DialogTemplate/index.vue | 24 +- src/components/EDialogTableInput/index.js | 9 + src/components/EDialogTableInput/src/main.vue | 216 ++++++++++++++++++ src/components/EDynamicTable/index.js | 7 + src/components/EDynamicTable/src/main.vue | 169 ++++++++++++++ .../EDynamicTable/src/mixins/TableMixins.js | 147 ++++++++++++ src/layout/components/Sidebar/Logout.vue | 48 ++++ src/layout/components/Sidebar/index.vue | 4 +- src/store/modules/permission.js | 3 +- src/views/bigScreen/v3/index.vue | 65 +++--- src/views/index_v1.vue | 98 -------- src/views/index_v2.vue | 169 -------------- src/views/iot/alarm/type/index.vue | 139 +++++++---- src/views/iot/contacts/index.vue | 2 +- src/views/iot/library/index.vue | 1 + src/views/iot/project/index.vue | 22 +- src/views/iot/project/profile/details.vue | 2 +- src/views/iot/project/profile/spaceDevice.vue | 2 +- src/views/iot/project/profile/tenant.vue | 18 +- .../project/profileV2/EObjectContainer.vue | 9 +- .../iot/project/profileV2/EObjectSpace.vue | 6 +- .../project/profileV2/EObjectSpaceDevice.vue | 5 +- .../iot/project/profileV2/EObjectTenant.vue | 162 ++++++++----- .../iot/project/profileV2/EPrice/index.vue | 5 +- .../profileV2/EPrice/profile/timePicker.vue | 2 +- .../project/profileV2/ESceneManage/index.vue | 5 + .../SafetyTemplate/ELeakageCurrent.vue | 2 +- .../iot/region/profile/BuildingDevice.vue | 2 +- src/views/iot/region/profile/details.vue | 2 +- src/views/iot/video/camera/index.vue | 7 +- src/views/monitor/job/index.vue | 4 +- src/views/monitor/job/log.vue | 2 +- src/views/monitor/operlog/index.vue | 2 +- src/views/power/examine/index.vue | 2 + src/views/power/maintenance/index.vue | 1 + src/views/power/mywork/details.vue | 2 +- src/views/profile/attribute/attributeView.vue | 2 +- src/views/profile/attribute/groupView.vue | 2 +- .../profile/autocontrol/jobLog/index.vue | 2 +- src/views/system/attribute/index.vue | 2 +- src/views/system/config/index.vue | 2 +- src/views/system/dept/index.vue | 2 +- src/views/system/regionalism/index.vue | 2 +- src/views/system/role/index.vue | 2 + src/views/system/tenant/index.vue | 30 +-- src/views/system/tenant/profile/disDept.vue | 2 +- src/views/system/tenant/profile/disMenu.vue | 2 +- src/views/system/tenant/profile/disPost.vue | 2 +- src/views/system/tenant/profile/disRole.vue | 3 +- src/views/system/tenant/profile/disUser.vue | 4 +- .../system/tenant/profile/emailConfig.vue | 2 +- src/views/system/tenant/profile/emailTemp.vue | 2 +- src/views/system/tenant/profile/smsFirm.vue | 2 +- src/views/system/tenant/profile/smsTemp.vue | 2 +- src/views/system/tenant/profile/tsConfig.vue | 4 +- src/views/system/tenant/profile/tspolicy.vue | 4 +- .../system/tenant/registered/expandTemp.vue | 4 +- src/views/system/tenant/registered/index.vue | 10 +- src/views/system/user/index.vue | 1 + src/views/system/user/profile/userAvatar.vue | 2 +- src/views/systemIndex.vue | 2 +- .../tenant/device/profile/childDevice.vue | 2 +- src/views/tenant/project/index.vue | 3 +- 70 files changed, 1022 insertions(+), 514 deletions(-) create mode 100644 doc/权限说明.md create mode 100644 src/components/EDialogTableInput/index.js create mode 100644 src/components/EDialogTableInput/src/main.vue create mode 100644 src/components/EDynamicTable/index.js create mode 100644 src/components/EDynamicTable/src/main.vue create mode 100644 src/components/EDynamicTable/src/mixins/TableMixins.js create mode 100644 src/layout/components/Sidebar/Logout.vue delete mode 100644 src/views/index_v1.vue delete mode 100644 src/views/index_v2.vue diff --git a/doc/权限说明.md b/doc/权限说明.md new file mode 100644 index 00000000..4740c64a --- /dev/null +++ b/doc/权限说明.md @@ -0,0 +1,30 @@ +## 权限设置方式 + +* v-hasPermi="['iot:project:add']" + +* 组件添加 上述代码 + +* 菜单管理 添加 按钮菜单 --> 赋予用户权限(超级管理员默认拥有所有权限) --> 刷新加载 + + +#### 项目详情 按钮权限 + +project:tenant:add --- 项目-租户(用户)-新增 +project:tenant:relieve --- 项目-租户(用户)-解除 + +project:space:add --- 项目-空间-新增 +project:space:remove --- 项目-空间-删除 +project:space:edit --- 项目-空间-编辑 +project:space:device --- 项目-空间-设备管理 +project:device:add --- 项目-空间-设备-添加 +project:device:relieve --- 项目-空间-设备-删除 + +project:price:add --- 项目-能源-合同-删除 +project:price:edit --- 项目-能源-合同-编辑 +project:price:remove --- 项目-能源-合同-删除 + +project:scene:add --- 项目-场景-新增 +project:scene:edit --- 项目-场景-编辑 +project:scene:remove --- 项目-场景-删除 +project:scene:run --- 项目-场景-执行一次 +project:scene:status --- 项目-场景-禁用/启用 \ No newline at end of file diff --git a/src/api/iot/projectTenant.js b/src/api/iot/projectTenant.js index ed50a6ce..473672be 100644 --- a/src/api/iot/projectTenant.js +++ b/src/api/iot/projectTenant.js @@ -1,6 +1,6 @@ import request from '@/utils/request' -// 查询项目租户关系列表 +// 查询项目用户关系列表 export function listProject_tenant(query) { return request({ url: '/iot/project_tenant/list', @@ -9,7 +9,7 @@ export function listProject_tenant(query) { }) } -// 查询项目租户关系详细 +// 查询项目用户关系详细 export function getProject_tenant(projectId) { return request({ url: '/iot/project_tenant/' + projectId, @@ -17,7 +17,7 @@ export function getProject_tenant(projectId) { }) } -// 新增项目租户关系 +// 新增项目用户关系 export function addProject_tenant(data) { return request({ url: '/iot/project_tenant', @@ -26,7 +26,7 @@ export function addProject_tenant(data) { }) } -// 修改项目租户关系 +// 修改项目用户关系 export function updateProject_tenant(data) { return request({ url: '/iot/project_tenant', @@ -35,7 +35,7 @@ export function updateProject_tenant(data) { }) } -// 删除项目租户关系 +// 删除项目用户关系 export function delProject_tenant(projectId, tenantId) { let reqUrl = tenantId ? '/' + tenantId : '' return request({ @@ -44,7 +44,7 @@ export function delProject_tenant(projectId, tenantId) { }) } -// 导出项目租户关系 +// 导出项目用户关系 export function exportProject_tenant(query) { return request({ url: '/iot/project_tenant/export', @@ -53,7 +53,7 @@ export function exportProject_tenant(query) { }) } -// 查询没有被绑定的租户 +// 查询没有被绑定的用户 export function listUserdByProjectId(query) { return request({ url: '/iot/project_tenant/not-used', diff --git a/src/api/personal/device.js b/src/api/personal/device.js index a7a4cea7..fcf0fdd2 100644 --- a/src/api/personal/device.js +++ b/src/api/personal/device.js @@ -1,6 +1,6 @@ import request from '@/utils/request' -// 查询项目租户关系详细 +// 查询项目用户关系详细 export function getOneselfInfo(deviceKey) { return request({ url: '/iot/device/' + deviceKey, diff --git a/src/api/power/maintenance.js b/src/api/power/maintenance.js index 40785fc5..f05a1054 100644 --- a/src/api/power/maintenance.js +++ b/src/api/power/maintenance.js @@ -62,7 +62,7 @@ export function exportMaintenance(query) { } -// 获取租户下用户 +// 获取用户下用户 export function getTenantHandleUser(query) { return request({ url: '/system/user/list', diff --git a/src/api/setting/config.js b/src/api/setting/config.js index 4e974526..e1556a34 100644 --- a/src/api/setting/config.js +++ b/src/api/setting/config.js @@ -1,7 +1,7 @@ import request from '@/utils/request' import { preventRepeatFu } from "@/utils/hciot"; -// 查询租户设置列表 +// 查询用户设置列表 export function listConfig(query) { return request({ url: '/system/tconfig/list', @@ -10,7 +10,7 @@ export function listConfig(query) { }) } -// 查询租户设置详细 +// 查询用户设置详细 export function getConfig(configId) { return request({ url: '/system/tconfig/' + configId, @@ -18,7 +18,7 @@ export function getConfig(configId) { }) } -// 新增租户设置 +// 新增用户设置 export function addConfig(data) { preventRepeatFu(true) return request({ @@ -28,7 +28,7 @@ export function addConfig(data) { }) } -// 修改租户设置 +// 修改用户设置 export function updateConfig(data) { preventRepeatFu(true) return request({ @@ -38,7 +38,7 @@ export function updateConfig(data) { }) } -// 删除租户设置 +// 删除用户设置 export function delConfig(configId) { return request({ url: '/system/tconfig/' + configId, @@ -46,7 +46,7 @@ export function delConfig(configId) { }) } -// 查询租户设置列表map +// 查询用户设置列表map export function mlistConfig(query) { return request({ url: '/system/tconfig/mlist', diff --git a/src/api/system/tenant.js b/src/api/system/tenant.js index 080ed161..5d1ab831 100644 --- a/src/api/system/tenant.js +++ b/src/api/system/tenant.js @@ -1,7 +1,7 @@ import request from '@/utils/request' import { preventRepeatFu } from "@/utils/hciot"; -// 查询企业租户列表 +// 查询企业用户列表 export function listTenant(query) { return request({ url: '/system/tenant/list', @@ -10,7 +10,7 @@ export function listTenant(query) { }) } -// 查询企业租户详细 +// 查询企业用户详细 export function getTenant(tenantId) { return request({ url: '/system/tenant/' + tenantId, @@ -18,7 +18,7 @@ export function getTenant(tenantId) { }) } -// 新增企业租户 +// 新增企业用户 export function addTenant(data) { preventRepeatFu(true) return request({ @@ -28,7 +28,7 @@ export function addTenant(data) { }) } -// 修改企业租户 +// 修改企业用户 export function updateTenant(data) { preventRepeatFu(true) return request({ @@ -38,7 +38,7 @@ export function updateTenant(data) { }) } -// 删除企业租户 +// 删除企业用户 export function delTenant(tenantId) { return request({ url: '/system/tenant/' + tenantId, diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss index 2afccfe3..13822fb0 100644 --- a/src/assets/styles/sidebar.scss +++ b/src/assets/styles/sidebar.scss @@ -42,7 +42,7 @@ &.has-logo { .el-scrollbar { - height: calc(100% - 50px); + height: calc(100% - 90px); } } diff --git a/src/components/DialogTemplate/index.vue b/src/components/DialogTemplate/index.vue index f2ce253c..a176fd3a 100644 --- a/src/components/DialogTemplate/index.vue +++ b/src/components/DialogTemplate/index.vue @@ -1,6 +1,6 @@ @@ -32,9 +33,10 @@ import { mapGetters, mapState } from "vuex"; import Logo from "./Logo"; import SidebarItem from "./SidebarItem"; import variables from "@/assets/styles/variables.scss"; +import Logout from './Logout' export default { - components: { SidebarItem, Logo }, + components: { SidebarItem, Logo, Logout }, computed: { ...mapState(["settings"]), ...mapGetters(["sidebarRouters", "sidebar"]), diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js index 32869a53..663c19db 100644 --- a/src/store/modules/permission.js +++ b/src/store/modules/permission.js @@ -28,7 +28,6 @@ const permission = { GetAttribute({ commit }) { return new Promise(resolve => { // 向后端请求路由数据 - console.log('請求--GetAttribute') getAttributeConfig().then(res => { commit('SET_ATTRIBUTE', res.data) }) @@ -38,7 +37,7 @@ const permission = { SetAttributeByKey({ commit, state }, params) { return new Promise(resolve => { // 向后端请求路由数据 - console.log('請求--GetAttribute') + console.log('eeee---', Object.assign(state.attribute, params)); commit('SET_ATTRIBUTE', Object.assign(state.attribute, params)) }) }, diff --git a/src/views/bigScreen/v3/index.vue b/src/views/bigScreen/v3/index.vue index 10c435fd..1937ee1b 100644 --- a/src/views/bigScreen/v3/index.vue +++ b/src/views/bigScreen/v3/index.vue @@ -13,7 +13,7 @@
-
+
@@ -139,7 +139,7 @@ import MapWrapPersonal from "./profile/personalCenter"; import { bigWebSocketUrl } from "@/config/env"; import Cookies from "js-cookie"; import EProjectCensusTemp from "./profile/EProjectCensusTemp"; -import NotificationAlarm from './profile/NotificationAlarm'; +import NotificationAlarm from "./profile/NotificationAlarm"; import { getWarningAnalysis, homeCount, bigScreenProjectList } from "@/api/app"; import { @@ -171,7 +171,7 @@ export default { projectList: [], projectId: null, regionalismId: null, - regionalismLabel: '', + regionalismLabel: "", fullscreen: false, thisScrollTopY: 0, userLoginType: "", @@ -200,24 +200,31 @@ export default { this.resize_window(); }); }, + computed: { + attributeBigTitle() { + return this.$store.getters.attributeInfo["bigTitle"] || this.title; + }, + }, watch: { // $route(to, from) { - // if (from.fullPath === "/index") { - // document.getElementById("con_lf_top_div").style.background = "#fff"; - // document.getElementById("con_lf_top_div").style.height = - // "calc(100vh - 84px)"; - // document.getElementById("con_lf_top_div").style.minHeight = - // "calc(100vh - 84px)"; - // } else if (to.fullPath === "/index") { - // document.getElementById("con_lf_top_div").style.background = "#010e45"; - // document.getElementById("con_lf_top_div").style.height = - // "calc(100vh - 84px)"; - // document.getElementById("con_lf_top_div").style.minHeight = - // "calc(100vh - 84px)"; - // } + // if (from.fullPath === "/index") { + // document.getElementById("con_lf_top_div").style.background = "#fff"; + // document.getElementById("con_lf_top_div").style.height = + // "calc(100vh - 84px)"; + // document.getElementById("con_lf_top_div").style.minHeight = + // "calc(100vh - 84px)"; + // } else if (to.fullPath === "/index") { + // document.getElementById("con_lf_top_div").style.background = "#010e45"; + // document.getElementById("con_lf_top_div").style.height = + // "calc(100vh - 84px)"; + // document.getElementById("con_lf_top_div").style.minHeight = + // "calc(100vh - 84px)"; + // } + // this.title = this.$store.getters.attributeInfo['bigTitle'] || '智慧能源综合管理系统'; // }, }, created() { + // this.title = this.$store.getters.attributeInfo['bigTitle'] || '智慧能源综合管理系统'; document.getElementById("app").style.background = "#010e45"; this.getProjectList(); this.warningAnalysisList(); @@ -247,13 +254,14 @@ export default { }); }, getGuid() { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function( - c - ) { - var r = (Math.random() * 16) | 0, - v = c == "x" ? r : (r & 0x3) | 0x8; - return v.toString(16); - }); + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace( + /[xy]/g, + function (c) { + var r = (Math.random() * 16) | 0, + v = c == "x" ? r : (r & 0x3) | 0x8; + return v.toString(16); + } + ); }, // 创建一个ws 监听获取报警实时数据 connection() { @@ -264,7 +272,9 @@ export default { return; } this.stompClient = new WebSocket( - `${bigWebSocketUrl}/${this.getGuid()}/${this.$store.getters.userId}/${this.projectId || -1}` + `${bigWebSocketUrl}/${this.getGuid()}/${this.$store.getters.userId}/${ + this.projectId || -1 + }` ); this.stompClient.onmessage = this.socket_onmsg; this.stompClient.onclose = this.socket_onclose; @@ -341,7 +351,7 @@ export default { if (this.$store.getters.userType !== "PERSONAL") { bigScreenProjectList({ // regionalismId: this.regionalismId, - projectAddress: this.regionalismLabel + projectAddress: this.regionalismLabel, }).then((response) => { this.projectList = response.data; }); @@ -377,7 +387,7 @@ export default { }, }, destroyed() { - this.closeWebscoket() + this.closeWebscoket(); document.getElementById("app").style.background = "#fff"; document.getElementById("con_lf_top_div").style.background = "#fff"; document.getElementById("con_lf_top_div").style.overflow = "auto"; @@ -460,4 +470,3 @@ export default { margin-left: -960px; } - diff --git a/src/views/index_v1.vue b/src/views/index_v1.vue deleted file mode 100644 index d2d2ec63..00000000 --- a/src/views/index_v1.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - - - diff --git a/src/views/index_v2.vue b/src/views/index_v2.vue deleted file mode 100644 index 3c339d60..00000000 --- a/src/views/index_v2.vue +++ /dev/null @@ -1,169 +0,0 @@ - - - diff --git a/src/views/iot/alarm/type/index.vue b/src/views/iot/alarm/type/index.vue index 5adc8583..b1294328 100644 --- a/src/views/iot/alarm/type/index.vue +++ b/src/views/iot/alarm/type/index.vue @@ -1,6 +1,11 @@ @@ -230,17 +273,19 @@ import { getAlarmType, delAlarmType, addAlarmType, - updateAlarmType + updateAlarmType, } from "@/api/alarm/alarmType"; import { listDeviceTypeList } from "@/api/iot/device"; import { listUser } from "@/api/system/user"; +import DialogTemplate from "@/components/DialogTemplate/index"; // import { selectedProdmodel } from "@/api/device/prodmodel"; const alarmDivideType = { ALARM: "报警", - WARNING: "预警" + WARNING: "预警", }; export default { name: "AlarmType", + components: { DialogTemplate }, data() { return { alarmDivideType, @@ -268,33 +313,33 @@ export default { typeName: undefined, tag: undefined, deviceType: "", - alarmDivide: '', + alarmDivide: "", orderByColumn: "", - isAsc: "desc" + isAsc: "desc", }, // 表单参数 form: {}, // 表单校验 rules: { typeName: [ - { required: true, message: "类型名称不能为空", trigger: "blur" } + { required: true, message: "类型名称不能为空", trigger: "blur" }, ], - tag: [{ required: true, message: "告警标签不能为空", trigger: "blur" }] + tag: [{ required: true, message: "告警标签不能为空", trigger: "blur" }], }, tenantId: "", deviceTypeList: [], - userList: [] + userList: [], }; }, created() { this.tenantId = this.$store.getters.tenantId; this.getList(); - this.getUserList() + this.getUserList(); this.getDeviceTypeList(); }, methods: { getUserList() { - listUser().then(response => { + listUser().then((response) => { this.userList = response.rows; }); }, @@ -308,14 +353,14 @@ export default { }, // 查询设备类型列表 getDeviceTypeList() { - listDeviceTypeList().then(response => { + listDeviceTypeList().then((response) => { this.deviceTypeList = response.data; }); }, sortChange(column) { const sort = { isAsc: column.order === "descending" ? "desc" : "asc", - orderByColumn: column.prop + orderByColumn: column.prop, }; this.queryParams = Object.assign(this.queryParams, sort); this.handleQuery(); @@ -329,7 +374,7 @@ export default { /** 查询告警类型列表 */ getList() { this.loading = true; - listAlarmType(this.queryParams).then(response => { + listAlarmType(this.queryParams).then((response) => { this.alarmTypeList = response.rows; this.total = response.total; this.loading = false; @@ -348,7 +393,7 @@ export default { typeName: undefined, alarmDivide: "ALARM", status: "1", - tag: "" + tag: "", }; this.resetForm("form"); }, @@ -364,7 +409,7 @@ export default { }, // 多选框选中数据 handleSelectionChange(selection) { - this.ids = selection.map(item => item.typeId); + this.ids = selection.map((item) => item.typeId); this.single = selection.length != 1; this.multiple = !selection.length; }, @@ -380,7 +425,7 @@ export default { this.reset(); this.getDeviceTypeList(); const typeId = row.typeId || this.ids; - getAlarmType(typeId).then(response => { + getAlarmType(typeId).then((response) => { this.form = response.data; this.open = true; this.form.status = response.data.status.toString(); @@ -388,11 +433,11 @@ export default { }); }, /** 提交按钮 */ - submitForm: function() { - this.$refs["form"].validate(valid => { + submitForm: function () { + this.$refs["form"].validate((valid) => { if (valid) { if (this.form.typeId != undefined) { - updateAlarmType(this.form).then(response => { + updateAlarmType(this.form).then((response) => { if (response.code === 200) { this.msgSuccess("修改成功"); this.open = false; @@ -400,7 +445,7 @@ export default { } }); } else { - addAlarmType(this.form).then(response => { + addAlarmType(this.form).then((response) => { if (response.code === 200) { this.msgSuccess("新增成功"); this.open = false; @@ -421,29 +466,29 @@ export default { { confirmButtonText: "确定", cancelButtonText: "取消", - type: "warning" + type: "warning", } ) - .then(function() { + .then(function () { return delAlarmType(typeIds); }) .then(() => { this.getList(); this.msgSuccess("删除成功"); }) - .catch(function() {}); + .catch(function () {}); }, /** 导出按钮操作 */ handleExport() { this.download( "iot/alarmType/export", { - ...this.queryParams + ...this.queryParams, }, `iot_alarmType.xlsx` ); - } - } + }, + }, };