diff --git a/src/views/ne/neConfig/components/CheckSyncNe/index.vue b/src/views/ne/neConfig/components/CheckSyncNe/index.vue new file mode 100644 index 00000000..1acf3536 --- /dev/null +++ b/src/views/ne/neConfig/components/CheckSyncNe/index.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/src/views/ne/neConfig/hooks/useConfigArray.ts b/src/views/ne/neConfig/hooks/useConfigArray.ts index b0823043..ffe3e946 100644 --- a/src/views/ne/neConfig/hooks/useConfigArray.ts +++ b/src/views/ne/neConfig/hooks/useConfigArray.ts @@ -4,19 +4,20 @@ import { editNeConfigData, } from '@/api/ne/neConfig'; import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; -import { Modal,message } from 'ant-design-vue/es'; +import { Modal, message } from 'ant-design-vue/es'; import { SizeType } from 'ant-design-vue/es/config-provider'; import { reactive, watch } from 'vue'; /** * 参数配置array类型 - * @param param 父级传入 { t, treeState, neTypeSelect, fnActiveConfigNode, ruleVerification, modalState, fnModalCancel} + * @param param 父级传入 { t, treeState, neTypeSelect, neIdSelect, fnActiveConfigNode, ruleVerification, modalState, fnModalCancel} * @returns */ export default function useConfigArray({ t, treeState, neTypeSelect, + neIdSelect, fnActiveConfigNode, ruleVerification, modalState, @@ -130,29 +131,61 @@ export default function useConfigArray({ data[key] = from[key]['value']; } - // 发送 + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: data, + loc: loc, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + paramData: data, + loc: loc, + }) + ); + } + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + arrayEditClose(); + return; + } + const hide = message.loading(t('common.loading'), 0); - editNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: data, - loc: loc, - }) - .then(res => { - if (res.code === RESULT_CODE_SUCCESS) { + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.warning({ + content: t('views.ne.neConfig.updateItemErr'), + duration: 3, + }); + } else { message.success({ content: t('views.ne.neConfig.updateItem', { num: modalState.title, }), duration: 3, }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { fnActiveConfigNode('#'); - } else { - message.warning({ - content: t('views.ne.neConfig.updateItemErr'), - duration: 3, - }); } }) .finally(() => { @@ -172,28 +205,65 @@ export default function useConfigArray({ num: title, }), onOk() { - delNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - loc: loc, - }).then(res => { - if (res.code === RESULT_CODE_SUCCESS) { - message.success({ - content: t('views.ne.neConfig.delItemOk', { - num: title, - }), - duration: 2, - }); - arrayEditClose(); - fnActiveConfigNode('#'); - } else { - message.error({ - content: `${res.msg}`, - duration: 2, - }); + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + delNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + loc: loc, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + delNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + loc: loc, + }) + ); } - }); + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + arrayEditClose(); + return; + } + + const hide = message.loading(t('common.loading'), 0); + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.error({ + content: `${rejected.reason}`, + duration: 2, + }); + } else { + message.success({ + content: t('views.ne.neConfig.delItemOk', { + num: title, + }), + duration: 2, + }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { + fnActiveConfigNode('#'); + } + }) + .finally(() => { + hide(); + arrayEditClose(); + }); }, }); } @@ -264,29 +334,61 @@ export default function useConfigArray({ data[key] = from[key]['value']; } - // 发送 + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + addNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: data, + loc: `${from['index']['value']}`, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + addNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + paramData: data, + loc: `${from['index']['value']}`, + }) + ); + } + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + arrayEditClose(); + return; + } + const hide = message.loading(t('common.loading'), 0); - addNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: data, - loc: `${from['index']['value']}`, - }) - .then(res => { - if (res.code === RESULT_CODE_SUCCESS) { + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.warning({ + content: t('views.ne.neConfig.addItemErr'), + duration: 3, + }); + } else { message.success({ content: t('views.ne.neConfig.addItemOk', { num: modalState.title, }), duration: 3, }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { fnActiveConfigNode('#'); - } else { - message.warning({ - content: t('views.ne.neConfig.addItemErr'), - duration: 3, - }); } }) .finally(() => { diff --git a/src/views/ne/neConfig/hooks/useConfigArrayChild.ts b/src/views/ne/neConfig/hooks/useConfigArrayChild.ts index ee58b178..24428ca9 100644 --- a/src/views/ne/neConfig/hooks/useConfigArrayChild.ts +++ b/src/views/ne/neConfig/hooks/useConfigArrayChild.ts @@ -10,13 +10,14 @@ import { nextTick, reactive } from 'vue'; /** * 参数配置array类型的嵌套array - * @param param 父级传入 { t, treeState, neTypeSelect, fnActiveConfigNode, ruleVerification, modalState, arrayState, arrayInitEdit, arrayInitAdd, arrayEditClose} + * @param param 父级传入 { t, treeState, neTypeSelect, neIdSelect, fnActiveConfigNode, ruleVerification, modalState, arrayState, arrayInitEdit, arrayInitAdd, arrayEditClose} * @returns */ export default function useConfigArrayChild({ t, treeState, neTypeSelect, + neIdSelect, fnActiveConfigNode, ruleVerification, modalState, @@ -198,29 +199,61 @@ export default function useConfigArrayChild({ data[key] = from[key]['value']; } - // 发送 + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: data, + loc, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + paramData: data, + loc, + }) + ); + } + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + arrayEditClose(); + return; + } + const hide = message.loading(t('common.loading'), 0); - editNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: data, - loc, - }) - .then(res => { - if (res.code === RESULT_CODE_SUCCESS) { + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.warning({ + content: t('views.ne.neConfig.updateItemErr'), + duration: 3, + }); + } else { message.success({ content: t('views.ne.neConfig.updateItem', { num: modalState.title, }), duration: 3, }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { fnActiveConfigNode('#'); - } else { - message.warning({ - content: t('views.ne.neConfig.updateItemErr'), - duration: 3, - }); } }) .finally(() => { @@ -241,28 +274,65 @@ export default function useConfigArrayChild({ num: title, }), onOk() { - delNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - loc, - }).then(res => { - if (res.code === RESULT_CODE_SUCCESS) { - message.success({ - content: t('views.ne.neConfig.delItemOk', { - num: title, - }), - duration: 2, - }); - arrayEditClose(); - fnActiveConfigNode('#'); - } else { - message.error({ - content: `${res.msg}`, - duration: 2, - }); + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + delNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + loc, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + delNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + loc, + }) + ); } - }); + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + arrayEditClose(); + return; + } + + const hide = message.loading(t('common.loading'), 0); + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.error({ + content: `${rejected.reason}`, + duration: 2, + }); + } else { + message.success({ + content: t('views.ne.neConfig.delItemOk', { + num: title, + }), + duration: 2, + }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { + fnActiveConfigNode('#'); + } + }) + .finally(() => { + hide(); + arrayEditClose(); + }); }, }); } @@ -309,29 +379,61 @@ export default function useConfigArrayChild({ data[key] = from[key]['value']; } - // 发送 + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + addNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: data, + loc, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + addNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + paramData: data, + loc, + }) + ); + } + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + arrayEditClose(); + return; + } + const hide = message.loading(t('common.loading'), 0); - addNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: data, - loc, - }) - .then(res => { - if (res.code === RESULT_CODE_SUCCESS) { + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.warning({ + content: t('views.ne.neConfig.addItemErr'), + duration: 3, + }); + } else { message.success({ content: t('views.ne.neConfig.addItemOk', { num: modalState.title, }), duration: 3, }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { fnActiveConfigNode('#'); - } else { - message.warning({ - content: t('views.ne.neConfig.addItemErr'), - duration: 3, - }); } }) .finally(() => { diff --git a/src/views/ne/neConfig/hooks/useConfigList.ts b/src/views/ne/neConfig/hooks/useConfigList.ts index 37ed3aee..143f5574 100644 --- a/src/views/ne/neConfig/hooks/useConfigList.ts +++ b/src/views/ne/neConfig/hooks/useConfigList.ts @@ -6,13 +6,14 @@ import { reactive, toRaw } from 'vue'; /** * list类型参数处理 - * @param param 父级传入 {t, treeState, neTypeSelect, ruleVerification} + * @param param 父级传入 {t, treeState, neTypeSelect, neIdSelect, ruleVerification} * @returns */ export default function useConfigList({ t, treeState, neTypeSelect, + neIdSelect, ruleVerification, }: any) { /**单列表状态类型 */ @@ -83,25 +84,64 @@ export default function useConfigList({ return; } - // 发送 + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: { + [from['name']]: from['value'], + }, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + paramData: { + [from['name']]: from['value'], + }, + }) + ); + } + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + listState.confirmLoading = false; + listState.editRecord = {}; + return; + } + listState.confirmLoading = true; const hide = message.loading(t('common.loading'), 0); - editNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: { - [from['name']]: from['value'], - }, - }) - .then(res => { - if (res.code === RESULT_CODE_SUCCESS) { + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.warning({ + content: t('views.ne.neConfig.updateValueErr'), + duration: 3, + }); + } else { message.success({ content: t('views.ne.neConfig.updateValue', { num: from['display'], }), duration: 3, }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { // 改变表格数据 const item = listState.data.find( (item: Record) => from['name'] === item['name'] @@ -109,11 +149,6 @@ export default function useConfigList({ if (item) { Object.assign(item, listState.editRecord); } - } else { - message.warning({ - content: t('views.ne.neConfig.updateValueErr'), - duration: 3, - }); } }) .finally(() => { diff --git a/src/views/ne/neConfig/index.vue b/src/views/ne/neConfig/index.vue index 0c8b6bf0..42abcf29 100644 --- a/src/views/ne/neConfig/index.vue +++ b/src/views/ne/neConfig/index.vue @@ -1,11 +1,20 @@