Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/jczz_app
| | |
| | | roleName |
| | | } |
| | | }) |
| | | } |
| | | |
| | | export const getHouseList = (type, name) => { |
| | | return http.request({ |
| | | url: '/blade-doorplateAddress/doorplateAddress/getHousesList', |
| | | method: 'GET', |
| | | params: { |
| | | type, |
| | | name |
| | | } |
| | | }) |
| | | } |
| | | |
| | | export const getHouseInfoList = (type, code) => { |
| | | return http.request({ |
| | | url: '/blade-doorplateAddress/doorplateAddress/getHousesList', |
| | | method: 'GET', |
| | | params: { |
| | | type, |
| | | code |
| | | } |
| | | }) |
| | | } |
| | | |
| | | export const getHouseRentInfo = (code) => { |
| | | return http.request({ |
| | | url: '/blade-doorplateAddress/doorplateAddress/getHouseRentInfo', |
| | | method: 'GET', |
| | | params: { |
| | | code |
| | | } |
| | | }) |
| | | } |
| | |
| | | <template> |
| | | <view class="container"> |
| | | <u-navbar height="48" bgColor="#5887f9" :autoBack="false" safeAreaInsetTop placeholder> |
| | | <view slot="left"> |
| | | <u--text color="#ffffff" text="基层智治" size="18" /> |
| | | </view> |
| | | </u-navbar> |
| | | |
| | | <view class="main"> |
| | | <view class="main-bg"> |
| | | |
| | | </view> |
| | | |
| | | <view class="main-select" @click="selectBoxShow = !selectBoxShow"> |
| | | <u-icon name="map" color="#fff"></u-icon> |
| | | <view> |
| | | 当前场所:{{curSelectSite.name?curSelectSite.name:'暂无绑定场所信息'}} |
| | | </view> |
| | | |
| | | <u-picker title="场所" :show="selectBoxShow" keyName="name" ref="uPicker" :columns="siteColumns" |
| | | @confirm="confirm" @change="changeHandler"></u-picker> |
| | | </view> |
| | | |
| | | <view class="main-btn"> |
| | | <menu-list :menuData="btnList"></menu-list> |
| | | </view> |
| | | |
| | | <view class="main-phone-house"> |
| | | <view v-if="gridDataList.length>0" class="phone-box"> |
| | | <grid-menu :gridData='item' v-for="(item, index) in gridDataList" :key='index'></grid-menu> |
| | | </view> |
| | | |
| | | <view v-if="hasMenu('楼盘表').length>0" class="house-box"> |
| | | <box-title :title="'楼盘表'"></box-title> |
| | | <view class="content"> |
| | | <grid-menu :gridData='item' v-for="(item, index) in houseDataList" :key='index'></grid-menu> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="main-bt pb-40"> |
| | | <view v-if="liveList.length>0" class="mt-20"> |
| | | <box-title :title="'生活'"> |
| | | <template slot="titleMore"> |
| | | <view style="color: red;">titleMore</view> |
| | | </template> |
| | | </box-title> |
| | | <view class="mt-20"> |
| | | <view class="mt-20 b-c-w"> |
| | | <menu-list :menuData="liveList"></menu-list> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view v-if="jobList.length>0" class="mt-20"> |
| | | <box-title :title="'工作台'"></box-title> |
| | | |
| | | <view class="mt-20 b-c-w"> |
| | | <menu-list :border='true' :menuData="jobList"></menu-list> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="mt-20 main-taska"> |
| | | <box-title :title="'我的任务'"></box-title> |
| | | |
| | | <view class="mt-20 b-c-w"> |
| | | <view class="flex"> |
| | | <view class="flex-1" v-for="(item, index) in taskTypeList" :key='index'> |
| | | <cur-menu class='boder-f7f8f9-1 p-all-16' :curMenu="item" :imgShow="false" |
| | | :textShow="true"></cur-menu> |
| | | </view> |
| | | </view> |
| | | <u-cell-group :border='false'> |
| | | <u-cell class="boder-f7f8f9-1" :border='false' :title="item.title" |
| | | v-for="(item, index) in taskList" :key="index"> |
| | | <view slot="right-icon">待处理 {{item.num}}</view> |
| | | </u-cell> |
| | | </u-cell-group> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <tabBar @change='change' :currentTab="0"></tabBar> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import tabBar from "@/components/tabBar/tabBar.vue"; |
| | | import curMenu from "@/components/curMenu/index.vue"; |
| | | import menuList from "@/components/menuList/index.vue"; |
| | | import gridMenu from "@/components/gridMenu/index.vue"; |
| | | import { |
| | | getFuncList |
| | | } from "@/api/doorplateAddress/doorplateAddress"; |
| | | |
| | | export default { |
| | | components: { |
| | | tabBar, |
| | | curMenu, |
| | | menuList, |
| | | gridMenu |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | menuList: [], |
| | | selectRole: {}, |
| | | selectBoxShow: false, |
| | | siteColumns: [], |
| | | curSelectSite: {}, |
| | | columnData: [], |
| | | btnList: [{ |
| | | imgUrl: '/static/img/sys.png', |
| | | title: '扫一扫', |
| | | imgWidth: 54, |
| | | imgHeight: 54 |
| | | }, |
| | | { |
| | | imgUrl: '/static/img/bs.png', |
| | | title: '报事', |
| | | imgWidth: 54, |
| | | imgHeight: 54 |
| | | } |
| | | ], |
| | | gridDataList: [], |
| | | |
| | | houseDataList: [{ |
| | | title: '万达广场', |
| | | useSlot: true |
| | | }, |
| | | { |
| | | title: '万达晶座', |
| | | useSlot: true |
| | | }, |
| | | { |
| | | title: '万达华府', |
| | | useSlot: true |
| | | }, |
| | | { |
| | | title: '万达华府', |
| | | useSlot: true |
| | | } |
| | | ], |
| | | |
| | | liveList: [], |
| | | |
| | | jobList: [], |
| | | |
| | | taskTypeList: [{ |
| | | title: '一次性', |
| | | num: 1, |
| | | }, |
| | | { |
| | | title: '周期性', |
| | | num: 0, |
| | | } |
| | | ], |
| | | |
| | | taskList: [{ |
| | | title: '综治任务', |
| | | num: 0 |
| | | }, |
| | | { |
| | | title: '住建任务', |
| | | num: 0 |
| | | }, |
| | | { |
| | | title: '公安任务', |
| | | num: 0 |
| | | }, |
| | | ], |
| | | } |
| | | }, |
| | | |
| | | onShow() { |
| | | this.init() |
| | | }, |
| | | |
| | | computed: { |
| | | hasMenu() { |
| | | return (name) => { |
| | | let resultArr = [] |
| | | resultArr = this.getMenu(name, this.menuList, resultArr) |
| | | if (resultArr.length > 0) { |
| | | return resultArr |
| | | } else { |
| | | return [] |
| | | } |
| | | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | methods: { |
| | | //初始化 |
| | | init() { |
| | | this.curSelectSite = {} |
| | | this.menuList = uni.getStorageSync("menu") |
| | | this.selectRole = uni.getStorageSync("activeRole") |
| | | this.getMenuList() |
| | | this.getSiteList() |
| | | uni.hideTabBar() |
| | | }, |
| | | //获取场所列表 |
| | | async getSiteList() { |
| | | console.log(this.selectRole) |
| | | let type = null |
| | | let roleName = this.selectRole.roleName |
| | | console.log("roleName", roleName) |
| | | if (roleName == '网格员' || roleName == '系统管理员') { |
| | | type = 1 |
| | | } else if (roleName == '场所负责人') { |
| | | type = 2 |
| | | } else if (roleName == '居民') { |
| | | type = 3 |
| | | } |
| | | |
| | | const res = await getFuncList(type, roleName) |
| | | console.log(res, "-----------") |
| | | let data = res.data |
| | | this.siteColumns = [] |
| | | |
| | | this.buildSiteColumn(data, 0) |
| | | console.log(this.siteColumns) |
| | | |
| | | }, |
| | | |
| | | buildSiteColumn(dataList, index) { |
| | | if (dataList.length > 0) { |
| | | this.siteColumns[index] = dataList |
| | | if (dataList[0].children && dataList[0].children.length > 0) { |
| | | this.buildSiteColumn(dataList[0].children, index + 1) |
| | | } |
| | | } |
| | | }, |
| | | |
| | | //获取首页菜单 |
| | | getMenuList() { |
| | | console.log("当前角色菜单", this.menuList) |
| | | this.getPhoneList() |
| | | this.getLiveList() |
| | | this.getWorkbenchList() |
| | | }, |
| | | getPhoneList() { |
| | | this.gridDataList = [] |
| | | const resultArr = this.hasMenu('快捷拨号') |
| | | if (resultArr.length == 0) { |
| | | return |
| | | } |
| | | |
| | | const topMenu = resultArr[0] |
| | | |
| | | topMenu.children.forEach(menu => { |
| | | this.gridDataList.push({ |
| | | title: menu.name, |
| | | data: "无数据", |
| | | phone: "无" |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | //获取生活菜单 |
| | | getLiveList() { |
| | | this.liveList = [] |
| | | const resultArr = this.hasMenu('生活') |
| | | if (resultArr.length == 0) { |
| | | return |
| | | } |
| | | |
| | | const topMenu = resultArr[0] |
| | | |
| | | topMenu.children.forEach(menu => { |
| | | this.liveList.push({ |
| | | imgUrl: menu.source, |
| | | title: menu.name, |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | //获取工作台菜单 |
| | | getWorkbenchList() { |
| | | this.jobList = [] |
| | | const resultArr = this.hasMenu('工作台') |
| | | if (resultArr.length == 0) { |
| | | return |
| | | } |
| | | |
| | | const topMenu = resultArr[0] |
| | | |
| | | topMenu.children.forEach(menu => { |
| | | this.jobList.push({ |
| | | imgUrl: menu.source, |
| | | title: menu.name, |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | getMenu(menuName, menuList, resultArr) { |
| | | // console.log(menuList, menuName) |
| | | for (var i = 0; i < menuList.length; i++) { |
| | | if (menuList[i].name == menuName) { |
| | | resultArr.push(menuList[i]) |
| | | } else { |
| | | if (menuList[i].children && menuList[i].children.length) { |
| | | this.getMenu(menuName, menuList[i].children, resultArr); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return resultArr |
| | | |
| | | }, |
| | | |
| | | change(index) { |
| | | let url = index |
| | | this.$u.func.globalNavigator(url, "switchTab") |
| | | }, |
| | | changeHandler(e) { |
| | | const { |
| | | columnIndex, |
| | | value, |
| | | values, // values为当前变化列的数组内容 |
| | | index, |
| | | // 微信小程序无法将picker实例传出来,只能通过ref操作 |
| | | picker = this.$refs.uPicker |
| | | } = e |
| | | // 当第一列值发生变化时,变化第二列(后一列)对应的选项 |
| | | if (columnIndex === 0 && this.columnData.length > 0) { |
| | | // picker为选择器this实例,变化第二列对应的选项 |
| | | picker.setColumnValues(1, this.columnData[index]) |
| | | } |
| | | }, |
| | | // 回调参数为包含columnIndex、value、values |
| | | confirm(e) { |
| | | console.log('confirm', e) |
| | | this.curSelectSite = e.value[e.value.length - 1] |
| | | this.selectBoxShow = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .container { |
| | | width: 100%; |
| | | height: 100%; |
| | | |
| | | display: flex; |
| | | flex-direction: column; |
| | | background: #F9F9FA; |
| | | color: #fff; |
| | | font-size: 32rpx; |
| | | |
| | | .main { |
| | | position: relative; |
| | | height: 0; |
| | | flex: 1; |
| | | overflow-y: auto; |
| | | |
| | | .main-bg { |
| | | height: 36%; |
| | | background: royalblue; |
| | | } |
| | | |
| | | .main-select { |
| | | margin: 0 6%; |
| | | position: absolute; |
| | | bottom: 74%; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .main-btn { |
| | | margin: 0 6%; |
| | | position: absolute; |
| | | top: 28%; |
| | | width: 88%; |
| | | height: 20%; |
| | | background: #fff; |
| | | border-radius: 10rpx; |
| | | color: #000; |
| | | } |
| | | |
| | | .main-phone-house { |
| | | margin-top: 180rpx; |
| | | width: 100%; |
| | | |
| | | .phone-box { |
| | | display: flex; |
| | | |
| | | &>view { |
| | | margin: 0 16rpx; |
| | | height: 116rpx; |
| | | flex: 1; |
| | | background: linear-gradient(to right, #407BE9, #73A2F9); |
| | | border-radius: 10rpx; |
| | | } |
| | | } |
| | | |
| | | .house-box { |
| | | .content { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | &>view { |
| | | margin: 0 16rpx; |
| | | margin-top: 20rpx; |
| | | min-width: calc((100% - 16rpx * 6) / 3); |
| | | height: 66rpx; |
| | | background: linear-gradient(to right, #407BE9, #73A2F9); |
| | | border-radius: 33rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .main-bt { |
| | | margin-top: 2%; |
| | | width: 100%; |
| | | color: #000; |
| | | } |
| | | } |
| | | } |
| | | <template>
|
| | | <view class="container">
|
| | | <u-navbar height="48" bgColor="#5887f9" :autoBack="false" safeAreaInsetTop placeholder>
|
| | | <view slot="left">
|
| | | <u--text color="#ffffff" text="基层智治" size="18" />
|
| | | </view>
|
| | | </u-navbar>
|
| | |
|
| | | <view class="main">
|
| | | <view class="main-bg">
|
| | |
|
| | | </view>
|
| | |
|
| | | <view class="main-select" @click="selectBoxShow = !selectBoxShow">
|
| | | <u-icon name="map" color="#fff"></u-icon>
|
| | | <view>
|
| | | 当前场所:{{curSelectSite.name?curSelectSite.name:'暂无绑定场所信息'}}
|
| | | </view>
|
| | |
|
| | | <u-picker title="场所" :show="selectBoxShow" keyName="name" ref="uPicker" :columns="siteColumns"
|
| | | @confirm="confirm" @change="changeHandler"></u-picker>
|
| | | </view>
|
| | |
|
| | | <view class="main-btn">
|
| | | <menu-list :menuData="btnList"></menu-list>
|
| | | </view>
|
| | |
|
| | | <view class="main-phone-house">
|
| | | <view v-if="gridDataList.length>0" class="phone-box">
|
| | | <grid-menu :gridData='item' v-for="(item, index) in gridDataList" :key='index'></grid-menu>
|
| | | </view>
|
| | |
|
| | | <view v-if="hasMenu('楼盘表').length>0" class="house-box">
|
| | | <box-title :title="'楼盘表'"></box-title>
|
| | | <view class="content">
|
| | | <grid-menu :gridData='item' v-for="(item, index) in houseDataList.slice(0, 6)" :key='index'
|
| | | @click.native="pushPage(item)"></grid-menu>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="main-bt pb-40">
|
| | | <view v-if="liveList.length>0" class="mt-20">
|
| | | <box-title :title="'生活'">
|
| | | <template slot="titleMore">
|
| | | <view style="color: red;">titleMore</view>
|
| | | </template>
|
| | | </box-title>
|
| | | <view class="mt-20">
|
| | | <view class="mt-20 b-c-w">
|
| | | <menu-list :menuData="liveList"></menu-list>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view v-if="jobList.length>0" class="mt-20">
|
| | | <box-title :title="'工作台'"></box-title>
|
| | |
|
| | | <view class="mt-20 b-c-w">
|
| | | <menu-list :border='true' :menuData="jobList"></menu-list>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="mt-20 main-taska">
|
| | | <box-title :title="'我的任务'"></box-title>
|
| | |
|
| | | <view class="mt-20 b-c-w">
|
| | | <view class="flex">
|
| | | <view class="flex-1" v-for="(item, index) in taskTypeList" :key='index'>
|
| | | <cur-menu class='boder-f7f8f9-1 p-all-16' :curMenu="item" :imgShow="false"
|
| | | :textShow="true"></cur-menu>
|
| | | </view>
|
| | | </view>
|
| | | <u-cell-group :border='false'>
|
| | | <u-cell class="boder-f7f8f9-1" :border='false' :title="item.title"
|
| | | v-for="(item, index) in taskList" :key="index">
|
| | | <view slot="right-icon">待处理 {{item.num}}</view>
|
| | | </u-cell>
|
| | | </u-cell-group>
|
| | | </view>
|
| | |
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <tabBar @change='change' :currentTab="0"></tabBar>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import tabBar from "@/components/tabBar/tabBar.vue";
|
| | | import curMenu from "@/components/curMenu/index.vue";
|
| | | import menuList from "@/components/menuList/index.vue";
|
| | | import gridMenu from "@/components/gridMenu/index.vue";
|
| | | import {
|
| | | getFuncList,
|
| | | getHouseList
|
| | | } from "@/api/doorplateAddress/doorplateAddress";
|
| | |
|
| | | export default {
|
| | | components: {
|
| | | tabBar,
|
| | | curMenu,
|
| | | menuList,
|
| | | gridMenu
|
| | | },
|
| | |
|
| | | data() {
|
| | | return {
|
| | | menuList: [],
|
| | | selectRole: {},
|
| | | selectBoxShow: false,
|
| | | siteColumns: [],
|
| | | curSelectSite: {},
|
| | | columnData: [],
|
| | | btnList: [{
|
| | | imgUrl: '/static/img/sys.png',
|
| | | title: '扫一扫',
|
| | | imgWidth: 54,
|
| | | imgHeight: 54
|
| | | },
|
| | | {
|
| | | imgUrl: '/static/img/bs.png',
|
| | | title: '报事',
|
| | | imgWidth: 54,
|
| | | imgHeight: 54
|
| | | }
|
| | | ],
|
| | | gridDataList: [],
|
| | | houseDataList: [{
|
| | | title: '-',
|
| | | useSlot: true
|
| | | }],
|
| | |
|
| | | liveList: [],
|
| | |
|
| | | jobList: [],
|
| | |
|
| | | taskTypeList: [{
|
| | | title: '一次性',
|
| | | num: 1,
|
| | | },
|
| | | {
|
| | | title: '周期性',
|
| | | num: 0,
|
| | | }
|
| | | ],
|
| | |
|
| | | taskList: [{
|
| | | title: '综治任务',
|
| | | num: 0
|
| | | },
|
| | | {
|
| | | title: '住建任务',
|
| | | num: 0
|
| | | },
|
| | | {
|
| | | title: '公安任务',
|
| | | num: 0
|
| | | },
|
| | | ],
|
| | | }
|
| | | },
|
| | |
|
| | | onShow() {
|
| | | this.init()
|
| | | },
|
| | |
|
| | | computed: {
|
| | | hasMenu() {
|
| | | return (name) => {
|
| | | let resultArr = []
|
| | | resultArr = this.getMenu(name, this.menuList, resultArr)
|
| | | if (resultArr.length > 0) {
|
| | | return resultArr
|
| | | } else {
|
| | | return []
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | | },
|
| | |
|
| | | methods: {
|
| | | //初始化
|
| | | init() {
|
| | | this.curSelectSite = {}
|
| | | this.menuList = uni.getStorageSync("menu")
|
| | | this.selectRole = uni.getStorageSync("activeRole")
|
| | | this.getMenuList()
|
| | | this.getSiteList()
|
| | | uni.hideTabBar()
|
| | | },
|
| | | //获取场所列表
|
| | | async getSiteList() {
|
| | | console.log(this.selectRole)
|
| | | let type = null
|
| | | let roleName = this.selectRole.roleName
|
| | | console.log("roleName", roleName)
|
| | | if (roleName == '网格员' || roleName == '系统管理员') {
|
| | | type = 1
|
| | | } else if (roleName == '场所负责人') {
|
| | | type = 2
|
| | | } else if (roleName == '居民') {
|
| | | type = 3
|
| | | }
|
| | |
|
| | | const res = await getFuncList(type, roleName)
|
| | | console.log(res, "-----------")
|
| | | let data = res.data
|
| | | this.siteColumns = []
|
| | |
|
| | | this.buildSiteColumn(data, 0)
|
| | | console.log(this.siteColumns)
|
| | |
|
| | | },
|
| | |
|
| | | buildSiteColumn(dataList, index) {
|
| | | if (dataList.length > 0) {
|
| | | this.siteColumns[index] = dataList
|
| | | if (dataList[0].children && dataList[0].children.length > 0) {
|
| | | this.buildSiteColumn(dataList[0].children, index + 1)
|
| | | }
|
| | | }
|
| | | },
|
| | |
|
| | | //获取首页菜单
|
| | | getMenuList() {
|
| | | console.log("当前角色菜单", this.menuList)
|
| | | this.getPhoneList()
|
| | | this.getLiveList()
|
| | | this.getWorkbenchList()
|
| | | },
|
| | | getPhoneList() {
|
| | | this.gridDataList = []
|
| | | const resultArr = this.hasMenu('快捷拨号')
|
| | | if (resultArr.length == 0) {
|
| | | return
|
| | | }
|
| | |
|
| | | const topMenu = resultArr[0]
|
| | |
|
| | | topMenu.children.forEach(menu => {
|
| | | this.gridDataList.push({
|
| | | title: menu.name,
|
| | | data: "无数据",
|
| | | phone: "无"
|
| | | })
|
| | | })
|
| | | },
|
| | |
|
| | | //获取生活菜单
|
| | | getLiveList() {
|
| | | this.liveList = []
|
| | | const resultArr = this.hasMenu('生活')
|
| | | if (resultArr.length == 0) {
|
| | | return
|
| | | }
|
| | |
|
| | | const topMenu = resultArr[0]
|
| | |
|
| | | topMenu.children.forEach(menu => {
|
| | | this.liveList.push({
|
| | | imgUrl: menu.source,
|
| | | title: menu.name,
|
| | | })
|
| | | })
|
| | | },
|
| | |
|
| | | //获取工作台菜单
|
| | | getWorkbenchList() {
|
| | | this.jobList = []
|
| | | const resultArr = this.hasMenu('工作台')
|
| | | if (resultArr.length == 0) {
|
| | | return
|
| | | }
|
| | |
|
| | | const topMenu = resultArr[0]
|
| | |
|
| | | topMenu.children.forEach(menu => {
|
| | | this.jobList.push({
|
| | | imgUrl: menu.source,
|
| | | title: menu.name,
|
| | | })
|
| | | })
|
| | | },
|
| | |
|
| | | // 获取楼盘表
|
| | | async getHouseDataList(name) {
|
| | | const res = await getHouseList(1, name)
|
| | | // 数据处理
|
| | | res.data.forEach(item => {
|
| | | item.title = item.name
|
| | | item.useSlot = true
|
| | | delete item.name
|
| | | })
|
| | | this.houseDataList = res.data || [{
|
| | | title: '-',
|
| | | useSlot: true
|
| | | }]
|
| | | },
|
| | |
|
| | |
|
| | |
|
| | | getMenu(menuName, menuList, resultArr) {
|
| | | // console.log(menuList, menuName)
|
| | | for (var i = 0; i < menuList.length; i++) {
|
| | | if (menuList[i].name == menuName) {
|
| | | resultArr.push(menuList[i])
|
| | | } else {
|
| | | if (menuList[i].children && menuList[i].children.length) {
|
| | | this.getMenu(menuName, menuList[i].children, resultArr);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | return resultArr
|
| | |
|
| | | },
|
| | |
|
| | | change(index) {
|
| | | let url = index
|
| | | this.$u.func.globalNavigator(url, "switchTab")
|
| | | },
|
| | | changeHandler(e) {
|
| | | const {
|
| | | columnIndex,
|
| | | value,
|
| | | values, // values为当前变化列的数组内容
|
| | | index,
|
| | | // 微信小程序无法将picker实例传出来,只能通过ref操作
|
| | | picker = this.$refs.uPicker
|
| | | } = e
|
| | | // 当第一列值发生变化时,变化第二列(后一列)对应的选项
|
| | | if (columnIndex === 0 && this.columnData.length > 0) {
|
| | | // picker为选择器this实例,变化第二列对应的选项
|
| | | picker.setColumnValues(1, this.columnData[index])
|
| | | }
|
| | | },
|
| | | // 回调参数为包含columnIndex、value、values
|
| | | confirm(e) {
|
| | | console.log('confirm', e)
|
| | | this.curSelectSite = e.value[e.value.length - 1]
|
| | | this.selectBoxShow = false
|
| | | this.getHouseDataList(e.value[1].name)
|
| | | },
|
| | |
|
| | | // 页面跳转
|
| | | pushPage({id, title}) { |
| | | if (id !== void 0) { |
| | | let url = `/subPackage/house/list/index?id=${id}&title=${title}` |
| | | this.$u.func.globalNavigator(url, "navTo") |
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | .container {
|
| | | width: 100%;
|
| | | height: 100%;
|
| | |
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | background: #F9F9FA;
|
| | | color: #fff;
|
| | | font-size: 32rpx;
|
| | |
|
| | | .main {
|
| | | position: relative;
|
| | | height: 0;
|
| | | flex: 1;
|
| | | overflow-y: auto;
|
| | |
|
| | | .main-bg {
|
| | | height: 36%;
|
| | | background: royalblue;
|
| | | }
|
| | |
|
| | | .main-select {
|
| | | margin: 0 6%;
|
| | | position: absolute;
|
| | | bottom: 74%;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | }
|
| | |
|
| | | .main-btn {
|
| | | margin: 0 6%;
|
| | | position: absolute;
|
| | | top: 28%;
|
| | | width: 88%;
|
| | | height: 20%;
|
| | | background: #fff;
|
| | | border-radius: 10rpx;
|
| | | color: #000;
|
| | | }
|
| | |
|
| | | .main-phone-house {
|
| | | margin-top: 180rpx;
|
| | | width: 100%;
|
| | |
|
| | | .phone-box {
|
| | | display: flex;
|
| | |
|
| | | &>view {
|
| | | margin: 0 16rpx;
|
| | | height: 116rpx;
|
| | | flex: 1;
|
| | | background: linear-gradient(to right, #407BE9, #73A2F9);
|
| | | border-radius: 10rpx;
|
| | | }
|
| | | }
|
| | |
|
| | | .house-box {
|
| | | .content {
|
| | | display: flex;
|
| | | flex-wrap: wrap;
|
| | |
|
| | | &>view {
|
| | | margin: 0 16rpx;
|
| | | margin-top: 20rpx;
|
| | | min-width: calc((100% - 16rpx * 6) / 3);
|
| | | height: 66rpx;
|
| | | background: linear-gradient(to right, #407BE9, #73A2F9);
|
| | | border-radius: 33rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .main-bt {
|
| | | margin-top: 2%;
|
| | | width: 100%;
|
| | | color: #000;
|
| | | }
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | </view> |
| | | <view class="basic-info"> |
| | | |
| | | <u-form-item @click="showList.relation = true" class="form-item" labelWidth="100" label="租客关系:" required |
| | | prop="type"> |
| | | <u--input border="none" v-model="nameList.relation" disabled disabledColor="#ffffff" |
| | | placeholder="请选择租客关系"> |
| | | |
| | | |
| | | <u-form-item @click="showSelectBus(dataList.relation, '租客关系', 'relationName','relation')" |
| | | class="form-item" labelWidth="100" label="租客关系" required prop="type"> |
| | | <u--input border="none" v-model="relationName" disabled disabledColor="#ffffff" placeholder="请选择"> |
| | | </u--input> |
| | | <u-icon slot="right" name="arrow-right"></u-icon> |
| | | </u-form-item> |
| | | |
| | | <u-form-item @click="typeShow = true" class="form-item" labelWidth="100" label="事件类型:" required |
| | | <u-form-item @click="showSelectBus(dataList.houseType, '房屋状态', 'houseTypeName','houseType')" |
| | | class="form-item" labelWidth="100" label="房屋状态:" required prop="type"> |
| | | <u--input border="none" v-model="houseTypeName" disabled disabledColor="#ffffff" placeholder="请选择"> |
| | | </u--input> |
| | | <u-icon slot="right" name="arrow-right"></u-icon> |
| | | </u-form-item> |
| | | |
| | | |
| | | <u-form-item @click="showSelectBus(dataList.rentalUse, '租房用途', 'rentalUseName','rentalUse')" |
| | | class="form-item" labelWidth="100" label="租房用途:" required prop="type"> |
| | | <u--input border="none" v-model="rentalUseName" disabled disabledColor="#ffffff" placeholder="请选择"> |
| | | </u--input> |
| | | <u-icon slot="right" name="arrow-right"></u-icon> |
| | | </u-form-item> |
| | | |
| | | <u-form-item @click="rentTimeShow = true" class="form-item" labelWidth="100" label="租房时间:" required |
| | | prop="type"> |
| | | <u--input border="none" v-model="typeName" disabled disabledColor="#ffffff" placeholder="请选择事件类型"> |
| | | <u--input border="none" v-model="form.rentTime" disabled disabledColor="#ffffff" placeholder="请选择"> |
| | | </u--input> |
| | | <u-icon slot="right" name="arrow-right"></u-icon> |
| | | </u-form-item> |
| | |
| | | </u-form> |
| | | |
| | | |
| | | <!-- 租客关系下拉框 --> |
| | | <my-select v-if="showList.relation" :show="showList.relation" v-model="form.relation" type="radio" |
| | | popupTitle="请选择租客关系" :dataLists="dataList.relation" @cancel="showList.relation = false"> |
| | | </my-select> |
| | | |
| | | <!-- 事件类型下拉框 --> |
| | | <select-bus v-if="typeShow" :show="typeShow" v-model="form[selectBusModel]" type="radio" |
| | | :popupTitle="selectBusTitle" :dataLists="selectBusList" @cancel="typeShow = false" @submit="typeSelect"> |
| | | </select-bus> |
| | | <!--出租时间选择--> |
| | | <u-datetime-picker :show="rentTimeShow" v-model="form.rentTime" mode="date"></u-datetime-picker> |
| | | |
| | | |
| | | |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import selectBus from "@/components/my-components/selectBus.vue" |
| | | import uploadMixin from "@/mixin/uploadMixin"; |
| | | export default { |
| | | mixins: [uploadMixin], |
| | | components: { |
| | | selectBus |
| | | }, |
| | | data() { |
| | | return { |
| | | form: { |
| | | relation: "" |
| | | relation: "", |
| | | houseTyep: "", |
| | | rentTime: "", |
| | | }, |
| | | showList: { |
| | | relation: false |
| | | }, |
| | | nameList: { |
| | | relation: "" |
| | | }, |
| | | rules: {}, |
| | | rentTimeShow: false, |
| | | |
| | | relationName: "", |
| | | houseTypeName: "", |
| | | rentalUseName: "", |
| | | dataList: { |
| | | relation: [] |
| | | } |
| | | relation: [{ |
| | | name: "同一户", |
| | | value: "1" |
| | | }, |
| | | { |
| | | name: "不同户", |
| | | value: "2" |
| | | } |
| | | ], |
| | | houseType: [{ |
| | | name: "部分出租", |
| | | value: "1" |
| | | }, |
| | | { |
| | | name: "全部出租", |
| | | value: "2" |
| | | } |
| | | ], |
| | | rentalUse: [{ |
| | | name: "仓库", |
| | | value: "1" |
| | | }, |
| | | { |
| | | name: "办公", |
| | | value: "2" |
| | | }, |
| | | { |
| | | name: "商用", |
| | | value: "3" |
| | | }, |
| | | { |
| | | name: "居住", |
| | | value: "4" |
| | | } |
| | | ] |
| | | }, |
| | | selectBusList: [], |
| | | selectBusTitle: '', |
| | | selectBusModel: '', |
| | | selectBusKey: '', |
| | | typeShow: false |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | }, |
| | | methods: { |
| | | |
| | | showSelectBus(data, title, model, key) { |
| | | this.selectBusList = data |
| | | this.selectBusTitle = title |
| | | this.selectBusModel = model |
| | | this.selectBusKey = key |
| | | this.typeShow = true |
| | | }, |
| | | //类型选择确认 |
| | | typeSelect(item) { |
| | | this[this.selectBusModel] = item.name |
| | | this.form[this.selectBusKey] = item.value |
| | | this.typeShow = !this.typeShow |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <template> |
| | | <view class="container"> |
| | | <view class="flex f-d-c main"> |
| | | <view class="cur-header"> |
| | | <u-icon name="home" color="#fff"></u-icon> |
| | | {{housingName}}/{{buildingName}}栋 |
| | | </view> |
| | | <view class="h0 flex-1 build-list-box"> |
| | | <u-collapse :border="false"> |
| | | <u-collapse-item style="border: none;" :title="item.unitName" :name="index" |
| | | v-for="(item, index) in buildingList" :key="index"> |
| | | <view class="flex floor-content" v-for="(floor, floorIndex) in item.floorList" |
| | | :key="floorIndex"> |
| | | <view class="floor-num-box flex a-i-c j-c-c"> |
| | | {{floor.floorName}} |
| | | </view> |
| | | <view class="room-content"> |
| | | <u-grid class="flex flex-wrap" col="2" :border="true"> |
| | | <u-grid-item v-for="(family, familyIndex) in floor.familyList" :key="familyIndex"> |
| | | <view class="room-box flex f-d-c"> |
| | | |
| | | <view class="flex a-i-c j-c-s-b" v-show="family.resideStatus"> |
| | | <view class="l">{{family.houseHoldName}}</view> |
| | | <view class="r flex"> |
| | | <view v-show="family.resideStatus"> |
| | | <u-icon name="photo"></u-icon> |
| | | </view> |
| | | |
| | | <view v-show="family.isOwner"> |
| | | <u-icon name="photo"></u-icon> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="flex"> |
| | | <view class="l flex"> |
| | | <u-icon name="home" color="blue"></u-icon> |
| | | {{family.roomNumber}} |
| | | </view> |
| | | <view class="r"> |
| | | |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | </u-grid-item> |
| | | </u-grid> |
| | | </view> |
| | | </view> |
| | | </u-collapse-item> |
| | | </u-collapse> |
| | | |
| | | <u-divider text="已经到底了"></u-divider> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <template>
|
| | | <view class="container">
|
| | | <view class="flex f-d-c main">
|
| | | <view class="cur-header">
|
| | | <u-icon name="home" color="#fff"></u-icon>
|
| | | {{housingName}}/{{buildingName}}栋
|
| | | </view>
|
| | | <view class="h0 flex-1 build-list-box">
|
| | | <u-collapse :border="false">
|
| | | <u-collapse-item style="border: none;" :title="item.unitName" :name="index"
|
| | | v-for="(item, index) in buildingList" :key="index">
|
| | | <view class="flex floor-content" v-for="(cItem, cIndex) in item.children"
|
| | | :key="cIndex">
|
| | | <view class="floor-num-box flex a-i-c j-c-c">
|
| | | {{cItem.floor}}
|
| | | </view>
|
| | | <view class="room-content">
|
| | | <u-grid class="flex flex-wrap" col="2" :border="true">
|
| | | <u-grid-item v-for="(scItem, scIndex) in cItem.children" :key="scItem.id" @click.native="pushPage(scItem)">
|
| | | <view class="room-box flex f-d-c">
|
| | | <view class="flex a-i-c j-c-s-b" v-show="scItem.resideStatus"> |
| | | <view class="l">{{scItem.realName}}</view>
|
| | | <view class="r flex">
|
| | | <view v-show="scItem.resideStatus">
|
| | | <u-icon name="photo"></u-icon>
|
| | | </view>
|
| | |
|
| | | <view v-show="!!scItem.roleType === '业主'">
|
| | | <u-icon name="photo"></u-icon>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="flex">
|
| | | <view class="l flex">
|
| | | <u-icon name="home" color="blue"></u-icon>
|
| | | {{scItem.houseNo}}
|
| | | </view>
|
| | | <view class="r">
|
| | |
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | </view>
|
| | | </u-grid-item>
|
| | | </u-grid>
|
| | | </view>
|
| | | </view>
|
| | | </u-collapse-item>
|
| | | </u-collapse>
|
| | |
|
| | | <u-divider text="已经到底了"></u-divider>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script> |
| | | export default { |
| | | components: {}, |
| | | |
| | | data() { |
| | | import { |
| | | getHouseInfoList |
| | | } from "@/api/doorplateAddress/doorplateAddress";
|
| | | export default {
|
| | | components: {},
|
| | |
|
| | | data() {
|
| | | return { |
| | | housingName: '万达晶座', |
| | | buildingName: 11, |
| | | buildingList: [{ |
| | | unitName: '一单元', |
| | | floorList: [{ |
| | | floorName: '1层', |
| | | familyList: [{ |
| | | houseHoldName: '王子豪1', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪2', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪3', |
| | | resideStatus: 0, // 1居住,0未居住 |
| | | isOwner: 0, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪4', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪5', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪6', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | floorName: '2层', |
| | | familyList: [{ |
| | | houseHoldName: '王子豪1', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪2', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪3', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪4', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪5', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪6', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | unitName: '二单元', |
| | | floorList: [{ |
| | | floorName: '1层', |
| | | familyList: [{ |
| | | houseHoldName: '王子豪1', |
| | | resideStatus: 0, // 1居住,0未居住 |
| | | isOwner: 0, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }] |
| | | }, |
| | | { |
| | | floorName: '2层', |
| | | familyList: [{ |
| | | houseHoldName: '王子豪1', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪2', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪3', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪4', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪5', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪6', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | }, |
| | | { |
| | | houseHoldName: '王子豪', |
| | | resideStatus: 1, // 1居住,0未居住 |
| | | isOwner: 1, // 1业主, 0不是业主 |
| | | roomNumber: 301 |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | |
| | | onShow() {}, |
| | | |
| | | methods: { |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .container { |
| | | width: 100%; |
| | | height: 100%; |
| | | |
| | | display: flex; |
| | | flex-direction: column; |
| | | background: #F9F9FA; |
| | | font-size: 26rpx; |
| | | |
| | | |
| | | .main { |
| | | position: relative; |
| | | height: 0; |
| | | flex: 1; |
| | | overflow-y: auto; |
| | | |
| | | .cur-header { |
| | | padding-left: 16rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | min-height: 96rpx; |
| | | color: #fff; |
| | | background: #6A9DFD; |
| | | } |
| | | |
| | | .build-list-box { |
| | | /deep/ .u-cell { |
| | | background: #A0C0FC !important; |
| | | } |
| | | |
| | | /deep/ .u-collapse-item__content__text { |
| | | padding: 0 !important; |
| | | } |
| | | } |
| | | |
| | | /deep/ .floor-content { |
| | | border-bottom: 1rpx solid #ccc; |
| | | |
| | | .floor-num-box { |
| | | padding: 0 20rpx !important; |
| | | background: #EAECF0; |
| | | } |
| | | |
| | | .room-content { |
| | | width: 0; |
| | | flex: 1; |
| | | background: #FEFEFF; |
| | | |
| | | .room-box { |
| | | padding: 8rpx; |
| | | justify-content: center; |
| | | align-items: center; |
| | | width: 100%; |
| | | min-height: 116rpx; |
| | | box-sizing: border-box; |
| | | |
| | | &>view { |
| | | margin: auto; |
| | | width: 100%; |
| | | } |
| | | } |
| | | |
| | | .u-grid-item:nth-child(2n-1) { |
| | | border-right: 1rpx solid #dadbde !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | currentId: '',
|
| | | housingName: '',
|
| | | buildingName: 0,
|
| | | buildingList: []
|
| | | }
|
| | | },
|
| | | onLoad(e) { |
| | | const { id, housingName, buildingName } = e |
| | | this.currentId = id |
| | | this.housingName = housingName |
| | | this.buildingName = buildingName |
| | | |
| | | },
|
| | | onShow() { |
| | | this.getBuildingList() |
| | | },
|
| | | methods: {
|
| | | async getBuildingList() { |
| | | const res = await getHouseInfoList(3, '9cedfffba380fc19f88ede2323aca651') |
| | | res.data.forEach(item => { |
| | | item.children && item.children.sort((a, b) => a.floor - b.floor) |
| | | }) |
| | | console.log(res.data) |
| | | this.buildingList = res.data || [] |
| | | }, |
| | | pushPage(value) { |
| | | const { addressCode } = value |
| | | let url = `/subPackage/house/roomDetails/index?id=${addressCode}` |
| | | this.$u.func.globalNavigator(url, "navTo") |
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | .container {
|
| | | width: 100%;
|
| | | height: 100%;
|
| | |
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | background: #F9F9FA;
|
| | | font-size: 26rpx;
|
| | |
|
| | |
|
| | | .main {
|
| | | position: relative;
|
| | | height: 0;
|
| | | flex: 1;
|
| | | overflow-y: auto;
|
| | |
|
| | | .cur-header {
|
| | | padding-left: 16rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | min-height: 96rpx;
|
| | | color: #fff;
|
| | | background: #6A9DFD;
|
| | | }
|
| | |
|
| | | .build-list-box {
|
| | | /deep/ .u-cell {
|
| | | background: #A0C0FC !important;
|
| | | }
|
| | |
|
| | | /deep/ .u-collapse-item__content__text {
|
| | | padding: 0 !important;
|
| | | }
|
| | | }
|
| | |
|
| | | /deep/ .floor-content {
|
| | | border-bottom: 1rpx solid #ccc;
|
| | |
|
| | | .floor-num-box {
|
| | | padding: 0 20rpx !important;
|
| | | background: #EAECF0;
|
| | | }
|
| | |
|
| | | .room-content {
|
| | | width: 0;
|
| | | flex: 1;
|
| | | background: #FEFEFF;
|
| | |
|
| | | .room-box {
|
| | | padding: 8rpx;
|
| | | justify-content: center;
|
| | | align-items: center;
|
| | | width: 100%;
|
| | | min-height: 116rpx;
|
| | | box-sizing: border-box;
|
| | |
|
| | | &>view {
|
| | | margin: auto;
|
| | | width: 100%;
|
| | | }
|
| | | }
|
| | |
|
| | | .u-grid-item:nth-child(2n-1) {
|
| | | border-right: 1rpx solid #dadbde !important;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | <template> |
| | | <view class="container"> |
| | | <view class="flex f-d-c main"> |
| | | <view class="flex house-container"> |
| | | <view class="house-list-box" v-for="(item, index) in houseList"> |
| | | <view class="l"> |
| | | <u-icon name="home" color="#fff"></u-icon> |
| | | </view> |
| | | <view class="r"> |
| | | {{item.title}}栋 |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <u-divider text="已经到底了"></u-divider> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | components: {}, |
| | | |
| | | data() { |
| | | return { |
| | | houseList: [{ |
| | | title: 11 |
| | | }, |
| | | { |
| | | title: 12 |
| | | }, |
| | | { |
| | | title: 13 |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | |
| | | onShow() {}, |
| | | |
| | | methods: { |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .container { |
| | | width: 100%; |
| | | height: 100%; |
| | | |
| | | display: flex; |
| | | flex-direction: column; |
| | | background: #F9F9FA; |
| | | font-size: 26rpx; |
| | | |
| | | |
| | | .main { |
| | | position: relative; |
| | | height: 0; |
| | | flex: 1; |
| | | overflow-y: auto; |
| | | |
| | | .house-container { |
| | | flex-wrap: wrap; |
| | | |
| | | .house-list-box { |
| | | margin: 16rpx; |
| | | padding: 0 16rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | width: calc((100% - 96rpx) / 3); |
| | | height: 68rpx; |
| | | border-radius: 34rpx; |
| | | color: #fff; |
| | | background: linear-gradient(to right, #417BE9, #6D9FFB); |
| | | box-sizing: border-box; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | <template>
|
| | | <view class="container">
|
| | | <view class="flex f-d-c main">
|
| | | <view class="flex house-container">
|
| | | <view class="house-list-box" v-for="(item, index) in houseList" @click="pushPage(item)">
|
| | | <view class="l">
|
| | | <u-icon name="home" color="#fff"></u-icon>
|
| | | </view>
|
| | | <view class="r">
|
| | | {{item.title}}栋
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <u-divider text="已经到底了"></u-divider>
|
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import {
|
| | | getHouseInfoList
|
| | | } from "@/api/doorplateAddress/doorplateAddress";
|
| | | export default {
|
| | | components: {},
|
| | |
|
| | | data() {
|
| | | return {
|
| | | currentId: '', |
| | | curHouseTitle: '',
|
| | | houseList: [{
|
| | | title: '-'
|
| | | }]
|
| | | }
|
| | | },
|
| | | onLoad(e) {
|
| | | const { id, title } = e |
| | | this.currentId = id |
| | | this.curHouseTitle = title |
| | | |
| | | },
|
| | | onShow() {
|
| | | this.getHouseInfo()
|
| | | },
|
| | |
|
| | | methods: {
|
| | | async getHouseInfo() {
|
| | | const res = await getHouseInfoList(2, this.currentId)
|
| | | // 删除栋字
|
| | | const reg = new RegExp('栋', 'g')
|
| | | res.data.forEach(item => {
|
| | | item.title = item['name'].replace(reg, '')
|
| | | delete item.name
|
| | | })
|
| | | this.houseList = res.data || [{
|
| | | title: '-'
|
| | | }]
|
| | | },
|
| | | pushPage(value) {
|
| | | const { id, title } = value
|
| | | if (id !== void 0) {
|
| | | let url = `/subPackage/house/family/index?id=${id}&housingName=${this.curHouseTitle}&buildingName=${title}`
|
| | | this.$u.func.globalNavigator(url, "navTo")
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | .container {
|
| | | width: 100%;
|
| | | height: 100%;
|
| | |
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | background: #F9F9FA;
|
| | | font-size: 26rpx;
|
| | |
|
| | |
|
| | | .main {
|
| | | position: relative;
|
| | | height: 0;
|
| | | flex: 1;
|
| | | overflow-y: auto;
|
| | |
|
| | | .house-container {
|
| | | flex-wrap: wrap;
|
| | |
|
| | | .house-list-box {
|
| | | margin: 16rpx;
|
| | | padding: 0 16rpx;
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | align-items: center;
|
| | | width: calc((100% - 96rpx) / 3);
|
| | | height: 68rpx;
|
| | | border-radius: 34rpx;
|
| | | color: #fff;
|
| | | background: linear-gradient(to right, #417BE9, #6D9FFB);
|
| | | box-sizing: border-box;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | <view class="content"> |
| | | <view class="base b-c-w"> |
| | | <view class="flex a-i-c"> |
| | | <u-icon name="photo"></u-icon> 万达晶座:11栋 |
| | | <u-icon name="photo"></u-icon> {{ houseTitle }} |
| | | </view> |
| | | <view class="flex j-c-s-b"> |
| | | <view> |
| | | 一单元单元 2901室(共2人) |
| | | {{ unitName }}单元 {{ houseName }}室 |
| | | <!-- (共2人) --> |
| | | </view> |
| | | <view class="flex a-i-c"> |
| | | <u-button size='small' shape="circle" type="primary" :plain="true" text="房屋管理"></u-button> |
| | |
| | | <view class="info"> |
| | | <view>姓名:{{item.name}}</view> |
| | | <view class="flex"> |
| | | 手机:{{item.phone}} <u-icon name="phone-fill" color="#4586FE"></u-icon> |
| | | 手机:{{item.phoneNumber}} <u-icon name="phone-fill" color="#4586FE"></u-icon> |
| | | </view> |
| | | <view class="flex"> |
| | | 关系: |
| | | <view class="flex a-i-c"> |
| | | <u-tag :text="item.relation" size="mini" |
| | | :bgColor="item.relationType == 1 ? '#07C160' : '#1989FA'"></u-tag> |
| | | <u-tag :text="item.relationship" size="mini" |
| | | :bgColor="item.residentialStatus == 1 ? '#07C160' : '#1989FA'"></u-tag> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | <view class="mt-40 rent-out-list b-c-w" v-for="(item, index) in rentOutList" :key="index"> |
| | | <view class="t flex j-c-s-b a-i-c"> |
| | | <view class="l"> |
| | | 租客:{{item.name}}(共{{item.allNum}}人) |
| | | 租客:{{item.tenant}}(共{{item.allNum}}人) |
| | | </view> |
| | | <view class="r"> |
| | | <u-icon name="trash-fill" color="red"></u-icon> |
| | |
| | | </view> |
| | | <view class="t flex j-c-s-b a-i-c"> |
| | | <view class="l"> |
| | | {{item.startTime}} - {{item.endTime}} |
| | | {{item.rentalTime}} - {{item.dueTime}} |
| | | </view> |
| | | <view class="r"> |
| | | {{item.status == 1 ? '已到期' : '未到期'}} |
| | |
| | | </view> |
| | | |
| | | <view class="edit-btn"> |
| | | <veiw> |
| | | <view> |
| | | <u-button type="primary" text="添加成员"></u-button> |
| | | </veiw> |
| | | </view> |
| | | |
| | | <view> |
| | | <u-button type="primary" :plain="true" text="添加租赁信息"></u-button> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getHouseRentInfo |
| | | } from "@/api/doorplateAddress/doorplateAddress"; |
| | | export default { |
| | | components: {}, |
| | | |
| | | data() { |
| | | return { |
| | | ownerInfoList: [{ |
| | | src: 'https://cdn.uviewui.com/uview/album/1.jpg', |
| | | name: '郑洪峰', |
| | | phone: 13566687549, |
| | | relationType: 1, |
| | | relation: '业主' |
| | | }, |
| | | { |
| | | src: 'https://cdn.uviewui.com/uview/album/1.jpg', |
| | | name: '郑小峰', |
| | | phone: 13547687549, |
| | | relationType: 3, |
| | | relation: '儿子' |
| | | } |
| | | ], |
| | | |
| | | rentOutList: [ |
| | | { |
| | | name: '皇阿玛', |
| | | startTime: '2023-01-01', |
| | | endTime: '2024-01-01', |
| | | status: 0, // 0 未到期,1已到期 |
| | | allNum: 1 |
| | | }, |
| | | { |
| | | name: '皇阿玛two', |
| | | startTime: '2023-01-01', |
| | | endTime: '2024-01-01', |
| | | status: 0, // 0 未到期,1已到期 |
| | | allNum: 2 |
| | | } |
| | | ] |
| | | houseTitle: '', |
| | | currentId: '', |
| | | houseName: '', |
| | | unitName: '', |
| | | ownerInfoList: [], |
| | | rentOutList: [] |
| | | } |
| | | }, |
| | | |
| | | onShow() {}, |
| | | onLoad(e) { |
| | | const { id } = e |
| | | this.currentId = id |
| | | }, |
| | | onShow() { |
| | | this.getHouseRentInfoList() |
| | | }, |
| | | |
| | | methods: { |
| | | |
| | | async getHouseRentInfoList() { |
| | | const res = await getHouseRentInfo(this.currentId) |
| | | const { districtName, doorplateName, buildingName, houseName, unitName, houseRentalList, householdList } = res.data |
| | | this.houseTitle = districtName + ':' + buildingName |
| | | this.rentOutList = houseRentalList |
| | | this.ownerInfoList = householdList |
| | | this.houseName = houseName |
| | | this.unitName = unitName |
| | | // 判断当前租客有没有过期 |
| | | this.rentOutList.forEach(item => { |
| | | // 事件格式处理 |
| | | item.rentalTime = item.rentalTime.split(' ')[0] |
| | | item.dueTime = item.dueTime.split(' ')[0] |
| | | // 当前房间租客数量 |
| | | item.allNum = item.houseTenantVOList.length |
| | | // 多人个租客将第一个作为显示 |
| | | item.tenant = item.houseTenantVOList.length > 0 ? item.houseTenantVOList[0].name : '' |
| | | }) |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |