diff --git a/apps/web-antd/src/components/map/src/utils.ts b/apps/web-antd/src/components/map/src/utils.ts index c5ff378e1..af77d2daf 100644 --- a/apps/web-antd/src/components/map/src/utils.ts +++ b/apps/web-antd/src/components/map/src/utils.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-dynamic-delete */ /** * 百度地图 SDK 加载工具 */ @@ -41,7 +40,7 @@ export const loadBaiduMapSdk = (timeout = 10_000): Promise => { // 全局回调 (window as any)[CALLBACK_NAME] = () => { clearTimeout(timeoutId); - delete (window as any)[CALLBACK_NAME]; + delete (window as any).CALLBACK_NAME; resolve(); }; @@ -53,7 +52,7 @@ export const loadBaiduMapSdk = (timeout = 10_000): Promise => { script.addEventListener('onerror', () => { clearTimeout(timeoutId); loadPromise = null; - delete (window as any)[CALLBACK_NAME]; + delete (window as any).CALLBACK_NAME; reject(new Error('百度地图 SDK 加载失败')); }); document.body.append(script); diff --git a/apps/web-antd/src/store/auth.ts b/apps/web-antd/src/store/auth.ts index 7d09f0ec4..2c54520a8 100644 --- a/apps/web-antd/src/store/auth.ts +++ b/apps/web-antd/src/store/auth.ts @@ -133,9 +133,8 @@ export const useAuthStore = defineStore('auth', () => { async function fetchUserInfo() { // 加载 - // eslint-disable-next-line no-useless-assignment - let authPermissionInfo: AuthPermissionInfo | null = null; - authPermissionInfo = await getAuthPermissionInfoApi(); + const authPermissionInfo: AuthPermissionInfo | null = + await getAuthPermissionInfoApi(); // userStore userStore.setUserInfo(authPermissionInfo.user); userStore.setUserRoles(authPermissionInfo.roles); diff --git a/apps/web-antd/src/views/ai/mindmap/index/modules/right.vue b/apps/web-antd/src/views/ai/mindmap/index/modules/right.vue index 3e03e3735..e02e2066e 100644 --- a/apps/web-antd/src/views/ai/mindmap/index/modules/right.vue +++ b/apps/web-antd/src/views/ai/mindmap/index/modules/right.vue @@ -100,8 +100,7 @@ function processContent(text: string) { if (line.includes('```')) { continue; } - // eslint-disable-next-line unicorn/prefer-string-replace-all - line = line.replace(/([*_~`>])|(\d+\.)\s/g, ''); + line = line.replaceAll(/([*_~`>])|(\d+\.)\s/g, ''); arr.push(line); } return arr.join('\n'); @@ -155,7 +154,6 @@ defineExpose({ class="flex flex-col items-center justify-center" v-html="html" > -
import type { Recordable } from '@vben/types'; + import type { MusicSong } from './types'; import { provide, ref } from 'vue'; diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/designer/ProcessDesigner.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/designer/ProcessDesigner.vue index d827fec43..a56a608d5 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/designer/ProcessDesigner.vue +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/designer/ProcessDesigner.vue @@ -398,8 +398,7 @@ const setEncoded = (type: string, data: string) => { const importLocalFile = () => { const file = refFile.value.files[0]; const reader = new FileReader(); - // eslint-disable-next-line unicorn/prefer-blob-reading-methods - reader.readAsText(file); + reader.text(file); reader.addEventListener('load', function () { const xmlStr = this.result; createNewDiagram(xmlStr); diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue index 0a1141e77..294aa0728 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue @@ -239,7 +239,9 @@ const selectProcessListener = (listener: any) => { ) ?? []; updateElementExtensions( bpmnElement, - otherExtensionList.value?.concat(bpmnElementListeners.value), + otherExtensionList.value + ? [...otherExtensionList.value, ...bpmnElementListeners.value] + : undefined, ); }; diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/multi-instance/ElementMultiInstance.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/multi-instance/ElementMultiInstance.vue index 8b344fee5..f9e0d40f5 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/multi-instance/ElementMultiInstance.vue +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/multi-instance/ElementMultiInstance.vue @@ -72,7 +72,6 @@ declare global { const bpmnInstances = () => (window as any)?.bpmnInstances; // @ts-expect-error: retained for legacy multi-instance mode compatibility -// eslint-disable-next-line unused-imports/no-unused-vars const getElementLoop = (businessObject: any): void => { if (!businessObject.loopCharacteristics) { loopCharacteristics.value = 'Null'; diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/task/task-components/UserTask.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/task/task-components/UserTask.vue index 9a6844b2d..d26f6fbce 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/task/task-components/UserTask.vue +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/task/task-components/UserTask.vue @@ -126,7 +126,6 @@ const resetTaskForm = () => { (ex: any) => ex.$type === `${prefix}:CandidateParam`, )?.value; if (candidateParamStr && candidateParamStr.length > 0) { - // eslint-disable-next-line unicorn/prefer-switch if (userTaskForm.value.candidateStrategy === CandidateStrategy.EXPRESSION) { // 特殊:流程表达式,只有一个 input 输入框 // @ts-expect-error: expression strategy stores a scalar in an array-shaped field diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/src/utils/directive/clickOutSide.js b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/src/utils/directive/clickOutSide.js index e8ea772ba..9b0b62112 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/src/utils/directive/clickOutSide.js +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/src/utils/directive/clickOutSide.js @@ -34,7 +34,6 @@ export default { }, unbind(el) { document.removeEventListener('touchstart', el[ctx].documentHandler); // 解绑 - // eslint-disable-next-line @typescript-eslint/no-dynamic-delete - delete el[ctx]; + delete el.ctx; }, }; diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/src/utils/xml2json.js b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/src/utils/xml2json.js index 76858999d..68541fee7 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/src/utils/xml2json.js +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/src/utils/xml2json.js @@ -1,6 +1,5 @@ function xmlStr2XmlObj(xmlStr) { - // eslint-disable-next-line no-useless-assignment - let xmlObj = {}; + let xmlObj; if (document.all) { const xmlDom = new window.ActiveXObject('Microsoft.XMLDOM'); xmlDom.loadXML(xmlStr); diff --git a/apps/web-antd/src/views/bpm/components/simple-process-design/helpers.ts b/apps/web-antd/src/views/bpm/components/simple-process-design/helpers.ts index a873ec664..73ab2c5a6 100644 --- a/apps/web-antd/src/views/bpm/components/simple-process-design/helpers.ts +++ b/apps/web-antd/src/views/bpm/components/simple-process-design/helpers.ts @@ -413,9 +413,10 @@ export function useNodeForm(nodeType: BpmNodeTypeEnum) { case CandidateStrategy.FORM_DEPT_LEADER: { // 候选人参数格式: | 分隔 。左边为表单内部门字段。 右边为部门层级 const deptFieldOnForm = configForm.value.formDept; - candidateParam = deptFieldOnForm?.concat( - `|${configForm.value.deptLevel}`, - ); + candidateParam = + deptFieldOnForm === undefined + ? undefined + : `${deptFieldOnForm}|${configForm.value.deptLevel}`; break; } case CandidateStrategy.FORM_USER: { @@ -426,7 +427,10 @@ export function useNodeForm(nodeType: BpmNodeTypeEnum) { case CandidateStrategy.MULTI_LEVEL_DEPT_LEADER: { // 候选人参数格式: | 分隔 。左边为部门(多个部门用 , 分隔)。 右边为部门层级 const deptIds = configForm.value.deptIds?.join(','); - candidateParam = deptIds?.concat(`|${configForm.value.deptLevel}`); + candidateParam = + deptIds === undefined + ? undefined + : `${deptIds}|${configForm.value.deptLevel}`; break; } case CandidateStrategy.POST: { diff --git a/apps/web-antd/src/views/crm/business/status/modules/form.vue b/apps/web-antd/src/views/crm/business/status/modules/form.vue index 480e07866..c6ed69a44 100644 --- a/apps/web-antd/src/views/crm/business/status/modules/form.vue +++ b/apps/web-antd/src/views/crm/business/status/modules/form.vue @@ -94,8 +94,10 @@ const [Modal, modalApi] = useVbenModal({ // 设置到 values await formApi.setValues(formData.value as any); await gridApi.grid.reloadData( - (formData.value!.statuses = - formData.value?.statuses?.concat(DEFAULT_STATUSES)) as any, + (formData.value!.statuses = [ + ...formData.value.statuses, + ...DEFAULT_STATUSES, + ]) as any, ); } finally { modalApi.unlock(); @@ -128,7 +130,9 @@ const [Grid, gridApi] = useVbenVxeGrid({ mode: 'cell', }, columns: useFormColumns(), - data: formData.value?.statuses?.concat(DEFAULT_STATUSES), + data: formData.value?.statuses + ? [...formData.value.statuses, ...DEFAULT_STATUSES] + : undefined, border: true, showOverflow: true, autoResize: true, diff --git a/apps/web-antd/src/views/erp/purchase/return/modules/form.vue b/apps/web-antd/src/views/erp/purchase/return/modules/form.vue index dc907057d..46ef48a6d 100644 --- a/apps/web-antd/src/views/erp/purchase/return/modules/form.vue +++ b/apps/web-antd/src/views/erp/purchase/return/modules/form.vue @@ -1,4 +1,5 @@
-
import type { Recordable } from '@vben/types'; + import type { MusicSong } from './types'; import { provide, ref } from 'vue'; diff --git a/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/designer/ProcessDesigner.vue b/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/designer/ProcessDesigner.vue index d1029383c..7e33778cf 100644 --- a/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/designer/ProcessDesigner.vue +++ b/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/designer/ProcessDesigner.vue @@ -398,8 +398,7 @@ const setEncoded = (type: string, data: string) => { const importLocalFile = () => { const file = refFile.value.files[0]; const reader = new FileReader(); - // eslint-disable-next-line unicorn/prefer-blob-reading-methods - reader.readAsText(file); + reader.text(file); reader.addEventListener('load', function () { const xmlStr = this.result; createNewDiagram(xmlStr); diff --git a/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue b/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue index ff31e9f65..e29fd62ed 100644 --- a/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue +++ b/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue @@ -231,7 +231,9 @@ const selectProcessListener = (listener: any) => { ) ?? []; updateElementExtensions( bpmnElement, - otherExtensionList.value?.concat(bpmnElementListeners.value), + otherExtensionList.value + ? [...otherExtensionList.value, ...bpmnElementListeners.value] + : undefined, ); }; diff --git a/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/penal/multi-instance/ElementMultiInstance.vue b/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/penal/multi-instance/ElementMultiInstance.vue index 9179a99b4..2851902e8 100644 --- a/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/penal/multi-instance/ElementMultiInstance.vue +++ b/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/penal/multi-instance/ElementMultiInstance.vue @@ -72,7 +72,6 @@ declare global { const bpmnInstances = () => (window as any)?.bpmnInstances; // @ts-expect-error: retained for legacy multi-instance mode compatibility -// eslint-disable-next-line unused-imports/no-unused-vars const getElementLoop = (businessObject: any): void => { if (!businessObject.loopCharacteristics) { loopCharacteristics.value = 'Null'; diff --git a/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/penal/task/task-components/UserTask.vue b/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/penal/task/task-components/UserTask.vue index 52059746e..5a118f579 100644 --- a/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/penal/task/task-components/UserTask.vue +++ b/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/package/penal/task/task-components/UserTask.vue @@ -125,7 +125,6 @@ const resetTaskForm = () => { (ex: any) => ex.$type === `${prefix}:CandidateParam`, )?.value; if (candidateParamStr && candidateParamStr.length > 0) { - // eslint-disable-next-line unicorn/prefer-switch if (userTaskForm.value.candidateStrategy === CandidateStrategy.EXPRESSION) { // 特殊:流程表达式,只有一个 input 输入框 // @ts-expect-error: expression strategy stores a scalar in an array-shaped field diff --git a/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/src/utils/directive/clickOutSide.js b/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/src/utils/directive/clickOutSide.js index e8ea772ba..9b0b62112 100644 --- a/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/src/utils/directive/clickOutSide.js +++ b/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/src/utils/directive/clickOutSide.js @@ -34,7 +34,6 @@ export default { }, unbind(el) { document.removeEventListener('touchstart', el[ctx].documentHandler); // 解绑 - // eslint-disable-next-line @typescript-eslint/no-dynamic-delete - delete el[ctx]; + delete el.ctx; }, }; diff --git a/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/src/utils/xml2json.js b/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/src/utils/xml2json.js index 76858999d..68541fee7 100644 --- a/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/src/utils/xml2json.js +++ b/apps/web-antdv-next/src/views/bpm/components/bpmn-process-designer/src/utils/xml2json.js @@ -1,6 +1,5 @@ function xmlStr2XmlObj(xmlStr) { - // eslint-disable-next-line no-useless-assignment - let xmlObj = {}; + let xmlObj; if (document.all) { const xmlDom = new window.ActiveXObject('Microsoft.XMLDOM'); xmlDom.loadXML(xmlStr); diff --git a/apps/web-antdv-next/src/views/bpm/components/simple-process-design/helpers.ts b/apps/web-antdv-next/src/views/bpm/components/simple-process-design/helpers.ts index a873ec664..73ab2c5a6 100644 --- a/apps/web-antdv-next/src/views/bpm/components/simple-process-design/helpers.ts +++ b/apps/web-antdv-next/src/views/bpm/components/simple-process-design/helpers.ts @@ -413,9 +413,10 @@ export function useNodeForm(nodeType: BpmNodeTypeEnum) { case CandidateStrategy.FORM_DEPT_LEADER: { // 候选人参数格式: | 分隔 。左边为表单内部门字段。 右边为部门层级 const deptFieldOnForm = configForm.value.formDept; - candidateParam = deptFieldOnForm?.concat( - `|${configForm.value.deptLevel}`, - ); + candidateParam = + deptFieldOnForm === undefined + ? undefined + : `${deptFieldOnForm}|${configForm.value.deptLevel}`; break; } case CandidateStrategy.FORM_USER: { @@ -426,7 +427,10 @@ export function useNodeForm(nodeType: BpmNodeTypeEnum) { case CandidateStrategy.MULTI_LEVEL_DEPT_LEADER: { // 候选人参数格式: | 分隔 。左边为部门(多个部门用 , 分隔)。 右边为部门层级 const deptIds = configForm.value.deptIds?.join(','); - candidateParam = deptIds?.concat(`|${configForm.value.deptLevel}`); + candidateParam = + deptIds === undefined + ? undefined + : `${deptIds}|${configForm.value.deptLevel}`; break; } case CandidateStrategy.POST: { diff --git a/apps/web-antdv-next/src/views/crm/business/status/modules/form.vue b/apps/web-antdv-next/src/views/crm/business/status/modules/form.vue index 28cf345a8..48969ef67 100644 --- a/apps/web-antdv-next/src/views/crm/business/status/modules/form.vue +++ b/apps/web-antdv-next/src/views/crm/business/status/modules/form.vue @@ -94,8 +94,10 @@ const [Modal, modalApi] = useVbenModal({ // 设置到 values await formApi.setValues(formData.value as any); await gridApi.grid.reloadData( - (formData.value!.statuses = - formData.value?.statuses?.concat(DEFAULT_STATUSES)) as any, + (formData.value!.statuses = [ + ...formData.value.statuses, + ...DEFAULT_STATUSES, + ]) as any, ); } finally { modalApi.unlock(); @@ -128,7 +130,9 @@ const [Grid, gridApi] = useVbenVxeGrid({ mode: 'cell', }, columns: useFormColumns(), - data: formData.value?.statuses?.concat(DEFAULT_STATUSES), + data: formData.value?.statuses + ? [...formData.value.statuses, ...DEFAULT_STATUSES] + : undefined, border: true, showOverflow: true, autoResize: true, diff --git a/apps/web-antdv-next/src/views/erp/purchase/return/modules/form.vue b/apps/web-antdv-next/src/views/erp/purchase/return/modules/form.vue index ed349a100..ec3086d7d 100644 --- a/apps/web-antdv-next/src/views/erp/purchase/return/modules/form.vue +++ b/apps/web-antdv-next/src/views/erp/purchase/return/modules/form.vue @@ -1,4 +1,5 @@
-
import type { Recordable } from '@vben/types'; + import type { MusicSong } from './types'; import { provide, ref } from 'vue'; diff --git a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/designer/ProcessDesigner.vue b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/designer/ProcessDesigner.vue index ee9178e7f..e55eded30 100644 --- a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/designer/ProcessDesigner.vue +++ b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/designer/ProcessDesigner.vue @@ -405,8 +405,7 @@ const setEncoded = (type: string, data: string) => { const importLocalFile = () => { const file = refFile.value.files[0]; const reader = new FileReader(); - // eslint-disable-next-line unicorn/prefer-blob-reading-methods - reader.readAsText(file); + reader.text(file); reader.addEventListener('load', function () { const xmlStr = this.result; createNewDiagram(xmlStr); diff --git a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/designer/plugins/extension-moddle/camunda/extension.js b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/designer/plugins/extension-moddle/camunda/extension.js index 3956be680..b9c3ae9a4 100644 --- a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/designer/plugins/extension-moddle/camunda/extension.js +++ b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/designer/plugins/extension-moddle/camunda/extension.js @@ -3,14 +3,11 @@ import { isFunction, isObject } from '@vben/utils'; const WILDCARD = '*'; function CamundaModdleExtension(eventBus) { - // eslint-disable-next-line unicorn/no-this-assignment, @typescript-eslint/no-this-alias - const self = this; - eventBus.on('moddleCopy.canCopyProperty', (context) => { const parent = context.parent; const property = context.property; - return self.canCopyProperty(property, parent); + return this.canCopyProperty(property, parent); }); } diff --git a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue index fe269ff7a..a7c0883dc 100644 --- a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue +++ b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue @@ -239,7 +239,9 @@ const selectProcessListener = (listener: any) => { ) ?? []; updateElementExtensions( bpmnElement, - otherExtensionList.value?.concat(bpmnElementListeners.value), + otherExtensionList.value + ? [...otherExtensionList.value, ...bpmnElementListeners.value] + : undefined, ); }; diff --git a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/multi-instance/ElementMultiInstance.vue b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/multi-instance/ElementMultiInstance.vue index 7a5016c0a..46070078d 100644 --- a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/multi-instance/ElementMultiInstance.vue +++ b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/multi-instance/ElementMultiInstance.vue @@ -74,7 +74,6 @@ declare global { const bpmnInstances = () => (window as any)?.bpmnInstances; // @ts-expect-error: retained for legacy multi-instance mode compatibility -// eslint-disable-next-line unused-imports/no-unused-vars const getElementLoop = (businessObject: any): void => { if (!businessObject.loopCharacteristics) { loopCharacteristics.value = 'Null'; diff --git a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/task/task-components/UserTask.vue b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/task/task-components/UserTask.vue index fa94bb617..d9f8fd7fc 100644 --- a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/task/task-components/UserTask.vue +++ b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/package/penal/task/task-components/UserTask.vue @@ -126,7 +126,6 @@ const resetTaskForm = () => { (ex: any) => ex.$type === `${prefix}:CandidateParam`, )?.value; if (candidateParamStr && candidateParamStr.length > 0) { - // eslint-disable-next-line unicorn/prefer-switch if (userTaskForm.value.candidateStrategy === CandidateStrategy.EXPRESSION) { // 特殊:流程表达式,只有一个 input 输入框 // @ts-expect-error: expression strategy stores a scalar in an array-shaped field diff --git a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/src/utils/directive/clickOutSide.js b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/src/utils/directive/clickOutSide.js index e8ea772ba..9b0b62112 100644 --- a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/src/utils/directive/clickOutSide.js +++ b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/src/utils/directive/clickOutSide.js @@ -34,7 +34,6 @@ export default { }, unbind(el) { document.removeEventListener('touchstart', el[ctx].documentHandler); // 解绑 - // eslint-disable-next-line @typescript-eslint/no-dynamic-delete - delete el[ctx]; + delete el.ctx; }, }; diff --git a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/src/utils/xml2json.js b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/src/utils/xml2json.js index 76858999d..68541fee7 100644 --- a/apps/web-ele/src/views/bpm/components/bpmn-process-designer/src/utils/xml2json.js +++ b/apps/web-ele/src/views/bpm/components/bpmn-process-designer/src/utils/xml2json.js @@ -1,6 +1,5 @@ function xmlStr2XmlObj(xmlStr) { - // eslint-disable-next-line no-useless-assignment - let xmlObj = {}; + let xmlObj; if (document.all) { const xmlDom = new window.ActiveXObject('Microsoft.XMLDOM'); xmlDom.loadXML(xmlStr); diff --git a/apps/web-ele/src/views/bpm/components/simple-process-design/helpers.ts b/apps/web-ele/src/views/bpm/components/simple-process-design/helpers.ts index 0971c7d2c..6c111bc5c 100644 --- a/apps/web-ele/src/views/bpm/components/simple-process-design/helpers.ts +++ b/apps/web-ele/src/views/bpm/components/simple-process-design/helpers.ts @@ -455,9 +455,10 @@ export function useNodeForm(nodeType: BpmNodeTypeEnum) { case CandidateStrategy.FORM_DEPT_LEADER: { // 候选人参数格式: | 分隔 。左边为表单内部门字段。 右边为部门层级 const deptFieldOnForm = configForm.value.formDept; - candidateParam = deptFieldOnForm?.concat( - `|${configForm.value.deptLevel}`, - ); + candidateParam = + deptFieldOnForm === undefined + ? undefined + : `${deptFieldOnForm}|${configForm.value.deptLevel}`; break; } case CandidateStrategy.FORM_USER: { @@ -468,7 +469,10 @@ export function useNodeForm(nodeType: BpmNodeTypeEnum) { case CandidateStrategy.MULTI_LEVEL_DEPT_LEADER: { // 候选人参数格式: | 分隔 。左边为部门(多个部门用 , 分隔)。 右边为部门层级 const deptIds = configForm.value.deptIds?.join(','); - candidateParam = deptIds?.concat(`|${configForm.value.deptLevel}`); + candidateParam = + deptIds === undefined + ? undefined + : `${deptIds}|${configForm.value.deptLevel}`; break; } case CandidateStrategy.POST: { diff --git a/apps/web-ele/src/views/crm/business/status/modules/form.vue b/apps/web-ele/src/views/crm/business/status/modules/form.vue index 73abbb36a..086e8c66d 100644 --- a/apps/web-ele/src/views/crm/business/status/modules/form.vue +++ b/apps/web-ele/src/views/crm/business/status/modules/form.vue @@ -94,8 +94,10 @@ const [Modal, modalApi] = useVbenModal({ // 设置到 values await formApi.setValues(formData.value as any); await gridApi.grid.reloadData( - (formData.value!.statuses = - formData.value?.statuses?.concat(DEFAULT_STATUSES)) as any, + (formData.value!.statuses = [ + ...formData.value.statuses, + ...DEFAULT_STATUSES, + ]) as any, ); } finally { modalApi.unlock(); @@ -128,7 +130,9 @@ const [Grid, gridApi] = useVbenVxeGrid({ mode: 'cell', }, columns: useFormColumns(), - data: formData.value?.statuses?.concat(DEFAULT_STATUSES), + data: formData.value?.statuses + ? [...formData.value.statuses, ...DEFAULT_STATUSES] + : undefined, border: true, showOverflow: true, autoResize: true, diff --git a/apps/web-ele/src/views/erp/purchase/return/modules/form.vue b/apps/web-ele/src/views/erp/purchase/return/modules/form.vue index 95c0b1481..d99225a62 100644 --- a/apps/web-ele/src/views/erp/purchase/return/modules/form.vue +++ b/apps/web-ele/src/views/erp/purchase/return/modules/form.vue @@ -1,4 +1,5 @@