XieYongHong пре 3 година
родитељ
комит
4b1faeeafe

+ 33 - 0
src/components/FDatePicker/index.tsx

@@ -0,0 +1,33 @@
+import { connect, mapProps } from '@formily/react';
+import { DatePicker } from 'antd';
+import type { DatePickerProps } from 'antd';
+import moment from 'moment';
+
+interface DatePickerFormatProps extends Omit<DatePickerProps, 'onChange'> {
+  onChange?: (dateString: string, date: moment.Moment | null) => void;
+}
+
+const DatePickerFormat = (props: DatePickerFormatProps) => {
+  const { value, onChange, ...extraProps } = props;
+  return (
+    <>
+      {
+        // @ts-ignore
+        <DatePicker
+          {...extraProps}
+          onChange={(date, dateString) => {
+            if (onChange && date) {
+              onChange(dateString, date);
+            }
+          }}
+        />
+      }
+    </>
+  );
+};
+
+const FDatePicker = connect((props: DatePickerFormatProps) => {
+  return <DatePickerFormat {...props} />;
+}, mapProps());
+
+export default FDatePicker;

+ 1 - 0
src/components/index.ts

@@ -15,3 +15,4 @@ export { default as Empty } from './Empty';
 export { default as GeoPoint } from './GeoPoint';
 export { default as MetadataJsonInput } from './FormItems/MetadataJsonInput';
 export { default as Ellipsis } from './Ellipsis';
+export { default as FDatePicker } from './FDatePicker';

+ 5 - 0
src/pages/init-home/components/data/index.tsx

@@ -61,6 +61,11 @@ const Data = forwardRef((_, ref) => {
           productId: product?.result?.id,
           productName: product?.result?.name,
         });
+
+        if (device.status === 200) {
+          service.changeDeploy(product.result.id);
+          service.deployDevice(device.result.id);
+        }
         resolve(device.status === 200);
       } catch (e) {
         console.log(e);

+ 4 - 3
src/pages/init-home/index.tsx

@@ -53,6 +53,7 @@ const InitHome = () => {
             <Spin spinning={loadings}>
               <Collapse defaultActiveKey={['1']} accordion>
                 <Collapse.Panel
+                  forceRender={true}
                   header={
                     <div className={styles.collapseTitle}>
                       基本信息
@@ -66,6 +67,7 @@ const InitHome = () => {
                   <Basis ref={baseRef} />
                 </Collapse.Panel>
                 <Collapse.Panel
+                  forceRender={true}
                   header={
                     <div className={styles.collapseTitle}>
                       菜单初始化<div className={styles.collapseDesc}>初始化菜单数据</div>
@@ -76,6 +78,7 @@ const InitHome = () => {
                   <Menu ref={menuRef} />
                 </Collapse.Panel>
                 <Collapse.Panel
+                  forceRender={true}
                   header={
                     <div className={styles.collapseTitle}>
                       角色初始化<div className={styles.collapseDesc}>初始化内置角色与权限数据</div>
@@ -86,6 +89,7 @@ const InitHome = () => {
                   <Role ref={roleRef} />
                 </Collapse.Panel>
                 <Collapse.Panel
+                  forceRender={true}
                   header={
                     <div className={styles.collapseTitle}>
                       初始数据<div className={styles.collapseDesc}>初始化设备接入示例数据</div>
@@ -111,7 +115,6 @@ const InitHome = () => {
                   }
                   cacheRef.current?.add('base');
                 }
-
                 if (!cacheRef.current?.has('menu')) {
                   const menuRes = await menuRef.current?.save();
                   if (!menuRes) {
@@ -119,7 +122,6 @@ const InitHome = () => {
                   }
                   cacheRef.current?.add('menu');
                 }
-
                 if (!cacheRef.current?.has('role')) {
                   const roleRes = await roleRef.current?.save();
                   if (!roleRes) {
@@ -127,7 +129,6 @@ const InitHome = () => {
                   }
                   cacheRef.current?.add('role');
                 }
-
                 if (!cacheRef.current?.has('data')) {
                   const dataRes = await dataRef.current?.save();
                   if (!dataRes) {

+ 12 - 0
src/pages/init-home/service.ts

@@ -71,6 +71,18 @@ class Service extends BaseService<any> {
     });
   //  获取初始化
   getInit = () => request(`/${SystemConst.API_BASE}/user/settings/init`, { method: 'GET' });
+
+  // 启用设备
+  deployDevice = (deviceId: string, params?: any) =>
+    request(`/${SystemConst.API_BASE}/device-instance/${deviceId}/deploy`, {
+      method: 'POST',
+      data: params,
+    });
+
+  changeDeploy = (id: string) =>
+    request(`/${SystemConst.API_BASE}/device-product/${id}/deploy`, {
+      method: 'POST',
+    });
 }
 
 export default Service;

+ 9 - 3
src/pages/notice/Template/Debug/index.tsx

@@ -4,7 +4,6 @@ import { createForm, Field, onFieldReact, onFieldValueChange } from '@formily/co
 import { createSchemaField, observer } from '@formily/react';
 import {
   ArrayTable,
-  DatePicker,
   Form,
   FormItem,
   Input,
@@ -17,6 +16,7 @@ import { configService, service, state } from '@/pages/notice/Template';
 import { useLocation } from 'umi';
 import { onlyMessage, useAsyncDataSource } from '@/utils/util';
 import { Store } from 'jetlinks-store';
+import { FDatePicker } from '@/components';
 import FUpload from '@/components/Upload';
 
 const Debug = observer(() => {
@@ -50,8 +50,14 @@ const Debug = observer(() => {
             if (format && value) {
               switch (value) {
                 case 'date':
-                  format.setComponent(DatePicker, {
+                  let dateFormat = 'YYYY-MM-DD HH:mm:ss';
+                  if (variableRef.current) {
+                    const a = variableRef.current?.find((i: any) => i.id === _id.value);
+                    dateFormat = a?.format;
+                  }
+                  format.setComponent(FDatePicker, {
                     showTime: true,
+                    format: dateFormat,
                   });
                   break;
                 case 'string':
@@ -133,7 +139,7 @@ const Debug = observer(() => {
       ArrayTable,
       PreviewText,
       NumberPicker,
-      DatePicker,
+      FDatePicker,
       FUpload,
     },
   });

+ 2 - 0
src/pages/rule-engine/Scene/Save/action/device/functionCall.tsx

@@ -26,6 +26,7 @@ export default (props: FunctionCallProps) => {
 
   useEffect(() => {
     setEditableRowKeys(props.functionData.map((d) => d.id));
+    console.log(formRef.current, props.functionData);
     formRef.current?.setFieldsValue({
       table: props.functionData,
     });
@@ -42,6 +43,7 @@ export default (props: FunctionCallProps) => {
               value: oldValue.value,
             };
           }
+          console.log(item);
           return item;
         }),
       });

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

@@ -69,7 +69,7 @@ export default observer((props: TriggerProps) => {
         newOperator = [...newOperator, { label: '功能调用', value: OperatorEnum.invokeFunction }];
         setFunctions(metadataObj.functions);
       }
-      setOperatorOptions(Object.keys(metadataObj).length ? newOperator : undefined);
+      setOperatorOptions(newOperator);
     } catch (err) {
       console.warn('handleMetadata === ', err);
     }

+ 2 - 2
src/pages/system/Department/Assets/deivce/bind.tsx

@@ -12,6 +12,7 @@ import SearchComponent from '@/components/SearchComponent';
 import { ExtraDeviceCard } from '@/components/ProTableCard/CardItems/device';
 import { ProTableCard } from '@/components';
 import { AssetsModel } from '@/pages/system/Department/Assets';
+import encodeQuery from '@/utils/encodeQuery';
 
 interface Props {
   reload: () => void;
@@ -48,7 +49,7 @@ const Bind = observer((props: Props) => {
       valueType: 'select',
       filterMultiple: true,
       request: async () => {
-        const res = await service.getProductList();
+        const res = await service.getProductList(encodeQuery({ sorts: { createTime: 'desc' } }));
         if (res.status === 200) {
           return res.result.map((pItem: any) => ({ label: pItem.name, value: pItem.id }));
         }
@@ -121,7 +122,6 @@ const Bind = observer((props: Props) => {
   }, [props.visible]);
 
   const getParams = (params: any) => {
-    console.log(params);
     const _params: any = [
       {
         column: 'id',

+ 2 - 1
src/pages/system/Department/Assets/deivce/index.tsx

@@ -15,6 +15,7 @@ import { PermissionButton, ProTableCard } from '@/components';
 import { onlyMessage } from '@/utils/util';
 import { ASSETS_TABS_ENUM, AssetsModel } from '@/pages/system/Department/Assets';
 import UpdateModal from '@/pages/system/Department/Assets/updateModal';
+import encodeQuery from '@/utils/encodeQuery';
 
 export const service = new Service<DeviceItem>('assets');
 
@@ -108,7 +109,7 @@ export default observer((props: { parentId: string }) => {
       valueType: 'select',
       dataIndex: 'productId$product-info',
       request: async () => {
-        const res = await service.getProductList();
+        const res = await service.getProductList(encodeQuery({ sorts: { createTime: 'desc' } }));
         if (res.status === 200) {
           return res.result.map((pItem: any) => ({ label: pItem.name, value: pItem.id }));
         }