From 8c844ea235546f84035e4a99a9703d797cec80bc Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Fri, 08 Dec 2023 17:48:41 +0800
Subject: [PATCH] 数据驾驶舱完善,修复部分问题
---
pages.json | 96 ++++--
subPackage/workbench/views/labelReportDetail.vue | 25
subPackage/grid/comment.vue | 59 ++++
subPackage/grid/publicSecurity.vue | 36 ++
subPackage/label/hotel.vue | 10
subPackage/label/form.vue | 6
subPackage/grid/comprehensive.vue | 141 ++++++++++
mixin/uploadMixin.js | 6
pages/home/index.vue | 12
subPackage/workbench/views/schoolReportDetail.vue | 25
subPackage/label/bail.vue | 2
subPackage/workbench/views/hotelReportDetail.vue | 27 -
subPackage/workbench/views/bailReportDetail.vue | 19
common/setting.js | 2
api/statistics/statistics.js | 39 ++
subPackage/statistics/index.vue | 153 ++++++----
subPackage/grid/tenement.vue | 131 +++++++++
subPackage/label/school.vue | 14
18 files changed, 641 insertions(+), 162 deletions(-)
diff --git a/api/statistics/statistics.js b/api/statistics/statistics.js
new file mode 100644
index 0000000..3d11e8e
--- /dev/null
+++ b/api/statistics/statistics.js
@@ -0,0 +1,39 @@
+import http from '@/http/api.js'
+
+//报事报修数据统计 (数据驾驶舱)
+export const getReportStatistics = (params) => {
+ return http.request({
+ url: 'blade-taskReportForRepairs/taskReportForRepairs/getReportForStatistics',
+ method: 'GET',
+ params: {
+ ...params
+ }
+ })
+}
+
+//获取社区概况数据统计 (数据驾驶舱)
+export const getHouseStatistics =(param)=>{
+ return http.request({
+ url: 'blade-house/house/getHouseStatistics',
+ method: 'GET',
+ params: param
+ })
+}
+
+// 获取住户数据统计 (数据驾驶舱)
+export const getHouseholdStatistics = (params) => {
+ return http.request({
+ url: 'blade-household/household/getHouseHoldStatistics',
+ method: 'GET',
+ params: params
+ })
+}
+
+// 获取网格物业人员数据统计 (数据驾驶舱)
+export const getGridStatistics = (params) => {
+ return http.request({
+ url: 'blade-gridman/gridman/getGridStatistics',
+ method: 'GET',
+ params: params
+ })
+}
diff --git a/common/setting.js b/common/setting.js
index 8a75d7d..aa2c724 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -14,7 +14,7 @@
// 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: 'http://192.168.0.102:9528',
// devUrl: 'https://srgdjczzxtpt.com:2080/api',
minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/",
// minioBaseUrl:"http://192.168.0.103:9528/",
diff --git a/mixin/uploadMixin.js b/mixin/uploadMixin.js
index 72d85da..a0d38e4 100644
--- a/mixin/uploadMixin.js
+++ b/mixin/uploadMixin.js
@@ -115,6 +115,12 @@
deletePic(event,key="images") {
this.form[key].splice(event.index, 1)
},
+
+ deletePics(event,key) {
+ console.log(event,key);
+ this[key].splice(event.index, 1)
+ },
+
showLoading() {
uni.showLoading({
mask: true,
diff --git a/pages.json b/pages.json
index 62ced28..39134b0 100644
--- a/pages.json
+++ b/pages.json
@@ -48,17 +48,15 @@
//数据驾驶舱
{
"root": "subPackage/statistics",
- "pages": [
- {
- "path": "index",
- "style": {
- "navigationBarTitleText": "数据驾驶舱",
- "enablePullDownRefresh": false,
- "navigationBarBackgroundColor": "#fff",
- "navigationBarTextStyle": "black"
- }
+ "pages": [{
+ "path": "index",
+ "style": {
+ "navigationBarTitleText": "数据驾驶舱",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black"
}
- ]
+ }]
},
//我的
{
@@ -120,23 +118,21 @@
"navigationBarTextStyle": "black"
}
}
-
+
]
},
//圈子
{
"root": "subPackage/circle",
- "pages":[
- {
- "path":"detail",
- "style": {
- "navigationBarTitleText": "详情",
- "enablePullDownRefresh": false,
- "navigationBarBackgroundColor": "#fff",
- "navigationBarTextStyle": "black"
- }
+ "pages": [{
+ "path": "detail",
+ "style": {
+ "navigationBarTitleText": "详情",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black"
}
- ]
+ }]
},
//公告
@@ -198,8 +194,7 @@
//标签
{
"root": "subPackage/label",
- "pages": [
- {
+ "pages": [{
"path": "index",
"style": {
"navigationBarTitleText": "标签事件",
@@ -217,7 +212,7 @@
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle": "black"
}
- },{
+ }, {
"path": "bail",
"style": {
"navigationBarTitleText": "取保候审",
@@ -284,9 +279,8 @@
},
//我的任务
{
- "root":"subPackage/task",
- "pages": [
- {
+ "root": "subPackage/task",
+ "pages": [{
"path": "index",
"style": {
"navigationBarTitleText": "我的任务",
@@ -294,7 +288,7 @@
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle": "black"
}
- } ,
+ },
{
"path": "taskList",
"style": {
@@ -303,7 +297,7 @@
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle": "black"
}
- } ,
+ },
{
"path": "workLogList",
"style": {
@@ -312,7 +306,7 @@
"navigationBarBackgroundColor": "#fff",
"navigationBarTextStyle": "black"
}
- }
+ }
]
},
//工作台
@@ -628,6 +622,46 @@
}
}
]
+ },
+ {
+ "root": "subPackage/grid",
+ "pages": [{
+ "path": "publicSecurity",
+ "style": {
+ "navigationBarTitleText": "公安网格",
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "comprehensive",
+ "style": {
+ "navigationBarTitleText": "综治网格",
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "tenement",
+ "style": {
+ "navigationBarTitleText": "物业",
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "comment",
+ "style": {
+ "navigationBarTitleText": "留言",
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black",
+ "enablePullDownRefresh": false
+ }
+ }
+ ]
}
],
"globalStyle": {
@@ -650,7 +684,7 @@
},
{
"pagePath": "pages/circle/index",
- "iconPath": "static/img/tabbar-02.png",
+ "iconPath": "static/img/tabbar-02.png",
"selectedIconPath": "static/img/tabbar-02-selected.png",
"text": "圈子"
},
diff --git a/pages/home/index.vue b/pages/home/index.vue
index d1b1901..1dd1b95 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -641,12 +641,12 @@
icon: "error"
})
}
- else if (path == "/subPackage/statistics/index") {
- uni.showToast({
- title: "功能开发中~",
- icon: "none"
- })
- }
+ // else if (path == "/subPackage/statistics/index") {
+ // uni.showToast({
+ // title: "功能开发中~",
+ // icon: "none"
+ // })
+ // }
else {
this.$u.func.globalNavigator(`${path}?houseCode=${this.curHouseCode}`, "navTo")
}
diff --git a/subPackage/grid/comment.vue b/subPackage/grid/comment.vue
new file mode 100644
index 0000000..dd9fcb6
--- /dev/null
+++ b/subPackage/grid/comment.vue
@@ -0,0 +1,59 @@
+<template>
+ <view class="container">
+ <view class="content">
+ <u-textarea v-model="content" placeholder="请输入内容" ></u-textarea>
+ </view>
+ <button class="submit-btn bgc-main c-ff f-30" @click="submitInfo">提交</button>
+ </view>
+</template>
+
+<script>
+ import { addComment} from "@/api/article/article.js"
+ export default{
+ data(){
+ return {
+ content:"",
+ articleId:""
+ }
+ },
+ onLoad(option){
+ this.articleId = option.id;
+ },
+ methods:{
+ submitInfo(){
+ if(!this.content)return
+ addComment({
+ content:this.content,
+ articleId:this.articleId
+ }).then(res=>{
+ if(res.code == 200){
+ uni.showToast({
+ title:"提交成功!"
+ })
+ uni.$emit("refreshComment")
+ setTimeout(()=>{
+ uni.navigateBack();
+ },1000)
+ }
+ })
+ }
+ }
+ }
+</script>
+
+<style>
+ .container{
+ padding:30rpx 30rpx 0;
+ }
+ .content{
+ margin-bottom:50rpx;
+ }
+ .submit-btn{
+ width:100%;
+ height:80rpx;
+ line-height:80rpx;
+ border:none;
+ border-radius: 40rpx;
+
+ }
+</style>
\ No newline at end of file
diff --git a/subPackage/grid/comprehensive.vue b/subPackage/grid/comprehensive.vue
new file mode 100644
index 0000000..5cc82fa
--- /dev/null
+++ b/subPackage/grid/comprehensive.vue
@@ -0,0 +1,141 @@
+<template>
+ <view class="">
+ <view class="tab">
+ <u-tabs :list="tabList" :current="tabIndex" @click="changeTab" :inactiveStyle="{color:'#999999'}"
+ :activeStyle="{color:'#017BFC'}"></u-tabs>
+ </view>
+
+ <view class="grid flex flex-wrap">
+ <view class="grid-item flex f-d-c a-i-c j-c-c">
+ <text class="mb-20 f-28"></text>
+ <u-image width="150" height="100"></u-image>
+ <text class="mt-20"></text>
+ <text class="c-99 f-26"></text>
+ </view>
+ </view>
+
+ <view class="detail bgc-ff">
+ <caption-row text="网格基本情况" />
+ <view class="detail-content">
+
+ </view>
+ </view>
+
+ <view class="comment">
+ <caption-row text="留言" />
+ <view class="comment-list ">
+ <view class="comment-item flex " v-for="(item,index) in commentList" :key="index">
+ <u-avatar size="45" src="/static/icon/user-01.png"></u-avatar>
+ <view class="comment-item-content">
+ <view class="flex j-c-s-b a-i-c mb-20">
+ <text class="f-28 c-99">{{item.name}}</text>
+ <text class="c-99 f-24">{{item.createTime}}</text>
+ </view>
+ <view class="f-30">
+ {{item.content}}
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+ <view class="footer">
+ <u-search searchIcon='edit-pen' :animation="true" placeholder="写评论" disabled
+ @click="navToComment"></u-search>
+ </view>
+ </view>
+</template>
+
+<script>
+ import captionRow from "@/components/caption/caption.vue"
+ export default {
+ components:{
+ captionRow
+ },
+ data(){
+ return {
+ commentList:[]
+ }
+ },
+ methods:{
+ navToComment() {
+ uni.navigateTo({
+ url: `comment?id=${this.params.id}`
+ })
+ }
+ }
+ }
+
+
+
+</script>
+
+<style lang="scss">
+ page {
+ background-color: #F5F5F5;
+ }
+
+ .tab {
+ width: 100%;
+ height: 88rpx;
+ position: fixed;
+ /*#ifdef H5*/
+ top: 88rpx;
+ /*#endif*/
+ /*#ifdef MP-WEIXIN*/
+ top: 0;
+ /*#endif*/
+ left: 0;
+ background-color: #fff;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ z-index: 999;
+
+ }
+ .grid{
+ width:100%;
+ .grid-item{
+ width:150rpx;
+ padding:20rpx 0;
+ }
+ }
+
+ .detail{
+ padding: 0 30rpx;
+ margin:20rpx 0;
+ .detail-content{
+ padding:20rpx 0;
+ }
+ }
+ .comment {
+ width: 100%;
+ padding: 0 30rpx 160rpx;
+ box-sizing: border-box;
+ }
+
+ .comment-list {
+ width: 100%;
+ padding-top: 20rpx;
+
+ .comment-item {
+ width: 100%;
+ padding: 20rpx 0;
+ }
+
+ .comment-item-content {
+ flex: 1;
+ margin-left: 20rpx;
+ }
+ }
+
+ .footer {
+ width: 100%;
+ padding: 20rpx 30rpx;
+ box-sizing: border-box;
+ background-color: #fff;
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ z-index: 10;
+ border-top: 1px solid #f5f5f5;
+ }
+</style>
\ No newline at end of file
diff --git a/subPackage/grid/publicSecurity.vue b/subPackage/grid/publicSecurity.vue
new file mode 100644
index 0000000..eacbee9
--- /dev/null
+++ b/subPackage/grid/publicSecurity.vue
@@ -0,0 +1,36 @@
+<template>
+ <view class="bgc-ff">
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>公安局</text>
+ <text></text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>派出所</text>
+ <text></text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>社区民警</text>
+ <text></text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>联系方式</text>
+ <text></text>
+ </view>
+ </view>
+</template>
+
+<script>
+</script>
+
+<style>
+ page {
+ background-color: #f5f5f5;
+ }
+ .item-row {
+ width: 100%;
+ padding: 30rpx;
+ box-sizing: border-box;
+ border-bottom: 1px solid #f5f5f5;
+ font-size: 28rpx;
+ }
+</style>
\ No newline at end of file
diff --git a/subPackage/grid/tenement.vue b/subPackage/grid/tenement.vue
new file mode 100644
index 0000000..eb3fe07
--- /dev/null
+++ b/subPackage/grid/tenement.vue
@@ -0,0 +1,131 @@
+<template>
+ <view class="container">
+ <view class="">
+ <u-avatar size="78"></u-avatar>
+ <view class="flex f-d-c">
+ <text class="f-30 fw"></text>
+ <view class="">
+ <text class="c-99 f-26"></text>
+ <view class="f-22">
+ 拨打电话
+ </view>
+ </view>
+ </view>
+ </view>
+
+ <view class="mb-30">
+ <caption-row text="物业简介" />
+ <view class="intro bgc-ff">
+ <u-read-more ref="uReadMore">
+ <rich-text :nodes="content"></rich-text>
+ </u-read-more>
+ </view>
+ </view>
+ <view class="mb-30">
+ <caption-row text="人员信息" />
+ <view class="person-list bgc-ff">
+ <view class="person-list flex j-c-s-b a-i-c">
+ <view class="flex">
+ <u-avatar size="50"></u-avatar>
+ <text class="ml-10 mr-10"></text>
+ <text class="f-26 c-99"></text>
+ </view>
+ <view class="flex a-i-c">
+ <u-icon name="phone-fill"></u-icon>
+ <text class="f-26 c-99"></text>
+ </view>
+ </view>
+ </view>
+ </view>
+ <view class="">
+ <caption-row text="留言" />
+ <view class="comment-list bgc-ff">
+ <view class="comment-item flex " v-for="(item,index) in commentList" :key="index">
+ <u-avatar size="45" src="/static/icon/user-01.png"></u-avatar>
+ <view class="comment-item-content">
+ <view class="flex j-c-s-b a-i-c mb-20">
+ <text class="f-28 c-99">{{item.name}}</text>
+ <text class="c-99 f-24">{{item.createTime}}</text>
+ </view>
+ <view class="f-30">
+ {{item.content}}
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+
+
+ </view>
+
+
+</template>
+
+<script>
+ import captionRow from "@/components/caption/caption.vue"
+ export default {
+ components: {
+ captionRow
+ },
+ data() {
+ return {
+ commentList:[]
+ }
+ },
+ methods:{
+ navToComment() {
+ uni.navigateTo({
+ url: `comment?id=${this.params.id}`
+ })
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ page {
+ background-color: #f5f5f5;
+ }
+
+ .container {
+ padding: 0 30rpx;
+ }
+ .intro{
+ border-radius: 10rpx;
+ padding:10rpx;
+ }
+ .person-list{
+ padding:0 10rpx;
+ border-radius: 10rpx;
+ .person-list-item{
+ padding:20rpx 0;
+ border-bottom:1px solid #f5f5f5;
+ }
+ }
+ .comment-list {
+ width: 100%;
+ padding-top: 20rpx;
+
+ .comment-item {
+ width: 100%;
+ padding: 20rpx 0;
+ }
+
+ .comment-item-content {
+ flex: 1;
+ margin-left: 20rpx;
+ }
+ }
+
+ .footer {
+ width: 100%;
+ padding: 20rpx 30rpx;
+ box-sizing: border-box;
+ background-color: #fff;
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ z-index: 10;
+ border-top: 1px solid #f5f5f5;
+ }
+</style>
\ No newline at end of file
diff --git a/subPackage/label/bail.vue b/subPackage/label/bail.vue
index b90b0af..d84ac7b 100644
--- a/subPackage/label/bail.vue
+++ b/subPackage/label/bail.vue
@@ -171,7 +171,7 @@
setImages(){
let urls = [];
for(let i of this.form.images){
- urls.push(i.url);
+ urls.push(i.name);
}
return urls.join(",")
},
diff --git a/subPackage/label/form.vue b/subPackage/label/form.vue
index 60282fc..eaaf145 100644
--- a/subPackage/label/form.vue
+++ b/subPackage/label/form.vue
@@ -43,7 +43,7 @@
<u-upload :fileList="imageUrls" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
- @afterRead="afterReadImgs($event,'imageUrls')" @delete="deletePic">
+ @afterRead="afterReadImgs($event,'imageUrls')" @delete="deletePics($event,'imageUrls')">
<view class="upload-item upload-icon flex_base">
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
</view>
@@ -56,7 +56,7 @@
<u-upload :fileList="goodsImageUrls" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
- @afterRead="afterReadImgs($event,'goodsImageUrls')" @delete="deletePic">
+ @afterRead="afterReadImgs($event,'goodsImageUrls')" @delete="deletePics($event,'goodsImageUrls')">
<view class="upload-item upload-icon flex_base">
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
</view>
@@ -207,7 +207,7 @@
setImages(key) {
let urls = [];
for (let i of key) {
- urls.push(i.url);
+ urls.push(i.name);
}
return urls.join(",")
},
diff --git a/subPackage/label/hotel.vue b/subPackage/label/hotel.vue
index 711f811..6934a7a 100644
--- a/subPackage/label/hotel.vue
+++ b/subPackage/label/hotel.vue
@@ -61,7 +61,7 @@
<u-upload :fileList="fireImageUrls" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
- @afterRead="afterReadImgs($event,'fireImageUrls')" @delete="deletePic">
+ @afterRead="afterReadImgs($event,'fireImageUrls')" @delete="deletePics($event,'fireImageUrls')">
<view class="upload-item upload-icon flex_base">
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
</view>
@@ -91,7 +91,7 @@
<u-upload :fileList="scImageUrls" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
- @afterRead="afterReadImgs($event,'scImageUrls')" @delete="deletePic">
+ @afterRead="afterReadImgs($event,'scImageUrls')" @delete="deletePics($event,'scImageUrls')">
<view class="upload-item upload-icon flex_base">
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
</view>
@@ -118,7 +118,7 @@
<u-upload :fileList="pfImageUrls" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
- @afterRead="afterReadImgs($event,'pfImageUrls')" @delete="deletePic">
+ @afterRead="afterReadImgs($event,'pfImageUrls')" @delete="deletePics($event,'pfImageUrls')">
<view class="upload-item upload-icon flex_base">
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
</view>
@@ -145,7 +145,7 @@
<u-upload :fileList="uanImageUrls" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
- @afterRead="afterReadImgs($event,'uanImageUrls')" @delete="deletePic">
+ @afterRead="afterReadImgs($event,'uanImageUrls')" @delete="deletePics($event,'uanImageUrls')">
<view class="upload-item upload-icon flex_base">
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
</view>
@@ -419,7 +419,7 @@
setImages(key) {
let urls = [];
for (let i of key) {
- urls.push(i.url);
+ urls.push(i.name);
}
return urls.join(",")
},
diff --git a/subPackage/label/school.vue b/subPackage/label/school.vue
index a08187f..8e7b7d4 100644
--- a/subPackage/label/school.vue
+++ b/subPackage/label/school.vue
@@ -59,7 +59,7 @@
<u-upload :fileList="foImageUrls" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
- @afterRead="afterReadImgs($event,'foImageUrls')" @delete="deletePic">
+ @afterRead="afterReadImgs($event,'foImageUrls')" @delete="deletePics($event,'foImageUrls')">
<view class="upload-item upload-icon flex_base">
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
</view>
@@ -84,7 +84,7 @@
<u-upload :fileList="fireFacsImageUrls" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
- @afterRead="afterReadImgs($event,'fireFacsImageUrls')" @delete="deletePic">
+ @afterRead="afterReadImgs($event,'fireFacsImageUrls')" @delete="deletePics($event,'fireFacsImageUrls')">
<view class="upload-item upload-icon flex_base">
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
</view>
@@ -107,7 +107,7 @@
<u-upload :fileList="scImageUrls" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
- @afterRead="afterReadImgs($event,'scImageUrls')" @delete="deletePic">
+ @afterRead="afterReadImgs($event,'scImageUrls')" @delete="deletePics($event,'scImageUrls')">
<view class="upload-item upload-icon flex_base">
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
</view>
@@ -120,7 +120,7 @@
<u-upload :fileList="patrolImageUrls" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
- @afterRead="afterReadImgs($event,'patrolImageUrls')" @delete="deletePic">
+ @afterRead="afterReadImgs($event,'patrolImageUrls')" @delete="deletePics($event,'patrolImageUrls')">
<view class="upload-item upload-icon flex_base">
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
</view>
@@ -144,7 +144,7 @@
<u-upload :fileList="antiCollisionImageUrls" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
- @afterRead="afterReadImgs($event,'antiCollisionImageUrls')" @delete="deletePic">
+ @afterRead="afterReadImgs($event,'antiCollisionImageUrls')" @delete="deletePics($event,'antiCollisionImageUrls')">
<view class="upload-item upload-icon flex_base">
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
</view>
@@ -183,7 +183,7 @@
<u-upload :fileList="uanImageUrls" :previewFullImage="uploadConfig.previewFullImage"
:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
- @afterRead="afterReadImgs($event,'uanImageUrls')" @delete="deletePic">
+ @afterRead="afterReadImgs($event,'uanImageUrls')" @delete="deletePics($event,'uanImageUrls')">
<view class="upload-item upload-icon flex_base">
<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
</view>
@@ -459,7 +459,7 @@
setImages(key) {
let urls = [];
for (let i of key) {
- urls.push(i.url);
+ urls.push(i.name);
}
return urls.join(",")
},
diff --git a/subPackage/statistics/index.vue b/subPackage/statistics/index.vue
index c2127d5..9a55d60 100644
--- a/subPackage/statistics/index.vue
+++ b/subPackage/statistics/index.vue
@@ -29,9 +29,29 @@
<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" v-for="i in 6">
- <text class="c-main f-32 fw mb-20">1</text>
+ <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">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>
</view>
@@ -41,10 +61,19 @@
<view class="bar-charts bgc-ff">
<qiun-data-charts type="bar" :opts="opts" :chartData="chartData" />
</view>
-
- <view class="pie-charts bgc-ff">
- <qiun-data-charts type="pie" :opts="pieOpts" :chartData="sexChartData" />
+ <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">
@@ -119,15 +148,7 @@
<script>
import captionRow from "@/components/caption/caption.vue"
- import {
- getReportStatistics
- } from "@/api/task/taskReportForRepairs.js"
- import {
- getHouseStatistics
- } from "@/api/house/house.js"
- import {
- getHouseholdStatistics
- } from "@/api/house/household.js"
+ import * as statisticsModal from "@/api/statistics/statistics.js"
export default {
components: {
captionRow
@@ -137,8 +158,8 @@
reportData: {},
houseData: {},
chartData: {},
- //您可以通过修改 config-ucharts.js 文件中下标为 ['bar'] 的节点来配置全局默认参数,如都是默认参数,此处可以不传 opts 。实际应用过程中 opts 只需传入与全局默认参数中不一致的【某一个属性】即可实现同类型的图表显示不同的样式,达到页面简洁的需求。
opts: {
+ fontSize: 10,
color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
"#ea7ccc"
],
@@ -146,17 +167,19 @@
enableScroll: false,
legend: {},
xAxis: {
- boundaryGap: "justify",
+ // boundaryGap: "justify",
disableGrid: false,
min: 0,
axisLine: false,
- max: 70
+ // max: 70,
+ fontSize: 10,
+
},
yAxis: {},
extra: {
bar: {
type: "stack",
- width: 30,
+ width: 14,
meterBorde: 1,
meterFillColor: "#FFFFFF",
activeBgColor: "#000000",
@@ -165,7 +188,7 @@
}
}
},
- sexChartData:{},
+ sexChartData: {},
pieOpts: {
color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
"#ea7ccc"
@@ -174,34 +197,38 @@
enableScroll: false,
extra: {
pie: {
+ customRadius: 60,
activeOpacity: 0.5,
activeRadius: 10,
offsetAngle: 0,
- labelWidth: 15,
+ labelWidth: 6,
border: false,
borderWidth: 3,
borderColor: "#FFFFFF"
}
}
- }
+ },
+ gridData: {},
+ sexData: []
}
},
onLoad() {
this.getHouseHoldData();
- // this.getServerData();
this.getHouseData();
this.getReportData();
+ this.getGridData();
},
methods: {
getHouseHoldData() {
- getHouseholdStatistics({
+ statisticsModal.getHouseholdStatistics({
code: this.siteInfo.id,
roleType: uni.getStorageSync("activeRole").roleAlias == "wgy" ? 1 : 2
}).then(res => {
// this.houseHoldData = res.data;
let data = res.data;
+ this.sexData = data.gender;
this.setPersonData(data.age)
this.setSexData(data.gender)
})
@@ -222,45 +249,25 @@
}
this.chartData = JSON.parse(JSON.stringify(res));
},
-
- setSexData(data){
+
+ setSexData(data) {
let res = {
- series:[
- {
- data:[]
- }
- ]
+ series: [{
+ data: []
+ }]
}
- for(let i of data){
- res.series[0].data.push(
- {
- name:i.gender,
- value:i.numbers
- }
- )
+ for (let i of data) {
+ res.series[0].data.push({
+ name: i.gender,
+ value: i.numbers
+ })
}
- this.sexChartData = JSON.parse(JSON.stringify(res));
+ this.sexChartData = JSON.parse(JSON.stringify(res));
},
-
- getServerData() {
- //模拟从服务器获取数据时的延时
- setTimeout(() => {
- //模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
- let res = {
- categories: ["2018", "2019", "2020", "2021", "2022", "2023"],
- series: [{
- name: "目标值",
- data: [35, 36, 31, 33, 13, 34]
- }]
- };
- this.chartData = JSON.parse(JSON.stringify(res));
- }, 500);
- },
-
//获取社区概况数据
getHouseData() {
- getHouseStatistics({
+ statisticsModal.getHouseStatistics({
code: this.siteInfo.id,
roleType: uni.getStorageSync("activeRole").roleAlias == "wgy" ? 1 : 2
}).then(res => {
@@ -270,12 +277,23 @@
//获取社区事件数据
getReportData() {
- getReportStatistics({
+ statisticsModal.getReportStatistics({
code: this.siteInfo.id,
roleType: uni.getStorageSync("activeRole").roleAlias == "wgy" ? 1 : 2
}).then(res => {
console.log(res);
this.reportData = res.data;
+ })
+ },
+
+ //获取网格物业人员
+ getGridData() {
+ statisticsModal.getGridStatistics({
+ code: this.siteInfo.id,
+ roleType: uni.getStorageSync("activeRole").roleAlias == "wgy" ? 1 : 2
+ }).then(res => {
+ console.log(res);
+ this.gridData = res.data;
})
}
}
@@ -385,12 +403,29 @@
// background-color:#fff;
}
- .bar-charts,.pie-charts {
+ .bar-charts,
+ .pie-charts {
width: 100%;
height: 300px;
border-radius: 10rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
}
- .bar-charts{
- margin:20rpx 0;
+
+ .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/workbench/views/bailReportDetail.vue b/subPackage/workbench/views/bailReportDetail.vue
index 001fd46..a110dcc 100644
--- a/subPackage/workbench/views/bailReportDetail.vue
+++ b/subPackage/workbench/views/bailReportDetail.vue
@@ -9,7 +9,7 @@
<view class="licence" v-if="locationImageUrls.length">
<box-title title="位置图片" class="box-title"></box-title>
<view class="flex-wrap">
- <view v-for="(i,k) in locationImageUrls" :key="k" class="ml-20 mt-20">
+ <view v-for="(i,k) in locationImageUrls" :key="k" class="ml-20 mt-20" @click="previewImg(i,locationImageUrls)">
<u-image :src="i" width="80" height="80"></u-image>
</view>
</view>
@@ -343,18 +343,17 @@
this.basicData.forEach(item => {
item.value = data[item.name]
})
- this.locationImageUrls = this.setImages(data.locationImageUrls);
+ this.locationImageUrls = this.$setImageUrl(data.locationImageUrls);
})
},
- setImages(str) {
- if (str) {
- return str.split(",")
- } else {
- return []
- }
+
+ previewImg(current,urls){
+ uni.previewImage({
+ current,urls
+ })
},
-
+
handleConfirm(e) {
this.confirmFlag = e.value[0].name;
this.info.confirmFlag = e.value[0].status;
@@ -376,7 +375,7 @@
setGoOutImages(key) {
let urls = [];
for (let i of key) {
- urls.push(i.url);
+ urls.push(i.name);
}
return urls.join(",")
},
diff --git a/subPackage/workbench/views/hotelReportDetail.vue b/subPackage/workbench/views/hotelReportDetail.vue
index 66b2915..fa63acc 100644
--- a/subPackage/workbench/views/hotelReportDetail.vue
+++ b/subPackage/workbench/views/hotelReportDetail.vue
@@ -9,7 +9,7 @@
<view class="licence" v-if="fireImages.length">
<box-title title="灭火器图片" class="box-title"></box-title>
<view class="flex-wrap">
- <view v-for="(i,k) in fireImages" :key="k" class="ml-20 mt-20">
+ <view v-for="(i,k) in fireImages" :key="k" class="ml-20 mt-20" @click="previewImg(i,fireImages)">
<u-image :src="i" width="80" height="80"></u-image>
</view>
</view>
@@ -17,7 +17,7 @@
<view class="planegraph" v-if="scImageUrls.length">
<box-title title="安全通道图片" class="box-title"></box-title>
<view class="flex-wrap">
- <view v-for="(i,k) in scImageUrls" :key="k" class="ml-20 mt-20">
+ <view v-for="(i,k) in scImageUrls" :key="k" class="ml-20 mt-20" @click="previewImg(i,scImageUrls)">
<u-image :src="i" width="80" height="80"></u-image>
</view>
</view>
@@ -25,7 +25,7 @@
<view class="planegraph" v-if="pfImageUrls.length">
<box-title title="技防设施图片" class="box-title"></box-title>
<view class="flex-wrap">
- <view v-for="(i,k) in pfImageUrls" :key="k" class="ml-20 mt-20">
+ <view v-for="(i,k) in pfImageUrls" :key="k" class="ml-20 mt-20" @click="previewImg(i,pfImageUrls)">
<u-image :src="i" width="80" height="80"></u-image>
</view>
</view>
@@ -33,7 +33,7 @@
<view class="planegraph" v-if="uanImageUrls.length">
<box-title title="未成年人入住及照片" class="box-title"></box-title>
<view class="flex-wrap">
- <view v-for="(i,k) in uanImageUrls" :key="k" class="ml-20 mt-20">
+ <view v-for="(i,k) in uanImageUrls" :key="k" class="ml-20 mt-20" @click="previewImg(i,uanImageUrls)">
<u-image :src="i" width="80" height="80"></u-image>
</view>
</view>
@@ -209,19 +209,18 @@
this.basicData.forEach(item => {
item.value = data[item.name]
})
- this.fireImages = this.setImages(data.fireImageUrls);
- this.scImageUrls = this.setImages(data.scImageUrls);
- this.pfImageUrls = this.setImages(data.pfImageUrls);
- this.uanImageUrls = this.setImages(data.uanImageUrls);
+ this.fireImages = this.$setImageUrl(data.fireImageUrls);
+ this.scImageUrls = this.$setImageUrl(data.scImageUrls);
+ this.pfImageUrls = this.$setImageUrl(data.pfImageUrls);
+ this.uanImageUrls = this.$setImageUrl(data.uanImageUrls);
})
},
- setImages(str) {
- if (str) {
- return str.split(",")
- } else {
- return []
- }
+
+ previewImg(current,urls){
+ uni.previewImage({
+ current,urls
+ })
},
handleConfirm(e) {
diff --git a/subPackage/workbench/views/labelReportDetail.vue b/subPackage/workbench/views/labelReportDetail.vue
index 1fb39ed..2a34a7a 100644
--- a/subPackage/workbench/views/labelReportDetail.vue
+++ b/subPackage/workbench/views/labelReportDetail.vue
@@ -9,15 +9,15 @@
<view class="licence" v-if="imageUrls.length">
<box-title title="手持身份证" class="box-title"></box-title>
<view class="flex-wrap">
- <view v-for="(i,k) in imageUrls" :key="k" class="ml-20 mt-20">
- <u-image :src="i" width="80" height="80"></u-image>
+ <view v-for="(i,k) in imageUrls" :key="k" class="ml-20 mt-20" @click="previewImg(i,imageUrls)">
+ <u-image :src="i" width="80" height="80" ></u-image>
</view>
</view>
</view>
<view class="planegraph" v-if="goodsImageUrls.length">
<box-title title="物品照片" class="box-title"></box-title>
<view class="flex-wrap">
- <view v-for="(i,k) in goodsImageUrls" :key="k" class="ml-20 mt-20">
+ <view v-for="(i,k) in goodsImageUrls" :key="k" class="ml-20 mt-20" @click="previewImg(i,imageUrls)">
<u-image :src="i" width="80" height="80"></u-image>
</view>
</view>
@@ -135,17 +135,18 @@
this.basicData.forEach(item => {
item.value = data[item.name]
})
- this.imageUrls = this.setImages(data.imageUrls);
- this.goodsImageUrls = this.setImages(data.goodsImageUrls);
+ // this.imageUrls = this.setImages(data.imageUrls);
+ // this.goodsImageUrls = this.setImages(data.goodsImageUrls);
+ this.imageUrls = this.$setImageUrl(data.imageUrls);
+ this.goodsImageUrls = this.$setImageUrl(data.goodsImageUrls)
})
},
- setImages(str) {
- if (str) {
- return str.split(",")
- } else {
- return []
- }
- },
+
+ previewImg(current,urls){
+ uni.previewImage({
+ current,urls
+ })
+ },
handleConfirm(e) {
this.form.confirmFlag = e.value[0].name;
diff --git a/subPackage/workbench/views/schoolReportDetail.vue b/subPackage/workbench/views/schoolReportDetail.vue
index 3375274..77cb30f 100644
--- a/subPackage/workbench/views/schoolReportDetail.vue
+++ b/subPackage/workbench/views/schoolReportDetail.vue
@@ -9,7 +9,7 @@
<view class="licence" v-if="imageUrls.length">
<box-title title="手持身份证" class="box-title"></box-title>
<view class="flex-wrap">
- <view v-for="(i,k) in imageUrls" :key="k" class="ml-20 mt-20">
+ <view v-for="(i,k) in imageUrls" :key="k" class="ml-20 mt-20" @click="previewImg(i,imageUrls)">
<u-image :src="i" width="80" height="80"></u-image>
</view>
</view>
@@ -17,7 +17,7 @@
<view class="planegraph" v-if="goodsImageUrls.length">
<box-title title="物品照片" class="box-title"></box-title>
<view class="flex-wrap">
- <view v-for="(i,k) in goodsImageUrls" :key="k" class="ml-20 mt-20">
+ <view v-for="(i,k) in goodsImageUrls" :key="k" class="ml-20 mt-20" @click="previewImg(i,goodsImageUrls)">
<u-image :src="i" width="80" height="80"></u-image>
</view>
</view>
@@ -183,19 +183,18 @@
this.basicData.forEach(item => {
item.value = data[item.name] || "未完善"
})
- this.foImageUrls = this.setImages(data.foImageUrls);
- this.fireFacsImageUrls = this.setImages(data.fireFacsImageUrls);
- this.patrolImageUrls = this.setImages(data.patrolImageUrls);
- this.antiCollisionImageUrls = this.setImages(data.antiCollisionImageUrls);
- this.haImageUrls = this.setImages(data.haImageUrls);
+ this.foImageUrls = this.$setImageUrl(data.foImageUrls);
+ this.fireFacsImageUrls = this.$setImageUrl(data.fireFacsImageUrls);
+ this.patrolImageUrls = this.$setImageUrl(data.patrolImageUrls);
+ this.antiCollisionImageUrls = this.$setImageUrl(data.antiCollisionImageUrls);
+ this.haImageUrls = this.$setImageUrl(data.haImageUrls);
})
},
- setImages(str) {
- if (str) {
- return str.split(",")
- } else {
- return []
- }
+
+ previewImg(current,urls){
+ uni.previewImage({
+ current,urls
+ })
},
handleConfirm(e) {
--
Gitblit v1.9.3