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", status: "Revision Status",
upgradeBatch: "Batch Upgrade", upgradeBatch: "Batch Upgrade",
upgradeBatchTip: "Do you perform new version upgrades on checked records?", 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: { neLicense: {
status: "License Status", status: "License Status",

View File

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

View File

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

View File

@@ -316,16 +316,13 @@ function fnRecordVersion(
if (res.code === RESULT_CODE_SUCCESS) { if (res.code === RESULT_CODE_SUCCESS) {
lockedStore.fnLock('reload'); lockedStore.fnLock('reload');
} else { } else {
message.error({ message.error(t('views.ne.neVersion.upgradeFail'), 3);
content: `${res.msg}`,
duration: 3,
});
} }
return; return;
} }
fnGetList(1); fnGetList(1);
} else { } else {
message.error(res.msg, 3); message.error(t('views.ne.neVersion.upgradeFail'), 3);
} }
}) })
.finally(() => { .finally(() => {
@@ -336,63 +333,71 @@ function fnRecordVersion(
}); });
} }
/**版本升级 */ /**版本升级弹出确认是否升级 */
function fnRecordUpgrade() { function fnRecordUpgradeConfirm() {
Modal.confirm({ Modal.confirm({
title: t('common.tipTitle'), title: t('common.tipTitle'),
content: t('views.ne.neVersion.upgradeBatchTip'), content: t('views.ne.neVersion.upgradeBatchTip'),
onOk() { onOk() {
fnRecordUpgrade();
},
});
}
/**版本升级进行 */
async function fnRecordUpgrade() {
if (modalState.confirmLoading) return; if (modalState.confirmLoading) return;
modalState.confirmLoading = true; modalState.confirmLoading = true;
const hide = message.loading(t('common.loading'), 0); modalState.visibleByUpgrade = true;
// 操作升级的网元数据 // 操作升级的网元数据
const selectRows = tableState.data.filter(item => const selectRows = tableState.data.filter(item =>
tableState.selectedRowKeys.includes(item.id) tableState.selectedRowKeys.includes(item.id)
); );
for (const row of selectRows) { 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; continue;
} }
// 开始升级
let preinput = {}; let preinput = {};
if (row.neType.toUpperCase() === 'IMS') { if (row.neType.toUpperCase() === 'IMS') {
preinput = { pisCSCF: 'y' }; preinput = { pisCSCF: 'y' };
} }
modalState.operateDataUpgrade.push({ const installData = {
neType: row.neType, neType: row.neType,
neId: row.neId, neId: row.neId,
action: 'upgrade', action: 'upgrade',
preinput: preinput, 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; modalState.confirmLoading = false;
});
},
});
} }
onMounted(() => { onMounted(() => {
@@ -491,11 +496,11 @@ onMounted(() => {
{{ t('views.ne.neSoftware.uploadBatch') }} {{ t('views.ne.neSoftware.uploadBatch') }}
</a-button> </a-button>
<a-button <a-button
type="default" type="primary"
danger :ghost="true"
:disabled="tableState.selectedRowKeys.length <= 0" :disabled="tableState.selectedRowKeys.length <= 0"
:loading="modalState.confirmLoading" :loading="modalState.confirmLoading"
@click.prevent="fnRecordUpgrade()" @click.prevent="fnRecordUpgradeConfirm()"
> >
<template #icon><ThunderboltOutlined /></template> <template #icon><ThunderboltOutlined /></template>
{{ t('views.ne.neVersion.upgradeBatch') }} {{ t('views.ne.neVersion.upgradeBatch') }}
@@ -614,20 +619,54 @@ onMounted(() => {
@cancel="fnModalEditCancel" @cancel="fnModalEditCancel"
></UploadMoreFile> ></UploadMoreFile>
<!-- 勾选版本升级 --> <!-- 勾选网元版本进行升级 -->
<a-modal <a-modal
width="800px" width="800px"
:body-style="{ height: '520px', overflowY: 'scroll' }"
:keyboard="false" :keyboard="false"
:mask-closable="false" :mask-closable="false"
:visible="modalState.visibleByUpgrade" :visible="modalState.visibleByUpgrade"
title="Upgrade Version" :title="t('views.ne.neVersion.upgradeModal')"
:confirm-loading="modalState.confirmLoading" :closable="false"
@ok="fnModalEditOk" @ok="fnModalEditOk"
@cancel="fnModalEditCancel" @cancel="fnModalEditCancel"
> >
<p v-for="o in modalState.operateDataUpgrade"> <template #footer>
{{ o.neType }} - {{ o.neId }} - {{ o.status }} <a-button
<!-- <TerminalText id="installLog" :rows="12" :value="o.log"></TerminalText> --> 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> </p>
</a-modal> </a-modal>
</PageContainer> </PageContainer>