| src/api/dept/index.js | ●●●●● patch | view | raw | blame | history | |
| src/api/dept/newIndex.js | ●●●●● patch | view | raw | blame | history | |
| src/styles/base/index.scss | ●●●●● patch | view | raw | blame | history | |
| src/styles/media/index.scss | ●●●●● patch | view | raw | blame | history | |
| src/views/house/components/maintain.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/house/components/useWater.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/house/index.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/layout/index.vue | ●●●●● patch | view | raw | blame | history |
src/api/dept/index.js
@@ -2,7 +2,7 @@ * @Author: shuishen 1109946754@qq.com * @Date: 2022-11-30 15:18:29 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2023-04-18 19:27:38 * @LastEditTime: 2026-01-05 22:33:06 * @FilePath: \srs-police-affairs\src\api\dept\index.js * @Description: * @@ -45,11 +45,11 @@ */ export const getResidentialQuartersInfo = (area_id, adcode) => { return request({ url: '/sf3d/area/info', // url: '/data/getResidentialQuartersInfo.json', // url: '/sf3d/area/info', url: '/data/getResidentialQuartersInfo.json', method: 'get', authorization: false, requestBaseUrl: 'fengt', // requestBaseUrl: 'fengt', params: { area_id, adcode @@ -66,11 +66,11 @@ export const getAoiByPt = (lng, lat, height, adcode, tolerance) => { return request({ // url: '/sf3d/area/getAoiByPt', url: '/sf3d/area/stdgetAoiByPt', // url: '/data/getAoiByBgId.json', // url: '/sf3d/area/stdgetAoiByPt', url: '/data/getAoiByBgId.json', method: 'get', authorization: false, requestBaseUrl: 'fengt', // requestBaseUrl: 'fengt', params: { lng, lat, @@ -106,11 +106,11 @@ export const getHouses = (build_id, adcode) => { return request({ // url: '/sf3d/build/houses', url: '/sf3d/build/stdhouses', // url: '/data/huafu15d.json', // url: '/sf3d/build/stdhouses', url: '/data/huafu15d.json', method: 'get', authorization: false, requestBaseUrl: 'fengt', // requestBaseUrl: 'fengt', params: { build_id, adcode @@ -126,8 +126,8 @@ */ export const getSearchExtensively = (ak, region, query, ids) => { return request({ url: '/zhs/bs/search', // url: '/data/jingzuo.json', // url: '/zhs/bs/search', url: '/data/jingzuo.json', method: 'get', requestBaseUrl: 'fengtDS', params: { @@ -146,10 +146,10 @@ */ export const getSearchExtensivelyPage = (ak, region, query,page_num,page_size) => { return request({ url: '/zhs/bs/search', // url: '/data/jingzuo.json', // url: '/zhs/bs/search', url: '/data/jingzuo.json', method: 'get', requestBaseUrl: 'fengtDS', // requestBaseUrl: 'fengtDS', params: { ak, region, @@ -167,15 +167,15 @@ */ export const getSearchExtensivelyBgAoiDeepdata = (ak, region, ids, infos) => { return request({ url: '/zhs/bs/search', // url: '/zhs/bs/search', // url: '/data/汇成观邸.json', // url: '/data/search.json', // url: '/data/阳光小区独栋.json', url: '/data/阳光小区独栋.json', // url: '/data/search汇杰小区.json', // url: '/data/汪家园林家小区id详情搜.json', // url: '/data/search三江星座.json', method: 'get', requestBaseUrl: 'fengtDS', // requestBaseUrl: 'fengtDS', params: { ak, region, @@ -192,13 +192,13 @@ */ export const getSearchExtensivelyHousesdata = (ak, region, ids, infos) => { return request({ url: '/zhs/bs/search', // url: '/data/汇成观邸-户室.json', // url: '/zhs/bs/search', url: '/data/汇成观邸-户室.json', // url: '/data/阳光小区独栋.json', // url: '/data/search汇杰小区1栋.json', // url: '/data/汪家园林家小区2号id详情搜.json', method: 'get', requestBaseUrl: 'fengtDS', // requestBaseUrl: 'fengtDS', params: { ak, region, src/api/dept/newIndex.js
@@ -339,4 +339,52 @@ childType } }) } /** * 自来水用户信息 * @param {*} params * @returns */ export const getZlsYhxx = (type = 1, resBusId) => { let params = { resBusId } if (type != 1) { params = { buildId: resBusId } } return request({ url: '/api/zlsYhxx/zlsYhxx/page', method: 'get', // params }) } /** * 维修基金信息 * @param {*} params * @returns */ export const getWxjj = (type = 1, resBusId) => { let params = { resBusId } if (type != 1) { params = { buildId: resBusId } } return request({ url: '/api/wxjj/wxjj/page', method: 'get', // params }) } src/styles/base/index.scss
@@ -156,7 +156,7 @@ .el-dialog { display: flex; flex-direction: column; width: 920px; width: 1160px; .el-dialog__body { display: flex; src/styles/media/index.scss
@@ -1968,7 +1968,7 @@ } .el-dialog { width: countSizeVw(1080, 1920); width: countSizeVw(1160, 1920); } .el-dialog__header span { src/views/house/components/maintain.vue
New file @@ -0,0 +1,280 @@ <!-- --> <template> <div class="table-box-w"> <div class="list-box"> <el-table :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" v-loading="residentLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(17, 38, 163, 1)" :empty-text="residentNoDataText" :data="dataList.records" style="width: 100%" @cell-click="cellClick"> <!-- 包含了姓名、性别、民族、身份证号码、手机号、现居住地、岗位、从业人员照片等。 --> <el-table-column align="center" prop="name" label="姓名" width="100"> </el-table-column> <el-table-column align="center" prop="gender" label="性别" width="70"> <template slot-scope="scope"> {{ scope.row.gender == 1 ? '男' : '女' }} </template> </el-table-column> <el-table-column align="center" prop="ethnicity" label="民族" width="70"> </el-table-column> <el-table-column align="center" prop="idCard" label="身份证号码"> </el-table-column> <el-table-column align="center" prop="telephone" label="手机号"> </el-table-column> <el-table-column align="center" prop="location" show-overflow-tooltip label="现居住地"> </el-table-column> <el-table-column align="center" prop="name" label="岗位" width="80px"> </el-table-column> </el-table> </div> <!-- 详情页面 --> <el-dialog class="resident-details-box-details" :modal="false" :close-on-click-modal="false" :append-to-body="true" :visible.sync="detailBox"> <div class="detail-box"> <!-- popelList[0] 详情页面 包含了姓名、性别、民族、身份证号码、手机号、现居住地、岗位、从业人员照片等--> <div class="detail-title-box"> <div class="detail-title">从业人员详情</div> <div class="close" @click="detailBox = false" title="关闭"></div> </div> <div class="detail-content-box"> <el-row class=""> <el-col :span="6"> <div class="detail-row">场所名称</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.placeName }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">场所负责人</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.principal }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">负责人电话</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.principalPhone }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">场所地址</div> </el-col> <el-col :span="18"> <div class="">{{ row.location }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">姓名</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.name }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">性别</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.gender == 1 ? '男' : '女' }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">民族</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.ethnicity }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">身份证号码</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.idCard }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">手机号</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.telephone }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">现居住地</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.tempAddress }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">岗位</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.jobNature }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">入职时间</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.employmentTime }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">辞职时间</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.resignationTime }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">从业人员照片</div> </el-col> <el-col :span="18"> <div class="mini-code"> <el-image fit="contain" style="height: 100px;width: 100px;" :src="row.employerImg" :preview-src-list="[row.employerImg]"> <div slot="error" class="image-slot"></div> </el-image> </div> </el-col> </el-row> </div> </div> </el-dialog> </div> </template> <script> import { getWxjj } from "@/api/dept/newIndex.js" export default { name: 'tableFromPop', props: { hushiPeoTy: { type: String, default: '' }, residentIdSave: { type: String, default: '' }, residentDetailsType: { type: Number, default: 1 }, }, //import引入的组件需要注入到对象中才能使用 components: {}, data () { //这里存放数据 return { row: {}, detailBox: false, residentLoading: false, residentNoDataText: '暂无数据', dataList: { total: 1, records: [] }, } }, //监听属性 类似于data概念 computed: { }, //监控data中的数据变化 watch: { residentIdSave (newVal, oldVal) { console.log('residentIdSave', newVal, oldVal) if (newVal) { this.init() } } }, //方法集合 methods: { init () { this.residentLoading = true getWxjj(this.residentDetailsType, this.residentIdSave).then((res) => { this.dataList.total = res.data.data.total this.dataList.records = res.data.data.records this.residentLoading = false }).catch((err) => { this.residentLoading = false }) }, cellClick (row, column, cell, event) { row.employerImg = this.getImgUrls(row.employerImg) this.row = row this.detailBox = !this.detailBox console.log('cellClick', row, column, cell, event) }, // // 图片转换 getImgUrls (imageUrls) { if (imageUrls && imageUrls != '' && imageUrls.length > 0) { imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => { return 'http://10.141.11.11/jczzMedia/' + ele // return 'https://srgdjczzxtpt.com:2080/gminio/jczz/' + ele }) } return imageUrls || [] }, }, //生命周期 - 创建完成(可以访问当前this实例) created () { console.log('tableFromPop created', this.residentIdSave) }, //生命周期 - 挂载完成(可以访问DOM元素) mounted () { console.log('tableFromPop mounted', this.residentIdSave) this.init() }, beforeCreate () { }, //生命周期 - 创建之前 beforeMount () { }, //生命周期 - 挂载之前 beforeUpdate () { }, //生命周期 - 更新之前 updated () { }, //生命周期 - 更新之后 beforeDestroy () { }, //生命周期 - 销毁之前 destroyed () { }, //生命周期 - 销毁完成 activated () { }, //如果页面有keep-alive缓存功能,这个函数会触发 } </script> <style scoped lang="scss"> .table-box-w { // position: relative; // background-color: rgba(228, 17, 17, 0.5); } </style> src/views/house/components/useWater.vue
New file @@ -0,0 +1,280 @@ <!-- --> <template> <div class="table-box-w"> <div class="list-box"> <el-table :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" v-loading="residentLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(17, 38, 163, 1)" :empty-text="residentNoDataText" :data="dataList.records" style="width: 100%" @cell-click="cellClick"> <!-- 包含了姓名、性别、民族、身份证号码、手机号、现居住地、岗位、从业人员照片等。 --> <el-table-column align="center" prop="name" label="姓名" width="100"> </el-table-column> <el-table-column align="center" prop="gender" label="性别" width="70"> <template slot-scope="scope"> {{ scope.row.gender == 1 ? '男' : '女' }} </template> </el-table-column> <el-table-column align="center" prop="ethnicity" label="民族" width="70"> </el-table-column> <el-table-column align="center" prop="idCard" label="身份证号码"> </el-table-column> <el-table-column align="center" prop="telephone" label="手机号"> </el-table-column> <el-table-column align="center" prop="location" show-overflow-tooltip label="现居住地"> </el-table-column> <el-table-column align="center" prop="name" label="岗位" width="80px"> </el-table-column> </el-table> </div> <!-- 详情页面 --> <el-dialog class="resident-details-box-details" :modal="false" :close-on-click-modal="false" :append-to-body="true" :visible.sync="detailBox"> <div class="detail-box"> <!-- popelList[0] 详情页面 包含了姓名、性别、民族、身份证号码、手机号、现居住地、岗位、从业人员照片等--> <div class="detail-title-box"> <div class="detail-title">从业人员详情</div> <div class="close" @click="detailBox = false" title="关闭"></div> </div> <div class="detail-content-box"> <el-row class=""> <el-col :span="6"> <div class="detail-row">场所名称</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.placeName }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">场所负责人</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.principal }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">负责人电话</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.principalPhone }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">场所地址</div> </el-col> <el-col :span="18"> <div class="">{{ row.location }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">姓名</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.name }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">性别</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.gender == 1 ? '男' : '女' }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">民族</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.ethnicity }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">身份证号码</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.idCard }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">手机号</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.telephone }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">现居住地</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.tempAddress }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">岗位</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.jobNature }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">入职时间</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.employmentTime }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">辞职时间</div> </el-col> <el-col :span="18"> <div class="detail-row">{{ row.resignationTime }}</div> </el-col> </el-row> <el-row class=""> <el-col :span="6"> <div class="detail-row">从业人员照片</div> </el-col> <el-col :span="18"> <div class="mini-code"> <el-image fit="contain" style="height: 100px;width: 100px;" :src="row.employerImg" :preview-src-list="[row.employerImg]"> <div slot="error" class="image-slot"></div> </el-image> </div> </el-col> </el-row> </div> </div> </el-dialog> </div> </template> <script> import { getZlsYhxx } from "@/api/dept/newIndex.js" export default { name: 'tableFromPop', props: { hushiPeoTy: { type: String, default: '' }, residentIdSave: { type: String, default: '' }, residentDetailsType: { type: Number, default: 1 }, }, //import引入的组件需要注入到对象中才能使用 components: {}, data () { //这里存放数据 return { row: {}, detailBox: false, residentLoading: false, residentNoDataText: '暂无数据', dataList: { total: 1, records: [] }, } }, //监听属性 类似于data概念 computed: { }, //监控data中的数据变化 watch: { residentIdSave (newVal, oldVal) { console.log('residentIdSave', newVal, oldVal) if (newVal) { this.init() } } }, //方法集合 methods: { init () { this.residentLoading = true getZlsYhxx(this.residentDetailsType, this.residentIdSave).then((res) => { this.dataList.total = res.data.data.total this.dataList.records = res.data.data.records this.residentLoading = false }).catch((err) => { this.residentLoading = false }) }, cellClick (row, column, cell, event) { row.employerImg = this.getImgUrls(row.employerImg) this.row = row this.detailBox = !this.detailBox console.log('cellClick', row, column, cell, event) }, // // 图片转换 getImgUrls (imageUrls) { if (imageUrls && imageUrls != '' && imageUrls.length > 0) { imageUrls = imageUrls.split(',').filter(ele => ele != '').map(ele => { return 'http://10.141.11.11/jczzMedia/' + ele // return 'https://srgdjczzxtpt.com:2080/gminio/jczz/' + ele }) } return imageUrls || [] }, }, //生命周期 - 创建完成(可以访问当前this实例) created () { console.log('tableFromPop created', this.residentIdSave) }, //生命周期 - 挂载完成(可以访问DOM元素) mounted () { console.log('tableFromPop mounted', this.residentIdSave) this.init() }, beforeCreate () { }, //生命周期 - 创建之前 beforeMount () { }, //生命周期 - 挂载之前 beforeUpdate () { }, //生命周期 - 更新之前 updated () { }, //生命周期 - 更新之后 beforeDestroy () { }, //生命周期 - 销毁之前 destroyed () { }, //生命周期 - 销毁完成 activated () { }, //如果页面有keep-alive缓存功能,这个函数会触发 } </script> <style scoped lang="scss"> .table-box-w { // position: relative; // background-color: rgba(228, 17, 17, 0.5); } </style> src/views/house/index.vue
@@ -2,7 +2,7 @@ * @Author: shuishen 1109946754@qq.com * @Date: 2022-08-18 16:18:17 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2025-01-16 12:02:41 * @LastEditTime: 2026-01-05 22:29:06 * @FilePath: \srs-police-affairs\src\views\house\index.vue * @Description: 小区-栋-层-房屋 * @@ -15,30 +15,33 @@ <div v-show="contentShow" class="search-box"> <el-popover ref="popover" placement="bottom" trigger="manual" v-model="searchTreeShowFlag" popper-class="tree-search-popup" @mousedown.native="preventFocusLost"> <el-tree v-show="searchLazyFlag == true" ref="popupTree" style="overflow: auto;" class="select-tree-box" :load="loadNode" :lazy="true" :props="props" @current-change="currentChangeHandle" @mousedown.native="preventFocusLost"></el-tree> <el-tree v-show="searchLazyFlag == false" :empty-text="treeEmptyText" ref="popupTree" style="overflow: auto;" class="select-tree-box" :data="searchTreeData" :props="defaultProps" :default-expand-all="true" <el-tree v-show="searchLazyFlag == true" ref="popupTree" style="overflow: auto;" class="select-tree-box" :load="loadNode" :lazy="true" :props="props" @current-change="currentChangeHandle" @mousedown.native="preventFocusLost"></el-tree> <el-tree v-show="searchLazyFlag == false" :empty-text="treeEmptyText" ref="popupTree" style="overflow: auto;" class="select-tree-box" :data="searchTreeData" :props="defaultProps" :default-expand-all="true" @current-change="currentChangeHandle" @mousedown.native="preventFocusLost"></el-tree> </el-popover> <el-input ref="searchTreeInput" v-model="searchTreeName" @input="searchInputTree" @focus="searchTreeShowFlag = true" @blur="searchTreeShowFlag = false" v-popover:popover placeholder="请输入搜索条件" style="cursor: pointer;"></el-input> @focus="searchTreeShowFlag = true" @blur="searchTreeShowFlag = false" v-popover:popover placeholder="请输入搜索条件" style="cursor: pointer;"></el-input> </div> <div v-show="contentShow" class="result-content" ref="resultContentBox"> <el-main v-loading="villageInfoLoading" element-loading-background="rgba(0, 0, 0, 0.5)" element-loading-text="数据正在加载中" element-loading-spinner="el-icon-loading" style="overflow:hidden;padding:0px;"> element-loading-text="数据正在加载中" element-loading-spinner="el-icon-loading" style="overflow:hidden;padding:0px;"> <div class="housing-estate-info" ref="housingEstateInfoBox"> <div class="housing-title"> {{ villageInfo.name }} <div class="progress"></div> </div> <div class="housing-bg"> <el-image fit="contain" :src="villageInfo.pic_url" :preview-src-list="villageInfo.pic_url_singleArr"> <el-image fit="contain" :src="villageInfo.pic_url" :preview-src-list="villageInfo.pic_url_singleArr"> <div slot="error" class="image-slot">暂无照片</div> </el-image> <el-empty :image-size="120" description="暂无照片" @@ -51,7 +54,8 @@ </div> <div> <div class="l">所属辖区:</div> <div class="r">{{ villageInfo.policeStationName ? villageInfo.policeStationName : '暂无数据' }} <div class="r">{{ villageInfo.policeStationName ? villageInfo.policeStationName : '暂无数据' }} </div> </div> <div> @@ -125,18 +129,20 @@ </div> </div> <div class="code"> <el-image fit="contain" :src="villageInfo.codeUrl" :preview-src-list="[villageInfo.codeUrl]"> <el-image fit="contain" :src="villageInfo.codeUrl" :preview-src-list="[villageInfo.codeUrl]"> <div slot="error" class="image-slot"></div> </el-image> </div> </div> <!-- 点击展开 --> <div class="house-shrink-unfold-btn" @click="unfoldHouseBox('down')" v-show="!isShowHouseInfoBox"><i class="el-icon-arrow-down"></i> <div class="house-shrink-unfold-btn" @click="unfoldHouseBox('down')" v-show="!isShowHouseInfoBox"><i class="el-icon-arrow-down"></i> </div> <!-- 点击收缩 --> <div class="house-shrink-unfold-btn" @click="unfoldHouseBox('up')" v-show="isShowHouseInfoBox"><i class="el-icon-arrow-up"></i></div> <div class="house-shrink-unfold-btn" @click="unfoldHouseBox('up')" v-show="isShowHouseInfoBox"> <i class="el-icon-arrow-up"></i> </div> </div> </el-main> @@ -156,22 +162,25 @@ <div class="floor-content" v-show="subNavType == 1"> <el-main v-loading="BuildListLoading" v-show="isShowBuildListBox" element-loading-background="rgba(0, 0, 0, 0.5)" element-loading-text="数据正在加载中" element-loading-spinner="el-icon-loading" style="overflow:hidden;padding:0px;" class="build-item"> element-loading-spinner="el-icon-loading" style="overflow:hidden;padding:0px;" class="build-item"> <div class="build-info" v-show="!BuildListLoading && buildingList.length"> <div class="nextBtn" @click="lastBtn" v-show="lastBtnShow == true"> <i class="el-icon-caret-left"></i> </div> <div class="build-outBox" ref="BuildOutBox"> <div class="build-box" style="left: 0px;"> <div class="ridgepole-list" v-for="index of Math.ceil(buildingList.length / 10)" :key="index"> <div v-for="(item, index) in buildingList.slice((index - 1) * 10, index * 10)" :key="index" @click="buildingClick(item)" :class="{ on: buildingChoosed.name == item.name }" :title="item.name"> <div class="ridgepole-list" v-for="index of Math.ceil(buildingList.length / 10)" :key="index"> <div v-for="(item, index) in buildingList.slice((index - 1) * 10, index * 10)" :key="index" @click="buildingClick(item)" :class="{ on: buildingChoosed.name == item.name }" :title="item.name"> {{ item.name }} <div @click.stop title="显示/隐藏楼栋高亮"> <el-checkbox v-model="isBuildHighLightchecked" v-show="buildingChoosed.name == item.name" <el-checkbox v-model="isBuildHighLightchecked" v-show="buildingChoosed.name == item.name" @change="changeBuildHighLightchecked"></el-checkbox> </div> </div> @@ -262,8 +271,8 @@ <div class="type">选择单元</div> <div class="type-select"> <el-select size="small" v-model="unitValue" placeholder="请选择" @change="chooseUnit"> <el-option v-for="item in unitOptions" :key="item.value" :label="item.label" :value="item.value" class="unit-option"></el-option> <el-option v-for="item in unitOptions" :key="item.value" :label="item.label" :value="item.value" class="unit-option"></el-option> </el-select> </div> </div> @@ -288,7 +297,8 @@ </div> </div> --> <el-main v-loading="pictLoading" element-loading-background="rgba(0, 0, 0, 0.5)" element-loading-text="数据正在加载中" element-loading-spinner="el-icon-loading" class="resident-box"> element-loading-text="数据正在加载中" element-loading-spinner="el-icon-loading" class="resident-box"> <div class="floor-outBox"> <div @click="lastFloorBtn" class="floorBtn" v-show="lastFloorShow"> <i class="el-icon-caret-left"></i> @@ -315,11 +325,13 @@ </div> </div> <div class="floor-detail" v-show="!pictLoading && isHaveResidentData"> <div v-for="(item, index) in unitChoosedArr.slice((floorsType - 1) * 5, floorsType * 5)" :key="index"> <div v-for="(item, index) in unitChoosedArr.slice((floorsType - 1) * 5, floorsType * 5)" :key="index"> <div class="title">{{ item.sname }}层:</div> <div class="detail"> <div v-for="(value, index) in item.children_infos" :key="index" @click="residentDetailsClick(value)" :class="{ on: floorChoosed == value.sname }">{{ value.sname @click="residentDetailsClick(value)" :class="{ on: floorChoosed == value.sname }">{{ value.sname }}室 <div class="flow" :class="[value.isBus == '1' ? 'red' : '', value.isBus == '2' ? 'grey' : '', value.isBus == '3' ? 'green' : '']"> @@ -338,24 +350,27 @@ v-show="subNavType == 2"> <el-table :data="comeOutData" style="width: 100%" :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" :row-class-name="tableRowClassName" @row-click="deepDataRowClick($event, 'comeOut')" :empty-text="houseDeepNoDataText" v-loading="houseDeepLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.5)"> <el-table-column prop="name" label="名称" width="180" :show-overflow-tooltip="true"></el-table-column> :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" :row-class-name="tableRowClassName" @row-click="deepDataRowClick($event, 'comeOut')" :empty-text="houseDeepNoDataText" v-loading="houseDeepLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.5)"> <el-table-column prop="name" label="名称" width="180" :show-overflow-tooltip="true"></el-table-column> <el-table-column prop="x" label="经度" width="100"></el-table-column> <el-table-column prop="y" label="纬度" width="100"></el-table-column> </el-table> </div> <div class="park-content" :class="{ 'come-out-content-long': !isShowHouseInfoBox }" v-show="subNavType == 3"> <div class="park-content" :class="{ 'come-out-content-long': !isShowHouseInfoBox }" v-show="subNavType == 3"> <el-table :data="parkingLotData" style="width: 100%" :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" :row-class-name="tableRowClassName" @row-click="deepDataRowClick($event, 'park')" :empty-text="houseDeepNoDataText" v-loading="houseDeepLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.5)"> <el-table-column prop="name" label="名称" width="180" :show-overflow-tooltip="true"></el-table-column> :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" :row-class-name="tableRowClassName" @row-click="deepDataRowClick($event, 'park')" :empty-text="houseDeepNoDataText" v-loading="houseDeepLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.5)"> <el-table-column prop="name" label="名称" width="180" :show-overflow-tooltip="true"></el-table-column> <el-table-column prop="x" label="经度" width="100"></el-table-column> <el-table-column prop="y" label="纬度" width="100"></el-table-column> </el-table> @@ -365,12 +380,12 @@ v-show="subNavType == 4"> <el-table :data="businessData" style="width: 100%" :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" :row-class-name="tableRowClassName" @row-click="deepDataRowClick($event, 'business')" @sort-change="sortDevName" :empty-text="houseDeepNoDataText" v-loading="houseDeepLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.5)" :show-overflow-tooltip="true" @cell-mouse-enter="businessMouseEnter" @cell-mouse-leave="businessMouseLeave"> :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" :row-class-name="tableRowClassName" @row-click="deepDataRowClick($event, 'business')" @sort-change="sortDevName" :empty-text="houseDeepNoDataText" v-loading="houseDeepLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.5)" :show-overflow-tooltip="true" @cell-mouse-enter="businessMouseEnter" @cell-mouse-leave="businessMouseLeave"> <el-table-column sortable="custom" prop="placeName" label="场所名称" :show-overflow-tooltip="true"></el-table-column> <el-table-column prop="labelName" label="场所类型"></el-table-column> @@ -379,15 +394,16 @@ </div> <div class="police-info" v-if="navType == 1" ref="policeTableBox"> <el-main v-loading="policeInfoLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.5)"> <el-main v-loading="policeInfoLoading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.5)"> <div class="select-type"> <el-date-picker :clearable="false" v-model="eventTime" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="caseTimeChange" :picker-options="pickerOptions"></el-date-picker> <el-select v-model="typeValue" @change="changeJQType" placeholder="请选择" class="type-select-css"> <el-option v-for="item in policeInforOptions" :key="item.value" :label="item.label" :value="item.value" class="option-css"></el-option> <el-date-picker :clearable="false" v-model="eventTime" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="caseTimeChange" :picker-options="pickerOptions"></el-date-picker> <el-select v-model="typeValue" @change="changeJQType" placeholder="请选择" class="type-select-css"> <el-option v-for="item in policeInforOptions" :key="item.value" :label="item.label" :value="item.value" class="option-css"></el-option> </el-select> </div> <div class="jq-tab"> @@ -397,25 +413,29 @@ <div v-show="jqType == 0"> <el-table :data="callPoliceData" style="width: 100%" :height="currentTableHeight" :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" :row-class-name="tableRowClassName" :empty-text="jqNoDataText" class="police-infor-table" @cell-click="housingPoliceSiteClick"> :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" :row-class-name="tableRowClassName" :empty-text="jqNoDataText" class="police-infor-table" @cell-click="housingPoliceSiteClick"> <el-table-column prop="JJDWMC" :show-overflow-tooltip="true" label="接警单位" min-width="80%"></el-table-column> <el-table-column label="报警时间" prop="BJSJ" min-width="50%"></el-table-column> <el-table-column prop="jqlxName" :show-overflow-tooltip="true" label="报警类型"></el-table-column> <el-table-column prop="jqlxName" :show-overflow-tooltip="true" label="报警类型"></el-table-column> <el-table-column label="操作" align="center" min-width="36%"> <template slot-scope="scope"> <el-button v-if="!whetherPosition(scope.row)" @click="clickData(scope.row)" type="text" size="small" title="定位"> <i class="el-icon-location" :style="{ color: positionColor(scope.row) }"></i> <el-button v-if="!whetherPosition(scope.row)" @click="clickData(scope.row)" type="text" size="small" title="定位"> <i class="el-icon-location" :style="{ color: positionColor(scope.row) }"></i> </el-button> </template> </el-table-column> </el-table> <div class="pages all-pagination-sty" ref="ElPagination"> <el-pagination background layout="prev, pager, next" :page-size="callPolicePage.pageSize" :page-count="callPolicePage.count" :current-page="callPolicePage.currentPage" <el-pagination background layout="prev, pager, next" :page-size="callPolicePage.pageSize" :page-count="callPolicePage.count" :current-page="callPolicePage.currentPage" @current-change="handleCurrentChange"></el-pagination> </div> </div> @@ -460,7 +480,8 @@ <map-search-box></map-search-box> <el-dialog title="报警信息" :visible.sync="policeSituationVisible" :modal-append-to-body="false" :modal="true" :close-on-click-modal="false" :before-close="policeSituationBeforeClose" class="policeSituation-details-box"> :close-on-click-modal="false" :before-close="policeSituationBeforeClose" class="policeSituation-details-box"> <div class="box"> <div class="item"> <div>接警单位编号:</div> @@ -534,14 +555,16 @@ <div class="table-box"> <div class="type-tab-box"> <div v-for="(item, index) in menuList" :key="index"> <div v-if="item.isHover" class="tab-item" :class="{ 'tab-choose-item': hushiPeoTy == item.value }" <div v-if="item.isHover" class="tab-item" :class="{ 'tab-choose-item': hushiPeoTy == item.value }" @click="hushiPeoTyClick(item.value)"> {{ item.label }}</div> </div> </div> <div v-if="hushiPeoTy == 5" class="pay-info-box"> <employees :residentIdSave="residentIdSave" :residentDetailsType="residentDetailsType" ref="employees"> <employees :residentIdSave="residentIdSave" :residentDetailsType="residentDetailsType" ref="employees"> </employees> </div> @@ -551,7 +574,8 @@ </div> <div v-if="hushiPeoTy == 7" class="pay-info-box"> <antiFraud :residentIdSave="residentIdSave" :residentDetailsType="residentDetailsType" ref="antiFraud"> <antiFraud :residentIdSave="residentIdSave" :residentDetailsType="residentDetailsType" ref="antiFraud"> </antiFraud> </div> @@ -562,7 +586,8 @@ </div> <div v-if="hushiPeoTy == 10" class="pay-info-box"> <rentalHouse :residentIdSave="residentIdSave" :residentDetailsType="residentDetailsType" ref="rentalHouse"> <rentalHouse :residentIdSave="residentIdSave" :residentDetailsType="residentDetailsType" ref="rentalHouse"> </rentalHouse> </div> @@ -574,6 +599,18 @@ <div v-if="hushiPeoTy == 11" class="pay-info-box"> <nineSmallPlaces :residentIdSave="residentIdSave" :residentDetailsType="residentDetailsType" ref="nineSmallPlaces"></nineSmallPlaces> </div> <div v-if="hushiPeoTy == 13" class="pay-info-box"> <maintain :residentIdSave="residentIdSave" :residentDetailsType="residentDetailsType" ref="maintain"> </maintain> </div> <div v-if="hushiPeoTy == 14" class="pay-info-box"> <useWater :residentIdSave="residentIdSave" :residentDetailsType="residentDetailsType" ref="useWater"> </useWater> </div> <el-table :data="houseDate" @@ -859,6 +896,9 @@ import rentalHouse from "./components/rentalHouse" import nineSmallPlaces from "./components/nineSmallPlaces" import noFraudAuthentication from "./components/noFraudAuthentication" import useWater from "./components/useWater" import maintain from "./components/maintain" let wallLayer = null @@ -872,7 +912,9 @@ scanCodeAlarm, rentalHouse, nineSmallPlaces, noFraudAuthentication noFraudAuthentication, useWater, maintain }, data () { @@ -1148,6 +1190,16 @@ value: 12, isHover: true, }, { label: "维修基金", value: 13, isHover: true, }, { label: "用水数据", value: 14, isHover: true, }, // { // label: "校园安全", // value: 13, src/views/layout/index.vue
@@ -2,7 +2,7 @@ * @Author: shuishen 1109946754@qq.com * @Date: 2022-08-18 16:18:24 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2025-02-20 17:46:48 * @LastEditTime: 2026-01-05 22:36:50 * @FilePath: \srs-police-affairs\src\views\layout\index.vue * @Description: * @@ -17,7 +17,8 @@ <span :class="{ on: showChange(item) }">{{ item.menuName }}</span> <div class="sub-nav-list" v-show="item.children && item.childrenFlag"> <div v-for="(subItem, subIndex) in item.children" :key="subIndex" @click.stop="goToPath(subItem)"> <div v-for="(subItem, subIndex) in item.children" :key="subIndex" @click.stop="goToPath(subItem)"> {{ subItem.menuName }} @@ -40,8 +41,9 @@ </span> <div class="sub-nav-list" v-show="item.children && item.childrenFlag"> <div :class="{ on: currentUrl.indexOf(subItem.path) != -1 }" v-for="(subItem, subIndex) in item.children" :key="subIndex" @click.stop="goToPath(subItem, 4)"> <div :class="{ on: currentUrl.indexOf(subItem.path) != -1 }" v-for="(subItem, subIndex) in item.children" :key="subIndex" @click.stop="goToPath(subItem, 4)"> {{ subItem.menuName }} @@ -63,7 +65,8 @@ <i class="el-icon-user-back"></i> 运维管理 </div> <div class="back-system" :style="{ color: currentUrl == '/layout/available' ? '#fcbd56' : '#fff' }" <div class="back-system" :style="{ color: currentUrl == '/layout/available' ? '#fcbd56' : '#fff' }" @click="goToPage('/layout/available')"> <i class="el-icon-s-grid"></i> 可用资源 @@ -124,8 +127,9 @@ :icon="show ? 'el-icon-arrow-left' : 'el-icon-arrow-right'" id="FlexibleBtn" type="primary" @click="flexibelClick"></el-button> <div slot="resetPopup"> <el-dialog title="修改密码" :visible.sync="resetPsdPopupShow" :modal="true" :before-close="resetBeforeClose" :modal-append-to-body="false" :close-on-click-modal="false" class="reset-popup-box"> <el-dialog title="修改密码" :visible.sync="resetPsdPopupShow" :modal="true" :before-close="resetBeforeClose" :modal-append-to-body="false" :close-on-click-modal="false" class="reset-popup-box"> <div class="reset-popup-body"> <el-form ref="form" :rules="rules" :model="form" label-width="80px"> <el-form-item label="原密码" prop="oldPassword"> @@ -809,7 +813,7 @@ top: 50%; left: 0px; // z-index: 11; z-index: 99; z-index: 89; width: 32px; height: 64px; color: #fff;