首页扫码逻辑修改,楼栋、楼盘列表修改,场所采集标签选择组件编写
10 files modified
1 files added
| | |
| | | method: 'GET', |
| | | params |
| | | }) |
| | | } |
| | | |
| | | //标签分类 |
| | | export const getLabelCate = (params) => { |
| | | return http.request({ |
| | | url: '/blade-category/category/getCategory', |
| | | method: 'GET', |
| | | params |
| | | }) |
| | | } |
| | |
| | | // 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', |
| | |
| | | { |
| | | "path": "pages/user/test", |
| | | "style": { |
| | | "navigationBarTitleText": "z-paging插件测试", |
| | | "navigationBarTitleText": "测试页面", |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black" |
| | | } |
| | |
| | | </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>
|
| | |
| | | </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"
|
| | |
| | | path: "/subPackage/workbench/views/patrol"
|
| | | }
|
| | | ],
|
| | | roleType: 2, // 1网格员/系统管理员 、 2居民
|
| | | roleType: 2, // 1网格员/系统管理员 、 2居民 3民警
|
| | | roleTypeName: "街道社区网格",
|
| | | selectBoxShow: false,
|
| | | siteColumns: [],
|
| | |
| | | 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;
|
| | |
| | | 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",
|
| | |
| | | },
|
| | |
|
| | | 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 =="中门牌"){
|
| | |
| | | }
|
| | | }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
|
| | | }) |
| | | }
|
| | | })
|
| | | },
|
| | |
|
| | |
| | | <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="评分"> |
| | |
| | | <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> |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | |
| | | <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>
|
| | |
|
| | |
| | | import {
|
| | | getHouseList
|
| | | } from "@/api/doorplateAddress/doorplateAddress";
|
| | | import { getHouseStatistics } from "@/api/statistics/statistics.js"
|
| | | import { codeName } from "../../../common/setting"; |
| | | export default {
|
| | | components: {},
|
| | |
|
| | |
| | | curSelectSite: {},
|
| | | addressName:"" ,//详细地址
|
| | | neiName:"" ,//居委会名称
|
| | | unitName:"" //单元名称
|
| | | unitName:"" ,//单元名称
|
| | | houseData:{}
|
| | | }
|
| | | },
|
| | | onLoad(e) {
|
| | |
| | | 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')
|
| | |
| | | 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
|
| | |
| | | } = 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>
|
| | |
| | | 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> |
| | |
| | | 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() {
|
| | |
| | | }
|
| | | },
|
| | |
|
| | | getHouseData(code) {
|
| | | getHouseData(code,aoiCode) {
|
| | | getHouseStatistics({
|
| | | code: code,
|
| | | roleType: 1
|
| | | code,
|
| | | aoiCode,
|
| | | roleType: 2
|
| | | }).then(res => {
|
| | | this.houseData = res.data;
|
| | | })
|
| | |
| | | padding: 20rpx;
|
| | | }
|
| | | .cell {
|
| | | padding: 20rpx;
|
| | | |
| | | padding: 20rpx 20rpx 0;
|
| | | .cell-item {
|
| | | // width: 220rpx;
|
| | | width: calc(50% - 20rpx);
|
| | |
| | | right: 20rpx;
|
| | | top: 20rpx;
|
| | | }
|
| | | .cell-item:nth-last-child(-n+2) {
|
| | | margin-bottom:0;
|
| | | } |
| | | }
|
| | |
|
| | | </style> |
| | |
| | | </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">
|
| | |
| | |
|
| | | if(e.from){
|
| | | this.from = e.from;
|
| | | |
| | | }
|
| | |
|
| | |
|
| | |
| | | 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 => {
|
| | | // 事件格式处理
|
| | |
| | | import uploadMixin from "@/mixin/uploadMixin";
|
| | | import lineItem from "@/subPackage/workbench/components/lineItem.vue"
|
| | | import {
|
| | | getLabelList
|
| | | getLabelList,getLabelCate
|
| | | } from "@/api/label/categoryLabel.js";
|
| | | import {
|
| | | getDoorplateAddressDetail,
|
| | |
| | | },
|
| | | onShow() {
|
| | | this.getLabel()
|
| | | this.getCategory();
|
| | | // this.getLocation()
|
| | | },
|
| | | methods: {
|
| | |
| | | popup() {
|
| | | this.$refs.uniPopup.open()
|
| | | },
|
| | | |
| | | getCategory(){
|
| | | getLabelCate({
|
| | | level:2,
|
| | | parentNo:11
|
| | | }).then(res=>{
|
| | | console.log("category===>",res)
|
| | | })
|
| | | },
|
| | | |
| | |
|
| | | getLabel() {
|
| | | getLabelList({
|
| New file |
| | |
| | | <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> |