|
@@ -169,8 +169,8 @@
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
- <loading-dialog v-model="loadingDialogVisible" :progress="progress" :message="message" :show-button="showButton || !completeDirectory"
|
|
|
|
|
- @button-click="handleComplete">
|
|
|
|
|
|
|
+ <loading-dialog v-model="loadingDialogVisible" :progress="progress" :message="message"
|
|
|
|
|
+ :disabled-button="disabledButton" @button-click="handleComplete">
|
|
|
<template v-if="partErrList && partErrList.length > 0" #errList>
|
|
<template v-if="partErrList && partErrList.length > 0" #errList>
|
|
|
<div v-for="(item, idx) in partErrList" :key="idx">
|
|
<div v-for="(item, idx) in partErrList" :key="idx">
|
|
|
<span>{{ item.goods_art_no }}</span>:<span>{{ item.info }}</span>
|
|
<span>{{ item.goods_art_no }}</span>:<span>{{ item.info }}</span>
|
|
@@ -231,14 +231,14 @@ const completeDirectory = ref('')
|
|
|
const loadingDialogVisible = ref(false)
|
|
const loadingDialogVisible = ref(false)
|
|
|
const progress = ref(0)
|
|
const progress = ref(0)
|
|
|
const message = ref('正在为您处理,请稍后')
|
|
const message = ref('正在为您处理,请稍后')
|
|
|
-const showButton = ref(true)
|
|
|
|
|
|
|
+const disabledButton = ref(true)
|
|
|
|
|
|
|
|
let templates = ref([])
|
|
let templates = ref([])
|
|
|
let goods_art_nos = ref([])
|
|
let goods_art_nos = ref([])
|
|
|
let partErrList = ref([])
|
|
let partErrList = ref([])
|
|
|
|
|
|
|
|
// 定义一个定时器变量
|
|
// 定义一个定时器变量
|
|
|
-const INTERVAL = ref<number | NodeJS.Timeout | null>(null);
|
|
|
|
|
|
|
+const INTERVAL = ref<number | NodeJS.Timeout | null>(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -260,7 +260,7 @@ const form = reactive({
|
|
|
})
|
|
})
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
const goods_art_data = route.query.goods_art_nos
|
|
const goods_art_data = route.query.goods_art_nos
|
|
|
- goods_art_nos.value = Array.isArray(goods_art_data) ? goods_art_data : [goods_art_data]
|
|
|
|
|
|
|
+ goods_art_nos.value = Array.isArray(goods_art_data) ? goods_art_data : [goods_art_data]
|
|
|
getCompanyTemplates()
|
|
getCompanyTemplates()
|
|
|
})
|
|
})
|
|
|
|
|
|
|
@@ -332,44 +332,40 @@ const generate = async function () {
|
|
|
clearInterval(INTERVAL.value)
|
|
clearInterval(INTERVAL.value)
|
|
|
if (result.code === 0) {
|
|
if (result.code === 0) {
|
|
|
const { output_folder, list } = result.data
|
|
const { output_folder, list } = result.data
|
|
|
- // 若out_put_dir为空,说明全部生成失败,走失败处理
|
|
|
|
|
- // if (output_folder === '') {
|
|
|
|
|
- // console.log('全部生成失败')
|
|
|
|
|
- // handleFail('生成失败! 请联系管理员处理, 或稍后重试')
|
|
|
|
|
- // } else {
|
|
|
|
|
-
|
|
|
|
|
- // 判断 result.data.list 中 是否存在 success 为fals的 若存在 则走部分成功处理 否则走全部成功处理
|
|
|
|
|
- let hasFail = false
|
|
|
|
|
- list.map(item => {
|
|
|
|
|
- if (!item.success) {
|
|
|
|
|
- hasFail = true
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
- // 部分成功
|
|
|
|
|
- if (hasFail) {
|
|
|
|
|
- console.log('部分成功')
|
|
|
|
|
- handlePartSuccess(output_folder, list)
|
|
|
|
|
- } else { // 全部成功
|
|
|
|
|
- console.log('全部成功')
|
|
|
|
|
- handleSuccess(output_folder, '全部生成成功')
|
|
|
|
|
- }
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
|
|
+ const allSuccess = list.every(item => item.success);
|
|
|
|
|
+ const allFailure = list.every(item => !item.success);
|
|
|
|
|
+ if (allSuccess) {
|
|
|
|
|
+ console.log("全部成功")
|
|
|
|
|
+ handleSuccess(output_folder, '全部生成成功')
|
|
|
|
|
+ } else if (allFailure) {
|
|
|
|
|
+ console.log("全部失败");
|
|
|
|
|
+ handleFailure(list)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ console.log("部分成功,部分失败");
|
|
|
|
|
+ handlePartSuccess(output_folder, list)
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
console.log('code全部生成失败')
|
|
console.log('code全部生成失败')
|
|
|
handleFail(result.msg)
|
|
handleFail(result.msg)
|
|
|
}
|
|
}
|
|
|
- //生成失败
|
|
|
|
|
|
|
+ //生成失败 (接口请求失败)
|
|
|
function handleFail(errorMsg: string) {
|
|
function handleFail(errorMsg: string) {
|
|
|
loadingDialogVisible.value = false
|
|
loadingDialogVisible.value = false
|
|
|
- showButton.value = false
|
|
|
|
|
|
|
+ disabledButton.value = false
|
|
|
if (errorMsg) {
|
|
if (errorMsg) {
|
|
|
ElMessage.error(errorMsg)
|
|
ElMessage.error(errorMsg)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // 全部生成成功
|
|
|
|
|
+ function handleSuccess(href, loadingMsg) {
|
|
|
|
|
+ completeDirectory.value = href
|
|
|
|
|
+ progress.value = 100
|
|
|
|
|
+ disabledButton.value = false
|
|
|
|
|
+ message.value = loadingMsg
|
|
|
|
|
+ }
|
|
|
// 部分成功
|
|
// 部分成功
|
|
|
function handlePartSuccess(output_folder: string, partSuccessList) {
|
|
function handlePartSuccess(output_folder: string, partSuccessList) {
|
|
|
- // 错误list展示 失败的货号整理成字符串,用逗号分隔
|
|
|
|
|
let errorList = []
|
|
let errorList = []
|
|
|
partSuccessList.map(item => {
|
|
partSuccessList.map(item => {
|
|
|
if (!item.success) {
|
|
if (!item.success) {
|
|
@@ -377,21 +373,28 @@ const generate = async function () {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
partErrList.value = errorList
|
|
partErrList.value = errorList
|
|
|
- handleSuccess(output_folder, '部分货号生成失败',)
|
|
|
|
|
|
|
+ handleSuccess(output_folder, '部分货号生成失败')
|
|
|
}
|
|
}
|
|
|
- // 全部生成成功
|
|
|
|
|
- function handleSuccess(href, loadingMsg) {
|
|
|
|
|
- completeDirectory.value = href
|
|
|
|
|
|
|
+ // 全部生成失败
|
|
|
|
|
+ function handleFailure(partSuccessList) {
|
|
|
|
|
+ let errorList = []
|
|
|
|
|
+ partSuccessList.map(item => {
|
|
|
|
|
+ if (!item.success) {
|
|
|
|
|
+ errorList.push(item)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ partErrList.value = errorList
|
|
|
|
|
+ completeDirectory.value = ''
|
|
|
progress.value = 100
|
|
progress.value = 100
|
|
|
- showButton.value = false
|
|
|
|
|
- message.value = loadingMsg
|
|
|
|
|
|
|
+ disabledButton.value = true
|
|
|
|
|
+ message.value = '全部货号生成失败'
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
const openLoadingDialog = (timer: number) => {
|
|
const openLoadingDialog = (timer: number) => {
|
|
|
loadingDialogVisible.value = true
|
|
loadingDialogVisible.value = true
|
|
|
|
|
|
|
|
- showButton.value = true
|
|
|
|
|
|
|
+ disabledButton.value = true
|
|
|
// 根据传入的秒数计算每次增加的进度值
|
|
// 根据传入的秒数计算每次增加的进度值
|
|
|
const step = 100 / timer
|
|
const step = 100 / timer
|
|
|
INTERVAL.value = setInterval(() => {
|
|
INTERVAL.value = setInterval(() => {
|
|
@@ -451,7 +454,7 @@ const handleComplete = () => {
|
|
|
clientStore.ipc.removeAllListeners(icpList.utils.shellFun);
|
|
clientStore.ipc.removeAllListeners(icpList.utils.shellFun);
|
|
|
let params = {
|
|
let params = {
|
|
|
action: 'openPath',
|
|
action: 'openPath',
|
|
|
- params: completeDirectory.value?.replaceAll('/','\\')
|
|
|
|
|
|
|
+ params: completeDirectory.value?.replaceAll('/', '\\')
|
|
|
}
|
|
}
|
|
|
clientStore.ipc.send(icpList.utils.shellFun, params);
|
|
clientStore.ipc.send(icpList.utils.shellFun, params);
|
|
|
}
|
|
}
|