爱简收旧衣按件回收前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

200 lines
6.7 KiB

"use strict";
const common_vendor = require("../../common/vendor.js");
const pages_mixins_pullRefreshMixin = require("../mixins/pullRefreshMixin.js");
const _sfc_main = {
mixins: [pages_mixins_pullRefreshMixin.pullRefreshMixin],
data() {
return {
statusBarHeight: 0,
navBarHeight: 14,
navBarTotalHeight: 14,
featureTags: ["透明检", "专业验", "公正评", "逐件验"],
goodsList: [],
// 质检合格
problemList: [],
// 质量问题
unrecyclableList: [],
// 不可回收
reportData: null,
showQualified: false,
showProblem: false,
showUnrecyclable: false
};
},
computed: {
totalCount() {
return this.goodsList.reduce((sum, item) => sum + item.count, 0);
},
totalAmount() {
return this.goodsList.reduce((sum, item) => sum + item.total, 0).toFixed(1);
},
problemCount() {
return this.problemList.reduce((sum, item) => sum + item.count, 0);
},
problemAmount() {
return this.problemList.reduce((sum, item) => sum + item.total, 0).toFixed(1);
},
unrecyclableCount() {
return this.unrecyclableList.reduce((sum, item) => sum + item.count, 0);
}
},
onLoad(options) {
const sysInfo = common_vendor.index.getSystemInfoSync();
this.statusBarHeight = sysInfo.statusBarHeight;
this.navBarHeight = 14;
this.navBarTotalHeight = this.statusBarHeight + this.navBarHeight;
const goodsId = options.id || options.goodsId;
if (goodsId) {
this.fetchQualityReport(goodsId);
}
},
methods: {
async fetchQualityReport(goodsId) {
this.$api && this.$api("getQualityReport", { goodsId }, (res) => {
if (res && res.code === 200 && res.result) {
this.reportData = res.result;
const status = Number(res.result.testingStatus);
this.showQualified = status === 1 || status === 0;
this.showProblem = status === 0 || status === 1;
this.showUnrecyclable = status === 2;
if (status === 1) {
this.goodsList = [this.mapReportToGoods(res.result)];
this.problemList = [];
this.unrecyclableList = [];
} else if (status === 0) {
this.goodsList = [];
this.problemList = [this.mapReportToGoods(res.result, true)];
this.unrecyclableList = [];
} else if (status === 2) {
this.goodsList = [];
this.problemList = [];
this.unrecyclableList = [this.mapReportToGoods(res.result)];
}
}
});
},
mapReportToGoods(data, isProblem = false) {
return {
img: data.image,
name: data.title || "未知品类",
desc: data.details || "",
price: data.onePrice || 0,
count: data.num || 1,
total: (data.onePrice || 0) * (data.num || 1),
detail: true,
problemDesc: isProblem ? data.testingInstructions || "" : ""
};
},
async onRefresh() {
await new Promise((resolve) => setTimeout(resolve, 1e3));
common_vendor.index.stopPullRefresh();
},
navigateBack() {
common_vendor.index.navigateBack();
},
goToInspectionDetail(status) {
const d = this.reportData || {};
common_vendor.index.navigateTo({
url: `/pages/subcomponent/inspection-detail?status=${status}&testingStatus=${d.testingStatus || ""}&testingInstructions=${encodeURIComponent(d.testingInstructions || "")}&testingTime=${encodeURIComponent(d.testingTime || "")}&testingImages=${encodeURIComponent(d.testingImages || "")}`
});
}
}
};
if (!Array) {
const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons");
_easycom_uni_icons2();
}
const _easycom_uni_icons = () => "../../uni_modules/uni-icons/components/uni-icons/uni-icons.js";
if (!Math) {
_easycom_uni_icons();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: common_vendor.p({
type: "left",
size: "22",
color: "#fff"
}),
b: common_vendor.o((...args) => $options.navigateBack && $options.navigateBack(...args)),
c: common_vendor.p({
type: "more-filled",
size: "22",
color: "#fff"
}),
d: $data.navBarTotalHeight + "px",
e: $data.statusBarHeight + "px",
f: common_vendor.f($data.featureTags, (t, i, i0) => {
return {
a: common_vendor.t(t),
b: i
};
}),
g: $data.navBarTotalHeight + $data.statusBarHeight + "px",
h: $data.showQualified && $data.goodsList.length
}, $data.showQualified && $data.goodsList.length ? {
i: common_vendor.f($data.goodsList, (item, i, i0) => {
return common_vendor.e({
a: item.img,
b: common_vendor.t(item.name),
c: item.detail
}, item.detail ? {
d: "c1d95640-2-" + i0,
e: common_vendor.p({
type: "right",
size: "16",
color: "#bbb"
})
} : {}, {
f: common_vendor.t(item.desc),
g: common_vendor.t(item.price),
h: common_vendor.t(item.count),
i,
j: common_vendor.o(($event) => $options.goToInspectionDetail("qualified"), i)
});
}),
j: common_vendor.t($options.totalCount),
k: common_vendor.t($options.totalAmount)
} : {}, {
l: $data.showProblem && $data.problemList.length
}, $data.showProblem && $data.problemList.length ? {
m: common_vendor.f($data.problemList, (item, i, i0) => {
return common_vendor.e({
a: item.img,
b: common_vendor.t(item.name),
c: item.detail
}, item.detail ? {
d: "c1d95640-3-" + i0,
e: common_vendor.p({
type: "right",
size: "16",
color: "#bbb"
})
} : {}, {
f: common_vendor.t(item.desc),
g: common_vendor.t(item.price),
h: common_vendor.t(item.count),
i,
j: common_vendor.o(($event) => $options.goToInspectionDetail("problem"), i)
});
}),
n: common_vendor.t($options.problemCount),
o: common_vendor.t($options.problemAmount)
} : {}, {
p: $data.showUnrecyclable && $data.unrecyclableList.length
}, $data.showUnrecyclable && $data.unrecyclableList.length ? {
q: common_vendor.f($data.unrecyclableList, (item, i, i0) => {
return {
a: item.img,
b: common_vendor.t(item.name),
c: common_vendor.t(item.desc),
d: common_vendor.t(item.price),
e: common_vendor.t(item.count),
f: i
};
}),
r: common_vendor.t($options.unrecyclableCount)
} : {});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-c1d95640"]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/subcomponent/inspection-report.js.map