UNPKG

@ccos/webos-vue

Version:

A Web-Ui Framework for Skyworth/Coocaa TV

280 lines (279 loc) 11.1 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const vue = require("vue"); const useCard = require("./index49.js"); const common = require("./index45.js"); require("./index50.js"); const _pluginVue_exportHelper = require("./index34.js"); const _hoisted_1 = { key: 0, class: "left-right-struct-left-margin-part" }; const _hoisted_2 = { key: 1, class: "left-right-struct-iconpart" }; const _hoisted_3 = ["src"]; const _hoisted_4 = { key: 2, class: "left-right-struct-text-left-margin-part" }; const _hoisted_5 = ["src"]; const _sfc_main = { __name: "cardtext", props: { ...useCard.cardProps, // icon: { // icon type: String, required: false, default: "" }, imgUrl: { // 图片地址 type: String, required: false, default: "" }, align: { // 对齐方式:接受两个值:left 和 center (默认) type: String, required: false, default: "" } }, setup(__props) { const props = __props; const width = vue.toRef(props, "width"); const height = vue.toRef(props, "height"); const title = vue.toRef(props, "title"); const subTitle = vue.toRef(props, "subTitle"); const icon = vue.toRef(props, "icon"); const imgUrl = vue.toRef(props, "imgUrl"); const align = vue.toRef(props, "align"); const { cardRef, cardStyle, cardDesignWidth, cardDesignHeight, updateLayout } = useCard.useCard(); const isUpDownStruct = vue.ref(false); const isLeftRightStruct = vue.ref(false); const leftRightStructStyle = vue.reactive({}); const leftRightStructTextAreaStyle = vue.reactive({}); const leftRightStructTextMain = vue.reactive({}); const leftRightStructTextSub = vue.reactive({}); const hasIconOrImage = vue.ref(false); const alignLeft = vue.ref(false); const useImage = vue.ref(false); const upDownStructStyle = vue.reactive({}); const upDownStructIconPartStyle = vue.reactive({}); const upDownStructGapStyle = vue.reactive({}); const upDownStructTitleStyle = vue.reactive({}); const upDownStructSubTitleStyle = vue.reactive({}); const upDownStructIconImageStyle = vue.reactive({}); vue.ref(null); const updateLayoutCallBack = () => { console.log("updateLayoutCallBack cardDesignWidth = " + cardDesignWidth.value); if (cardDesignWidth.value <= 320) { updateLeftRightStructStyle(); isUpDownStruct.value = false; isLeftRightStruct.value = true; } else { updateUpDownStructStyle(); isUpDownStruct.value = true; isLeftRightStruct.value = false; } }; const updateLeftRightStructStyle = () => { let designW = cardDesignWidth.value; let designH = designW * 9 / 16; cardStyle["height"] = "" + common.px2vw(designH) + "vw"; let contentH = designH > 80 ? 80 : designH; leftRightStructStyle["height"] = "" + common.px2vw(contentH) + "vw"; let contentW = designW; leftRightStructStyle["width"] = "" + common.px2vw(contentW) + "vw"; cardStyle["display"] = "flex"; cardStyle["align-items"] = "center"; cardStyle["justify-content"] = "left"; if (icon.value || imgUrl.value) { alignLeft.value = false; if (imgUrl.value) { useImage.value = true; } else { useImage.value = false; } let textAreaW = contentW - 28 - 80 - 16; if (textAreaW < 0) textAreaW = 0; leftRightStructTextAreaStyle["width"] = "" + common.px2vw(textAreaW) + "vw"; leftRightStructTextAreaStyle["height"] = "" + common.px2vw(contentH) + "vw"; leftRightStructTextAreaStyle["display"] = "inline-block"; leftRightStructTextAreaStyle["vertical-align"] = "top"; leftRightStructTextMain["width"] = "" + common.px2vw(textAreaW) + "vw"; leftRightStructTextMain["height"] = "" + common.px2vw(44) + "vw"; leftRightStructTextSub["width"] = "" + common.px2vw(textAreaW) + "vw"; leftRightStructTextSub["height"] = "" + common.px2vw(38) + "vw"; hasIconOrImage.value = true; } else { let textAreaW; if (align.value && align.value.toString().toLowerCase() == "left") { alignLeft.value = true; textAreaW = contentW - 28; if (textAreaW < 0) textAreaW = 0; leftRightStructTextMain["text-align"] = "left"; leftRightStructTextSub["text-align"] = "left"; } else { alignLeft.value = false; textAreaW = contentW; leftRightStructTextMain["text-align"] = "center"; leftRightStructTextSub["text-align"] = "center"; } leftRightStructTextAreaStyle["width"] = "" + common.px2vw(textAreaW) + "vw"; leftRightStructTextAreaStyle["height"] = "" + common.px2vw(contentH) + "vw"; leftRightStructTextAreaStyle["display"] = "inline-block"; leftRightStructTextAreaStyle["vertical-align"] = "top"; leftRightStructTextMain["width"] = "" + common.px2vw(textAreaW) + "vw"; leftRightStructTextMain["height"] = "" + common.px2vw(44) + "vw"; leftRightStructTextSub["width"] = "" + common.px2vw(textAreaW) + "vw"; leftRightStructTextSub["height"] = "" + common.px2vw(38) + "vw"; hasIconOrImage.value = false; } }; const updateUpDownStructStyle = () => { let designH = cardDesignHeight.value; cardStyle["display"] = "flex"; cardStyle["align-items"] = "center"; cardStyle["justify-content"] = "left"; if (imgUrl.value) { useImage.value = true; } else { useImage.value = false; } let iconH; let gapH; let titleH; let subTitleH; let allContentH; let titleFontSize; let subTitleFontSize; if (designH < 230) { iconH = 64; gapH = 12; titleH = 44; subTitleH = 38; allContentH = 158; titleFontSize = 28; subTitleFontSize = 24; } else if (designH < 310) { iconH = 80; gapH = 16; titleH = 50; subTitleH = 40; allContentH = 186; titleFontSize = 32; subTitleFontSize = 26; } else { iconH = 120; gapH = 40; titleH = 50; subTitleH = 40; allContentH = 250; titleFontSize = 32; subTitleFontSize = 26; } upDownStructStyle["width"] = "100%"; upDownStructStyle["height"] = "" + common.px2vw(allContentH) + "vw"; upDownStructIconPartStyle["width"] = "100%"; upDownStructIconPartStyle["height"] = "" + common.px2vw(iconH) + "vw"; upDownStructIconPartStyle["text-align"] = "center"; upDownStructIconImageStyle["width"] = "" + common.px2vw(iconH) + "vw"; upDownStructIconImageStyle["height"] = "" + common.px2vw(iconH) + "vw"; upDownStructGapStyle["width"] = "100%"; upDownStructGapStyle["height"] = "" + common.px2vw(gapH) + "vw"; upDownStructTitleStyle["width"] = "100%"; upDownStructTitleStyle["height"] = "" + common.px2vw(titleH) + "vw"; upDownStructTitleStyle["line-height"] = "" + common.px2vw(titleH) + "vw"; upDownStructTitleStyle["font-size"] = "" + common.px2vw(titleFontSize) + "vw"; upDownStructTitleStyle["text-align"] = "center"; upDownStructSubTitleStyle["width"] = "100%"; upDownStructSubTitleStyle["height"] = "" + common.px2vw(subTitleH) + "vw"; upDownStructSubTitleStyle["line-height"] = "" + common.px2vw(subTitleH) + "vw"; upDownStructSubTitleStyle["font-size"] = "" + common.px2vw(subTitleFontSize) + "vw"; upDownStructSubTitleStyle["text-align"] = "center"; }; vue.onMounted(() => { }); vue.onBeforeUnmount(() => { }); updateLayout(width.value, height.value, updateLayoutCallBack); return (_ctx, _cache) => { return vue.openBlock(), vue.createElementBlock("div", { ref_key: "cardRef", ref: cardRef, style: vue.normalizeStyle(vue.unref(cardStyle)), class: "card-text-component" }, [ isLeftRightStruct.value ? (vue.openBlock(), vue.createElementBlock("div", { key: 0, style: vue.normalizeStyle(leftRightStructStyle), class: "left-right-struct" }, [ hasIconOrImage.value || alignLeft.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1)) : vue.createCommentVNode("", true), hasIconOrImage.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [ useImage.value ? (vue.openBlock(), vue.createElementBlock("img", { key: 0, src: imgUrl.value, class: "left-right-struct-iconpart-image" }, null, 8, _hoisted_3)) : vue.createCommentVNode("", true) ])) : vue.createCommentVNode("", true), hasIconOrImage.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4)) : vue.createCommentVNode("", true), vue.createElementVNode("div", { style: vue.normalizeStyle(leftRightStructTextAreaStyle) }, [ vue.createElementVNode("div", { style: vue.normalizeStyle(leftRightStructTextMain), class: "title-main" }, vue.toDisplayString(title.value), 5), vue.createElementVNode("div", { style: vue.normalizeStyle(leftRightStructTextSub), class: "title-sub" }, vue.toDisplayString(subTitle.value), 5) ], 4) ], 4)) : vue.createCommentVNode("", true), isUpDownStruct.value ? (vue.openBlock(), vue.createElementBlock("div", { key: 1, style: vue.normalizeStyle(upDownStructStyle), class: "up-down-struct" }, [ vue.createElementVNode("div", { style: vue.normalizeStyle(upDownStructIconPartStyle), class: "up-down-struct-iconpart" }, [ useImage.value ? (vue.openBlock(), vue.createElementBlock("img", { key: 0, src: imgUrl.value, style: vue.normalizeStyle(upDownStructIconImageStyle) }, null, 12, _hoisted_5)) : vue.createCommentVNode("", true) ], 4), vue.createElementVNode("div", { style: vue.normalizeStyle(upDownStructGapStyle) }, null, 4), vue.createElementVNode("div", { style: vue.normalizeStyle(upDownStructTitleStyle), class: "title-main" }, vue.toDisplayString(title.value), 5), vue.createElementVNode("div", { style: vue.normalizeStyle(upDownStructSubTitleStyle), class: "title-sub" }, vue.toDisplayString(subTitle.value), 5) ], 4)) : vue.createCommentVNode("", true) ], 4); }; } }; const TvCardText = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-c32727a2"]]); exports.default = TvCardText;