2025-07-19 19:41:27 +08:00

3187 lines
100 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

if (typeof Promise !== "undefined" && !Promise.prototype.finally) {
Promise.prototype.finally = function(callback) {
const promise = this.constructor;
return this.then(
(value) => promise.resolve(callback()).then(() => value),
(reason) => promise.resolve(callback()).then(() => {
throw reason;
})
);
};
}
;
if (typeof uni !== "undefined" && uni && uni.requireGlobal) {
const global2 = uni.requireGlobal();
ArrayBuffer = global2.ArrayBuffer;
Int8Array = global2.Int8Array;
Uint8Array = global2.Uint8Array;
Uint8ClampedArray = global2.Uint8ClampedArray;
Int16Array = global2.Int16Array;
Uint16Array = global2.Uint16Array;
Int32Array = global2.Int32Array;
Uint32Array = global2.Uint32Array;
Float32Array = global2.Float32Array;
Float64Array = global2.Float64Array;
BigInt64Array = global2.BigInt64Array;
BigUint64Array = global2.BigUint64Array;
}
;
if (uni.restoreGlobal) {
uni.restoreGlobal(Vue, weex, plus, setTimeout, clearTimeout, setInterval, clearInterval);
}
(function(vue) {
"use strict";
function formatAppLog(type, filename, ...args) {
if (uni.__log__) {
uni.__log__(type, filename, ...args);
} else {
console[type].apply(console, [...args, filename]);
}
}
function resolveEasycom(component, easycom) {
return typeof component === "string" ? easycom : component;
}
function getDevtoolsGlobalHook() {
return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;
}
function getTarget() {
return typeof navigator !== "undefined" && typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {};
}
const isProxyAvailable = typeof Proxy === "function";
const HOOK_SETUP = "devtools-plugin:setup";
const HOOK_PLUGIN_SETTINGS_SET = "plugin:settings:set";
class ApiProxy {
constructor(plugin, hook) {
this.target = null;
this.targetQueue = [];
this.onQueue = [];
this.plugin = plugin;
this.hook = hook;
const defaultSettings = {};
if (plugin.settings) {
for (const id in plugin.settings) {
const item = plugin.settings[id];
defaultSettings[id] = item.defaultValue;
}
}
const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;
let currentSettings = { ...defaultSettings };
try {
const raw = localStorage.getItem(localSettingsSaveId);
const data = JSON.parse(raw);
Object.assign(currentSettings, data);
} catch (e) {
}
this.fallbacks = {
getSettings() {
return currentSettings;
},
setSettings(value) {
try {
localStorage.setItem(localSettingsSaveId, JSON.stringify(value));
} catch (e) {
}
currentSettings = value;
}
};
hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {
if (pluginId === this.plugin.id) {
this.fallbacks.setSettings(value);
}
});
this.proxiedOn = new Proxy({}, {
get: (_target, prop) => {
if (this.target) {
return this.target.on[prop];
} else {
return (...args) => {
this.onQueue.push({
method: prop,
args
});
};
}
}
});
this.proxiedTarget = new Proxy({}, {
get: (_target, prop) => {
if (this.target) {
return this.target[prop];
} else if (prop === "on") {
return this.proxiedOn;
} else if (Object.keys(this.fallbacks).includes(prop)) {
return (...args) => {
this.targetQueue.push({
method: prop,
args,
resolve: () => {
}
});
return this.fallbacks[prop](...args);
};
} else {
return (...args) => {
return new Promise((resolve) => {
this.targetQueue.push({
method: prop,
args,
resolve
});
});
};
}
}
});
}
async setRealTarget(target) {
this.target = target;
for (const item of this.onQueue) {
this.target.on[item.method](...item.args);
}
for (const item of this.targetQueue) {
item.resolve(await this.target[item.method](...item.args));
}
}
}
function setupDevtoolsPlugin(pluginDescriptor, setupFn) {
const target = getTarget();
const hook = getDevtoolsGlobalHook();
const enableProxy = isProxyAvailable && pluginDescriptor.enableEarlyProxy;
if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {
hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);
} else {
const proxy = enableProxy ? new ApiProxy(pluginDescriptor, hook) : null;
const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];
list.push({
pluginDescriptor,
setupFn,
proxy
});
if (proxy)
setupFn(proxy.proxiedTarget);
}
}
/*!
* vuex v4.1.0
* (c) 2022 Evan You
* @license MIT
*/
var storeKey = "store";
function forEachValue(obj, fn) {
Object.keys(obj).forEach(function(key) {
return fn(obj[key], key);
});
}
function isObject(obj) {
return obj !== null && typeof obj === "object";
}
function isPromise(val) {
return val && typeof val.then === "function";
}
function assert(condition, msg) {
if (!condition) {
throw new Error("[vuex] " + msg);
}
}
function partial(fn, arg) {
return function() {
return fn(arg);
};
}
function genericSubscribe(fn, subs, options) {
if (subs.indexOf(fn) < 0) {
options && options.prepend ? subs.unshift(fn) : subs.push(fn);
}
return function() {
var i = subs.indexOf(fn);
if (i > -1) {
subs.splice(i, 1);
}
};
}
function resetStore(store2, hot) {
store2._actions = /* @__PURE__ */ Object.create(null);
store2._mutations = /* @__PURE__ */ Object.create(null);
store2._wrappedGetters = /* @__PURE__ */ Object.create(null);
store2._modulesNamespaceMap = /* @__PURE__ */ Object.create(null);
var state = store2.state;
installModule(store2, state, [], store2._modules.root, true);
resetStoreState(store2, state, hot);
}
function resetStoreState(store2, state, hot) {
var oldState = store2._state;
var oldScope = store2._scope;
store2.getters = {};
store2._makeLocalGettersCache = /* @__PURE__ */ Object.create(null);
var wrappedGetters = store2._wrappedGetters;
var computedObj = {};
var computedCache = {};
var scope = vue.effectScope(true);
scope.run(function() {
forEachValue(wrappedGetters, function(fn, key) {
computedObj[key] = partial(fn, store2);
computedCache[key] = vue.computed(function() {
return computedObj[key]();
});
Object.defineProperty(store2.getters, key, {
get: function() {
return computedCache[key].value;
},
enumerable: true
// for local getters
});
});
});
store2._state = vue.reactive({
data: state
});
store2._scope = scope;
if (store2.strict) {
enableStrictMode(store2);
}
if (oldState) {
if (hot) {
store2._withCommit(function() {
oldState.data = null;
});
}
}
if (oldScope) {
oldScope.stop();
}
}
function installModule(store2, rootState, path, module, hot) {
var isRoot = !path.length;
var namespace = store2._modules.getNamespace(path);
if (module.namespaced) {
if (store2._modulesNamespaceMap[namespace] && true) {
console.error("[vuex] duplicate namespace " + namespace + " for the namespaced module " + path.join("/"));
}
store2._modulesNamespaceMap[namespace] = module;
}
if (!isRoot && !hot) {
var parentState = getNestedState(rootState, path.slice(0, -1));
var moduleName = path[path.length - 1];
store2._withCommit(function() {
{
if (moduleName in parentState) {
console.warn(
'[vuex] state field "' + moduleName + '" was overridden by a module with the same name at "' + path.join(".") + '"'
);
}
}
parentState[moduleName] = module.state;
});
}
var local = module.context = makeLocalContext(store2, namespace, path);
module.forEachMutation(function(mutation, key) {
var namespacedType = namespace + key;
registerMutation(store2, namespacedType, mutation, local);
});
module.forEachAction(function(action, key) {
var type = action.root ? key : namespace + key;
var handler = action.handler || action;
registerAction(store2, type, handler, local);
});
module.forEachGetter(function(getter, key) {
var namespacedType = namespace + key;
registerGetter(store2, namespacedType, getter, local);
});
module.forEachChild(function(child, key) {
installModule(store2, rootState, path.concat(key), child, hot);
});
}
function makeLocalContext(store2, namespace, path) {
var noNamespace = namespace === "";
var local = {
dispatch: noNamespace ? store2.dispatch : function(_type, _payload, _options) {
var args = unifyObjectStyle(_type, _payload, _options);
var payload = args.payload;
var options = args.options;
var type = args.type;
if (!options || !options.root) {
type = namespace + type;
if (!store2._actions[type]) {
console.error("[vuex] unknown local action type: " + args.type + ", global type: " + type);
return;
}
}
return store2.dispatch(type, payload);
},
commit: noNamespace ? store2.commit : function(_type, _payload, _options) {
var args = unifyObjectStyle(_type, _payload, _options);
var payload = args.payload;
var options = args.options;
var type = args.type;
if (!options || !options.root) {
type = namespace + type;
if (!store2._mutations[type]) {
console.error("[vuex] unknown local mutation type: " + args.type + ", global type: " + type);
return;
}
}
store2.commit(type, payload, options);
}
};
Object.defineProperties(local, {
getters: {
get: noNamespace ? function() {
return store2.getters;
} : function() {
return makeLocalGetters(store2, namespace);
}
},
state: {
get: function() {
return getNestedState(store2.state, path);
}
}
});
return local;
}
function makeLocalGetters(store2, namespace) {
if (!store2._makeLocalGettersCache[namespace]) {
var gettersProxy = {};
var splitPos = namespace.length;
Object.keys(store2.getters).forEach(function(type) {
if (type.slice(0, splitPos) !== namespace) {
return;
}
var localType = type.slice(splitPos);
Object.defineProperty(gettersProxy, localType, {
get: function() {
return store2.getters[type];
},
enumerable: true
});
});
store2._makeLocalGettersCache[namespace] = gettersProxy;
}
return store2._makeLocalGettersCache[namespace];
}
function registerMutation(store2, type, handler, local) {
var entry = store2._mutations[type] || (store2._mutations[type] = []);
entry.push(function wrappedMutationHandler(payload) {
handler.call(store2, local.state, payload);
});
}
function registerAction(store2, type, handler, local) {
var entry = store2._actions[type] || (store2._actions[type] = []);
entry.push(function wrappedActionHandler(payload) {
var res = handler.call(store2, {
dispatch: local.dispatch,
commit: local.commit,
getters: local.getters,
state: local.state,
rootGetters: store2.getters,
rootState: store2.state
}, payload);
if (!isPromise(res)) {
res = Promise.resolve(res);
}
if (store2._devtoolHook) {
return res.catch(function(err) {
store2._devtoolHook.emit("vuex:error", err);
throw err;
});
} else {
return res;
}
});
}
function registerGetter(store2, type, rawGetter, local) {
if (store2._wrappedGetters[type]) {
{
console.error("[vuex] duplicate getter key: " + type);
}
return;
}
store2._wrappedGetters[type] = function wrappedGetter(store22) {
return rawGetter(
local.state,
// local state
local.getters,
// local getters
store22.state,
// root state
store22.getters
// root getters
);
};
}
function enableStrictMode(store2) {
vue.watch(function() {
return store2._state.data;
}, function() {
{
assert(store2._committing, "do not mutate vuex store state outside mutation handlers.");
}
}, { deep: true, flush: "sync" });
}
function getNestedState(state, path) {
return path.reduce(function(state2, key) {
return state2[key];
}, state);
}
function unifyObjectStyle(type, payload, options) {
if (isObject(type) && type.type) {
options = payload;
payload = type;
type = type.type;
}
{
assert(typeof type === "string", "expects string as the type, but found " + typeof type + ".");
}
return { type, payload, options };
}
var LABEL_VUEX_BINDINGS = "vuex bindings";
var MUTATIONS_LAYER_ID = "vuex:mutations";
var ACTIONS_LAYER_ID = "vuex:actions";
var INSPECTOR_ID = "vuex";
var actionId = 0;
function addDevtools(app, store2) {
setupDevtoolsPlugin(
{
id: "org.vuejs.vuex",
app,
label: "Vuex",
homepage: "https://next.vuex.vuejs.org/",
logo: "https://vuejs.org/images/icons/favicon-96x96.png",
packageName: "vuex",
componentStateTypes: [LABEL_VUEX_BINDINGS]
},
function(api) {
api.addTimelineLayer({
id: MUTATIONS_LAYER_ID,
label: "Vuex Mutations",
color: COLOR_LIME_500
});
api.addTimelineLayer({
id: ACTIONS_LAYER_ID,
label: "Vuex Actions",
color: COLOR_LIME_500
});
api.addInspector({
id: INSPECTOR_ID,
label: "Vuex",
icon: "storage",
treeFilterPlaceholder: "Filter stores..."
});
api.on.getInspectorTree(function(payload) {
if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
if (payload.filter) {
var nodes = [];
flattenStoreForInspectorTree(nodes, store2._modules.root, payload.filter, "");
payload.rootNodes = nodes;
} else {
payload.rootNodes = [
formatStoreForInspectorTree(store2._modules.root, "")
];
}
}
});
api.on.getInspectorState(function(payload) {
if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
var modulePath = payload.nodeId;
makeLocalGetters(store2, modulePath);
payload.state = formatStoreForInspectorState(
getStoreModule(store2._modules, modulePath),
modulePath === "root" ? store2.getters : store2._makeLocalGettersCache,
modulePath
);
}
});
api.on.editInspectorState(function(payload) {
if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
var modulePath = payload.nodeId;
var path = payload.path;
if (modulePath !== "root") {
path = modulePath.split("/").filter(Boolean).concat(path);
}
store2._withCommit(function() {
payload.set(store2._state.data, path, payload.state.value);
});
}
});
store2.subscribe(function(mutation, state) {
var data = {};
if (mutation.payload) {
data.payload = mutation.payload;
}
data.state = state;
api.notifyComponentUpdate();
api.sendInspectorTree(INSPECTOR_ID);
api.sendInspectorState(INSPECTOR_ID);
api.addTimelineEvent({
layerId: MUTATIONS_LAYER_ID,
event: {
time: Date.now(),
title: mutation.type,
data
}
});
});
store2.subscribeAction({
before: function(action, state) {
var data = {};
if (action.payload) {
data.payload = action.payload;
}
action._id = actionId++;
action._time = Date.now();
data.state = state;
api.addTimelineEvent({
layerId: ACTIONS_LAYER_ID,
event: {
time: action._time,
title: action.type,
groupId: action._id,
subtitle: "start",
data
}
});
},
after: function(action, state) {
var data = {};
var duration = Date.now() - action._time;
data.duration = {
_custom: {
type: "duration",
display: duration + "ms",
tooltip: "Action duration",
value: duration
}
};
if (action.payload) {
data.payload = action.payload;
}
data.state = state;
api.addTimelineEvent({
layerId: ACTIONS_LAYER_ID,
event: {
time: Date.now(),
title: action.type,
groupId: action._id,
subtitle: "end",
data
}
});
}
});
}
);
}
var COLOR_LIME_500 = 8702998;
var COLOR_DARK = 6710886;
var COLOR_WHITE = 16777215;
var TAG_NAMESPACED = {
label: "namespaced",
textColor: COLOR_WHITE,
backgroundColor: COLOR_DARK
};
function extractNameFromPath(path) {
return path && path !== "root" ? path.split("/").slice(-2, -1)[0] : "Root";
}
function formatStoreForInspectorTree(module, path) {
return {
id: path || "root",
// all modules end with a `/`, we want the last segment only
// cart/ -> cart
// nested/cart/ -> cart
label: extractNameFromPath(path),
tags: module.namespaced ? [TAG_NAMESPACED] : [],
children: Object.keys(module._children).map(
function(moduleName) {
return formatStoreForInspectorTree(
module._children[moduleName],
path + moduleName + "/"
);
}
)
};
}
function flattenStoreForInspectorTree(result, module, filter, path) {
if (path.includes(filter)) {
result.push({
id: path || "root",
label: path.endsWith("/") ? path.slice(0, path.length - 1) : path || "Root",
tags: module.namespaced ? [TAG_NAMESPACED] : []
});
}
Object.keys(module._children).forEach(function(moduleName) {
flattenStoreForInspectorTree(result, module._children[moduleName], filter, path + moduleName + "/");
});
}
function formatStoreForInspectorState(module, getters, path) {
getters = path === "root" ? getters : getters[path];
var gettersKeys = Object.keys(getters);
var storeState = {
state: Object.keys(module.state).map(function(key) {
return {
key,
editable: true,
value: module.state[key]
};
})
};
if (gettersKeys.length) {
var tree = transformPathsToObjectTree(getters);
storeState.getters = Object.keys(tree).map(function(key) {
return {
key: key.endsWith("/") ? extractNameFromPath(key) : key,
editable: false,
value: canThrow(function() {
return tree[key];
})
};
});
}
return storeState;
}
function transformPathsToObjectTree(getters) {
var result = {};
Object.keys(getters).forEach(function(key) {
var path = key.split("/");
if (path.length > 1) {
var target = result;
var leafKey = path.pop();
path.forEach(function(p) {
if (!target[p]) {
target[p] = {
_custom: {
value: {},
display: p,
tooltip: "Module",
abstract: true
}
};
}
target = target[p]._custom.value;
});
target[leafKey] = canThrow(function() {
return getters[key];
});
} else {
result[key] = canThrow(function() {
return getters[key];
});
}
});
return result;
}
function getStoreModule(moduleMap, path) {
var names = path.split("/").filter(function(n) {
return n;
});
return names.reduce(
function(module, moduleName, i) {
var child = module[moduleName];
if (!child) {
throw new Error('Missing module "' + moduleName + '" for path "' + path + '".');
}
return i === names.length - 1 ? child : child._children;
},
path === "root" ? moduleMap : moduleMap.root._children
);
}
function canThrow(cb) {
try {
return cb();
} catch (e) {
return e;
}
}
var Module = function Module2(rawModule, runtime) {
this.runtime = runtime;
this._children = /* @__PURE__ */ Object.create(null);
this._rawModule = rawModule;
var rawState = rawModule.state;
this.state = (typeof rawState === "function" ? rawState() : rawState) || {};
};
var prototypeAccessors$1 = { namespaced: { configurable: true } };
prototypeAccessors$1.namespaced.get = function() {
return !!this._rawModule.namespaced;
};
Module.prototype.addChild = function addChild(key, module) {
this._children[key] = module;
};
Module.prototype.removeChild = function removeChild(key) {
delete this._children[key];
};
Module.prototype.getChild = function getChild(key) {
return this._children[key];
};
Module.prototype.hasChild = function hasChild(key) {
return key in this._children;
};
Module.prototype.update = function update(rawModule) {
this._rawModule.namespaced = rawModule.namespaced;
if (rawModule.actions) {
this._rawModule.actions = rawModule.actions;
}
if (rawModule.mutations) {
this._rawModule.mutations = rawModule.mutations;
}
if (rawModule.getters) {
this._rawModule.getters = rawModule.getters;
}
};
Module.prototype.forEachChild = function forEachChild(fn) {
forEachValue(this._children, fn);
};
Module.prototype.forEachGetter = function forEachGetter(fn) {
if (this._rawModule.getters) {
forEachValue(this._rawModule.getters, fn);
}
};
Module.prototype.forEachAction = function forEachAction(fn) {
if (this._rawModule.actions) {
forEachValue(this._rawModule.actions, fn);
}
};
Module.prototype.forEachMutation = function forEachMutation(fn) {
if (this._rawModule.mutations) {
forEachValue(this._rawModule.mutations, fn);
}
};
Object.defineProperties(Module.prototype, prototypeAccessors$1);
var ModuleCollection = function ModuleCollection2(rawRootModule) {
this.register([], rawRootModule, false);
};
ModuleCollection.prototype.get = function get(path) {
return path.reduce(function(module, key) {
return module.getChild(key);
}, this.root);
};
ModuleCollection.prototype.getNamespace = function getNamespace(path) {
var module = this.root;
return path.reduce(function(namespace, key) {
module = module.getChild(key);
return namespace + (module.namespaced ? key + "/" : "");
}, "");
};
ModuleCollection.prototype.update = function update$1(rawRootModule) {
update2([], this.root, rawRootModule);
};
ModuleCollection.prototype.register = function register(path, rawModule, runtime) {
var this$1$1 = this;
if (runtime === void 0)
runtime = true;
{
assertRawModule(path, rawModule);
}
var newModule = new Module(rawModule, runtime);
if (path.length === 0) {
this.root = newModule;
} else {
var parent = this.get(path.slice(0, -1));
parent.addChild(path[path.length - 1], newModule);
}
if (rawModule.modules) {
forEachValue(rawModule.modules, function(rawChildModule, key) {
this$1$1.register(path.concat(key), rawChildModule, runtime);
});
}
};
ModuleCollection.prototype.unregister = function unregister(path) {
var parent = this.get(path.slice(0, -1));
var key = path[path.length - 1];
var child = parent.getChild(key);
if (!child) {
{
console.warn(
"[vuex] trying to unregister module '" + key + "', which is not registered"
);
}
return;
}
if (!child.runtime) {
return;
}
parent.removeChild(key);
};
ModuleCollection.prototype.isRegistered = function isRegistered(path) {
var parent = this.get(path.slice(0, -1));
var key = path[path.length - 1];
if (parent) {
return parent.hasChild(key);
}
return false;
};
function update2(path, targetModule, newModule) {
{
assertRawModule(path, newModule);
}
targetModule.update(newModule);
if (newModule.modules) {
for (var key in newModule.modules) {
if (!targetModule.getChild(key)) {
{
console.warn(
"[vuex] trying to add a new module '" + key + "' on hot reloading, manual reload is needed"
);
}
return;
}
update2(
path.concat(key),
targetModule.getChild(key),
newModule.modules[key]
);
}
}
}
var functionAssert = {
assert: function(value) {
return typeof value === "function";
},
expected: "function"
};
var objectAssert = {
assert: function(value) {
return typeof value === "function" || typeof value === "object" && typeof value.handler === "function";
},
expected: 'function or object with "handler" function'
};
var assertTypes = {
getters: functionAssert,
mutations: functionAssert,
actions: objectAssert
};
function assertRawModule(path, rawModule) {
Object.keys(assertTypes).forEach(function(key) {
if (!rawModule[key]) {
return;
}
var assertOptions = assertTypes[key];
forEachValue(rawModule[key], function(value, type) {
assert(
assertOptions.assert(value),
makeAssertionMessage(path, key, type, value, assertOptions.expected)
);
});
});
}
function makeAssertionMessage(path, key, type, value, expected) {
var buf = key + " should be " + expected + ' but "' + key + "." + type + '"';
if (path.length > 0) {
buf += ' in module "' + path.join(".") + '"';
}
buf += " is " + JSON.stringify(value) + ".";
return buf;
}
function createStore(options) {
return new Store(options);
}
var Store = function Store2(options) {
var this$1$1 = this;
if (options === void 0)
options = {};
{
assert(typeof Promise !== "undefined", "vuex requires a Promise polyfill in this browser.");
assert(this instanceof Store2, "store must be called with the new operator.");
}
var plugins = options.plugins;
if (plugins === void 0)
plugins = [];
var strict = options.strict;
if (strict === void 0)
strict = false;
var devtools = options.devtools;
this._committing = false;
this._actions = /* @__PURE__ */ Object.create(null);
this._actionSubscribers = [];
this._mutations = /* @__PURE__ */ Object.create(null);
this._wrappedGetters = /* @__PURE__ */ Object.create(null);
this._modules = new ModuleCollection(options);
this._modulesNamespaceMap = /* @__PURE__ */ Object.create(null);
this._subscribers = [];
this._makeLocalGettersCache = /* @__PURE__ */ Object.create(null);
this._scope = null;
this._devtools = devtools;
var store2 = this;
var ref = this;
var dispatch2 = ref.dispatch;
var commit2 = ref.commit;
this.dispatch = function boundDispatch(type, payload) {
return dispatch2.call(store2, type, payload);
};
this.commit = function boundCommit(type, payload, options2) {
return commit2.call(store2, type, payload, options2);
};
this.strict = strict;
var state = this._modules.root.state;
installModule(this, state, [], this._modules.root);
resetStoreState(this, state);
plugins.forEach(function(plugin) {
return plugin(this$1$1);
});
};
var prototypeAccessors = { state: { configurable: true } };
Store.prototype.install = function install(app, injectKey) {
app.provide(injectKey || storeKey, this);
app.config.globalProperties.$store = this;
var useDevtools = this._devtools !== void 0 ? this._devtools : true;
if (useDevtools) {
addDevtools(app, this);
}
};
prototypeAccessors.state.get = function() {
return this._state.data;
};
prototypeAccessors.state.set = function(v) {
{
assert(false, "use store.replaceState() to explicit replace store state.");
}
};
Store.prototype.commit = function commit(_type, _payload, _options) {
var this$1$1 = this;
var ref = unifyObjectStyle(_type, _payload, _options);
var type = ref.type;
var payload = ref.payload;
var options = ref.options;
var mutation = { type, payload };
var entry = this._mutations[type];
if (!entry) {
{
console.error("[vuex] unknown mutation type: " + type);
}
return;
}
this._withCommit(function() {
entry.forEach(function commitIterator(handler) {
handler(payload);
});
});
this._subscribers.slice().forEach(function(sub) {
return sub(mutation, this$1$1.state);
});
if (options && options.silent) {
console.warn(
"[vuex] mutation type: " + type + ". Silent option has been removed. Use the filter functionality in the vue-devtools"
);
}
};
Store.prototype.dispatch = function dispatch(_type, _payload) {
var this$1$1 = this;
var ref = unifyObjectStyle(_type, _payload);
var type = ref.type;
var payload = ref.payload;
var action = { type, payload };
var entry = this._actions[type];
if (!entry) {
{
console.error("[vuex] unknown action type: " + type);
}
return;
}
try {
this._actionSubscribers.slice().filter(function(sub) {
return sub.before;
}).forEach(function(sub) {
return sub.before(action, this$1$1.state);
});
} catch (e) {
{
console.warn("[vuex] error in before action subscribers: ");
console.error(e);
}
}
var result = entry.length > 1 ? Promise.all(entry.map(function(handler) {
return handler(payload);
})) : entry[0](payload);
return new Promise(function(resolve, reject) {
result.then(function(res) {
try {
this$1$1._actionSubscribers.filter(function(sub) {
return sub.after;
}).forEach(function(sub) {
return sub.after(action, this$1$1.state);
});
} catch (e) {
{
console.warn("[vuex] error in after action subscribers: ");
console.error(e);
}
}
resolve(res);
}, function(error) {
try {
this$1$1._actionSubscribers.filter(function(sub) {
return sub.error;
}).forEach(function(sub) {
return sub.error(action, this$1$1.state, error);
});
} catch (e) {
{
console.warn("[vuex] error in error action subscribers: ");
console.error(e);
}
}
reject(error);
});
});
};
Store.prototype.subscribe = function subscribe(fn, options) {
return genericSubscribe(fn, this._subscribers, options);
};
Store.prototype.subscribeAction = function subscribeAction(fn, options) {
var subs = typeof fn === "function" ? { before: fn } : fn;
return genericSubscribe(subs, this._actionSubscribers, options);
};
Store.prototype.watch = function watch$1(getter, cb, options) {
var this$1$1 = this;
{
assert(typeof getter === "function", "store.watch only accepts a function.");
}
return vue.watch(function() {
return getter(this$1$1.state, this$1$1.getters);
}, cb, Object.assign({}, options));
};
Store.prototype.replaceState = function replaceState(state) {
var this$1$1 = this;
this._withCommit(function() {
this$1$1._state.data = state;
});
};
Store.prototype.registerModule = function registerModule(path, rawModule, options) {
if (options === void 0)
options = {};
if (typeof path === "string") {
path = [path];
}
{
assert(Array.isArray(path), "module path must be a string or an Array.");
assert(path.length > 0, "cannot register the root module by using registerModule.");
}
this._modules.register(path, rawModule);
installModule(this, this.state, path, this._modules.get(path), options.preserveState);
resetStoreState(this, this.state);
};
Store.prototype.unregisterModule = function unregisterModule(path) {
var this$1$1 = this;
if (typeof path === "string") {
path = [path];
}
{
assert(Array.isArray(path), "module path must be a string or an Array.");
}
this._modules.unregister(path);
this._withCommit(function() {
var parentState = getNestedState(this$1$1.state, path.slice(0, -1));
delete parentState[path[path.length - 1]];
});
resetStore(this);
};
Store.prototype.hasModule = function hasModule(path) {
if (typeof path === "string") {
path = [path];
}
{
assert(Array.isArray(path), "module path must be a string or an Array.");
}
return this._modules.isRegistered(path);
};
Store.prototype.hotUpdate = function hotUpdate(newOptions) {
this._modules.update(newOptions);
resetStore(this, true);
};
Store.prototype._withCommit = function _withCommit(fn) {
var committing = this._committing;
this._committing = true;
fn();
this._committing = committing;
};
Object.defineProperties(Store.prototype, prototypeAccessors);
var mapState = normalizeNamespace(function(namespace, states) {
var res = {};
if (!isValidMap(states)) {
console.error("[vuex] mapState: mapper parameter must be either an Array or an Object");
}
normalizeMap(states).forEach(function(ref) {
var key = ref.key;
var val = ref.val;
res[key] = function mappedState() {
var state = this.$store.state;
var getters = this.$store.getters;
if (namespace) {
var module = getModuleByNamespace(this.$store, "mapState", namespace);
if (!module) {
return;
}
state = module.context.state;
getters = module.context.getters;
}
return typeof val === "function" ? val.call(this, state, getters) : state[val];
};
res[key].vuex = true;
});
return res;
});
var mapMutations = normalizeNamespace(function(namespace, mutations) {
var res = {};
if (!isValidMap(mutations)) {
console.error("[vuex] mapMutations: mapper parameter must be either an Array or an Object");
}
normalizeMap(mutations).forEach(function(ref) {
var key = ref.key;
var val = ref.val;
res[key] = function mappedMutation() {
var args = [], len = arguments.length;
while (len--)
args[len] = arguments[len];
var commit2 = this.$store.commit;
if (namespace) {
var module = getModuleByNamespace(this.$store, "mapMutations", namespace);
if (!module) {
return;
}
commit2 = module.context.commit;
}
return typeof val === "function" ? val.apply(this, [commit2].concat(args)) : commit2.apply(this.$store, [val].concat(args));
};
});
return res;
});
function normalizeMap(map) {
if (!isValidMap(map)) {
return [];
}
return Array.isArray(map) ? map.map(function(key) {
return { key, val: key };
}) : Object.keys(map).map(function(key) {
return { key, val: map[key] };
});
}
function isValidMap(map) {
return Array.isArray(map) || isObject(map);
}
function normalizeNamespace(fn) {
return function(namespace, map) {
if (typeof namespace !== "string") {
map = namespace;
namespace = "";
} else if (namespace.charAt(namespace.length - 1) !== "/") {
namespace += "/";
}
return fn(namespace, map);
};
}
function getModuleByNamespace(store2, helper, namespace) {
var module = store2._modulesNamespaceMap[namespace];
if (!module) {
console.error("[vuex] module namespace not found in " + helper + "(): " + namespace);
}
return module;
}
const _export_sfc = (sfc, props) => {
const target = sfc.__vccOpts || sfc;
for (const [key, val] of props) {
target[key] = val;
}
return target;
};
const _sfc_main$c = {
data() {
return {
images: [
["/static/image/collected.png", "/static/image/collected1.png"],
["/static/image/favicon.png", "/static/image/favicon1.png"],
["/static/image/freeok.png", "/static/image/freeok1.png"],
["/static/image/fullscreen.png", "/static/image/fullscreen1.png"]
],
// 每个卡片当前是否显示第二张图
isFlipped: [false, false, false, false],
transitionClass: "fade"
};
},
methods: {
...mapMutations(["showPage"]),
async pageBack(e) {
uni.showModal({
title: "提示",
content: "是否退出",
success: (res) => {
if (res.confirm) {
formatAppLog("log", "at pages/index/index.vue:39", "用户点击确定");
plus.runtime.quit();
} else if (res.cancel) {
formatAppLog("log", "at pages/index/index.vue:42", "用户点击取消");
}
}
});
return false;
}
},
async mounted() {
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
while (true) {
for (let i = 0; i < this.images.length; i++) {
this.$set(this.isFlipped, i, true);
await delay(1e3);
}
await delay(2e3);
for (let i = 0; i < this.images.length; i++) {
this.$set(this.isFlipped, i, false);
await delay(1e3);
}
await delay(2e3);
}
}
};
function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock(
"div",
{
class: "container",
onBack: _cache[0] || (_cache[0] = (...args) => $options.pageBack && $options.pageBack(...args))
},
[
vue.createElementVNode("div", { class: "grid-container" }, [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList($data.images, (item, index) => {
return vue.openBlock(), vue.createElementBlock(
"div",
{
key: index,
class: vue.normalizeClass(["grid-item", { flipped: $data.isFlipped[index] }])
},
[
vue.createElementVNode("image", {
class: "img-front",
src: item[0],
alt: ""
}, null, 8, ["src"]),
vue.createElementVNode("image", {
class: "img-back",
src: item[1],
alt: ""
}, null, 8, ["src"])
],
2
/* CLASS */
);
}),
128
/* KEYED_FRAGMENT */
))
])
],
32
/* NEED_HYDRATION */
);
}
const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b], ["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/pages/index/index.vue"]]);
const _sfc_main$b = {
data() {
return {
updateTime: Date.now() / 1e3,
version: "1.0.0",
//当前运行版本(打包时manifest里的版本名称)
percent: 0,
//进度条百分比
updateBtn: false,
//是否显示立即更新
cancleBtn: false,
//是否显示取消按钮
downloadedSize: 0,
//当前已下载大小
packageFileSize: 0,
//安装包大小
data: {
describe: "1. 修复已知问题<br>2. 优化用户体验",
edition_url: "https://vkceyugu.cdn.bspapp.com/VKCEYUGU-6bef1fe3-e3e3-4909-9f0c-6ed9bd11c93b/aae2360a-6628-4c93-b873-ce1600b9a852.apk",
//安装包下载地址或者通用应用市场地址
edition_force: 1,
//是否强制更新 0代表否 1代表是
package_type: 0,
//0是整包升级 1是wgt升级
edition_name: "1.0.1"
//后端返回的版本名称
}
};
},
onHide() {
this.data.edition_force = 0;
uni.navigateBack({
delta: 1
});
},
onLoad({ obj }) {
this.data = JSON.parse(obj);
if (this.data.edition_force == 0) {
this.cancleBtn = true;
}
plus.runtime.getProperty(plus.runtime.appid, (inf) => {
this.version = inf.version;
});
},
onShow() {
this.confirm();
},
onBackPress() {
if (this.data.edition_force == 1) {
return true;
}
},
methods: {
cancel() {
uni.navigateBack({
delta: 1
});
},
confirm() {
if (this.data.package_type == 0) {
if (this.data.edition_url.includes(".apk")) {
this.updateBtn = false;
this.cancleBtn = false;
this.download();
} else {
this.data.edition_force = 0;
plus.runtime.openURL(this.data.edition_url);
uni.navigateBack({
delta: 1
});
}
} else {
this.updateBtn = false;
this.cancleBtn = false;
this.download();
}
},
download() {
let package_type = this.data.package_type;
let that = this;
const downloadTask = uni.downloadFile({
url: this.data.edition_url,
success: (res) => {
if (res.statusCode === 200) {
this.percent = 100;
uni.showToast({
title: "下载完成",
icon: "none",
duration: 2500
});
plus.runtime.install(
res.tempFilePath,
{
force: true
//true表示强制安装不进行版本号的校验false则需要版本号校验
},
function() {
formatAppLog("log", "at uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update.vue:112", "success", success);
uni.showToast({
title: "下载完成2",
icon: "none",
duration: 2500
});
if (package_type == 1) {
plus.runtime.restart();
}
},
function(e) {
that.data.edition_force = 0;
uni.showToast({
title: e.message,
icon: "none",
duration: 2500
});
setTimeout(() => {
uni.navigateBack();
}, 2e3);
}
);
}
}
});
downloadTask.onProgressUpdate((res) => {
if (this.percent != res.progress) {
let updateTime2 = Date.now() / 1e3;
if (updateTime2 - this.updateTime > 2) {
this.updateTime = updateTime2;
this.downloadedSize = (res.totalBytesWritten / Math.pow(1024, 2)).toFixed(2);
this.packageFileSize = (res.totalBytesExpectedToWrite / Math.pow(1024, 2)).toFixed(2);
this.percent = res.progress;
}
}
});
}
}
};
function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "update-mask flex-center" }, [
vue.createElementVNode("view", { class: "content botton-radius" }, [
vue.createElementVNode("view", { class: "content-body botton-radius" }, [
vue.createElementVNode("view", {
class: "title",
style: { "padding-top": "20rpx" }
}, [
vue.createElementVNode(
"text",
null,
"更新内容" + vue.toDisplayString($data.downloadedSize) + "-" + vue.toDisplayString($data.packageFileSize),
1
/* TEXT */
)
]),
vue.createElementVNode("view", { class: "body" }, [
vue.createElementVNode("scroll-view", {
class: "box-des-scroll",
"scroll-y": "true"
}, [
vue.createElementVNode("rich-text", {
nodes: $data.data.describe
}, null, 8, ["nodes"])
])
]),
vue.createElementVNode("view", { class: "footer flex-center" }, [
!$data.updateBtn ? (vue.openBlock(), vue.createElementBlock("view", {
key: 0,
class: "progress-box flex-column"
}, [
vue.createElementVNode("progress", {
class: "progress",
"border-radius": "35",
percent: $data.percent,
activeColor: "#3DA7FF",
"show-info": "",
"stroke-width": "10"
}, null, 8, ["percent"])
])) : vue.createCommentVNode("v-if", true)
])
])
])
]);
}
const UniModulesRtUniUpdateComponentsRtUniUpdateRtUniUpdate = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update.vue"]]);
const _imports_0$1 = "/static/play.png";
const _sfc_main$a = {
inject: ["pageId", "pageState"],
watch: {},
props: {
clazz: {
type: String
},
src: {
type: String
},
autoplay: {
type: Boolean,
default: true
},
showProgress: {
type: Boolean,
default: false
}
},
data() {
return {
status: 0,
currentTime: 0,
fullScreen: false
};
},
created() {
this.viderContext = uni.createVideoContext("player");
uni.$on("keyDown", (data) => {
this.keyDown(data);
});
},
methods: {
keyDown(Arrow) {
formatAppLog("log", "at components/unitv-video/unitv-video.vue:46", "监测到按键:" + Arrow);
switch (Arrow) {
case "KeyLeft":
{
var time = parseInt(this.currentTime - 15, 10);
this.viderContext.seek(time < 0 ? 0 : time);
}
break;
case "KeyRight":
{
var time = parseInt(this.currentTime + 15, 10);
this.viderContext.seek(time);
}
break;
case "KeyEnter":
{
this.clickVideo();
}
break;
}
},
clickVideo() {
if (this.status) {
this.viderContext.pause();
this.viderContext.showStatusBar();
} else {
this.viderContext.play();
this.viderContext.hideStatusBar();
}
},
timeupdate: function(e) {
this.currentTime = e.detail.currentTime;
},
fullscreenchange: function(e) {
this.fullScreen = e.detail.fullScreen;
this.pageState.handleEvent = e.detail.fullScreen;
if (this.fullScreen) {
this.viderContext.play();
}
}
}
};
function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("video", {
id: "player",
class: vue.normalizeClass($props.clazz),
src: $props.src,
autoplay: $props.autoplay,
"enable-play-gesture": false,
"enable-progress-gesture": false,
"show-center-play-btn": false,
"show-progress": true,
onPlay: _cache[0] || (_cache[0] = ($event) => $data.status = 1),
onPause: _cache[1] || (_cache[1] = ($event) => $data.status = 0),
onTimeupdate: _cache[2] || (_cache[2] = (...args) => $options.timeupdate && $options.timeupdate(...args)),
onFullscreenchange: _cache[3] || (_cache[3] = (...args) => $options.fullscreenchange && $options.fullscreenchange(...args))
}, [
$data.status == 0 ? (vue.openBlock(), vue.createElementBlock("cover-image", {
key: 0,
class: "controls-play img",
src: _imports_0$1
})) : vue.createCommentVNode("v-if", true)
], 42, ["src", "autoplay"]);
}
const __easycom_0$2 = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9], ["__scopeId", "data-v-59a00a59"], ["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/components/unitv-video/unitv-video.vue"]]);
const _sfc_main$9 = {
name: "unitvPage",
inject: ["pageId", "zoneId", "zoneState", "zoneItems"],
props: {
item: {
type: Number
},
hoverClass: {
type: String,
default: "item-hover"
},
selectClass: {
type: String,
default: "item-active"
}
},
updated() {
this.zoneItems[this.item] = this;
},
created() {
this.zoneItems[this.item] = this;
},
mounted() {
if (this.zoneState.curZone && this.zoneState.curItem == this.item) {
this.handleHover();
this.refreshScroll();
this.refreshState();
}
},
data() {
return {
selected: false,
hovered: false
};
},
computed: {
...mapState(["currentZone", "currentPage"]),
id: function() {
return this.zoneId + "_" + this.item;
}
},
methods: {
clientRect(callback) {
let view = uni.createSelectorQuery().in(this).select("#" + this.id);
view.boundingClientRect((data) => {
callback(data);
}).exec();
},
refreshScroll() {
this.clientRect((clientRect) => {
this.currentPage.RefreshScrollTop(clientRect);
if (this.zoneState.curScroll != null) {
this.zoneState.curScroll.RefreshScrollLeft(clientRect);
}
});
},
refreshState() {
if (!this.zoneState.curZone && this.zoneState.curItem == this.item) {
this.selected = true;
} else {
this.selected = false;
}
if (this.zoneState.curZone && this.zoneState.curItem == this.item) {
this.hovered = true;
} else {
this.hovered = false;
}
},
handleHover() {
this.$emit("hover", this.item);
},
handleClick() {
this.$emit("click", this.item);
},
handleDel() {
this.$emit("del", this.item);
}
},
watch: {
hovered: function(newValue) {
if (newValue != "") {
this.handleHover();
this.refreshScroll();
}
}
}
};
function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", {
id: $options.id,
class: vue.normalizeClass(`${$data.selected ? $props.selectClass : ""} ${$data.hovered ? $props.hoverClass : ""}`)
}, [
vue.renderSlot(_ctx.$slots, "default")
], 10, ["id"]);
}
const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/components/unitv-item/unitv-item.vue"]]);
const _sfc_main$8 = {
name: "unitvPage",
inject: ["pageId", "pageState"],
props: {
id: {
// Zone Id
type: String,
required: true
},
up: {
// Zone切换时上一Zone Id
type: String
},
down: {
// Zone切换时下一Zone Id
type: String
},
left: {
// Zone切换时左一Zone Id
type: String
},
right: {
// Zone切换时右一Zone Id
type: String
},
item: {
// Zone当前焦点item索引
type: Number,
default: 0
},
prevZone: {
// Zone改变后的上一个Zone Id
type: String
},
row: {
// Zone的item总行数
type: Number,
default: 1
},
column: {
// Zone的item总列数
type: Number,
default: 1
},
defaultBehavior: {
type: Boolean,
default: true
},
autoFous: {
type: Boolean,
default: false
},
values: {
type: Array,
default: () => []
},
count: {
type: Number,
default: 0
}
},
provide() {
return {
zoneId: this.id,
zoneState: this.zoneState,
zoneItems: this.items
};
},
created() {
if (this.autoFous) {
this.pageState.curZoneId = this.id;
this.zoneState.curZone = true;
this.focus = true;
this.switchZone(this);
}
this._switchItem(this.item);
this.currentPage.pushZone(this);
},
mounted() {
},
computed: {
...mapState(["currentZone", "currentPage"]),
size: function() {
if (this.count != 0) {
return this.count;
} else if (this.values.length != 0) {
return this.values.length;
} else {
return this.items.length;
}
},
rows: function() {
if (this.row > 1) {
return this.row;
}
return Math.ceil(this.size / this.column);
}
},
data() {
return {
citem: 0,
crow: 0,
// Zone的当前行
prevItem: 0,
// item改变后的上一item索引
focus: false,
items: [],
// Zone的所有item数组集合
zoneState: {
curItem: this.citem,
curZone: this.focus,
curScroll: null
},
StepSeq: 0
};
},
methods: {
...mapMutations(["switchZone"]),
_switchItem: function(item, oldItem) {
this.citem = item;
this.zoneState.curItem = item;
try {
this.refreshItem();
if (oldItem != void 0) {
this.items[oldItem].refreshState();
}
} catch (e) {
}
},
refreshItem: function() {
this.items[this.citem].refreshState();
},
evtArrow: function(Arrow) {
var self = this;
var oldItem = this.citem || 0;
var item = this.citem || 0;
var steps = this.rows * this.column;
var Row = Math.floor(item / this.column);
var Border = this[Arrow];
var cRow = this.crow;
switch (Arrow) {
case "left":
item -= 1;
if (Math.floor(item / this.column) != Row) {
item = item - steps;
}
break;
case "right":
item += 1;
if (Math.floor(item / this.column) != Row) {
item = item + steps;
}
break;
case "up":
item -= this.column;
this.crow = cRow - 1;
break;
case "down":
item += this.column;
this.crow = cRow + 1;
break;
}
if (item >= 0 && item <= steps - 1) {
if (item + this.StepSeq * steps + 1 > this.size) {
item = this.size - this.StepSeq * steps - 1;
}
this.citem = item;
this._switchItem(this.citem, oldItem);
if (this.crow === this.rows - 1) {
this.$emit("scrolltolower");
}
} else {
this.crow = cRow;
OverBorder();
}
function OverBorder() {
if (Border) {
if (Border === self.id) {
ScrollItem();
} else {
ChangeZone();
}
}
function ScrollItem() {
switch (Arrow) {
case "up":
item = self.citem + self.column * (self.rows - 1);
self.crow = self.rows - 1;
break;
case "down":
item = self.citem - self.column * (self.rows - 1);
self.crow = 0;
break;
case "left":
item = (Row + 1) * self.column - 1;
break;
case "right":
item = Row * self.column;
break;
}
if (self.size > steps) {
self.StepSeq = self.StepSeq || 0;
var MaxSeq = Math.ceil(self.size / steps) - 1;
if (Arrow === "left" || Arrow === "up") {
self.StepSeq = self.StepSeq > 0 ? self.StepSeq - 1 : MaxSeq;
} else if (Arrow === "right" || Arrow === "down") {
self.StepSeq = self.StepSeq < MaxSeq ? self.StepSeq + 1 : 0;
}
}
if (item + self.StepSeq * steps + 1 > self.size) {
item = 0;
}
self.citem = item;
self._switchItem(self.citem, oldItem);
}
function ChangeZone() {
self.currentPage.ChangeZone(Border);
self.refreshItem();
}
}
},
evtEnter: function() {
var itemObj = this.items[this.citem];
if (itemObj) {
itemObj.handleClick();
}
},
evtDel: function() {
var itemObj = this.items[this.citem];
if (itemObj) {
itemObj.handleDel();
}
}
},
watch: {
values: function(newVal, oldVal) {
}
}
};
function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { id: $props.id }, [
vue.renderSlot(_ctx.$slots, "default")
], 8, ["id"]);
}
const __easycom_1$1 = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/components/unitv-zone/unitv-zone.vue"]]);
const _sfc_main$7 = {
inject: ["pageId", "zoneId", "zoneState"],
watch: {},
data() {
return {
scrollLeft: 0,
old: {
scrollLeft: 0
},
windowWidth: null
};
},
created() {
this.zoneState.curScroll = this;
uni.getSystemInfo({
success: (res) => {
this.windowWidth = res.windowWidth;
}
});
},
methods: {
scroll: function(e) {
this.old.scrollLeft = e.detail.scrollLeft;
},
RefreshScrollLeft(clientRect) {
var left = clientRect.left;
if (left > 0) {
left = clientRect.right;
}
if (left > this.windowWidth) {
var left1 = this.old.scrollLeft + (left - this.windowWidth + 10);
this.scrollLeft = left1;
} else if (left < 0) {
this.scrollLeft = this.old.scrollLeft + (left - 20);
}
}
}
};
function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("scroll-view", {
"scroll-x": "true",
"scroll-left": $data.scrollLeft,
onScroll: _cache[0] || (_cache[0] = (...args) => $options.scroll && $options.scroll(...args))
}, [
vue.renderSlot(_ctx.$slots, "default")
], 40, ["scroll-left"]);
}
const __easycom_1 = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/components/unitv-scroll/unitv-scroll.vue"]]);
const block0 = (Comp) => {
(Comp.$renderjs || (Comp.$renderjs = [])).push("whole");
(Comp.$renderjsModules || (Comp.$renderjsModules = {}))["whole"] = "5c9edcc4";
};
const _sfc_main$6 = {
name: "unitvPage",
props: {
id: {
type: String,
required: true
},
prePageId: {
type: String
},
show: {
type: Boolean,
default: false
},
handleEvent: {
type: Boolean,
default: false
}
},
provide() {
return {
pageId: this.id,
pageState: this.pageState
};
},
created() {
if (this.show) {
this.switchPage(this);
}
uni.getSystemInfo({
success: (res) => {
this.windowHeight = res.windowHeight;
}
});
},
mounted() {
this.pushPage(this);
},
computed: {
...mapState(["currentZone", "currentPage", "allPages"]),
current: function() {
return this.currentPage == this;
}
},
data() {
return {
key: "",
oldKey: "",
windowHeight: null,
scrollTop: 0,
old: {
scrollTop: 0
},
Zone: [],
pageState: {
curZoneId: "",
handleEvent: this.handleEvent
},
transfromClass: {
"position": "fixed",
"bottom": 0,
"top": 0,
"left": 0,
"right": 0,
"display": "flex",
"justify-content": "center",
"align-items": "center"
}
};
},
methods: {
...mapMutations(["switchPage", "switchZone", "pushPage"]),
showPage() {
this.switchPage(this);
this.switchZone(this.Zone[this.pageState.curZoneId]);
this.Zone[this.pageState.curZoneId].refreshItem();
return true;
},
pushZone(zone) {
this.Zone[zone.id] = zone;
},
keyCodeClick2(obj) {
let keyCode = obj.code;
this.key = keyCode;
this.oldKey = obj.oldCode;
},
keyCodeClick(obj) {
let keyCode = obj.code;
this.key = keyCode;
this.oldKey = obj.oldCode;
if (this.pageState.handleEvent) {
uni.$emit("keyDown", keyCode);
} else {
switch (keyCode) {
case "KeyUp":
this.evtArrow("up");
break;
case "KeyDown":
this.evtArrow("down");
break;
case "KeyLeft":
this.evtArrow("left");
break;
case "KeyRight":
this.evtArrow("right");
break;
case "KeyEnter":
this.evtEnter();
break;
case "KeyBack":
this.evtBack();
break;
case "KeyDel":
this.evtDel();
break;
}
}
},
evtArrow: function(Arrow) {
var zone = this.currentZone;
zone.evtArrow(Arrow);
},
evtEnter: function() {
this.currentZone.evtEnter();
},
evtDel: function() {
this.currentZone.evtDel();
},
evtBack: function() {
this.$emit("back");
this.key = "KeyBack";
},
scroll: function(e) {
this.old.scrollTop = e.detail.scrollTop;
},
ChangeZone(zoneId) {
var zone = this.Zone[zoneId];
if (zone) {
this.currentZone.zoneState.curZone = false;
this.pageState.curZoneId = zoneId;
zone.zoneState.curZone = true;
this.switchZone(this.Zone[zoneId]);
this.Zone[zoneId].refreshItem();
}
},
RefreshScrollTop(clientRect) {
var top = clientRect.top;
if (top > 0) {
top = clientRect.bottom;
}
if (top > this.windowHeight) {
var top1 = this.old.scrollTop + (top - this.windowHeight + 10);
this.scrollTop = top1;
} else if (top < 0) {
this.scrollTop = this.old.scrollTop + (top - 20);
}
}
},
watch: {
handleEvent: function(val) {
this.pageState.handleEvent = val;
}
}
};
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock(
vue.Fragment,
null,
[
vue.withDirectives(vue.createElementVNode("scroll-view", {
"scroll-y": "true",
style: vue.normalizeStyle({ height: $data.windowHeight + "px" }),
ref: "page",
"scroll-top": $data.scrollTop,
onScroll: _cache[2] || (_cache[2] = (...args) => $options.scroll && $options.scroll(...args))
}, [
vue.createElementVNode("view", {
onClick: _cache[0] || (_cache[0] = (...args) => _ctx.whole.onClick && _ctx.whole.onClick(...args)),
id: "onClick"
}),
vue.createElementVNode("view", {
onClick: _cache[1] || (_cache[1] = (...args) => _ctx.whole.onClick2 && _ctx.whole.onClick2(...args)),
id: "onClick2"
}),
vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
], 44, ["scroll-top"]), [
[vue.vShow, $options.current]
]),
vue.createCommentVNode(` <unitv-transition :duration="500" :mode-class="['fade']" :styles="transfromClass" :show="current">
</unitv-transition> `)
],
2112
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
);
}
if (typeof block0 === "function")
block0(_sfc_main$6);
const __easycom_2 = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__scopeId", "data-v-273aa4af"], ["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/components/unitv-page/unitv-page.vue"]]);
const _imports_0 = "/static/fullscreen.png";
const _imports_1 = "/static/favicon.png";
const _sfc_main$5 = {
data() {
return {
item: [],
status: 0,
handEvt: false,
currentTime: 0,
moiveData: {},
moiveType: "",
moiveUrl: "",
moiveUrlList: []
};
},
onBackPress(options) {
this.$refs.playPage.evtBack();
return true;
},
onReady() {
this.viderContext = uni.createVideoContext("player");
},
onLoad(e) {
formatAppLog("log", "at pages/player/player.vue:64", e);
this.$api.get("/platCupfox/detail/" + e.id, null).then((res) => {
formatAppLog("log", "at pages/player/player.vue:66", res);
if (res == void 0 || res == null || res == "") {
uni.showToast({
title: "视频资源数据异常,请检查接口数据",
icon: "none",
duration: 5e3
});
return;
}
this.moiveData = res;
this.moiveType = res.type;
this.item = res.resources;
if (res.resources != null && res.resources.length > 0) {
let aa = res.resources[0];
if (aa.movieFlag == "1") {
this.moiveUrl = aa.movieUrl;
if (res.type == "multiple") {
this.moiveUrlList = aa.resourceUrlList;
}
}
}
});
},
methods: {
switchFullScreen() {
this.viderContext.requestFullScreen();
},
websiteClick(data) {
if (data.movieFlag == "1") {
if (this.moiveType == "multiple") {
this.moiveUrlList = data.resourceUrlList;
} else {
this.moiveUrl = data.movieUrl;
}
} else {
uni.showToast({
title: "当前站点视频还未解析,请联系系统管理员处理",
icon: "none",
duration: 2e3
});
}
},
websiteHover(data) {
formatAppLog("log", "at pages/player/player.vue:112", "websiteHover");
},
pageBack(e) {
formatAppLog("log", "at pages/player/player.vue:121", "按了返回");
uni.reLaunch({
url: "../index/index"
});
return false;
}
}
};
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
const _component_unitv_video = resolveEasycom(vue.resolveDynamicComponent("unitv-video"), __easycom_0$2);
const _component_unitv_item = resolveEasycom(vue.resolveDynamicComponent("unitv-item"), __easycom_0$1);
const _component_unitv_zone = resolveEasycom(vue.resolveDynamicComponent("unitv-zone"), __easycom_1$1);
const _component_unitv_scroll = resolveEasycom(vue.resolveDynamicComponent("unitv-scroll"), __easycom_1);
const _component_unitv_page = resolveEasycom(vue.resolveDynamicComponent("unitv-page"), __easycom_2);
return vue.openBlock(), vue.createElementBlock("view", null, [
vue.createVNode(_component_unitv_page, {
id: "playPage",
show: true,
ref: "playPage",
onBack: $options.pageBack
}, {
default: vue.withCtx(() => [
vue.createElementVNode("view", { class: "movie-contain" }, [
vue.createVNode(_component_unitv_video, {
id: "player",
class: "player",
src: $data.moiveUrl,
autoplay: true
}, null, 8, ["src"]),
vue.createElementVNode("view", { class: "movie-inter" }, [
vue.createElementVNode(
"view",
{ class: "movie-title" },
vue.toDisplayString($data.moiveData.title),
1
/* TEXT */
),
vue.createElementVNode("view", { class: "movie-info" }, [
vue.createElementVNode(
"text",
null,
"影片信息:" + vue.toDisplayString($data.moiveData.info),
1
/* TEXT */
)
]),
vue.createElementVNode(
"view",
{ class: "movie-content" },
"简介:" + vue.toDisplayString($data.moiveData.comment),
1
/* TEXT */
),
vue.createElementVNode("view", null, [
vue.createVNode(_component_unitv_zone, {
id: "btn-zone",
autoFous: true,
column: 2,
down: "list-zone",
item: 0,
values: [0, 1],
class: "btn-zone"
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_unitv_item, {
item: 0,
class: "fullscreen-btn",
onClick: $options.switchFullScreen
}, {
default: vue.withCtx(() => [
vue.createElementVNode("image", {
mode: "aspectFit",
src: _imports_0
}),
vue.createElementVNode("view", null, "全屏播放")
]),
_: 1
/* STABLE */
}, 8, ["onClick"]),
vue.createVNode(_component_unitv_item, {
item: 1,
class: "favicon-btn"
}, {
default: vue.withCtx(() => [
vue.createElementVNode("image", {
mode: "aspectFit",
src: _imports_1
}),
vue.createElementVNode("view", null, "收藏")
]),
_: 1
/* STABLE */
})
]),
_: 1
/* STABLE */
})
])
])
]),
vue.createVNode(_component_unitv_zone, {
id: "list-zone",
class: "list-zone",
up: "btn-zone",
down: $data.moiveType == "multiple" ? "resource-zone" : "",
values: $data.item,
column: 8
}, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList($data.item, (a, index) => {
return vue.openBlock(), vue.createBlock(_component_unitv_item, {
item: index,
key: index,
class: "item",
style: vue.normalizeStyle(a.movieFlag == "1" ? "background-color: #CD7F32;" : ""),
onClick: ($event) => $options.websiteClick(a),
onHover: ($event) => $options.websiteHover(a)
}, {
default: vue.withCtx(() => [
vue.createTextVNode(
vue.toDisplayString(a.website),
1
/* TEXT */
)
]),
_: 2
/* DYNAMIC */
}, 1032, ["item", "style", "onClick", "onHover"]);
}),
128
/* KEYED_FRAGMENT */
))
]),
_: 1
/* STABLE */
}, 8, ["down", "values"]),
$data.moiveType == "multiple" ? (vue.openBlock(), vue.createElementBlock("view", {
key: 0,
class: "title"
}, "影视剧集")) : vue.createCommentVNode("v-if", true),
$data.moiveType == "multiple" ? (vue.openBlock(), vue.createBlock(_component_unitv_zone, {
key: 1,
id: "resource-zone",
class: "resource-zone",
up: "list-zone",
values: $data.moiveUrlList,
column: $data.moiveUrlList.length
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_unitv_scroll, null, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList($data.moiveUrlList, (a, index) => {
return vue.openBlock(), vue.createBlock(_component_unitv_item, {
item: index,
key: index,
class: "item-resource"
}, {
default: vue.withCtx(() => [
vue.createElementVNode(
"view",
{ class: "item-resource-info" },
vue.toDisplayString(a.name),
1
/* TEXT */
)
]),
_: 2
/* DYNAMIC */
}, 1032, ["item"]);
}),
128
/* KEYED_FRAGMENT */
))
]),
_: 1
/* STABLE */
})
]),
_: 1
/* STABLE */
}, 8, ["values", "column"])) : vue.createCommentVNode("v-if", true)
]),
_: 1
/* STABLE */
}, 8, ["onBack"])
]);
}
const PagesPlayerPlayer = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/pages/player/player.vue"]]);
const _sfc_main$4 = {
data() {
return {
item1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
item5: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
curSwiper: 0,
nextZone: "szone_1"
};
},
computed: {},
onLoad() {
},
onReady() {
},
methods: {
hoverItem(e) {
formatAppLog("log", "at pages/swiper/swiper.vue:41", "获得焦点:" + e);
this.curSwiper = e;
this.nextZone = "szone_" + (e + 1);
},
clickItem(e) {
formatAppLog("log", "at pages/swiper/swiper.vue:46", "点击了:" + e);
uni.showToast({
title: "成功点击了",
icon: "none",
duration: 2e3
});
},
loadMore() {
uni.showToast({
title: "到达底部",
icon: "none",
duration: 2e3
});
}
}
};
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
const _component_unitv_item = resolveEasycom(vue.resolveDynamicComponent("unitv-item"), __easycom_0$1);
const _component_unitv_scroll = resolveEasycom(vue.resolveDynamicComponent("unitv-scroll"), __easycom_1);
const _component_unitv_zone = resolveEasycom(vue.resolveDynamicComponent("unitv-zone"), __easycom_1$1);
const _component_unitv_page = resolveEasycom(vue.resolveDynamicComponent("unitv-page"), __easycom_2);
return vue.openBlock(), vue.createElementBlock("view", { class: "page content" }, [
vue.createVNode(
_component_unitv_page,
{
id: "swiperPage",
ref: "swiperPage"
},
{
default: vue.withCtx(() => [
vue.createElementVNode("view", null, [
vue.createVNode(_component_unitv_zone, {
id: "zone1",
class: "zone1",
autoFous: true,
down: $data.nextZone,
item: 0,
values: $data.item1,
column: $data.item1.length
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_unitv_scroll, null, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList($data.item1, (a, index) => {
return vue.openBlock(), vue.createBlock(_component_unitv_item, {
item: index,
key: index,
class: "item",
onHover: $options.hoverItem
}, {
default: vue.withCtx(() => [
vue.createTextVNode(
vue.toDisplayString(a),
1
/* TEXT */
)
]),
_: 2
/* DYNAMIC */
}, 1032, ["item", "onHover"]);
}),
128
/* KEYED_FRAGMENT */
))
]),
_: 1
/* STABLE */
})
]),
_: 1
/* STABLE */
}, 8, ["down", "values", "column"])
]),
vue.createElementVNode("swiper", {
class: "swiper",
current: $data.curSwiper
}, [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList($data.item1, (s, index) => {
return vue.openBlock(), vue.createElementBlock("swiper-item", {
"data-zone": "szone_" + s,
key: "s_" + index
}, [
vue.createVNode(_component_unitv_zone, {
id: "szone_" + s,
class: "zone5",
up: "zone1",
values: $data.item5,
column: 6,
onScrolltolower: $options.loadMore
}, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList($data.item5, (a, index2) => {
return vue.openBlock(), vue.createBlock(_component_unitv_item, {
item: index2,
key: index2,
class: "item"
}, {
default: vue.withCtx(() => [
vue.createTextVNode(
vue.toDisplayString(s) + "-" + vue.toDisplayString(a),
1
/* TEXT */
)
]),
_: 2
/* DYNAMIC */
}, 1032, ["item"]);
}),
128
/* KEYED_FRAGMENT */
))
]),
_: 2
/* DYNAMIC */
}, 1032, ["id", "values", "onScrolltolower"])
], 8, ["data-zone"]);
}),
128
/* KEYED_FRAGMENT */
))
], 8, ["current"])
]),
_: 1
/* STABLE */
},
512
/* NEED_PATCH */
)
]);
}
const PagesSwiperSwiper = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/pages/swiper/swiper.vue"]]);
const _sfc_main$3 = {
name: "uniTransition",
props: {
show: {
type: Boolean,
default: false
},
modeClass: {
type: Array,
default() {
return [];
}
},
duration: {
type: Number,
default: 300
},
styles: {
type: Object,
default() {
return {};
}
}
},
data() {
return {
isShow: false,
transform: "",
ani: {
in: "",
active: ""
}
};
},
watch: {
show: {
handler(newVal) {
if (newVal) {
this.open();
} else {
this.close();
}
},
immediate: true
}
},
computed: {
stylesObject() {
let styles = {
...this.styles,
"transition-duration": this.duration / 1e3 + "s"
};
let transfrom = "";
for (let i in styles) {
let line = this.toLine(i);
transfrom += line + ":" + styles[i] + ";";
}
return transfrom;
}
},
created() {
},
methods: {
change() {
this.$emit("click", {
detail: this.isShow
});
},
open() {
clearTimeout(this.timer);
this.isShow = true;
this.transform = "";
this.ani.in = "";
for (let i in this.getTranfrom(false)) {
if (i === "opacity") {
this.ani.in = "fade-in";
} else {
this.transform += `${this.getTranfrom(false)[i]} `;
}
}
this.$nextTick(() => {
setTimeout(() => {
this._animation(true);
}, 50);
});
},
close(type) {
clearTimeout(this.timer);
this._animation(false);
},
_animation(type) {
let styles = this.getTranfrom(type);
this.transform = "";
for (let i in styles) {
if (i === "opacity") {
this.ani.in = `fade-${type ? "out" : "in"}`;
} else {
this.transform += `${styles[i]} `;
}
}
this.timer = setTimeout(() => {
if (!type) {
this.isShow = false;
}
this.$emit("change", {
detail: this.isShow
});
}, this.duration);
},
getTranfrom(type) {
let styles = {
transform: ""
};
this.modeClass.forEach((mode) => {
switch (mode) {
case "fade":
styles.opacity = type ? 1 : 0;
break;
case "slide-top":
styles.transform += `translateY(${type ? "0" : "-100%"}) `;
break;
case "slide-right":
styles.transform += `translateX(${type ? "0" : "100%"}) `;
break;
case "slide-bottom":
styles.transform += `translateY(${type ? "0" : "100%"}) `;
break;
case "slide-left":
styles.transform += `translateX(${type ? "0" : "-100%"}) `;
break;
case "zoom-in":
styles.transform += `scale(${type ? 1 : 0.8}) `;
break;
case "zoom-out":
styles.transform += `scale(${type ? 1 : 1.2}) `;
break;
}
});
return styles;
},
_modeClassArr(type) {
let mode = this.modeClass;
if (typeof mode !== "string") {
let modestr = "";
mode.forEach((item) => {
modestr += item + "-" + type + ",";
});
return modestr.substr(0, modestr.length - 1);
} else {
return mode + "-" + type;
}
},
// getEl(el) {
// __f__('log','at components/unitv-transition/unitv-transition.vue:208',el || el.ref || null);
// return el || el.ref || null
// },
toLine(name) {
return name.replace(/([A-Z])/g, "-$1").toLowerCase();
}
}
};
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
return $data.isShow ? (vue.openBlock(), vue.createElementBlock(
"view",
{
key: 0,
ref: "ani",
class: vue.normalizeClass(["uni-transition", [$data.ani.in]]),
style: vue.normalizeStyle("transform:" + $data.transform + ";" + $options.stylesObject),
onClick: _cache[0] || (_cache[0] = (...args) => $options.change && $options.change(...args))
},
[
vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
],
6
/* CLASS, STYLE */
)) : vue.createCommentVNode("v-if", true);
}
const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__scopeId", "data-v-9a8be1b4"], ["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/components/unitv-transition/unitv-transition.vue"]]);
const _sfc_main$2 = {
components: {},
data() {
return {
show: false,
transShow: false,
modeClass: ["fade"],
maskClass: {
"position": "fixed",
"bottom": 0,
"top": 0,
"left": 0,
"right": 0,
"background-color": "rgba(0, 0, 0, 0.4)"
},
transfromClass: {
"position": "fixed",
"bottom": 0,
"top": 0,
"left": 0,
"right": 0,
"display": "flex",
"justify-content": "center",
"align-items": "center"
}
};
},
onLoad() {
},
methods: {
mask() {
this.show = true;
},
open(mode) {
this.modeClass = mode;
this.transShow = !this.transShow;
},
onTap() {
this.transShow = this.show = false;
},
change(e) {
formatAppLog("log", "at pages/transition/transition.vue:73", e.detail);
}
}
};
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
const _component_unitv_transition = resolveEasycom(vue.resolveDynamicComponent("unitv-transition"), __easycom_0);
return vue.openBlock(), vue.createElementBlock("view", null, [
vue.createElementVNode("text", { class: "example-info" }, "过渡动画,通常用于元素的过渡效果,例如淡隐淡出效果,遮罩层的效果、放大缩小的效果等"),
vue.createElementVNode("view", { class: "example-body" }, [
vue.createElementVNode("button", {
class: "transition-button",
type: "primary",
onClick: _cache[0] || (_cache[0] = ($event) => $options.open(["fade"]))
}, "fade"),
vue.createElementVNode("button", {
class: "transition-button",
type: "primary",
onClick: _cache[1] || (_cache[1] = ($event) => $options.open(["slide-top"]))
}, "slide-top"),
vue.createElementVNode("button", {
class: "transition-button",
type: "primary",
onClick: _cache[2] || (_cache[2] = ($event) => $options.open(["slide-left"]))
}, "slide-left"),
vue.createElementVNode("button", {
class: "transition-button",
type: "primary",
onClick: _cache[3] || (_cache[3] = ($event) => $options.open(["slide-right"]))
}, "slide-right"),
vue.createElementVNode("button", {
class: "transition-button",
type: "primary",
onClick: _cache[4] || (_cache[4] = ($event) => $options.open(["slide-bottom"]))
}, "slide-bottom"),
vue.createElementVNode("button", {
class: "transition-button",
type: "primary",
onClick: _cache[5] || (_cache[5] = ($event) => $options.open(["zoom-in", "fade"]))
}, "zoom-in"),
vue.createElementVNode("button", {
class: "transition-button",
type: "primary",
onClick: _cache[6] || (_cache[6] = ($event) => $options.open(["zoom-out", "fade"]))
}, "zoom-out")
]),
vue.createElementVNode("view", { class: "example-body" }, [
vue.createElementVNode("button", {
class: "transition-button",
type: "primary",
onClick: _cache[7] || (_cache[7] = (...args) => $options.mask && $options.mask(...args))
}, "透明遮罩层"),
vue.createElementVNode("button", {
class: "transition-button",
type: "primary",
onClick: _cache[8] || (_cache[8] = ($event) => $options.open(["fade", "zoom-out", "slide-top"]))
}, "组合动画示例一"),
vue.createElementVNode("button", {
class: "transition-button",
type: "primary",
onClick: _cache[9] || (_cache[9] = ($event) => $options.open(["zoom-in", "slide-bottom", "fade"]))
}, "组合动画示例二"),
vue.createElementVNode("button", {
class: "transition-button",
type: "primary",
onClick: _cache[10] || (_cache[10] = ($event) => $options.open(["slide-left", "slide-top", "fade"]))
}, "组合动画示例三")
]),
vue.createCommentVNode(" 遮罩 "),
vue.createVNode(_component_unitv_transition, {
"mode-class": ["fade"],
styles: $data.maskClass,
show: $data.show,
onClick: $options.onTap
}, null, 8, ["styles", "show", "onClick"]),
vue.createCommentVNode(" 过渡 "),
vue.createVNode(_component_unitv_transition, {
duration: 500,
"mode-class": $data.modeClass,
styles: $data.transfromClass,
show: $data.transShow,
onClick: $options.onTap,
onChange: $options.change
}, {
default: vue.withCtx(() => [
vue.createElementVNode("text", { class: "box" }, "Test")
]),
_: 1
/* STABLE */
}, 8, ["mode-class", "styles", "show", "onClick", "onChange"])
]);
}
const PagesTransitionTransition = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/pages/transition/transition.vue"]]);
const _sfc_main$1 = {
data() {
return {
searchValue: "",
item1: [1],
item3: [],
item3Length: 0
};
},
onBackPress(options) {
this.$refs.searchPage.evtBack();
return true;
},
methods: {
pageBack(e) {
formatAppLog("log", "at pages/search/search.vue:35", "按了返回");
uni.reLaunch({
url: "../index/index"
});
return true;
},
searchMovie(e) {
if (this.searchValue == "请输入影视名称" || this.searchValue == void 0 || this.searchValue == "" || this.searchValue == " " || this.searchValue == " ") {
uni.showToast({
title: "请输入影视名称后,再检索电影",
icon: "none",
duration: 2e3
});
return;
}
this.$api.post("/platCupfox/searchMovie?searchValue=" + this.searchValue, null).then((res) => {
formatAppLog("log", "at pages/search/search.vue:57", res);
this.item3Length = 1;
this.item3 = [res];
});
},
delItem(zoneSource, index) {
if (zoneSource == "zone1" && index == 1) {
if (this.searchValue != null && this.searchValue != void 0 && this.searchValue.length > 0) {
this.searchValue = this.searchValue.substr(0, this.searchValue.length - 1);
}
}
},
clickPlayer(data) {
if (data.movieFlag == "1") {
uni.navigateTo({
url: "../player/player?id=" + data.id
});
} else {
uni.showToast({
title: "当前影视未解析到视频资源,无法播放",
icon: "none",
duration: 2e3
});
}
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_unitv_item = resolveEasycom(vue.resolveDynamicComponent("unitv-item"), __easycom_0$1);
const _component_unitv_zone = resolveEasycom(vue.resolveDynamicComponent("unitv-zone"), __easycom_1$1);
const _component_unitv_page = resolveEasycom(vue.resolveDynamicComponent("unitv-page"), __easycom_2);
return vue.openBlock(), vue.createElementBlock("view", null, [
vue.createVNode(_component_unitv_page, {
id: "searchPage",
show: true,
ref: "searchPage",
onBack: $options.pageBack
}, {
default: vue.withCtx(() => [
vue.createVNode(_component_unitv_zone, {
id: "zone1",
class: "zone1",
autoFous: true,
down: "zone3",
item: 0,
values: $data.item1,
column: $data.item1.length
}, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList($data.item1, (a, index) => {
return vue.openBlock(), vue.createBlock(_component_unitv_item, {
item: index,
key: index,
class: "item"
}, {
default: vue.withCtx(() => [
vue.withDirectives(vue.createElementVNode(
"input",
{
type: "text",
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.searchValue = $event),
"confirm-type": "search",
onConfirm: _cache[1] || (_cache[1] = (...args) => $options.searchMovie && $options.searchMovie(...args)),
placeholder: "请输入影视名称搜索"
},
null,
544
/* NEED_HYDRATION, NEED_PATCH */
), [
[vue.vModelText, $data.searchValue]
])
]),
_: 2
/* DYNAMIC */
}, 1032, ["item"]);
}),
128
/* KEYED_FRAGMENT */
))
]),
_: 1
/* STABLE */
}, 8, ["values", "column"]),
vue.createVNode(_component_unitv_zone, {
id: "zone3",
class: "zone3",
up: "zone1",
values: $data.item3,
column: $data.item3Length
}, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList($data.item3, (a, index) => {
return vue.openBlock(), vue.createBlock(_component_unitv_item, {
item: index,
key: index,
class: "item",
onClick: ($event) => $options.clickPlayer(a)
}, {
default: vue.withCtx(() => [
vue.createElementVNode("image", {
src: a.cover,
"lazy-load": true,
mode: "aspectFit"
}, null, 8, ["src"])
]),
_: 2
/* DYNAMIC */
}, 1032, ["item", "onClick"]);
}),
128
/* KEYED_FRAGMENT */
))
]),
_: 1
/* STABLE */
}, 8, ["values", "column"])
]),
_: 1
/* STABLE */
}, 8, ["onBack"])
]);
}
const PagesSearchSearch = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__scopeId", "data-v-c10c040c"], ["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/pages/search/search.vue"]]);
__definePage("pages/index/index", PagesIndexIndex);
__definePage("uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update", UniModulesRtUniUpdateComponentsRtUniUpdateRtUniUpdate);
__definePage("pages/player/player", PagesPlayerPlayer);
__definePage("pages/swiper/swiper", PagesSwiperSwiper);
__definePage("pages/transition/transition", PagesTransitionTransition);
__definePage("pages/search/search", PagesSearchSearch);
const _sfc_main = {
onLaunch: function() {
},
onShow: function() {
formatAppLog("log", "at App.vue:7", "App Show");
},
onHide: function() {
},
methods: {}
};
const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/yunzhi/Projects/TV/电视TV影视APP/App.vue"]]);
const httpRequest = {
post: function(url, data, loading = true) {
return new Promise((succ, error) => {
this.ajax({
url,
method: "post",
data,
loading,
success: function(e) {
succ.call(this, e);
},
fail: function(e) {
error ? error.call(this, e) : "";
}
});
});
},
get: function(url, data, loading = true) {
return new Promise((succ, error) => {
this.ajax({
url,
method: "GET",
data,
loading,
success: function(e) {
succ.call(this, e);
},
fail: function(e) {
error ? error.call(this, e) : "";
}
});
});
},
ajax: function({ url, method, data, loading, success: success2, fail, complete }) {
let baseUrl = "http://rap2api.taobao.org/app/mock/318020/api/platform";
let _this = this;
if (loading) {
uni.showLoading({ mask: true, title: "加载中" });
}
uni.request({
url: baseUrl + url,
data,
method,
header: {
"Accept": "application/json"
},
success: function(e) {
if (e != null && e.statusCode != 200) {
_this.errorStatusCode(e);
} else if (e.data.success) {
formatAppLog("log", "at api/httpRequest.js:48", e.data.data);
success2(e.data.data);
} else if (e.data.msg) {
setTimeout(
function(message) {
formatAppLog("log", "at api/httpRequest.js:54", message);
uni.showToast({ icon: "none", title: message });
},
100,
e.data.msg
);
fail(e);
} else {
success2(e.data);
}
},
fail: function(e) {
fail(e);
},
complete: function(e) {
uni.hideLoading();
}
});
},
errorStatusCode: function(e) {
formatAppLog("log", "at api/httpRequest.js:75", e);
uni.showModal({
content: e.data.msg || e.data.errMsg || "系统未知异常",
showCancel: false
});
}
};
const store = createStore({
state: {
currentPage: null,
currentZone: null,
allPages: []
},
mutations: {
pushPage(state, page) {
state.allPages[page.id] = page;
},
switchZone(state, zone) {
state.currentZone = zone;
},
switchPage(state, page) {
state.currentPage = page;
},
showPage(state, pageId) {
var page = state.allPages[pageId];
page.showPage();
}
},
actions: {}
});
function createApp() {
const app = vue.createVueApp(App);
app.config.globalProperties.$api = httpRequest;
app.use(store);
return {
app
};
}
const { app: __app__, Vuex: __Vuex__, Pinia: __Pinia__ } = createApp();
uni.Vuex = __Vuex__;
uni.Pinia = __Pinia__;
__app__.provide("__globalStyles", __uniConfig.styles);
__app__._component.mpType = "app";
__app__._component.render = () => {
};
__app__.mount("#app");
})(Vue);