From ed3eff368eb421028ae898950ea4796e4c5b6e0a Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Thu, 30 Nov 2023 18:38:13 +0800
Subject: [PATCH] 优化修复部分问题,圈子发布页面编写,圈子列表与发布数据交互
---
subPackage/bs/views/repairRecord.vue | 4
subPackage/circle/detail.vue | 68 ++++++
components/btn/footerBtn.vue | 50 ++++
pages/circle/index.vue | 73 +++++
subPackage/bs/views/zhsb.vue | 8
pages.json | 23 ++
subPackage/article/detail.vue | 122 ++++++----
pages/home/index.vue | 76 ++++--
api/circle/circle.js | 32 ++
main.js | 4
common/setting.js | 4
subPackage/workbench/views/reportAudit.vue | 66 ++++-
pages/circle/publish.vue | 94 ++++++++
subPackage/workbench/views/report.vue | 4
14 files changed, 506 insertions(+), 122 deletions(-)
diff --git a/api/circle/circle.js b/api/circle/circle.js
new file mode 100644
index 0000000..4fb07ef
--- /dev/null
+++ b/api/circle/circle.js
@@ -0,0 +1,32 @@
+import http from '@/http/api.js'
+
+//发布圈子内容
+export const handlePublish = (params) => {
+ return http.request({
+ url: '/blade-circle/circle/save',
+ method: 'POST',
+ data: params
+ })
+}
+
+//获取圈子列表
+export const getList = (params) => {
+ return http.request({
+ url: '/blade-circle/circle/page',
+ method: 'GET',
+ params: {
+ ...params
+ }
+ })
+}
+
+//获取圈子详情
+export const getDetail = (params) => {
+ return http.request({
+ url: '/blade-circle/circle/detail',
+ method: 'GET',
+ params: {
+ ...params
+ }
+ })
+}
\ No newline at end of file
diff --git a/common/setting.js b/common/setting.js
index a837f6e..aa2c724 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -13,8 +13,8 @@
// 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.102: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/",
// minioBaseUrl:"http://192.168.0.103:9528/",
diff --git a/components/btn/footerBtn.vue b/components/btn/footerBtn.vue
new file mode 100644
index 0000000..ffbf5d7
--- /dev/null
+++ b/components/btn/footerBtn.vue
@@ -0,0 +1,50 @@
+<template>
+ <view class="footer">
+ <button class="footer-btn" @click="handel">{{text}}</button>
+ </view>
+</template>
+
+<script>
+ export default {
+ name:"footerBtn",
+ props:{
+ text:{
+ type:String,
+ default:"提交"
+ }
+ },
+ methods:{
+ handel(){
+ this.$emit("click")
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ .footer{
+ width:100%;
+ padding:20rpx 30rpx;
+ box-sizing: border-box;
+ position: fixed;
+ bottom:0;
+ left:0;
+ background-color: #fff;
+ z-index: 10;
+ bottom: env(safe-area-inset-bottom);
+
+ .footer-btn{
+ width:100%;
+ height: 78rpx;
+ line-height: 78rpx;
+ border-radius: 8rpx;
+ font-size: 32rpx;
+ color:#fff;
+ border:none;
+ background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%);
+ }
+ .footer-btn::after{
+ border:none;
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/main.js b/main.js
index 43c3613..82ed2fa 100644
--- a/main.js
+++ b/main.js
@@ -4,7 +4,7 @@
// import boxTitle from '@/components/boxTitle/index.vue';
// Vue.component('box-title', boxTitle) //
-
+import footerBtn from '@/components/btn/footerBtn.vue'
Vue.config.productionTip = false;
App.mpType = 'app';
@@ -12,7 +12,7 @@
// 引入全局uView
import uView from "uview-ui";
Vue.use(uView);
-
+Vue.component('footer-btn', footerBtn)
// 引入vuex
const vuexStore = require("@/store/$u.mixin.js");
Vue.mixin(vuexStore);
diff --git a/pages.json b/pages.json
index 5f5e51a..c2c2878 100644
--- a/pages.json
+++ b/pages.json
@@ -34,6 +34,14 @@
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
+ },
+ {
+ "path": "pages/circle/publish",
+ "style": {
+ "navigationBarTitleText": "发布",
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black"
+ }
}
],
@@ -92,6 +100,21 @@
]
},
+ //圈子
+ {
+ "root": "subPackage/circle",
+ "pages":[
+ {
+ "path":"detail",
+ "style": {
+ "navigationBarTitleText": "详情",
+ "enablePullDownRefresh": false,
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTextStyle": "black"
+ }
+ }
+ ]
+ },
//公告
{
diff --git a/pages/circle/index.vue b/pages/circle/index.vue
index 8b2045f..9fbdde5 100644
--- a/pages/circle/index.vue
+++ b/pages/circle/index.vue
@@ -8,19 +8,19 @@
</u-navbar>
</view>
<view class="content">
- <view class="topic-item">
+ <view class="topic-item" v-for="(item,index) in list" @click="navToDetail(item.id)">
<view class="flex">
- <u-avatar size="44"></u-avatar>
+ <u-avatar size="44" :src="item.avatar"></u-avatar>
<view class="ml-10 flex f-d-c">
- <text class="f-26 mb-10">张三</text>
- <text class="f-22 c-66">1小时前发布</text>
+ <text class="f-26 mb-10">{{item.name}}</text>
+ <text class="f-22 c-66">{{item.createTime}}</text>
</view>
</view>
<view class="topic-content f-28">
- 租车位18970055016微信同号三栋附近最好,负一二楼都可以
+ {{item.circleText}}
</view>
- <u-album :urls="urls" keyName="src"></u-album>
- <view class="topic-action flex j-c-f-e">
+ <u-album v-if="item.circleImages" :urls="setImgUrl(item.circleImages)" ></u-album>
+ <view class="topic-action flex j-c-f-e" >
<view class="flex a-i-c">
<u-icon name="heart-fill" color="#C4C8CB" size="24"></u-icon>
<text class="f-22 c-66 ml-10">10</text>
@@ -33,7 +33,7 @@
</view>
</view>
- <view class="float flex j-c-c a-i-c">
+ <view class="float flex j-c-c a-i-c" @click="navToPublish">
<view class="float-box bgc-main flex j-c-c f-d-c a-i-c">
<u-icon name="plus" color="#fff" size="24"></u-icon>
<text class="f-26 c-ff">发布</text>
@@ -45,13 +45,66 @@
</template>
<script>
- export default {
+ import { getList } from "@/api/circle/circle.js"
+ import { minioBaseUrl } from "@/common/setting.js"
+ export default {
data() {
return {
keyword: "",
urls: [{
src: 'https://cdn.uviewui.com/uview/album/1.jpg',
- }]
+ }],
+ roleType:0,
+ list:[]
+ }
+ },
+
+ onLoad(){
+ let role = uni.getStorageSync('activeRole')
+ if(role.roleAlias == "inhabitant"){
+ this.roleType = 0
+ }else {
+ this.roleType = 1;
+ }
+
+ this.getCircleList()
+ uni.$on("refreshList",()=>{
+ this.getCircleList()
+ })
+ },
+
+ methods:{
+ getCircleList(){
+ getList({
+ current:1,
+ size:20,
+ circleType:this.roleType
+ }).then(res=>{
+ if(res.code == 200){
+ this.list = res.data.records
+ }
+ })
+ },
+
+ setImgUrl(str){
+ let urls = str.split(",");
+ let arr = [];
+ for(let i of urls){
+ arr.push(`${minioBaseUrl}${i}`)
+ }
+ return arr;
+ },
+
+ navToDetail(id){
+ uni.navigateTo({
+ url:`/subPackage/circle/detail?id=${id}`
+ })
+ },
+
+ navToPublish(){
+ uni.navigateTo({
+ url:"publish"
+ })
}
}
}
diff --git a/pages/circle/publish.vue b/pages/circle/publish.vue
index 2b49cfd..b5930b7 100644
--- a/pages/circle/publish.vue
+++ b/pages/circle/publish.vue
@@ -1,9 +1,99 @@
<template>
-
+ <view class="">
+ <view class="container">
+ <u--textarea v-model="content" placeholder="说点什么" border="none"></u--textarea>
+ <view class="upload flex flex-wrap">
+ <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
+ :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" :maxCount="uploadConfig.maxCount"
+ :capture="uploadConfig.capture" @afterRead="afterReadImg" @delete="deletePic">
+ <view class="upload-item upload-icon flex_base">
+ <u-icon name="camera-fill" color="#DBDBDB" size="40"></u-icon>
+ </view>
+ </u-upload>
+ </view>
+ <view class="flex">
+ <u-icon name="info-circle-fill" color="#2DD3C2"></u-icon>
+ <text class="f-24 c-99 ml-20">请勿涉及不文明及违规内容,违法必究!发现违法内容及时向客服举报!</text>
+ </view>
+ </view>
+ <footer-btn @click="submitInfo" />
+ </view>
</template>
<script>
+ import uploadMixin from "@/mixin/uploadMixin";
+ import { handlePublish } from "@/api/circle/circle.js"
+ export default {
+ mixins: [uploadMixin],
+ data() {
+ return {
+ form: {
+ images: []
+ },
+ content:"",
+ roleType:0
+ }
+ },
+
+ onLoad(){
+ let role = uni.getStorageSync('activeRole')
+ if(role.roleAlias == "inhabitant"){
+ this.roleType = 0
+ }else {
+ this.roleType = 1;
+ }
+ },
+
+ methods: {
+
+ getImagesUrl(){
+ if(this.form.images.length){
+ let arr = [];
+ for(let i of this.form.images){
+ arr.push(i.name)
+ }
+ return arr.join(",")
+ }else {
+ return ""
+ }
+ },
+
+ submitInfo() {
+ handlePublish({
+ circleText:this.content,
+ circleImages:this.getImagesUrl(),
+ circleType:this.roleType
+ }).then(res=>{
+ if(res.code == 200){
+ uni.showToast({
+ title:res.msg
+ })
+ setTimeout(()=>{
+ uni.navigateBack();
+ uni.$emit("refreshList")
+ },1000)
+ }
+ })
+ }
+ }
+ }
</script>
-<style>
+<style lang="scss">
+ .container {
+ padding: 20rpx 30rpx 0;
+
+ .upload {
+ padding: 30rpx 0;
+ border-bottom: 1px solid #F5F5F5;
+ margin-bottom: 20rpx;
+ }
+
+ .upload-item {
+ width: 140rpx;
+ height: 140rpx;
+ border-radius: 8rpx;
+ background: #F5F5F5;
+ }
+ }
</style>
\ No newline at end of file
diff --git a/pages/home/index.vue b/pages/home/index.vue
index 3dff512..bafacfe 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -1,5 +1,5 @@
<template>
- <view class="layout" >
+ <view class="layout">
<u-navbar height="48" :autoBack="false" safeAreaInsetTop placeholder
@leftClick="selectBoxShow = !selectBoxShow">
<view slot="left" class="top flex">
@@ -141,7 +141,7 @@
} from "@/common/setting"
import noticeList from "@/components/noticeList/noticeList";
import captionRow from "@/components/caption/caption.vue"
-import taskListVue from "../../subPackage/task/taskList.vue";
+ import taskListVue from "../../subPackage/task/taskList.vue";
export default {
components: {
@@ -474,27 +474,25 @@
// }, 100)
// });
this.menuList = uni.getStorageSync("menu")
- let liveList = this.hasMenu('生活')
- console.log("liveList===>", liveList);
- this.liveList = this.setLiveMenu(liveList);
+ this.liveList = this.setLiveMenu(this.hasMenu('生活'));
this.contactList = this.hasMenu('快捷拨号');
this.jobList = this.hasMenu('工作台')
if (this.menuList.length) {
this.getHouseMenu();
this.getNoticeMenu();
}
- setTimeout(()=>{
- if(this.jobList.length){
- let taskList = this.jobList.filter(item => item.name == "我的任务")
- if(taskList.length){
- uni.setStorageSync("taskMenu",taskList[0].children);
- }else {
- uni.setStorageSync("taskMenu",[]);
+ setTimeout(() => {
+ if (this.jobList.length) {
+ let taskList = this.jobList.filter(item => item.name == "我的任务")
+ if (taskList.length) {
+ uni.setStorageSync("taskMenu", taskList[0].children);
+ } else {
+ uni.setStorageSync("taskMenu", []);
}
- }else {
- uni.setStorageSync("taskMenu",[]);
+ } else {
+ uni.setStorageSync("taskMenu", []);
}
- },200)
+ }, 200)
},
getHouseMenu() {
@@ -514,34 +512,53 @@
setLiveMenu(arr) {
- if(arr.length){
- let index = arr.findIndex(item => item.name == "标签报事")
- let index2 = arr.findIndex(item => item.name == "租户上报")
+ if (arr.length) {
+ let index = this.getLiveMenuItem(arr, 1)
+ let index2 = this.getLiveMenuItem(arr, 2)
if (this.curSelectSite.addressType == 1) {
- if (index != -1) {
+ if (index != -1) {
arr.splice(index, 1)
+ index = this.getLiveMenuItem(arr, 1)
+ index2 = this.getLiveMenuItem(arr, 2)
}
- if(index2 == -1){
+ if (index2 == -1) {
arr.push({
name: "租客上报",
path: "/subPackage/bs/views/zhsb",
pictureImg: "/static/icon/nav-04.png"
})
+ index = this.getLiveMenuItem(arr, 1)
+ index2 = this.getLiveMenuItem(arr, 2)
}
+
} else {
if (index == -1) {
arr.unshift({
name: "标签报事",
path: "/subPackage/label/index",
- pictureImg: "/static/icon/nav-01.png"
+ pictureImg: "/static/icon/nav-11.png"
})
+ index = this.getLiveMenuItem(arr, 1)
+ index2 = this.getLiveMenuItem(arr, 2)
}
- if(index2 != -1){
+ if (index2 != -1) {
arr.splice(index2, 1)
+ index = this.getLiveMenuItem(arr, 1)
+ index2 = this.getLiveMenuItem(arr, 2)
}
}
}
return arr;
+ },
+
+ getLiveMenuItem(arr, type) {
+ if (type == 1) {
+ let index = arr.findIndex(item => item.name == "标签报事")
+ return index;
+ } else {
+ let index2 = arr.findIndex(item => item.name == "租户上报")
+ return index2
+ }
},
// 页面跳转
@@ -634,14 +651,15 @@
<style lang="scss">
page {
color: #333;
- width:100%;
- height:100%;
- background-color:#fff;
+ width: 100%;
+ height: 100%;
+ background-color: #fff;
}
- .layout{
- width:100%;
- height:100%;
- background-color:#fff;
+
+ .layout {
+ width: 100%;
+ height: 100%;
+ background-color: #fff;
}
.top {
diff --git a/subPackage/article/detail.vue b/subPackage/article/detail.vue
index c8bb036..be85180 100644
--- a/subPackage/article/detail.vue
+++ b/subPackage/article/detail.vue
@@ -61,7 +61,7 @@
</view>
</view>
<view class="explain-row c-main f-28">
- 投票{{computeEndTime > 0 || !isSubmit?"进行中":"已结束"}}
+ 投票{{!isEnd && !isComplete?"进行中":"已结束"}}
</view>
<view class="vote bgc-ff">
<view class="mb-20" v-for="(item,index) in voteTopicList" :key="index">
@@ -71,18 +71,19 @@
</view>
<view class="" v-if="item.optionRange == 0">
<u-radio-group size="22" iconPlacement="right" activeColor="#017BFC" placement="column"
- v-model="item.selected" @change="selectOption($event,index)" :disabled="isSubmit">
+ v-model="item.selected" @change="selectOption($event,index)"
+ :disabled="item.isSubmit || isEnd">
<view class="mb-30" 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">
<view class="mt-10" style="width:80%;">
- <uv-line-progress v-if="item.selected" height="6" :showText="false"
+ <uv-line-progress v-if="item.selected" height="6" :showText="false"
:percentage="getRatio(i.number)"
activeColor="#017BFC"></uv-line-progress>
- <uv-line-progress v-else height="6" :showText="false"></uv-line-progress>
+ <uv-line-progress v-else height="6" :showText="false"></uv-line-progress>
</view>
- <text class="c-33 f-28" v-if="i.number">{{i.number}}人</text>
+ <text class="c-33 f-28" v-if="i.number && item.isSubmit">{{i.number}}人</text>
</view>
</view>
</u-radio-group>
@@ -95,10 +96,10 @@
<u-checkbox :label="i.optionContent" :name="i.id"></u-checkbox>
<view class="flex j-c-s-b a-i-c mt-10">
<view class="mt-10" style="width:80%;">
- <uv-line-progress v-if="item.selected" height="6" :showText="false"
+ <uv-line-progress v-if="item.selected" height="6" :showText="false"
:percentage="getRatio(i.number)"
activeColor="#017BFC"></uv-line-progress>
- <uv-line-progress v-else height="6" :showText="false"></uv-line-progress>
+ <uv-line-progress v-else height="6" :showText="false"></uv-line-progress>
</view>
<text class="c-33 f-28" v-if="i.number">{{i.number}}人</text>
</view>
@@ -106,10 +107,10 @@
</u-checkbox-group>
</view>
</view>
- <button class="apply-btn bgc-main c-ff" v-if="computeEndTime > 0 && !isSubmit"
+ <button class="apply-btn bgc-main c-ff" v-if="!isEnd && !isComplete"
@click="submitVote()">提交</button>
- <button class="apply-btn bgc-gray c-d1" v-if="isSubmit">已提交</button>
- <button class="apply-btn bgc-gray c-d1" v-if="computeEndTime <= 0">已结束</button>
+ <button class="apply-btn bgc-gray c-d1" v-if="isComplete">已提交</button>
+ <button class="apply-btn bgc-gray c-d1" v-if="isEnd">已结束</button>
</view>
</view>
</view>
@@ -133,7 +134,8 @@
</view>
</view>
<view class="footer">
- <u-search searchIcon='edit-pen' :animation="true" placeholder="写评论" disabled @click="navToComment"></u-search>
+ <u-search searchIcon='edit-pen' :animation="true" placeholder="写评论" disabled
+ @click="navToComment"></u-search>
</view>
@@ -175,7 +177,9 @@
isLoad: false,
voteTopicList: [],
isSubmit: false, // 是否已提交投票
- commentList: []
+ commentList: [],
+ isEnd: false, //是否结束
+ isComplete: false // 是否完成全部投票
}
},
onLoad(option) {
@@ -197,7 +201,10 @@
computeEndTime() {
let curTimestamp = new Date().getTime();
let endTimestamp = new Date(this.applyInfo.endTime).getTime();
- return endTimestamp - curTimestamp
+ if (Number(endTimestamp) - Number(curTimestamp) <= 0) {
+ this.isEnd = true;
+ }
+ return Number(endTimestamp) - Number(curTimestamp)
}
},
@@ -269,67 +276,76 @@
}).then(res => {
if (res.code == 200) {
let data = res.data;
+ let tempArr = [];
if (data.length) {
for (let i of data) {
if (i.selected) {
+ tempArr.push(i);
if (typeof i.selected == "string" && i.optionRange == 0) {
this.isSubmit = true;
+ i.isSubmit = true;
i.selected = Number(i.selected)
}
if (typeof i.selected == "string" && i.optionRange == 1) {
this.isSubmit = true;
+ i.isSubmit = true;
i.selected = JSON.parse(i.selected)
}
}
}
}
this.voteTopicList = data;
+ if (data.length == tempArr.length) {
+ this.isComplete = true;
+ }
}
})
},
//报名
handleApply() {
- communityModel.addApply({
- publicDiscussId: this.pdId
- }).then(res => {
- if (this.computeEndTime > 0) {
+ if (this.computeEndTime > 0) {
+ communityModel.addApply({
+ publicDiscussId: this.pdId
+ }).then(res => {
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)
- }
+ })
+ } else {
+ uni.showToast({
+ title: "报名已结束",
+ icon: "none"
+ })
}
- return arr;
- },
+ }
+ },
- //提交投票
- submitVote() {
+ 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() {
+ if (this.computeEndTime > 0) {
let data = this.getParams()
communityModel.addVoteOperate(data).then(res => {
if (res.code == 200) {
@@ -342,15 +358,21 @@
})
}
})
- },
-
- navToComment() {
- uni.navigateTo({
- url: `comment?id=${this.params.id}`
+ } else {
+ uni.showToast({
+ title: "投票已结束",
+ icon: "none"
})
}
+ },
+
+ navToComment() {
+ uni.navigateTo({
+ url: `comment?id=${this.params.id}`
+ })
}
}
+
</script>
<style lang="scss">
diff --git a/subPackage/bs/views/repairRecord.vue b/subPackage/bs/views/repairRecord.vue
index b7e1acc..a19982e 100644
--- a/subPackage/bs/views/repairRecord.vue
+++ b/subPackage/bs/views/repairRecord.vue
@@ -27,8 +27,8 @@
<text class="f-28 c-66">{{ item.phone }}</text>
</view>
<view class="item-row flex a-i-c j-c-s-b">
- <text class="f-28">地址</text>
- <text class="address f-28 c-66">{{ item.addressName || "" }}</text>
+ <text class="f-28">事发地</text>
+ <text class="address f-28 c-66">{{ item.address || "" }}</text>
</view>
</view>
</view>
diff --git a/subPackage/bs/views/zhsb.vue b/subPackage/bs/views/zhsb.vue
index fdfa1bd..dcac41c 100644
--- a/subPackage/bs/views/zhsb.vue
+++ b/subPackage/bs/views/zhsb.vue
@@ -22,11 +22,15 @@
</view>
- <view class="bottom">
+ <!-- <view class="bottom">
<view class="btn">
<u-button @click="addRent" type="primary" :plain="true" text="添加租赁信息"></u-button>
</view>
- </view>
+ </view> -->
+
+ <footer-btn @click="addRent" text="添加租赁信息" />
+
+
</view>
</template>
diff --git a/subPackage/circle/detail.vue b/subPackage/circle/detail.vue
new file mode 100644
index 0000000..e5ecd86
--- /dev/null
+++ b/subPackage/circle/detail.vue
@@ -0,0 +1,68 @@
+<template>
+ <view class="">
+ <view class="flex">
+ <u-avatar size="60" :src="detailInfo.avatar"></u-avatar>
+ <view class="ml-10 flex f-d-c">
+ <text class="f-28 mb-10">{{detailInfo.name}}</text>
+ <text class="f-24 c-66">{{detailInfo.createTime}}</text>
+ </view>
+ </view>
+ <view class="topic-content f-30">
+ {{detailInfo.circleText}}
+ </view>
+ <view class="">
+ <view class="" v-for="i in images">
+ <u-image :src="i"></u-image>
+ </view>
+
+ </view>
+ </view>
+</template>
+
+<script>
+ import {
+ getDetail
+ } from "@/api/circle/circle.js"
+ export default {
+ data() {
+ return {
+ detailInfo: {},
+ images: []
+ }
+ },
+
+ onLoad(option) {
+ this.getDetailInfo(option.id)
+ },
+
+ methods: {
+ getDetailInfo(id) {
+ getDetail({
+ id
+ }).then(res => {
+ this.detailInfo = res.data;
+ if (res.data.circleImages) {
+ this.images = this.setImgUrl(res.data.circleImages)
+ }
+ })
+ },
+ setImgUrl(str) {
+ let urls = str.split(",");
+ let arr = [];
+ for (let i of urls) {
+ arr.push(`${minioBaseUrl}${i}`)
+ }
+ return arr;
+ }
+ }
+ }
+</script>
+
+<style>
+ .container{
+ padding:0 30rpx;
+ }
+ .topic-content{
+ padding:20rpx 0;
+ }
+</style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/report.vue b/subPackage/workbench/views/report.vue
index 9c5a8b1..4bdd824 100644
--- a/subPackage/workbench/views/report.vue
+++ b/subPackage/workbench/views/report.vue
@@ -27,8 +27,8 @@
<text class="f-28 c-66">{{ item.phone }}</text>
</view>
<view class="item-row flex a-i-c j-c-s-b">
- <text class="f-28">地址</text>
- <text class="address f-28 c-66">{{ item.addressName }}</text>
+ <text class="f-28">事发地</text>
+ <text class="address f-28 c-66">{{ item.address || "" }}</text>
</view>
</view>
</view>
diff --git a/subPackage/workbench/views/reportAudit.vue b/subPackage/workbench/views/reportAudit.vue
index ee1ec56..9b719bb 100644
--- a/subPackage/workbench/views/reportAudit.vue
+++ b/subPackage/workbench/views/reportAudit.vue
@@ -1,39 +1,42 @@
<template>
<view class="container">
<view class="basic-box">
- <view class="title-box">
+ <!-- <view class="title-box">
<view class="line"></view>
<view class="text">基本信息</view>
- </view>
+ </view> -->
+ <caption-row title="基本信息" />
<view class="basic-data">
- <lineItem :data-info="basicData"></lineItem>
+ <lineItem :dataInfo="basicData"></lineItem>
</view>
</view>
<view class="pic-box" v-if="imgUrls.length">
- <view class="title-box">
+ <!-- <view class="title-box">
<view class="line"></view>
<view class="text">事件照片</view>
- </view>
+ </view> -->
+ <caption-row title="事件照片" />
<view class="pic-data">
- <view class="mr-20 " v-for="i in imgUrls">
- <u-image class="img" :src="i" width="80" height="80"></u-image>
+ <view class="mr-20 " v-for="(i,k) in imgUrls" :key="k">
+ <u-image class="img" :src="i" width="80" height="80" @click="previewImg(i)"></u-image>
</view>
</view>
</view>
<view class="audit-box">
- <view class="title-box">
+ <!-- <view class="title-box">
<view class="line"></view>
<view class="text">审核信息</view>
- </view>
+ </view> -->
+ <caption-row title="审核信息" />
<view class="audit-form">
<u-form labelWidth="70" :model="form" class="form" ref="form">
<u-form-item label="事件状态" @click="showPicker" class="form-item">
<u--input v-model="form.confirmFlag" disabled disabledColor="#ffffff" placeholder="请选择审核状态"
- border="none" :placeholder="defaultPlaceholder"></u--input>
- <u-icon slot="right" name="arrow-right"></u-icon>
+ border="none" :placeholder="defaultPlaceholder" inputAlign="right" color="#333"></u--input>
+ <u-icon slot="right" name="arrow-right" v-show="from == 'list'"></u-icon>
</u-form-item>
- <u-form-item label="备注" class="form-item" v-if="from == 'list' || (from == 'record' && form.confirmNotion)">
- <u--input v-model="form.confirmNotion" border="none" :disabled="from == 'record'?true:false"></u--input>
+ <u-form-item label="处理情况" class="form-item" v-if="from == 'list' || (from == 'record' && form.confirmNotion)">
+ <u--input v-model="form.confirmNotion" :border="from == 'list'?'surround':'none'" inputAlign="right" color="#333" :disabled="from == 'record'?true:false"></u--input>
</u-form-item>
</u-form>
</view>
@@ -48,23 +51,25 @@
<script>
import lineItem from '../components/lineItem.vue'
+ import captionRow from '@/components/caption/caption.vue'
import {
checkReportForRepairsData
} from '@/api/task/taskReportForRepairs.js'
import { minioBaseUrl } from "@/common/setting.js"
export default {
components: {
+ captionRow,
lineItem
},
data() {
return {
basicData: [{
- label: '当前位置',
+ label: '事发地',
name: 'address',
value: '未完善'
},
{
- label: '业主',
+ label: '姓名',
name: 'realName',
value: '未完善'
},
@@ -80,7 +85,7 @@
},
{
label: '事件描述',
- name: 'confirmNotion',
+ name: 'remark',
value: '未完善'
}
],
@@ -155,6 +160,11 @@
}
},
+
+ setImgUrl(url){
+ return `${minioBaseUrl}${url}`
+ },
+
async checkReportForRepairs() {
const {
confirmFlag,
@@ -196,7 +206,12 @@
}
})
if(this.defaultData.imageUrls){
- this.imgUrls = this.defaultData.imageUrls.split(",")
+ let list = this.defaultData.imageUrls.split(",")
+ let arr = []
+ for(let i of list){
+ arr.push(`${minioBaseUrl}${i}`);
+ }
+ this.imgUrls = arr;
}
let columns = this.columns[0]
@@ -217,6 +232,14 @@
})
return res
},
+
+ previewImg(url){
+ uni.previewImage({
+ urls:this.imgUrls,
+ current:url
+ })
+ },
+
}
}
</script>
@@ -227,7 +250,7 @@
}
.container {
- padding: 20rpx 30rpx 150rpx 30rpx;
+ padding: 0 20rpx 150rpx;
.basic-box,
.pic-box,
@@ -238,9 +261,9 @@
}
.pic-box {
- margin-top: 20rpx;
-
+ // margin-top: 20rpx;
.pic-data {
+ padding:0 20rpx;
display: flex;
flex-wrap: wrap;
margin-top: 20rpx;
@@ -248,9 +271,10 @@
}
.audit-box {
- margin-top: 20rpx;
+ // margin-top: 20rpx;
.audit-form {
+ padding:0 20rpx;
.form {
font-size: 30rpx;
--
Gitblit v1.9.3