130 lines
3.9 KiB
JavaScript
130 lines
3.9 KiB
JavaScript
"use strict";
|
|
const common_vendor = require("../../common/vendor.js");
|
|
const common_assets = require("../../common/assets.js");
|
|
const common_js_util = require("../../common/js/util.js");
|
|
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();
|
|
}
|
|
const _sfc_main = {
|
|
__name: "videoMenu",
|
|
props: /* @__PURE__ */ common_vendor.mergeModels({
|
|
// 列表数据
|
|
list: {
|
|
type: Array
|
|
},
|
|
// 模式 list列表展示 点击播放视频 menu菜单模式 点击触发回调事件 checkbox多选
|
|
mode: {
|
|
type: String,
|
|
default: "list"
|
|
},
|
|
// 多选模式下的 选择数量限制 0为不限制
|
|
limit: {
|
|
type: Number,
|
|
default: 0
|
|
},
|
|
// 是否我自己 0不是 1是
|
|
isMine: {
|
|
type: [String, Number],
|
|
default: 0
|
|
}
|
|
}, {
|
|
"ids": {},
|
|
"idsModifiers": {}
|
|
}),
|
|
emits: /* @__PURE__ */ common_vendor.mergeModels(["item"], ["update:ids"]),
|
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
const props = __props;
|
|
const emit = __emit;
|
|
const ids = common_vendor.useModel(__props, "ids");
|
|
const videoContext = common_vendor.ref(null);
|
|
const videoUrl = common_vendor.ref("");
|
|
common_vendor.onMounted(() => {
|
|
videoContext.value = common_vendor.index.createVideoContext("video");
|
|
});
|
|
function requestFullScreen() {
|
|
videoContext.value.requestFullScreen();
|
|
}
|
|
function pause() {
|
|
videoContext.value.pause();
|
|
}
|
|
function handleVideo(item) {
|
|
if (props.mode == "list") {
|
|
common_vendor.index.navigateTo({
|
|
url: common_js_util.util.setUrl("/pages/index/videoDetail", {
|
|
videoId: item.videoId,
|
|
isMine: props.isMine
|
|
})
|
|
});
|
|
} else if (props.mode == "menu") {
|
|
videoUrl.value = item.format_videoUrl;
|
|
emit("item", item);
|
|
} else if (props.mode == "checkbox") {
|
|
const findIndex = ids.value.findIndex((node) => node == item.videoId);
|
|
if (findIndex >= 0)
|
|
ids.value.splice(findIndex, 1);
|
|
else {
|
|
if (props.limit != 0 && props.limit <= ids.value.length)
|
|
return;
|
|
ids.value.push(item.videoId);
|
|
}
|
|
}
|
|
}
|
|
function videoFullscreenchange(ev) {
|
|
if (ev.detail.fullScreen)
|
|
videoContext.value.play();
|
|
else
|
|
pause();
|
|
}
|
|
__expose({
|
|
videoContext,
|
|
pause,
|
|
requestFullScreen
|
|
});
|
|
return (_ctx, _cache) => {
|
|
return common_vendor.e({
|
|
a: common_vendor.f(__props.list, (item, index, i0) => {
|
|
return common_vendor.e({
|
|
a: item.format_imageUrl
|
|
}, __props.mode == "checkbox" ? common_vendor.e({
|
|
b: ids.value.includes(item.videoId)
|
|
}, ids.value.includes(item.videoId) ? {
|
|
c: "4c784ec8-0-" + i0,
|
|
d: common_vendor.p({
|
|
type: "circle-filled",
|
|
size: "50rpx",
|
|
color: "#20D200"
|
|
})
|
|
} : {
|
|
e: "4c784ec8-1-" + i0,
|
|
f: common_vendor.p({
|
|
type: "circle",
|
|
color: "#fff",
|
|
size: "50rpx"
|
|
})
|
|
}) : {}, {
|
|
g: item.play
|
|
}, item.play ? {
|
|
h: common_assets._imports_0$14,
|
|
i: common_vendor.t(item.play)
|
|
} : {}, {
|
|
j: index,
|
|
k: common_vendor.o$1(($event) => handleVideo(item), index)
|
|
});
|
|
}),
|
|
b: __props.mode == "checkbox",
|
|
c: !__props.list[0]
|
|
}, !__props.list[0] ? {} : {}, {
|
|
d: videoUrl.value,
|
|
e: common_vendor.o$1(videoFullscreenchange)
|
|
});
|
|
};
|
|
}
|
|
};
|
|
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-4c784ec8"]]);
|
|
wx.createComponent(Component);
|