diff --git a/package.json b/package.json index 686460a..7f24cac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kne-components/components-admin", - "version": "1.1.28", + "version": "1.1.29", "description": "用于实现一个后台管理系统的必要组件", "scripts": { "init": "husky", diff --git a/src/components/Account/Account/Login.js b/src/components/Account/Account/Login.js index bce5659..08dffc0 100644 --- a/src/components/Account/Account/Login.js +++ b/src/components/Account/Account/Login.js @@ -1,3 +1,5 @@ +import { useEffect } from 'react'; +import { removeToken } from '@kne/token-storage'; import LoginOuterContainer from '../LoginOuterContainer'; import DoLogin from './DoLogin'; import { useProps } from './context'; @@ -6,7 +8,12 @@ import Language from '../Language'; import style from './style.module.scss'; const Login = () => { - const { loginTitle, systemName, systemLogo, loginLeftInner, registerUrl, forgetUrl, accountType, afterLogin, allowLanguageSwitch } = useProps(); + const { loginTitle, systemName, systemLogo, loginLeftInner, registerUrl, forgetUrl, accountType, afterLogin, allowLanguageSwitch, storeKeys, domain } = useProps(); + useEffect(() => { + Object.values(storeKeys || { token: 'X-User-Token' }).forEach(tokenKey => { + removeToken(tokenKey, domain); + }); + }, [storeKeys, domain]); return ( diff --git a/src/components/GroupSelect/index.js b/src/components/GroupSelect/index.js index e338314..a40ee29 100644 --- a/src/components/GroupSelect/index.js +++ b/src/components/GroupSelect/index.js @@ -1,12 +1,21 @@ import { createWithRemoteLoader } from '@kne/remote-loader'; import { App, Button } from 'antd'; +import merge from 'lodash/merge'; +import style from './style.module.scss'; const GroupSelect = createWithRemoteLoader({ - modules: ['components-core:FormInfo', 'components-core:FormInfo@useFormModal', 'components-core:Global@usePreset'] + modules: [ + 'components-core:FormInfo', + 'components-core:FormInfo@useFormModal', + 'components-core:Global@usePreset', + 'components-core:Global@useGlobalValue' + ] })(({ remoteModules, name, label, + type, + language: propsLanguage, rule, apis, valueKey = 'code', @@ -17,18 +26,21 @@ const GroupSelect = createWithRemoteLoader({ groupName = '标签', ...props }) => { - const [FormInfo, useFormModal, usePreset] = remoteModules; + const [FormInfo, useFormModal, usePreset, useGlobalValue] = remoteModules; const { fields } = FormInfo; - const { SuperSelectTableList } = fields; + const { SuperSelectTableList, SuperSelectTree } = fields; const { ajax, apis: presetApis } = usePreset(); const { message, modal } = App.useApp(); const formModal = useFormModal(); + const locale = useGlobalValue('locale'); + + const language = propsLanguage || locale || 'zh-CN'; const handleDelete = async (item, { fetchApi, value, setValue }) => { try { const { data: resData } = await ajax( Object.assign({}, apis?.remove || presetApis?.group?.remove, { - data: { id: item.id, code: item.code } + data: { id: item.id, code: item.code, type } }) ); @@ -59,7 +71,7 @@ const GroupSelect = createWithRemoteLoader({ onSubmit: async formData => { const { data: resData } = await ajax( Object.assign({}, apis?.create || presetApis?.group?.create, { - data: formData + data: Object.assign({}, formData, { type, language }) }) ); if (resData.code !== 0) { @@ -75,6 +87,15 @@ const GroupSelect = createWithRemoteLoader({ list={[ , , + , ]} /> @@ -121,6 +142,7 @@ const GroupSelect = createWithRemoteLoader({ return ( ({ filter: { keyword: searchText } })} diff --git a/src/components/GroupSelect/style.module.scss b/src/components/GroupSelect/style.module.scss index e69de29..a03722f 100644 --- a/src/components/GroupSelect/style.module.scss +++ b/src/components/GroupSelect/style.module.scss @@ -0,0 +1,5 @@ +:global { + .select-table-search { + padding: 0; + } +} \ No newline at end of file diff --git a/src/components/UserSelect/index.js b/src/components/UserSelect/index.js index e521537..fc94d52 100644 --- a/src/components/UserSelect/index.js +++ b/src/components/UserSelect/index.js @@ -1,41 +1,48 @@ import { createWithRemoteLoader } from '@kne/remote-loader'; -const UserSelect = createWithRemoteLoader({ - modules: ['components-core:Global@usePreset', 'components-core:FormInfo'] -})(({ remoteModules, status = 0, api, ...props }) => { - const [usePreset, FormInfo] = remoteModules; - const { apis } = usePreset(); - const { SuperSelectUser } = FormInfo.fields; - return ( - { - return Object.assign({}, data, { - pageData: (data.pageData || []).map(item => - Object.assign({}, item, { - value: item.id, - label: item.nickname || item.email || item.phone - }) +const createComponent = (callback = item => item) => { + return createWithRemoteLoader({ + modules: ['components-core:Global@usePreset', 'components-core:FormInfo'] + })(({ remoteModules, status = 0, api, ...props }) => { + const [usePreset, FormInfo] = remoteModules; + const { apis } = usePreset(); + const { SuperSelectUser } = FormInfo.fields; + const Component = callback(SuperSelectUser); + return ( + - ); -}); + }, + transformData: data => { + return Object.assign({}, data, { + pageData: (data.pageData || []).map(item => + Object.assign({}, item, { + value: item.id, + label: item.nickname || item.email || item.phone + }) + ) + }); + } + }, + api + )} + /> + ); + }); +}; + +const UserSelect = createComponent(); + +UserSelect.Field = createComponent(item => item.Field); export default UserSelect;