Explorar o código

fix: bug#9205、9133、8698、9205、9157、9179、9202

xieyonghong %!s(int64=3) %!d(string=hai) anos
pai
achega
f2aa41fe29

+ 3 - 5
src/components/ProTableCard/CardItems/Scene/index.tsx

@@ -122,10 +122,8 @@ const actionFilter = (terms: any, isLast: boolean, index: number) => {
   terms?.forEach((item: any, iindex: number) => {
     if (isArray(item.terms)) {
       item.terms.map((iItem: number, iIndex: number) => {
-        str += `${handleOptionsLabel(
-          iItem,
-          iIndex < item.terms.length - 1 ? iItem[3] : undefined,
-        )}`;
+        const _isLast = iIndex < item.terms.length - 1;
+        str += `${handleOptionsLabel(iItem, _isLast ? item.terms[iIndex + 1]?.[3] : undefined)}`;
       });
     }
     str += iindex < terms.length - 1 ? item.termType : '';
@@ -152,7 +150,7 @@ const conditionsRender = (when: any[], index: number) => {
           ? termsItem.terms
               .map((bTermItem: any, bIndex: number) => {
                 const bLast = bIndex < termsItem.terms.length - 1;
-                return handleOptionsLabel(bTermItem, !bLast ? '' : bTermItem[3]);
+                return handleOptionsLabel(bTermItem, bLast ? termsItem.terms[bIndex + 1]?.[3] : '');
               })
               .join('')
           : '';

+ 1 - 1
src/pages/iot-card/Dashboard/index.less

@@ -58,7 +58,7 @@
 
 .total-echarts-right {
   display: flex;
-  flex-basis: 500px;
+  flex-basis: calc(33.3333333% - 16px);
   flex-direction: column;
   padding: 24px;
   background-color: #fff;

+ 2 - 0
src/pages/rule-engine/Scene/Save/action/Delay/index.tsx

@@ -55,6 +55,8 @@ export default observer((props: Props) => {
     <Modal
       title={'执行动作'}
       open
+      keyboard={false}
+      maskClosable={false}
       width={400}
       onCancel={() => {
         props.cancel();

+ 7 - 4
src/pages/rule-engine/Scene/Save/action/ListItem/FilterGroup.tsx

@@ -71,7 +71,7 @@ export default observer((props: TermsProps) => {
                   rules={[
                     {
                       validator(_, v) {
-                        if (v) {
+                        if (v !== undefined) {
                           if (!Object.keys(v).length) {
                             return Promise.reject(new Error('该数据已发生变更,请重新配置'));
                           }
@@ -83,12 +83,15 @@ export default observer((props: TermsProps) => {
                             return Promise.reject(new Error('请选择操作符'));
                           }
 
-                          if (!v.value) {
+                          if (v.value === undefined) {
                             return Promise.reject(new Error('请选择或输入参数值'));
                           } else {
-                            if (isArray(v.value.value) && v.value.value.some((_v: any) => !_v)) {
+                            if (
+                              isArray(v.value.value) &&
+                              v.value.value.some((_v: any) => _v === undefined)
+                            ) {
                               return Promise.reject(new Error('请选择或输入参数值'));
-                            } else if (!v.value.value) {
+                            } else if (v.value.value === undefined) {
                               return Promise.reject(new Error('请选择或输入参数值'));
                             }
                           }

+ 2 - 0
src/pages/rule-engine/Scene/Save/action/Modal/add.tsx

@@ -121,6 +121,8 @@ export default (props: Props) => {
     <Modal
       title="类型"
       open
+      keyboard={false}
+      maskClosable={false}
       width={860}
       onCancel={() => {
         props.close();

+ 3 - 1
src/pages/rule-engine/Scene/Save/device/addModel.tsx

@@ -311,7 +311,9 @@ export default observer((props: AddProps) => {
     <Modal
       visible
       title="执行规则"
-      width={810}
+      width={820}
+      keyboard={false}
+      maskClosable={false}
       onCancel={() => {
         props.onCancel?.();
         TriggerDeviceModel.stepNumber = 0;

+ 1 - 1
src/pages/rule-engine/Scene/Save/manual/index.tsx

@@ -38,7 +38,7 @@ export default () => {
                   if (data.actions?.length) {
                     FormModel.current.branches![0].then[indexOf] = data;
                   } else {
-                    FormModel.current.branches![0].then = [];
+                    FormModel.current.branches![0].then[indexOf].actions = [];
                   }
                 }
               }}

+ 1 - 1
src/pages/rule-engine/Scene/Save/terms/branchItem.tsx

@@ -172,7 +172,7 @@ export default observer((props: BranchesItemProps) => {
                         if (data.actions?.length) {
                           FormModel.current.branches![props.name].then[indexOf] = data;
                         } else {
-                          FormModel.current.branches![props.name].then = [];
+                          FormModel.current.branches![props.name].then[indexOf].actions = [];
                         }
                       }
                     }}

+ 1 - 1
src/pages/rule-engine/Scene/Save/terms/paramsItem.tsx

@@ -59,7 +59,7 @@ const handleOptions = (options: any[]): any[] => {
 const DoubleFilter = ['nbtw', 'btw', 'in', 'nin'];
 
 export const handleOptionsLabel = (data: any, type?: string) => {
-  if (isArray(data)) {
+  if (data && isArray(data)) {
     try {
       const c = data[0];
       const t = data[1];

+ 6 - 3
src/pages/rule-engine/Scene/Save/terms/term.tsx

@@ -91,12 +91,15 @@ export default observer((props: TermsProps) => {
                             return Promise.reject(new Error('请选择操作符'));
                           }
 
-                          if (!v.value) {
+                          if (v.value === undefined) {
                             return Promise.reject(new Error('请选择或输入参数值'));
                           } else {
-                            if (isArray(v.value.value) && v.value.value.some((_v: any) => !_v)) {
+                            if (
+                              isArray(v.value.value) &&
+                              v.value.value.some((_v: any) => _v === undefined)
+                            ) {
                               return Promise.reject(new Error('请选择或输入参数值'));
-                            } else if (!v.value.value) {
+                            } else if (v.value.value === undefined) {
                               return Promise.reject(new Error('请选择或输入参数值'));
                             }
                           }

+ 1 - 1
src/pages/rule-engine/Scene/Save/timer/index.tsx

@@ -105,7 +105,7 @@ export default observer((props: Props) => {
                     if (data.actions?.length) {
                       FormModel.current.branches![0].then[indexOf] = data;
                     } else {
-                      FormModel.current.branches![0].then = [];
+                      FormModel.current.branches![0].then[indexOf].actions = [];
                     }
                   }
                 }}