Lou
2023-11-30 ed3eff368eb421028ae898950ea4796e4c5b6e0a
优化修复部分问题,圈子发布页面编写,圈子列表与发布数据交互
11 files modified
3 files added
628 ■■■■ changed files
api/circle/circle.js 32 ●●●●● patch | view | raw | blame | history
common/setting.js 4 ●●●● patch | view | raw | blame | history
components/btn/footerBtn.vue 50 ●●●●● patch | view | raw | blame | history
main.js 4 ●●●● patch | view | raw | blame | history
pages.json 23 ●●●●● patch | view | raw | blame | history
pages/circle/index.vue 73 ●●●● patch | view | raw | blame | history
pages/circle/publish.vue 94 ●●●●● patch | view | raw | blame | history
pages/home/index.vue 76 ●●●●● patch | view | raw | blame | history
subPackage/article/detail.vue 122 ●●●●● patch | view | raw | blame | history
subPackage/bs/views/repairRecord.vue 4 ●●●● patch | view | raw | blame | history
subPackage/bs/views/zhsb.vue 8 ●●●● patch | view | raw | blame | history
subPackage/circle/detail.vue 68 ●●●●● patch | view | raw | blame | history
subPackage/workbench/views/report.vue 4 ●●●● patch | view | raw | blame | history
subPackage/workbench/views/reportAudit.vue 66 ●●●●● patch | view | raw | blame | history
api/circle/circle.js
New file
@@ -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
        }
    })
}
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/",
components/btn/footerBtn.vue
New file
@@ -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>
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);
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"
                    }
                }
            ]
        },
        //公告
        {
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"
                })
            }
        }
    }
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>
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 {
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">
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>
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>
subPackage/circle/detail.vue
New file
@@ -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>
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>
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;