wzyyy 3 år sedan
förälder
incheckning
bc4da98d1b

+ 2 - 2
config/proxy.ts

@@ -17,8 +17,8 @@ export default {
       // 测试环境
       target: 'http://120.77.179.54:8844/',
       ws: 'ws://120.77.179.54:8844/',
-      // target: 'http://192.168.66.5:8844/',
-      // ws: 'ws://192.168.66.5:8844/',
+      // target: 'http://47.109.52.230:8844/',
+      // ws: 'ws://47.109.52.230:8844/',
       // ws: 'ws://demo.jetlinks.cn/jetlinks',
       // target: 'http://demo.jetlinks.cn/jetlinks',
       changeOrigin: true,

+ 3 - 2
src/components/RightContent/index.tsx

@@ -1,7 +1,8 @@
 import { Space } from 'antd';
 import { QuestionCircleOutlined } from '@ant-design/icons';
 import React, { useEffect } from 'react';
-import { SelectLang, useModel } from 'umi';
+// import { SelectLang, useModel } from 'umi';
+import { useModel } from 'umi';
 import Avatar from './AvatarDropdown';
 import styles from './index.less';
 import useSendWebsocketMessage from '@/hooks/websocket/useSendWebsocketMessage';
@@ -65,7 +66,7 @@ const GlobalHeaderRight: React.FC = () => {
         <NoticeIcon />
       </span>
       <Avatar menu={true} />
-      <SelectLang className={styles.action} />
+      {/* <SelectLang className={styles.action} /> */}
     </Space>
   );
 };

+ 4 - 0
src/global.less

@@ -146,3 +146,7 @@ input[type='tel'] {
 #driver-page-overlay {
   opacity: 0.35 !important;
 }
+.ant-pagination.mini .ant-pagination-jump-prev,
+.ant-pagination.mini .ant-pagination-jump-next {
+  display: none;
+}

+ 13 - 1
src/pages/Northbound/AliCloud/Detail/index.tsx

@@ -14,16 +14,18 @@ import type { Field } from '@formily/core';
 import { createForm, FormPath, onFieldChange, onFieldValueChange, onFormInit } from '@formily/core';
 import { createSchemaField, observer } from '@formily/react';
 import { Card, Col, Image, Row } from 'antd';
-import { useMemo } from 'react';
+import { useEffect, useMemo } from 'react';
 import { useParams } from 'umi';
 import { onlyMessage, useAsyncDataSource } from '@/utils/util';
 import './index.less';
 import { service } from '@/pages/Northbound/AliCloud';
 import usePermissions from '@/hooks/permission';
 import { Store } from 'jetlinks-store';
+import { useModel } from '@@/plugin-model/useModel';
 
 const Detail = observer(() => {
   const params = useParams<{ id: string }>();
+  const { initialState } = useModel('@@initialState');
 
   const form = useMemo(
     () =>
@@ -416,6 +418,16 @@ const Detail = observer(() => {
 
   const { getOtherPermission } = usePermissions('Northbound/AliCloud');
 
+  useEffect(() => {
+    setTimeout(() => {
+      if (initialState?.settings?.title) {
+        document.title = `阿里云 - ${initialState?.settings?.title}`;
+      } else {
+        document.title = '阿里云';
+      }
+    }, 0);
+  }, []);
+
   return (
     <PageContainer>
       <Card>

+ 6 - 6
src/pages/Northbound/DuerOS/Detail/Doc.tsx

@@ -32,15 +32,12 @@ const Doc = () => {
         <h1>授权地址</h1>
         <div>物联网平台的登录地址。注意需要为https。</div>
         <div>请复制并填写: https://{location.host}/#/user/login</div>
-        <div className={'image'}>
-          <Image width="100%" src={image1} />
-        </div>
         <h1>Client_Id</h1>
         <div>请填写物联网平台-第三方平台的clientId。</div>
         <div className={'image'}>
-          <Image width="100%" src={image2} />
+          <Image width="100%" src={image1} />
         </div>
-        <h1>Token地址</h1>
+        <h1>回调地址</h1>
         <div>请复制DuerOS平台中的值,填写到第三方平台-redirectUrl中</div>
         <div>
           <Alert
@@ -50,12 +47,15 @@ const Doc = () => {
           />
         </div>
         <div className={'image'}>
-          <Image width="100%" src={image3} />
+          <Image width="100%" src={image2} />
         </div>
         <h1>Token地址</h1>
         <div>请复制并填写:HTTPS://{location.host}/api/v1/token</div>
         <h1>ClientSecret</h1>
         <div>请复制物联网平台-第三方平台中的secureKey,填写到DuerOS平台。</div>
+        <div className={'image'}>
+          <Image width="100%" src={image3} />
+        </div>
         <div></div>
         <h1>WebService</h1>
         <div>请复制并填写:/dueros/product/_query</div>

+ 14 - 1
src/pages/Northbound/DuerOS/Detail/index.tsx

@@ -16,7 +16,7 @@ import {
   Select,
 } from '@formily/antd';
 import { PermissionButton } from '@/components';
-import { useMemo } from 'react';
+import { useEffect, useMemo } from 'react';
 import {
   createForm,
   Field,
@@ -32,8 +32,10 @@ import { useParams } from 'umi';
 import Doc from '@/pages/Northbound/DuerOS/Detail/Doc';
 import _ from 'lodash';
 import FUpload from '@/components/Upload';
+import { useModel } from '@@/plugin-model/useModel';
 
 const Save = () => {
+  const { initialState } = useModel('@@initialState');
   const SchemaField = createSchemaField({
     components: {
       FormGrid,
@@ -669,6 +671,17 @@ const Save = () => {
       history.back();
     }
   };
+
+  useEffect(() => {
+    setTimeout(() => {
+      if (initialState?.settings?.title) {
+        document.title = `DuerOS - ${initialState?.settings?.title}`;
+      } else {
+        document.title = 'DuerOS';
+      }
+    }, 0);
+  }, []);
+
   return (
     <PageContainer>
       <Card>

+ 4 - 1
src/pages/device/Instance/Detail/Running/Property/PropertyCard.tsx

@@ -106,7 +106,10 @@ const Property = (props: Props) => {
           <FileComponent type="card" value={dataValue} data={data} />
           <div style={{ marginTop: 10 }}>
             <div style={{ color: 'rgba(0, 0, 0, .65)', fontSize: 12 }}>更新时间</div>
-            <div style={{ marginTop: 5, fontSize: 16, color: 'black' }} className="value">
+            <div
+              style={{ marginTop: 5, fontSize: 16, color: 'black', minHeight: 25 }}
+              className="value"
+            >
               {dataValue?.timestamp
                 ? moment(dataValue?.timestamp).format('YYYY-MM-DD HH:mm:ss')
                 : ''}

+ 8 - 0
src/pages/device/components/Metadata/Base/Edit/index.tsx

@@ -485,6 +485,14 @@ const Edit = observer((props: Props) => {
             'x-component': 'Input',
             'x-decorator': 'FormItem',
             'x-hidden': true,
+            'x-reactions': {
+              dependencies: ['..virtualRule.windowType'],
+              fulfill: {
+                state: {
+                  value: "{{$self.value?'window':'script'}}",
+                },
+              },
+            },
           },
           'virtualRule.script': {
             type: 'string',

+ 0 - 7
src/pages/device/components/Metadata/Cat/index.tsx

@@ -38,19 +38,13 @@ const Cat = observer((props: Props) => {
         if (resp.status === 200) {
           InstanceModel.current = resp.result;
           const _metadata = resp.result?.metadata;
-          console.log(_metadata, '11111');
           setValue(_metadata);
         }
       });
     }
   }, [id]);
 
-  useEffect(() => {
-    console.log(value, '22222');
-  }, [value]);
-
   const convertMetadata = (key: string) => {
-    console.log(key);
     if (key === 'alink') {
       setValue('');
       if (metadata) {
@@ -61,7 +55,6 @@ const Cat = observer((props: Props) => {
         });
       }
     } else {
-      console.log(metadata, 'metadata');
       setValue(metadata);
     }
   };

+ 6 - 0
src/pages/rule-engine/Scene/Save/components/TimingTrigger/RangePicker.tsx

@@ -4,12 +4,15 @@ import moment from 'moment';
 type RangePickerValue = {
   from: string;
   to: string;
+  every?: number;
+  unit?: string;
 };
 
 interface RangePickerProps {
   value?: RangePickerValue;
   onChange?: (value: RangePickerValue) => void;
   id?: string;
+  form?: any;
 }
 export default (props: RangePickerProps) => {
   return (
@@ -22,10 +25,13 @@ export default (props: RangePickerProps) => {
         moment(props.value?.to || new Date(), 'hh:mm:ss'),
       ]}
       onChange={(_, dateString) => {
+        const { every, unit } = props.form.getFieldsValue().trigger?.timer?.period;
         if (props.onChange) {
           props.onChange({
             from: dateString[0],
             to: dateString[1],
+            every: every,
+            unit: unit,
           });
         }
       }}

+ 1 - 1
src/pages/rule-engine/Scene/Save/components/TimingTrigger/refactor.tsx

@@ -232,7 +232,7 @@ export default (props: TimingTrigger) => {
                             to: moment(new Date()).format('HH:mm:ss'),
                           }}
                         >
-                          <RangePicker />
+                          <RangePicker form={props.form} />
                         </Form.Item>
                       ) : (
                         <Form.Item

+ 3 - 3
src/pages/system/Department/Assets/index.tsx

@@ -6,7 +6,7 @@ import Device from '@/pages/system/Department/Assets/deivce';
 import Member from '@/pages/system/Department/Member';
 import { model } from '@formily/reactive';
 import { observer } from '@formily/react';
-import { ExclamationCircleOutlined } from '@ant-design/icons';
+// import { ExclamationCircleOutlined } from '@ant-design/icons';
 import { useEffect } from 'react';
 
 interface AssetsProps {
@@ -69,10 +69,10 @@ const Assets = observer((props: AssetsProps) => {
 
   return (
     <div style={{ position: 'relative', width: '100%' }}>
-      <div style={{ position: 'absolute', top: 12, left: 180 }}>
+      {/* <div style={{ position: 'absolute', top: 12, left: 180 }}>
         <ExclamationCircleOutlined style={{ marginRight: 12 }} />
         部门拥有的资产为所有类型资产的并集
-      </div>
+      </div> */}
       <Tabs
         activeKey={AssetsModel.tabsIndex}
         onChange={(key) => {

+ 10 - 2
src/pages/system/Platforms/Api/basePage.tsx

@@ -101,8 +101,11 @@ export default (props: TableProps) => {
 
     setLoading(true);
     if (props.isOpenGranted === false) {
-      const resp = await service.apiOperationsAdd(addGrant);
+      // console.log(props.grantKeys)
+      // console.log(addGrant,'add')
+      // console.log(removeGrant,'del')
       const resp2 = removeGrant.length ? await service.apiOperationsRemove(removeGrant) : {};
+      const resp = await service.apiOperationsAdd(addGrant);
       if (resp.status === 200 || resp2.status === 200) {
         onlyMessage('操作成功');
       }
@@ -162,8 +165,13 @@ export default (props: TableProps) => {
                 },
                 onSelectAll: (selected, selectedRows) => {
                   if (selected) {
+                    // const items = selectedRows.filter((item) => !!item).map((item) => item.operationId).concat(props.grantKeys)
+                    // console.log(items)
                     setSelectKeys(
-                      selectedRows.filter((item) => !!item).map((item) => item.operationId),
+                      selectedRows
+                        .filter((item) => !!item)
+                        .map((item) => item.operationId)
+                        .concat(props.grantKeys),
                     );
                   } else {
                     setSelectKeys([]);

+ 5 - 1
src/pages/system/Role/Detail/Permission/Allocate/MenuPermission.tsx

@@ -274,7 +274,11 @@ const MenuPermission = (props: Props) => {
           ) : (
             <div>
               {value?.accessSupport?.value !== 'support' ? (
-                <div>{value?.accessDescription}</div>
+                <div>
+                  {value?.accessDescription
+                    ? `${value?.accessDescription}`
+                    : '不支持数据权限配置,默认可查看全部数据'}
+                </div>
               ) : (
                 <Radio.Group
                   defaultValue={'creator'}