From 19b77ed005de7aa6dc260e13ef59cd2b504488c6 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 15 Aug 2024 09:49:44 +0800 Subject: [PATCH 01/10] =?UTF-8?q?style:=20=E7=9B=91=E6=8E=A7=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E6=95=B0=E6=8D=AE=E8=B6=85=E6=97=B6=E8=AE=BE=E4=B8=BA?= =?UTF-8?q?60s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/monitor/monitor.ts | 1 + src/api/monitor/system.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/api/monitor/monitor.ts b/src/api/monitor/monitor.ts index dc5a893d..830f4cf5 100644 --- a/src/api/monitor/monitor.ts +++ b/src/api/monitor/monitor.ts @@ -6,5 +6,6 @@ export function getLoad(query: Record) { url: '/monitor/load', method: 'get', params: query, + timeout: 60_000, }); } diff --git a/src/api/monitor/system.ts b/src/api/monitor/system.ts index 4eaa354c..fbb19aab 100644 --- a/src/api/monitor/system.ts +++ b/src/api/monitor/system.ts @@ -5,5 +5,6 @@ export function getSystemInfo() { return request({ url: '/monitor/system-info', method: 'get', + timeout: 60_000, }); } From aa07b51663642f0410044629d22f60b4186a5e3e Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 15 Aug 2024 10:08:12 +0800 Subject: [PATCH 02/10] =?UTF-8?q?feat:=20=E8=AF=B7=E6=B1=82http=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E6=94=AF=E6=8C=81=E6=8E=A5=E5=8F=A3=E5=8A=A0=E8=A7=A3?= =?UTF-8?q?=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constants/app-constants.ts | 3 ++ src/constants/result-constants.ts | 9 +++++ src/plugins/http-fetch.ts | 64 ++++++++++++++++++++++++++----- src/utils/encrypt-utils.ts | 50 ++++++++++++++++++++++++ 4 files changed, 116 insertions(+), 10 deletions(-) create mode 100644 src/utils/encrypt-utils.ts diff --git a/src/constants/app-constants.ts b/src/constants/app-constants.ts index cea6637a..40f1082a 100644 --- a/src/constants/app-constants.ts +++ b/src/constants/app-constants.ts @@ -3,3 +3,6 @@ export const APP_REQUEST_HEADER_CODE = 'X-App-Code'; /**应用-请求头-系统版本 */ export const APP_REQUEST_HEADER_VERSION = 'X-App-Version'; + +/**应用-请求数据-密钥 */ +export const APP_DATA_API_KEY = 'T9ox2DCzpLfJIPzkH9pKhsOTMOEMJcFv'; diff --git a/src/constants/result-constants.ts b/src/constants/result-constants.ts index e2bccbd6..ae7dfeeb 100644 --- a/src/constants/result-constants.ts +++ b/src/constants/result-constants.ts @@ -1,3 +1,12 @@ +/**响应-code加密数据 */ +export const RESULT_CODE_ENCRYPT = 2; + +/**响应-msg加密数据 */ +export const RESULT_MSG_ENCRYPT: Record = { + zh_CN: '加密!', + en_US: 'encrypt!', +}; + /**响应-code正常成功 */ export const RESULT_CODE_SUCCESS = 1; diff --git a/src/plugins/http-fetch.ts b/src/plugins/http-fetch.ts index 9ea0ecab..09d0b96d 100644 --- a/src/plugins/http-fetch.ts +++ b/src/plugins/http-fetch.ts @@ -13,10 +13,13 @@ import { import { APP_REQUEST_HEADER_CODE, APP_REQUEST_HEADER_VERSION, + APP_DATA_API_KEY, } from '@/constants/app-constants'; import { + RESULT_CODE_ENCRYPT, RESULT_CODE_ERROR, RESULT_CODE_SUCCESS, + RESULT_MSG_ENCRYPT, RESULT_MSG_ERROR, RESULT_MSG_NOT_TYPE, RESULT_MSG_SERVER_ERROR, @@ -25,11 +28,12 @@ import { RESULT_MSG_URL_NOTFOUND, RESULT_MSG_URL_RESUBMIT, } from '@/constants/result-constants'; +import { decryptAES, encryptAES } from '@/utils/encrypt-utils'; /**响应结果类型 */ export type ResultType = { /**响应码 */ - code: number | 1 | 0; + code: number; /**信息 */ msg: string; /**数据 */ @@ -76,6 +80,8 @@ type OptionsType = { body?: BodyInit; /**防止数据重复提交 */ repeatSubmit?: boolean; + /**接口数据加密 */ + crypto?: boolean; /**携带授权Token请求头 */ whithToken?: boolean; /**中断控制信号,timeout不会生效 */ @@ -167,24 +173,40 @@ function beforeRequest(options: OptionsType): OptionsType | Promise { // 请求拼接地址栏参数 if (options.params) { - let paramStr = ''; const params = options.params; + const queryParams: string[] = []; for (const key in params) { const value = params[key]; // 空字符或未定义的值不作为参数发送 if (value === '' || value === undefined) continue; - paramStr += `&${encodeURIComponent(key)}=${encodeURIComponent(value)}`; + const str = `${encodeURIComponent(key)}=${encodeURIComponent(value)}`; + queryParams.push(str); } - if (paramStr && paramStr.startsWith('&')) { - options.url = `${options.url}?${paramStr.substring(1)}`; + const paramStr = queryParams.join('&'); + if (paramStr) { + const separator = options.url.includes('?') ? '&' : '?'; + // 请求加密 + if (options.crypto) { + debugger; + const data = encryptAES(JSON.stringify(paramStr), APP_DATA_API_KEY); + options.url += `${separator}data=${encodeURIComponent(data)}`; + } else { + options.url += `${separator}${paramStr}`; + } } } // 非get参数提交 - if (options.data instanceof FormData) { - options.body = options.data; - } else { - options.body = JSON.stringify(options.data); + let body = options.data + if (body instanceof FormData) { + options.body = body; + } else if (body) { + // 请求加密 + if (options.crypto) { + const data = encryptAES(JSON.stringify(body), APP_DATA_API_KEY); + body = { data }; + } + options.body = JSON.stringify(body); } return options; } @@ -199,6 +221,28 @@ function interceptorResponse(res: ResultType): ResultType | Promise { window.location.reload(); } + // 响应数据解密 + if (res.code === RESULT_CODE_ENCRYPT) { + const str = decryptAES(res.data, APP_DATA_API_KEY); + let data = {}; + try { + data = JSON.parse(str); + } catch (error) { + console.error(error); + } + if (Object.keys(data).length === 0) { + return Promise.resolve({ + code: RESULT_CODE_ERROR, + msg: RESULT_MSG_ENCRYPT[language], + }); + } + return Promise.resolve({ + code: RESULT_CODE_SUCCESS, + msg: RESULT_MSG_SUCCESS[language], + data, + }); + } + // 风格处理 if (!Reflect.has(res, 'code')) { return Promise.resolve({ @@ -266,7 +310,7 @@ export async function request(options: OptionsType): Promise { case 'text': // 文本数据 const str = await res.text(); return { - code: 1, + code: RESULT_CODE_SUCCESS, msg: str, }; case 'json': // json格式数据 diff --git a/src/utils/encrypt-utils.ts b/src/utils/encrypt-utils.ts new file mode 100644 index 00000000..351d125c --- /dev/null +++ b/src/utils/encrypt-utils.ts @@ -0,0 +1,50 @@ +import CryptoJS from 'crypto-js'; +import { isValid, decode } from 'js-base64'; + +/** + * AES 加密并转为 base64 + * @param plaintext 数据字符串 + * @param aeskey 密钥 + * @returns 加密字符串 + */ +export function encryptAES(plaintext: string, aeskey: string): string { + const nowRoaund = new Date().getTime().toString(6); + const key = CryptoJS.enc.Utf8.parse(aeskey); + const iv = CryptoJS.enc.Utf8.parse(nowRoaund); + const encrypted = CryptoJS.AES.encrypt(`${nowRoaund}${plaintext}`, key, { + iv: iv, + blockSize: 16, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7, + format: CryptoJS.format.OpenSSL, + }); + return encrypted.toString(); +} + +/** + * AES 解密 + * @param ciphertext 加密字符串 + * @param aeskey 密钥 + * @returns 数据字符串 + */ +export function decryptAES(ciphertext: string, aeskey: string): string { + const nowRoaund = new Date().getTime().toString(6); + const key = CryptoJS.enc.Utf8.parse(aeskey); + const iv = CryptoJS.enc.Utf8.parse(nowRoaund); + const decrypted = CryptoJS.AES.decrypt(ciphertext, key, { + iv: iv, + blockSize: 16, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7, + format: CryptoJS.format.OpenSSL, + }); + const base64Str = decrypted.toString(CryptoJS.enc.Base64); + if (isValid(base64Str)) { + const str = decode(base64Str); + const idx = str.indexOf(':)', 10); + if (idx > 10) { + return str.substring(idx + 2); + } + } + return ''; +} From b3f40ee683034dd265747012675a8723315f2ec5 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 15 Aug 2024 10:09:11 +0800 Subject: [PATCH 03/10] =?UTF-8?q?fix:=20=E7=BD=91=E5=85=83=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=88=97=E8=A1=A8=E4=B8=8D=E5=B8=A6=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E6=97=A0=E6=B3=95=E6=AD=A3=E5=B8=B8=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ne/neInfo/index.vue | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/views/ne/neInfo/index.vue b/src/views/ne/neInfo/index.vue index 0c58214a..e1fb16d8 100644 --- a/src/views/ne/neInfo/index.vue +++ b/src/views/ne/neInfo/index.vue @@ -364,8 +364,18 @@ function fnGetList(pageNum?: number) { tablePagination.total = res.total; // 遍历处理资源情况数值 tableState.data = res.rows.map(item => { + let resouresUsage = { + sysDiskUsage: 0, + sysMemUsage: 0, + sysCpuUsage: 0, + nfCpuUsage: 0, + }; const neState = item.serverState; - const resouresUsage = parseResouresUsage(neState); + if (neState) { + resouresUsage = parseResouresUsage(neState); + } else { + item.serverState = { online: false }; + } Reflect.set(item, 'resoures', resouresUsage); return item; }); From 409f9836a64cf4ef2655f56bf9d81b4df0b37def Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 15 Aug 2024 10:10:09 +0800 Subject: [PATCH 04/10] =?UTF-8?q?fix:=20=E5=AF=B9=E7=99=BB=E5=BD=95?= =?UTF-8?q?=EF=BC=8C=E7=BD=91=E5=85=83=E4=BF=A1=E6=81=AF=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=95=B0=E6=8D=AE=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/login.ts | 2 ++ src/api/ne/neInfo.ts | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/api/login.ts b/src/api/login.ts index 225c9327..e7ff947d 100644 --- a/src/api/login.ts +++ b/src/api/login.ts @@ -7,6 +7,7 @@ export function login(data: Record) { method: 'post', data: data, whithToken: false, + crypto: true, }); } @@ -21,6 +22,7 @@ export function register(data: Record) { method: 'post', data: data, whithToken: false, + crypto: true, }); } diff --git a/src/api/ne/neInfo.ts b/src/api/ne/neInfo.ts index 49156044..2d66d90b 100644 --- a/src/api/ne/neInfo.ts +++ b/src/api/ne/neInfo.ts @@ -36,6 +36,8 @@ export function addNeInfo(data: Record) { url: `/ne/info`, method: 'post', data: data, + crypto: true, + timeout: 30_000, }); } @@ -49,6 +51,8 @@ export function updateNeInfo(data: Record) { url: `/ne/info`, method: 'put', data: data, + crypto: true, + timeout: 30_000, }); } From 1871f6f65610345f3217b6f1a02511b50d6b1913 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 15 Aug 2024 10:10:50 +0800 Subject: [PATCH 05/10] =?UTF-8?q?chore:=20=E6=96=B0=E5=A2=9Ecrypto-js?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 6 ++++-- vite.config.ts | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 42b62bbf..697c5858 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@codemirror/lang-yaml": "^6.1.1", "@codemirror/merge": "^6.6.3", "@codemirror/theme-one-dark": "^6.1.2", - "@tato30/vue-pdf": "~1.9.7", + "@tato30/vue-pdf": "^1.10.0", "@vueuse/core": "~10.10.1", "@xterm/addon-fit": "^0.10.0", "@xterm/xterm": "^5.5.0", @@ -26,10 +26,11 @@ "antdv-pro-layout": "~3.3.5", "antdv-pro-modal": "^3.1.0", "codemirror": "^6.0.1", + "crypto-js": "^4.2.0", "dayjs": "^1.11.11", "echarts": "~5.5.0", "file-saver": "^2.0.5", - "intl-tel-input": "~23.0.12", + "intl-tel-input": "^23.8.1", "js-base64": "^3.7.7", "js-cookie": "^3.0.5", "localforage": "^1.10.0", @@ -43,6 +44,7 @@ "xlsx": "~0.18.5" }, "devDependencies": { + "@types/crypto-js": "^4.2.2", "@types/file-saver": "^2.0.7", "@types/js-cookie": "^3.0.6", "@types/node": "^18.0.0", diff --git a/vite.config.ts b/vite.config.ts index cadaa6d3..0359865e 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -20,7 +20,7 @@ export default defineConfig(({ mode }) => { proxy: { // https://cn.vitejs.dev/config/#server-proxy [env.VITE_API_BASE_URL]: { - // target: 'http://192.168.2.166:3030', + // target: 'http://192.168.2.166:33030', target: 'http://192.168.5.58:33040', changeOrigin: true, rewrite: p => p.replace(env.VITE_API_BASE_URL, ''), @@ -74,6 +74,11 @@ export default defineConfig(({ mode }) => { }, }, optimizeDeps: { + esbuildOptions: { + supported: { + 'top-level-await': true, + }, + }, include: ['@ant-design/icons-vue', 'ant-design-vue'], }, plugins: [ From b4cbc1c190da1dffad926ea6bc3847c52089d1b4 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 15 Aug 2024 10:11:22 +0800 Subject: [PATCH 06/10] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=202.240815?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 2 +- .env.production | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.env.development b/.env.development index 0b8d642f..bd608ea7 100644 --- a/.env.development +++ b/.env.development @@ -11,7 +11,7 @@ VITE_APP_NAME = "Core Network OMC" VITE_APP_CODE = "OMC" # 应用版本 -VITE_APP_VERSION = "2.240809" +VITE_APP_VERSION = "2.240815" # 接口基础URL地址-不带/后缀 VITE_API_BASE_URL = "/omc-api" diff --git a/.env.production b/.env.production index 3732a1c9..338182a5 100644 --- a/.env.production +++ b/.env.production @@ -11,7 +11,7 @@ VITE_APP_NAME = "Core Network OMC" VITE_APP_CODE = "OMC" # 应用版本 -VITE_APP_VERSION = "2.240809" +VITE_APP_VERSION = "2.240815" # 接口基础URL地址-不带/后缀 VITE_API_BASE_URL = "/omc-api" From f6b62c6c7e149174cd8cb74171083dc538d097b2 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 15 Aug 2024 10:22:39 +0800 Subject: [PATCH 07/10] =?UTF-8?q?fix:=20=E6=9E=84=E5=BB=BA=E7=9B=AE?= =?UTF-8?q?=E6=A0=87=E6=94=B9=E4=B8=BAesnext=EF=BC=8C=E5=85=BC=E5=AE=B9pdf?= =?UTF-8?q?-js=E7=BC=96=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vite.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/vite.config.ts b/vite.config.ts index 0359865e..bd38b8ef 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -54,6 +54,7 @@ export default defineConfig(({ mode }) => { }, }, build: { + target: 'esnext', // Use 'esnext' to support the latest features sourcemap: false, chunkSizeWarningLimit: 500, // 调整区块大小警告限制(以kB为单位) rollupOptions: { From 4268fa3198ddfd9980e943cd831fc2f62de7044d Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 15 Aug 2024 18:05:56 +0800 Subject: [PATCH 08/10] =?UTF-8?q?fix:=20=E7=BD=91=E5=85=83IMS=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E9=85=8D=E7=BD=AEplmn=E7=A6=81=E6=AD=A2=E5=88=A0?= =?UTF-8?q?=E9=99=A4index0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ne/neConfig/hooks/useConfigList.ts | 7 +++++++ src/views/ne/neConfig/index.vue | 14 ++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/views/ne/neConfig/hooks/useConfigList.ts b/src/views/ne/neConfig/hooks/useConfigList.ts index ef77f5a4..277d7407 100644 --- a/src/views/ne/neConfig/hooks/useConfigList.ts +++ b/src/views/ne/neConfig/hooks/useConfigList.ts @@ -53,6 +53,13 @@ export default function useConfigList({ /**单列表编辑 */ function listEdit(row: Record) { + if ( + listState.confirmLoading || + ['read-only', 'read', 'ro'].includes(row.access) + ) { + return; + } + listState.editRecord = Object.assign({}, row); } diff --git a/src/views/ne/neConfig/index.vue b/src/views/ne/neConfig/index.vue index 39cd8a20..07fe2373 100644 --- a/src/views/ne/neConfig/index.vue +++ b/src/views/ne/neConfig/index.vue @@ -597,9 +597,8 @@ onMounted(() => { @click="listEdit(record)" style="margin-left: 18px" v-if=" - !['read-only', 'read', 'ro'].includes( - record.access - ) && !listState.confirmLoading + !listState.confirmLoading && + !['read-only', 'read', 'ro'].includes(record.access) " /> @@ -658,7 +657,14 @@ onMounted(() => { From 61a58fc661d49521ffe7adb5129a80fc8c34bc7b Mon Sep 17 00:00:00 2001 From: lai <371757574@qq.com> Date: Fri, 16 Aug 2024 17:11:39 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E9=BB=98=E8=AE=A4neType=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA=E6=97=B6=E6=98=BE=E7=A4=BA45G=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/neUser/base5G/index.vue | 59 +++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/src/views/neUser/base5G/index.vue b/src/views/neUser/base5G/index.vue index 668e8cf7..e3f5bba9 100644 --- a/src/views/neUser/base5G/index.vue +++ b/src/views/neUser/base5G/index.vue @@ -129,6 +129,7 @@ function fnTableSize({ key }: MenuInfo) { tableState.size = key as SizeType; } +let promises = ref([]); /**查询列表, pageNum初始页数 */ function fnGetList(pageNum?: number) { if (tableState.loading) return; @@ -136,6 +137,53 @@ function fnGetList(pageNum?: number) { if (pageNum) { queryParams.pageNum = pageNum; } + if (!queryParams.neType) { + promises.value = []; + //同时获取45G基站信息 且在每条信息中添加45G字段(原始数据没有) 已经筛选后的 + neCascaderOptions.value.map((item: any) => { + item.children.forEach((child: any) => { + promises.value.push( + listBase5G({ + neId: child.neId, + neType: child.neType, + nbId: queryParams.id, + pageNum: queryParams.pageNum, + pageSize: 10000, + }) + ); + }); + }); + + Promise.allSettled(promises.value).then(results => { + results.forEach(result => { + if (result.status === 'fulfilled') { + const allBaseData = result.value; + if ( + allBaseData.code === RESULT_CODE_SUCCESS && + Array.isArray(allBaseData.rows) + ) { + // 处理成功结果 + tablePagination.total += allBaseData.total; + tableState.data = [...tableState.data, ...allBaseData.rows]; + if ( + tablePagination.total <= + (queryParams.pageNum - 1) * tablePagination.pageSize && + queryParams.pageNum !== 1 + ) { + tableState.loading = false; + fnGetList(queryParams.pageNum - 1); + } + } else { + //AMF返回404是代表没找到这个数据 GNB_NOT_FOUND + tablePagination.total = 0; + tableState.data = []; + } + tableState.loading = false; + } + }); + }); + return; + } let toBack: Record = { neType: queryParams.neType[0], @@ -160,7 +208,8 @@ function fnGetList(pageNum?: number) { tableState.loading = false; fnGetList(queryParams.pageNum - 1); } - } else {//AMF返回404是代表没找到这个数据 GNB_NOT_FOUND + } else { + //AMF返回404是代表没找到这个数据 GNB_NOT_FOUND tablePagination.total = 0; tableState.data = []; } @@ -188,6 +237,13 @@ onMounted(() => { }); return; } + + neCascaderOptions.value.forEach((item: any) => { + if (item.label === 'AMF') { + item.label = '5G'; + } else if (item.label === 'MME') item.label = '4G'; + }); + // 无查询参数neType时 默认选择AMF const queryNeType = (route.query.neType as string) || 'AMF'; const item = neCascaderOptions.value.find( @@ -230,7 +286,6 @@ onMounted(() => { From 03352f3aa89466b89bba7b44fc1eb972c38cc823 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Sat, 17 Aug 2024 12:22:38 +0800 Subject: [PATCH 10/10] =?UTF-8?q?style:=20=E7=BD=91=E5=85=83=E5=BF=AB?= =?UTF-8?q?=E9=80=9F=E5=AE=89=E8=A3=85=E6=93=8D=E4=BD=9CNest=E6=94=BE?= =?UTF-8?q?=E5=90=8E=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ne/neQuickSetup/index.vue | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/views/ne/neQuickSetup/index.vue b/src/views/ne/neQuickSetup/index.vue index c4f91521..e8f1c95c 100644 --- a/src/views/ne/neQuickSetup/index.vue +++ b/src/views/ne/neQuickSetup/index.vue @@ -47,13 +47,6 @@ function fnNext() {
- - {{ t('views.ne.neQuickSetup.stepNext') }} - {{ t('views.ne.neQuickSetup.reloadPara5G') }} + + {{ t('views.ne.neQuickSetup.stepNext') }} +