fix: 网元版本升级勾选逐个进行,多语言翻译

This commit is contained in:
TsMask
2024-05-27 18:28:15 +08:00
parent 8b24bc55b9
commit b7f2df5d1c
4 changed files with 112 additions and 68 deletions

View File

@@ -723,6 +723,10 @@ export default {
status: "Revision Status",
upgradeBatch: "Batch Upgrade",
upgradeBatchTip: "Do you perform new version upgrades on checked records?",
upgradeNotNewVer: 'No new version found',
upgradeDone: 'Update complete, service being reloaded',
upgradeFail: 'The update failed, check if the service terminal environment is available!',
upgradeModal: 'Network Element Version Updates',
},
neLicense: {
status: "License Status",

View File

@@ -723,6 +723,10 @@ export default {
status: "版本状态",
upgradeBatch: "批量更新",
upgradeBatchTip: "对勾选的记录进行新版本升级吗?",
upgradeNotNewVer: '没有发现新版本',
upgradeDone: '更新完成,服务正在重载',
upgradeFail: '更新失败,请检查服务终端环境是否可用!',
upgradeModal: '网元版本更新',
},
neLicense: {
status: "许可证状态",

View File

@@ -170,12 +170,10 @@ function fnBeforeUploadFile(file: FileType) {
/**表单上传文件 */
function fnUploadFile(up: UploadRequestOption) {
// 发送请求
const hide = message.loading(t('common.loading'), 0);
modalState.confirmLoading = true;
uploadFileChunk(up.file as File, 5, 'software')
.then(res => {
if (res.code === RESULT_CODE_SUCCESS) {
message.success('上传成功', 3);
// 改为完成状态
const file = modalState.uploadFiles[0];
file.percent = 100;
@@ -189,7 +187,6 @@ function fnUploadFile(up: UploadRequestOption) {
}
})
.finally(() => {
hide();
modalState.confirmLoading = false;
});
}

View File

@@ -316,16 +316,13 @@ function fnRecordVersion(
if (res.code === RESULT_CODE_SUCCESS) {
lockedStore.fnLock('reload');
} else {
message.error({
content: `${res.msg}`,
duration: 3,
});
message.error(t('views.ne.neVersion.upgradeFail'), 3);
}
return;
}
fnGetList(1);
} else {
message.error(res.msg, 3);
message.error(t('views.ne.neVersion.upgradeFail'), 3);
}
})
.finally(() => {
@@ -336,63 +333,71 @@ function fnRecordVersion(
});
}
/**版本升级 */
function fnRecordUpgrade() {
/**版本升级弹出确认是否升级 */
function fnRecordUpgradeConfirm() {
Modal.confirm({
title: t('common.tipTitle'),
content: t('views.ne.neVersion.upgradeBatchTip'),
onOk() {
fnRecordUpgrade();
},
});
}
/**版本升级进行 */
async function fnRecordUpgrade() {
if (modalState.confirmLoading) return;
modalState.confirmLoading = true;
const hide = message.loading(t('common.loading'), 0);
modalState.visibleByUpgrade = true;
// 操作升级的网元数据
const selectRows = tableState.data.filter(item =>
tableState.selectedRowKeys.includes(item.id)
);
for (const row of selectRows) {
if (row.neType.toUpperCase() === 'OMC') {
if (row.newVersion === '-' || row.newVersion === '') {
modalState.operateDataUpgrade.push({
neType: row.neType,
neId: row.neId,
status: 'fail',
log: t('views.ne.neVersion.upgradeNotNewVer'),
});
continue;
}
// 开始升级
let preinput = {};
if (row.neType.toUpperCase() === 'IMS') {
preinput = { pisCSCF: 'y' };
}
modalState.operateDataUpgrade.push({
const installData = {
neType: row.neType,
neId: row.neId,
action: 'upgrade',
preinput: preinput,
});
};
try {
const res = await operateNeVersion(installData);
const operateData = {
neType: row.neType,
neId: row.neId,
status: 'fail',
log: t('common.operateErr'),
};
if (res.code === RESULT_CODE_SUCCESS) {
operateData.status = 'done';
operateData.log = t('views.ne.neVersion.upgradeDone');
} else {
operateData.status = 'fail';
operateData.log = t('views.ne.neVersion.upgradeFail');
}
modalState.operateDataUpgrade.unshift(operateData);
} catch (error) {
console.error(error);
}
}
// 发请求信息
modalState.visibleByUpgrade = true;
Promise.allSettled(
modalState.operateDataUpgrade.map(s => operateNeVersion(s))
)
.then(resArr => {
console.log(resArr);
resArr.forEach((s, i) => {
if (s.status === 'rejected') {
message.error(s.reason, 3);
} else {
const res = s.value;
if (res.code === RESULT_CODE_SUCCESS) {
modalState.operateDataUpgrade[i].status = 'done';
modalState.operateDataUpgrade[i].log = res.data;
} else {
modalState.operateDataUpgrade[i].status = 'fail';
modalState.operateDataUpgrade[i].log = res.msg;
}
}
});
})
.finally(() => {
hide();
// 结束
modalState.confirmLoading = false;
});
},
});
}
onMounted(() => {
@@ -491,11 +496,11 @@ onMounted(() => {
{{ t('views.ne.neSoftware.uploadBatch') }}
</a-button>
<a-button
type="default"
danger
type="primary"
:ghost="true"
:disabled="tableState.selectedRowKeys.length <= 0"
:loading="modalState.confirmLoading"
@click.prevent="fnRecordUpgrade()"
@click.prevent="fnRecordUpgradeConfirm()"
>
<template #icon><ThunderboltOutlined /></template>
{{ t('views.ne.neVersion.upgradeBatch') }}
@@ -614,20 +619,54 @@ onMounted(() => {
@cancel="fnModalEditCancel"
></UploadMoreFile>
<!-- 勾选版本升级 -->
<!-- 勾选网元版本进行升级 -->
<a-modal
width="800px"
:body-style="{ height: '520px', overflowY: 'scroll' }"
:keyboard="false"
:mask-closable="false"
:visible="modalState.visibleByUpgrade"
title="Upgrade Version"
:confirm-loading="modalState.confirmLoading"
:title="t('views.ne.neVersion.upgradeModal')"
:closable="false"
@ok="fnModalEditOk"
@cancel="fnModalEditCancel"
>
<p v-for="o in modalState.operateDataUpgrade">
{{ o.neType }} - {{ o.neId }} - {{ o.status }}
<!-- <TerminalText id="installLog" :rows="12" :value="o.log"></TerminalText> -->
<template #footer>
<a-button
key="submit"
type="primary"
:disabled="modalState.confirmLoading"
@click="fnModalEditOk"
>
{{ t('common.close') }}
</a-button>
</template>
<p>
<a-alert
v-if="modalState.confirmLoading"
:message="t('common.loading')"
type="info"
show-icon
>
<template #icon>
<LoadingOutlined />
</template>
</a-alert>
</p>
<p v-for="o in modalState.operateDataUpgrade" :key="o.neId">
<a-alert
:message="`${o.neType}-${o.neId}`"
:description="o.log"
:type="o.status === 'done' ? 'success' : 'error'"
show-icon
>
<template #icon>
<CheckCircleOutlined v-if="o.status === 'done'" />
<InfoCircleOutlined v-else />
</template>
</a-alert>
</p>
</a-modal>
</PageContainer>