From ce21b378de4b5a075da8295404d2fdb3b2e3a22a Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Sat, 25 Nov 2023 19:20:13 +0800
Subject: [PATCH] 公益投票、选举调查功能编写,修复部分问题
---
components/noticeList/noticeList.vue | 16
subPackage/article/list.vue | 43 ++
pages.json | 2
api/community/community.js | 51 +++
subPackage/article/detail.vue | 331 +++++++++++++++++++------
pages/home/index.vue | 5
subPackage/bs/views/repair.vue | 251 +++++++-----------
common/setting.js | 4
subPackage/house/family/index.vue | 15
subPackage/bs/views/addRepair.vue | 2
subPackage/house/list/index.vue | 2
subPackage/task/index.vue | 10
subPackage/workbench/views/report.vue | 5
13 files changed, 469 insertions(+), 268 deletions(-)
diff --git a/api/community/community.js b/api/community/community.js
new file mode 100644
index 0000000..50c9dd8
--- /dev/null
+++ b/api/community/community.js
@@ -0,0 +1,51 @@
+import http from '@/http/api.js'
+
+//获取报名列表
+export const getApplyList = (params) => {
+ return http.request({
+ url: '/blade-userPublicEnroll/userPublicEnroll/page',
+ method: 'GET',
+ params: {
+ ...params
+ }
+ })
+}
+//获取报名详情
+export const getApplyDetail = (params) => {
+ return http.request({
+ url: '/public_discuss/publicDiscuss/detail',
+ method: 'GET',
+ params: {
+ ...params
+ }
+ })
+}
+
+//添加报名
+export const addApply = (params) => {
+ return http.request({
+ url: '/blade-userPublicEnroll/userPublicEnroll/save',
+ method: 'POST',
+ data:params
+ })
+}
+
+//获取投票议题
+export const getVoteTopics = (params) => {
+ return http.request({
+ url: '/blade-topics/topics/lists',
+ method: 'GET',
+ params: {
+ ...params
+ }
+ })
+}
+
+//投票操作
+export const addVoteOperate = (params) => {
+ return http.request({
+ url: '/blade-topics/topics/updateBath',
+ method: 'POST',
+ data:params
+ })
+}
diff --git a/common/setting.js b/common/setting.js
index a513f88..4e3193e 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -12,8 +12,8 @@
// devUrl: 'https://sk.hubeishuiyi.cn',
// devUrl: 'http://192.168.1.156:9528',
// devUrl:'http://192.168.1.50:9528',
- // devUrl: 'http://192.168.0.102:9528',
- devUrl:'https://srgdjczzxtpt.com:2080/api',
+ devUrl: 'http://192.168.0.100:9528',
+ // devUrl:'https://srgdjczzxtpt.com:2080/api',
// devUrl: 'http://192.168.0.102:9528',
// devUrl: 'https://srgdjczzxtpt.com:2080/api',
minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/",
diff --git a/components/noticeList/noticeList.vue b/components/noticeList/noticeList.vue
index 0379d6a..dd36a49 100644
--- a/components/noticeList/noticeList.vue
+++ b/components/noticeList/noticeList.vue
@@ -1,6 +1,6 @@
<template>
<view class="">
- <view class="notice-list" @click="navToDetail(item.id)" v-for="(item,index) in data" :key="index">
+ <view class="notice-list" @click="navToDetail(item.id,item.eventType,item.pdId)" v-for="(item,index) in data" :key="index">
<view v-if="item.url" class="notice-inner flex j-c-s-b">
<view class="notice-list-left flex f-d-c j-c-s-b">
<text class="notice-title f-28 fw">{{item.title}}</text>
@@ -50,10 +50,16 @@
}
},
methods: {
- navToDetail(id) {
- uni.navigateTo({
- url: `/subPackage/article/detail?id=${id}`
- })
+ navToDetail(id,type,pdId) {
+ if(type == 0 || type == 1){
+ uni.navigateTo({
+ url: `/subPackage/article/detail?id=${id}&type=${type}&pdId=${pdId}`
+ })
+ }else {
+ uni.navigateTo({
+ url: `/subPackage/article/detail?id=${id}`
+ })
+ }
}
}
}
diff --git a/pages.json b/pages.json
index 2f9cd64..5cda403 100644
--- a/pages.json
+++ b/pages.json
@@ -101,7 +101,7 @@
{
"path": "detail",
"style": {
- "navigationBarTitleText": "公告详情",
+ "navigationBarTitleText": "详情",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle": "black"
diff --git a/pages/home/index.vue b/pages/home/index.vue
index efd4901..a9284bb 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -72,11 +72,11 @@
<caption-row title="社区" />
<view class="mt-20">
<u-grid :border="false" col="4">
- <u-grid-item @click="navigatorPage('/subPackage/article/list')">
+ <u-grid-item @click="navigatorPage(`/subPackage/article/list?type=0`)">
<u-icon name="/static/icon/nav-09.png" width="90rpx" height="70rpx"></u-icon>
<text class="f-26 mt-10">公益报名</text>
</u-grid-item>
- <u-grid-item @click="navigatorPage('/subPackage/article/list')">
+ <u-grid-item @click="navigatorPage(`/subPackage/article/list?type=1`)">
<u-icon name="/static/icon/nav-10.png" width="90rpx" height="70rpx"></u-icon>
<text class="f-26 mt-10">选举调查</text>
</u-grid-item>
@@ -398,7 +398,6 @@
this.curSelectSite = dataList[0];
}
this.curHouseCode = this.curSelectSite.id
- uni.setStorageSync('curSelectSite', this.curSelectSite)
}
},
diff --git a/subPackage/article/detail.vue b/subPackage/article/detail.vue
index a34eb5c..88afa72 100644
--- a/subPackage/article/detail.vue
+++ b/subPackage/article/detail.vue
@@ -1,7 +1,5 @@
<template>
<view class="">
-
-
<view class="container">
<view class="f-32 fw">{{detailInfo.title}}</view>
<view class="row flex j-c-s-b a-i-c c-99">
@@ -24,63 +22,75 @@
<u-parse :content="detailInfo.content"></u-parse>
</view>
</view>
- <view class="" v-if="false">
- <view class="explain-row c-main f-28">
- 报名和投票先指定好房屋
- </view>
- <view class="select-row flex j-c-s-b a-i-c">
- <text class="f-28">指定房屋</text>
- <view class="select-row-content flex a-i-c">
- <text class="f-26 c-99 mr-20"></text>
- <u-icon name="arrow-right" color="#999"></u-icon>
- </view>
- </view>
- <!-- <view class="apply">
- <view class="flex f-d-c a-i-c">
- <view class="flex mb-20">
- <image class="apply-user" src="/static/icon/nav-02.png" mode=""></image>
- <image class="apply-user" src="/static/icon/nav-02.png" mode=""></image>
- <image class="apply-user" src="/static/icon/nav-02.png" mode=""></image>
+
+ <view class="" v-if="isLoad">
+ <view class="" v-if="eventType == 0 && applyInfo.openFlag == 0">
+ <!-- <view class="explain-row c-main f-28">
+ 报名和投票先指定好房屋
+ </view> -->
+ <view class="select-row flex j-c-s-b a-i-c">
+ <text class="f-28">房屋</text>
+ <view class="select-row-content flex a-i-c">
+ <text class="f-26 c-99 mr-20">{{siteInfo.name}}</text>
+ <!-- <u-icon name="arrow-right" color="#999"></u-icon> -->
</view>
- <text class="f-28 c-99">共3人</text>
</view>
- <button class="apply-btn bgc-main c-ff f-30">报名</button>
- </view> -->
-
- <view class="mt-20" >
+ <view class="apply">
+ <view class="flex f-d-c a-i-c" v-if="applyList.length">
+ <view class="flex mb-20">
+ <image v-for="i in applyList" class="apply-user" src="/static/icon/user-01.png" mode="aspectFill">
+ </image>
+ </view>
+ <text class="f-28 c-99">共{{applyList.length}}人</text>
+ </view>
+ <button class="apply-btn bgc-main c-ff f-30" v-if="computeEndTime > 0"
+ @click="handleApply()" :disabled="applyInfo.userId">{{applyInfo.userId?"已报名":"报名"}}</button>
+ <button class="apply-btn bgc-main c-ff f-30" v-if="computeEndTime <= 0"
+ :disabled="true">已结束</button>
+ </view>
+ </view>
+
+ <view class="mt-20" v-if="eventType == 1 && voteTopicList.length">
<view class="explain-row c-main f-28">
投票进行中
</view>
<view class="vote bgc-ff">
- <view class="vote-title f-30 fw">
- 是否同意安装充电桩
- </view>
- <view class="">
- <u-radio-group
- iconPlacement="right"
- activeColor="#017BFC"
- placement="column"
- >
- <view class="mb-20">
- <u-radio label="同意" ></u-radio>
- <view class="flex j-c-s-b a-i-c mt-10">
- <uv-line-progress :percentage="30" height="10" ></uv-line-progress>
- <text class="c-99 f-28">10</text>
+ <view class="" v-for="(item,index) in voteTopicList" :key="index">
+ <view class="vote-title f-30 fw">
+ {{item.discussContent}}
+ </view>
+ <view class="" v-if="item.optionRange == 0">
+ <u-radio-group iconPlacement="right" activeColor="#017BFC" placement="column"
+ v-model="item.selected" @change="selectOption($event,index)" :disabled="isSubmit">
+ <view class="mb-20" v-for="(i,k) in item.children">
+ <u-radio :label="i.optionContent" :name="i.id"></u-radio>
+ <view class="flex j-c-s-b a-i-c mt-10">
+ <uv-line-progress height="10"></uv-line-progress>
+ <text class="c-99 f-28" v-if="i.number">{{i.number}}人</text>
+ </view>
</view>
-
- </view>
- <view class="">
- <u-radio label="不同意" ></u-radio>
- <view class="flex j-c-s-b a-i-c mt-10">
- <uv-line-progress height="10" ></uv-line-progress>
- <text class="c-99 f-28">10</text>
+ </u-radio-group>
+ </view>
+ <view class="" v-if="item.optionRange == 1">
+ <u-checkbox-group iconPlacement="right" activeColor="#017BFC" placement="column"
+ v-model="item.selected" :disabled="isSubmit" @change="selectOption($event,index)">
+ <view class="mb-20" v-for="(i,k) in item.children" :key="k">
+ <u-checkbox :label="i.optionContent" :name="i.id"></u-checkbox>
+ <view class="flex j-c-s-b a-i-c mt-10">
+ <!-- <uv-line-progress :percentage="10" height="10"></uv-line-progress> -->
+ <uv-line-progress height="10"></uv-line-progress>
+ <text class="c-99 f-28" v-if="i.number">{{i.number}}人</text>
+ </view>
</view>
- </view>
- </u-radio-group>
+ </u-checkbox-group>
+ </view>
</view>
+ <button class="apply-btn bgc-main c-ff f-30" v-if="computeEndTime > 0" @click="submitVote()"
+ :disabled="isSubmit">{{isSubmit?"已提交":"提交"}}</button>
+ <button class="apply-btn bgc-main c-ff f-30" v-if="computeEndTime <= 0"
+ :disabled="true">已结束</button>
</view>
</view>
-
</view>
<!-- <view class="action flex flex_base">
@@ -98,25 +108,175 @@
import {
getDetail
} from '@/api/article/article.js'
+ import * as communityModel from "@/api/community/community.js"
import tagCell from '@/components/noticeList/tagCell.vue'
+ import {
+ jsonString
+ } from '../../uni_modules/uv-ui-tools/libs/function/test'
export default {
components: {
tagCell
},
data() {
return {
+ params: {
+ id: ""
+ },
+ eventType: null,
detailInfo: {},
+ pdId: "",
+ siteInfo: {},
+ applyList: [],
+ applyInfo: {},
+ isLoad: false,
+ voteTopicList: [],
+ isSubmit: false // 是否已提交投票
}
},
onLoad(option) {
- this.getDetailInfo(option.id)
+ this.$set(this.params, "id", option.id);
+ if (option.type) {
+ this.$set(this.params, "eventType", option.type);
+ this.eventType = option.type;
+ this.pdId = option.pdId;
+ this.siteInfo = uni.getStorageSync("siteInfo")
+ }
+ this.getDetailInfo()
},
+
+ computed: {
+ computeEndTime() {
+ let curTimestamp = new Date().getTime();
+ let endTimestamp = new Date(this.applyInfo.endTime).getTime();
+ return endTimestamp - curTimestamp
+ }
+ },
+
methods: {
- getDetailInfo(id) {
- getDetail({
- id
- }).then(res => {
+
+ toNumber(val) {
+ return Number(val)
+ },
+
+ getDetailInfo() {
+ getDetail(this.params).then(res => {
+ this.isLoad = true;
this.detailInfo = res.data;
+ if (this.pdId) {
+ this.getApplyDetail()
+ }
+ if (this.eventType == 0) {
+ this.getApplyList();
+ }
+ if (this.eventType == 1) {
+ this.getVoteList();
+ }
+ })
+ },
+
+ //报名列表
+ getApplyList() {
+ communityModel.getApplyList({
+ publicDiscussId: this.pdId
+ }).then(res => {
+ console.log(res)
+ if (res.code == 200) {
+ this.applyList = res.data.records;
+ }
+ })
+ },
+
+ //报名、投票详情
+ getApplyDetail() {
+ communityModel.getApplyDetail({
+ id: this.pdId
+ }).then(res => {
+ console.log(res)
+ if (res.code == 200) {
+ this.applyInfo = res.data;
+ }
+ })
+ },
+
+ //获取投票议题
+ getVoteList() {
+ communityModel.getVoteTopics({
+ publicDiscussId: this.pdId
+ }).then(res => {
+ if (res.code == 200) {
+ let data = res.data;
+ if (data.length) {
+ for (let i of data) {
+ if(i.selected){
+ if (typeof i.selected == "string" && i.optionRange == 0) {
+ this.isSubmit = true;
+ i.selected = Number(i.selected)
+ }
+ if(typeof i.selected == "string" && i.optionRange == 1){
+ this.isSubmit = true;
+ i.selected = JSON.parse(i.selected)
+ }
+ }
+ }
+ }
+ this.voteTopicList = data;
+ }
+ })
+ },
+
+ //报名
+ handleApply() {
+ communityModel.addApply({
+ publicDiscussId: this.pdId
+ }).then(res => {
+ if (this.computeEndTime > 0) {
+ if (res.code == 200) {
+ uni.showToast({
+ title: "操作成功"
+ })
+ this.getApplyList();
+ }
+ } else {
+ uni.showToast({
+ title: "报名已结束",
+ icon: "none"
+ })
+ }
+ })
+ },
+
+ selectOption(id, index) {
+ let item = this.voteTopicList[index];
+ item.selected = id;
+ this.$set(this.voteTopicList, index, item);
+ },
+
+ getParams() {
+ let list = JSON.parse(JSON.stringify(this.voteTopicList));
+ let arr = [];
+ for (let i of list) {
+ if (i.selected) {
+ delete i.children;
+ i.selected = JSON.stringify(i.selected)
+ arr.push(i)
+ }
+ }
+ return arr;
+ },
+
+ //提交投票
+ submitVote() {
+ let data = this.getParams()
+ communityModel.addVoteOperate(data).then(res => {
+ if (res.code == 200) {
+ uni.showToast({
+ title: "操作成功"
+ })
+ this.$nextTick(() => {
+ this.getApplyDetail();
+ this.getVoteList();
+ })
+ }
})
}
}
@@ -124,9 +284,10 @@
</script>
<style lang="scss">
- page{
+ page {
background-color: #f5f5f5;
}
+
.container {
padding: 0 30rpx;
background-color: #fff;
@@ -137,7 +298,7 @@
}
.content {
- padding-bottom:30rpx;
+ padding-bottom: 30rpx;
}
.action-item {
@@ -155,38 +316,48 @@
background-color: rgb(236, 244, 255);
padding: 20rpx;
}
- .select-row{
- padding:30rpx;
- background-color:#fff;
+
+ .select-row {
+ padding: 30rpx;
+ background-color: #fff;
box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
- .select-row-content{
- flex:1;
+ border-top: 1px solid #f5f5f5;
+
+ .select-row-content {
+ width: 80%;
justify-content: flex-end;
}
}
- .apply{
- padding:30rpx;
- .apply-user{
- width:80rpx;
- height:80rpx;
+
+ .apply {
+ padding: 30rpx;
+
+ .apply-user {
+ width: 80rpx;
+ height: 80rpx;
border-radius: 50%;
- margin-right:-15rpx;
- border:1px solid #fff;
+ margin-right: -15rpx;
+ border: 1px solid #fff;
}
- .apply-btn{
- width:100%;
- height:80rpx;
- line-height: 80rpx;
- margin: 30rpx auto 0;
- border:none;
- border-radius: 40rpx;
-
- }
+
+
}
- .vote{
- padding:0 40rpx 30rpx;
- .vote-title{
- padding:30rpx 0;
+
+ .apply-btn {
+ width: 100%;
+ height: 80rpx;
+ line-height: 80rpx;
+ margin: 30rpx auto 0;
+ border: none;
+ border-radius: 40rpx;
+
+ }
+
+ .vote {
+ padding: 0 40rpx 30rpx;
+
+ .vote-title {
+ padding: 30rpx 0;
}
}
</style>
\ No newline at end of file
diff --git a/subPackage/article/list.vue b/subPackage/article/list.vue
index 1de48c3..a3833d6 100644
--- a/subPackage/article/list.vue
+++ b/subPackage/article/list.vue
@@ -1,11 +1,11 @@
<template>
<view class="">
- <view class="tab">
+ <view class="tab" v-if="tabList.length">
<u-tabs :list="tabList" :current="tabIndex" keyName="dictValue" @change="changeTab"
:inactiveStyle="{color:'#999999'}" :activeStyle="{color:'#017BFC'}"></u-tabs>
</view>
<view class="list bgc-ff">
- <notice-list :data="list" />
+ <notice-list :data="list" />
</view>
<u-loadmore :status="loadingStatus" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="没有更多了" line />
</view>
@@ -18,7 +18,7 @@
} from "@/api/article/article.js";
import noticeList from "@/components/noticeList/noticeList.vue"
export default {
- components:{
+ components: {
noticeList
},
data() {
@@ -28,12 +28,28 @@
tabIndex: 0,
list: [],
currentPage: 1,
- loadingStatus: 'nomore'
+ loadingStatus: 'nomore',
+ eventType: ""
}
},
- onLoad() {
- this.getCateList()
-
+ onLoad(option) {
+ if (option.type) {
+ this.eventType = option.type;
+ if (option.type == 0) {
+ this.tabList = [{
+ dictKey: "",
+ dictValue: "公益报名"
+ }]
+ } else {
+ this.tabList = [{
+ dictKey: "",
+ dictValue: "选举调查"
+ }]
+ }
+ this.getNoticeList()
+ } else {
+ this.getCateList()
+ }
},
onReachBottom() {
this.currentPage++
@@ -52,7 +68,7 @@
getCateList() {
getCategory({
- parentId: '1722966265111248897'
+ parentId: '1722966265111248897',
}).then(res => {
console.log(res)
let data = res.data;
@@ -71,7 +87,8 @@
const param = {
size: 10,
current: this.currentPage,
- articleType: this.tabId
+ articleType: this.tabId,
+ eventType: this.eventType
}
const res = await getPage(param)
const {
@@ -91,8 +108,8 @@
this.loadingStatus = 'nomore'
},
- navTo(id) {
- this.$u.func.globalNavigator(`detail?id=${id}`, "navTo")
+ navTo(id, type) {
+ this.$u.func.globalNavigator(`detail?id=${id}&type=${type}`, "navTo")
}
}
}
@@ -102,6 +119,7 @@
page {
background-color: #f5f5f5;
}
+
.tab {
width: 100%;
height: 88rpx;
@@ -118,8 +136,9 @@
box-sizing: border-box;
z-index: 999;
}
+
.list {
margin-top: 108rpx;
- padding:0 30rpx;
+ padding: 0 30rpx;
}
</style>
\ No newline at end of file
diff --git a/subPackage/bs/views/addRepair.vue b/subPackage/bs/views/addRepair.vue
index 86ba038..e353e54 100644
--- a/subPackage/bs/views/addRepair.vue
+++ b/subPackage/bs/views/addRepair.vue
@@ -86,7 +86,7 @@
this.info.type = option.type
},
onShow() {
- this.curSelectSite = uni.getStorageSync('curSelectSite')
+ this.curSelectSite = uni.getStorageSync('siteInfo')
this.info.addressCode = this.curSelectSite.id
console.log(this.curSelectSite);
},
diff --git a/subPackage/bs/views/repair.vue b/subPackage/bs/views/repair.vue
index e3460b6..c76519d 100644
--- a/subPackage/bs/views/repair.vue
+++ b/subPackage/bs/views/repair.vue
@@ -1,247 +1,194 @@
<template>
<view class="">
- <u-navbar height="48" :autoBack="true" safeAreaInsetTop placeholder bgColor="transparent" leftIconColor="#fff">
+ <u-navbar height="48" :autoBack="true" safeAreaInsetTop placeholder bgColor="transparent" leftIconColor="#fff">
</u-navbar>
<view class="top">
<image class="top-img" src="/static/img/repair-bg.png" mode="aspectFill"></image>
</view>
-
+
<view class="container">
<view class="c-ff f-36">请选择您需要的服务</view>
<view class="serve-box bgc-ff mb-20 flex j-c-s-b a-i-c">
<view class="flex a-i-c">
- <u-icon name="/static/icon/nav-09.png" width="91rpx" height="70rpx"></u-icon>
+ <u-icon name="/static/icon/nav-09.png" width="91rpx" height="70rpx"></u-icon>
<view class="flex f-d-c ml-40">
<text class="f-36">总申请</text>
<view class="flex a-i-c">
- <text class="f-48 c-blue fw mr-6">{{statistic.total}}</text>
+ <text class="f-48 c-blue fw mr-6">50</text>
<text class="f-24 c-99">件</text>
</view>
</view>
</view>
<view class="flex a-i-c">
- <u-icon name="/static/icon/nav-10.png" width="91rpx" height="70rpx"></u-icon>
+ <u-icon name="/static/icon/nav-10.png" width="91rpx" height="70rpx"></u-icon>
<view class="flex f-d-c ml-40">
<text class="f-36">已处理</text>
<view class="flex a-i-c">
- <text class="f-48 c-green fw mr-6">{{statistic.handle}}</text>
+ <text class="f-48 c-green fw mr-6">50</text>
<text class="f-24 c-99">件</text>
</view>
</view>
</view>
</view>
-
+
<view class="site-box bgc-ff flex">
<view class="flex a-i-c">
<u-icon name="map-fill" color="#AAAAAA"></u-icon>
<text class="f-28 c-aa ml-20">当前小区:</text>
</view>
-
- <text class="address f-28">{{ curSelectSite.name }}</text>
+
+ <text class="address f-28">万达华府26栋1903室 万达华府26栋1903室</text>
</view>
-
+
<view class="nav flex flex-wrap j-c-s-b">
-
- <view class="nav-item" v-for="(i,k) in navList" :key="k" @click="navTo(i)">
+
+ <view class="nav-item" v-for="(i,k) in navList" :key="k" @click="navTo(i.path)">
<image class="nav-item-bg" :src="i.bgImg" mode="aspectFill"></image>
<view class="nav-item-inner flex f-d-c">
<text class="f-32 mb-30">{{i.title}}</text>
- <button class="item-btn" :style="{backgroundColor:i.background}">立即上报</button>
+ <button class="item-btn" :style="{backgroundColor:i.background}">立即上报</button>
</view>
</view>
-
-
+
+
</view>
</view>
-
+
</view>
-
+
</template>
<script>
- import {
- getStatistics
- } from '@/api/task/taskReportForRepairs'
export default {
- data() {
+ data(){
return {
- statistic: {
- total: 0,
- handle: 0,
- },
- curSelectSite: {},
- navList: [{
- title: "公共维修",
- type: 1,
- bgImg: "/static/icon/nav-bg-06.png",
- path: `addRepair`,
- background: "#63C875"
+ navList:[
+ {
+ title:"公共维修",
+ bgImg:"/static/icon/nav-bg-06.png",
+ path:"addRepair",
+ background:"#63C875"
},
{
- title: "居家维修",
- type: 2,
- bgImg: "/static/icon/nav-bg-07.png",
- path: "addRepair",
- background: "#4D98E2"
+ title:"居家维修",
+ bgImg:"/static/icon/nav-bg-07.png",
+ path:"",
+ background:"#4D98E2"
},
{
- title: "矛盾纠纷",
- type: 3,
- bgImg: "/static/icon/nav-bg-08.png",
- path: "addRepair",
- background: "#EC7E51"
+ title:"矛盾纠纷",
+ bgImg:"/static/icon/nav-bg-08.png",
+ path:"",
+ background:"#EC7E51"
},
{
- title: "投诉举报",
- type: 4,
- bgImg: "/static/icon/nav-bg-09.png",
- path: "addRepair",
- background: "#F4B862"
+ title:"投诉举报",
+ bgImg:"/static/icon/nav-bg-09.png",
+ path:"",
+ background:"#F4B862"
},
- {
- title: "企业商户上报",
- type: 5,
- bgImg: "/static/icon/nav-bg-09.png",
- path: "addRepair",
- background: "#F4B862"
- },
-
+
]
}
},
- computed: {
-
- },
- onShow() {
- this.getStatistics()
- this.curSelectSite = uni.getStorageSync('curSelectSite')
- console.log(this.curSelectSite);
- },
-
- methods: {
- navTo(item) {
- if (item.path) {
- let url = item.path + "?title=" + item.title + "&type=" + item.type
- this.$u.func.globalNavigator(url, "navTo")
+ methods:{
+ navTo(path){
+ if(path){
+ this.$u.func.globalNavigator(path, "navTo")
}
- },
-
- getStatistics() {
- getStatistics().then(res => {
- this.statistic = res.data
- })
+
}
-
-
}
}
</script>
<style lang="scss">
- page {
- width: 100%;
- height: 100%;
+ page{
+ width:100%;
+ height:100%;
}
-
- .top {
- width: 100%;
- height: 659rpx;
- background: linear-gradient(180deg, #017BFC 0%, rgba(1, 123, 252, 0) 100%);
+ .top{
+ width:100%;
+ height:659rpx;
+ background: linear-gradient(180deg, #017BFC 0%, rgba(1,123,252,0) 100%);
position: fixed;
- top: 0;
- left: 0;
-
- .top-img {
- width: 100%;
- height: 659rpx;
+ top:0;
+ left:0;
+ .top-img{
+ width:100%;
+ height:659rpx;
}
}
-
- .container {
- width: 100%;
+ .container{
+ width:100%;
padding: 0 30rpx;
position: fixed;
box-sizing: border-box;
- top: 130rpx;
- left: 0;
+ top:130rpx;
+ left:0;
z-index: 100;
-
- .serve-box {
- width: 100%;
- height: 213rpx;
+ .serve-box{
+ width:100%;
+ height:213rpx;
border-radius: 8rpx;
- margin-top: 30rpx;
+ margin-top:30rpx;
padding: 0 60rpx 0 40rpx;
box-sizing: border-box;
}
-
- .f-48 {
- font-size: 48rpx;
+ .f-48{
+ font-size:48rpx;
}
-
- .c-blue {
- color: #677CF8;
-
+ .c-blue{
+ color:#677CF8;
+
}
-
- .c-green {
- color: #30D17C;
+ .c-green{
+ color:#30D17C;
}
-
- .ml-40 {
- margin-left: 40rpx;
+ .ml-40{
+ margin-left:40rpx;
}
-
- .site-box {
- width: 100%;
- padding: 30rpx;
+ .site-box{
+ width:100%;
+ padding:30rpx;
box-sizing: border-box;
border-radius: 4rpx;
-
- .c-aa {
- color: #aaa;
+ .c-aa{
+ color:#aaa;
}
-
- .address {
- width: 60%;
- margin-left: 25rpx;
+ .address{
+ width:60%;
+ margin-left:25rpx;
}
}
-
- .nav {
- width: 100%;
-
- .nav-item,
- .nav-item-bg,
- .nav-item-inner {
- width: 330rpx;
- height: 167rpx;
+ .nav{
+ width:100%;
+ .nav-item,.nav-item-bg,.nav-item-inner{
+ width:330rpx;
+ height:167rpx;
}
-
- .nav-item {
+ .nav-item{
position: relative;
- margin-top: 30rpx;
+ margin-top:30rpx;
}
-
- .nav-item-inner {
- padding: 30rpx 30rpx 0;
+ .nav-item-inner{
+ padding:30rpx 30rpx 0;
position: absolute;
- top: 0;
- left: 0;
-
+ top:0;
+ left:0;
+
}
-
- .item-btn {
- width: 125rpx;
- height: 42rpx;
+ .item-btn{
+ width:125rpx;
+ height:42rpx;
line-height: 42rpx;
border-radius: 20rpx;
- color: #fff;
- font-size: 22rpx;
- padding: 0;
- margin: 0;
+ color:#fff;
+ font-size:22rpx;
+ padding:0;
+ margin:0;
}
}
-
+
}
</style>
\ No newline at end of file
diff --git a/subPackage/house/family/index.vue b/subPackage/house/family/index.vue
index a2e2431..a71ad31 100644
--- a/subPackage/house/family/index.vue
+++ b/subPackage/house/family/index.vue
@@ -6,7 +6,7 @@
<view>{{ curSelectSite.name }}/{{housingName}}{{buildingName}}</view>
</view>
<view class="h0 flex-1 build-list-box content">
- <u-collapse :value="buildingList.length == 1?['0']:''">
+ <u-collapse :value="buildingList.length == 1?['0']:''">
<u-collapse-item v-if="isShowBuild" style="border: none;" :name="index" :title="item.unitName"
:icon="'/static/icon/group.png'" v-for="(item, index) in buildingList" :key="index">
<!-- :title="item.unitName" -->
@@ -21,8 +21,8 @@
<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="pushPage(scIndex,cItem.children)">
- <view class="room-box flex f-d-c" >
+ @click="pushPage(scIndex,cItem.children)">
+ <view class="room-box flex f-d-c">
<view class="flex a-i-c j-c-s-b">
<view class="l">
<u-icon name="/static/icon/person.png" size="16"></u-icon>
@@ -33,7 +33,6 @@
主
</view>
</view>
-
<view v-show="!!scItem.roleType == 1">
<u-icon name="/static/icon/selected.png" size="16"></u-icon>
</view>
@@ -42,13 +41,12 @@
<view class="flex floor-info-box">
<view class="l flex proprietor-box">
- {{scItem.realName}}
+ {{scItem.realName || ""}}
</view>
<view class="r floor-box">
{{scItem.houseNo}}
</view>
</view>
-
</view>
</u-grid-item>
</u-grid>
@@ -120,7 +118,7 @@
},
onShow() {
- this.curSelectSite = uni.getStorageSync('curSelectSite')
+ this.curSelectSite = uni.getStorageSync('siteInfo')
},
mounted() {
this.getBuildingList()
@@ -165,7 +163,7 @@
})
}
},
- pushPage(index,item) {
+ pushPage(index, item) {
let code = item[index].addressCode;
let url = `/subPackage/house/roomDetails/index?id=${code}`
this.$u.func.globalNavigator(url, "navTo")
@@ -275,6 +273,7 @@
width: 0;
flex: 1;
padding: 12rpx;
+
.room-box {
padding: 10rpx;
justify-content: center;
diff --git a/subPackage/house/list/index.vue b/subPackage/house/list/index.vue
index 95e6999..db29445 100644
--- a/subPackage/house/list/index.vue
+++ b/subPackage/house/list/index.vue
@@ -67,7 +67,7 @@
},
onShow() {
- this.curSelectSite = uni.getStorageSync('curSelectSite')
+ this.curSelectSite = uni.getStorageSync('siteInfo')
},
mounted() {
this.getHouseInfo()
diff --git a/subPackage/task/index.vue b/subPackage/task/index.vue
index 9b1249e..aae0015 100644
--- a/subPackage/task/index.vue
+++ b/subPackage/task/index.vue
@@ -49,6 +49,16 @@
<u-icon name="arrow-right" color="#999"></u-icon>
</view>
</view>
+ <view class="nav-item flex j-c-s-b a-i-c" @click="navTo('/subPackage/task/taskList')">
+ <text class="f-28">标签报事</text>
+ <view class="flex">
+ <block v-if="comprehensiveTask > 0">
+ <text class="f-28 c-99">待处理</text>
+ <view class="dot bgc-main">{{countInfo.comprehensiveTask}}</view>
+ </block>
+ <u-icon name="arrow-right" color="#999"></u-icon>
+ </view>
+ </view>
<!-- <view class="nav-item flex j-c-s-b a-i-c">
<text class="f-28">工作日志</text>
<view class="flex">
diff --git a/subPackage/workbench/views/report.vue b/subPackage/workbench/views/report.vue
index cabbc65..9c5a8b1 100644
--- a/subPackage/workbench/views/report.vue
+++ b/subPackage/workbench/views/report.vue
@@ -28,7 +28,7 @@
</view>
<view class="item-row flex a-i-c j-c-s-b">
<text class="f-28">地址</text>
- <text class="f-28 c-66">{{ item.addressName }}</text>
+ <text class="address f-28 c-66">{{ item.addressName }}</text>
</view>
</view>
</view>
@@ -190,9 +190,8 @@
.item-row {
padding: 10rpx 0;
-
.address {
- width: 65%;
+ width: 75%;
}
}
}
--
Gitblit v1.9.3