|
@@ -1,5 +1,6 @@
|
|
|
import { getToken, getTokenFromApi } from './auth'
|
|
|
import { saveMediaInfo, saveMediaRecord, getLatestRecord, removeInfoAndRecord } from '@/api/work'
|
|
|
+import {globalConfig} from '@/config'
|
|
|
|
|
|
// 类型定义保持不变
|
|
|
export type ApiResponse = {
|
|
@@ -50,66 +51,69 @@ export type PhotoFilesExample = {
|
|
|
}
|
|
|
|
|
|
export const downloadDataFromAPI = async (productCode: string, callback ?: () => void) : Promise<boolean> => {
|
|
|
- try {
|
|
|
+ // try {
|
|
|
//校验是否已经存在未执行的产品号,若已经存在则提示用户该产品号是否需要被覆盖,
|
|
|
//如果没有则直接保存。如果有存在已经在执行的产品号,则提示已存在执行中的任务
|
|
|
const infoJson = await getLatestRecord(productCode, null);
|
|
|
- let info = infoJson?.['data'] as UTSJSONObject ?? {} as UTSJSONObject
|
|
|
- let ingNum = parseInt(info?.['statusRecordCount'] as string);
|
|
|
- //覆盖标识位
|
|
|
- let overwiteFlag = ref(false);
|
|
|
- // 先检查是否有任务正在执行中
|
|
|
- if (info != null && ingNum > 0) {
|
|
|
- uni.showToast({ title: `当前产品号已有任务在执行中!`, icon: 'error' });
|
|
|
- return false;
|
|
|
- }
|
|
|
- // 使用Promise来处理异步流程
|
|
|
- let deleteDataPromise = new Promise<boolean>((resolve) => {
|
|
|
- if(info != null && ingNum == 0) {
|
|
|
- //可以被覆盖,需要有提示框,给用户确认
|
|
|
- uni.showModal({
|
|
|
- title: '系统提示',
|
|
|
- content: '该产品号已存在任务是否覆盖掉?',
|
|
|
- cancelText: '取消',
|
|
|
- confirmText: '确定',
|
|
|
- success: function (res) {
|
|
|
- if (res.confirm) {
|
|
|
- // 标记为需要覆盖
|
|
|
- overwiteFlag.value = true;
|
|
|
- // 执行删除数据操作
|
|
|
- let pid = info?.['pdid'] as string;
|
|
|
- removeInfoAndRecord(pid).then((recordDelResponse) => {
|
|
|
- console.log('删除数据响应:', recordDelResponse);
|
|
|
- // 删除成功,解析Promise并允许继续执行
|
|
|
- // 确保模态框已完全关闭后再解析Promise
|
|
|
- setTimeout(() => {
|
|
|
- resolve(true);
|
|
|
- }, 300);
|
|
|
- }).catch((error) => {
|
|
|
- console.error('删除数据失败:', error);
|
|
|
- uni.showToast({ title: '删除旧数据失败', icon: 'error' });
|
|
|
+ if (infoJson?.['data']!=null) {
|
|
|
+ let info = infoJson?.['data'] as UTSJSONObject ?? {} as UTSJSONObject
|
|
|
+ let ingNum = parseInt(info?.['statusRecordCount'] as string);
|
|
|
+ //覆盖标识位
|
|
|
+ let overwiteFlag = ref(false);
|
|
|
+ // 先检查是否有任务正在执行中
|
|
|
+ if (info != null && ingNum > 0) {
|
|
|
+ uni.showToast({ title: `当前产品号已有任务在执行中!`, icon: 'error' });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ // 使用Promise来处理异步流程
|
|
|
+ let deleteDataPromise = new Promise<boolean>((resolve) => {
|
|
|
+ if(info != null && ingNum == 0) {
|
|
|
+ //可以被覆盖,需要有提示框,给用户确认
|
|
|
+ uni.showModal({
|
|
|
+ title: '系统提示',
|
|
|
+ content: '该产品号已存在任务是否覆盖掉?',
|
|
|
+ cancelText: '取消',
|
|
|
+ confirmText: '确定',
|
|
|
+ success: function (res) {
|
|
|
+ if (res.confirm) {
|
|
|
+ // 标记为需要覆盖
|
|
|
+ overwiteFlag.value = true;
|
|
|
+ // 执行删除数据操作
|
|
|
+ let pid = info?.['pdid'] as string;
|
|
|
+ removeInfoAndRecord(pid).then((recordDelResponse) => {
|
|
|
+ console.log('删除数据响应:', recordDelResponse);
|
|
|
+ // 删除成功,解析Promise并允许继续执行
|
|
|
+ // 确保模态框已完全关闭后再解析Promise
|
|
|
+ setTimeout(() => {
|
|
|
+ resolve(true);
|
|
|
+ }, 300);
|
|
|
+ }).catch((error) => {
|
|
|
+ console.error('删除数据失败:', error);
|
|
|
+ uni.showToast({ title: '删除旧数据失败', icon: 'error' });
|
|
|
+ resolve(false);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 用户取消覆盖
|
|
|
+ overwiteFlag.value = false;
|
|
|
resolve(false);
|
|
|
- });
|
|
|
- } else {
|
|
|
- // 用户取消覆盖
|
|
|
- overwiteFlag.value = false;
|
|
|
- resolve(false);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
- } else {
|
|
|
- // 不需要显示确认框,直接解析Promise
|
|
|
- resolve(true);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 不需要显示确认框,直接解析Promise
|
|
|
+ resolve(true);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 等待删除数据操作完成
|
|
|
+ const canContinue: boolean = await deleteDataPromise;
|
|
|
+ if (!canContinue) {
|
|
|
+ // 如果不能继续(删除失败或用户取消),则终止函数执行
|
|
|
+ return false;
|
|
|
}
|
|
|
- });
|
|
|
-
|
|
|
- // 等待删除数据操作完成
|
|
|
- const canContinue: boolean = await deleteDataPromise;
|
|
|
- if (!canContinue) {
|
|
|
- // 如果不能继续(删除失败或用户取消),则终止函数执行
|
|
|
- return false;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
// 继续执行后续代码...
|
|
|
const apiToken = await getTokenFromApi();
|
|
|
uni.showLoading({ title: '数据下载中...' });
|
|
@@ -117,13 +121,14 @@ export const downloadDataFromAPI = async (productCode: string, callback ?: () =>
|
|
|
// 使用Promise处理HTTP请求,避免嵌套Promise
|
|
|
return new Promise<boolean>((resolve) => {
|
|
|
uni.request({
|
|
|
- url: `http://192.168.43.62:4523/m1/7190626-6915798-default/loadQmImagetask?prodcode=${productCode}`,
|
|
|
+ url: `${globalConfig.apiUrl}/loadQmImagetask?prodcode=${productCode}`,
|
|
|
method: 'GET',
|
|
|
header: {
|
|
|
'token': apiToken
|
|
|
},
|
|
|
success: (res) => {
|
|
|
let singleObject = res?.['data'] as UTSJSONObject ?? {} as UTSJSONObject;
|
|
|
+
|
|
|
if (singleObject != null && singleObject.code == 666) {
|
|
|
let mediaInfoList = singleObject?.['data'] as UTSJSONObject[] ?? Array<UTSJSONObject>();
|
|
|
if (mediaInfoList != null && mediaInfoList.length > 0) {
|
|
@@ -203,10 +208,10 @@ export const downloadDataFromAPI = async (productCode: string, callback ?: () =>
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
- } catch (error) {
|
|
|
- console.error('下载数据总异常:', error);
|
|
|
- uni.showToast({ title: '下载失败,请重试', icon: 'error' });
|
|
|
- uni.hideLoading();
|
|
|
- return false;
|
|
|
- }
|
|
|
+ // } catch (error) {
|
|
|
+ // console.error(error);
|
|
|
+ // uni.showToast({ title: '下载失败,请重试', icon: 'error' });
|
|
|
+ // uni.hideLoading();
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
}
|