Compare commits

..

No commits in common. 'b32ee01a9346b04f940ff7050236374e6dc70eca' and '13f05817360c278203ff27ba6fed64bfd975ceff' have entirely different histories.

  1. 66
      pages/news1/MerchantSettlement.vue
  2. 233
      pages/news1/feedback.vue
  3. 4
      pages/news1/setting.vue

@ -342,101 +342,61 @@ export default {
})
.finally()
},
onShowToast(t) {
uni.showToast({
title: t,
icon: 'none',
duration: 2000
})
},
sureSubmit() {
let tip_title = null
if (!this.form.store_name) {
this.onShowToast('请输入主体公司名称!')
return
tip_title = '请输入主体公司名称!'
}
if (!this.form.store_cat) {
tip_title = '请选择主营类目体类目!'
this.onShowToast(tip_title)
return
}
if (!this.form.store_address) {
tip_title = '请选择公司地址!'
this.onShowToast(tip_title)
return
}
if (!this.form.store_brand) {
tip_title = '请输入合作品牌!'
this.onShowToast(tip_title)
return
}
if (!this.brand_name) {
tip_title = '请选择代理入驻!'
this.onShowToast(tip_title)
return
}
if (!this.authorize_name) {
tip_title = '请选择一二级授权!'
}
if (!this.rate_name) {
tip_title = '请选择可否含税!'
this.onShowToast(tip_title)
return
}
if (!this.form.user_name) {
tip_title = '请输入联系人姓名!'
this.onShowToast(tip_title)
return
}
if (!this.form.user_position) {
tip_title = '请选择联系人职位!'
this.onShowToast(tip_title)
return
}
if (!this.form.user_mobile) {
tip_title = '请输入联系人手机号!'
this.onShowToast(tip_title)
return
}
if (this.form.user_mobile && (!/^\+?\d[\d -]{8,12}\d/.test(this.form.user_mobile))) {
tip_title = '手机号格式不正确!'
this.onShowToast(tip_title)
return
}
if (!this.form.user_wx) {
tip_title = '请输入联系人微信!'
this.onShowToast(tip_title)
return
}
if (!this.form.user_email) {
tip_title = '请输入联系人邮箱!'
this.onShowToast(tip_title)
return
}
if (!this.form.store_model) {
tip_title = '请选择仓库模式!'
this.onShowToast(tip_title)
return
}
if (!this.send_name) {
tip_title = '请选择周末是否发货!'
this.onShowToast(tip_title)
return
}
if (!this.factory_name) {
tip_title = '请选择是否自有工厂!'
this.onShowToast(tip_title)
return
}
if (!this.offline_name) {
tip_title = '请选择是否有线下渠道'
this.onShowToast(tip_title)
return
}
if (!this.shop_name) {
tip_title = '请选择是否有电商店铺!'
this.onShowToast(tip_title)
return
}
let plat_form = []
this.btnList.map(item => {
@ -447,21 +407,19 @@ export default {
this.form.store_type = plat_form
if (plat_form.length == 0 && this.form.has_online_shop == 1) {
tip_title = '请选择电商平台!'
this.onShowToast(tip_title)
}
if (tip_title != null) {
uni.showToast({
title: tip_title,
icon: 'none',
duration: 2000
})
return
}
help.joinStore(this.form)
.then(res => {
if (res.status) {
this.popShow = true
this.form = this.$options.data().form
this.send_name = ''
this.factory_name = ''
this.offline_name = ''
this.shop_name = ''
this.btnList.map(item => {
item.active = false
})
} else {
uni.showToast({
title: '入驻失败',
@ -471,6 +429,14 @@ export default {
}
})
.finally(() => {
this.form = this.$options.data().form
this.send_name = ''
this.factory_name = ''
this.offline_name = ''
this.shop_name = ''
this.btnList.map(item => {
item.active = false
})
})
},
}

@ -1,59 +1,61 @@
<template>
<view>
<view class="order-tab">
<view :class="OrderType == 0 ? 'tab action' : 'tab'" @click="onOrderTab(0)">
<view :class="OrderType==0?'tab action':'tab'" @click="onOrderTab(0)">
<text>我要反馈</text>
<text class="line"></text>
</view>
<view :class="OrderType == 1 ? 'tab action' : 'tab'" @click="onOrderTab(1)">
<view :class="OrderType==1?'tab action':'tab'" @click="onOrderTab(1)">
<text>反馈公示</text>
<text class="line"></text>
</view>
<view :class="OrderType == 2 ? 'tab action' : 'tab'" @click="onOrderTab(2)">
<view :class="OrderType==2?'tab action':'tab'" @click="onOrderTab(2)">
<text>我的反馈</text>
<text class="line"></text>
</view>
</view>
<view class="section1" v-if="OrderType == 0">
<view class="section1" v-if="OrderType==0">
<u-form :model="form" ref="uForm">
<view class="section1Item">
<u-form-item label="反馈类型" label-width="170">
<u-form-item label="反馈类型" label-width="150">
<u-radio-group v-model="form.type">
<u-radio active-color="#FF4434" v-for="(item, index) in checkboxList1" :key="index"
:name="item.name">
{{ item.name }}
{{item.name}}
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item label="反馈类型" label-width="170">
<u-form-item label="反馈类型" label-width="150">
<u-radio-group v-model="form.shop">
<u-radio active-color="#FF4434" v-for="(item, index) in checkboxList2" :key="index"
:name="item.name">
{{ item.name }}
{{item.name}}
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item label="反馈类型" label-width="170" @click="typeShow = true">
<u-form-item label="门店" label-width="150" @click="typeShow = true">
<u-input v-model="form.shopText" placeholder="请选择门店" type="select" @click="typeShow = true" />
<u-action-sheet :list="shopList" :cancel-btn="false" v-model="typeShow"
@click="actionSheetCallback"></u-action-sheet>
</u-form-item>
<u-form-item label="投诉内容" required label-width="150" label-position="top">
<u-form-item label="投诉内容" label-width="150" label-position="top">
<u-input v-model="form.comment" class="textarea" placeholder="请填写投诉内容" type="textarea" />
</u-form-item>
<u-upload :fileList="finishImageList" :previewFullImage="true" @afterRead="afterRead" :maxCount="8"
width="180" height="180" upload-text="上传照片" @delete="deletePic" name="1" multiple></u-upload>
</view>
<view class="section1Item" style="margin-top:20rpx;">
<u-form-item label="您的称呼" label-width="170">
<u-input placeholder="请输入您的称呼" v-model="form.name" />
<u-form-item label="您的称呼" label-width="150">
<u-input placeholder="请填写" v-model="form.name" />
</u-form-item>
<u-form-item label="手机号码" label-width="170">
<u-input placeholder="请输入手机号" v-model="form.phone" />
<u-form-item label="手机号码" label-width="150">
<u-input placeholder="请填写" v-model="form.phone" />
</u-form-item>
</view>
</u-form>
@ -66,82 +68,86 @@
提交
</view>
</view>
<view class="section2" v-if="OrderType == 1 && feedBackList.length > 0">
<view class="feedShow" v-for="(item, index) in feedBackList" :key="index">
<view class="section2" v-if="OrderType==1">
<view class="feedShow" v-for="(item,index) in feedBackList" :key="index">
<view class="feedbackItem">
<view class="statusfb">
<text v-if="item.status==0">待处理</text>
<text v-if="item.status==1">已完成</text>
</view>
<view class="feedbackContent">
<view class="fbTitle">
<view class="fbFlag">
<text v-if="item.type == 1">投诉</text>
<text v-if="item.type == 2">建议</text>
<text v-if="item.type == 3">表扬</text>
<text v-if="item.type==1">投诉</text>
<text v-if="item.type==2">建议</text>
<text v-if="item.type==3">表扬</text>
</view>
<view class="fbTitleText">
{{ item.shop_name }}
</view>
<view class="statusfb">
<text v-if="item.status == 0">待处理</text>
<text v-if="item.status == 1">已完成</text>
{{item.store_name}}
</view>
</view>
<u-read-more showHeight="160" textIndent="0" fontSize="26rpx" color="#9E9E9E" :toggle="true"
close-text="展开">
<rich-text v-if="index != 0" :nodes="item.content"></rich-text>
<rich-text v-else
nodes="投诉内容投诉内容投诉内容投诉内容投诉内容投诉内容投诉内容投诉内容投诉内容投诉内容投诉内容投诉内容投诉内容投诉内容投诉内容投诉内容投诉内容"></rich-text>
<u-read-more show-height="150" color="#9E9E9E" :toggle="true" close-text="展开">
<rich-text :nodes="item.content"></rich-text>
</u-read-more>
<view class="timefb">
{{ item.created_at }}
{{item.created_at}}
</view>
</view>
<view class="feedbackResult">
<u-collapse>
<u-collapse-item :open="true" title="处理结果">
<u-form :model="item" ref="item" class="selfForm">
<u-form-item label="处理时间:" label-width="150" prop="time">
{{ item.replay_at }}
<u-collapse-item title="处理结果">
<u-form :model="item" ref="item">
<u-form-item label="处理时间" label-width="150" prop="time">
{{item.replay_at}}
</u-form-item>
<u-form-item label="反馈内容:" label-width="150" prop="feedback">
{{ item.content }}
<u-form-item label="反馈内容" label-width="150" prop="feedback">
{{item.content}}
</u-form-item>
</u-form>
</u-collapse-item>
</u-collapse>
</view>
</view>
</view>
</view>
<view class="section2" v-if="OrderType == 2 && feedBackList.length > 0">
<view class="feedShow" style="padding: 0;" v-for="(item, index) in feedBackList" :key="index">
<view class="section2" v-if="OrderType==2">
<view class="feedShow" v-for="(item,index) in feedBackList" :key="index">
<view class="feedbackItem">
<view class="feedbackResult">
<u-collapse>
<u-collapse-item :open="true" title="处理结果">
<u-form :model="item" ref="item" class="selfForm">
<u-form-item label="处理时间:" label-width="150" prop="time">
{{ item.replay_at }}
<u-form :model="item" ref="item">
<u-form-item label="处理时间" label-width="150" prop="time">
{{item.replay_at}}
</u-form-item>
<u-form-item label="反馈内容:" label-width="150" prop="feedback">
{{ item.content }}
<u-form-item label="反馈内容" label-width="150" prop="feedback">
{{item.content}}
</u-form-item>
</u-form>
</u-collapse-item>
</u-collapse>
</view>
</view>
</view>
<view class="empty" v-if="OrderType == 2">
<image class="emptyImg" :src="$picUrl + '/static/news1/feedbackempty.png'" mode="widthFix"></image>
<!-- <view class="empty">
<image src="/static/news1/feedbackempty.png" mode="widthFix"></image>
<view class="emptytext">
还没有反馈内容
</view>
</view> -->
</view>
</view>
</template>
<script>
import * as feedback from '@/api/feedback'
export default {
import * as feedback from '@/api/feedback'
export default {
data() {
return {
OrderType: 0,
@ -212,22 +218,6 @@ export default {
},
submit() {
const that = this
if (that.form.comment == '') {
uni.showToast({
title: '请填写投诉内容!',
icon: 'none',
duration: 2000
})
return
}
if (this.form.phone && (!/^\+?\d[\d -]{8,12}\d/.test(this.form.phone))) {
uni.showToast({
title: '手机号格式不正确!',
icon: 'none',
duration: 2000
})
return
}
let params = {
shop_id: that.shop_id,
type: that.form.type,
@ -238,8 +228,6 @@ export default {
feedback.add(params)
.then(res => {
that.$toast(res.message)
that.shop_id = ''
that.form = that.$options.data().form
})
.catch(reject)
})
@ -250,7 +238,6 @@ export default {
*/
onOrderTab(type) {
this.OrderType = type;
this.feedBackList = []
if (type != 0) {
this.getFeedBack(type)
}
@ -260,7 +247,7 @@ export default {
//
const that = this
let params = {
is_my: 0,
is_my: '',
page: that.page
}
params.is_my = type == 1 ? 0 : 1
@ -275,7 +262,7 @@ export default {
})
},
actionSheetCallback(index) {
console.log(index, this.shopList)
console.log(index,this.shopList)
this.form.shopText = this.shopList[index].text;
this.shop_id = this.shopList[index].id
},
@ -313,27 +300,27 @@ export default {
uploadFilePromise(url) {
return new Promise((resolve, reject) => {
let a = uni.uploadFile({
url: this.baseUrl + '/api/common/upload', //
url: this.baseUrl+'/api/common/upload', //
filePath: url,
name: 'file',
formData: {
user: 'test',
token: getToken()
token:getToken()
},
success: (res) => {
if (JSON.parse(res.data).code == 1) {
if(JSON.parse(res.data).code==1){
setTimeout(() => {
this.finishImageList.push({ url: JSON.parse(res.data).data.fullurl, path: JSON.parse(res.data).data.url })
this.finishImageList.push({url:JSON.parse(res.data).data.fullurl,path:JSON.parse(res.data).data.url})
resolve(res.data)
}, 1000)
} else {
}else{
uni.$u.toast(JSON.parse(res.data).msg)
resolve(res.data)
}
},
fail: (res) => {
console.log(res, "rrr")
console.log(res,"rrr")
}
});
})
@ -344,19 +331,19 @@ export default {
this.finishImageList.splice(event.index, 1)
},
}
}
}
</script>
<style scoped lang="scss">
page {
page {
min-height: 100%;
width: 100%;
background-color: #F7F8FA;
}
}
/* 订单tab */
.order-tab {
/* 订单tab */
.order-tab {
position: fixed;
left: 0;
@ -402,22 +389,17 @@ page {
}
}
}
.selfForm {
::v-deep .u-form-item {
padding: 0;
}
}
.section1 {
.section1 {
border: 1px solid transparent;
.section1Item {
background-color: #fff;
border-radius: 4px 4px 4px 4px;
margin: 120rpx 30rpx 30rpx 30rpx;
padding: 20rpx 46rpx;
padding: 10rpx 40rpx;
}
::v-deep .u-form-item--left__content__label {
@ -431,12 +413,13 @@ page {
border: none;
}
// .textarea {
// height: 258rpx;
// border-radius: 3px;
// border: solid 1upx #F7F8FA;
.textarea {
height: 250rpx;
background: #F7F8FA;
border-radius: 3px 3px 3px 3px;
opacity: 1;
// }
}
::v-deep .u-input__textarea {
padding: 26rpx;
@ -447,7 +430,7 @@ page {
margin: 16rpx 30rpx 30rpx 30rpx;
.introText {
font-size: 26rpx;
font-size: 24rpx;
color: #C5C6C8;
margin-top: 16rpx;
line-height: 40rpx;
@ -468,15 +451,15 @@ page {
text-align: center;
line-height: 100rpx;
}
}
}
.section2 {
.section2 {
min-height: 100%;
padding: 120rpx 30rpx 30rpx 30rpx;
.feedShow {
padding: 30rpx 0;
border-radius: 4px;
padding: 30rpx;
border-radius: 4px 4px 4px 4px;
background-color: #fff;
margin-bottom: 16rpx;
}
@ -484,36 +467,36 @@ page {
.feedbackItem {
position: relative;
margin-bottom: 30rpx;
// border:1px solid yellow;
.statusfb {
position: absolute;
top: 4rpx;
right: -30rpx;
width: 100rpx;
right: 0;
width: 92rpx;
height: 44rpx;
line-height: 44rpx;
text-align: center;
border-radius: 22rpx 0 0 22rpx;
background-color: #EEFAF6;
font-size: 26rpx;
font-family: PingFang SC, PingFang SC;
font-weight: bold;
font-weight: 500;
color: #2DC37F;
top: 40rpx;
}
.feedbackContent {
padding: 0 30rpx 30rpx;
border-bottom: 1px solid #eee;
padding-bottom: 30rpx;
border-bottom: 1px solid #A0A0A0;
.fbTitle {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 20rpx;
width: calc(100% - 100rpx);
// width: calc(100% - 100rpx);
.fbFlag {
// width: 54rpx;
// height: 44rpx;
// line-height: 44rpx;
background: #FFFFFF;
border-radius: 3px;
opacity: 1;
@ -528,32 +511,22 @@ page {
.fbTitleText {
flex: 1;
font-size: 28rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: #000;
font-weight: bold;
font-size: 500;
margin-left: 20rpx;
}
}
.timefb {
margin-top: 20rpx;
font-size: 24rpx;
color: #A0A0A0;
}
}
}
.feedbackResult {
padding: 0 30rpx;
::v-deep .u-form-item--left__content__label {
color: #A6A6A6;
}
@ -572,18 +545,17 @@ page {
}
}
.empty {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
height: calc(100vh - 102rpx);
}
.emptyImg {
.empty {
text-align: center;
position: relative;
top: 150rpx;
image {
width: 210rpx;
height: auto;
}
.emptytext {
@ -591,8 +563,9 @@ page {
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #717171;
margin-top: 36rpx;
}
}
}
}
</style>

@ -172,8 +172,8 @@ export default {
},
onOut() {
uni.showModal({
title: '您是否要注销账号?',
content: '',
title: '友情提示',
content: '确认要注销吗?',
success(o) {
if (o.confirm) {
uni.removeStorage('token');

Loading…
Cancel
Save