Lou
2023-12-19 c34b96f470aadd7f27d31fa5f5b0cec38289a03f
扫码逻辑更新,楼栋列表修改,部分页面优化
10 files modified
293 ■■■■ changed files
api/system/index.js 12 ●●●●● patch | view | raw | blame | history
api/user.js 6 ●●●● patch | view | raw | blame | history
common/setting.js 4 ●●● patch | view | raw | blame | history
pages/home/index.vue 64 ●●●● patch | view | raw | blame | history
subPackage/house/family/index.vue 33 ●●●●● patch | view | raw | blame | history
subPackage/house/list/index.vue 89 ●●●●● patch | view | raw | blame | history
subPackage/statistics/index.vue 18 ●●●●● patch | view | raw | blame | history
subPackage/user/editUserInfo/editUserInfo.vue 2 ●●● patch | view | raw | blame | history
subPackage/workbench/views/cscj.vue 54 ●●●●● patch | view | raw | blame | history
subPackage/workbench/views/csjl.vue 11 ●●●● patch | view | raw | blame | history
api/system/index.js
@@ -22,3 +22,15 @@
        }
    })
}
//获取扫码详情
export const getQrCodeDetail = (params) => {
    return http.request({
        url: '/blade-doorplateAddress/doorplateAddress/getDetail',
        method: 'GET',
        params: {
            ...params
        }
    })
}
api/user.js
@@ -95,11 +95,11 @@
}
//更新用户信息
export const updateUserInfo = (params) => {
export const updateUserInfo = (data) => {
    return http.request({
        url: '/blade-system/user/update',
        method: 'get',
        params: params
        method: 'POST',
        data: data
    })
}
common/setting.js
@@ -12,8 +12,10 @@
    // devUrl: 'https://sk.hubeishuiyi.cn',
    // devUrl: 'http://192.168.1.156:9528',
    // devUrl:'http://192.168.1.50:9528',
    // devUrl: 'http://192.168.0.102:9528',
    // devUrl: 'http://192.168.0.112:9528',
    devUrl:'https://srgdjczzxtpt.com:2080/api',
    // devUrl:'http://z4042833u6.wicp.vip',
    // devUrl: 'http://192.168.0.103:9528',
    // devUrl: 'https://srgdjczzxtpt.com:2080/api',
    minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/",
pages/home/index.vue
@@ -170,7 +170,8 @@
    } from "@/api/article/article";
    import {
        getBannerList,
        getContact
        getContact,
        getQrCodeDetail
    } from "@/api/system/index"
    import {
        minioBaseUrl
@@ -760,24 +761,59 @@
            },
            
            getHouseType(code){
                // getQrCodeDetail
                getPublicSecurityDetail({
                    addressCode:code
                    // roleName:"网格员"
                    addressCode:code,
                }).then(res=>{
                    console.log(res)
                    let { doorplateType, addressLevel,aoiName,addressName,neiName } = res.data;
                    if(doorplateType == "户室牌"){
                        this.$u.func.globalNavigator(`/subPackage/house/roomDetails/index?id=${code}&from=scan`,"navTo")
                    }else if (doorplateType =="中门牌"){
                        this.$u.func.globalNavigator(
                            `/subPackage/house/houseNumber/index?stdId=${code}`, "navTo")
                    }else if (doorplateType == "楼幢牌" || doorplateType == "单元牌"){
                        let url = "/subPackage/house/family/index"
                        this.$u.func.globalNavigator(`${url}?id=${code}&address=${addressName}&neiName=${neiName}&aoiName=${aoiName}`,"navTo")
                    }else if (doorplateType  =="大门牌"){
                        this.$u.func.globalNavigator(`/subPackage/house/list/index?id=${code}&title=${aoiName}`,"navTo")
                    }
                    let {isJur,doorplateType, addressLevel,aoiName,addressName,neiName,buildingName,unitName } = res.data;
                    // if(isJur == 1){
                       if(doorplateType == "户室牌"){
                           this.$u.func.globalNavigator(`/subPackage/house/roomDetails/index?id=${code}&from=scan`,"navTo")
                       }else if (doorplateType =="中门牌"){
                           if(addressLevel == 4){    //自建房
                               this.showAction(code)
                           }else {                  //商铺
                               this.$u.func.globalNavigator(
                                   `/subPackage/house/houseNumber/index?stdId=${code}`, "navTo")
                           }
                       }else if (doorplateType == "楼幢牌"){
                           let url = "/subPackage/house/family/index"
                           this.$u.func.globalNavigator(`${url}?id=${code}&address=${addressName}&neiName=${neiName}&housingName=${aoiName}&buildingName=${buildingName}`,"navTo")
                       }else if ( doorplateType == "单元牌"){
                           let url = "/subPackage/house/family/index"
                           this.$u.func.globalNavigator(`${url}?id=${code}&address=${addressName}&neiName=${neiName}&housingName=${aoiName}&buildingName=${buildingName}&unitName=${unitName}`,"navTo")
                       }else if (doorplateType  =="大门牌"){
                           this.$u.func.globalNavigator(`/subPackage/house/list/index?id=${code}&title=${aoiName}&neiName=${neiName}&address=${addressName}`,"navTo")
                       }
                    // }else {
                    //     uni.showModal({
                    //         title:"提示!",
                    //         content:"该区域不是您管辖范围",
                    //         showCancel:false
                    //     })
                    // }
                })    
            },
            showAction(code){
                uni.showActionSheet({
                    title:"请选择",
                    itemList: ['场所', '户室'],
                    success:(res)=>{
                        if(res.tapIndex == 0){
                            this.$u.func.globalNavigator(
                                `/subPackage/house/houseNumber/index?stdId=${code}`, "navTo")
                        }else {
                            this.$u.func.globalNavigator(`/subPackage/house/roomDetails/index?id=${code}&from=scan`,"navTo")
                        }
                    }
                })
            }
        }
    }
</script>
subPackage/house/family/index.vue
@@ -8,10 +8,11 @@
            <block  v-if="addressName">
            <view class="cur-header">
                <u-icon name="/static/icon/map.png" width="15" height="18"></u-icon>
                <view>{{housingName}}/{{buildingName}}</view>
                <view>{{neiName}}/{{housingName}}{{buildingName}}</view>
            </view>
            <view class="house-address f-26  bgc-ff"  >
                {{addressName}}
            <view class="house-address f-26  bgc-ff">
                <text>标准地址:</text>
                <text>{{addressName}}</text>
            </view>
            </block>
            <view class="h0 flex-1 build-list-box content">
@@ -137,15 +138,17 @@
                isShowBuild: false,
                isShowShop: false,
                currentId: '',
                housingName: '',
                buildingName: 0,
                housingName: '',    //楼盘名称
                buildingName: 1,    //楼栋名称
                addressType: 1,
                // 社区编号
                neiCode: "",
                buildingList: [],
                shopList: [],
                curSelectSite: {},
                addressName:""
                addressName:""    ,//详细地址
                neiName:""   ,//居委会名称
                unitName:""    //单元名称
            }
        },
        onLoad(e) {
@@ -160,14 +163,22 @@
            this.housingName = housingName
            this.buildingName = buildingName
            if(addressType){
                    this.addressType = addressType
                this.addressType = addressType
            }
            this.neiCode = neiCode
            if(e.address){
            if(e.address){       //扫码跳入
                this.addressName = e.address;
                this.housingName = e.neiName;
                this.buildingName = e.aoiName
                this.neiName = e.neiName;
                if(e.unitName){
                    uni.setNavigationBarTitle({
                        title:`${housingName}${buildingName}${e.unitName}`
                    })
                }else{
                    uni.setNavigationBarTitle({
                        title:`${housingName}${buildingName}`
                    })
                }
            }
        },
subPackage/house/list/index.vue
@@ -2,9 +2,39 @@
    <view class="container">
        <view class="header">
            <u-icon name="/static/icon/map.png" width="15" height="18"></u-icon>
            <text>{{ curSelectSite.name }}/{{ curHouseTitle }}</text>
            <text v-if="!addressName">{{ curSelectSite.name }}/{{ curHouseTitle }}</text>
            <text v-if="addressName">{{ neiName }}/{{ curHouseTitle }}</text>
        </view>
       <view class="house-address f-26 bgc-ff"   v-if="addressName">
              <text>标准地址:</text>
           <text>{{addressName}}</text>
       </view>
       <view class="cell flex j-c-s-b flex-wrap "   v-if="addressName">
           <view class="cell-item">
               <text class="f-28 mb-20 c-99">楼栋数(幢)</text>
               <text class="f-30 fw">{{houseData.result1}}</text>
               <image class="cell-item-icon" src="/static/icon/statistics-nav-01.png" mode="aspectFill"></image>
           </view>
           <view class="cell-item">
               <text class="f-28 mb-20 c-99">房屋数(套)</text>
               <text class="f-30 fw">{{houseData.result2}}</text>
               <image class="cell-item-icon" src="/static/icon/statistics-nav-02.png" mode="aspectFill"></image>
           </view>
           <view class="cell-item">
               <text class="f-28 mb-20 c-99">住户数(人)</text>
               <text class="f-30 fw">{{houseData.result3}}</text>
               <image class="cell-item-icon" src="/static/icon/statistics-nav-03.png" mode="aspectFill"></image>
           </view>
           <view class="cell-item">
               <text class="f-28 mb-20 c-99">单元数</text>
               <text class="f-30 fw">{{houseData.result4}}</text>
               <image class="cell-item-icon" src="/static/icon/statistics-nav-01.png" mode="aspectFill"></image>
           </view>
       </view>
    
        <view class="flex f-d-c main">
            <view class="flex house-container">
                <view class="house-list-box" v-if="isShowAoi" v-for="(item, index) in houseList"
@@ -37,6 +67,7 @@
    import {
        getHouseList
    } from "@/api/doorplateAddress/doorplateAddress";
    import { getHouseStatistics } from "@/api/statistics/statistics.js"
    export default {
        components: {},
@@ -53,7 +84,10 @@
                }],
                shopList: [{
                    name: '-'
                }]
                }],
                addressName:"",
                neiName:"",
                houseData:{}
            }
        },
        onLoad(e) {
@@ -66,8 +100,12 @@
            if(e.addressType){
                this.addressType = e.addressType
            }
            if(e.address){
                this.addressName = e.address;
                this.neiName = e.neiName;
                uni.setNavigationBarTitle({title})
                this.getHouseData(id)
            }
        },
        onShow() {
            this.curSelectSite = uni.getStorageSync('siteInfo')
@@ -145,7 +183,17 @@
                    let url = `/subPackage/house/houseNumber/index?stdId=${id}`
                    this.$u.func.globalNavigator(url, "navTo")
                }
            }
            },
            getHouseData(code) {
                getHouseStatistics({
                    code: code,
                    roleType: 1
                }).then(res => {
                    this.houseData = res.data;
                })
            },
        }
    }
</script>
@@ -195,4 +243,35 @@
            }
        }
    }
    .house-address{
        padding: 20rpx;
    }
    .cell {
        padding: 20rpx;
        .cell-item {
            // width: 220rpx;
            width: calc(50% - 20rpx);
            height: 190rpx;
            border-radius: 10rpx;
            margin-bottom: 20rpx;
            display: flex;
            flex-direction: column;
            justify-content: center;
            background-color: #fff;
            padding: 0 20rpx;
            box-sizing: border-box;
            position: relative;
            box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 0, 0, 0.1);
        }
        .cell-item-icon {
            width: 64rpx;
            height: 64rpx;
            position: absolute;
            right: 20rpx;
            top: 20rpx;
        }
    }
</style>
subPackage/statistics/index.vue
@@ -27,32 +27,36 @@
        </view>
        <view class="">
            <caption-row title="共治人员"></caption-row>
            <caption-row title="共治力量"></caption-row>
            <view class="menu bgc-ff flex flex-wrap">
                <view class="menu-item flex f-d-c a-i-c">
                    <text class="c-main f-32 fw mb-20">0</text>
                    <text class="f-28">党员</text>
                </view>
                <view class="menu-item flex f-d-c a-i-c">
                    <text class="c-main f-32 fw mb-20">{{gridData.gridStatistics}}</text>
                    <text class="f-28">网格</text>
                    <text class="c-main f-32 fw mb-20">0</text>
                    <text class="f-28">党组织</text>
                </view>
                <view class="menu-item flex f-d-c a-i-c">
                    <text class="c-main f-32 fw mb-20">{{gridData.gridStatistics}}</text>
                    <text class="f-28">网格员</text>
                </view>
            <!--     <view class="menu-item flex f-d-c a-i-c">
                    <text class="c-main f-32 fw mb-20">0</text>
                    <text class="f-28">社工</text>
                </view>
                </view> -->
                <view class="menu-item flex f-d-c a-i-c">
                    <text class="c-main f-32 fw mb-20">{{gridData.companyStatistics}}</text>
                    <text class="f-28">物业</text>
                    <text class="f-28">物业人员</text>
                </view>
                <view class="menu-item flex f-d-c a-i-c">
                    <text class="c-main f-32 fw mb-20">0</text>
                    <text class="f-28">业委会</text>
                </view>
                <view class="menu-item flex f-d-c a-i-c">
                <!-- <view class="menu-item flex f-d-c a-i-c">
                    <text class="c-main f-32 fw mb-20">0</text>
                    <text class="f-28">群团组织</text>
                </view>
                </view> -->
            </view>
        </view>
subPackage/user/editUserInfo/editUserInfo.vue
@@ -15,7 +15,7 @@
                
            </view>
        </view>
        <footer-btn text="确定"   />
        <footer-btn text="确定"   @click="submitInfo"  />
    </view>
</template>
subPackage/workbench/views/cscj.vue
@@ -38,10 +38,27 @@
                    </u--input>
                </u-form-item>
                <u-form-item class="form-item" labelWidth="100" label="经纬度:" prop="location">
                <!-- <u-form-item class="form-item" labelWidth="100" label="经纬度:" prop="location">
                    <u--input border="none" disabled disabledColor="#ffffff" v-model="form.jwd" placeholder="请输入">
                    </u--input>
                </u-form-item> -->
                <u-form-item label="经纬度:" prop="location">
                    <view class="address-row flex">
                        <view class="address-content f-28" v-if="form.jwd">
                            {{form.jwd}}
                        </view>
                        <view class="address-content f-28 c-99" v-if="!form.jwd">
                            请选择地址
                        </view>
                        <view class="location-btn c-main f-24" @click="getLocation()">
                            获取地址
                        </view>
                    </view>
                </u-form-item>
            </view>
            <view class="item">
@@ -620,6 +637,16 @@
                    }
                });
            },
            getLocation() {
                uni.chooseLocation({
                    success: (res) => {
                        this.form.lat = res.latitude;
                        this.form.lng = res.longitude;
                        this.form.jwd = `${Number(res.latitude).toFixed(6)},${Number(res.longitude).toFixed(6)}`
                    }
                })
            },
            async getDoorplateAddressList(code, type) {
                const res = await getDoorplateAddressList(code, type)
@@ -853,4 +880,29 @@
        background-color: green;
        border-radius: 0rpx 10rpx 10rpx 0rpx;
    }
    .address-row {
        flex: 1;
        justify-content: flex-end;
        align-items: center;
    }
    .address-content {
        width: calc(100% - 116rpx - 20rpx);
        margin-right: 20rpx;
        text-align: right;
    }
    .location-btn {
        width: 116rpx;
        height: 46rpx;
        line-height: 46rpx;
        border-radius: 4rpx;
        border: 1px solid currentColor;
        padding: 0;
        background-color: #fff;
        text-align: center;
    }
</style>
subPackage/workbench/views/csjl.vue
@@ -66,14 +66,18 @@
                tabsType: 0,
                status: 'nomore',
                currentRole: {},
                from:"home"   //页面跳入来源
                from:"home"   ,//页面跳入来源
                houseCode:""
            }
        },
        onLoad(option){
            if(option.from){
                this.from = option.from;
                this.iptContext = option.name;
                // this.iptContext = option.name;
                // this.getrRecordList(option.name);
            }
            if(option.stdId){
                this.houseCode = option.stdId
            }
        },
        
@@ -109,7 +113,8 @@
                    placeName,
                    isPerfect,
                    roleName,
                    ...this.pagingParams
                    ...this.pagingParams,
                    houseCode:this.houseCode
                })
                if (code !== 200) {
                    this.$u.func.showToast({