forked from zhongyuanhaiju/uniapp
233 lines
5.8 KiB
JavaScript
233 lines
5.8 KiB
JavaScript
export default {
|
||
data() {
|
||
return {
|
||
orderId: null,
|
||
orderNo: "",
|
||
memberName: "",
|
||
memberNeadimg: "",
|
||
isAnonymous: 1, //是否匿名发布 1.匿名,0.公开
|
||
|
||
goodsList: [], //订单列表
|
||
goodsEvalList: [], //评价列表
|
||
|
||
imgList: [],
|
||
isEvaluate: 0, //判断是否为追评
|
||
|
||
flag: false, //防止重复点击 ,
|
||
evaluateConfig: {
|
||
evaluate_audit: 1,
|
||
evaluate_show: 0,
|
||
evaluate_status: 1
|
||
}
|
||
};
|
||
},
|
||
methods: {
|
||
//获取用户信息
|
||
getUserInfo() {
|
||
this.$api.sendRequest({
|
||
url: '/api/member/info',
|
||
success: res => {
|
||
if (res.code == 0) {
|
||
this.memberName = res.data.nickname;
|
||
this.memberNeadimg = res.data.headimg;
|
||
} else {
|
||
this.$util.showToast({
|
||
title: res.message
|
||
})
|
||
}
|
||
}
|
||
});
|
||
},
|
||
//获取订单信息
|
||
getOrderInfo() {
|
||
//获取订单信息
|
||
let data = {
|
||
order_id: this.orderId
|
||
};
|
||
this.$api.sendRequest({
|
||
url: '/api/order/evluateinfo',
|
||
data: data,
|
||
success: res => {
|
||
if (res.code == 0) {
|
||
this.isEvaluate = res.data.evaluate_status
|
||
this.goodsList = res.data.list;
|
||
if (this.goodsList.length) {
|
||
this.orderNo = res.data.list[0].order_no;
|
||
}
|
||
if (this.isEvaluate) {
|
||
for (let i = 0; i < res.data.list.length; i++) {
|
||
let array = [];
|
||
this.imgList.push(array)
|
||
this.goodsEvalList.push({
|
||
order_goods_id: res.data.list[i].order_goods_id,
|
||
goods_id: res.data.list[i].goods_id,
|
||
sku_id: res.data.list[i].sku_id,
|
||
again_content: "",
|
||
again_images: ""
|
||
});
|
||
}
|
||
} else {
|
||
for (let i = 0; i < res.data.list.length; i++) {
|
||
let array = [];
|
||
this.imgList.push(array)
|
||
this.goodsEvalList.push({
|
||
content: '', // 评价内容
|
||
images: "", //图片数组
|
||
scores: 5, // 评分
|
||
explain_type: 1, // 评价类型
|
||
order_goods_id: res.data.list[i].order_goods_id,
|
||
goods_id: res.data.list[i].goods_id,
|
||
sku_id: res.data.list[i].sku_id,
|
||
sku_name: res.data.list[i].sku_name,
|
||
sku_price: res.data.list[i].price,
|
||
sku_image: res.data.list[i].sku_image
|
||
});
|
||
}
|
||
}
|
||
} else {
|
||
this.$util.showToast({
|
||
title: "未获取到订单数据"
|
||
})
|
||
setTimeout(() => {
|
||
this.$util.redirectTo('/pages/order/list', {}, "redirectTo");
|
||
}, 1000)
|
||
}
|
||
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
|
||
},
|
||
fail() {
|
||
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
|
||
}
|
||
});
|
||
},
|
||
//监听评分变化
|
||
setStar(e) {
|
||
this.goodsEvalList[e.index].scores = e.value;
|
||
if (e.value >= 4) {
|
||
this.goodsEvalList[e.index].explain_type = 1;
|
||
} else if (1 < e.value && e.value < 4) {
|
||
this.goodsEvalList[e.index].explain_type = 2
|
||
} else {
|
||
this.goodsEvalList[e.index].explain_type = 3
|
||
}
|
||
},
|
||
//切换,是否匿名
|
||
isAll() {
|
||
this.isAnonymous ? this.isAnonymous = 0 : this.isAnonymous = 1
|
||
},
|
||
//添加图片
|
||
addImg(e) {
|
||
let size = this.imgList[e].length ? this.imgList[e].length : 0
|
||
this.$util.upload(6 - size, {
|
||
path: 'evaluateimg'
|
||
}, res => {
|
||
let arr = this.imgList[e]
|
||
arr = arr.concat(res);
|
||
this.imgList[e] = [];
|
||
this.$set(this.imgList, e, arr)
|
||
if (this.isEvaluate) {
|
||
this.goodsEvalList[e].again_images = this.imgList[e].toString()
|
||
} else {
|
||
this.goodsEvalList[e].images = this.imgList[e].toString()
|
||
}
|
||
});
|
||
},
|
||
//删除图片
|
||
deleteImg(i, index, j) {
|
||
this.imgList[index].splice(j, 1);
|
||
if (this.isEvaluate) {
|
||
this.goodsEvalList[index].again_images = this.imgList[index].toString()
|
||
} else {
|
||
this.goodsEvalList[index].images = this.imgList[index].toString()
|
||
}
|
||
},
|
||
// 图片预览
|
||
preview(i, j) {
|
||
let urls = this.imgList[j];
|
||
for (let k = 0; k < urls.length; k++) {
|
||
urls[k] = this.$util.img(urls[k])
|
||
}
|
||
uni.previewImage({
|
||
urls: urls,
|
||
current: i
|
||
});
|
||
},
|
||
|
||
//提交评价
|
||
save() {
|
||
if (this.evaluateConfig.evaluate_status == 0) {
|
||
this.$util.showToast({
|
||
title: "商家未开启商品评价功能"
|
||
});
|
||
return;
|
||
}
|
||
for (let i = 0; i < this.goodsEvalList.length; i++) {
|
||
if (this.isEvaluate) {
|
||
if (!this.goodsEvalList[i].again_content.trim().length) {
|
||
this.$util.showToast({
|
||
title: "商品的评价不能为空哦"
|
||
});
|
||
return;
|
||
}
|
||
} else {
|
||
if (!this.goodsEvalList[i].content.trim().length) {
|
||
this.$util.showToast({
|
||
title: "商品的评价不能为空哦"
|
||
});
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
let goodsEvaluate = JSON.stringify(this.goodsEvalList)
|
||
let data = {
|
||
order_id: this.orderId,
|
||
goods_evaluate: goodsEvaluate,
|
||
};
|
||
if (!this.isEvaluate) {
|
||
data.order_no = this.orderNo;
|
||
data.member_name = this.memberName;
|
||
data.member_headimg = this.memberNeadimg;
|
||
data.is_anonymous = this.isAnonymous;
|
||
}
|
||
if (this.flag) return;
|
||
this.flag = true;
|
||
this.$api.sendRequest({
|
||
url: this.isEvaluate ? '/api/goodsevaluate/again' : '/api/goodsevaluate/add',
|
||
data: data,
|
||
success: res => {
|
||
if (res.code == 0) {
|
||
this.$util.showToast({
|
||
title: "评价成功"
|
||
});
|
||
setTimeout(() => {
|
||
this.$util.redirectTo('/pages/order/list', {}, "redirectTo");
|
||
}, 1000);
|
||
} else {
|
||
this.$util.showToast({
|
||
title: res.message
|
||
});
|
||
this.flag = false;
|
||
}
|
||
},
|
||
fail: res => {
|
||
this.flag = false;
|
||
}
|
||
});
|
||
},
|
||
imageError(index) {
|
||
this.goodsList[index].sku_image = this.$util.getDefaultImage().goods;
|
||
this.$forceUpdate();
|
||
},
|
||
getEvaluateConfig() {
|
||
this.$api.sendRequest({
|
||
url: '/api/goodsevaluate/config',
|
||
success: res => {
|
||
if (res.code == 0) {
|
||
var data = res.data;
|
||
this.evaluateConfig = data;
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
};
|