优化修复部分问题,圈子发布页面编写,圈子列表与发布数据交互
11 files modified
3 files added
| New file |
| | |
| | | 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 |
| | | } |
| | | }) |
| | | } |
| | |
| | | // 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/", |
| New file |
| | |
| | | <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> |
| | |
| | | |
| | | // 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'; |
| | |
| | | // 引入全局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); |
| | |
| | | "enablePullDownRefresh": false, |
| | | "navigationStyle": "custom" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/circle/publish", |
| | | "style": { |
| | | "navigationBarTitleText": "发布", |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black" |
| | | } |
| | | } |
| | | |
| | | ], |
| | |
| | | |
| | | ] |
| | | }, |
| | | //圈子 |
| | | { |
| | | "root": "subPackage/circle", |
| | | "pages":[ |
| | | { |
| | | "path":"detail", |
| | | "style": { |
| | | "navigationBarTitleText": "详情", |
| | | "enablePullDownRefresh": false, |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black" |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | | |
| | | //公告 |
| | | { |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | </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" |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | <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> |
| | |
| | | <template>
|
| | | <view class="layout" >
|
| | | <view class="layout">
|
| | | <u-navbar height="48" :autoBack="false" safeAreaInsetTop placeholder
|
| | | @leftClick="selectBoxShow = !selectBoxShow">
|
| | | <view slot="left" class="top flex">
|
| | |
| | | } 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: {
|
| | |
| | | // }, 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() {
|
| | |
| | |
|
| | |
|
| | | 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
|
| | | }
|
| | | },
|
| | |
|
| | | // 页面跳转
|
| | |
| | | <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 {
|
| | |
| | | </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"> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | </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> |
| | | |
| | | |
| | |
| | | isLoad: false, |
| | | voteTopicList: [], |
| | | isSubmit: false, // 是否已提交投票 |
| | | commentList: [] |
| | | commentList: [], |
| | | isEnd: false, //是否结束 |
| | | isComplete: false // 是否完成全部投票 |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | |
| | | 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) |
| | | } |
| | | }, |
| | | |
| | |
| | | }).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) { |
| | |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | 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"> |
| | |
| | | <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> |
| | |
| | | </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>
|
| | |
|
| New file |
| | |
| | | <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> |
| | |
| | | <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>
|
| | |
| | | <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>
|
| | |
| | |
|
| | | <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: '未完善'
|
| | | },
|
| | |
| | | },
|
| | | {
|
| | | label: '事件描述', |
| | | name: 'confirmNotion',
|
| | | name: 'remark',
|
| | | value: '未完善'
|
| | | }
|
| | | ],
|
| | |
| | | }
|
| | | },
|
| | |
|
| | | |
| | | setImgUrl(url){
|
| | | return `${minioBaseUrl}${url}`
|
| | | },
|
| | | |
| | | async checkReportForRepairs() {
|
| | | const {
|
| | | confirmFlag,
|
| | |
| | | } |
| | | })
|
| | | 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] |
| | |
| | | })
|
| | | return res
|
| | | },
|
| | | |
| | | previewImg(url){
|
| | | uni.previewImage({
|
| | | urls:this.imgUrls,
|
| | | current:url
|
| | | })
|
| | | },
|
| | | |
| | | }
|
| | | }
|
| | | </script>
|
| | |
| | | }
|
| | |
|
| | | .container {
|
| | | padding: 20rpx 30rpx 150rpx 30rpx;
|
| | | padding: 0 20rpx 150rpx;
|
| | |
|
| | | .basic-box,
|
| | | .pic-box,
|
| | |
| | | }
|
| | |
|
| | | .pic-box {
|
| | | margin-top: 20rpx;
|
| | |
|
| | | // margin-top: 20rpx;
|
| | | .pic-data {
|
| | | padding:0 20rpx;
|
| | | display: flex;
|
| | | flex-wrap: wrap;
|
| | | margin-top: 20rpx;
|
| | |
| | | }
|
| | |
|
| | | .audit-box {
|
| | | margin-top: 20rpx;
|
| | | // margin-top: 20rpx;
|
| | |
|
| | | .audit-form {
|
| | | padding:0 20rpx;
|
| | | .form {
|
| | | font-size: 30rpx;
|
| | |
|