完成用户端评价
This commit is contained in:
parent
60fea0b715
commit
f0a4f02647
|
@ -291,13 +291,17 @@ export default {
|
|||
count: {
|
||||
service: {
|
||||
url: "/wxapp/index/seeworkerevaluation",
|
||||
showLoading: true,
|
||||
},
|
||||
worker: {
|
||||
url: "/wxapp/orderb/seeworkerevaluation",
|
||||
}
|
||||
},
|
||||
list: {
|
||||
service: {
|
||||
url: "/wxapp/index/goodsevaluation",
|
||||
showLoading: true,
|
||||
},
|
||||
worker: {
|
||||
url: "/wxapp/orderb/allevaluation",
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -17,6 +17,21 @@ export default {
|
|||
return reject(response.msg);
|
||||
}).catch(e => { });
|
||||
});
|
||||
},
|
||||
worker(id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
prototype.$request({
|
||||
api: "appraise.count.worker",
|
||||
data: {
|
||||
id: id,
|
||||
}
|
||||
}).then(response => {
|
||||
if (response.code == 1) {
|
||||
return resolve(response.data);
|
||||
}
|
||||
return reject(response.msg);
|
||||
}).catch(e => { });
|
||||
});
|
||||
}
|
||||
},
|
||||
list: {
|
||||
|
@ -50,6 +65,37 @@ export default {
|
|||
return reject(response.msg);
|
||||
}).catch(e => { });
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 师傅评价
|
||||
*/
|
||||
worker(data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
prototype.$request({
|
||||
api: "appraise.list.worker",
|
||||
data: data
|
||||
}).then(response => {
|
||||
if (response.code == 1) {
|
||||
let list = [];
|
||||
response.data.forEach((data) => {
|
||||
list.push({
|
||||
id: data.id,
|
||||
avatar: data.u_avatar,
|
||||
nickname: data.u_name,
|
||||
createTime: data.time,
|
||||
tags: data.msg.split(","),
|
||||
area: "-",
|
||||
worker: data.wid,
|
||||
grade: data.score,
|
||||
images: data.img,
|
||||
content: data.desc,
|
||||
});
|
||||
});
|
||||
return resolve(list);
|
||||
}
|
||||
return reject(response.msg);
|
||||
}).catch(e => { });
|
||||
});
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
@ -7,9 +7,12 @@ export default {
|
|||
case 0: return ['待审核', '#ff0000'];
|
||||
case 1: return ['普通师傅', '#bfbfbf'];
|
||||
case 2: return ['入驻师傅', '#d9a019'];
|
||||
default: return ['未知'];
|
||||
default: return ['未知', '#000000'];
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 师傅详情
|
||||
*/
|
||||
workerDetail(uid) {
|
||||
return new Promise((resolve, reject) => {
|
||||
prototype.$request({
|
||||
|
@ -18,7 +21,25 @@ export default {
|
|||
uid: uid,
|
||||
}
|
||||
}).then(response => {
|
||||
console.log(response);
|
||||
if (response.code == 1) {
|
||||
let worker = {
|
||||
times: response.data.count,
|
||||
favorableRate: response.data.good,
|
||||
grade: response.data.score,
|
||||
worker: {},
|
||||
}
|
||||
if (prototype.$utils.isType(response.data.worker, "object")) {
|
||||
worker.worker = {
|
||||
id: response.data.worker.id,
|
||||
uid: response.data.worker.uid,
|
||||
name: response.data.worker.name,
|
||||
type: response.data.worker.status,
|
||||
avatar: response.data.worker.avatar,
|
||||
}
|
||||
}
|
||||
return resolve(worker);
|
||||
}
|
||||
return reject(response.msg);
|
||||
}).catch(e => { });
|
||||
});
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<text class="title">报价金额</text>
|
||||
<text class="number">¥ {{ utils.formatNumber(item.price, 2) }}</text>
|
||||
</view>
|
||||
<view class="detail" @click="workerDetail(item.id)">
|
||||
<view class="detail" @click="workerDetail(item.uid)">
|
||||
<worker-item :data="item" :showPrice="false" />
|
||||
</view>
|
||||
<view class="action">
|
||||
|
@ -230,7 +230,7 @@ export default {
|
|||
*/
|
||||
showWorker() {
|
||||
if (this.$utils.isType(this.order.worker, "object") && this.$utils.isType(this.order.worker.id, "number")) {
|
||||
this.$utils.toPage("/pages/worker/detail?id=" + this.order.worker.id);
|
||||
this.workerDetail(this.order.worker.uid);
|
||||
} else {
|
||||
this.switchTab(0);
|
||||
}
|
||||
|
|
|
@ -3,67 +3,150 @@
|
|||
<view class="worker-header">
|
||||
<view class="worker-base">
|
||||
<view class="head">
|
||||
<image class="cover" :src="cover" mode="aspectFill" />
|
||||
<image class="cover" :src="info.worker.avatar" mode="aspectFill" />
|
||||
</view>
|
||||
<view class="desc">
|
||||
<view class="name">
|
||||
<text>{{ name }}</text>
|
||||
<text>{{ info.worker.name }}</text>
|
||||
</view>
|
||||
<view class="type" :style="{ color: models.worker.getWorkerTypeTextColor(type) }">
|
||||
<text>{{ models.worker.getWorkerTypeText(type) }}</text>
|
||||
<view class="type" :style="{ color: typeTextColor }">
|
||||
<text>{{ typeText }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="service-info">
|
||||
<view class="section">
|
||||
服务:<text class="num">{{ times }}</text>
|
||||
服务:<text class="num">{{ info.times }}</text>
|
||||
<text class="unit">次</text>
|
||||
</view>
|
||||
<view class="section">
|
||||
好评率:<text class="num">{{ favorable_rate }}</text>
|
||||
好评率:<text class="num">{{ info.favorableRate }}</text>
|
||||
<text class="unit">%</text>
|
||||
</view>
|
||||
<view class="section">
|
||||
评分:<text class="num">{{ grade }}</text>
|
||||
评分:<text class="num">{{ info.grade }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="appraise-body">
|
||||
<app-appraise-section
|
||||
:total="appraise.total"
|
||||
:tags="appraise.tags"
|
||||
:cate="appraise.cate"
|
||||
@changeCate="changeAppraiseCate"
|
||||
/>
|
||||
</view>
|
||||
</app-layout>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import AppLayout from "@/components/layout/layout";
|
||||
import AppAppraiseSection from "@/components/appraise/section";
|
||||
export default {
|
||||
name: "worker-detail",
|
||||
data() {
|
||||
return {
|
||||
models: this.$models,
|
||||
typeText: "",
|
||||
typeTextColor: "",
|
||||
info: {
|
||||
times: 0,
|
||||
favorableRate: 0,
|
||||
grade: 0,
|
||||
worker: {
|
||||
uid: 0,
|
||||
id: 0,
|
||||
name: "",
|
||||
type: 0,
|
||||
cover: "",
|
||||
times: 0,
|
||||
favorable_rate: 0,
|
||||
grade: 0,
|
||||
avatar: "",
|
||||
},
|
||||
},
|
||||
currentAppraiseCateIndex: 0,
|
||||
appraise: {
|
||||
total: 0,
|
||||
tags: [],
|
||||
cate: [],
|
||||
},
|
||||
};
|
||||
},
|
||||
components: {
|
||||
AppLayout,
|
||||
AppAppraiseSection,
|
||||
},
|
||||
onLoad(e) {
|
||||
async onLoad(e) {
|
||||
if (!e.id) {
|
||||
return this.$utils.tosat("参数错误").then(() => {
|
||||
this.$utils.toPage("", "", "back");
|
||||
});
|
||||
}
|
||||
this.id = e.id;
|
||||
let [typeText, typeTextColor] = this.$models.worker.workerTypeText(this.data.type);
|
||||
await this.$models.worker.workerDetail(e.id).then((data) => {
|
||||
this.info = data;
|
||||
let [typeText, typeTextColor] = this.$models.worker.workerTypeText(data.worker.type);
|
||||
this.typeText = typeText;
|
||||
this.typeTextColor = typeTextColor;
|
||||
});
|
||||
// 评价
|
||||
await this.$models.appraise.count.worker(this.id).then((data) => {
|
||||
data.tags.forEach((item) => {
|
||||
this.appraise.tags.push({
|
||||
count: item.count,
|
||||
name: item.name,
|
||||
});
|
||||
});
|
||||
data.cate.forEach((item) => {
|
||||
this.appraise.cate.push({
|
||||
name: item.name,
|
||||
count: item.count,
|
||||
status: item.status,
|
||||
page: 1,
|
||||
more: true,
|
||||
list: [],
|
||||
});
|
||||
});
|
||||
this.appraise.total = this.appraise.cate[0].count;
|
||||
this.changeAppraiseCate(this.appraise.cate[0], 0);
|
||||
});
|
||||
},
|
||||
onShow() {},
|
||||
onReady() {},
|
||||
onReachBottom() {},
|
||||
onReachBottom() {
|
||||
let currentCate = this.appraise.cate[this.currentAppraiseCateIndex];
|
||||
if (currentCate.more) {
|
||||
this.loadAppraiseData(currentCate);
|
||||
}
|
||||
},
|
||||
onPullDownRefresh() {},
|
||||
methods: {},
|
||||
methods: {
|
||||
/**
|
||||
* 切换评价分类
|
||||
*/
|
||||
changeAppraiseCate(currentCate, index) {
|
||||
this.currentAppraiseCateIndex = index;
|
||||
currentCate.list = [];
|
||||
currentCate.more = true;
|
||||
currentCate.page = 1;
|
||||
this.loadAppraiseData(currentCate);
|
||||
},
|
||||
/**
|
||||
* 加载评价数据
|
||||
*/
|
||||
loadAppraiseData(currentCate) {
|
||||
this.$models.appraise.list
|
||||
.worker({
|
||||
id: this.id,
|
||||
status: currentCate.status,
|
||||
page: currentCate.page,
|
||||
})
|
||||
.then((list) => {
|
||||
if (list.length > 0) {
|
||||
currentCate.page++;
|
||||
currentCate.list = currentCate.list.concat(list);
|
||||
} else {
|
||||
currentCate.more = false;
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
Loading…
Reference in New Issue