241 lines
8.1 KiB
Vue
241 lines
8.1 KiB
Vue
|
<template>
|
|||
|
<div class="evaluate">
|
|||
|
<div class="goods">
|
|||
|
<div class="goods-hd lighter flex">
|
|||
|
<div class="info flex flex-1">商品信息</div>
|
|||
|
<div class="price flex row-center">单价</div>
|
|||
|
<div class="num flex row-center">数量</div>
|
|||
|
<div class="total flex row-center">合计</div>
|
|||
|
</div>
|
|||
|
<div class="goods-con">
|
|||
|
<div class="goods-item flex ">
|
|||
|
<div class="info flex flex-1">
|
|||
|
<img class="goods-img" :src="goodsInfo.goods_item.image" alt="" />
|
|||
|
<div class="goods-info flex flex-1">
|
|||
|
<div class="goods-name line-2">
|
|||
|
{{ goodsInfo.name }}
|
|||
|
</div>
|
|||
|
<div class="sm lighter m-t-8">{{goodsInfo.spec_value_str}}</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="price flex row-center">
|
|||
|
<price-formate :price="goodsInfo.goods_price" weight="400" />
|
|||
|
</div>
|
|||
|
<div class="num flex row-center">{{ goodsInfo.goods_num }}</div>
|
|||
|
<div class="total flex row-center">
|
|||
|
<price-formate :price="goodsInfo.total_price" weight="400" />
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="evaluate-con">
|
|||
|
<div class="goods-rate">
|
|||
|
<div class="flex item">
|
|||
|
<div class="name">商品评价</div>
|
|||
|
<el-rate v-model="goodsRate" show-text text-color="#FF9E2C" :texts="goodsTexts"></el-rate>
|
|||
|
</div>
|
|||
|
<div class="flex item">
|
|||
|
<div class="name">描述相符</div>
|
|||
|
<el-rate v-model="descRate"></el-rate>
|
|||
|
</div>
|
|||
|
<div class="flex item">
|
|||
|
<div class="name">服务态度</div>
|
|||
|
<el-rate v-model="serverRate"></el-rate>
|
|||
|
</div>
|
|||
|
<div class="flex item">
|
|||
|
<div class="name">配送服务</div>
|
|||
|
<el-rate v-model="deliveryRate"></el-rate>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="evaluate-input flex">
|
|||
|
<div class="name">商品评价</div>
|
|||
|
<div>
|
|||
|
<el-input type="textarea" placeholder="收到商品您有什么想法或者反馈,用几个字来评价下商品吧~" v-model="comment"
|
|||
|
maxlength="150" :rows="6" show-word-limit resize="none">
|
|||
|
</el-input>
|
|||
|
<div class="upload m-t-16">
|
|||
|
<upload :limit="9" @success="onSuccess" />
|
|||
|
<div class="muted m-t-8">
|
|||
|
最多可上传9张图片,支持jpg、png格式,图片大小1M以内
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="submit-btn white bg-primary m-t-16 flex row-center" @click="onSubmit">
|
|||
|
提交评价
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
export default {
|
|||
|
head() {
|
|||
|
return {
|
|||
|
title: this.$store.getters.headTitle,
|
|||
|
link: [{
|
|||
|
rel: "icon",
|
|||
|
type: "image/x-icon",
|
|||
|
href: this.$store.getters.favicon,
|
|||
|
}, ],
|
|||
|
};
|
|||
|
},
|
|||
|
async asyncData({
|
|||
|
$get,
|
|||
|
query
|
|||
|
}) {
|
|||
|
const id = query.id;
|
|||
|
let {
|
|||
|
data
|
|||
|
} = await $get("goods_comment/getCommentPage", {
|
|||
|
params: {
|
|||
|
order_goods_id: id,
|
|||
|
},
|
|||
|
});
|
|||
|
return {
|
|||
|
goodsInfo: data,
|
|||
|
id,
|
|||
|
};
|
|||
|
},
|
|||
|
layout: "user",
|
|||
|
data() {
|
|||
|
return {
|
|||
|
goodsInfo: {},
|
|||
|
goodsRate: 0,
|
|||
|
descRate: 0,
|
|||
|
serverRate: 0,
|
|||
|
deliveryRate: 0,
|
|||
|
comment: "",
|
|||
|
fileList: [],
|
|||
|
goodsTexts: ["差评", "差评", "中评", "好评", "好评"],
|
|||
|
};
|
|||
|
},
|
|||
|
methods: {
|
|||
|
onSuccess(res) {
|
|||
|
console.log('res', res)
|
|||
|
this.fileList = res.map((item) => item.response.data);
|
|||
|
console.log('fileList', this.fileList)
|
|||
|
},
|
|||
|
onSubmit() {
|
|||
|
let {
|
|||
|
goodsRate,
|
|||
|
fileList,
|
|||
|
comment,
|
|||
|
deliveryRate,
|
|||
|
descRate,
|
|||
|
serverRate,
|
|||
|
} = this;
|
|||
|
let image = fileList.map((item) => item.uri);
|
|||
|
if (!goodsRate)
|
|||
|
return this.$message({
|
|||
|
message: "请对商品进行评分",
|
|||
|
type: "error",
|
|||
|
});
|
|||
|
if (!descRate)
|
|||
|
return this.$message({
|
|||
|
message: "请对描述相符进行评分",
|
|||
|
type: "error",
|
|||
|
});
|
|||
|
if (!serverRate)
|
|||
|
return this.$message({
|
|||
|
message: "请对服务态度进行评分",
|
|||
|
type: "error",
|
|||
|
});
|
|||
|
if (!deliveryRate)
|
|||
|
return this.$message({
|
|||
|
message: "请对配送服务进行评分",
|
|||
|
type: "error",
|
|||
|
});
|
|||
|
this.$post("goods_comment/addGoodsComment", {
|
|||
|
id: parseInt(this.id),
|
|||
|
goods_comment: goodsRate,
|
|||
|
service_comment: serverRate,
|
|||
|
express_comment: deliveryRate,
|
|||
|
description_comment: descRate,
|
|||
|
comment,
|
|||
|
image,
|
|||
|
order_goods_id: this.$route.query.id
|
|||
|
}).then((res) => {
|
|||
|
if (res.code == 1) {
|
|||
|
this.$message({
|
|||
|
message: "评价成功",
|
|||
|
type: "success",
|
|||
|
});
|
|||
|
setTimeout(() => {
|
|||
|
this.$router.replace({
|
|||
|
path: "/user/evaluation",
|
|||
|
// query: {
|
|||
|
// type: 2,
|
|||
|
// },
|
|||
|
});
|
|||
|
}, 1500);
|
|||
|
}
|
|||
|
});
|
|||
|
},
|
|||
|
},
|
|||
|
};
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="scss" scoped>
|
|||
|
.evaluate {
|
|||
|
width: 1010px;
|
|||
|
padding: 0 10px;
|
|||
|
|
|||
|
.goods {
|
|||
|
|
|||
|
.goods-hd,
|
|||
|
.goods-con {
|
|||
|
padding: 10px 20px;
|
|||
|
border-bottom: 1px solid #e5e5e5;
|
|||
|
|
|||
|
.goods-item {
|
|||
|
padding: 10px 0;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.info {
|
|||
|
.goods-img {
|
|||
|
width: 72px;
|
|||
|
height: 72px;
|
|||
|
margin-right: 10px;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.price,
|
|||
|
.num,
|
|||
|
.total {
|
|||
|
width: 150px;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.evaluate-con {
|
|||
|
padding: 20px;
|
|||
|
|
|||
|
.goods-rate {
|
|||
|
.item {
|
|||
|
margin-bottom: 18px;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.name {
|
|||
|
margin-right: 24px;
|
|||
|
flex: none;
|
|||
|
}
|
|||
|
|
|||
|
.evaluate-input {
|
|||
|
align-items: flex-start;
|
|||
|
|
|||
|
.el-textarea {
|
|||
|
width: 630px;
|
|||
|
}
|
|||
|
|
|||
|
.submit-btn {
|
|||
|
width: 100px;
|
|||
|
height: 32px;
|
|||
|
cursor: pointer;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</style>
|