新增投诉建议详情功能

在投诉建议模块中添加了获取投诉建议详情的功能,包括投诉对象、原因、证据、位置等信息,并支持查看回复内容和图片。优化了数据处理逻辑,能够正确处理图片数组和回复信息。
lu_quan_dev
Tuzki 1 year ago
parent 2c1a7dfd0a
commit 86ae6037be
  1. 5
      common/config.js
  2. 20
      pages.json
  3. 192
      subPageB/suggest/jianyiDetail.vue
  4. 14
      subPageB/suggest/sug_list.vue

@ -141,11 +141,12 @@ module.exports = {
registerUserApp:REAUEST_ROOTPATH + "/mobile/weixin/registerUserApp" ,//app注册
getScenicListByGuids:REAUEST_ROOTPATH + "/mobile/scenic/getScenicListByGuids" ,//获取热门景点列表
deleteUserApp:REAUEST_ROOTPATH + "/mobile/weixin/deleteUserApp" ,//注销账号
//票务这边的
pageComplaintinfo:PWPATH+"/app-api/wechatshop/complaintinfo/pageComplaintinfo",//获得投诉建议分页
createComplaintinfo: PWPATH +"/app-api/wechatshop/complaintinfo/createComplaintinfo",//创建投诉建议
getComplaintinfo: PWPATH +"/app-api/wechatshop/complaintinfo/getComplaintinfo",//投诉建议详情
getTicketSortList: PWPATH + "/app-api/wechatshop/ticket/getTicketSortList",//获取门票分类
getTicketList: PWPATH + "/app-api/wechatshop/ticket/getTicketList",//获取门票列表分页
isQuota: PWPATH + "/app-api/wechatshop/ticket/isQuota",//查询是否限购

@ -32,7 +32,6 @@
{
"root": "subPageA",
"pages": [
{
"path": "scenic/sceniclist/sceniclist",
"style": {
@ -91,7 +90,6 @@
}
}
},
{
"path": "method/methodlist/methodlist",
"style": {
@ -127,8 +125,6 @@
}
}
},
{
"path": "scenic/scenicdetial/scenicdetial",
"style": {
@ -146,7 +142,6 @@
"navigationBarTitleText": "攻略简介"
}
},
{
"path": "search/search",
"style": {
@ -159,8 +154,6 @@
"navigationBarTitleText": "720全景"
}
},
{
"path": "scenic/scenicdetial/ticket/ticket",
"style": {
@ -170,15 +163,12 @@
}
}
},
{
"path": "personcenter/middlePage",
"style": {
"navigationBarTitleText": "加载中"
}
},
{
"path": "personcenter/aboutus",
"style": {
@ -192,7 +182,6 @@
"navigationBarTitleText": "系统更新"
}
},
{
"path": "personcenter/scanCodeRecord/scanCodeRecord",
"style": {
@ -298,7 +287,6 @@
"navigationBarTitleText": "娱乐场所"
}
},
{
"path": "cate/index",
"style": {
@ -412,6 +400,12 @@
"navigationBarTitleText": ""
}
},
{
"path": "suggest/jianyiDetail",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "tousu/tousulist/tousulist",
"style": {
@ -520,4 +514,4 @@
}
]
}
}
}

@ -0,0 +1,192 @@
<template>
<view class="m-content">
<view class="m-card">
<view class="m-card-header">
<view class="m-card-header-title">{{ type == "1" ? '投诉' : '建议' }}信息</view>
</view>
<view class="n-card-body">
<view class="m-card-item">
<view class="m-card-item-label">{{ type == "1" ? '投诉' : '建议' }}对象:</view>
<view class="m-card-item-value">{{ complaintInfo.ctype || '-' }}</view>
</view>
<view class="m-card-item">
<view class="m-card-item-label">{{ type == "1" ? '投诉' : '建议' }}原因:</view>
<view class="m-card-item-value">{{ complaintInfo.creason || '-' }}</view>
</view>
<view class="m-card-item">
<view class="m-card-item-label">{{ type == "1" ? '投诉' : '建议' }}证据:</view>
<view class="m-card-item-value">
<image v-for="(items, indexs) in complaintInfo.cimages" :src="imgUrl + items" class="sug_img"
mode="aspectFill"></image>
</view>
</view>
<view class="m-card-item">
<view class="m-card-item-label">{{ type == "1" ? '投诉' : '建议' }}位置:</view>
<view class="m-card-item-value">{{ complaintInfo.address || '-' }}</view>
</view>
</view>
</view>
<view class="m-card" v-if="complaintInfo.complaintReplyDO">
<view class="m-card-header">
<view class="m-card-header-title">回复信息</view>
</view>
<view class="n-card-body">
<view class="m-card-item flex-column">
<view class="m-card-item-label">回复内容:</view>
<view class="m-card-item-value">
<u-parse :content="complaintInfo.complaintReplyDO.content || '暂无信息'" />
</view>
</view>
<view class="m-card-item">
<view class="m-card-item-label">回复图集:</view>
<view class="m-card-item-value">
<image v-for="(items, indexs) in complaintInfo.complaintReplyDO.images" :src="items" class="sug_img"
mode="aspectFill"></image>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import uParse from "@/components/gaoyia-parse/parse.vue";
export default ({
components: {
uParse,
},
data() {
return {
type: "1",
imgUrl: this.$config.ROOTPATH,
complaintInfo: null,
}
},
computed: {},
methods: {
getComplaintinfo(val) {
var data = {
id: val
}
this.$Request.get(this.$config.getComplaintinfo, data, null, null, false, false).then(res => {
console.log(res)
if (res.data.cimages != null && res.data.cimages != undefined) {
if (res.data.cimages.includes(',')) {
res.data.cimages = res.data.cimages.split(',')
} else {
res.data.cimages = [res.data.cimages]
}
}
if (res.data.complaintReplyDO && res.data.complaintReplyDO.images) {
if (res.data.complaintReplyDO.images.includes(',')) {
res.data.complaintReplyDO.images = res.data.complaintReplyDO.images.split(',')
} else {
res.data.complaintReplyDO.images = [res.data.complaintReplyDO.images]
}
}
this.complaintInfo = res.data
})
}
},
watch: {},
// --
onLoad(options) {
if (options) {
console.log(options)
this.type = options.type
this.getComplaintinfo(options.id)
}
},
// --
onReady() {
uni.setNavigationBarTitle({
title: this.type == "1" ? '投诉详情' : '建议详情'
});
},
// --(not-nvue)
onShow() { },
// --
onHide() { },
// --
onUnload() { },
// --
// onPullDownRefresh() { uni.stopPullDownRefresh(); },
// --
// onReachBottom() {},
// --(not-nvue)
// onPageScroll(event) {},
// --
// onShareAppMessage(options) {},
})
</script>
<style scoped lang="scss">
.m-content {
padding-bottom: 150rpx;
.m-card {
margin: 20rpx;
padding: 20rpx 30rpx;
border: solid 1rpx #dcedff;
box-shadow: 0 0 10px 1px #dcedff;
border-radius: 20rpx;
background-color: #fff;
.m-card-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20rpx;
border-bottom: solid 1rpx #eee;
padding-bottom: 20rpx;
.m-card-header-title {
font-size: 35rpx;
color: #363636;
}
}
.n-card-body {
display: flex;
flex-direction: column;
.m-card-item {
display: flex;
justify-content: flex-start;
margin-bottom: 30rpx;
.m-card-item-label {
flex: none;
margin-right: 10rpx;
}
.m-card-item-value {
flex: 1;
min-width: 0;
display: flex;
flex-wrap: wrap;
}
}
.flex-column{
flex-direction: column;
.m-card-item-label{
margin-bottom: 20rpx;
}
}
}
}
}
image {
width: 200rpx;
height: 200rpx;
}
</style>

@ -23,8 +23,8 @@
<view>
<scroll-view @scrolltolower="onReachScroll" class="scroll-view" :scroll-top="topNum" scrollY="true">
<view class="lst_sug_warp" v-if="controlList.length > 0">
<view class="lst_sug_unit" v-for="(item, index) in controlList" :key="index">
<view @tap="showHideNr" :data-guid="item.guid" class="dly_flex_c mode_com tsu_bt">
<view class="lst_sug_unit" v-for="(item, index) in controlList" :key="index" @click.stop="getComplaintinfo(item)">
<view @tap.stop="showHideNr" :data-guid="item.guid" class="dly_flex_c mode_com tsu_bt">
<view class="b_tol_ipt">{{ item.ctype }}</view>
<view class="kou_top3">
<text :class="item.upDownType"> <!-- 折叠图标-向下 --> </text>
@ -45,7 +45,7 @@
{{ item.creason }}
</view>
<!-- 投诉图片 -->
<view class="sug_dly_flex sug_lst_img sug_fm_img">
<view class="sug_dly_flex sug_lst_img sug_fm_img" v-if="item.imgList&&item.imgList.length>0">
<view class="w_33" v-for="(items, indexs) in item.imgList" :key="indexs">
<image :src="imgUrl + items" class="sug_img" mode="aspectFill"></image>
</view>
@ -145,6 +145,12 @@ export default {
// this.getUserMsg();
},
methods: {
getComplaintinfo(val){
console.log(val, '投诉详情')
uni.navigateTo({
url: '/subPageB/suggest/jianyiDetail?type=' + this.type + '&id=' + val.guid,
})
},
onReachScroll: function (t) {
if (this.loadType) {
this.page++;
@ -217,7 +223,7 @@ export default {
"creason": data[i].creason,
"address": data[i].address,
"ctype": data[i].ctype,
"imgList": data[i].cimages,
"imgList": data[i].cimages==""?[]:data[i].cimages,
"showHideType": "zhed_gao",
"upDownType": "down_touj"
}

Loading…
Cancel
Save