198 lines
4.6 KiB
JavaScript
198 lines
4.6 KiB
JavaScript
// pythonBridge.js
|
|
import { ref, onMounted } from 'vue';
|
|
import { ElMessage } from 'element-plus';
|
|
const pyBridge = ref(null);
|
|
// 初始化 QWebChannel
|
|
const initBridge = () => {
|
|
if (/localhost/.test(window.location.href)) return
|
|
new QWebChannel(qt.webChannelTransport, (channel) => {
|
|
pyBridge.value = channel.objects.bridge;
|
|
});
|
|
};
|
|
export function usePythonBridge() {
|
|
|
|
|
|
|
|
|
|
// // 调用 Python 方法
|
|
// const fetchDataConfig = (data) => {
|
|
// return new Promise((resolve, reject) => {
|
|
// if (bridge.value) {
|
|
// bridge.value.fetchDataConfig(data, function (result) {
|
|
// resolve(result);
|
|
// });
|
|
// }
|
|
|
|
|
|
// });
|
|
// };
|
|
|
|
// // 查询获取主播的数据
|
|
// const fetchDataCount = () => {
|
|
// return new Promise((resolve, reject) => {
|
|
// if (bridge.value) {
|
|
// bridge.value.fetchDataCount(function (result) {
|
|
// resolve(result);
|
|
// });
|
|
// }
|
|
// });
|
|
// };
|
|
|
|
//删除前端储存数据
|
|
const deleteStorageData = (data) => {
|
|
return new Promise((resolve, reject) => {
|
|
if (pyBridge.value) {
|
|
pyBridge.value.deleteAccountInfo(JSON.stringify(data),function (result) {
|
|
resolve(result);
|
|
});
|
|
}else{
|
|
console.log("pyBridge is null未连接上")
|
|
}
|
|
});
|
|
};
|
|
|
|
//获取前端储存数据
|
|
const getStorageData = (data) => {
|
|
return new Promise((resolve, reject) => {
|
|
if (pyBridge.value) {
|
|
pyBridge.value.readAccountInfo(JSON.stringify(data),function (result) {
|
|
resolve(result);
|
|
});
|
|
}else{
|
|
console.log("pyBridge is null未连接上")
|
|
}
|
|
});
|
|
};
|
|
//设置前端储存数据
|
|
const setStorageData = (data) => {
|
|
return new Promise((resolve, reject) => {
|
|
if (pyBridge.value) {
|
|
pyBridge.value.storageAccountInfo(JSON.stringify(data),function (result) {
|
|
resolve(result);
|
|
});
|
|
}else{
|
|
console.log("pyBridge is null未连接上")
|
|
}
|
|
});
|
|
};
|
|
|
|
// 查询获取大哥的数据
|
|
const controlTask = (data) => {
|
|
return new Promise((resolve, reject) => {
|
|
if (pyBridge.value) {
|
|
pyBridge.value.control_task(data,function (result) {
|
|
resolve(result);
|
|
});
|
|
}else{
|
|
console.log("pyBridge is null未连接上")
|
|
}
|
|
});
|
|
};
|
|
|
|
//总数有效数
|
|
const getBrotherInfo = () => {
|
|
return new Promise((resolve, reject) => {
|
|
if (pyBridge.value) {
|
|
pyBridge.value.getBrotherInfo(function (result) {
|
|
resolve(JSON.parse(result));
|
|
});
|
|
}else{
|
|
console.log("pyBridge is null未连接上")
|
|
}
|
|
});
|
|
};
|
|
|
|
// 打开tk后台
|
|
const loginTikTok = () => {
|
|
if (pyBridge.value) {
|
|
pyBridge.value.loginTikTok(function (result) {
|
|
});
|
|
}else{
|
|
console.log("pyBridge is null未连接上")
|
|
}
|
|
};
|
|
|
|
// // 登录tk后台
|
|
// const loginBackStage = (data) => {
|
|
// if (bridge.value) {
|
|
// if (data.index == 0) {
|
|
// bridge.value.loginBackStage(JSON.stringify(data));
|
|
// } else if (data.index == 1) {
|
|
// bridge.value.loginBackStageCopy(JSON.stringify(data));
|
|
// }
|
|
|
|
// }
|
|
// };
|
|
|
|
//跳转到主播页面
|
|
const givePyAnchorId = (id) => {
|
|
console.log("id",id);
|
|
if (pyBridge.value) {
|
|
pyBridge.value.givePyAnchorId(id, function (result) {
|
|
});
|
|
}
|
|
};
|
|
|
|
// //查询登录状态
|
|
// 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);
|
|
// });
|
|
// }
|
|
// });
|
|
|
|
// };
|
|
|
|
//导出表格
|
|
const exportToExcel = (data) => {
|
|
if (pyBridge .value) {
|
|
pyBridge .value.exportToExcel(JSON.stringify(data));
|
|
}
|
|
|
|
};
|
|
const stopScript = () => {
|
|
if (pyBridge .value) {
|
|
pyBridge .value.stopScript();
|
|
}
|
|
|
|
};
|
|
|
|
//获取版本号
|
|
const getVersion = () => {
|
|
return new Promise((resolve, reject) => {
|
|
if (pyBridge.value) {
|
|
pyBridge.value.currentVersion(function (result) {
|
|
resolve(result);
|
|
});
|
|
}
|
|
});
|
|
};
|
|
// 在组件挂载时初始化桥接
|
|
onMounted(initBridge);
|
|
|
|
return {
|
|
loginTikTok,
|
|
exportToExcel,
|
|
stopScript,
|
|
controlTask,
|
|
getBrotherInfo,
|
|
getVersion,
|
|
givePyAnchorId,
|
|
getStorageData,
|
|
setStorageData,
|
|
deleteStorageData,
|
|
};
|
|
} |