From ea867cd1ac0063dfd626f96f33fe768f08feae61 Mon Sep 17 00:00:00 2001 From: jiangzhixiong <710328466@qq.com> Date: Tue, 26 Mar 2024 18:04:26 +0800 Subject: [PATCH] =?UTF-8?q?fix(biz):=20=E6=B7=BB=E5=8A=A0=20traansfer=20?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=20searchProps=20=E9=80=8F=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/biz/CHANGELOG.md | 6 + packages/biz/package.json | 2 +- .../biz/src/treeTransfer/TreeTransfer.tsx | 6 +- packages/func/package.json | 1 + .../func/src/string/demo/getValueByUrl.tsx | 15 ++- packages/material/CHANGELOG.md | 7 ++ packages/material/package.json | 2 +- packages/slave/README.md | 8 +- packages/slave/src/index.tsx | 42 +++++-- pnpm-lock.yaml | 112 ++++++++++++++++++ 10 files changed, 177 insertions(+), 24 deletions(-) diff --git a/packages/biz/CHANGELOG.md b/packages/biz/CHANGELOG.md index 2bdd321..f1c4602 100644 --- a/packages/biz/CHANGELOG.md +++ b/packages/biz/CHANGELOG.md @@ -1,5 +1,11 @@ # @zhst/biz +## 0.11.0 + +### Minor Changes + +- 添加 traansfer 组件 searchProps 透传 + ## 0.10.5 ### Patch Changes diff --git a/packages/biz/package.json b/packages/biz/package.json index 0212171..27adbb6 100644 --- a/packages/biz/package.json +++ b/packages/biz/package.json @@ -1,6 +1,6 @@ { "name": "@zhst/biz", - "version": "0.10.5", + "version": "0.11.0", "description": "业务库", "keywords": [ "business", diff --git a/packages/biz/src/treeTransfer/TreeTransfer.tsx b/packages/biz/src/treeTransfer/TreeTransfer.tsx index 5777f7e..c755380 100644 --- a/packages/biz/src/treeTransfer/TreeTransfer.tsx +++ b/packages/biz/src/treeTransfer/TreeTransfer.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { Button, Card, Flex, Input, Tree } from 'antd'; +import { Button, Card, Flex, Input, InputProps, Tree } from 'antd'; import theme from 'antd/es/theme' import { TransferProps, TreeDataNode, TreeProps } from 'antd'; import './index.less' @@ -11,6 +11,7 @@ const componentName = 'zhst-biz-treeTransfer' export interface TreeTransferProps { dataSource: TreeDataNode[] treeProps?: TreeProps + searchInputProps?: InputProps targetItems: TreeDataNode[]; checkedKeys: string[]; onTreeSelect?: TreeProps['onSelect'] @@ -26,6 +27,7 @@ const { useToken } = theme const TreeTransfer: React.FC = ({ dataSource, treeProps, + searchInputProps, targetItems = [], checkedKeys = [], onTreeCheck, @@ -56,7 +58,7 @@ const TreeTransfer: React.FC = ({ title={
可选择的范围
} bodyStyle={{ padding: 12 }} > - } onChange={e => setKeyWords(e.target.value)} placeholder='请输入设备名称' /> + } onChange={e => setKeyWords(e.target.value)} placeholder='请输入设备名称' {...searchInputProps} /> { - const [inputVal, setInputVal ] = useState(null) + const [url, setUrl ] = useState(null) + const [keyword, setKeyword ] = useState(null) const [outputVal, setOutPutVal ] = useState(null) const handleClick = () => { - let val = getValueByUrl('to', inputVal) + let val = getValueByUrl(keyword, url) setOutPutVal(val) } return ( -
- setInputVal(e.target.value)} /> - + + 链接: setUrl(e.target.value)} /> + 获取字段: setKeyword(e.target.value)} /> + +

输出:{outputVal}

-
) } diff --git a/packages/material/CHANGELOG.md b/packages/material/CHANGELOG.md index bd3d572..83a88fd 100644 --- a/packages/material/CHANGELOG.md +++ b/packages/material/CHANGELOG.md @@ -1,5 +1,12 @@ # @zhst/material +## 0.7.2 + +### Patch Changes + +- Updated dependencies + - @zhst/biz@0.11.0 + ## 0.7.1 ### Patch Changes diff --git a/packages/material/package.json b/packages/material/package.json index 1f5e304..54c1767 100644 --- a/packages/material/package.json +++ b/packages/material/package.json @@ -1,6 +1,6 @@ { "name": "@zhst/material", - "version": "0.7.1", + "version": "0.7.2", "description": "物料库", "keywords": [ "business", diff --git a/packages/slave/README.md b/packages/slave/README.md index e180964..56f6500 100644 --- a/packages/slave/README.md +++ b/packages/slave/README.md @@ -10,17 +10,17 @@ ## 使用 -```js +```jsx import React from 'react'; -import from '@zhst/slave' +import slave from '@zhst/slave' slave.init({ jumpUrl: `http://10.0.0.222:30058/metarial/login`, + to: 'http://www.baidu.com', jumpToLogin: false, tokenKey: 'token', - showMsg: false, - msgText: '你能不能先登录?' }) +export default () =>
测试
``` ## API diff --git a/packages/slave/src/index.tsx b/packages/slave/src/index.tsx index eba0e5f..52b6617 100644 --- a/packages/slave/src/index.tsx +++ b/packages/slave/src/index.tsx @@ -21,12 +21,12 @@ export interface ISlaveConfig { } class Slave { - token: string | null; config?: ISlaveConfig jumpUrl?: string; + authTokenDefine: string; // eslint-disable-next-line @typescript-eslint/no-useless-constructor constructor() { - this.token = null + this.authTokenDefine = 'ZHST_AUTH_TOKEN' this.jumpUrl = undefined } @@ -37,20 +37,26 @@ class Slave { tokenKey, showMsg = true, msgText, + from, + to } = opt // eslint-disable-next-line @typescript-eslint/no-unused-expressions - let _token = getValueByUrl(tokenKey || 'token', location.href) || localStorage.getItem('ZHST_AUTH_TOKEN') - - this.token = _token - localStorage.setItem('ZHST_AUTH_TOKEN', _token as string) + let _token = getValueByUrl(tokenKey || 'token', location.href) || this.getToken() + let _from = location.origin + location.pathname + // TODO: 检验是否为url链接 + let _to = to + this.setToken(_token) + // 判断当前登录环境 this.checkEnv({ showMsg, msgText }) + // 是否执行跳转页面 if (jumpToLogin && jumpUrl && !_token) { let jumpUrlObj = new URL(jumpUrl) // 判断是否为同一个域,采用不同的跳转方式 + // 同一个域名下 if (jumpUrlObj.origin === location.origin) { history.pushState('', '', jumpUrl) } else { @@ -60,17 +66,33 @@ class Slave { } // 判端是否登录 - checkEnv(_opt: { showMsg: boolean, msgText?: string }) { - if (!this.token && _opt.showMsg) { + checkEnv(_opt: { showMsg: boolean, msgText?: string }): boolean { + const _token = this.getToken() || String(this.getToken()) + if (!_token && _token !== 'null' && _opt.showMsg) { message.error(_opt.msgText || '请先登录!') - return + return false } + return true } + public logOut() { - localStorage.removeItem('ZHST_AUTH_TOKEN') + this.removeToken() location.replace(location.origin + location.pathname) } + + public setToken(val: string | null) { + val && localStorage.setItem(this.authTokenDefine, val) + } + + public removeToken(cb?: () => void) { + localStorage.removeItem(this.authTokenDefine) + cb?.() + } + + public getToken() { + return localStorage.getItem(this.authTokenDefine) + } } export default new Slave() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1b5662..f9fa36e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -104,6 +104,9 @@ importers: '@zhst/request': specifier: workspace:^ version: link:../request + antd: + specifier: ^5.15.4 + version: 5.15.4(react-dom@18.2.0)(react@18.2.0) base-64: specifier: ^1.0.0 version: 1.0.0 @@ -547,6 +550,23 @@ packages: stylis: 4.3.1 dev: false + /@ant-design/cssinjs@1.18.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Ub4n3d+MAX/qtE5S9PM8iOn5ocU7GUAIC4Adc2X8UCMXnsRRfpJBHsBdtQ1qoAuaQ7lU2M1BTCuJ+fkv4fOWiw==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': 7.24.1 + '@emotion/hash': 0.8.0 + '@emotion/unitless': 0.7.5 + classnames: 2.5.1 + csstype: 3.1.3 + rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + stylis: 4.3.1 + dev: false + /@ant-design/icons-svg@4.3.2: resolution: {integrity: sha512-s9WV19cXTC/Tux/XpDru/rCfPZQhGaho36B+9RrN1v5YsaKmE6dJ+fq6LQnXVBVYjzkqykEEK+1XG+SYiottTQ==} @@ -586,6 +606,22 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false + /@ant-design/icons@5.3.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Vyv/OsKz56BsKBtcRlLP6G8RGaRW43f7G5dK3XNPCaeV4YyehLVaITuNKi2YJG9hMVURkBdzdGhveNQlnKTFqw==} + engines: {node: '>=8'} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@ant-design/colors': 7.0.2 + '@ant-design/icons-svg': 4.4.2 + '@babel/runtime': 7.24.1 + classnames: 2.5.1 + rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@ant-design/pro-card@2.5.29(antd@5.13.2)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-QCtqiYZpl1uPFqgPacCkaP+8m5D604WScyfLZBoxIxtpA1SVe0dBIYyeB3cExgxkA7MZZwueeTIyE8B7okqgPw==} peerDependencies: @@ -6959,6 +6995,68 @@ packages: - moment dev: false + /antd@5.15.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-79eLOQW1DG92yzulx+ValfHFjvPnaaI41BffGquAnzx42Ws3eEcKofsa2jNRyJN5NWr9I5wqvABDq9rRRfGGsg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@ant-design/colors': 7.0.2 + '@ant-design/cssinjs': 1.18.5(react-dom@18.2.0)(react@18.2.0) + '@ant-design/icons': 5.3.5(react-dom@18.2.0)(react@18.2.0) + '@ant-design/react-slick': 1.0.2(react@18.2.0) + '@babel/runtime': 7.24.1 + '@ctrl/tinycolor': 3.6.1 + '@rc-component/color-picker': 1.5.3(react-dom@18.2.0)(react@18.2.0) + '@rc-component/mutate-observer': 1.1.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/tour': 1.14.2(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 2.0.0(react-dom@18.2.0)(react@18.2.0) + classnames: 2.5.1 + copy-to-clipboard: 3.3.3 + dayjs: 1.11.10 + qrcode.react: 3.1.0(react@18.2.0) + rc-cascader: 3.24.0(react-dom@18.2.0)(react@18.2.0) + rc-checkbox: 3.2.0(react-dom@18.2.0)(react@18.2.0) + rc-collapse: 3.7.3(react-dom@18.2.0)(react@18.2.0) + rc-dialog: 9.4.0(react-dom@18.2.0)(react@18.2.0) + rc-drawer: 7.1.0(react-dom@18.2.0)(react@18.2.0) + rc-dropdown: 4.2.0(react-dom@18.2.0)(react@18.2.0) + rc-field-form: 1.42.1(react-dom@18.2.0)(react@18.2.0) + rc-image: 7.6.0(react-dom@18.2.0)(react@18.2.0) + rc-input: 1.4.5(react-dom@18.2.0)(react@18.2.0) + rc-input-number: 9.0.0(react-dom@18.2.0)(react@18.2.0) + rc-mentions: 2.11.1(react-dom@18.2.0)(react@18.2.0) + rc-menu: 9.13.0(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-notification: 5.3.0(react-dom@18.2.0)(react@18.2.0) + rc-pagination: 4.0.4(react-dom@18.2.0)(react@18.2.0) + rc-picker: 4.3.0(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + rc-progress: 3.5.1(react-dom@18.2.0)(react@18.2.0) + rc-rate: 2.12.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-segmented: 2.3.0(react-dom@18.2.0)(react@18.2.0) + rc-select: 14.13.0(react-dom@18.2.0)(react@18.2.0) + rc-slider: 10.5.0(react-dom@18.2.0)(react@18.2.0) + rc-steps: 6.0.1(react-dom@18.2.0)(react@18.2.0) + rc-switch: 4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-table: 7.42.0(react-dom@18.2.0)(react@18.2.0) + rc-tabs: 14.1.1(react-dom@18.2.0)(react@18.2.0) + rc-textarea: 1.6.3(react-dom@18.2.0)(react@18.2.0) + rc-tooltip: 6.2.0(react-dom@18.2.0)(react@18.2.0) + rc-tree: 5.8.5(react-dom@18.2.0)(react@18.2.0) + rc-tree-select: 5.19.0(react-dom@18.2.0)(react@18.2.0) + rc-upload: 4.5.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + scroll-into-view-if-needed: 3.1.0 + throttle-debounce: 5.0.0 + transitivePeerDependencies: + - date-fns + - luxon + - moment + dev: false + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -15447,6 +15545,20 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false + /rc-collapse@3.7.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.24.1 + classnames: 2.5.1 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.39.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==} peerDependencies: