Merge branch 'main-v2' into lichang
This commit is contained in:
@@ -11,7 +11,7 @@ VITE_APP_NAME = "Core Network OMC"
|
|||||||
VITE_APP_CODE = "OMC"
|
VITE_APP_CODE = "OMC"
|
||||||
|
|
||||||
# 应用版本
|
# 应用版本
|
||||||
VITE_APP_VERSION = "2.250607"
|
VITE_APP_VERSION = "2.250613"
|
||||||
|
|
||||||
# 接口基础URL地址-不带/后缀
|
# 接口基础URL地址-不带/后缀
|
||||||
VITE_API_BASE_URL = "/omc-api"
|
VITE_API_BASE_URL = "/omc-api"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ VITE_APP_NAME = "Core Network OMC"
|
|||||||
VITE_APP_CODE = "OMC"
|
VITE_APP_CODE = "OMC"
|
||||||
|
|
||||||
# 应用版本
|
# 应用版本
|
||||||
VITE_APP_VERSION = "2.250607"
|
VITE_APP_VERSION = "2.250613"
|
||||||
|
|
||||||
# 接口基础URL地址-不带/后缀
|
# 接口基础URL地址-不带/后缀
|
||||||
VITE_API_BASE_URL = "/omc-api"
|
VITE_API_BASE_URL = "/omc-api"
|
||||||
|
|||||||
12
CHANGELOG.md
12
CHANGELOG.md
@@ -1,5 +1,17 @@
|
|||||||
# 版本发布日志
|
# 版本发布日志
|
||||||
|
|
||||||
|
## 2.2506.2-20250613
|
||||||
|
|
||||||
|
- 修复 数值控件属性maxlength拼写错误
|
||||||
|
- 修复 空格内容无法编辑,提示信息显示方向
|
||||||
|
- 优化 抓包文件目录列表显示文件大小
|
||||||
|
|
||||||
|
## 2.2506.1-20250607
|
||||||
|
|
||||||
|
- 优化 请求响应码常量,身份信息更换逻辑优化
|
||||||
|
- 修复 更新tcpdump路径从/tmp到/usr/local以符合新目录结构
|
||||||
|
|
||||||
|
|
||||||
## 2.2505.4-20250530
|
## 2.2505.4-20250530
|
||||||
|
|
||||||
- 优化 网元参数配置修改tooltip位置为bottomLeft防止遮挡
|
- 优化 网元参数配置修改tooltip位置为bottomLeft防止遮挡
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ import useNeStore from '@/store/modules/ne';
|
|||||||
import useI18n from '@/hooks/useI18n';
|
import useI18n from '@/hooks/useI18n';
|
||||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||||
import { saveAs } from 'file-saver';
|
import { saveAs } from 'file-saver';
|
||||||
import { uploadFileToNE } from '@/api/tool/file';
|
import { uploadFile } from '@/api/tool/file';
|
||||||
|
import { getNeViewFile } from '@/api/tool/neFile';
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const neListStore = useNeStore();
|
const neListStore = useNeStore();
|
||||||
/**网元参数 */
|
/**网元参数 */
|
||||||
@@ -489,15 +490,27 @@ function fnModalUploadImportUpload(file: File) {
|
|||||||
}
|
}
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
uploadImportState.loading = true;
|
uploadImportState.loading = true;
|
||||||
uploadFileToNE('UDM', neID, file, 5)
|
// 上传文件
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append('file', file);
|
||||||
|
formData.append('subPath', 'import');
|
||||||
|
uploadFile(formData)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.code === RESULT_CODE_SUCCESS) {
|
if (res.code === RESULT_CODE_SUCCESS) {
|
||||||
return importUDMVOIP({
|
return res.data.filePath;
|
||||||
neId: neID,
|
} else {
|
||||||
uploadPath: res.data,
|
uploadImportState.msg = res.msg;
|
||||||
});
|
uploadImportState.loading = false;
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
return res;
|
})
|
||||||
|
.then((filePath: string) => {
|
||||||
|
if (!filePath) return;
|
||||||
|
// 文件导入
|
||||||
|
return importUDMVOIP({
|
||||||
|
neId: neID,
|
||||||
|
uploadPath: filePath,
|
||||||
|
});
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (!res) return;
|
if (!res) return;
|
||||||
@@ -517,6 +530,33 @@ function fnModalUploadImportUpload(file: File) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**对话框表格信息导入失败原因 */
|
||||||
|
function fnModalUploadImportFailReason() {
|
||||||
|
const neId = queryParams.neId;
|
||||||
|
if (!neId) return;
|
||||||
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
|
getNeViewFile({
|
||||||
|
neType: 'UDM',
|
||||||
|
neId: neId,
|
||||||
|
path: '/tmp',
|
||||||
|
fileName: 'import_imsuser_err_records.txt',
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
if (res.code === RESULT_CODE_SUCCESS) {
|
||||||
|
message.success(t('common.operateOk'), 3);
|
||||||
|
const blob = new Blob([res.data], {
|
||||||
|
type: 'text/plain',
|
||||||
|
});
|
||||||
|
saveAs(blob, `import_udmvoip_err_records_${Date.now()}.txt`);
|
||||||
|
} else {
|
||||||
|
message.error(`${res.msg}`, 3);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
hide();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**对话框表格信息导入模板 */
|
/**对话框表格信息导入模板 */
|
||||||
function fnModalDownloadImportTemplate() {
|
function fnModalDownloadImportTemplate() {
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
@@ -554,7 +594,7 @@ onMounted(() => {
|
|||||||
if (neOtions.value.length > 0) {
|
if (neOtions.value.length > 0) {
|
||||||
queryParams.neId = neOtions.value[0].value;
|
queryParams.neId = neOtions.value[0].value;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取列表数据
|
// 获取列表数据
|
||||||
fnGetList();
|
fnGetList();
|
||||||
});
|
});
|
||||||
@@ -868,14 +908,13 @@ onMounted(() => {
|
|||||||
name="username"
|
name="username"
|
||||||
v-bind="modalStateFrom.validateInfos.username"
|
v-bind="modalStateFrom.validateInfos.username"
|
||||||
>
|
>
|
||||||
<a-input-number
|
<a-input
|
||||||
v-model:value="modalState.from.username"
|
v-model:value="modalState.from.username"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:min="4"
|
|
||||||
:maxlength="16"
|
:maxlength="16"
|
||||||
:placeholder="t('views.neData.udmVOIP.username')"
|
:placeholder="t('views.neData.udmVOIP.username')"
|
||||||
>
|
>
|
||||||
</a-input-number>
|
</a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item
|
<a-form-item
|
||||||
:label="t('views.neData.udmVOIP.password')"
|
:label="t('views.neData.udmVOIP.password')"
|
||||||
@@ -917,13 +956,23 @@ onMounted(() => {
|
|||||||
</a-button>
|
</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-textarea
|
<a-alert
|
||||||
:disabled="true"
|
:message="uploadImportState.msg"
|
||||||
:hidden="!uploadImportState.msg"
|
:type="uploadImportState.hasFail ? 'warning' : 'info'"
|
||||||
:value="uploadImportState.msg"
|
v-show="uploadImportState.msg.length > 0"
|
||||||
:auto-size="{ minRows: 2, maxRows: 8 }"
|
>
|
||||||
style="background-color: transparent; color: rgba(0, 0, 0, 0.85)"
|
<template #action>
|
||||||
/>
|
<a-button
|
||||||
|
size="small"
|
||||||
|
type="link"
|
||||||
|
danger
|
||||||
|
@click="fnModalUploadImportFailReason"
|
||||||
|
v-if="uploadImportState.hasFail"
|
||||||
|
>
|
||||||
|
{{ t('views.neUser.auth.importFail') }}
|
||||||
|
</a-button>
|
||||||
|
</template>
|
||||||
|
</a-alert>
|
||||||
</template>
|
</template>
|
||||||
</UploadModal>
|
</UploadModal>
|
||||||
</PageContainer>
|
</PageContainer>
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ import useNeStore from '@/store/modules/ne';
|
|||||||
import useI18n from '@/hooks/useI18n';
|
import useI18n from '@/hooks/useI18n';
|
||||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||||
import { saveAs } from 'file-saver';
|
import { saveAs } from 'file-saver';
|
||||||
import { uploadFileToNE } from '@/api/tool/file';
|
import { uploadFile } from '@/api/tool/file';
|
||||||
|
import { getNeViewFile } from '@/api/tool/neFile';
|
||||||
import {
|
import {
|
||||||
addUDMVolteIMS,
|
addUDMVolteIMS,
|
||||||
batchAddUDMVolteIMS,
|
batchAddUDMVolteIMS,
|
||||||
@@ -541,15 +542,27 @@ function fnModalUploadImportUpload(file: File) {
|
|||||||
}
|
}
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
uploadImportState.loading = true;
|
uploadImportState.loading = true;
|
||||||
uploadFileToNE('UDM', neID, file, 5)
|
// 上传文件
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append('file', file);
|
||||||
|
formData.append('subPath', 'import');
|
||||||
|
uploadFile(formData)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.code === RESULT_CODE_SUCCESS) {
|
if (res.code === RESULT_CODE_SUCCESS) {
|
||||||
return importUDMVolteIMS({
|
return res.data.filePath;
|
||||||
neId: neID,
|
} else {
|
||||||
uploadPath: res.data,
|
uploadImportState.msg = res.msg;
|
||||||
});
|
uploadImportState.loading = false;
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
return res;
|
})
|
||||||
|
.then((filePath: string) => {
|
||||||
|
if (!filePath) return;
|
||||||
|
// 文件导入
|
||||||
|
return importUDMVolteIMS({
|
||||||
|
neId: neID,
|
||||||
|
uploadPath: filePath,
|
||||||
|
});
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (!res) return;
|
if (!res) return;
|
||||||
@@ -569,6 +582,33 @@ function fnModalUploadImportUpload(file: File) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**对话框表格信息导入失败原因 */
|
||||||
|
function fnModalUploadImportFailReason() {
|
||||||
|
const neId = queryParams.neId;
|
||||||
|
if (!neId) return;
|
||||||
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
|
getNeViewFile({
|
||||||
|
neType: 'UDM',
|
||||||
|
neId: neId,
|
||||||
|
path: '/tmp',
|
||||||
|
fileName: 'import_imsuser_err_records.txt',
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
if (res.code === RESULT_CODE_SUCCESS) {
|
||||||
|
message.success(t('common.operateOk'), 3);
|
||||||
|
const blob = new Blob([res.data], {
|
||||||
|
type: 'text/plain',
|
||||||
|
});
|
||||||
|
saveAs(blob, `import_udmvolte_err_records_${Date.now()}.txt`);
|
||||||
|
} else {
|
||||||
|
message.error(`${res.msg}`, 3);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
hide();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**对话框表格信息导入模板 */
|
/**对话框表格信息导入模板 */
|
||||||
function fnModalDownloadImportTemplate() {
|
function fnModalDownloadImportTemplate() {
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
@@ -1089,13 +1129,23 @@ onMounted(() => {
|
|||||||
</a-button>
|
</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-textarea
|
<a-alert
|
||||||
:disabled="true"
|
:message="uploadImportState.msg"
|
||||||
:hidden="!uploadImportState.msg"
|
:type="uploadImportState.hasFail ? 'warning' : 'info'"
|
||||||
:value="uploadImportState.msg"
|
v-show="uploadImportState.msg.length > 0"
|
||||||
:auto-size="{ minRows: 2, maxRows: 8 }"
|
>
|
||||||
style="background-color: transparent; color: rgba(0, 0, 0, 0.85)"
|
<template #action>
|
||||||
/>
|
<a-button
|
||||||
|
size="small"
|
||||||
|
type="link"
|
||||||
|
danger
|
||||||
|
@click="fnModalUploadImportFailReason"
|
||||||
|
v-if="uploadImportState.hasFail"
|
||||||
|
>
|
||||||
|
{{ t('views.neUser.auth.importFail') }}
|
||||||
|
</a-button>
|
||||||
|
</template>
|
||||||
|
</a-alert>
|
||||||
</template>
|
</template>
|
||||||
</UploadModal>
|
</UploadModal>
|
||||||
</PageContainer>
|
</PageContainer>
|
||||||
|
|||||||
Reference in New Issue
Block a user