diff --git a/src/assets/img/aiaf-design/cheliu.png b/src/assets/img/aiaf-design/cheliu.png new file mode 100644 index 00000000..82b2a0ef Binary files /dev/null and b/src/assets/img/aiaf-design/cheliu.png differ diff --git a/src/assets/img/aiaf-design/gongdan.png b/src/assets/img/aiaf-design/gongdan.png new file mode 100644 index 00000000..f3194a66 Binary files /dev/null and b/src/assets/img/aiaf-design/gongdan.png differ diff --git a/src/assets/img/aiaf-design/index.png b/src/assets/img/aiaf-design/index.png new file mode 100644 index 00000000..750bfd70 Binary files /dev/null and b/src/assets/img/aiaf-design/index.png differ diff --git a/src/assets/img/aiaf-design/renliu.png b/src/assets/img/aiaf-design/renliu.png new file mode 100644 index 00000000..a55cfcd3 Binary files /dev/null and b/src/assets/img/aiaf-design/renliu.png differ diff --git a/src/assets/img/aiaf-design/shebei-chongdianzhuang.png b/src/assets/img/aiaf-design/shebei-chongdianzhuang.png new file mode 100644 index 00000000..b3f75904 Binary files /dev/null and b/src/assets/img/aiaf-design/shebei-chongdianzhuang.png differ diff --git a/src/assets/img/aiaf-design/shebei-denggan.png b/src/assets/img/aiaf-design/shebei-denggan.png new file mode 100644 index 00000000..cd0ff822 Binary files /dev/null and b/src/assets/img/aiaf-design/shebei-denggan.png differ diff --git a/src/assets/img/aiaf-design/shebei-fabu.png b/src/assets/img/aiaf-design/shebei-fabu.png new file mode 100644 index 00000000..a3e83839 Binary files /dev/null and b/src/assets/img/aiaf-design/shebei-fabu.png differ diff --git a/src/assets/img/aiaf-design/shebei-jiankong.png b/src/assets/img/aiaf-design/shebei-jiankong.png new file mode 100644 index 00000000..681086d6 Binary files /dev/null and b/src/assets/img/aiaf-design/shebei-jiankong.png differ diff --git a/src/assets/img/aiaf-design/shebei-jinggai.png b/src/assets/img/aiaf-design/shebei-jinggai.png new file mode 100644 index 00000000..152b3031 Binary files /dev/null and b/src/assets/img/aiaf-design/shebei-jinggai.png differ diff --git a/src/assets/img/aiaf-design/shebei-kakou.png b/src/assets/img/aiaf-design/shebei-kakou.png new file mode 100644 index 00000000..3407f24c Binary files /dev/null and b/src/assets/img/aiaf-design/shebei-kakou.png differ diff --git a/src/assets/img/aiaf-design/shebei-laoren.png b/src/assets/img/aiaf-design/shebei-laoren.png new file mode 100644 index 00000000..19ace841 Binary files /dev/null and b/src/assets/img/aiaf-design/shebei-laoren.png differ diff --git a/src/assets/img/aiaf-design/shebei-menjin.png b/src/assets/img/aiaf-design/shebei-menjin.png new file mode 100644 index 00000000..dbfd8b59 Binary files /dev/null and b/src/assets/img/aiaf-design/shebei-menjin.png differ diff --git a/src/assets/img/aiaf-design/shebei.png b/src/assets/img/aiaf-design/shebei.png new file mode 100644 index 00000000..a139b1df Binary files /dev/null and b/src/assets/img/aiaf-design/shebei.png differ diff --git a/src/assets/img/aiaf-design/yujing-alert.png b/src/assets/img/aiaf-design/yujing-alert.png new file mode 100644 index 00000000..f32209f7 Binary files /dev/null and b/src/assets/img/aiaf-design/yujing-alert.png differ diff --git a/src/assets/img/aiaf-design/yujing.png b/src/assets/img/aiaf-design/yujing.png new file mode 100644 index 00000000..7c6769b3 Binary files /dev/null and b/src/assets/img/aiaf-design/yujing.png differ diff --git a/src/assets/scss/modules/ai/index.scss b/src/assets/scss/modules/ai/index.scss new file mode 100644 index 00000000..728f9b6d --- /dev/null +++ b/src/assets/scss/modules/ai/index.scss @@ -0,0 +1,42 @@ +@import "../../c/config"; +@import "../../c/function"; + +.m-design { + img { + display: block; + width: 100%; + } +} + +.m-sidebar { + position: fixed; + right: 0; + top: 50%; + transform: translateY(-50%); + width: 100px; + .wrap { + background-color: rgba(#037, 0.6); + transform: translateX(50px); + transition: all ease 0.3s; + cursor: pointer; + border-radius: 4px; + box-shadow: 0 0 10px 1px #fff; + &:hover { + transform: translateX(0); + background-color: rgba(#037, 0.9); + } + .nav { + color: rgba(#fff, 0.8); + text-align: center; + font-size: 14px; + line-height: 40px; + &:hover { + color: #fff; + } + &.z-on { + color: #ffa; + font-weight: bold; + } + } + } +} diff --git a/src/router/index.js b/src/router/index.js index 809d5ec8..e278ad84 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -282,6 +282,44 @@ router.beforeEach((to, from, next) => { url: "visual/heart/index", children: [], }, + // { + // icon: "icon-setting", + // id: "44rq22222q2222", + // name: "AI安防", + // // url: "visual/basicinfo/basicInfoMain", + // children: [ + // { + // url: "/visual/ai/index", + // name: "AI安防", + // id: "5feawfwa111111efwa57", + // }, + // { + // url: "/visual/ai/renliu", + // name: "人流数据", + // id: "5fwaefwae222112fawef58", + // }, + // { + // url: "/visual/ai/cheliu", + // name: "车流数据", + // id: "erawerwecsxefwaw", + // }, + // { + // url: "/visual/ai/shebei", + // name: "设备数据", + // id: "zfzffewaf", + // }, + // { + // url: "/visual/ai/gongdan", + // name: "工单数据", + // id: "fewafwafewaefddd", + // }, + // { + // url: "/visual/ai/yujing", + // name: "预警事件", + // id: "545345fdsfs", + // }, + // ], + // }, ]; fnAddDynamicMenuRoutes2(window.SITE_CONFIG["menuShujuList"]); diff --git a/src/views/modules/base/community/communityTable.vue b/src/views/modules/base/community/communityTable.vue index 04007c1e..6f79fe9f 100644 --- a/src/views/modules/base/community/communityTable.vue +++ b/src/views/modules/base/community/communityTable.vue @@ -109,12 +109,18 @@
- + style="width: 100%" + @select-all="selectAll" + @selection-change="selectionChange"> + + @@ -173,6 +179,16 @@ :total="total">
+ +
+ 全选 + 删除 +
@@ -210,11 +226,14 @@ export default { pageSize: 20, pageNo: 0, tableLoading: true, + selAllFlag: false, + isIndeterminate: false,//复选框的不确定状态 agencyObj: {},//树所选的组织对象 ownerName: '', ownerPhone: '', tableData: [], + selection: [], //form相关 formShow: false, @@ -244,7 +263,61 @@ export default { ...mapGetters(['clientHeight']) }, methods: { + handleSelectAll (selectAllFlag) { + this.$refs.ref_table.clearSelection(); + if (selectAllFlag) { + this.tableData.forEach(row => { + this.$refs.ref_table.toggleRowSelection(row); + }); + } + }, + deleteBatch () { + if (this.selection.length > 0) { + this.$confirm("确认删除选择的小区?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) + .then(() => { + this.deleteCommunityBatch() + }) + .catch(err => { + if (err == "cancel") { + // this.$message({ + // type: "info", + // message: "已取消删除" + // }); + } + + }); + } else { + this.$message.warning('请先选择要删除的小区') + } + }, + selectAll (selection) { + this.selection = selection + if (selection.length > 0) { + this.selAllFlag = true + } else { + this.selAllFlag = false + } + + }, + selectionChange (selection) { + this.selection = selection + + if (selection.length === this.tableData.length) { + this.selAllFlag = true + this.isIndeterminate = false + } else if (selection.length > 0) { + this.selAllFlag = false + this.isIndeterminate = true + } else { + this.selAllFlag = false + this.isIndeterminate = false + } + }, handleSearch () { this.loadTable() }, @@ -339,6 +412,26 @@ export default { }); }, + async deleteCommunityBatch () { + const url = "/gov/org/neighborhood/neighborhooddel" + + let params = { + neighborHoodId: row.neighborHoodId + } + + const { data, code, msg } = await requestPost(url, params) + + if (code === 0) { + this.$message({ + type: "success", + message: "删除成功" + }); + this.$emit('refreshTree') + this.loadTable() + } else { + this.$message.error(msg) + } + }, async deleteCommunity (row) { const url = "/gov/org/neighborhood/neighborhooddel" @@ -610,6 +703,12 @@ export default { .div_table { margin-top: 20px; + position: relative; +} +.div_del { + position: absolute; + left: 10px; + bottom: 0; } .div_search { display: flex; diff --git a/src/views/modules/base/resi.vue b/src/views/modules/base/resi.vue index 86c4e35f..b062a50a 100644 --- a/src/views/modules/base/resi.vue +++ b/src/views/modules/base/resi.vue @@ -32,11 +32,15 @@ - + class="resi-table" + @select-all="selectAll" + @selection-change="selectionChange"> + -
- - +
+
+ 全选 + 删除 +
+
+ + +
+
@@ -240,6 +256,8 @@ export default { btnLoading: false, disabled: false, pageLoading: false, + selAllFlag: false, + isIndeterminate: false, dialogEditVisible: false, dialogVisible: false, uploadUlr: window.SITE_CONFIG['apiURL'] + '/epmetuser/icresiuser/importExcel', @@ -262,6 +280,7 @@ export default { formList: [], tableHeader: [], tabsList: [], + selection: [], defaultCategotyKey: '', @@ -336,6 +355,61 @@ export default { const { user } = this.$store.state return id === user.agencyId }, + selectionChange (selection) { + this.selection = selection + + if (selection.length === this.tableData.length) { + this.selAllFlag = true + this.isIndeterminate = false + } else if (selection.length > 0) { + this.selAllFlag = false + this.isIndeterminate = true + } else { + this.selAllFlag = false + this.isIndeterminate = false + } + }, + handleSelectAll (selectAllFlag) { + this.$refs.ref_table.clearSelection(); + if (selectAllFlag) { + this.tableData.forEach(row => { + this.$refs.ref_table.toggleRowSelection(row); + }); + } + }, + selectAll (selection) { + this.selection = selection + + if (selection.length > 0) { + this.selAllFlag = true + } else { + this.selAllFlag = false + } + + }, + deleteBatch () { + if (this.selection.length > 0) { + this.$confirm("删除之后无法恢复,确认删除?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) + .then(() => { + this.deleteresiBatch() + }) + .catch(err => { + if (err == "cancel") { + // this.$message({ + // type: "info", + // message: "已取消删除" + // }); + } + + }); + } else { + this.$message.warning('请先选择要删除的小区') + } + }, handleSizeChange (val) { console.log(`每页 ${val} 条`) this.pageSize = val @@ -627,7 +701,7 @@ export default { handleDel (row) { let params = { formCode: 'resi_base_info', - icResiUserId: row.icResiUserId + userIds: [row.icResiUserId] } console.log('row1', row) this.$http @@ -926,7 +1000,29 @@ export default { .catch(() => { return this.$message.error('网络错误') }) - } + }, + async deleteresiBatch () { + if (this.selection.length === 0) return this.$message.error('请选择之后进行操作') + let userIds = this.selection.map(item => item.icResiUserId) + let params = { + formCode: 'resi_base_info', + userIds + } + this.$http + .post('/epmetuser/icresiuser/delete', params) + .then(({ data: res }) => { + if (res.code !== 0) { + return this.$message.error(res.msg) + } else { + this.$message.success('删除成功') + this.getTableData() + } + }) + .catch((err) => { + console.log('row4', err) + return this.$message.error('网络错误') + }) + }, } } @@ -1033,4 +1129,13 @@ export default { margin-top: 20px; text-align: center; } +.div-flex { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + .div_del { + margin-top: 15px; + } +} diff --git a/src/views/modules/communityService/sqzzz/index.vue b/src/views/modules/communityService/sqzzz/index.vue index c6e74ee5..0524e4f5 100644 --- a/src/views/modules/communityService/sqzzz/index.vue +++ b/src/views/modules/communityService/sqzzz/index.vue @@ -270,34 +270,53 @@ export default { } return fileType && isLt1M; }, - uploadHttpRequest(file) { + async uploadHttpRequest(file) { this.importLoading = true; this.importBtnTitle = "正在上传中..."; + this.$message({ + showClose: true, + message: '导入中,请到系统管理-导入记录中查看进度', + duration: 0 + }) const formData = new FormData(); //FormData对象,添加参数只能通过append('key', value)的形式添加 formData.append("file", file.file); //添加文件对象 - axios({ - url: - window.SITE_CONFIG["apiURL"] + - "/heart/iccommunityselforganization/importcommunityselforganization", - method: "post", - data: formData, - // responseType: "blob", - }) - .then((res) => { - this.importLoading = false; - this.importBtnTitle = "excel导入"; - console.log("resresresresresresres", res); - - this.getTableData(); - if (res.data.code == 0) { - return this.$message.success(res.data.data || "导入成功"); - } else { - return this.$message.error(res.data.msg); - } + await this.$http + .post('/heart/iccommunityselforganization/importcommunityselforganization', formData).then(res => { + console.log('res-up', res) + if (res.data.code == 0 && res.data.msg == 'success') { + this.$message.success('导入成功') + this.getTableData() + } else this.$message.error(res.data.msg) + }).catch(err => { + console.log('失败', err) + file.onError() //上传失败的文件会从文件列表中删除 + this.$message.error('导入失败') }) - .catch((err) => { - console.log("失败", err); - }); + // axios({ + // url: + // window.SITE_CONFIG["apiURL"] + + // "/heart/iccommunityselforganization/importcommunityselforganization", + // method: "post", + // data: formData, + // // responseType: "blob", + // }) + // .then((res) => { + // this.importLoading = false; + // this.importBtnTitle = "excel导入"; + // console.log("resresresresresresres", res); + + // this.getTableData(); + // if (res.data.code == 0) { + // return this.$message.success(res.data.data || "导入成功"); + // } else { + // return this.$message.error(res.data.msg); + // } + // }) + // .catch((err) => { + // console.log("失败", err); + // }); + this.importLoading = false + this.importBtnTitle = 'excel导入' this.$refs.upload.clearFiles(); }, diff --git a/src/views/modules/visual/ai/cheliu.vue b/src/views/modules/visual/ai/cheliu.vue new file mode 100644 index 00000000..2fb09d89 --- /dev/null +++ b/src/views/modules/visual/ai/cheliu.vue @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/src/views/modules/visual/ai/gongdan.vue b/src/views/modules/visual/ai/gongdan.vue new file mode 100644 index 00000000..864149ed --- /dev/null +++ b/src/views/modules/visual/ai/gongdan.vue @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/src/views/modules/visual/ai/index.vue b/src/views/modules/visual/ai/index.vue new file mode 100644 index 00000000..132fac49 --- /dev/null +++ b/src/views/modules/visual/ai/index.vue @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/src/views/modules/visual/ai/renliu.vue b/src/views/modules/visual/ai/renliu.vue new file mode 100644 index 00000000..334c6182 --- /dev/null +++ b/src/views/modules/visual/ai/renliu.vue @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/src/views/modules/visual/ai/shebei.vue b/src/views/modules/visual/ai/shebei.vue new file mode 100644 index 00000000..3274ff82 --- /dev/null +++ b/src/views/modules/visual/ai/shebei.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/src/views/modules/visual/ai/yujing.vue b/src/views/modules/visual/ai/yujing.vue new file mode 100644 index 00000000..0238cc5b --- /dev/null +++ b/src/views/modules/visual/ai/yujing.vue @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/src/views/modules/visual/communityParty/community.vue b/src/views/modules/visual/communityParty/community.vue index b550259b..1146ca2d 100644 --- a/src/views/modules/visual/communityParty/community.vue +++ b/src/views/modules/visual/communityParty/community.vue @@ -36,7 +36,8 @@ prefix-icon="el-icon-caret-bottom" value-format="yyyy-MM-dd HH:mm:ss" :clearable="false" - :default-time="['00:00:00', '23:59:59']"> + :default-time="['00:00:00', '23:59:59']" + @change="handleTimeChange">
@@ -121,6 +122,7 @@