From 0df15fb4eafccde45b09caa213dd12d449397298 Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Sat, 16 Mar 2024 18:42:00 +0800
Subject: [PATCH] 更新
---
components/index/header.vue | 39 +
subPackage/house/member/add.vue | 120 ++-
api/house/householdLabel.js | 9
pages.json | 15
subPackage/house/roomControl/index.vue | 101 +++
subPackage/workbench/views/audit.vue | 2
subPackage/workbench/views/editCscj.vue | 12
subPackage/workbench/components/formItem.vue | 37
pages/statistics/index.vue | 458 ++++++++++++++++
pages/home/index.vue | 356 +++---------
subPackage/workbench/views/cscj.vue | 121 +--
subPackage/house/family/index.vue | 51 +
pages/home/index.scss | 212 +++++++
subPackage/task/index.vue | 32
14 files changed, 1,131 insertions(+), 434 deletions(-)
diff --git a/api/house/householdLabel.js b/api/house/householdLabel.js
index f7bf8e6..051c04b 100644
--- a/api/house/householdLabel.js
+++ b/api/house/householdLabel.js
@@ -18,4 +18,13 @@
method: 'POST',
data
})
+}
+
+//设置房屋标签
+export const setHouseLabel = (data) => {
+ return http.request({
+ url: 'blade-householdLabel/householdLabel/saveOrUpdateHouseLabel',
+ method: 'POST',
+ data
+ })
}
\ No newline at end of file
diff --git a/components/index/header.vue b/components/index/header.vue
new file mode 100644
index 0000000..432bbc6
--- /dev/null
+++ b/components/index/header.vue
@@ -0,0 +1,39 @@
+<template>
+ <view class="">
+ <u-navbar height="48" :autoBack="false" safeAreaInsetTop placeholder @leftClick="navToSelectSite()"
+ bgColor="#017BFC">
+ <view slot="left" class="top flex">
+ <view class="top-text f-30 fw c-ff">{{curSelectSite.name?curSelectSite.name:'暂无绑定' +roleTypeName+'信息'}}
+ </view>
+ <u-icon name="arrow-right" color="#fff"></u-icon>
+ </view>
+ </u-navbar>
+ <view class="swiper">
+ <u-swiper :list="bannerList" height="320rpx" radius="10"></u-swiper>
+ </view>
+ </view>
+
+
+</template>
+
+<script>
+ export default {
+ name: "header",
+ props: {
+ banner: {
+ type: Array,
+ value: []
+ },
+
+ }
+ data: {
+ bgColor: {
+
+ }
+ },
+
+ }
+</script>
+
+<style>
+</style>
\ No newline at end of file
diff --git a/pages.json b/pages.json
index ac68a4a..d58ab73 100644
--- a/pages.json
+++ b/pages.json
@@ -12,6 +12,15 @@
"navigationStyle": "custom"
}
},
+
+ {
+ "path": "pages/statistics/index",
+ "style": {
+ "navigationBarTitleText": "驾驶舱",
+ "enablePullDownRefresh": false
+ }
+ },
+
{
"path": "pages/user/center",
"style": {
@@ -940,6 +949,12 @@
// "text": "圈子"
// },
{
+ "pagePath": "pages/statistics/index",
+ "iconPath": "static/img/tabbar-02.png",
+ "selectedIconPath": "static/img/tabbar-02-selected.png",
+ "text": "驾驶舱"
+ },
+ {
"pagePath": "pages/user/center",
"iconPath": "static/img/tabbar-03.png",
"selectedIconPath": "static/img/tabbar-03-selected.png",
diff --git a/pages/home/index.scss b/pages/home/index.scss
new file mode 100644
index 0000000..c2e6217
--- /dev/null
+++ b/pages/home/index.scss
@@ -0,0 +1,212 @@
+page {
+ color: #333;
+ width: 100%;
+ height: 100%;
+ background-color: #f5f5f5;
+ }
+
+ .layout {
+ width: 100%;
+ height: 100%;
+ }
+
+ .top {
+ width: 530rpx;
+
+ .top-text {
+ max-width: 85%;
+ margin-right: 20rpx;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ }
+
+ .swiper {
+ width: 100%;
+ height: 340rpx;
+ background: linear-gradient(180deg, #017BFC 0%, rgba(1, 123, 252, 0) 100%);
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ }
+
+ .content {
+ padding: 0 30rpx;
+ }
+
+ // .grid {
+ // margin-top: 20rpx;
+ // margin-bottom: 10rpx;
+ // }
+ .nav {
+ padding: 10rpx 0;
+ margin-bottom: 20rpx;
+ border-radius: 0 0 10rpx 10rpx;
+
+ .nav-item {
+ padding: 10rpx 0;
+ }
+
+ .nav-item-text {
+ font-family: PingFang SC;
+ font-weight: 500;
+ color: #585b61;
+ }
+ }
+
+
+ .section {
+ .section-item {
+ width: 216rpx;
+ height: 120rpx;
+ position: relative;
+ }
+
+ .section-item-bg {
+ width: 216rpx;
+ height: 120rpx;
+ }
+
+ .item-box {
+ width: 216rpx;
+ height: 120rpx;
+ position: absolute;
+ top: 0;
+ left: 0;
+ padding: 20rpx 20rpx 0;
+ box-sizing: border-box;
+ }
+ }
+
+
+
+ .block {
+ .block-item {
+ position: relative;
+
+ }
+
+ .block-item,
+ .block-item-bg,
+ .block-item-box {
+ width: 220rpx;
+ height: 150rpx;
+ border-radius: 10rpx;
+ }
+
+ .block-item-box {
+ padding: 0 12rpx;
+ box-sizing: border-box;
+ position: absolute;
+ top: 0;
+ left: 0;
+
+ }
+ .badge{
+ position:absolute;
+ top:10rpx;
+ right:20rpx
+ }
+
+ .item-text {
+ height: 65rpx;
+ margin-left: 20rpx;
+ color: #fff;
+ }
+
+ .opacity {
+ opacity: .6;
+ }
+ }
+
+ .cell {
+ padding: 0 16rpx;
+ height: 64rpx;
+ border-radius: 8rpx;
+ margin-right: 20rpx;
+ margin-top: 30rpx;
+
+ .cell-text {
+ margin-left: 16rpx;
+ }
+ }
+
+ .grid-item {
+ width: 153rpx;
+ height: 153rpx;
+ border-radius: 16rpx 16rpx 16rpx 16rpx;
+ justify-content: center;
+ }
+
+ .row {
+ width: 100%;
+ margin: 30rpx 0;
+
+ .row-item {
+ width: 330rpx;
+ height: 134rpx;
+ box-shadow: 0rpx 10rpx 10rpx 0rpx rgba(0, 0, 0, 0.02);
+ border-radius: 16rpx 16rpx 16rpx 16rpx;
+ }
+ }
+
+ .p-20 {
+ padding:20rpx;
+ border-radius: 10rpx;
+ }
+
+ .pb-20 {
+ padding-bottom: 20rpx;
+ }
+
+ .tabs {
+
+ border-radius: 10rpx 10rpx 0 0;
+ // margin-bottom: 4rpx;
+ background-color: rgb(236, 244, 255);
+
+ .tabs-item {
+ // padding: 12rpx 24rpx;
+ flex: 1;
+ text-align: center;
+ padding: 20rpx 0;
+ }
+
+ .tabs-active {
+ border-radius: 10rpx 10rpx 0 0;
+ // background-color: rgb(236, 244, 255);
+ // color: #017BFC;
+ // color: rgb(236, 244, 255);
+ // background-color: #017BFC;
+ background-color: #fff;
+ font-weight: bold;
+ }
+ }
+
+ .menu-tabs {
+ padding: 20rpx 0;
+ }
+
+ .menu {
+ border-radius: 0 0 10rpx 10rpx;
+ }
+
+ /deep/.u-cell__title-text {
+ font-size: 32rpx;
+ font-weight: bold;
+ color: #000;
+ position: relative;
+
+ }
+ /deep/.u-cell__title-text::before{
+ content: '';
+ width: 6rpx;
+ height: 28rpx;
+ background-color: #017BFC;
+ // margin-right: 14rpx;
+ position:absolute;
+ left:-20rpx;
+ top:6rpx;
+ display: inline-block;
+ }
+
\ No newline at end of file
diff --git a/pages/home/index.vue b/pages/home/index.vue
index fe3706b..7704179 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -1,14 +1,5 @@
<template>
<view class="layout">
- <!-- <u-navbar height="48" :autoBack="false" safeAreaInsetTop placeholder @leftClick="selectBoxShow = !selectBoxShow"
- bgColor="#017BFC">
- <view slot="left" class="top flex">
- <view class="top-text f-30 fw c-ff">{{curSelectSite.name?curSelectSite.name:'暂无绑定' +roleTypeName+'信息'}}
- </view>
- <u-icon name="arrow-down" color="#fff"></u-icon>
- </view>
- </u-navbar> -->
-
<u-navbar height="48" :autoBack="false" safeAreaInsetTop placeholder @leftClick="navToSelectSite()"
bgColor="#017BFC">
<view slot="left" class="top flex">
@@ -17,7 +8,6 @@
<u-icon name="arrow-right" color="#fff"></u-icon>
</view>
</u-navbar>
-
<view class="swiper">
<u-swiper :list="bannerList" height="320rpx" radius="10"></u-swiper>
</view>
@@ -41,33 +31,49 @@
<view @click="scan" class="block-item">
<image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
<view class="block-item-box flex a-i-c ">
- <u-icon name="/static/icon/nav-05.png" width="65rpx" height="65rpx"></u-icon>
+ <u-icon name="/static/icon/nav-05.png" width="68rpx" height="68rpx"></u-icon>
<view class="item-text flex f-d-c j-c-s-b">
- <text class="f-24 fw">扫一扫</text>
- <text class="f-22 opacity">场所采集</text>
+ <text class="f-26 fw">扫一扫</text>
+ <text class="f-24 opacity">场所采集</text>
</view>
</view>
</view>
<view class="block-item" @click="navigatorPage('/subPackage/user/clockIn/index')">
<image class="block-item-bg" src="/static/icon/nav-bg-05.png" mode="aspectFill" />
<view class="block-item-box flex a-i-c">
- <u-icon name="/static/icon/nav-06.png" width="65rpx" height="65rpx"></u-icon>
+ <u-icon name="/static/icon/nav-06.png" width="68rpx" height="68rpx"></u-icon>
<view class="item-text flex f-d-c j-c-s-b">
- <text class="f-24 fw">打卡登记</text>
- <text class="f-22 opacity">在线打卡</text>
+ <text class="f-26 fw">打卡登记</text>
+ <text class="f-24 opacity">在线打卡</text>
</view>
</view>
</view>
- <view class="block-item" @click="navigatorPage('/subPackage/statistics/index')">
+ <view class="block-item" @click="navigatorPage('/subPackage/statistics/index')"
+ v-if="roleType == 1">
<image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
<view class="block-item-box flex a-i-c">
- <u-icon name="/static/icon/nav-12.png" width="65rpx" height="65rpx"></u-icon>
+ <u-icon name="/static/icon/nav-12.png" width="68rpx" height="68rpx"></u-icon>
<view class="item-text flex f-d-c j-c-s-b">
- <text class="f-24 fw">驾驶舱</text>
- <text class="f-22 opacity">数据统计</text>
+ <text class="f-26 fw">驾驶舱</text>
+ <text class="f-24 opacity">数据统计</text>
</view>
</view>
</view>
+
+ <view class="block-item" @click="navigatorPage('/subPackage/task/index')" v-if="roleType == 3">
+ <image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
+ <view class="block-item-box flex a-i-c">
+ <u-icon name="/static/icon/nav-12.png" width="68rpx" height="68rpx"></u-icon>
+ <view class="item-text flex f-d-c j-c-s-b">
+ <text class="f-26 fw">待办事项</text>
+ <text class="f-24 opacity">我的任务</text>
+ </view>
+ <view class="badge" v-if="taskCount > 0">
+ <u-badge type="error" max="99" :value="taskCount"></u-badge>
+ </view>
+ </view>
+ </view>
+
</view>
<!-- <view class="nav bgc-ff" v-if="liveList.length || roleType == 2">
@@ -92,29 +98,15 @@
</view> -->
-
<view class="" v-if="roleType == 2 && curSelectSite.addressType == 1">
<view class="tabs flex">
- <!-- <u-tabs :list="tabs" @click="changeTabs" :current="tabIndex" lineColor="#ecf4ff" :activeStyle="{
- color: '#017BFC',
- fontWeight: 'bold',
- backgroundColor:'#ecf4ff',
- borderRadius:'14rpx',
- padding:'14rpx 28rpx',
- transition:'background .2s'
- }" :itemStyle="{fontSize:'28rpx'}"></u-tabs> -->
-
-
<view class="tabs-item" :class="k == tabIndex?'tabs-active':''" v-for="(i,k) in tabs"
@click="changeTabs(k)">
{{i.name}}
</view>
-
-
</view>
<view class="nav bgc-ff">
-
<u-grid :border="false" col="4">
<u-grid-item @click="navigatorPage(i.path)" v-for="(i,k) in tabs[tabIndex].list" :key="k">
<view class="nav-item flex f-d-c a-i-c">
@@ -126,16 +118,12 @@
</view>
</view>
-
<view v-if="roleType == 2 && curSelectSite.addressType == 2">
<view class="tabs flex">
-
<view class="tabs-item" :class="k == tabIndex?'tabs-active':''" v-for="(i,k) in tabs2"
@click="changeTabs(k)">
{{i.name}}
</view>
-
-
</view>
<view class="nav bgc-ff">
<u-grid :border="false" col="4">
@@ -145,7 +133,6 @@
<text class="nav-item-text f-26 mt-10">{{i.text}}</text>
</view>
</u-grid-item>
-
<block v-if="tabIndex == 1">
<u-grid-item @click="navigatorPage('/subPackage/label/form')"
v-if="curSelectSite.isFront == 1">
@@ -178,41 +165,27 @@
</view>
- <view class="bgc-ff p-20 mb-20 pb-20" v-if="isShowHouse">
- <caption-row title="楼盘表" />
- <view class="flex flex-wrap">
- <view class="cell bgc-main flex a-i-c" v-for="(item, index) in houseDataList.slice(0, 6)"
- @click.native="pushPage(item)" :key="index">
- <u-icon name="/static/icon/floor.png" width="32rpx" height="32rpx"></u-icon>
- <text class="cell-text f-26 c-ff">{{item.title}}</text>
- </view>
- </view>
+ <view class="bgc-ff p-20 mb-20" v-if="isShowHouse">
+ <u-collapse accordion :border="false">
+ <u-collapse-item name="1" title="楼盘表"></uni-title>
+ <view class="flex flex-wrap">
+ <view class="cell bgc-main flex a-i-c" v-for="(item, index) in houseDataList.slice(0, 6)"
+ @click.native="pushPage(item)" :key="index">
+ <u-icon name="/static/icon/floor.png" width="32rpx" height="32rpx"></u-icon>
+ <text class="cell-text f-26 c-ff">{{item.title}}</text>
+ </view>
+ </view>
+ </u-collapse-item>
+ </u-collapse>
</view>
<view class=" mb-20 " v-if="sectionList.length">
- <!-- <view class="menu-tabs">
- <u-tabs :list="sectionList" @click="changeMenuTabs" :current="menuTabIndex" lineColor="#ecf4ff"
- :activeStyle="{
- color: '#017BFC',
- fontWeight: 'bold',
- backgroundColor:'#ecf4ff',
- borderRadius:'14rpx',
- padding:'14rpx 28rpx',
- transition:'background .2s'
- }" :itemStyle="{fontSize:'28rpx'}" :scrollable="false"></u-tabs>
- </view> -->
-
-
<view class="tabs flex">
-
<view class="tabs-item" :class="k == menuTabIndex?'tabs-active':''" v-for="(i,k) in sectionList"
@click="changeMenuTabs(k)">
{{i.name}}
</view>
-
-
</view>
-
<view class="menu bgc-ff p-20 pb-20">
<u-grid :border="false" col="4">
<u-grid-item @click="navigatorPage(item.path)"
@@ -225,11 +198,7 @@
</u-grid-item>
</u-grid>
</view>
-
-
</view>
-
-
<!-- <view class="bgc-ff mb-20 p-20 pb-20" v-if="jobList.length">
@@ -302,7 +271,9 @@
import {
getPublicSecurityDetail
} from "@/api/grid/grid.js"
-
+ import {
+ getCountTypeNumber
+ } from "@/api/task/task.js"
export default {
components: {
noticeList,
@@ -515,7 +486,8 @@
tabIndex: 0,
isBailer: false, //是否取保候审人员
sectionList: [],
- menuTabIndex: 0
+ menuTabIndex: 0,
+ taskCount: 0
}
},
@@ -612,6 +584,23 @@
methods: {
+ //获取待办事项数量
+ getTaskCount() {
+ if (uni.getStorageSync('activeRole').roleAlias === 'wgy') {
+ roleType = 1
+ }
+ getCountTypeNumber({
+ neiCode: this.curSelectSite.id,
+ roleType: this.selectRole.roleName == "网格员" ? 1 : 0
+ }).then(res => {
+ console.log(res);
+ let data = res.data;
+ let count = 0;
+ count += Number(data.bqsj) + Number(data.xfzc) + Number(data.xfyhzg) + Number(data.qbhs);
+ this.taskCount = count
+ })
+ },
+
changeTabs(e) {
// console.log(item);
@@ -632,6 +621,7 @@
this.getBanner();
this.getSiteList()
this.getNoticeList()
+ this.getTaskCount();
},
getBanner() {
@@ -728,7 +718,6 @@
buildSiteColumn(dataList, index) {
if (dataList.length > 0) {
-
this.siteColumns[index] = dataList
if (dataList[0].children && dataList[0].children.length > 0) {
this.curSelectSite = dataList[0].children[0];
@@ -741,7 +730,6 @@
uni.setStorageSync("curHouseCode", this.curSelectSite.id)
}
},
-
// 获取楼盘
async getHouseDataList(code) {
@@ -789,6 +777,7 @@
this.curHouseCode = e.value[0].id
console.log("curSite=>", this.curSelectSite);
},
+
getMenu(menuName) {
let list = [];
for (let i of this.menuList) {
@@ -808,6 +797,7 @@
this.liveList = this.setLiveMenu(this.hasMenu('生活'));
this.jobList = this.hasMenu('工作台')
this.sectionList = this.hasMenu('首页菜单')
+ let taskMenuList = this.hasMenu('待办事项菜单')
if (this.menuList.length) {
this.getContactMenu();
this.getHouseMenu();
@@ -824,19 +814,35 @@
// } else {
// uni.setStorageSync("taskMenu", []);
// }
- if (this.sectionList.length) {
- let list = this.sectionList.filter(item => item.name == "日常办公");
- let taskList = list[0].children.filter(item => item.name == "待办事项");
- console.log("taskList===>", taskList)
- if (taskList.length) {
- uni.setStorageSync("taskMenu", taskList[0].children);
+
+ if (this.roleType == 1) {
+ if (this.sectionList.length) {
+ let list = this.sectionList.filter(item => item.name == "日常办公");
+ let taskList = list[0].children.filter(item => item.name == "待办事项");
+ console.log("taskList===>", taskList)
+ if (taskList.length) {
+ uni.setStorageSync("taskMenu", taskList[0].children);
+ } else {
+ uni.setStorageSync("taskMenu", []);
+ }
} else {
uni.setStorageSync("taskMenu", []);
}
- } else {
- uni.setStorageSync("taskMenu", []);
+ }
+
+ if (this.roleType == 3) {
+ console.log("taskMenuList==>", taskMenuList);
+ if (taskMenuList.length) {
+ uni.setStorageSync("taskMenu", taskMenuList);
+ } else {
+ uni.setStorageSync("taskMenu", []);
+ }
}
}, 200)
+
+
+
+
},
getContactMenu() {
@@ -1109,191 +1115,5 @@
</script>
<style lang="scss">
- page {
- color: #333;
- width: 100%;
- height: 100%;
- background-color: #f5f5f5;
- }
-
- .layout {
- width: 100%;
- height: 100%;
- }
-
- .top {
- width: 530rpx;
-
- .top-text {
- max-width: 85%;
- margin-right: 20rpx;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
- }
-
- .swiper {
- width: 100%;
- height: 340rpx;
- background: linear-gradient(180deg, #017BFC 0%, rgba(1, 123, 252, 0) 100%);
- padding: 0 30rpx;
- box-sizing: border-box;
- }
-
- .content {
- padding: 0 30rpx;
- }
-
- // .grid {
- // margin-top: 20rpx;
- // margin-bottom: 10rpx;
- // }
- .nav {
- padding: 10rpx 0;
- margin-bottom: 20rpx;
- border-radius: 0 0 10rpx 10rpx;
-
- .nav-item {
- padding: 10rpx 0;
- }
-
- .nav-item-text {
- font-family: PingFang SC;
- font-weight: 500;
- color: #585b61;
- }
- }
-
-
- .section {
- .section-item {
- width: 216rpx;
- height: 120rpx;
- position: relative;
- }
-
- .section-item-bg {
- width: 216rpx;
- height: 120rpx;
- }
-
- .item-box {
- width: 216rpx;
- height: 120rpx;
- position: absolute;
- top: 0;
- left: 0;
- padding: 20rpx 20rpx 0;
- box-sizing: border-box;
- }
- }
-
-
-
- .block {
- .block-item {
- position: relative;
-
- }
-
- .block-item,
- .block-item-bg,
- .block-item-box {
- width: 220rpx;
- height: 150rpx;
- border-radius: 10rpx;
- }
-
- .block-item-box {
- padding: 0 12rpx;
- box-sizing: border-box;
- position: absolute;
- top: 0;
- left: 0;
-
- }
-
- .item-text {
- height: 65rpx;
- margin-left: 20rpx;
- color: #fff;
- }
-
- .opacity {
- opacity: .4;
- }
- }
-
- .cell {
- padding: 0 16rpx;
- height: 64rpx;
- border-radius: 8rpx;
- margin-right: 20rpx;
- margin-top: 30rpx;
-
- .cell-text {
- margin-left: 16rpx;
- }
- }
-
- .grid-item {
- width: 153rpx;
- height: 153rpx;
- border-radius: 16rpx 16rpx 16rpx 16rpx;
- justify-content: center;
- }
-
- .row {
- width: 100%;
- margin: 30rpx 0;
-
- .row-item {
- width: 330rpx;
- height: 134rpx;
- box-shadow: 0rpx 10rpx 10rpx 0rpx rgba(0, 0, 0, 0.02);
- border-radius: 16rpx 16rpx 16rpx 16rpx;
- }
- }
-
- .p-20 {
- padding: 0 20rpx;
- border-radius: 10rpx;
- }
-
- .pb-20 {
- padding-bottom: 20rpx;
- }
-
- .tabs {
-
- border-radius: 10rpx 10rpx 0 0;
- // margin-bottom: 4rpx;
- background-color: rgb(236, 244, 255);
-
- .tabs-item {
- // padding: 12rpx 24rpx;
- flex: 1;
- text-align: center;
- padding: 20rpx 0;
- }
-
- .tabs-active {
- border-radius: 10rpx 10rpx 0 0;
- // background-color: rgb(236, 244, 255);
- // color: #017BFC;
- // color: rgb(236, 244, 255);
- // background-color: #017BFC;
- background-color: #fff;
- font-weight: bold;
- }
- }
-
- .menu-tabs {
- padding: 20rpx 0;
- }
-
- .menu {
- border-radius: 0 0 10rpx 10rpx;
- }
+ @import "./index.scss";
</style>
\ No newline at end of file
diff --git a/pages/statistics/index.vue b/pages/statistics/index.vue
new file mode 100644
index 0000000..e22ec56
--- /dev/null
+++ b/pages/statistics/index.vue
@@ -0,0 +1,458 @@
+<template>
+ <view class="container">
+ <view class="section">
+ <caption-row title="社区概况"></caption-row>
+ <view class="cell flex j-c-s-b flex-wrap ">
+ <view class="cell-item">
+ <text class="f-28 mb-20 c-99">楼栋数(幢)</text>
+ <text class="f-30 fw">{{houseData.result1}}</text>
+ <image class="cell-item-icon" src="/static/icon/statistics-nav-01.png" mode="aspectFill"></image>
+ </view>
+ <view class="cell-item">
+ <text class="f-28 mb-20 c-99">房屋数(套)</text>
+ <text class="f-30 fw">{{houseData.result2}}</text>
+ <image class="cell-item-icon" src="/static/icon/statistics-nav-02.png" mode="aspectFill"></image>
+ </view>
+ <view class="cell-item">
+ <text class="f-28 mb-20 c-99">住户数(人)</text>
+ <text class="f-30 fw">{{houseData.result3}}</text>
+ <image class="cell-item-icon" src="/static/icon/statistics-nav-03.png" mode="aspectFill"></image>
+ </view>
+ <view class="cell-item">
+ <text class="f-28 mb-20 c-99">单元数</text>
+ <text class="f-30 fw">{{houseData.result4}}</text>
+ <image class="cell-item-icon" src="/static/icon/statistics-nav-01.png" mode="aspectFill"></image>
+ </view>
+ </view>
+ </view>
+
+ <view class="">
+ <caption-row title="共治力量"></caption-row>
+ <view class="menu bgc-ff flex flex-wrap">
+ <view class="menu-item flex f-d-c a-i-c">
+ <text class="c-main f-32 fw mb-20">0</text>
+ <text class="f-28">党员</text>
+ </view>
+ <view class="menu-item flex f-d-c a-i-c">
+ <text class="c-main f-32 fw mb-20">0</text>
+ <text class="f-28">党组织</text>
+ </view>
+ <view class="menu-item flex f-d-c a-i-c">
+ <text class="c-main f-32 fw mb-20">{{gridData.gridStatistics}}</text>
+ <text class="f-28">网格员</text>
+ </view>
+ <!-- <view class="menu-item flex f-d-c a-i-c">
+ <text class="c-main f-32 fw mb-20">0</text>
+ <text class="f-28">社工</text>
+ </view> -->
+ <view class="menu-item flex f-d-c a-i-c">
+ <text class="c-main f-32 fw mb-20">{{gridData.companyStatistics}}</text>
+ <text class="f-28">物业人员</text>
+ </view>
+ <view class="menu-item flex f-d-c a-i-c">
+ <text class="c-main f-32 fw mb-20">{{gridData.ownersStatistics}}</text>
+ <text class="f-28">业委会</text>
+ </view>
+ <!-- <view class="menu-item flex f-d-c a-i-c">
+ <text class="c-main f-32 fw mb-20">0</text>
+ <text class="f-28">群团组织</text>
+ </view> -->
+ </view>
+ </view>
+
+ <view class="">
+ <caption-row title="人员画像"></caption-row>
+ <view class="bar-charts bgc-ff">
+ <qiun-data-charts type="bar" :opts="opts" :chartData="chartData" />
+ </view>
+ <view class="pie-charts flex bgc-ff">
+ <view class="pie-charts-box flex j-c-c a-i-c">
+ <qiun-data-charts type="pie" :opts="pieOpts" :chartData="sexChartData" />
+ </view>
+ <view class="pie-charts-explain flex f-d-c j-c-c" v-if="sexData.length">
+ <view class="f-32 fw mb-20">性别</view>
+ <view class="flex a-i-c mb-20" v-for="i in sexData">
+ <text class="f-30 fw">{{i.gender}}</text>
+ <text class="f-26">({{i.numbers}})</text>
+ </view>
+ </view>
+ </view>
+
+
+ </view>
+ <view class="event">
+ <caption-row title="社区事件"></caption-row>
+ <view class="block bgc-ff mt-20 mb-20">
+ <view class="block-caption f-28 fw">
+ 总体统计
+ </view>
+ <view class="grid">
+ <u-grid :border="true">
+ <u-grid-item bgColor="#fff">
+ <view class="grid-item flex f-d-c a-i-c">
+ <text class="f-32 fw c-main mb-20">{{reportData.result}}</text>
+ <text class="f-28">事件总数</text>
+ </view>
+ </u-grid-item>
+ <u-grid-item bgColor="#fff">
+ <view class="grid-item flex f-d-c a-i-c">
+ <text class="f-32 fw c-main mb-20">{{reportData.result1}}</text>
+ <text class="f-28">办理数</text>
+ </view>
+ </u-grid-item>
+ <u-grid-item bgColor="#fff">
+ <view class="grid-item flex f-d-c a-i-c">
+ <text class="f-32 fw c-main mb-20">{{ setNumber(reportData.result2)}}%</text>
+ <text class="f-28">办结比例</text>
+ </view>
+ </u-grid-item>
+ </u-grid>
+ </view>
+ </view>
+ <view class="block bgc-ff">
+ <view class="block-caption f-28 fw">
+ 事件分类
+ </view>
+ <view class="flex j-c-s-b a-i-c flex-wrap">
+ <view class="report-item">
+ <image class="report-item-bg" src="/static/icon/nav-bg-08.png" mode="aspectFill"></image>
+ <view class="report-item-inner flex f-d-c j-c-c ">
+ <text class="f-30 mb-20">{{reportData.result5}}</text>
+ <text class="f-28 ">矛盾纠纷</text>
+ </view>
+ </view>
+ <view class="report-item">
+ <image class="report-item-bg" src="/static/icon/nav-bg-06.png" mode="aspectFill"></image>
+ <view class="report-item-inner flex f-d-c j-c-c ">
+ <text class="f-30 mb-20">{{reportData.result3}}</text>
+ <text class="f-28 ">公共维护</text>
+ </view>
+ </view>
+ <view class="report-item">
+ <image class="report-item-bg" src="/static/icon/nav-bg-07.png" mode="aspectFill"></image>
+ <view class="report-item-inner flex f-d-c j-c-c ">
+ <text class="f-30 mb-20">{{reportData.result4}}</text>
+ <text class="f-28 ">居家维修</text>
+ </view>
+ </view>
+ <view class="report-item">
+ <image class="report-item-bg" src="/static/icon/nav-bg-09.png" mode="aspectFill"></image>
+ <view class="report-item-inner flex f-d-c j-c-c ">
+ <text class="f-30 mb-20">{{reportData.result6}}</text>
+ <text class="f-28 ">投诉举报</text>
+ </view>
+ </view>
+ </view>
+ </view>
+
+ </view>
+
+ </view>
+</template>
+
+<script>
+ import captionRow from "@/components/caption/caption.vue"
+ import * as statisticsModal from "@/api/statistics/statistics.js"
+ export default {
+ components: {
+ captionRow
+ },
+ data() {
+ return {
+ reportData: {},
+ houseData: {},
+ chartData: {},
+ opts: {
+ fontSize: 10,
+ color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
+ "#ea7ccc"
+ ],
+ padding: [15, 30, 0, 5],
+ enableScroll: false,
+ legend: {},
+ xAxis: {
+ // boundaryGap: "justify",
+ disableGrid: false,
+ min: 0,
+ axisLine: false,
+ // max: 70,
+ fontSize: 10,
+
+ },
+ yAxis: {},
+ extra: {
+ bar: {
+ type: "stack",
+ width: 14,
+ meterBorde: 1,
+ meterFillColor: "#FFFFFF",
+ activeBgColor: "#000000",
+ activeBgOpacity: 0.08,
+ categoryGap: 2
+ }
+ }
+ },
+ sexChartData: {},
+ pieOpts: {
+ color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
+ "#ea7ccc"
+ ],
+ padding: [5, 5, 5, 5],
+ enableScroll: false,
+ extra: {
+ pie: {
+ customRadius: 60,
+ activeOpacity: 0.5,
+ activeRadius: 10,
+ offsetAngle: 0,
+ labelWidth: 6,
+ border: false,
+ borderWidth: 3,
+ borderColor: "#FFFFFF"
+ }
+ }
+ },
+ gridData: {},
+ sexData: []
+ }
+ },
+
+ onLoad() {
+ this.getHouseHoldData();
+ this.getHouseData();
+ this.getReportData();
+ this.getGridData();
+ },
+
+ methods: {
+
+ getRoleType() {
+ let roleName = uni.getStorageSync("activeRole").roleName;
+ if (roleName == "网格员") {
+ return 1;
+ } else if (roleName == "系统管理员") {
+ return 2
+ } else if (roleName == "民警") {
+ return 3;
+ }
+ },
+
+ setNumber(num) {
+ if (num) {
+ let n = Number(this.reportData.result2) * 100
+ return n.toFixed(2)
+ } else {
+ return num
+ }
+
+ },
+
+
+ getHouseHoldData() {
+ statisticsModal.getHouseholdStatistics({
+ code: this.siteInfo.id,
+ roleType: this.getRoleType()
+ }).then(res => {
+ // this.houseHoldData = res.data;
+ let data = res.data;
+ this.sexData = data.gender;
+ this.setPersonData(data.age)
+ this.setSexData(data.gender)
+ })
+ },
+
+
+ setPersonData(data) {
+ let res = {
+ categories: [],
+ series: [{
+ name: "人数",
+ data: []
+ }]
+ }
+ for (let i of data) {
+ res.categories.push(i.age);
+ res.series[0].data.push(i.number)
+ }
+ this.chartData = JSON.parse(JSON.stringify(res));
+ },
+
+ setSexData(data) {
+ let res = {
+ series: [{
+ data: []
+ }]
+ }
+ for (let i of data) {
+ res.series[0].data.push({
+ name: i.gender,
+ value: i.numbers
+ })
+ }
+ this.sexChartData = JSON.parse(JSON.stringify(res));
+ },
+
+ //获取社区概况数据
+ getHouseData() {
+ statisticsModal.getHouseStatistics({
+ code: this.siteInfo.id,
+ roleType: this.getRoleType()
+ }).then(res => {
+ this.houseData = res.data;
+ })
+ },
+
+ //获取社区事件数据
+ getReportData() {
+ statisticsModal.getReportStatistics({
+ code: this.siteInfo.id,
+ roleType: this.getRoleType()
+ }).then(res => {
+ console.log(res);
+ this.reportData = res.data;
+ })
+ },
+
+ //获取网格物业人员
+ getGridData() {
+ statisticsModal.getGridStatistics({
+ code: this.siteInfo.id,
+ roleType: this.getRoleType()
+ }).then(res => {
+ console.log(res);
+ this.gridData = res.data;
+ })
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ page {
+ background-color: #f5f5f5;
+ }
+
+ .container {
+ padding: 0 20rpx;
+ }
+
+ // .section {
+ // padding: 0 20rpx;
+ // }
+
+ .cell {
+ padding: 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;
+ }
+ }
+
+ .menu {
+ // padding: 20rpx 0;
+ margin-top: 20rpx;
+
+ .menu-item {
+ width: 33%;
+ padding: 20rpx 0;
+ border-right: 1px solid #dadbde;
+ }
+
+ .menu-item:nth-child(3n) {
+ border-right: none;
+ }
+
+ .menu-item:nth-child(-n + 3) {
+ border-bottom: 1px solid #dadbde;
+ }
+ }
+
+ .event {
+ padding: 0 0 20rpx;
+ }
+
+ .block {
+ padding: 20rpx;
+ border-radius: 10rpx;
+
+ .block-caption {
+ padding: 20rpx 0;
+ }
+
+ .grid {
+ box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 0, 0, 0.1);
+ }
+
+ .grid-item {
+ padding: 20px 0;
+ }
+ }
+
+ .report-item {
+ position: relative;
+ margin-bottom: 10rpx;
+ }
+
+ .report-item,
+ .report-item-bg,
+ .report-item-inner {
+ width: 330rpx;
+ height: 167rpx;
+ border-radius: 10rpx;
+ }
+
+ .report-item-inner {
+ position: absolute;
+ top: 0;
+ left: 0;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ // background-color:#fff;
+ }
+
+ .bar-charts,
+ .pie-charts {
+ width: 100%;
+ height: 300px;
+ border-radius: 10rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ }
+
+ .bar-charts {
+ margin: 20rpx 0;
+ }
+
+ // .pie-charts-box,.pie-charts-explain{
+ // width:50%;
+ // }
+ .pie-charts-box {
+ width: 70%;
+ }
+
+ .pie-charts-explain {
+ width: 30%;
+ padding-left: 40rpx;
+ box-sizing: border-box;
+ }
+</style>
\ No newline at end of file
diff --git a/subPackage/house/family/index.vue b/subPackage/house/family/index.vue
index 85ad4b1..0f6023f 100644
--- a/subPackage/house/family/index.vue
+++ b/subPackage/house/family/index.vue
@@ -93,9 +93,17 @@
<text class="proprietor-box">
{{scItem.realName || ""}}
</text>
- <text class="r floor-box">
- {{scItem.houseNo}}
- </text>
+ <view>
+ <!-- <view class="label-tag mr-10"
+ :style="{backgroundColor:showHouseColor(scItem.houseColor,'showColor')}">
+ {{showHouseColor(scItem.houseColor,'name')}}
+ </view> -->
+ <text class="r floor-box"
+ :style="{color:showHouseColor(scItem.houseColor,'showColor')}">
+ {{scItem.houseNo}}
+ </text>
+ </view>
+
</view>
<!-- <view style="margin-top:10rpx;" v-if="scItem.householdLabelList.length">
<block v-for="i in scItem.householdLabelList">
@@ -173,7 +181,26 @@
unitName: "", //单元名称
houseData: {},
shopType: "", //商铺类型 1 自建房商铺 2 企业商铺
- startTime: ""
+ startTime: "",
+ labelItemList: [{
+ name: "闲置",
+ showColor: '#30D17C',
+ color: "green"
+ },
+
+ {
+
+
+ name: "出租",
+ showColor: '#FFCC00',
+ color: "yellow"
+ },
+ {
+ name: "自住",
+ showColor: '#0099FF',
+ color: "blue"
+ },
+ ]
}
},
onLoad(e) {
@@ -220,6 +247,17 @@
this.getBuildingList()
},
methods: {
+
+
+ showHouseColor(color, key) {
+ for (let i of this.labelItemList) {
+ if (i.color == color) {
+
+ return i[key]
+ }
+ }
+ },
+
async getBuildingList() {
uni.showLoading({
title: "正在加载"
@@ -340,8 +378,9 @@
}
.floor-box {
- color: #017BFC;
- font-weight: 700;
+ // color: #017BFC;
+ color: #333;
+ // font-weight: 700;
}
}
diff --git a/subPackage/house/member/add.vue b/subPackage/house/member/add.vue
index 99fdbe7..10c5266 100644
--- a/subPackage/house/member/add.vue
+++ b/subPackage/house/member/add.vue
@@ -2,8 +2,16 @@
<view class="container">
<view class="main">
<view class="content">
+ <view class="top flex j-c-s-b a-i-c bgc-ff" @click="onScan()" v-if="!currentId">
+ <view class="flex a-i-c">
+ <u-icon name="/static/icon/nav-05.png" width="90rpx" height="90rpx"></u-icon>
+ <text class="f-28 ml-10">扫码获取信息</text>
+ </view>
+ <u-icon name="arrow-right" size="20"></u-icon>
+ </view>
<u-form labelWidth="70" :model="form" :rules="rules" ref="form">
<view class="event-info">
+
<view class="box-title">
<box-title title="基础信息"></box-title>
</view>
@@ -29,6 +37,13 @@
<u--input border="none" v-model="form.name" placeholder="请输入姓名">
</u--input>
</u-form-item>
+ <u-form-item @click="showSelectBus('性别','gender')" class="form-item" labelWidth="100" label="性别"
+ prop="gender">
+ <u--input border="none" v-model="selectDefaultName.gender" disabled disabledColor="#ffffff"
+ placeholder="请选择性别">
+ </u--input>
+ <u-icon slot="right" name="arrow-right"></u-icon>
+ </u-form-item>
<u-form-item @click="showSelectBus('证件类型','cardType')" class="form-item" labelWidth="100"
label="证件类型" prop="gender">
<u--input border="none" v-model="selectDefaultName.cardType" disabled
@@ -47,6 +62,49 @@
<u--input border="none" v-model="form.cardNo" placeholder="请输入证件号码">
</u--input>
</u-form-item>
+ <u-form-item class="form-item" labelWidth="100" label="手机号码" prop="phoneNumber" required>
+ <u--input border="none" type="number" v-model="form.phoneNumber" placeholder="请输入手机号码">
+ </u--input>
+ </u-form-item>
+ <u-form-item class="form-item" labelWidth="100" label="户籍地区" prop="residentAdcode">
+ <view class="region">
+ <picker mode="region" :value="residentadDefault" @change="changeHouseholdRegion">
+ <view class="region-picker c-c0" v-if="!residentad">
+ 请选择户籍地区
+ </view>
+ <view class="region-picker c-30" v-if="residentad">
+ {{residentad}}
+ </view>
+ </picker>
+ </view>
+ <u-icon slot="right" name="arrow-right"></u-icon>
+ </u-form-item>
+ <u-form-item @click="showSelectBus('民族','ethnicity')" class="form-item" labelWidth="100"
+ label="民族" prop="ethnicity">
+ <u--input border="none" v-model="selectDefaultName.ethnicity" disabled
+ disabledColor="#ffffff" placeholder="请选择民族">
+ </u--input>
+ <u-icon slot="right" name="arrow-right"></u-icon>
+ </u-form-item>
+ <u-form-item @click="showSelectBus('是否党员','partyEmber')" class="form-item" labelWidth="100"
+ label="是否党员" prop="partyEmber">
+ <u--input border="none" v-model="selectDefaultName.partyEmber" disabled
+ disabledColor="#ffffff" placeholder="请选择是否党员">
+ </u--input>
+ <u-icon slot="right" name="arrow-right"></u-icon>
+ </u-form-item>
+ <u-form-item class="form-item" labelWidth="100" label="职业类别" prop="occupation ">
+ <u--input border="none" v-model="form.occupation " placeholder="请输入职业类别">
+ </u--input>
+ </u-form-item>
+ <u-form-item @click="showSelectBus('婚姻状态','maritalStatus')" class="form-item" labelWidth="100"
+ label="婚姻状态" prop="maritalStatus">
+ <u--input border="none" v-model="selectDefaultName.maritalStatus" disabled
+ disabledColor="#ffffff" placeholder="请选择婚姻状态">
+ </u--input>
+ <u-icon slot="right" name="arrow-right"></u-icon>
+ </u-form-item>
+
<u-form-item v-if="form.cardType && form.cardType != 111" class="form-item" labelWidth="100"
label="出生日期" prop="birthday" @click="showSelectBirthday = true">
@@ -55,18 +113,9 @@
</u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
- <u-form-item @click="showSelectBus('性别','gender')" class="form-item" labelWidth="100" label="性别"
- prop="gender">
- <u--input border="none" v-model="selectDefaultName.gender" disabled disabledColor="#ffffff"
- placeholder="请选择性别">
- </u--input>
- <u-icon slot="right" name="arrow-right"></u-icon>
- </u-form-item>
- <u-form-item class="form-item" labelWidth="100" label="手机号码" prop="phoneNumber" required>
- <u--input border="none" type="number" v-model="form.phoneNumber" placeholder="请输入手机号码">
- </u--input>
- </u-form-item>
+
+
<u-form-item class="form-item" labelWidth="100" label="其它联系方式" prop="otherContact">
<u--input border="none" v-model="form.otherContact" placeholder="请输入其它联系方式">
@@ -127,19 +176,6 @@
</u-form-item>
- <u-form-item class="form-item" labelWidth="100" label="户籍地区" prop="residentAdcode">
- <view class="region">
- <picker mode="region" :value="residentadDefault" @change="changeHouseholdRegion">
- <view class="region-picker c-c0" v-if="!residentad">
- 请选择户籍地区
- </view>
- <view class="region-picker c-30" v-if="residentad">
- {{residentad}}
- </view>
- </picker>
- </view>
- <u-icon slot="right" name="arrow-right"></u-icon>
- </u-form-item>
@@ -167,13 +203,7 @@
</u-form-item>
- <u-form-item @click="showSelectBus('民族','ethnicity')" class="form-item" labelWidth="100"
- label="民族" prop="ethnicity">
- <u--input border="none" v-model="selectDefaultName.ethnicity" disabled
- disabledColor="#ffffff" placeholder="请选择民族">
- </u--input>
- <u-icon slot="right" name="arrow-right"></u-icon>
- </u-form-item>
+
<u-form-item @click="showSelectBus('学历','education')" class="form-item" labelWidth="100"
label="学历" prop="education">
@@ -183,17 +213,8 @@
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
- <u-form-item @click="showSelectBus('是否党员','partyEmber')" class="form-item" labelWidth="100"
- label="是否党员" prop="partyEmber">
- <u--input border="none" v-model="selectDefaultName.partyEmber" disabled
- disabledColor="#ffffff" placeholder="请选择是否党员">
- </u--input>
- <u-icon slot="right" name="arrow-right"></u-icon>
- </u-form-item>
- <u-form-item class="form-item" labelWidth="100" label="职业类别" prop="occupation ">
- <u--input border="none" v-model="form.occupation " placeholder="请输入职业类别">
- </u--input>
- </u-form-item>
+
+
<u-form-item class="form-item" labelWidth="100" label="工作单位" prop="employer">
<u--input border="none" v-model="form.employer" placeholder="请输入工作单位">
</u--input>
@@ -210,13 +231,7 @@
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
- <u-form-item @click="showSelectBus('婚姻状态','maritalStatus')" class="form-item" labelWidth="100"
- label="婚姻状态" prop="maritalStatus">
- <u--input border="none" v-model="selectDefaultName.maritalStatus" disabled
- disabledColor="#ffffff" placeholder="请选择婚姻状态">
- </u--input>
- <u-icon slot="right" name="arrow-right"></u-icon>
- </u-form-item>
+
<u-form-item class="form-item" labelWidth="100" label="宗教信仰" prop="religiousBelief ">
<u--input border="none" v-model="form.religiousBelief" placeholder="请输入宗教信仰">
</u--input>
@@ -1002,6 +1017,7 @@
// height: 0;
// flex: 1;
// overflow-y: auto;
+ padding: 20rpx 0 0;
padding-bottom: 160rpx;
// padding-bottom: 36rpx;
}
@@ -1140,4 +1156,10 @@
top: 20rpx;
}
}
+
+ .top {
+ padding: 20rpx;
+ marign: 20rpx 30rpx;
+ border-radius: 8rpx;
+ }
</style>
\ No newline at end of file
diff --git a/subPackage/house/roomControl/index.vue b/subPackage/house/roomControl/index.vue
index dc17363..fe62d02 100644
--- a/subPackage/house/roomControl/index.vue
+++ b/subPackage/house/roomControl/index.vue
@@ -53,11 +53,16 @@
<view class=" flex label-btn-box b-c-w" v-if="roleType == 2">
<newBoxTitle title="房屋标签"></newBoxTitle>
<view class="list">
- <view v-for="(item, index) in labelBtnList" :key="index">
- <u-button size="mini" type="primary" :color="$setLabelColor(item.color)"
+ <block v-for="(item, index) in labelBtnList" :key="index">
+ <view @click="handleLabel(index,item)" class="label-item"
+ :class="index == labelIndex?'c-ff':'c-66'"
+ :style="{backgroundColor:(index == labelIndex?item.showColor:'#F5F5F5')}">
+ {{item.name}}
+ <!-- <u-button size="mini" type="primary" :color="$setLabelColor(item.color)"
:style="{color: $setLabelColor(item.color) && '#fff'}" :text="item.name"
- @click="showLabelPopup(item)"></u-button>
- </view>
+ @click="showLabelPopup(item)"></u-button> -->
+ </view>
+ </block>
</view>
</view>
</u-form>
@@ -108,7 +113,8 @@
} from "@/api/label/label.js";
import {
saveOrUpdateHouseholdLabel,
- removeHouseholdLabel
+ removeHouseholdLabel,
+ setHouseLabel
} from "@/api/house/householdLabel.js";
import {
getHouseDetail,
@@ -212,6 +218,26 @@
roleType: 1,
showSelectDate: false,
serveTime: Number(new Date()),
+ labelIndex: null,
+ labelItemList: [{
+ name: "闲置",
+ showColor: '#30D17C',
+ color: "green"
+ },
+
+ {
+
+
+ name: "出租",
+ showColor: '#FFCC00',
+ color: "yellow"
+ },
+ {
+ name: "自住",
+ showColor: '#0099FF',
+ color: "blue"
+ },
+ ]
}
},
created() {
@@ -268,7 +294,16 @@
parentId: 1001
}
const resLabel = await getLabelListByParentId(paramLabel)
- this.labelBtnList = resLabel.data
+ let labelItem = resLabel.data;
+ for (let i = 0, ii = labelItem.length; i < ii; i++) {
+ for (let k = 0, kk = this.labelItemList.length; k < kk; k++) {
+ if (labelItem[i].name == this.labelItemList[k].name) {
+ labelItem[i].showColor = this.labelItemList[k].showColor;
+ labelItem[i].color = this.labelItemList[k].color;
+ }
+ }
+ }
+ this.labelBtnList = labelItem;
if (null != res.data) {
const images = []
const {
@@ -295,16 +330,22 @@
- if (userHouseLabelVOList.length > 0) {
- that.labelBtnList.forEach(e => {
- userHouseLabelVOList.forEach(f => {
- if (Number(e.id) == f.labelId) {
- e['color'] = f.color
- e['remark'] = f.remark
- }
- })
- })
+ // if (userHouseLabelVOList.length > 0) {
+ // that.labelBtnList.forEach(e => {
+ // userHouseLabelVOList.forEach(f => {
+ // if (Number(e.id) == f.labelId) {
+ // e['color'] = f.color
+ // e['remark'] = f.remark
+ // }
+ // })
+ // })
+ // }
+
+ if (userHouseLabelVOList.length) {
+ this.labelIndex = this.labelBtnList.findIndex(item => item.id == userHouseLabelVOList[0]
+ .labelId)
}
+
this.form = {
phone,
address,
@@ -445,6 +486,27 @@
this.popupShow = false
},
+ //选择标签
+ handleLabel(index, item) {
+ this.labelIndex = index;
+ let data = {
+ labelId: item.id,
+ color: item.color,
+ lableType: 2,
+ houseCode: this.houseCode
+ }
+ this.setLabelRequest(data)
+ },
+
+ setLabelRequest(data) {
+ setHouseLabel(data).then(res => {
+ if (res.code == 200) {
+ this.$showTips("操作成功", "success")
+ }
+ })
+ }
+
+
}
}
</script>
@@ -555,4 +617,13 @@
}
}
}
+
+
+ .label-item {
+ padding: 12rpx;
+ border-radius: 8rpx;
+ font-size: 26rpx;
+ margin-right: 30rpx;
+ text-align: center;
+ }
</style>
\ No newline at end of file
diff --git a/subPackage/task/index.vue b/subPackage/task/index.vue
index 60dd10c..fa509ef 100644
--- a/subPackage/task/index.vue
+++ b/subPackage/task/index.vue
@@ -129,12 +129,19 @@
<view class="nav-item flex j-c-s-b a-i-c" @click="navTo(`${i.path}&from=task`)" v-for="i in securityList">
<text class="f-28">{{i.name}}</text>
<view class="flex">
+ <block v-if="i.count > 0">
+ <text class="f-28 c-99">待处理</text>
+ <view class="dot bgc-main">{{i.count}}</view>
+ </block>
+ <u-icon name="arrow-right" color="#999"></u-icon>
+ </view>
+ <!-- <view class="flex">
<block v-if="bailCount > 0">
<text class="f-28 c-99">待处理</text>
<view class="dot bgc-main">{{bailCount}}</view>
</block>
<u-icon name="arrow-right" color="#999"></u-icon>
- </view>
+ </view> -->
</view>
</view>
</view>
@@ -205,22 +212,29 @@
i.count = data.bsbx;
} else if (i.name.trim() == "住户审核") {
i.count = data.zhsh
- } else if (i.name.trim() == "二手交易") {
- i.count = data.bqsj
} else if (i.name.trim() == "租户确认") {
i.count = data.czsh
} else if (i.name.trim() == "走访任务") {
i.count = data.zfrw;
} else if (i.name.trim() == "走访任务") {
i.count = data.zfrw;
- } else if (i.name.trim() == "消防自查") {
- i.count = data.xfzc;
-
- } else if (i.name.trim() == "消防隐患整改") {
- i.count = data.xfyhzg;
}
}
- this.bailCount = data.qbhs
+ // this.bailCount = data.qbhs
+
+ for (let i of this.securityList) {
+ if (i.name.trim() == "二手交易") {
+ i.count = data.bqsj
+ } else if (i.name.trim() == "消防自查") {
+ i.count = data.xfzc;
+ } else if (i.name.trim() == "消防隐患整改") {
+ i.count = data.xfyhzg;
+ } else {
+ i.count = data.qbhs;
+ }
+ }
+
+
}
})
},
diff --git a/subPackage/workbench/components/formItem.vue b/subPackage/workbench/components/formItem.vue
index 477acda..d50e2a4 100644
--- a/subPackage/workbench/components/formItem.vue
+++ b/subPackage/workbench/components/formItem.vue
@@ -4,19 +4,6 @@
<u-form-item label="姓名" required prop="name" class="form-item">
<u--input v-model="form.name" border="none" placeholder="请填写姓名"></u--input>
</u-form-item>
- <u-form-item label="电话号码" class="form-item">
- <u--input v-model="form.telephone" border="none" placeholder="请填写电话号码"></u--input>
- </u-form-item>
- <u-form-item label="现居住地" class="form-item">
- <u--input v-model="form.tempAddress" border="none" placeholder="请填写现居住地"></u--input>
- </u-form-item>
- <u-form-item label="身份证号" class="form-item">
- <u--input v-model="form.idCard" type="idcard" border="none" placeholder="请填写身份证号"></u--input>
- </u-form-item>
- <u-form-item label="微信号" class="form-item">
- <u--input v-model="form.wxAccount" border="none" placeholder="请填写微信号"></u--input>
- </u-form-item>
-
<u-form-item @click="showGenderPicker = true" class="form-item" label="性别" prop="legalGender">
<u--input border="none" v-model="genderValue" disabled disabledColor="#ffffff" placeholder="请选择性别">
</u--input>
@@ -27,12 +14,28 @@
</u--input>
<u-icon slot="right" name="arrow-right"></u-icon>
</u-form-item>
- <u-form-item label="岗位性质" class="form-item">
- <u--input v-model="form.jobNature" border="none" placeholder="请填写岗位性质"></u--input>
+ <u-form-item label="身份证号" class="form-item">
+ <u--input v-model="form.idCard" type="idcard" border="none" placeholder="请填写身份证号"></u--input>
</u-form-item>
- <u-form-item label="户籍地址" class="form-item">
+ <u-form-item label="电话号码" class="form-item">
+ <u--input v-model="form.telephone" border="none" placeholder="请填写电话号码"></u--input>
+ </u-form-item>
+ <u-form-item label="现居住地" class="form-item">
+ <u--input v-model="form.tempAddress" border="none" placeholder="请填写现居住地"></u--input>
+ </u-form-item>
+
+ <!-- <u-form-item label="微信号" class="form-item">
+ <u--input v-model="form.wxAccount" border="none" placeholder="请填写微信号"></u--input>
+ </u-form-item> -->
+
+
+
+ <u-form-item label="岗位" class="form-item">
+ <u--input v-model="form.jobNature" border="none" placeholder="请填写岗位"></u--input>
+ </u-form-item>
+ <!-- <u-form-item label="户籍地址" class="form-item">
<u--input v-model="form.registeredAddress" border="none" placeholder="请填写户籍地址"></u--input>
- </u-form-item>
+ </u-form-item> -->
<u-form-item label="从业人员照片" class="form-item" labelPosition="top" labelWidth="100">
<view style="padding:20rpx 0 0;">
<u-upload :fileList="form.employerImg" :previewFullImage="uploadConfig.previewFullImage"
diff --git a/subPackage/workbench/views/audit.vue b/subPackage/workbench/views/audit.vue
index f851718..a057f1c 100644
--- a/subPackage/workbench/views/audit.vue
+++ b/subPackage/workbench/views/audit.vue
@@ -104,7 +104,7 @@
uni.setNavigationBarTitle({
title: "取保候审"
})
- } else if (option.reportType == 2) {
+ } else if (option.reportType == 7) {
uni.setNavigationBarTitle({
title: "消防自查"
})
diff --git a/subPackage/workbench/views/cscj.vue b/subPackage/workbench/views/cscj.vue
index 315b317..aff8223 100644
--- a/subPackage/workbench/views/cscj.vue
+++ b/subPackage/workbench/views/cscj.vue
@@ -90,6 +90,17 @@
</u-form-item>
+ <u-form-item label="三级消防单位" labelWidth="100" prop="threeFireProtection" :required="isRequired">
+ <u-radio-group v-model="form.threeFireProtection" v-if="!currentId">
+ <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList"
+ :key="index" :label="item.name" :name="item.id">
+ </u-radio>
+ </u-radio-group>
+ <view class="f-30" v-if="currentId">
+ {{form.threeFireProtection == 1?"是":"否"}}
+ </view>
+ </u-form-item>
+
<u-form-item class="form-item" labelWidth="100" label="备注:" prop="remark">
<u--input v-if="!currentId" border="none" v-model="form.remark" placeholder="请输入">
</u--input>
@@ -120,9 +131,43 @@
</view>
</u-form-item>
+ <u-form-item v-if="!currentId" label="负责人信息和法人信息是否一致" labelWidth="100" :required="isRequired">
+ <u-radio-group v-model="isLegalSame">
+ <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList"
+ :key="index" :label="item.name" :name="item.id">
+ </u-radio>
+ </u-radio-group>
+ <!-- <view class="f-30" v-if="currentId">
+ {{form.threeFireProtection == 1?"是":"否"}}
+ </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="legalPerson">
+ <u--input border="none" v-model="form.placeExtEntity.legalPerson" placeholder="请输入">
+ </u--input>
+ </u-form-item>
+ <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+ label="身份证号:" prop="legalIdCard">
+ <u--input border="none" type="idcard" v-model="form.placeExtEntity.legalIdCard"
+ placeholder="请输入">
+ </u--input>
+ </u-form-item>
+ <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
+ label="手机号:" prop="legalTel">
+ <u--input border="none" type="number" v-model="form.placeExtEntity.legalTel" placeholder="请输入">
+ </u--input>
+ </u-form-item>
+ </view>
+
+ <view class="item" v-if="isLegalSame != 1 && !currentId">
<view class="box-title">
<box-title title="负责人信息"></box-title>
</view>
@@ -172,72 +217,7 @@
</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="legalPerson">
- <u--input border="none" v-model="form.placeExtEntity.legalPerson" placeholder="请输入">
- </u--input>
- </u-form-item>
- <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
- label="身份证号:" prop="legalIdCard">
- <u--input border="none" type="idcard" v-model="form.placeExtEntity.legalIdCard"
- placeholder="请输入">
- </u--input>
- </u-form-item>
- <!-- <u-form-item @click="showGenderPicker = true" class="form-item" labelWidth="100" label="性别"
- prop="legalGender">
- <u--input border="none" v-model="genderValue" disabled disabledColor="#ffffff"
- placeholder="请选择性别">
- </u--input>
- <u-icon slot="right" name="arrow-right"></u-icon>
- </u-form-item>
- <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
- label="年龄:" prop="legalAge">
- <u--input border="none" type="number" v-model="form.legalAge" placeholder="请输入">
- </u--input>
- </u-form-item>
- <u-form-item @click="showNationPicker = true" class="form-item" labelWidth="100" label="民族"
- prop="ethnicity">
- <u--input border="none" v-model="nationValue" disabled disabledColor="#ffffff"
- placeholder="请选择民族">
- </u--input>
- <u-icon slot="right" name="arrow-right"></u-icon>
- </u-form-item> -->
- <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
- label="手机号:" prop="legalTel">
- <u--input border="none" type="number" v-model="form.placeExtEntity.legalTel" placeholder="请输入">
- </u--input>
- </u-form-item>
- <!-- <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
- label="微信号:" prop="legalWxAccount">
- <u--input border="none" v-model="form.legalWxAccount" placeholder="请输入">
- </u--input>
- </u-form-item>
- <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
- label="工作单位:" prop="employer">
- <u--input border="none" v-model="form.employer" placeholder="请输入">
- </u--input>
- </u-form-item>
- <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
- label="岗位性质:" prop="legalJobNature">
- <u--input border="none" v-model="form.legalJobNature" placeholder="请输入">
- </u--input>
- </u-form-item>
- <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
- label="户籍地址:" prop="legalRegisteredAddress">
- <u--textarea border="none" v-model="form.legalRegisteredAddress" placeholder="请输入">
- </u--textarea>
- </u-form-item>
- <u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
- label="居住地址:" prop="legalTempAddress">
- <u--textarea border="none" type="idcard" v-model="form.legalTempAddress" placeholder="请输入">
- </u--textarea>
- </u-form-item> -->
- </view>
<view class="item pic" v-if="(currentId && form.images.length) || !currentId ">
@@ -668,7 +648,7 @@
showNationPicker: false,
showGenderPicker: false,
personNum: 1,
-
+ isLegalSame: "" //法人信息是否与负责人一致 1是 2否
}
},
@@ -1103,8 +1083,11 @@
this.form.placePractitioner = placePractitioner
}
-
-
+ if (this.isLegalSame == 1) {
+ this.form.placeExtEntity.legalPerson = this.form.principal;
+ this.form.placeExtEntity.legalTel = this.form.principalPhone;
+ this.form.placeExtEntity.legalIdCard = this.form.principalIdCard;
+ }
add(this.form).then(res => {
uni.showToast({
@@ -1271,7 +1254,7 @@
addPerson() {
this.personNum++
- },
+ }
}
}
</script>
diff --git a/subPackage/workbench/views/editCscj.vue b/subPackage/workbench/views/editCscj.vue
index 82b8b03..0c92c68 100644
--- a/subPackage/workbench/views/editCscj.vue
+++ b/subPackage/workbench/views/editCscj.vue
@@ -71,11 +71,23 @@
@close="delTag()" :text="item.categoryName"></u-tag>
</view>
</view> -->
+
+ <u-form-item label="三级消防单位" labelWidth="100" prop="threeFireProtection" :required="isRequired">
+ <u-radio-group v-model="form.threeFireProtection" v-if="!currentId">
+ <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList"
+ :key="index" :label="item.name" :name="item.id">
+ </u-radio>
+ </u-radio-group>
+ <view class="f-30" v-if="currentId">
+ {{form.threeFireProtection == 1?"是":"否"}}
+ </view>
+ </u-form-item>
<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 label="经纬度:" prop="location" labelWidth="100">
<view class="address-row flex j-c-s-b a-i-c">
<view class="address-content f-28" v-if="form.jwd">
--
Gitblit v1.9.3