tms-auth 1.3.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +16 -0
- package/.prettierignore +7 -0
- package/.prettierrc.js +1 -0
- package/.umirc.ts +10 -0
- package/.vscode/settings.json +3 -0
- package/README.md +37 -0
- package/bin/scripts.js +45 -0
- package/config/paths.js +23 -0
- package/config/rollup.config.js +54 -0
- package/dist/index.js +1 -0
- package/docs/index.md +2 -0
- package/package.json +82 -0
- package/publish_dist_to_branch.js +263 -0
- package/scripts/build.js +33 -0
- package/scripts/start.js +38 -0
- package/src/Error/403.tsx +18 -0
- package/src/Error/404.tsx +18 -0
- package/src/actions/lang.js +5 -0
- package/src/index.ts +28 -0
- package/src/layouts/BaseLayout.tsx +518 -0
- package/src/layouts/Header.tsx +33 -0
- package/src/layouts/HeaderLeft.tsx +145 -0
- package/src/layouts/HeaderRight.tsx +152 -0
- package/src/layouts/Ifame/index.less +7 -0
- package/src/layouts/Ifame/index.tsx +27 -0
- package/src/layouts/Loading/index.less +22 -0
- package/src/layouts/Loading/index.tsx +44 -0
- package/src/layouts/NavigationBar.tsx +49 -0
- package/src/layouts/NavigationBarWithAntd.tsx +165 -0
- package/src/layouts/Prompt/index.less +6 -0
- package/src/layouts/Prompt/index.tsx +102 -0
- package/src/layouts/index.less +283 -0
- package/src/layouts/logo.svg +21 -0
- package/src/login/Callback.tsx +63 -0
- package/src/login/Index.tsx +27 -0
- package/src/login/Login.tsx +120 -0
- package/src/login/index.less +59 -0
- package/src/login/logo.svg +21 -0
- package/src/reducers/lang.js +21 -0
- package/src/store/index.js +5 -0
- package/src/styles/global.less +103 -0
- package/src/styles/mixin.less +35 -0
- package/src/utils/fetch.ts +33 -0
- package/src/utils/sdk.ts +608 -0
- package/src/utils/utils.ts +15 -0
- package/tsconfig.json +19 -0
- package/typings.d.ts +2 -0
package/.editorconfig
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# http://editorconfig.org
|
|
2
|
+
root = true
|
|
3
|
+
|
|
4
|
+
[*]
|
|
5
|
+
indent_style = space
|
|
6
|
+
indent_size = 2
|
|
7
|
+
end_of_line = lf
|
|
8
|
+
charset = utf-8
|
|
9
|
+
trim_trailing_whitespace = true
|
|
10
|
+
insert_final_newline = true
|
|
11
|
+
|
|
12
|
+
[*.md]
|
|
13
|
+
trim_trailing_whitespace = false
|
|
14
|
+
|
|
15
|
+
[Makefile]
|
|
16
|
+
indent_style = tab
|
package/.prettierignore
ADDED
package/.prettierrc.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('@umijs/fabric').prettier;
|
package/.umirc.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { defineConfig } from 'dumi';
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
title: 'tms-auth',
|
|
5
|
+
favicon:
|
|
6
|
+
'https://user-images.githubusercontent.com/9554297/83762004-a0761b00-a6a9-11ea-83b4-9c8ff721d4b8.png',
|
|
7
|
+
logo: 'https://user-images.githubusercontent.com/9554297/83762004-a0761b00-a6a9-11ea-83b4-9c8ff721d4b8.png',
|
|
8
|
+
outputPath: 'docs-dist',
|
|
9
|
+
// more config: https://d.umijs.org/config
|
|
10
|
+
});
|
package/README.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# tms-auth
|
|
2
|
+
|
|
3
|
+
## Getting Started
|
|
4
|
+
|
|
5
|
+
Install dependencies,
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
$ npm i
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Start the dev server,
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
$ npm start
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Build documentation,
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
$ npm run docs:build
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Run test,
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
$ npm test
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Build library via `father`,
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
$ npm run build
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
$ npm run pubilsh (dev|uat|live)
|
|
37
|
+
```
|
package/bin/scripts.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
'use strict';
|
|
4
|
+
|
|
5
|
+
const spawn = require('cross-spawn');
|
|
6
|
+
const env = process.env.RUNNER_ENV || 'dev';
|
|
7
|
+
const script = {
|
|
8
|
+
dev: 'start',
|
|
9
|
+
prod: 'build',
|
|
10
|
+
}[env];
|
|
11
|
+
const nodeEnv = {
|
|
12
|
+
dev: 'development',
|
|
13
|
+
prod: 'production',
|
|
14
|
+
}[env];
|
|
15
|
+
|
|
16
|
+
switch (script) {
|
|
17
|
+
case 'start':
|
|
18
|
+
case 'build': {
|
|
19
|
+
const result = spawn.sync('node', [require.resolve('../scripts/' + script)], {
|
|
20
|
+
stdio: 'inherit',
|
|
21
|
+
env: { ...process.env, NODE_ENV: nodeEnv },
|
|
22
|
+
});
|
|
23
|
+
if (result.signal) {
|
|
24
|
+
if (result.signal === 'SIGKILL') {
|
|
25
|
+
console.log(
|
|
26
|
+
'The build failed because the process exited too early. ' +
|
|
27
|
+
'This probably means the system ran out of memory or someone called ' +
|
|
28
|
+
'`kill -9` on the process.',
|
|
29
|
+
);
|
|
30
|
+
} else if (result.signal === 'SIGTERM') {
|
|
31
|
+
console.log(
|
|
32
|
+
'The build failed because the process exited too early. ' +
|
|
33
|
+
'Someone might have called `kill` or `killall`, or the system could ' +
|
|
34
|
+
'be shutting down.',
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
process.exit(result.status);
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
default:
|
|
43
|
+
console.log('Unknown script "' + script + '".');
|
|
44
|
+
break;
|
|
45
|
+
}
|
package/config/paths.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const path = require('path');
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
|
|
6
|
+
const appDirectory = fs.realpathSync(process.cwd());
|
|
7
|
+
const resolveApp = (relativePath) => path.resolve(appDirectory, relativePath);
|
|
8
|
+
|
|
9
|
+
const packageJson = resolveApp('package.json');
|
|
10
|
+
const packageName = require(packageJson).name;
|
|
11
|
+
|
|
12
|
+
module.exports = {
|
|
13
|
+
packageName,
|
|
14
|
+
entry: resolveApp('src/index.ts'),
|
|
15
|
+
sdk: resolveApp('src/utils/sdk.ts'),
|
|
16
|
+
dist: resolveApp('dist'),
|
|
17
|
+
src: resolveApp('src'),
|
|
18
|
+
output: {
|
|
19
|
+
js: resolveApp('dist/index.js'),
|
|
20
|
+
css: resolveApp('dist/index.css'),
|
|
21
|
+
sdk: resolveApp('dist/sdk.js'),
|
|
22
|
+
},
|
|
23
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const { nodeResolve } = require('@rollup/plugin-node-resolve');
|
|
2
|
+
const { uglify } = require('rollup-plugin-uglify');
|
|
3
|
+
const typescript = require('@rollup/plugin-typescript');
|
|
4
|
+
const commonjs = require('@rollup/plugin-commonjs');
|
|
5
|
+
const external = require('rollup-plugin-peer-deps-external');
|
|
6
|
+
const replace = require('@rollup/plugin-replace');
|
|
7
|
+
const image = require('@rollup/plugin-image');
|
|
8
|
+
const alias = require('@rollup/plugin-alias');
|
|
9
|
+
const postcss = require('rollup-plugin-postcss');
|
|
10
|
+
const path = require('path');
|
|
11
|
+
const paths = require('./paths');
|
|
12
|
+
|
|
13
|
+
module.exports = function (env) {
|
|
14
|
+
return {
|
|
15
|
+
input: {
|
|
16
|
+
index: paths.entry,
|
|
17
|
+
sdk: paths.sdk,
|
|
18
|
+
},
|
|
19
|
+
output: {
|
|
20
|
+
dir: paths.dist,
|
|
21
|
+
format: 'esm',
|
|
22
|
+
sourcemap: env === 'development',
|
|
23
|
+
},
|
|
24
|
+
slient: true,
|
|
25
|
+
onwarn: function (message) {
|
|
26
|
+
return;
|
|
27
|
+
},
|
|
28
|
+
plugins: [
|
|
29
|
+
external(),
|
|
30
|
+
postcss({
|
|
31
|
+
minimize: env === 'production',
|
|
32
|
+
modules: {
|
|
33
|
+
generateScopedName: '[local]',
|
|
34
|
+
},
|
|
35
|
+
autoModules: false,
|
|
36
|
+
use: {
|
|
37
|
+
less: { javascriptEnabled: true, modifyVars: { 'ant-prefix': 'ant-tms' } },
|
|
38
|
+
},
|
|
39
|
+
extract: paths.output.css,
|
|
40
|
+
}),
|
|
41
|
+
alias({
|
|
42
|
+
entries: [{ find: '@/', replacement: paths.src }],
|
|
43
|
+
}),
|
|
44
|
+
nodeResolve(),
|
|
45
|
+
commonjs(),
|
|
46
|
+
image(),
|
|
47
|
+
typescript({ tsconfig: './tsconfig.json' }),
|
|
48
|
+
replace({
|
|
49
|
+
'process.env.NODE_ENV': JSON.stringify(env),
|
|
50
|
+
}),
|
|
51
|
+
env === 'production' ? uglify() : '',
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as toSearchObj,T as TmsSdk,H as HELLO_MSG,R as REPLY_MSG,C as ConfigProvider,S as SpinFC,I as Image,F as Form,B as Button,a as Result,b as Tms_Error_Handle,c as BaseLayout}from"./BaseLayout-d90a5dc8.js";import React__default,{useState,useEffect}from"react";import{history}from"umi";import"react-dom";import"util";import"@salesforce/design-system-react/components/global-navigation-bar";import"@salesforce/design-system-react/components/global-navigation-bar/region";import"@salesforce/design-system-react/components/dynamic-icon";import"@salesforce/design-system-react/components/button";import"@salesforce/design-system-react/components/modal";import"@salesforce/design-system-react/components/avatar";import"@salesforce/design-system-react/components/brand-band";import"@salesforce/design-system-react/components/spinner";var img="data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8'%3f%3e%3csvg width='100px' height='31px' viewBox='0 0 100 31' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3e %3ctitle%3e%e7%bc%96%e7%bb%84%3c/title%3e %3cg id='%e6%8e%a7%e4%bb%b6' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3e %3cg id='Global-Header%e5%a4%87%e4%bb%bd-6' transform='translate(-16.000000%2c -9.000000)' fill='%23231916'%3e %3cg id='%e7%bc%96%e7%bb%84' transform='translate(16.000000%2c 9.000000)'%3e %3cpath d='M0.0232%2c30 L100%2c30 L100%2c0.0116 L0.0232%2c0.0116 L0.0232%2c30 Z M2.7506%2c27.1912 L97.2412%2c27.1912 L97.2412%2c2.7274 L2.7506%2c2.7274 L2.7506%2c27.1912 Z' id='Fill-1'%3e%3c/path%3e %3cg transform='translate(10.500000%2c 9.900000)'%3e %3cpath d='M2.55767%2c9.4334 C1.76607%2c9.0029 1.14557%2c8.408 0.69667%2c7.6488 C0.24747%2c6.8897 0.02307%2c6.0331 0.02307%2c5.0794 C0.02307%2c4.126 0.24977%2c3.2695 0.70357%2c2.5102 C1.15717%2c1.7511 1.77987%2c1.1561 2.57157%2c0.7255 C3.36317%2c0.295 4.24957%2c0.0797 5.23107%2c0.0797 C6.02727%2c0.0797 6.75407%2c0.2186 7.41157%2c0.4964 C8.06887%2c0.7741 8.62437%2c1.1769 9.07817%2c1.7047 L7.91157%2c2.8019 C7.20777%2c2.0427 6.34217%2c1.6629 5.31447%2c1.6629 C4.64787%2c1.6629 4.05067%2c1.8088 3.52287%2c2.1004 C2.99517%2c2.3921 2.58307%2c2.7972 2.28687%2c3.3156 C1.99037%2c3.8343 1.84247%2c4.4222 1.84247%2c5.0794 C1.84247%2c5.737 1.99037%2c6.3248 2.28687%2c6.8433 C2.58307%2c7.3619 2.99517%2c7.7668 3.52287%2c8.0585 C4.05067%2c8.3501 4.64787%2c8.496 5.31447%2c8.496 C6.34217%2c8.496 7.20777%2c8.1118 7.91157%2c7.3433 L9.07817%2c8.4543 C8.62437%2c8.982 8.06647%2c9.3849 7.40467%2c9.6626 C6.74257%2c9.9403 6.01347%2c10.0792 5.21727%2c10.0792 C4.23577%2c10.0792 3.34937%2c9.864 2.55767%2c9.4334' id='Fill-2'%3e%3c/path%3e %3cpolygon id='Fill-4' points='19.69131 0.2186 19.69131 9.9403 17.88581 9.9403 17.88581 5.7738 12.85831 5.7738 12.85831 9.9403 11.05291 9.9403 11.05291 0.2186 12.85831 0.2186 12.85831 4.2323 17.88581 4.2323 17.88581 0.2186'%3e%3c/polygon%3e %3cpath d='M28.43115%2c6.27393 L26.59785%2c2.02403 L24.77855%2c6.27393 L28.43115%2c6.27393 Z M29.02835%2c7.69043 L24.16745%2c7.69043 L23.20915%2c9.94033 L21.34815%2c9.94033 L25.72295%2c0.21863 L27.50055%2c0.21863 L31.88935%2c9.94033 L30.00045%2c9.94033 L29.02835%2c7.69043 Z' id='Fill-6'%3e%3c/path%3e %3cpolygon id='Fill-8' points='34.4335 1.74629 31.2115 1.74629 31.2115 0.21859 39.461 0.21859 39.461 1.74629 36.239 1.74629 36.239 9.94029 34.4335 9.94029'%3e%3c/polygon%3e %3cpolygon id='Fill-10' points='41.18164 0.2186 42.98704 0.2186 42.98704 8.4126 48.07014 8.4126 48.07014 9.9403 41.18164 9.9403'%3e%3c/polygon%3e %3cpath d='M56.38281%2c6.27393 L54.54961%2c2.02403 L52.73031%2c6.27393 L56.38281%2c6.27393 Z M56.98011%2c7.69043 L52.11911%2c7.69043 L51.16091%2c9.94033 L49.29991%2c9.94033 L53.67461%2c0.21863 L55.45231%2c0.21863 L59.84101%2c9.94033 L57.95221%2c9.94033 L56.98011%2c7.69043 Z' id='Fill-12'%3e%3c/path%3e %3cpath d='M68.20469%2c7.121 C68.20469%2c6.1859 67.50549%2c5.7183 66.10749%2c5.7183 L63.19099%2c5.7183 L63.19099%2c8.5236 L66.10749%2c8.5236 C67.50549%2c8.5236 68.20469%2c8.0564 68.20469%2c7.121 L68.20469%2c7.121 Z M63.19099%2c1.6352 L63.19099%2c4.3156 L65.74649%2c4.3156 C66.37599%2c4.3156 66.85969%2c4.2023 67.19779%2c3.9754 C67.53569%2c3.7486 67.70469%2c3.4176 67.70469%2c2.9824 C67.70469%2c2.5379 67.53569%2c2.2024 67.19779%2c1.9754 C66.85969%2c1.7486 66.37599%2c1.6352 65.74649%2c1.6352 L63.19099%2c1.6352 Z M69.55189%2c5.7669 C69.86649%2c6.179 70.02389%2c6.6904 70.02389%2c7.3016 C70.02389%2c8.1442 69.69979%2c8.7945 69.05189%2c9.2528 C68.40369%2c9.7111 67.45929%2c9.9403 66.21869%2c9.9403 L61.38559%2c9.9403 L61.38559%2c0.2186 L65.94079%2c0.2186 C67.08889%2c0.2186 67.97309%2c0.4432 68.59359%2c0.8921 C69.21369%2c1.3414 69.52399%2c1.9593 69.52399%2c2.7462 C69.52399%2c3.2277 69.41289%2c3.6538 69.19069%2c4.024 C68.96859%2c4.3944 68.66299%2c4.6815 68.27409%2c4.885 C68.81089%2c5.061 69.23689%2c5.355 69.55189%2c5.7669 L69.55189%2c5.7669 Z' id='Fill-14'%3e%3c/path%3e %3cpath d='M72.94824%2c9.75977 C72.24904%2c9.54687 71.69594%2c9.26457 71.28854%2c8.91257 L71.91344%2c7.50987 C72.31154%2c7.82467 72.80004%2c8.08167 73.37874%2c8.28067 C73.95734%2c8.47987 74.53844%2c8.57927 75.12174%2c8.57927 C75.84394%2c8.57927 76.38324%2c8.46357 76.73964%2c8.23217 C77.09604%2c8.00077 77.27434%2c7.69517 77.27434%2c7.31547 C77.27434%2c7.03767 77.17484%2c6.80857 76.97574%2c6.62807 C76.77654%2c6.44747 76.52444%2c6.30637 76.21894%2c6.20437 C75.91334%2c6.10267 75.49664%2c5.98697 74.96894%2c5.85727 C74.22814%2c5.68147 73.62874%2c5.50547 73.17044%2c5.32947 C72.71214%2c5.15367 72.31844%2c4.87807 71.98984%2c4.50317 C71.66114%2c4.12817 71.49684%2c3.62127 71.49684%2c2.98237 C71.49684%2c2.44547 71.64264%2c1.95697 71.93434%2c1.51717 C72.22594%2c1.07747 72.66564%2c0.72787 73.25374%2c0.46857 C73.84174%2c0.20947 74.56144%2c0.07967 75.41334%2c0.07967 C76.00574%2c0.07967 76.58904%2c0.15387 77.16324%2c0.30197 C77.73734%2c0.45017 78.23274%2c0.66297 78.64934%2c0.94087 L78.07984%2c2.34347 C77.65394%2c2.09347 77.20954%2c1.90387 76.74654%2c1.77407 C76.28354%2c1.64447 75.83454%2c1.57957 75.39954%2c1.57957 C74.68644%2c1.57957 74.15654%2c1.70007 73.80924%2c1.94067 C73.46214%2c2.18167 73.28844%2c2.50107 73.28844%2c2.89907 C73.28844%2c3.17677 73.38784%2c3.40377 73.58714%2c3.57957 C73.78614%2c3.75557 74.03834%2c3.89437 74.34394%2c3.99617 C74.64954%2c4.09817 75.06624%2c4.21387 75.59384%2c4.34337 C76.31614%2c4.51007 76.90854%2c4.68367 77.37154%2c4.86417 C77.83444%2c5.04477 78.23024%2c5.32027 78.55894%2c5.69057 C78.88754%2c6.06097 79.05204%2c6.56097 79.05204%2c7.19057 C79.05204%2c7.72757 78.90624%2c8.21357 78.61454%2c8.64877 C78.32284%2c9.08397 77.88064%2c9.43127 77.28824%2c9.69037 C76.69574%2c9.94937 75.97344%2c10.07917 75.12174%2c10.07917 C74.37174%2c10.07917 73.64714%2c9.97267 72.94824%2c9.75977' id='Fill-16'%3e%3c/path%3e %3c/g%3e %3c/g%3e %3c/g%3e %3c/g%3e%3c/svg%3e",TMS_Login=function(e){function c(){console.log("postmsg"),console.log(JSON.stringify(n||{})),s(!0),TmsSdk.login(n)}var t=toSearchObj(window.location.search),a=TmsSdk.getConfig(),a=(TmsSdk.getStorage(),console.log("appConfig in Login page",JSON.stringify(a)),useState(null)),n=a[0],o=a[1],a=useState(!1),l=a[0],s=a[1],a=useState(!1),i=a[0],r=a[1];useEffect(function(){t.error&&alert(decodeURIComponent(t.error))},[t]);return useEffect(function(){n&&c()},[n]),useEffect(function(){var a;window.opener?(r(!0),a=setTimeout(function(){console.log("从 ".concat(document.referrer," 过来,但20s后都没有接受到消息,自动走登录")),r(!1),c()},2e4),window.addEventListener("message",function(c){var e=c.data,c=(c.source,c.origin);if(console.log("接受到的message数据",c,e,(new Date).getTime()),c!=window.location.origin)if(e==HELLO_MSG)console.log("发送响应数据",(new Date).getTime()),window.opener.postMessage(REPLY_MSG,c);else if(e)try{var t=JSON.parse(e);t&&t.language&&TmsSdk.updateLanguage(t.language),t&&t.userInfo?(o(t.userInfo),r(!1),clearTimeout(a)):console.log("---- 从 ".concat(c," 过来,但数据不对,没有 userInfo,忽略"))}catch(e){console.log("---- 从 ".concat(c," 过来,但数据不对,忽略"))}})):c()},[]),React__default.createElement(ConfigProvider,{prefixCls:"ant-tms"},i?React__default.createElement("div",{className:"loginPage"},React__default.createElement(SpinFC,null)):React__default.createElement("div",{className:"loginPage"},React__default.createElement(Image,{src:img,height:40}),React__default.createElement("div",{className:"loginBox"},React__default.createElement(Form,{name:"loginForm",layout:"vertical"},React__default.createElement(Form.Item,null,React__default.createElement(Button,{type:"primary",size:"large",className:"loginButton",style:{display:"flex",justifyContent:"center",alignItems:"center"},htmlType:"submit",onClick:c,loading:l},l?"":"TMS 登录"))))))},TMS_Login_Callback=function(e){var a=e.callback,t=TmsSdk.getConfig(),n=TmsSdk.getStorage(),o=(console.log("appConfig in callback page",JSON.stringify(t)),toSearchObj(window.location.search));console.log("locationQuery",JSON.stringify(o));return useEffect(function(){new Promise(function(e,c){var t;o&&o.language?(t="en"==o.language?"en":"cn",TmsSdk.updateLanguage(t).then(function(){console.log("Tms.updateLanguage",t),a&&a({eventName:"tms-init-language",isSuccess:!0,data:t}),e(null)})):e(null)}).then(function(){TmsSdk.getToken(o).then(function(e){var c=n.getItem(t.lastPathKey);c?(console.log("有缓存上一路径 lastPath,从callback页面跳转去上一缓存路径",c),n.removeItem(t.lastPathKey),window.location.href=c):history.replace(t.indexPath)}).catch(function(e){TmsSdk.login()})})},[o]),React__default.createElement(ConfigProvider,{prefixCls:"ant-tms"},React__default.createElement("div",{className:"loginPage"},React__default.createElement(SpinFC,null)))},TMS_Default_Index=function(e){var a=TmsSdk.getConfig(),n=TmsSdk.getStorage();return useEffect(function(){var e=n.getItem(a.curAppKey),e=e?JSON.parse(e):"",c=(null==e?void 0:e.appPath)||(null==e?void 0:e.defaultPath)||"",t=n.getItem(a.lastPathKey);t?(console.log("有缓存上一路径 lastPath,从 ",t),n.removeItem(a.lastPathKey),window.location.href=t):c&&(console.log("跳转至配置的默认页 appPath(优先)",null==e?void 0:e.appPath),console.log("跳转至配置的默认页 defaultPath",null==e?void 0:e.defaultPath),history.replace(c))},[]),React__default.createElement("div",null)},App$1=function(){return React__default.createElement(ConfigProvider,{prefixCls:"ant-tms"},React__default.createElement("div",{style:{height:"calc(100vh - 210px)",background:"#ffffff",borderRadius:"0 0 5px 5px"}},React__default.createElement(Result,{status:"404",title:"404",subTitle:"找不到页面"})))},App=function(){return React__default.createElement(ConfigProvider,{prefixCls:"ant-tms"},React__default.createElement("div",{style:{height:"calc(100vh - 210px)",background:"#ffffff",borderRadius:"0 0 5px 5px"}},React__default.createElement(Result,{status:"403",title:"403",subTitle:"暂无访问权限"})))},TmsErrorHandle=Tms_Error_Handle,TmsIndex=TMS_Default_Index,TmsLayout=BaseLayout,TmsLogin=TMS_Login,TmsLoginCallback=TMS_Login_Callback,Tms404=App$1,Tms403=App,Tms=TmsSdk,index={Tms:Tms,TmsLayout:TmsLayout,TmsLogin:TmsLogin,TmsLoginCallback:TmsLoginCallback,TmsIndex:TmsIndex,Tms404:Tms404,Tms403:Tms403,TmsErrorHandle:TmsErrorHandle};export{Tms,Tms403,Tms404,TmsErrorHandle,TmsIndex,TmsLayout,TmsLogin,TmsLoginCallback,index as default};
|
package/docs/index.md
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "tms-auth",
|
|
3
|
+
"version": "1.3.26",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"dev": "cross-env RUNNER_ENV=dev tms-scripts",
|
|
6
|
+
"build": "cross-env RUNNER_ENV=prod node ./bin/scripts.js",
|
|
7
|
+
"start": "dumi dev",
|
|
8
|
+
"docs:build": "dumi build",
|
|
9
|
+
"docs:deploy": "gh-pages -d docs-dist",
|
|
10
|
+
"deploy": "npm run docs:build && npm run docs:deploy",
|
|
11
|
+
"prettier": "prettier --write \"**/*.{js,jsx,tsx,ts,less,md,json}\"",
|
|
12
|
+
"test": "umi-test",
|
|
13
|
+
"test:coverage": "umi-test --coverage",
|
|
14
|
+
"prepublishOnly": "npm run build",
|
|
15
|
+
"publish": "node ./publish_dist_to_branch.js"
|
|
16
|
+
},
|
|
17
|
+
"bin": {
|
|
18
|
+
"tms-scripts": "./bin/scripts.js"
|
|
19
|
+
},
|
|
20
|
+
"main": "dist/index.js",
|
|
21
|
+
"module": "dist/index.js",
|
|
22
|
+
"types": "dist/index.d.ts",
|
|
23
|
+
"gitHooks": {
|
|
24
|
+
"pre-commit": "lint-staged"
|
|
25
|
+
},
|
|
26
|
+
"lint-staged": {
|
|
27
|
+
"*.{js,jsx,less,md,json}": [
|
|
28
|
+
"prettier --write"
|
|
29
|
+
],
|
|
30
|
+
"*.ts?(x)": [
|
|
31
|
+
"prettier --parser=typescript --write"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"peerDependencies": {
|
|
35
|
+
"react": ">=16.14.0",
|
|
36
|
+
"react-dom": ">=16.14.0",
|
|
37
|
+
"umi": ">=3.2.27"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@salesforce/design-system-react": "^0.10.48",
|
|
41
|
+
"antd": "4.22.7",
|
|
42
|
+
"qs": "^6.11.0",
|
|
43
|
+
"rc-animate": "^3.1.1"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@reduxjs/toolkit": "^1.8.5",
|
|
47
|
+
"@rollup/plugin-alias": "^3.1.9",
|
|
48
|
+
"@rollup/plugin-babel": "^5.3.1",
|
|
49
|
+
"@rollup/plugin-commonjs": "^22.0.2",
|
|
50
|
+
"@rollup/plugin-image": "^2.1.1",
|
|
51
|
+
"@rollup/plugin-node-resolve": "^13.3.0",
|
|
52
|
+
"@rollup/plugin-replace": "^4.0.0",
|
|
53
|
+
"@rollup/plugin-typescript": "^8.4.0",
|
|
54
|
+
"@testing-library/jest-dom": "^5.15.1",
|
|
55
|
+
"@testing-library/react": "^13.0.0",
|
|
56
|
+
"@types/jest": "^27.0.3",
|
|
57
|
+
"@types/qs": "^6.9.7",
|
|
58
|
+
"@umijs/fabric": "^2.8.1",
|
|
59
|
+
"@umijs/test": "^3.0.5",
|
|
60
|
+
"babel-plugin-import": "^1.13.5",
|
|
61
|
+
"chalk": "^4.1.2",
|
|
62
|
+
"cross-env": "^7.0.3",
|
|
63
|
+
"cross-spawn": "^7.0.3",
|
|
64
|
+
"dumi": "^1.1.0",
|
|
65
|
+
"fs-extra": "^10.1.0",
|
|
66
|
+
"gh-pages": "^4.0.0",
|
|
67
|
+
"inquirer": "6.2.0",
|
|
68
|
+
"lint-staged": "^10.0.7",
|
|
69
|
+
"postcss": "^8.4.16",
|
|
70
|
+
"prettier": "^2.2.1",
|
|
71
|
+
"react": "16.14.0",
|
|
72
|
+
"react-dom": "16.14.0",
|
|
73
|
+
"react-redux": "^8.0.2",
|
|
74
|
+
"rollup": "^2.79.0",
|
|
75
|
+
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
76
|
+
"rollup-plugin-postcss": "^4.0.2",
|
|
77
|
+
"rollup-plugin-uglify": "^6.0.4",
|
|
78
|
+
"shelljs": "^0.8.5",
|
|
79
|
+
"umi": "3.2.27",
|
|
80
|
+
"yorkie": "^2.0.0"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
const shell = require('shelljs');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const ghpages = require('gh-pages');
|
|
4
|
+
const inquirer = require('inquirer');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
// import inquirer from 'inquirer';
|
|
7
|
+
|
|
8
|
+
var curVersion = '';
|
|
9
|
+
const CONFIG_PATH = './package.json';
|
|
10
|
+
const DIST_CONFIG_PATH = './dist/package.json';
|
|
11
|
+
const DIST_PATH = './dist';
|
|
12
|
+
|
|
13
|
+
// 发布到 dev: npm run publish dev
|
|
14
|
+
// 发布到 uat: npm run publish uat
|
|
15
|
+
// 发布到 sdk: npm run publish sdk => 纯js包,没有router和component,提供给vue项目用
|
|
16
|
+
// 发布到 live: npm run publish 或 npm run publish live
|
|
17
|
+
|
|
18
|
+
// 如果在运行publish过程中提示:打包后的文件提交远程 失败!!!! ProcessError: fatal: A branch named 'tms-dist-dev' already exists.
|
|
19
|
+
// 先运行 rm -rf node_modules/.cache/gh-pages 后重新 npm run publish 以上命令
|
|
20
|
+
// git tag -d <tag_name> 删除本地标签
|
|
21
|
+
// git push --delete origin <tag_name> 删除远程标签
|
|
22
|
+
|
|
23
|
+
var tms_npm_env = 'live'; // 当前TMS NPM包发布的环境,默认发布到live环境
|
|
24
|
+
const env_argv = process.argv[2];
|
|
25
|
+
console.log('argvs', env_argv);
|
|
26
|
+
if (['dev', 'uat', 'live', 'sdk'].indexOf(env_argv) != -1) {
|
|
27
|
+
tms_npm_env = env_argv;
|
|
28
|
+
} else {
|
|
29
|
+
tms_npm_env = 'live';
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const gitBranch = {
|
|
33
|
+
dev: 'tms-dist-dev',
|
|
34
|
+
uat: 'tms-dist-uat',
|
|
35
|
+
sdk: 'tms-dist-sdk',
|
|
36
|
+
live: 'tms-dist',
|
|
37
|
+
}[tms_npm_env];
|
|
38
|
+
|
|
39
|
+
// 步骤一:打包文件到dist
|
|
40
|
+
shell.exec(`yarn build`);
|
|
41
|
+
|
|
42
|
+
// 步骤二:读取原版本号,并确认新版本号
|
|
43
|
+
readAndWriteFile({
|
|
44
|
+
pathStr: CONFIG_PATH,
|
|
45
|
+
updateFileData: (data) => {
|
|
46
|
+
const dataObj = JSON.parse(data);
|
|
47
|
+
// 获取当前版本号
|
|
48
|
+
curVersion = dataObj.version;
|
|
49
|
+
|
|
50
|
+
return data;
|
|
51
|
+
},
|
|
52
|
+
callback: () => {
|
|
53
|
+
var auto_increase_version = autoCreateVersion(curVersion);
|
|
54
|
+
|
|
55
|
+
// 确认新版本号
|
|
56
|
+
const questions = [
|
|
57
|
+
{
|
|
58
|
+
type: 'list',
|
|
59
|
+
name: 'version',
|
|
60
|
+
message: `当前版本号是${curVersion},自动增加编号,是否让新版本号为${auto_increase_version}?`,
|
|
61
|
+
choices: [
|
|
62
|
+
{ name: auto_increase_version, value: auto_increase_version },
|
|
63
|
+
{ name: `当前版本号(${curVersion})`, value: curVersion },
|
|
64
|
+
{ name: '填写新的版本号', value: '' },
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'versionStr',
|
|
69
|
+
type: 'input',
|
|
70
|
+
message: '请输入版本号',
|
|
71
|
+
choices: [
|
|
72
|
+
{ name: '单平台打包', value: 'single' },
|
|
73
|
+
{ name: '整合打包', value: 'merge' },
|
|
74
|
+
],
|
|
75
|
+
when: (answers) => answers.version === '',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
type: 'list',
|
|
79
|
+
name: 'uploadToGit',
|
|
80
|
+
message: `是否将打包后文件自动上传至 ${gitBranch} 分支`,
|
|
81
|
+
choices: [
|
|
82
|
+
{ name: 'N', value: 'N' },
|
|
83
|
+
{ name: 'Y', value: 'Y' },
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
type: 'list',
|
|
88
|
+
name: 'uploadTag',
|
|
89
|
+
message: `是否打Tag`,
|
|
90
|
+
choices: [
|
|
91
|
+
{ name: 'N', value: 'N' },
|
|
92
|
+
{ name: 'Y', value: 'Y' },
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
queryVersion({
|
|
98
|
+
questions: questions,
|
|
99
|
+
callback: ({ newVersion, uploadToGit, uploadTag }) => {
|
|
100
|
+
// git 标签
|
|
101
|
+
var gitTag = `v${newVersion}${
|
|
102
|
+
{
|
|
103
|
+
dev: '-dev',
|
|
104
|
+
uat: '-uat',
|
|
105
|
+
sdk: '-sdk',
|
|
106
|
+
live: '',
|
|
107
|
+
}[tms_npm_env]
|
|
108
|
+
}`;
|
|
109
|
+
|
|
110
|
+
// 步骤三:更新 package.json 文件信息的版本信息
|
|
111
|
+
updateOriginPackageFile({
|
|
112
|
+
cur_version: curVersion,
|
|
113
|
+
new_version: newVersion,
|
|
114
|
+
callback: () => {
|
|
115
|
+
// 步骤四:复制 package.json 到 dist 目录下
|
|
116
|
+
copyFile(CONFIG_PATH, DIST_CONFIG_PATH);
|
|
117
|
+
|
|
118
|
+
// 步骤五:更新 dist 目录下的 package.json文件信息
|
|
119
|
+
readAndWriteFile({
|
|
120
|
+
pathStr: DIST_CONFIG_PATH,
|
|
121
|
+
updateFileData: (data) => {
|
|
122
|
+
const dataObj = JSON.parse(data);
|
|
123
|
+
|
|
124
|
+
// 删除 依赖包
|
|
125
|
+
delete dataObj.dependencies;
|
|
126
|
+
delete dataObj.devDependencies;
|
|
127
|
+
|
|
128
|
+
// 删除一些依赖脚本
|
|
129
|
+
delete dataObj.scripts;
|
|
130
|
+
delete dataObj.bin;
|
|
131
|
+
delete dataObj.gitHooks;
|
|
132
|
+
|
|
133
|
+
// 获取当前版本号
|
|
134
|
+
dataObj.version = newVersion;
|
|
135
|
+
|
|
136
|
+
// 更新配置项
|
|
137
|
+
if (tms_npm_env !== 'sdk') {
|
|
138
|
+
dataObj.main = './index.js';
|
|
139
|
+
dataObj.module = './index.js';
|
|
140
|
+
dataObj.typings = './index.d.ts';
|
|
141
|
+
} else {
|
|
142
|
+
delete dataObj.peerDependencies;
|
|
143
|
+
dataObj.main = './sdk.js';
|
|
144
|
+
dataObj.module = './sdk.js';
|
|
145
|
+
dataObj.typings = './utils/sdk.d.ts';
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return JSON.stringify(dataObj);
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// 把当前git标签放在文件里打印出来
|
|
153
|
+
replaceSDKVersion(gitTag);
|
|
154
|
+
|
|
155
|
+
const publishOptions = { branch: gitBranch };
|
|
156
|
+
if (uploadTag === 'Y') {
|
|
157
|
+
PublishOptions.tag = gitTag;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// 步骤六:打包到 tms-dist 分支上
|
|
161
|
+
if (uploadToGit == 'Y') {
|
|
162
|
+
ghpages.publish('dist', publishOptions, (err) => {
|
|
163
|
+
if (!err) {
|
|
164
|
+
console.log(`打包后的文件已成功提交到远程分支 ${gitBranch} ${gitTag}`);
|
|
165
|
+
} else {
|
|
166
|
+
console.log('打包后的文件提交远程 失败!!!!', err);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
} else {
|
|
170
|
+
console.log('已完成打包');
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
},
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
function queryVersion(option) {
|
|
180
|
+
const { questions, callback } = option;
|
|
181
|
+
inquirer.prompt(questions).then(function (answers) {
|
|
182
|
+
let { version = '', versionStr = '', uploadToGit } = answers;
|
|
183
|
+
|
|
184
|
+
const new_version = versionStr || version;
|
|
185
|
+
if (new_version) {
|
|
186
|
+
callback && callback({ newVersion: new_version, uploadToGit: uploadToGit });
|
|
187
|
+
} else {
|
|
188
|
+
console.log('版本号不能为空');
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// 更新原有package.json文件的版本号
|
|
194
|
+
function updateOriginPackageFile({ cur_version, new_version, callback }) {
|
|
195
|
+
readAndWriteFile({
|
|
196
|
+
pathStr: CONFIG_PATH,
|
|
197
|
+
updateFileData: (data) => {
|
|
198
|
+
return data.replace(`"version": "${cur_version}",`, `"version": "${new_version}",`);
|
|
199
|
+
},
|
|
200
|
+
callback,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
function copyFile(src, dist) {
|
|
205
|
+
const data = fs.readFileSync(src);
|
|
206
|
+
fs.writeFileSync(dist, data);
|
|
207
|
+
// shell.exec(`rmdir ${dist}`); // 删除该租户路径下的原来文件
|
|
208
|
+
// shell.exec(`copy ${src} ${dist}`); // 复制文件
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/*
|
|
212
|
+
* 读写文件
|
|
213
|
+
* @params obj Object 参数对象
|
|
214
|
+
* @params obj.pathStr 路径名称
|
|
215
|
+
* @params obj.updateFileData 更新数据的函数,将读取的数据传给 updateFileData ,返回更新替换的文件数据流,再重新写入文件中
|
|
216
|
+
*
|
|
217
|
+
*/
|
|
218
|
+
function readAndWriteFile(obj) {
|
|
219
|
+
let { pathStr = '', updateFileData = null, callback } = obj;
|
|
220
|
+
console.log('readAndWriteFile', pathStr);
|
|
221
|
+
|
|
222
|
+
fs.readFile(pathStr, { encoding: 'utf-8' }, (err, data) => {
|
|
223
|
+
if (err) {
|
|
224
|
+
console.log('------- err ------');
|
|
225
|
+
console.log(err);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
let fileData = updateFileData ? updateFileData(data) : '';
|
|
229
|
+
|
|
230
|
+
fs.writeFile(pathStr, fileData, (err2) => {
|
|
231
|
+
if (err2) {
|
|
232
|
+
console.log('------- err2 ------');
|
|
233
|
+
console.log(err2);
|
|
234
|
+
} else {
|
|
235
|
+
callback && callback();
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// 自动增加版本号,增加最后一位
|
|
242
|
+
function autoCreateVersion(versionStr) {
|
|
243
|
+
console.log('autoCreateVersion versionStr', versionStr);
|
|
244
|
+
var vArr = versionStr.split('.');
|
|
245
|
+
var lastChar = vArr.length - 1;
|
|
246
|
+
vArr[lastChar] = vArr[lastChar] - 0 + 1;
|
|
247
|
+
var lastestVersion = vArr.join('.');
|
|
248
|
+
console.log('autoCreateVersion lastestVersion', lastestVersion);
|
|
249
|
+
return lastestVersion;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
function replaceSDKVersion(gitTag) {
|
|
253
|
+
const files = fs.readdirSync(DIST_PATH) || [];
|
|
254
|
+
const baseLayoutFile = files.find((item) => /BaseLayout(.*?).js/.test(item));
|
|
255
|
+
if (baseLayoutFile) {
|
|
256
|
+
readAndWriteFile({
|
|
257
|
+
pathStr: path.resolve(DIST_PATH, baseLayoutFile),
|
|
258
|
+
updateFileData: (data) => {
|
|
259
|
+
return data.replace(`TMS_AUTH_VERSION`, gitTag);
|
|
260
|
+
},
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
package/scripts/build.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const rollup = require('rollup');
|
|
5
|
+
const chalk = require('chalk');
|
|
6
|
+
const fs = require('fs-extra');
|
|
7
|
+
const configFactory = require('../config/rollup.config');
|
|
8
|
+
const paths = require('../config/paths');
|
|
9
|
+
|
|
10
|
+
const config = configFactory(process.env.NODE_ENV);
|
|
11
|
+
|
|
12
|
+
async function build() {
|
|
13
|
+
const { output: outputConfigs, watch: watchConfigs, ...inputConfigs } = config;
|
|
14
|
+
|
|
15
|
+
console.log('Clearing dist floder ...');
|
|
16
|
+
fs.emptyDirSync(paths.dist);
|
|
17
|
+
|
|
18
|
+
const bundle = await rollup.rollup(inputConfigs);
|
|
19
|
+
|
|
20
|
+
console.log('Creating a ' + process.env.NODE_ENV + ' build...');
|
|
21
|
+
await bundle.write(outputConfigs);
|
|
22
|
+
|
|
23
|
+
console.log(chalk.green('Compiled successfully.\n'));
|
|
24
|
+
await bundle.close();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
try {
|
|
28
|
+
build();
|
|
29
|
+
} catch (e) {
|
|
30
|
+
console.log(chalk.red('Failed to compile.\n'));
|
|
31
|
+
console.log(chalk.red(e + '\n'));
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
package/scripts/start.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const rollup = require('rollup');
|
|
5
|
+
const chalk = require('chalk');
|
|
6
|
+
const fs = require('fs-extra');
|
|
7
|
+
const configFactory = require('../config/rollup.config');
|
|
8
|
+
const paths = require('../config/paths');
|
|
9
|
+
|
|
10
|
+
const config = configFactory(process.env.NODE_ENV);
|
|
11
|
+
const watcher = rollup.watch(config);
|
|
12
|
+
|
|
13
|
+
watcher.on('event', async (event) => {
|
|
14
|
+
switch (event.code) {
|
|
15
|
+
case 'START': {
|
|
16
|
+
console.log('Clearing dist floder ...');
|
|
17
|
+
fs.emptyDirSync(paths.dist);
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
case 'BUNDLE_START':
|
|
21
|
+
console.log('Creating a development build...');
|
|
22
|
+
break;
|
|
23
|
+
case 'BUNDLE_END':
|
|
24
|
+
console.log(chalk.green('Compiled successfully.\n'));
|
|
25
|
+
break;
|
|
26
|
+
case 'ERROR':
|
|
27
|
+
case 'FATAL':
|
|
28
|
+
console.log(chalk.red('Failed to compile.\n'));
|
|
29
|
+
console.log(chalk.red(event.error + '\n'));
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
watcher.on('event', ({ result }) => {
|
|
35
|
+
if (result) {
|
|
36
|
+
result.close();
|
|
37
|
+
}
|
|
38
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Result, ConfigProvider } from 'antd';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
const App: React.FC = () => (
|
|
5
|
+
<ConfigProvider prefixCls="ant-tms">
|
|
6
|
+
<div
|
|
7
|
+
style={{
|
|
8
|
+
height: 'calc(100vh - 210px)',
|
|
9
|
+
background: '#ffffff',
|
|
10
|
+
borderRadius: '0 0 5px 5px',
|
|
11
|
+
}}
|
|
12
|
+
>
|
|
13
|
+
<Result status="403" title="403" subTitle="暂无访问权限" />
|
|
14
|
+
</div>
|
|
15
|
+
</ConfigProvider>
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
export default App;
|