149 lines
4.6 KiB
JavaScript
149 lines
4.6 KiB
JavaScript
"use strict";
|
|
const TUIKit_tuiCustomerServicePlugin_adapterVue = require("../../adapter-vue.js");
|
|
const TUIKit_tuiCustomerServicePlugin_constant = require("../../constant.js");
|
|
const common_assets = require("../../../../common/assets.js");
|
|
const common_vendor = require("../../../../common/vendor.js");
|
|
const Icon = () => "../customer-icon.js";
|
|
const { computed, ref, watchEffect } = TUIKit_tuiCustomerServicePlugin_adapterVue.vue;
|
|
const _sfc_main = {
|
|
components: {
|
|
Icon
|
|
},
|
|
props: {
|
|
ratingTemplate: {
|
|
type: Object,
|
|
default: () => ({})
|
|
}
|
|
},
|
|
emits: ["sendMessage"],
|
|
setup(props, { emit }) {
|
|
const hasReply = ref(false);
|
|
const sessionId = ref("");
|
|
const value = ref(-1);
|
|
const hoverValue = ref(-1);
|
|
const hasExpire = ref(false);
|
|
watchEffect(() => {
|
|
sessionId.value = props.ratingTemplate.sessionId || "";
|
|
if (props.ratingTemplate.selected != void 0) {
|
|
for (let i = 0; i < props.ratingTemplate.menu.length; i++) {
|
|
if (props.ratingTemplate.menu[i].id == props.ratingTemplate.selected.id) {
|
|
hasReply.value = true;
|
|
value.value = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
const timestamp = Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3);
|
|
if (timestamp > props.ratingTemplate.expireTime) {
|
|
hasExpire.value = true;
|
|
}
|
|
});
|
|
const desc = computed(() => {
|
|
var _a;
|
|
return (_a = props.ratingTemplate) == null ? void 0 : _a.menu.map((item) => {
|
|
return item.content;
|
|
});
|
|
});
|
|
const starList = computed(() => {
|
|
var _a;
|
|
return (_a = props.ratingTemplate) == null ? void 0 : _a.menu.map((item, index) => {
|
|
if (hoverValue.value !== -1) {
|
|
return index <= hoverValue.value ? 1 : 0;
|
|
} else {
|
|
return index <= value.value ? 1 : 0;
|
|
}
|
|
});
|
|
});
|
|
const setValue = (val) => {
|
|
if (hasReply.value) {
|
|
return;
|
|
}
|
|
value.value = val;
|
|
};
|
|
const setHoverValue = (value2) => {
|
|
if (hasReply.value) {
|
|
return;
|
|
}
|
|
hoverValue.value = value2;
|
|
};
|
|
const submitRatingStar = async () => {
|
|
if (value.value < 0) {
|
|
return;
|
|
}
|
|
const submitData = {
|
|
data: JSON.stringify({
|
|
src: TUIKit_tuiCustomerServicePlugin_constant.CUSTOM_MESSAGE_SRC.MENU_SELECTED,
|
|
menuSelected: {
|
|
id: props.ratingTemplate.menu[value.value].id,
|
|
content: props.ratingTemplate.menu[value.value].content,
|
|
sessionId: sessionId.value
|
|
},
|
|
customerServicePlugin: 0
|
|
})
|
|
};
|
|
hasReply.value = true;
|
|
emit("sendMessage", submitData);
|
|
};
|
|
return {
|
|
props,
|
|
hasReply,
|
|
sessionId,
|
|
value,
|
|
hoverValue,
|
|
hasExpire,
|
|
desc,
|
|
starList,
|
|
setValue,
|
|
setHoverValue,
|
|
submitRatingStar,
|
|
star: common_assets.star$1,
|
|
starLine: common_assets.starLine
|
|
};
|
|
}
|
|
};
|
|
if (!Array) {
|
|
const _component_Icon = common_vendor.resolveComponent("Icon");
|
|
_component_Icon();
|
|
}
|
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
return common_vendor.e({
|
|
a: common_vendor.t($setup.props.ratingTemplate.head),
|
|
b: common_vendor.f($setup.starList, (item, index, i0) => {
|
|
return common_vendor.e({
|
|
a: item === 1
|
|
}, item === 1 ? {
|
|
b: "da3c7d81-0-" + i0,
|
|
c: common_vendor.p({
|
|
src: $setup.star,
|
|
width: "30px",
|
|
height: "30px"
|
|
})
|
|
} : {
|
|
d: "da3c7d81-1-" + i0,
|
|
e: common_vendor.p({
|
|
src: $setup.starLine,
|
|
width: "30px",
|
|
height: "30px"
|
|
})
|
|
}, {
|
|
f: index,
|
|
g: common_vendor.o$1(($event) => $setup.setValue(index), index),
|
|
h: common_vendor.o$1(($event) => $setup.setHoverValue(index), index),
|
|
i: common_vendor.o$1(($event) => $setup.setHoverValue(-1), index)
|
|
});
|
|
}),
|
|
c: common_vendor.t($setup.hoverValue === -1 ? $setup.value === -1 ? "如果满意请给好评哦~" : $setup.desc[$setup.value] : $setup.desc[$setup.hoverValue]),
|
|
d: "10px",
|
|
e: "10px",
|
|
f: $setup.hasReply || $setup.hasExpire,
|
|
g: common_vendor.o$1((...args) => $setup.submitRatingStar && $setup.submitRatingStar(...args)),
|
|
h: $setup.hasReply
|
|
}, $setup.hasReply ? {
|
|
i: common_vendor.t($setup.props.ratingTemplate.tail),
|
|
j: "20px"
|
|
} : {});
|
|
}
|
|
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-da3c7d81"]]);
|
|
wx.createComponent(Component);
|
|
//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/tui-customer-service-plugin/components/message-rating/message-rating-star.js.map
|