首页扫码逻辑修改,楼栋、楼盘列表修改,场所采集标签选择组件编写
10 files modified
1 files added
1609 ■■■■ changed files
api/label/categoryLabel.js 9 ●●●●● patch | view | raw | blame | history
common/setting.js 2 ●●● patch | view | raw | blame | history
pages.json 2 ●●● patch | view | raw | blame | history
pages/home/index.vue 45 ●●●●● patch | view | raw | blame | history
pages/user/center.vue 2 ●●● patch | view | raw | blame | history
pages/user/test.vue 503 ●●●● patch | view | raw | blame | history
subPackage/house/family/index.vue 94 ●●●●● patch | view | raw | blame | history
subPackage/house/list/index.vue 21 ●●●●● patch | view | raw | blame | history
subPackage/house/roomDetails/index.vue 10 ●●●●● patch | view | raw | blame | history
subPackage/workbench/views/cscj.vue 13 ●●●●● patch | view | raw | blame | history
subPackage/workbench/views/cscj.vue.bak 908 ●●●●● patch | view | raw | blame | history
api/label/categoryLabel.js
@@ -7,4 +7,13 @@
        method: 'GET',
        params
    })
}
//标签分类
export const getLabelCate = (params) => {
    return http.request({
        url: '/blade-category/category/getCategory',
        method: 'GET',
        params
    })
}
common/setting.js
@@ -12,7 +12,7 @@
    // devUrl: 'https://sk.hubeishuiyi.cn',
    // devUrl: 'http://192.168.1.156:9528',
    // devUrl:'http://192.168.1.50:9528',
    // devUrl: 'http://192.168.0.112:9528',
    // devUrl: 'http://192.168.0.106:9528',
    devUrl:'https://srgdjczzxtpt.com:2080/api',
    
    // devUrl:'http://z4042833u6.wicp.vip',
pages.json
@@ -23,7 +23,7 @@
        {
            "path": "pages/user/test",
            "style": {
                "navigationBarTitleText": "z-paging插件测试",
                "navigationBarTitleText": "测试页面",
                "navigationBarBackgroundColor": "#fff",
                "navigationBarTextStyle": "black"
            }
pages/home/index.vue
@@ -14,6 +14,9 @@
        </view>
        <view class="content">
            <view class="">
                <view class="section flex j-c-s-a a-i-c mb-20" v-if="isShowContact && curSelectSite.addressType == 1">
                    <view class="section-item" v-for="(i,k) in contactList" :key="k" v-if="i.name"   @click="navigatorPage(`${i.path}?id=${i.id}`)">
                        <image class="section-item-bg" :src="i.bgImg" mode="aspectFill"></image>
@@ -114,7 +117,7 @@
                </view>
            </view> -->
            <view class="bgc-ff mb-20 p-20 pb-20" v-if="jobList.length && roleType == 1">
            <view class="bgc-ff mb-20 p-20 pb-20" v-if="jobList.length">
                <caption-row title="工作台" />
                <u-grid :border="false" col="4">
                    <u-grid-item @click="navigatorPage(item.path)" v-for="(item, index) in jobList" :index="index"
@@ -261,7 +264,7 @@
                        path: "/subPackage/workbench/views/patrol"
                    }
                ],
                roleType: 2, // 1网格员/系统管理员 、  2居民
                roleType: 2, // 1网格员/系统管理员 、  2居民   3民警
                roleTypeName: "街道社区网格",
                selectBoxShow: false,
                siteColumns: [],
@@ -478,6 +481,10 @@
                    type = 2
                    this.roleType = 2
                    this.roleTypeName = "居民"
                }else if (roleName == '民警'){
                    type = 3
                    this.roleType = 3
                    this.roleTypeName = "街道社区网格"
                }
                const res = await getFuncList(type, roleName)
                this.columnData = res.data;
@@ -620,7 +627,7 @@
                            index = this.getLiveMenuItem(arr, 1)
                            index2 = this.getLiveMenuItem(arr, 2)
                        }
                        if (index2 == -1) {
                        if (index2 == -1  && this.roleType == 2) {
                            arr.push({
                                name: "租客上报",
                                path: "/subPackage/bs/views/zhsb",
@@ -761,15 +768,15 @@
            },
            
            getHouseType(code){
                // getQrCodeDetail
                
                getPublicSecurityDetail({
                    // roleName:"网格员"
                // getPublicSecurityDetail
                  getQrCodeDetail({
                    roleName:"网格员",
                    addressCode:code,
                }).then(res=>{
                    console.log(res)
                    let {isJur,doorplateType, addressLevel,aoiName,addressName,neiName,buildingName,unitName } = res.data;
                    // if(isJur == 1){
                    let {isJur,doorplateType, addressLevel,aoiName,addressName,neiName,buildingName,unitName,aoiCode,neiCode,unitCode,buildingCode } = res.data;
                    if(isJur == 1){
                       if(doorplateType == "户室牌"){
                           this.$u.func.globalNavigator(`/subPackage/house/roomDetails/index?id=${code}&from=scan`,"navTo")
                       }else if (doorplateType =="中门牌"){
@@ -781,21 +788,21 @@
                           }
                       }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")
                           this.$u.func.globalNavigator(`${url}?id=${code}&address=${addressName}&neiName=${neiName}&housingName=${aoiName}&buildingName=${buildingName}&buildingCode=${buildingCode}&aoiCode=${aoiCode}&neiCode=${neiCode}`,"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")
                           this.$u.func.globalNavigator(`${url}?id=${code}&address=${addressName}&neiName=${neiName}&housingName=${aoiName}&buildingName=${buildingName}&unitName=${unitName}&unitCode=${unitCode}&neiCode=${neiCode}&buildingCode=${buildingCode}`,"navTo")
                       }else if (doorplateType  =="大门牌"){
                           this.$u.func.globalNavigator(`/subPackage/house/list/index?id=${code}&title=${aoiName}&neiName=${neiName}&address=${addressName}`,"navTo")
                           this.$u.func.globalNavigator(`/subPackage/house/list/index?id=${code}&title=${aoiName}&neiName=${neiName}&address=${addressName}&neiCode=${neiCode}&aoiCode=${aoiCode}`,"navTo")
                       }
                    // }else {
                    //     uni.showModal({
                    //         title:"提示!",
                    //         content:"该区域不是您管辖范围",
                    //         showCancel:false
                    //     })
                    // }
                    }
                    else {
                        uni.showModal({
                            title:"提示!",
                            content:"该区域不是您管辖范围",
                            showCancel:false
                        })
                    }
                })    
            },
            
pages/user/center.vue
@@ -64,7 +64,7 @@
                <u-cell title="修改密码"  :border="false"   isLink  url="/subPackage/user/password/index">
                    <image slot="icon" src="/static/icon/menu-center-03.png" class="icon" mode=""></image>
                </u-cell>
                <!-- <u-cell title="签名"  :border="false"   isLink  url="/subPackage/article/signature">
                <!-- <u-cell title="测试页面"  :border="false"   isLink  url="test">
                    <image slot="icon" src="/static/icon/menu-center-03.png" class="icon" mode=""></image>
                </u-cell> -->
                <!-- <u-cell-item title="评分">
pages/user/test.vue
@@ -1,341 +1,97 @@
<template>
    <view class="">
        <z-paging ref="paging" v-model="tenantList" @query="queryList" loading-more-no-more-text="没有更多了"
            @onRefresh="refreshList">
            <view class="header bgc-ff" slot="top">
                <!-- <view class="filter-box">
                <chenchuang-CCDropDownFilter :filterData='filterData' :defaultIndex='defaultIndex'
                    @onSelected='handleSelect'></chenchuang-CCDropDownFilter>
            </view> -->
                <view class="tabs">
                    <u-tabs :list="tabsList" :current="tabIndex" @click="tabClick" :inactiveStyle="{color:'#999999'}"
                        :activeStyle="{color:'#017BFC'}"></u-tabs>
        <view class="cell  flex j-c-s-b a-i-c  bgc-ff"   @click="isShow = true">
            <text class="f-28">选择标签</text>
            <u-icon name="arrow-right"></u-icon>
        </view>
        <u-popup :show="isShow" @close="isShow = false"   :safeAreaInsetTop="true"  mode="bottom"  :closeable="true"  round="12">
            <view class="popup-title fw f-30">标签选择</view>
            <view class="popup-list flex a-i-c">
                <scroll-view scroll-y="true"  class="scroll">
                <view class="popup-box bgc-f4">
                    <view :class="['box-item','f-28',index == fIndex?'bgc-ff':'']"  v-for="(item,index)  in  categoryList"   :key="index"  @click="handleSelect(item,index)">
                        {{item.categoryName}}
                    </view>
                </view>
                <view class="search-box">
                    <u-search placeholder="请输入租户名" v-model="keyword" :clearabled="true" :showAction="true"
                        :animation="true" @search="search" @clear="clear" @custom="search"></u-search>
                </scroll-view>
                <scroll-view scroll-y="true"  class="scroll">
                <view class="popup-box">
                    <view :class="['box-item','f-28',item.isSelect?'c-main fw':'']"  v-for="(item,index)  in  childList"   :key="index"  @click="handleSelectChild(item,index)">
                        {{item.categoryName}}
                    </view>
                </view>
                </scroll-view>
            </view>
            <view class="content">
                <!-- <view class="row flex  j-c-s-b a-i-c" v-if="tenantList.length">
                <view v-for="(item,index) in statistics" :key="index" class="row-item bgc-ff flex a-i-c">
                    <view v-if="item.term =='shortTerm' " class="dot bgc-orange"></view>
                    <view v-if="item.term =='middleTerm' " class="dot bgc-main"></view>
                    <view v-if="item.term =='longTerm' " class="dot bgc-green"></view>
                    <text class="f-24">{{formatTerm(item.term)}}{{item.total}}户 ({{item.personNum}})人</text>
                </view>
            </view> -->
                <view class="list bgc-ff" v-for="(records,index) in tenantList" :key="index">
                    <view class="flex j-c-s-b a-i-c">
                        <view class="flex a-i-c">
                            <text class="f-32 mr-50">{{ records.tenantName }}</text>
                            <view class="flex a-i-c">
                                <u-icon name="phone-fill" color="#017BFC"></u-icon>
                                <text class="f-28 ml-10">{{ records.phone || '未填写' }}</text>
                            </view>
                        </view>
                        <u-tag :text="showStatus(records.auditStatus)" type="success" plain plainFill></u-tag>
                    </view>
                    <view class="list-address f-28 c-99">
                        {{ records.houseName }}
                    </view>
                    <view class="list-action flex ">
                        <view class="action-item" @click="tenantManage(records)">
                            <u-icon name="/static/icon/list-02.png" width="40rpx" height="40rpx"></u-icon>
                            <text class="f-28 c-main ml-10">租客管理</text>
                        </view>
                        <view class="action-item">
                            <u-icon name="/static/icon/list-01.png" width="40rpx" height="40rpx"></u-icon>
                            <text class="f-28 c-main ml-10">走访日志</text>
                        </view>
                    </view>
                </view>
            </view>
            <u-toast ref="uToast"></u-toast>
            <!-- <u-loadmore :status="loadingStatus" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="已经到底了" line />-->
        </z-paging>
        </u-popup>
    </view>
</template>
<script>
    import {
        getRentalHouseContent,
        getStatistics
    } from '@/api/houseRental/houseRental.js'
     getLabelCate
    } from "@/api/label/categoryLabel.js";
    export default {
        data() {
            return {
                tabsList: [{
                        name: '全部',
                        value: ''
                    },
                    {
                        name: '待确认',
                        value: '0'
                    },
                    {
                        name: '已确认',
                        value: '1'
                    },
                    {
                        name: '未到期',
                        value: '10'
                    },
                    {
                        name: '即将到期',
                        value: '20'
                    },
                    {
                        name: '已到期',
                        value: '30'
                    }
                ],
                filterData: [
                    [{
                            name: '全部',
                            value: ''
                        },
                        {
                            name: '待确认',
                            value: '0'
                        },
                        {
                            name: '已确认',
                            value: '1'
                        },
                        // {
                        //     name: '审核不通过',
                        //     value: '2'
                        // },
                        {
                            name: '未到期',
                            value: '10'
                        },
                        {
                            name: '即将到期',
                            value: '20'
                        },
                        {
                            name: '已到期',
                            value: '30'
                        }
                    ],
                    [{
                            name: '楼层',
                            value: ''
                        },
                        {
                            name: '1楼',
                            value: '1'
                        },
                        {
                            name: '2楼',
                            value: '2'
                        },
                        {
                            name: '3楼',
                            value: '3'
                        }
                    ]
                ],
                defaultIndex: [0, 0],
                keyword: "",
                statistics: [],
                tenantList: [],
                loadingStatus: 'nomore',
                pagingParams: {
                    current: 1,
                    size: 10
                },
                selectParams: {},
                tenantStatus: [{
                        name: '未到期',
                        value: 0
                    },
                    {
                        name: '已到期',
                        value: 1
                    },
                    {
                        name: '已终止',
                        value: 2
                    },
                ],
                tabIndex: 0
              isShow:false,
              categoryList:[],
              childList:[],
              fIndex:0,
              cId:null,
              showLabelList:[]
            }
        },
        computed: {
            formatTerm() {
                return (term => {
                    if (term == 'longTerm') {
                        return "长期"
                    } else if (term == 'middleTerm') {
                        return "中期"
                    } else if (term == 'shortTerm') {
                        return "短期"
                    }
                })
            }
        },
        onLoad() {
            this.currentRole = uni.getStorageSync('activeRole')
            // this.getStatistics()
            this.getCategory(1);
            getLabelCate().then(res=>{
                console.log(res)
            })
        },
        onShow() {
            this.tenantList = []
            // this.getRentalHouseInfo()
        },
        // onReachBottom() {
        //     this.pagingParams.current++
        //     this.getRentalHouseInfo()
        // },
        methods: {
            refreshList(){
                this.keyword = "";
                this.$refs.paging.reload();
            },
            queryList(pageNo, pageSize) {
                getRentalHouseContent({
                    tenantName: this.keyword,
                        current: pageNo,
                        size: pageSize
                    }
                ).then(res => {
                    console.log(res);
                    this.$refs.paging.complete(res.data.records);
                })
            },
            showStatus(status) {
                for (let i of this.tabsList) {
                    if (i.value == status) {
                        return i.name
                    }
                }
            },
            handleSelect(res) {
                const [auditStatus, floor] = res
                this.resetParams()
                let params = {}
                if (auditStatus[0].value !== '') {
                    params = {
                        auditStatus: auditStatus[0].value
                    }
                }
                if (floor[0].value !== '') {
                    params = {
                        ...params,
                        floor: floor[0].value
                    }
                }
                this.selectParams = params
                this.getRentalHouseInfo()
                this.getStatistics(auditStatus[0].value)
                // 回到顶部,避免触发触底加载
                uni.pageScrollTo({
                    scrollTop: 0, // 滚动到页面的目标位置(单位px)
                });
            },
            tabClick(item) {
                this.tabIndex = item.index;
                this.pagingParams.current = 1;
                this.pagingParams.auditStatus = item.value;
                this.tenantList = []
                this.getRentalHouseInfo()
                // this.getStatistics(item.value)
            },
            getStatistics(auditStatus = '') {
                const {
                    roleName
                } = this.currentRole
                let params = {
                    roleName
                }
                if (auditStatus) {
                    params = {
                        auditStatus,
                        roleName
                    }
                }
                getStatistics(params).then(res => {
                    this.statistics = res.data
                })
            },
            findObjValue(value, obj) {
                const res = obj.find(item => {
                    return item.value == value
                })
                return res.name
            },
            async getRentalHouseInfo(params = {}) {
                this.$nextTick(() => {
                    this.loadingStatus = 'loadmore'
                    this.$refs.uToast.show({
                        type: 'loading',
                        message: '正在加载',
                        duration: 9999999
                    })
                })
                const {
                    roleName
                } = this.currentRole
                const {
                    code,
                    data: {
                        records
                    }
                } = await getRentalHouseContent({
                    tenantName: this.keyword,
                    ...this.pagingParams,
                    roleName,
                    ...this.selectParams
                })
                if (code !== 200) {
                    uni.showToast({
                        title: "数据请求错误",
                        icon: "error"
                    })
                    return
                }
                this.tenantList = [...this.tenantList, ...records]
                this.$nextTick(() => {
                    this.$refs.uToast.isShow = false
                })
                this.loadingStatus = 'nomore'
            },
            search() {
                this.resetParams()
                this.getRentalHouseInfo()
            },
            clear() {
                this.keyword = ''
                this.resetParams()
                this.search()
            },
            tenantManage({
                houseCode,
                id
            }) {
                this.$u.func.globalNavigator(`/subPackage/bs/views/rentDetail?houseCode=${houseCode}&id=${id}`)
            },
            resetParams() {
                this.tenantList = []
                this.pagingParams = {
                    current: 1,
                    size: 10
                }
            }
              getCategory(level,id){
                  let params = {
                      level
                  }
                  if(level == 2){
                      params.parentNo = id;
                  }
                  getLabelCate(params).then(res=>{
                      if(res.code == 200){
                          if(level == 2){
                              let data = res.data;
                              for(let i of data){
                                  i.isSelect = false;
                              }
                              this.childList = data;
                          }else {
                              this.categoryList = res.data;
                          }
                      }
                  })
              },
              handleSelect(item,index){
                  this.fIndex = index;
                  this.getCategory(2,item.categoryNo);
              },
              handleSelectChild(item,index){
                  // this.cId = item.id;
                  this.childList[index].isSelect = !this.childList[index].isSelect
              }
        }
    }
</script>
@@ -344,92 +100,35 @@
    page {
        background-color: #F5F5F5;
    }
    .header {
        width: 100%;
        // position: fixed;
        /*#ifdef H5*/
        top: 88rpx;
        /*#endif*/
        /*#ifdef MP-WEIXIN*/
        top: 0;
        /*#endif*/
        left: 0;
        // z-index: 10;
    .cell{
        padding:20rpx;
    }
    .filter-box {
        width: 100%;
        height: 100rpx;
    .popup-title{
        padding: 20rpx 0;
        text-align: center;
    }
    .search-box {
        padding: 20rpx 24rpx 30rpx;
    .scroll{
        height:700rpx;
    }
    .content {
        width: 100%;
        margin-top: 220rpx;
        padding: 0 30rpx;
        box-sizing: border-box;
        .row {
    .scroll:first-child{
        width:40%;
    }
    .scroll:last-child{
        width:60%;
    }
    .popup-list{
        width:100%;
        height:700rpx;
        .bgc-f4{
            background-color:#f4f4f4;
        }
        .popup-box{
            width: 100%;
            padding: 20rpx 0;
        }
        .row-item {
            width: calc(100% / 3 - 10rpx);
            height: 46rpx;
            border-radius: 30rpx;
            padding: 0 20rpx;
            box-sizing: border-box;
        }
        .dot {
            width: 10rpx;
            height: 10rpx;
            border-radius: 50%;
            margin-right: 18rpx;
        }
        .bgc-green {
            background-color: #30D17C;
        }
        .bgc-orange {
            background-color: #FFAC3D;
        }
        .list {
            width: 100%;
            padding: 30rpx 30rpx 0;
            box-sizing: border-box;
            margin-bottom: 20rpx;
            border-radius: 8rpx;
            .list-address {
                padding: 30rpx 0;
            }
            .list-action {
                padding: 22rpx 0 30rpx;
                border-top: 1px solid #F5F5F5;
            }
            .action-item {
                display: flex;
                flex: 1;
                justify-content: center;
            }
            .action-item:first-child {
                border-right: 1px solid #DBDBDB;
            }
            .mr-50 {
                margin-right: 50rpx;
            height:700rpx;
            .box-item{
                width:100%;
                padding:30rpx;
                box-sizing: border-box;
            }
        }
    }
subPackage/house/family/index.vue
@@ -14,9 +14,29 @@
                <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.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" v-if="!unitName">
                      <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>
            </block>
            
            <view class="mt-20 around-p-20 flex a-i-c j-c-c">
            <view class="search-box mt-20 around-p-20 flex a-i-c j-c-c bgc-ff"  v-if="buildingList.length">
                <u-search placeholder="请输入人员名" :showAction="false" @search="getBuildingList" @clear="getBuildingList" v-model="searchKey" :clearabled="true"></u-search>
            </view>
            
@@ -136,6 +156,8 @@
    import {
        getHouseList
    } from "@/api/doorplateAddress/doorplateAddress";
    import { getHouseStatistics } from "@/api/statistics/statistics.js"
import { codeName } from "../../../common/setting";
    export default {
        components: {},
@@ -155,7 +177,8 @@
                curSelectSite: {},
                addressName:""    ,//详细地址
                neiName:""   ,//居委会名称
                unitName:""    //单元名称
                unitName:""    ,//单元名称
                houseData:{}
            }
        },
        onLoad(e) {
@@ -172,22 +195,26 @@
            if(addressType){
                this.addressType = addressType
            }
            this.neiCode = neiCode
            
            if(e.address){       //扫码跳入
                this.addressName = e.address;
                this.neiName = e.neiName;
                this.currentId = e.buildingCode;
                if(e.unitName){
                    this.unitName = e.unitName;
                    uni.setNavigationBarTitle({
                        title:`${housingName}${buildingName}${e.unitName}`
                    })
                    this.getHouseData(neiCode,e.unitCode,1)
                }else{
                    uni.setNavigationBarTitle({
                        title:`${housingName}${buildingName}`
                    })
                    this.getHouseData(neiCode,e.buildingCode,2)
                }
            }
        },
        onShow() {
            this.curSelectSite = uni.getStorageSync('siteInfo')
@@ -229,10 +256,15 @@
                    if (aoiList.length) {
                        this.isShowBuild = true
                        // 正常展示户室数据
                        aoiList.forEach(item => {
                            item.children && item.children.sort((a, b) => a.floor - b.floor)
                        })
                        this.buildingList = aoiList || []
                        if(this.unitName){     //扫单元码进入过滤其它单元
                            this.buildingList = aoiList.filter(e => e.unitName == this.unitName);
                        }else {
                             aoiList.forEach(item => {
                                 item.children && item.children.sort((a, b) => a.floor - b.floor)
                             })
                             this.buildingList = aoiList || []
                        }
                    }
                    if (shopList.length) {
                        this.isShowShop = true
@@ -266,7 +298,21 @@
                } = item
                let url = `/subPackage/house/houseNumber/index?stdId=${addressCode}&addressType=${addressType}`
                this.$u.func.globalNavigator(url, "navTo")
            }
            },
            getHouseData(code,code2,type) {
                let params = {
                    code,
                    roleType:1
                }
                if(type == 1){
                    params.unitCode = code2
                }else {
                    params.buildingCode = code2
                }
                getHouseStatistics(params).then(res => {
                    this.houseData = res.data;
                })
            },
        }
    }
</script>
@@ -430,4 +476,36 @@
        padding: 20rpx;
    }
    .cell {
        padding: 20rpx 20rpx 0;
        .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;
        }
        .cell-item:nth-last-child(-n+2) {
            margin-bottom:0;
        }
    }
    .search-box{
        padding:20rpx;
    }
</style>
subPackage/house/list/index.vue
@@ -95,16 +95,18 @@
                id,
                title,
            } = e
            this.currentId = id
            this.curHouseTitle = title
            if(e.addressType){
                this.addressType = e.addressType
            }
            if(e.address){
            if(e.address){    //扫码跳入
                this.currentId = e.aoiCode;
                this.addressName = e.address;
                this.neiName = e.neiName;
                uni.setNavigationBarTitle({title})
                this.getHouseData(id)
                this.getHouseData(e.neiCode,e.aoiCode)
            }else {
                this.currentId = id
            }
        },
        onShow() {
@@ -185,10 +187,11 @@
                }
            },
            
            getHouseData(code) {
            getHouseData(code,aoiCode) {
                getHouseStatistics({
                    code: code,
                    roleType: 1
                    code,
                    aoiCode,
                    roleType: 2
                }).then(res => {
                    this.houseData = res.data;
                })
@@ -247,8 +250,7 @@
        padding: 20rpx;
    }
    .cell {
        padding: 20rpx;
        padding: 20rpx 20rpx 0;
        .cell-item {
            // width: 220rpx;
            width: calc(50% - 20rpx);
@@ -272,6 +274,9 @@
            right: 20rpx;
            top: 20rpx;
        }
        .cell-item:nth-last-child(-n+2) {
            margin-bottom:0;
        }
    }
    
</style>
subPackage/house/roomDetails/index.vue
@@ -12,7 +12,8 @@
                    </view>
                    
                    <view class="house-address f-26"  v-if="from">
                        {{houseInfo.addressName}}
                        <text>标准地址:</text>
                        <text>{{houseInfo.addressName}}</text>
                    </view>
                    
                    <view class="flex j-c-s-b info-content">
@@ -206,6 +207,7 @@
            
            if(e.from){
                this.from = e.from;
            }
            
            
@@ -274,6 +276,12 @@
                this.houseInfo.houseTitle = aoiName || subAoi
                this.houseInfo.buildingName = buildingName
                this.houseInfo.addressName = addressName
                if(this.from){
                    uni.setNavigationBarTitle({
                        title:`${this.houseInfo.houseTitle}${this.houseInfo.buildingName}${this.houseInfo.unitName}${this.houseInfo.houseName }室`
                    })
                }
                // 判断当前租客有没有过期
                this.rentOutList.forEach(item => {
                    // 事件格式处理
subPackage/workbench/views/cscj.vue
@@ -172,7 +172,7 @@
    import uploadMixin from "@/mixin/uploadMixin";
    import lineItem from "@/subPackage/workbench/components/lineItem.vue"
    import {
        getLabelList
        getLabelList,getLabelCate
    } from "@/api/label/categoryLabel.js";
    import {
        getDoorplateAddressDetail,
@@ -416,6 +416,7 @@
        },
        onShow() {
            this.getLabel()
            this.getCategory();
            // this.getLocation()
        },
        methods: {
@@ -721,6 +722,16 @@
            popup() {
                this.$refs.uniPopup.open()
            },
            getCategory(){
                getLabelCate({
                    level:2,
                    parentNo:11
                }).then(res=>{
                    console.log("category===>",res)
                })
            },
            getLabel() {
                getLabelList({
subPackage/workbench/views/cscj.vue.bak
New file
@@ -0,0 +1,908 @@
<template>
    <view class="container">
        <view class="wrap">
        <u-form labelWidth="70" :model="form" :rules="rules" ref="form">
            <view class="item">
                <!-- u-form-item v-if="!currentId" @click="showPicker = true" class="form-item" labelWidth="100" label="楼栋:"
                    :required="isRequired" :disabled="isDisabled" prop="buildingCode">
                    <u--input border="none" disabledColor="#ffffff" v-model="form.building" placeholder="请选择">
                    </u--input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item> -->
                <view class="box-title">
                    <box-title title="基础信息"></box-title>
                </view>
                <u-form-item class="form-item" labelWidth="100" label="场所名称:" :required="isRequiredPlace"
                    :disabled="isDisabled" prop="placeName">
                    <u--input border="none" v-model="form.placeName" placeholder="请输入">
                    </u--input>
                </u-form-item>
                <u-form-item @click="popup" class="form-item" labelWidth="100" label="标签:" :required="isRequired"
                    :disabled="isDisabled" prop="label">
                    <u--input border="none" disabled disabledColor="#ffffff" placeholder="请选择">
                    </u--input>
                    <u-icon slot="right" name="arrow-right"></u-icon>
                </u-form-item>
                <view v-if="showLabelList.length" class="label" style="border-bottom:1px solid eff1f3;">
                    <view v-for="(item,index) in showLabelList" :key="index" class="activeLabel">
                        <u-tag :closable="currentId?false:true" :show="!item.isClose" size="mini" @close="delTag(item)"
                            :text="item.text"></u-tag>
                    </view>
                </view>
                <u-form-item class="form-item" labelWidth="100" label="备注:" prop="remark">
                    <u--input border="none" v-model="form.remark" placeholder="请输入">
                    </u--input>
                </u-form-item>
                <!-- <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">
                <view class="box-title">
                    <box-title title="负责人信息"></box-title>
                </view>
                <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
                    label="场所负责人:" prop="username">
                    <u--input border="none" v-model="form.username" placeholder="请输入">
                    </u--input>
                </u-form-item>
                <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
                    label="手机号:" prop="phone">
                    <u--input border="none" v-model="form.phone" placeholder="请输入">
                    </u--input>
                </u-form-item>
            </view>
            <view class="item pic" v-if="(currentId && form.images.length) || !currentId ">
                <view class="box-title">
                    <box-title title="场所照片"></box-title>
                </view>
                <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
                    :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount"
                    :capture="uploadConfig.capture" uploadIcon="/static/icon/upload.png" @afterRead="afterReadImg"
                    @delete="deletePic" :disabled="currentId?true:false" :deletable="currentId?false:true">
                </u-upload>
            </view>
        </u-form>
        <view class="item">
            <view class="box-title">
                <box-title title="综治网格">
                    <template slot="titleMore">
                        <view class="title-more">
                            <view class="red item"></view>
                            <view class="orange item">85.9</view>
                            <view class="green item"></view>
                        </view>
                    </template>
                </box-title>
            </view>
            <lineItem :dataInfo="comprehensiveData.basic">
            </lineItem>
            <lineItem :dataInfo="comprehensiveData.scene">
                <template v-slot:pic="{scope}">
                    <view class="image" v-if="scope.value !== ''">
                        <u--image @click="imgPreview(scope.value)" width="200rpx" height="200rpx"
                            :src="scope.value"></u--image>
                    </view>
                    <view class="" v-else>
                        {{scope.value}}
                    </view>
                </template>
            </lineItem>
        </view>
        <view class="item">
            <view class="box-title">
                <box-title title="公安网格">
                    <template slot="titleMore">
                        <view class="title-more">
                            <view class="red item"></view>
                            <view class="orange item">85.9</view>
                            <view class="green item"></view>
                        </view>
                    </template>
                </box-title>
            </view>
            <lineItem :dataInfo="publicData.basic">
            </lineItem>
            <lineItem :dataInfo="publicData.scene">
                <template v-slot:pic="{scope}">
                    {{scope.value}}
                </template>
            </lineItem>
        </view>
        <!-- <view class="bottom">
            <view class="btn">
                <u-button @click="submit" type="primary" text="提交" v-if="!currentId"></u-button>
            </view>
        </view> -->
        </view>
        <footer-btn @click="submit" v-if="!currentId" />
        <uni-popup class="citys_win popup_win" ref="uniPopup" type="bottom">
            <wyh-tree-select :items="labelList" title="标签选择" :showNav="true" defaultActiveColor="#4586fe"
                :activeIds="activeIds" @clickItem="labelClick" :showCancel="false" :showConfirm="false">
            </wyh-tree-select>
        </uni-popup>
        <u-picker :show="showPicker" :defaultIndex="defaultIndex" ref="uPicker" keyName="name" :loading="pickerLoading"
            :columns="pickColumns" @change="changeHandler" @confirm="confirmPicker"
            @cancel="showPicker = false"></u-picker>
    </view>
</template>
<script>
    import uploadMixin from "@/mixin/uploadMixin";
    import lineItem from "@/subPackage/workbench/components/lineItem.vue"
    import {
        getLabelList
    } from "@/api/label/categoryLabel.js";
    import {
        getDoorplateAddressDetail,
        getDoorplateAddressList
    } from "@/api/doorplateAddress/doorplateAddress";
    import {
        getPlaceDetail
    } from '@/api/place/place.js'
    import {
        add
    } from "@/api/place/place";
    import {
        format
    } from "echarts";
    import boxTitle from '../components/boxTitle/index.vue'
    import {
        minioBaseUrl
    } from "../../../common/setting";
    export default {
        mixins: [uploadMixin],
        components: {
            lineItem,
            boxTitle
        },
        data() {
            return {
                isRequired: false,
                isRequiredPlace: true,
                isDisabled: true,
                showPicker: false,
                pickerLoading: false,
                pickColumns: [],
                defaultIndex: [0, 0, 0, 0, 0],
                selectValue: [],
                form: {
                    // buildingCode: "",
                    images: [],
                    label: "",
                    remark: "",
                    imageUrls: "",
                    placeName: "",
                    username: '',
                    phone: '',
                    lat:'',
                    lng:''
                },
                rules: {
                    // 'buildingCode': {
                    //     type: 'string',
                    //     required: true,
                    //     message: '请选择楼栋',
                    //     trigger: ['blur', 'change']
                    // },
                    'placeName': {
                        type: 'string',
                        required: true,
                        message: '请输入场所名称',
                        trigger: ['blur', 'change']
                    },
                    'label': {
                        type: 'string',
                        required: true,
                        message: '请选择标签',
                        trigger: ['blur', 'change'],
                    },
                    'username': {
                        type: 'string',
                        required: true,
                        message: '请输入场所负责人',
                        trigger: ['blur', 'change'],
                    },
                    'phone': {
                        type: 'string',
                        required: true,
                        message: '请输入手机号',
                        trigger: ['blur', 'change'],
                    },
                },
                labelList: [{
                    text: '全部标签',
                    children: [],
                    dot: false
                }, ],
                comprehensiveData: {
                    basic: [{
                            label: "社区名称",
                            name: 'communityName',
                            value: "暂无数据"
                        },
                        {
                            label: "网格名称",
                            name: 'gridName',
                            value: "暂无数据"
                        },
                        {
                            label: "网格员",
                            name: 'realName',
                            value: "暂无数据"
                        },
                        {
                            label: "联系电话",
                            name: 'gridPhone',
                            value: "暂无数据"
                        }
                    ],
                    scene: [{
                            label: "场所照片",
                            name: 'imageUrls',
                            value: "",
                            useSlot: "pic",
                        },
                        {
                            label: "场所负责人",
                            name: 'username',
                            value: "未完善",
                        },
                        {
                            label: "采集人",
                            name: 'createUserName',
                            value: "未完善"
                        },
                        {
                            label: "采集时间",
                            name: 'createTime',
                            value: "未完善"
                        },
                        {
                            label: "历史事件",
                            value: "未完善",
                        }
                    ],
                },
                publicData: {
                    basic: [{
                            label: "公安局",
                            name: 'branchName',
                            value: "暂无数据"
                        },
                        {
                            label: "派出所",
                            name: 'localPoliceStationName',
                            value: "暂无数据"
                        },
                        {
                            label: "辖区民警",
                            name: 'policeman',
                            value: "暂无数据"
                        },
                        {
                            label: "联系电话",
                            name: 'policemanPhone',
                            value: "暂无数据"
                        }
                    ],
                    scene: [{
                            label: "消防照片",
                            useSlot: "pic",
                        },
                        {
                            label: "采集人",
                            value: "未完善"
                        },
                        {
                            label: "采集时间",
                            value: "未完善"
                        },
                        {
                            label: "消防负责人",
                            value: "未完善",
                        },
                        {
                            label: "采集人",
                            value: "未完善"
                        },
                        {
                            label: "采集时间",
                            value: "未完善",
                        },
                        {
                            label: "历史事件",
                            value: "未完善",
                        }
                    ],
                },
                activeIds: [],
                showLabelList: [],
                houseCode: "",
                currentId: "",
                addressType: 2
            }
        },
        watch: {
            activeIds: {
                handler(newVal) {
                    this.form.label = newVal.join(",")
                }
            },
            "form.buildingCode": {
                handler(newVal) {}
            },
            showLabelList(newVal) {}
        },
        created() {
            this.buildColumn()
        },
        mounted() {
        },
        options: {
            styleIsolation: 'shared', // 解除样式隔离
        },
        onLoad(option) {
            console.log(option)
            const {
                type
            } = option
            if (option.addressType) {
                this.addressType = option.addressType
            }
            if (option.id) {
                this.currentId = option.id
            }
            if (option.houseCode) {
                this.houseCode = option.houseCode
                this.form.houseCode = option.houseCode
            }
            if (option.id || option.houseCode) {
                this.getBuildingDetail()
            }
            if (!!type || type != void 0) {
                uni.setNavigationBarTitle({
                    title: '详情'
                })
            }
        },
        onShow() {
            this.getLabel()
            // this.getLocation()
        },
        methods: {
            // getBuildingDetail(params = {}) {
            //     getDoorplateAddressDetail(Object.assign(params, {
            //         stdId: this.stdId
            //     })).then(res => {
            //         let data = res.data
            //         this.form.buildingCode = data.buildingCode
            //         let buildingNameArr = [data.townStreetName, data.neiName, data.streetRuName, data.aoiName,
            //             data.buildingName
            //         ]
            //         let arr = buildingNameArr.filter(e => {
            //             return e != null || e != ''
            //         })
            //         // 赋值
            //         // this.form.placeName = data['placeName']
            //         Object.keys(this.form).forEach(key => {
            //             if (!data[key]) {
            //                 this.form[key] = data.place[key]
            //             } else {
            //                 this.form[key] = data[key]
            //             }
            //         })
            //         this.form.building = arr.join("")
            //         Object.keys(this.comprehensiveData).forEach(key => {
            //             this.comprehensiveData[key].forEach(item => {
            //                 if (!data[item.name]) {
            //                     item.value = data.place[item.name] || '未完善'
            //                 } else {
            //                     item.value = data[item.name] || '未完善'
            //                 }
            //             })
            //             this.publicData[key].forEach(item => {
            //                 if (!data[item.name]) {
            //                     item.value = data.place[item.name] || '未完善'
            //                 } else {
            //                     item.value = data[item.name] || '未完善'
            //                 }
            //             })
            //         })
            //     })
            // },
            getBuildingDetail(params = {}) {
                let idorCodeParams = {}
                if (this.houseCode) {
                    idorCodeParams = {
                        houseCode: this.houseCode,
                        // addressType:this.addressType
                    }
                }
                if (this.addressType) {
                    idorCodeParams.addressType = this.addressType
                }
                if (this.currentId) {
                    idorCodeParams = {
                        id: this.currentId
                    }
                }
                getPlaceDetail({
                    ...params,
                    ...idorCodeParams
                }).then(({
                    code,
                    data
                }) => {
                    if (code !== 200) {
                        uni.showToast({
                            title: "数据加载失败",
                            icon: 'error'
                        })
                        return
                    }
                    const dpaEntity = data?.doorplateAddressEntity || {}
                    const gridEntity = data?.grid || {}
                    // this.form.buildingCode = dpaEntity?.buildingCode || ''
                    let buildingNameArr = [
                        dpaEntity?.townStreetName,
                        dpaEntity?.neiName,
                        dpaEntity?.streetRuName,
                        dpaEntity?.aoiName,
                        dpaEntity?.buildingName
                    ]
                    let arr = buildingNameArr.filter(e => {
                        return e != null || e != ''
                    })
                    this.form.placeName = data['placeName'] || ''
                    Object.keys(this.form).forEach(key => {
                        if (!data[key]) {
                            // this.form[key] = dpaEntity[key] || '未完善'
                            this.form[key] = dpaEntity[key]
                        } else {
                            // this.form[key] = data[key] || '未完善'
                            this.form[key] = data[key]
                        }
                        if (key === "images") {
                            // this.form[key] = data.imageUrls
                            if (data.imageUrls) {
                                this.form.images = this.$setImageUrl(data.imageUrls, 2);
                            } else {
                                this.form.images = []
                            }
                        }
                    })
                    this.form.jwd = `${Number(data.lat).toFixed(6)},${Number(data.lng).toFixed(6)}`
                    this.form.building = arr.join("")
                    setTimeout(() => {
                        data.placePoiLabelVOList.forEach(item => {
                            let label = this.labelList[0].children.find(sl => sl.text === item
                                .labelName) || {}
                            label['isClose'] = false
                            label?.text && this.showLabelList.push(label)
                        })
                    }, 500)
                    Object.keys(this.comprehensiveData).forEach(key => {
                        this.comprehensiveData[key].forEach(item => {
                            if (!data[item.name]) {
                                item.value = dpaEntity[item.name] || '未完善'
                                item.value = gridEntity[item.name] || '未完善'
                            } else {
                                item.value = data[item.name] || '未完善'
                                if (item.name == "imageUrls") {
                                    item.value = this.$setImageUrl(data[item.name])
                                    // item.value = minioBaseUrl + data[item.name] || '未完善'
                                }
                            }
                        })
                        this.publicData[key].forEach(item => {
                            if (!data[item.name]) {
                                item.value = dpaEntity[item.name] || '未完善'
                            } else {
                                item.value = data[item.name] || '未完善'
                            }
                        })
                    })
                })
            },
            //表单提交
            submit() {
                const that = this
                this.$refs.form.validate().then(valid => {
                    if (valid) {
                        if (this.form?.images?.length > 0) {
                            let urls = []
                            this.form.images.forEach(e => {
                                urls.push(e.name)
                            })
                            this.form.imageUrls = urls.join(",")
                        }
                        add(this.form).then(res => {
                            uni.showToast({
                                icon: 'success',
                                title: '提交成功',
                                success() {
                                    setTimeout(() => {
                                        that.$u.func.globalNavigator(
                                            "/pages/home/index", "switchTab")
                                    }, 1000)
                                }
                            })
                        })
                    }
                })
            },
            async buildColumn() {
                //设置街道
                const townStreet = await this.getDoorplateAddressList(null, "townStreet")
                this.setColumn(townStreet, 0)
                //设置社区
                const nei = await this.getDoorplateAddressList(townStreet[0]?.code, "nei")
                this.setColumn(nei, 1)
                //设置路
                const streetRu = await this.getDoorplateAddressList(nei[0]?.code, "streetRu")
                this.setColumn(streetRu, 2)
                //设置地区
                const district = await this.getDoorplateAddressList(streetRu[0]?.code, "district")
                this.setColumn(district, 3)
                //设置楼栋
                const building = await this.getDoorplateAddressList(district[0]?.code, "building")
                this.setColumn(building, 4)
            },
            setColumn(data, index) {
                this.$set(this.pickColumns, index, data)
            },
            getLocation() {
                const that = this
                uni.getLocation({
                    type: 'wgs84', // 坐标系类型
                    success: function(res) {
                        var latitude = res.latitude; // 维度
                        var longitude = res.longitude; // 经度
                        that.form.lng = longitude
                        that.form.lat = latitude
                        that.form.jwd = longitude + "," + latitude
                    },
                    fail: function(res) {
                        console.log('获取定位失败:' + res.errMsg);
                    }
                });
            },
            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)
                return res.data
            },
            confirmPicker(e) {
                if (e.value[4]) {
                    this.selectValue = e.value
                    let arr = this.selectValue.map(e => e.name)
                    this.form.building = arr.join("")
                    this.form.buildingCode = e.value[4].code
                }
                this.showPicker = false
            },
            async changeHandler(e) {
                const {
                    columnIndex,
                    index,
                    // 微信小程序无法将picker实例传出来,只能通过ref操作
                    picker = this.$refs.uPicker
                } = e
                let item = e.values[columnIndex][index]
                //街道
                if (columnIndex === 0) {
                    //获取社区列表
                    const nei = await this.getDoorplateAddressList(item.code, "nei")
                    picker.setColumnValues(1, nei)
                    const streetRu = await this.getDoorplateAddressList(nei[0].code, "streetRu")
                    picker.setColumnValues(2, streetRu)
                    const district = await this.getDoorplateAddressList(streetRu[0].code, "district")
                    picker.setColumnValues(3, district)
                    const building = await this.getDoorplateAddressList(district[0].code, "building")
                    picker.setColumnValues(4, building)
                }
                if (columnIndex === 1) {
                    const streetRu = await this.getDoorplateAddressList(item.code, "streetRu")
                    picker.setColumnValues(2, streetRu)
                    const district = await this.getDoorplateAddressList(streetRu[0].code, "district")
                    picker.setColumnValues(3, district)
                    const building = await this.getDoorplateAddressList(district[0].code, "building")
                    picker.setColumnValues(4, building)
                }
                if (columnIndex === 2) {
                    const district = await this.getDoorplateAddressList(item.code, "district")
                    picker.setColumnValues(3, district)
                    const building = await this.getDoorplateAddressList(district[0].code, "building")
                    picker.setColumnValues(4, building)
                }
                if (columnIndex === 3) {
                    const building = await this.getDoorplateAddressList(item.code, "building")
                    picker.setColumnValues(4, building)
                }
            },
            //弹出层打开
            popup() {
                this.$refs.uniPopup.open()
            },
            getLabel() {
                getLabelList({
                    size: -1
                }).then(res => {
                    let data = res.data.records
                    data.sort((a, b) => a.sort - b.sort)
                    data.forEach(label => {
                        this.labelList[0].children.push({
                            id: label.categoryNo,
                            text: label.categoryName
                        })
                    })
                })
            },
            labelClick(item) {
                //判断label是否已在
                const label = this.showLabelList.find(e => e.id == item.id)
                if (label) {
                    //在,去掉
                    this.showLabelList = this.showLabelList.filter(e => e.id != label.id)
                    this.activeIds = this.activeIds.filter(e => e != label.id)
                } else {
                    //不在,添加
                    item.isClose = false
                    this.showLabelList.push(item)
                    this.activeIds.push(item.id)
                }
                this.showLabelList.sort((a, b) => a.sort - b.sort)
            },
            delTag(label) {
                label.isClose = true
                this.showLabelList = this.showLabelList.filter(e => e.id != label.id)
                this.activeIds = this.activeIds.filter(e => e != label.id)
            },
            imgPreview(value) {
                uni.previewImage({
                    urls: minioBaseUrl + [value],
                })
            },
        }
    }
</script>
<style scoped lang="scss">
    .container {
        position: relative;
        width: calc(100% - 60rpx);
        // height: 100%;
        display: flex;
        flex-direction: column;
        background: #f5f5f5;
        padding: 0 30rpx 20rpx 30rpx;
        .wrap{
            width:100%;
            margin-bottom:120rpx;
        }
        .box-title {
            padding: 10px 0;
            .title-more {
                display: flex;
                align-items: center;
                height: 100%;
                .item {
                    width: 50rpx;
                    height: 40rpx;
                    color: #ffffff;
                    padding: 6rpx;
                    font-size: 2rpx;
                    text-align: center;
                    line-height: 20px;
                }
            }
        }
        .item {
            margin-top: 20rpx;
            background-color: #ffffff;
            border-radius: 8rpx;
            padding: 0 30rpx;
            .form-item {
                background-color: #ffffff;
                padding: 2rpx 10px;
                border-bottom: 0.1px solid #eff1f3;
            }
            .label {
                padding: 10rpx 30rpx;
                display: flex;
                background-color: #ffffff;
                flex-wrap: wrap;
                .activeLabel {
                    // width: 80rpx;
                    margin-left: 10rpx;
                    margin-top: 10rpx
                }
            }
        }
        .pic {
            background-color: #ffffff;
            padding-bottom: 20rpx;
            /deep/ .u-upload__button {
                border: 1rpx solid #EEEEEE;
                background-color: #fff;
            }
        }
        .image {
            padding: 20rpx;
        }
        .bottom {
            padding: 20rpx;
            background-color: #ffffff;
            display: flex;
            justify-content: center;
            align-items: center;
            .btn {
                width: calc(100% - 40rpx);
            }
        }
    }
    /deep/ .u-form-item {
        background-color: #ffffff;
        padding: 2rpx 10px;
        border-bottom: 1px solid #eff1f3;
    }
    .red {
        background-color: red;
        border-radius: 10rpx 0rpx 0rpx 10rpx;
    }
    .orange {
        background-color: orange;
    }
    .green {
        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>