|
|
@@ -13,8 +13,7 @@ |
|
|
|
:src="`${$imgUrl}common/icon-close.png`" @click="removeTag1(item)" /> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<image |
|
|
|
:src="`${$imgUrl}common/${state.showTagPop1 ? 'arror-top.png' : 'arror-down.png'}`" |
|
|
|
<image :src="`${$imgUrl}common/${state.showTagPop1 ? 'arror-top.png' : 'arror-down.png'}`" |
|
|
|
style="width: 40rpx;height: 40rpx;" @click="state.showTagPop1 = !state.showTagPop1"></image> |
|
|
|
</view> |
|
|
|
<textarea class="input-box" v-model="state.handle.content" placeholder-class="text-hint" |
|
|
@@ -44,8 +43,7 @@ |
|
|
|
:src="`${$imgUrl}common/icon-close.png`" @click="removeTag(item)" /> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<image |
|
|
|
:src="`${$imgUrl}common/${state.showTagPop ? 'arror-top.png' : 'arror-down.png'}`" |
|
|
|
<image :src="`${$imgUrl}common/${state.showTagPop ? 'arror-top.png' : 'arror-down.png'}`" |
|
|
|
style="width: 40rpx;height: 40rpx;" @click="state.showTagPop = !state.showTagPop"></image> |
|
|
|
</view> |
|
|
|
<textarea class="input-box" v-model="state.user.content" placeholder-class="text-hint" |
|
|
@@ -56,43 +54,45 @@ |
|
|
|
<view class="uni-list" style='font-size:32rpx'> |
|
|
|
<view class="uni-list-cell uni-list-cell-pd"> |
|
|
|
<view class="uni-list-cell-db">是否匿名</view> |
|
|
|
<switch checked style="transform:scale(0.7)" @change="switchChange"/> |
|
|
|
<switch checked style="transform:scale(0.7)" @change="switchChange" /> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="btn"> |
|
|
|
<submit-button @submit="publish" title="发布"></submit-button> |
|
|
|
<submit-button @submit="publish" title="发布"></submit-button> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 选择标签弹窗 业务员办理满意度弹框--> |
|
|
|
|
|
|
|
<!-- 选择标签弹窗 业务员办理满意度弹框--> |
|
|
|
<u-popup v-model="state.showTagPop1" mode="bottom" height="60%"> |
|
|
|
<view v-if="state.showTagPop1"> |
|
|
|
<tag-popup :selTags="state.handle.tagList" :tagAllList="state.tagAllList" @cancel="state.showTagPop1 = !state.showTagPop1" @confirm="confirmSelectTag1"></tag-popup> |
|
|
|
<tag-popup :selTags="state.handle.tagList" :tagAllList="state.tagAllList" |
|
|
|
@cancel="state.showTagPop1 = !state.showTagPop1" @confirm="confirmSelectTag1"></tag-popup> |
|
|
|
</view> |
|
|
|
</u-popup> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 选择标签弹窗 业务员满意度弹框--> |
|
|
|
<u-popup v-model="state.showTagPop" mode="bottom" height="60%"> |
|
|
|
<view v-if="state.showTagPop"> |
|
|
|
<tag-popup :selTags="state.user.tagList" :tagAllList="state.tagAllList" @cancel="state.showTagPop = !state.showTagPop" @confirm="confirmSelectTag"></tag-popup> |
|
|
|
<tag-popup :selTags="state.user.tagList" :tagAllList="state.tagAllList" |
|
|
|
@cancel="state.showTagPop = !state.showTagPop" @confirm="confirmSelectTag"></tag-popup> |
|
|
|
</view> |
|
|
|
</u-popup> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script setup lang="ts"> |
|
|
|
import evaluateStar from "./components/evaluate-star.vue" |
|
|
|
import {reactive} from "vue"; |
|
|
|
import {confirm, isBlank, msg} from "@/utils/utils"; |
|
|
|
import { reactive } from "vue"; |
|
|
|
import { confirm, isBlank, msg } from "@/utils/utils"; |
|
|
|
import tagPopup from "./components/popup-order-evaluate-tag"; |
|
|
|
import { request } from "@/utils/network/request"; |
|
|
|
import { orderDetail,orderEvaluateTag,salesmanMsg,addEvaluation,judageSalesman} from "@/utils/network/api"; |
|
|
|
import {onLoad} from "@dcloudio/uni-app"; |
|
|
|
import { orderDetail, orderEvaluateTag, salesmanMsg, addEvaluation, judageSalesman } from "@/utils/network/api"; |
|
|
|
import { onLoad } from "@dcloudio/uni-app"; |
|
|
|
import { stringToJson } from "@/utils/network/encryption"; |
|
|
|
import { getItem, StorageKeys } from "@/utils/storage"; |
|
|
|
|
|
|
|
const state = reactive({ |
|
|
|
orderInfo:{} as any, //订单信息 |
|
|
|
orderInfo: {} as any, //订单信息 |
|
|
|
haveUser: false, //存在有业务员发起的业务展示业务员评价模块 |
|
|
|
showTagPop1:false, //第一个弹框 |
|
|
|
showTagPop1: false, //第一个弹框 |
|
|
|
showTagPop: false, //显示标签选择弹窗 |
|
|
|
handle: { //办理满意度 |
|
|
|
score: 0, //星级得分 最高5分,0.5小数点 2.5分及以下为差评 2.5以上4.0以下为中评 4.0及4.0以上为好评(必选) |
|
|
@@ -104,12 +104,12 @@ |
|
|
|
content: '', //评价内容 |
|
|
|
tagList: [], //已选择的评价标签列表 |
|
|
|
}, |
|
|
|
tagAllList:[], |
|
|
|
orderId:'', //订单ID |
|
|
|
id:'', |
|
|
|
isAnonymity:1, //是否匿名 默认匿名 |
|
|
|
tagAllList: [], |
|
|
|
orderId: '', //订单ID |
|
|
|
id: '', |
|
|
|
isAnonymity: 1, //是否匿名 默认匿名 |
|
|
|
}) |
|
|
|
/* 确认选择tag 满意度 */ |
|
|
|
/* 确认选择tag 满意度 */ |
|
|
|
const confirmSelectTag1 = (selectTag) => { |
|
|
|
state.showTagPop1 = !state.showTagPop1 |
|
|
|
state.handle.tagList = [...selectTag]; |
|
|
@@ -119,8 +119,8 @@ |
|
|
|
state.showTagPop = !state.showTagPop |
|
|
|
state.user.tagList = [...selectTag]; |
|
|
|
} |
|
|
|
/* 删除评价标签 满意度*/ |
|
|
|
const removeTag1 = (item: any) => { |
|
|
|
/* 删除评价标签 满意度*/ |
|
|
|
const removeTag1 = (item : any) => { |
|
|
|
state.handle.tagList.map((tag, index) => { |
|
|
|
if (tag.id === item.id) { |
|
|
|
state.handle.tagList.splice(index, 1) |
|
|
@@ -128,7 +128,7 @@ |
|
|
|
}) |
|
|
|
} |
|
|
|
/* 删除评价标签 业务员*/ |
|
|
|
const removeTag = (item: any) => { |
|
|
|
const removeTag = (item : any) => { |
|
|
|
state.user.tagList.map((tag, index) => { |
|
|
|
if (tag.id === item.id) { |
|
|
|
state.user.tagList.splice(index, 1) |
|
|
@@ -140,7 +140,7 @@ |
|
|
|
const publish = (e) => { |
|
|
|
addService(); |
|
|
|
} |
|
|
|
const addService = ()=>{ |
|
|
|
const addService = () => { |
|
|
|
if (state.handle.score === 0) { |
|
|
|
msg('请对业务员办理满意度进行打分!'); |
|
|
|
return; |
|
|
@@ -158,36 +158,36 @@ |
|
|
|
state.handle.content = "默认好评"; |
|
|
|
} |
|
|
|
} |
|
|
|
const tagListArr=[]; |
|
|
|
for(var i=0;i<state.handle.tagList.length;i++){ |
|
|
|
const tagListArr = []; |
|
|
|
for (var i = 0; i < state.handle.tagList.length; i++) { |
|
|
|
tagListArr.push(state.handle.tagList[i].label) |
|
|
|
} |
|
|
|
const options = { |
|
|
|
type: 2, |
|
|
|
data: { |
|
|
|
"orderId":state.orderId, |
|
|
|
"serviceType":"service", |
|
|
|
"score":state.handle.score, |
|
|
|
"message":tagListArr.toString(), |
|
|
|
"suggestion":state.handle.content, |
|
|
|
"isAnonymity":state.isAnonymity |
|
|
|
"orderId": state.orderId, |
|
|
|
"serviceType": "service", |
|
|
|
"score": state.handle.score, |
|
|
|
"message": tagListArr.toString(), |
|
|
|
"suggestion": state.handle.content, |
|
|
|
"isAnonymity": state.isAnonymity |
|
|
|
}, |
|
|
|
method: 'POST', |
|
|
|
showLoading: true, |
|
|
|
method: 'POST', |
|
|
|
showLoading: true, |
|
|
|
} |
|
|
|
request(addEvaluation,options).then((res)=>{ |
|
|
|
request(addEvaluation, options).then((res) => { |
|
|
|
// 是否对业务员进行评价 |
|
|
|
if(state.haveUser){ |
|
|
|
if (state.haveUser) { |
|
|
|
addStaff(); |
|
|
|
}else{ |
|
|
|
confirm('您的评价已发布成功!',()=>{ |
|
|
|
} else { |
|
|
|
confirm('您的评价已发布成功!', () => { |
|
|
|
uni.$emit('refreshOrder'); |
|
|
|
uni.navigateBack(); |
|
|
|
},'发布成功',false); |
|
|
|
}, '发布成功', false); |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
const addStaff = ()=>{ |
|
|
|
const addStaff = () => { |
|
|
|
if (state.haveUser && state.user.score === 0) { |
|
|
|
msg('请对业务员进行打分!'); |
|
|
|
return; |
|
|
@@ -201,63 +201,63 @@ |
|
|
|
state.user.content = "默认好评"; |
|
|
|
} |
|
|
|
} |
|
|
|
const tagListArr=[]; |
|
|
|
for(var i=0;i<state.user.tagList.length;i++){ |
|
|
|
const tagListArr = []; |
|
|
|
for (var i = 0; i < state.user.tagList.length; i++) { |
|
|
|
tagListArr.push(state.user.tagList[i].label) |
|
|
|
} |
|
|
|
const options = { |
|
|
|
type: 2, |
|
|
|
data: { |
|
|
|
"orderId":state.orderId, |
|
|
|
"serviceType":"staff", |
|
|
|
"score":state.user.score, |
|
|
|
"message":tagListArr.toString(), |
|
|
|
"suggestion":state.user.content, |
|
|
|
"isAnonymity":state.isAnonymity |
|
|
|
"orderId": state.orderId, |
|
|
|
"serviceType": "staff", |
|
|
|
"score": state.user.score, |
|
|
|
"message": tagListArr.toString(), |
|
|
|
"suggestion": state.user.content, |
|
|
|
"isAnonymity": state.isAnonymity |
|
|
|
}, |
|
|
|
method: 'POST', |
|
|
|
showLoading: true, |
|
|
|
method: 'POST', |
|
|
|
showLoading: true, |
|
|
|
} |
|
|
|
request(addEvaluation,options).then((res)=>{ |
|
|
|
confirm('您的评价已发布成功!',()=>{ |
|
|
|
request(addEvaluation, options).then((res) => { |
|
|
|
confirm('您的评价已发布成功!', () => { |
|
|
|
uni.$emit('refreshOrder'); |
|
|
|
uni.navigateBack(); |
|
|
|
},'发布成功',false); |
|
|
|
}, '发布成功', false); |
|
|
|
}) |
|
|
|
} |
|
|
|
/* 获取业务员标签ID */ |
|
|
|
const getTagIds = () => { |
|
|
|
const list = []; |
|
|
|
state.user.tagList.map((tag)=>{ |
|
|
|
state.user.tagList.map((tag) => { |
|
|
|
list.push(tag.id); |
|
|
|
}); |
|
|
|
return list; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 订单查询业务员简单信息 */ |
|
|
|
const getSalesmanMsg = (id) => { |
|
|
|
const options = { |
|
|
|
type: 2, |
|
|
|
data: {"id": id}, |
|
|
|
data: { "id": id }, |
|
|
|
method: 'POST', |
|
|
|
showLoading: true, |
|
|
|
} |
|
|
|
request(salesmanMsg, options).then((res) => { |
|
|
|
console.log("订单查询业务员简单信息",stringToJson(res.bizContent)) |
|
|
|
console.log("订单查询业务员简单信息", stringToJson(res.bizContent)) |
|
|
|
state.orderInfo = stringToJson(res.bizContent); |
|
|
|
}) |
|
|
|
} |
|
|
|
// 获取是否有业务员 |
|
|
|
const isSalesman=(orderId)=>{ |
|
|
|
const isSalesman = (orderId) => { |
|
|
|
const options = { |
|
|
|
type: 2, |
|
|
|
data: {"orderId": orderId}, |
|
|
|
data: { "orderId": orderId }, |
|
|
|
method: 'POST', |
|
|
|
showLoading: true, |
|
|
|
} |
|
|
|
request(judageSalesman, options).then((res) => { |
|
|
|
console.log("获取是否有业务员",stringToJson(res.bizContent)) |
|
|
|
console.log("获取是否有业务员", stringToJson(res.bizContent)) |
|
|
|
state.haveUser = stringToJson(res.bizContent); |
|
|
|
getSalesmanMsg(state.id); |
|
|
|
}) |
|
|
@@ -271,22 +271,23 @@ |
|
|
|
showLoading: true, |
|
|
|
} |
|
|
|
request(orderEvaluateTag, options).then((res) => { |
|
|
|
|
|
|
|
state.tagAllList = stringToJson(res.bizContent); |
|
|
|
}) |
|
|
|
} |
|
|
|
// 是否匿名 |
|
|
|
const switchChange=(e)=>{ |
|
|
|
const switchChange = (e) => { |
|
|
|
console.log('switch1 发生 change 事件,携带值为', e.detail.value); |
|
|
|
if(e.detail.value){ |
|
|
|
state.isAnonymity=1 |
|
|
|
}else{ |
|
|
|
state.isAnonymity=0 |
|
|
|
if (e.detail.value) { |
|
|
|
state.isAnonymity = 1 |
|
|
|
} else { |
|
|
|
state.isAnonymity = 0 |
|
|
|
} |
|
|
|
} |
|
|
|
onLoad((option) => { |
|
|
|
console.log("option",option) |
|
|
|
state.orderId=option.orderId; |
|
|
|
state.id=option.id; |
|
|
|
console.log("option", option) |
|
|
|
state.orderId = option.orderId; |
|
|
|
state.id = option.id; |
|
|
|
isSalesman(option.orderId); //获取是否有业务员 |
|
|
|
getEnvTag(); |
|
|
|
}) |
|
|
@@ -380,6 +381,7 @@ |
|
|
|
margin-top: 40rpx; |
|
|
|
padding-bottom: 20rpx; |
|
|
|
border-bottom: 1rpx solid #DCDCDC; |
|
|
|
|
|
|
|
.tags { |
|
|
|
flex-wrap: wrap; |
|
|
|
|
|
|
@@ -416,11 +418,12 @@ |
|
|
|
.btn { |
|
|
|
margin: 60rpx 40rpx 0rpx; |
|
|
|
} |
|
|
|
.uni-list-cell{ |
|
|
|
|
|
|
|
.uni-list-cell { |
|
|
|
display: flex; |
|
|
|
margin: 10rpx auto; |
|
|
|
width: 90%; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
} |
|
|
|
</style> |
|
|
|
</style> |