Files
tk-mini-program-PC/src/utils/pythonBridge.js

116 lines
2.3 KiB
JavaScript
Raw Normal View History

2025-04-03 16:41:54 +08:00
// pythonBridge.js
import { ref, onMounted } from 'vue';
2025-04-14 22:50:22 +08:00
const bridge = ref(null);
// 初始化 QWebChannel
const initBridge = () => {
new QWebChannel(qt.webChannelTransport, (channel) => {
bridge.value = channel.objects.bridge;
});
};
2025-04-03 16:41:54 +08:00
export function usePythonBridge() {
2025-04-14 22:50:22 +08:00
2025-04-03 16:41:54 +08:00
// 调用 Python 方法
2025-04-07 18:26:39 +08:00
const fetchDataConfig = (data) => {
return new Promise((resolve, reject) => {
2025-04-09 21:07:15 +08:00
if (bridge.value) {
bridge.value.fetchDataConfig(data, function (result) {
resolve(result);
});
2025-04-07 18:26:39 +08:00
}
2025-04-09 21:07:15 +08:00
2025-04-07 18:26:39 +08:00
});
2025-04-03 16:41:54 +08:00
};
2025-04-09 21:07:15 +08:00
// 查询获取主播的数据
const fetchDataCount = () => {
return new Promise((resolve, reject) => {
if (bridge.value) {
bridge.value.fetchDataCount(function (result) {
resolve(result);
});
}
});
};
// 打开tk后台
const loginTikTok = () => {
2025-04-03 16:41:54 +08:00
if (bridge.value) {
2025-04-09 21:07:15 +08:00
bridge.value.loginTikTok(function (result) {
2025-04-07 18:26:39 +08:00
});
2025-04-03 16:41:54 +08:00
}
2025-04-09 21:07:15 +08:00
2025-04-03 16:41:54 +08:00
};
2025-04-09 21:07:15 +08:00
// 登录tk后台
const loginBackStage = (data) => {
2025-04-10 18:11:03 +08:00
if (bridge.value) {
if (data.index == 0) {
bridge.value.loginBackStage(JSON.stringify(data));
} else if (data.index == 1) {
bridge.value.loginBackStageCopy(JSON.stringify(data));
2025-04-09 21:07:15 +08:00
}
2025-04-10 18:11:03 +08:00
}
2025-04-09 21:07:15 +08:00
};
//跳转到主播页面
const givePyAnchorId = (id) => {
if (bridge.value) {
bridge.value.givePyAnchorId(id, function (result) {
});
}
};
2025-04-10 18:11:03 +08:00
//查询登录状态
const backStageloginStatus = () => {
return new Promise((resolve, reject) => {
if (bridge.value) {
bridge.value.backStageloginStatus(function (result) {
resolve(result);
});
}
});
};
//查询登录状态
const backStageloginStatusCopy = () => {
return new Promise((resolve, reject) => {
if (bridge.value) {
bridge.value.backStageloginStatusCopy(function (result) {
resolve(result);
});
}
});
};
2025-04-14 21:52:19 +08:00
//导出表格
const exportToExcel = (data) => {
if (bridge.value) {
bridge.value.exportToExcel(JSON.stringify(data));
}
};
2025-04-10 18:11:03 +08:00
2025-04-03 16:41:54 +08:00
// 在组件挂载时初始化桥接
onMounted(initBridge);
return {
2025-04-07 18:26:39 +08:00
fetchDataConfig,
2025-04-09 21:07:15 +08:00
fetchDataCount,
loginBackStage,
loginTikTok,
2025-04-10 18:11:03 +08:00
givePyAnchorId,
backStageloginStatus,
2025-04-14 21:52:19 +08:00
backStageloginStatusCopy,
exportToExcel
2025-04-03 16:41:54 +08:00
};
}