Files
tk-mini-program/unpackage/dist/dev/mp-weixin/TUIKit/tui-customer-service-plugin/components/message-rating/message-rating-star.js
pengxiaolong c006a8e63d 消息
2025-05-13 19:39:53 +08:00

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