@gingkoo/base-server 0.0.1-alpha.0 → 0.0.1-alpha.10
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/README.md +4 -0
- package/app.js +41 -40
- package/backend/common/entity.js +55 -0
- package/backend/common/enum.js +247 -0
- package/backend/common/fss/index.js +18 -0
- package/backend/common/fss/routers/attachment.js +45 -0
- package/backend/common/fss/routers/download.js +43 -0
- package/backend/common/fss/routers/import_export.js +113 -0
- package/backend/common/fss/routers/resources.js +149 -0
- package/backend/common/fss/routers/upload.js +81 -0
- package/backend/common/fss/services/import_export.js +159 -0
- package/backend/common/fss/services/index.js +92 -0
- package/backend/common/fss/utils.js +39 -0
- package/backend/common/ginfo/config.js +5 -0
- package/backend/common/ginfo/index.js +62 -0
- package/backend/common/index_template.html +28 -0
- package/backend/common/logger/index.js +96 -0
- package/backend/common/mapping.js +128 -0
- package/backend/common/middleware/auth.js +109 -0
- package/backend/common/middleware/cors.js +13 -0
- package/backend/common/middleware/response.js +25 -0
- package/backend/common/page_engine.js +487 -0
- package/backend/common/schedule.js +45 -0
- package/backend/common/services/dataCombine.js +67 -0
- package/backend/common/services/dept.js +37 -0
- package/backend/common/services/dict.js +488 -0
- package/backend/common/services/email.js +49 -0
- package/backend/common/services/generalConfig.js +137 -0
- package/backend/common/services/login.js +18 -0
- package/backend/common/services/notice.js +260 -0
- package/backend/common/services/permission.js +500 -0
- package/backend/common/services/roles.js +57 -0
- package/backend/common/services/send-notice.js +86 -0
- package/backend/common/services/task.js +259 -0
- package/backend/common/services/user.js +673 -0
- package/backend/common/socket.js +18 -0
- package/backend/common/sse/index.js +81 -0
- package/backend/common/sse/router.js +30 -0
- package/backend/common/task.js +75 -0
- package/backend/common/wechat/index.js +9 -0
- package/backend/common/wechat/routers/auth.js +238 -0
- package/{modules/user/frontend → backend/common/wechat/routers}/index.html +14 -7
- package/backend/common/wechat/services/auth.js +209 -0
- package/backend/common/wechat/services/notice.js +171 -0
- package/backend/config/index.js +61 -0
- package/backend/config/path.js +3 -0
- package/backend/router.js +100 -0
- package/backend/routers/app.js +222 -0
- package/backend/routers/automate.js +276 -0
- package/backend/routers/dict.js +370 -0
- package/backend/routers/email.js +85 -0
- package/backend/routers/generalConfig.js +276 -0
- package/backend/routers/idm.js +245 -0
- package/backend/routers/module.js +357 -0
- package/backend/routers/notice.js +138 -0
- package/backend/routers/pages.js +46 -0
- package/backend/routers/permission.js +985 -0
- package/backend/routers/setting.js +184 -0
- package/backend/routers/team/index.js +22 -0
- package/backend/routers/team/routers/mapping.js +29 -0
- package/backend/routers/team/routers/member.js +72 -0
- package/backend/routers/team/routers/membermanage.js +289 -0
- package/backend/routers/team/routers/pages.js +47 -0
- package/backend/routers/team/routers/roles.js +92 -0
- package/backend/routers/team/routers/teaminfo.js +27 -0
- package/backend/routers/team/routers/usergroup.js +213 -0
- package/backend/routers/team/services/mapping.js +101 -0
- package/backend/routers/team/services/member.js +206 -0
- package/backend/routers/team/services/roles.js +71 -0
- package/backend/routers/team/services/teaminfo.js +20 -0
- package/backend/routers/team/services/usergroup.js +128 -0
- package/backend/routers/user.js +436 -0
- package/backend/services/automate.js +60 -0
- package/backend/services/config.js +14 -0
- package/backend/services/module.js +298 -0
- package/backend/services/permission.js +192 -0
- package/backend/services/services.js +115 -0
- package/backend/services/setting.js +190 -0
- package/backend/services/token.js +42 -0
- package/backend/space.js +52 -0
- package/backend/space_mapping.js +22 -0
- package/backend/utils/avatar.js +48 -0
- package/backend/utils/color_gen_helper.js +20 -0
- package/backend/utils/date.js +66 -0
- package/backend/utils/excel.js +446 -0
- package/backend/utils/fs/doc.md +64 -0
- package/backend/utils/fs/index.js +127 -0
- package/backend/utils/jwt.js +54 -0
- package/backend/utils/modules/sequence.js +93 -0
- package/backend/utils/object.js +31 -0
- package/backend/utils/page-query-helper/index.js +61 -0
- package/backend/utils/path.js +123 -0
- package/backend/utils/run.js +25 -0
- package/backend/utils/tokenize.js +82 -0
- package/backend/utils/typeof.js +5 -0
- package/backend/utils/util.js +153 -0
- package/backend/views/api/index.js +32 -0
- package/backend/views/api/index.xml +49 -0
- package/backend/views/dict/index.js +80 -0
- package/backend/views/dict/index.xml +52 -0
- package/backend/views/index.js +32 -0
- package/backend/views/members_manage/index.js +68 -0
- package/backend/views/members_manage/index.xml +68 -0
- package/backend/views/roles/index.js +17 -0
- package/backend/views/roles/index.xml +47 -0
- package/backend/views/usergroup/index.js +68 -0
- package/backend/views/usergroup/index.xml +65 -0
- package/dist/base-assets/css/index-ffdb55a5.css +3 -0
- package/dist/base-assets/css/index-ffdb55a5.css.gz +0 -0
- package/dist/base-assets/js/index-b3998a47.js +762 -0
- package/dist/base-assets/js/index-b3998a47.js.gz +0 -0
- package/dist/base-assets/js/react-cropper.es-d5f06996.js +10 -0
- package/dist/base-assets/js/react-cropper.es-d5f06996.js.gz +0 -0
- package/dist/base-assets/png/u9-2348c304.png +0 -0
- package/dist/base-assets/woff2/materialicons-83be7b2f.woff2 +0 -0
- package/dist/index.html +162 -0
- package/package.json +62 -5
- package/common/router.js +0 -42
- package/modules/user/backend/index.js +0 -19
- package/modules/user/backend/routers/user.js +0 -11
- package/modules/user/frontend/index.js +0 -1
- package/serve.js +0 -9
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
let dict = {
|
|
2
|
+
aside: {
|
|
3
|
+
poi: [250],
|
|
4
|
+
rang: [200, 50],
|
|
5
|
+
body: [
|
|
6
|
+
{
|
|
7
|
+
type: 'tree',
|
|
8
|
+
name: 'DICT_ID',
|
|
9
|
+
trigger: 'dicetable',
|
|
10
|
+
source: '/space/dict/tree',
|
|
11
|
+
level: 3,
|
|
12
|
+
creatable: true,
|
|
13
|
+
removable: true,
|
|
14
|
+
editable: true,
|
|
15
|
+
extraParams: ['type'],
|
|
16
|
+
isNeedId: true,
|
|
17
|
+
showNodeId: true,
|
|
18
|
+
addText: '添加字典组',
|
|
19
|
+
editText: '修改',
|
|
20
|
+
delText: '删除',
|
|
21
|
+
showRightExtra: true,
|
|
22
|
+
editApi: 'put:/space/dict/api/basedict',
|
|
23
|
+
delApi: 'delete:/space/dict/api/basedict',
|
|
24
|
+
addApi: 'post:/space/dict/api/basedict',
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
body: [
|
|
29
|
+
{
|
|
30
|
+
id: 'dicetable',
|
|
31
|
+
type: 'table',
|
|
32
|
+
addRowInfo: {
|
|
33
|
+
mode: 'form',
|
|
34
|
+
layoutSet: [
|
|
35
|
+
{ name: 'ITEM_ID', required: true },
|
|
36
|
+
{ name: 'ITEM_VALUE', required: true },
|
|
37
|
+
'ITEM_COLOR',
|
|
38
|
+
'ITEM_ICON_TYPE',
|
|
39
|
+
'ITEM_ICON',
|
|
40
|
+
{
|
|
41
|
+
name: 'ITEM_ICON',
|
|
42
|
+
type: 'input-text',
|
|
43
|
+
placeholder: '请输入字体图标',
|
|
44
|
+
visibleOn: '${ITEM_ICON_TYPE==="1"}',
|
|
45
|
+
},
|
|
46
|
+
'ITEM_STYLE',
|
|
47
|
+
'ITEM_DESC',
|
|
48
|
+
'ITEM_PARENT',
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
rowInfo: {
|
|
52
|
+
mode: 'form',
|
|
53
|
+
layoutSet: [
|
|
54
|
+
{
|
|
55
|
+
name: 'ITEM_ID',
|
|
56
|
+
label: '字典项编码',
|
|
57
|
+
disabled: true,
|
|
58
|
+
required: true,
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
'ITEM_VALUE',
|
|
62
|
+
'ITEM_COLOR',
|
|
63
|
+
'ITEM_ICON_TYPE',
|
|
64
|
+
'ITEM_ICON',
|
|
65
|
+
{
|
|
66
|
+
name: 'ITEM_ICON',
|
|
67
|
+
type: 'input-text',
|
|
68
|
+
placeholder: '请输入字体图标',
|
|
69
|
+
visibleOn: '${ITEM_ICON_TYPE==="1"}',
|
|
70
|
+
},
|
|
71
|
+
'ITEM_STYLE',
|
|
72
|
+
'ITEM_DESC',
|
|
73
|
+
'ITEM_PARENT',
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
module.exports = dict;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<PageView title="数据字典" blockApi="" initApi="">
|
|
3
|
+
<Fields>
|
|
4
|
+
<element id="ITEM_ID" component="text" label="字典项编码" />
|
|
5
|
+
<element id="ITEM_VALUE" component="text" label="字典项值" />
|
|
6
|
+
<element id="ITEM_COLOR" component="input-color" label="色彩" />
|
|
7
|
+
<element id="ITEM_ICON" component="input-image" label="图标" accept=".jpg,.png,.jpeg" action='/fss/upload/attachment' visibleOn="${ITEM_ICON_TYPE!=='1'}" />
|
|
8
|
+
<element id="ITEM_ICON_TYPE" component="switch" label="手动输入图标" trueValue="1" falseValue="0" />
|
|
9
|
+
<element id="ITEM_STYLE" component="text" label="样式" />
|
|
10
|
+
<element id="ITEM_DESC" component="textarea" label="字典说明" />
|
|
11
|
+
<element id="ITEM_PARENT" component="text" label="上级" />
|
|
12
|
+
</Fields>
|
|
13
|
+
|
|
14
|
+
<Operations rowKey="ITEM_ID">
|
|
15
|
+
<element id="BTN_ADD" type="button" label="新增码值" level="primary" actionType="add" icon="plus" size="sm" title="新增码值" feature="add"/>
|
|
16
|
+
<element id="BTN_DEL" type="button" label="删除" level="danger" actionType="del" feature="del" />
|
|
17
|
+
<element id="BTN_MOD" type="button" label="修改" level="" actionType="edit" title="修改字典信息" feature="edit" />
|
|
18
|
+
<element id="BTN_BATCHDEL" type="button" label="批量删除" actionType="batch" size="sm" api="delete:/space/dict" feature="del" />
|
|
19
|
+
</Operations>
|
|
20
|
+
|
|
21
|
+
<Table rowKey="ITEM_ID" autoFillHeight="true"
|
|
22
|
+
api="/space/dict?DICT_ID=ISSUE_TYPE"
|
|
23
|
+
addApi="post:/space/dict"
|
|
24
|
+
delApi="delete:/space/dict/${ITEM_ID}"
|
|
25
|
+
editApi="put:/space/dict/${ITEM_ID}"
|
|
26
|
+
saveOrderApi="post:/space/dict/dictsort"
|
|
27
|
+
>
|
|
28
|
+
<DefaultQuery>
|
|
29
|
+
<element id="page" value="1"/>
|
|
30
|
+
<element id="size" value="50"/>
|
|
31
|
+
</DefaultQuery>
|
|
32
|
+
|
|
33
|
+
<TableHead isReset="true" isMode="false" isContrl="false" isFilterPlus="false" draggable="true">
|
|
34
|
+
<filter list="ITEM_ID,dynamic"/>
|
|
35
|
+
<action components="BTN_ADD,BTN_BATCHDEL"/>
|
|
36
|
+
</TableHead>
|
|
37
|
+
|
|
38
|
+
<TableBody>
|
|
39
|
+
<column id="__check" fixed="left"/>
|
|
40
|
+
<column id="ITEM_ID" width="90" />
|
|
41
|
+
<column id="ITEM_VALUE" width="90" />
|
|
42
|
+
<column id="ITEM_COLOR" width="90" />
|
|
43
|
+
<column id="ITEM_ICON" width="90" />
|
|
44
|
+
<column id="ITEM_STYLE" width="90" />
|
|
45
|
+
<column id="ITEM_DESC" width="90" />
|
|
46
|
+
<column id="ITEM_PARENT" width="100" />
|
|
47
|
+
<column id="opr" label="操作" components="BTN_MOD, BTN_DEL" width="114" fixed="right" />
|
|
48
|
+
</TableBody>
|
|
49
|
+
|
|
50
|
+
<TableFoot show="true" showPageInput="true" statistics="" placeLeft="statistics" placeRight="pagination,switchPage" switchPage="5, 10, 20, 50, 100" />
|
|
51
|
+
</Table>
|
|
52
|
+
</PageView>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const path = require('path');
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 获取页面配置
|
|
5
|
+
* @param {string} page 页面
|
|
6
|
+
* return null | {
|
|
7
|
+
* json: json 位置
|
|
8
|
+
* xml: xml 位置
|
|
9
|
+
* html: html 位置
|
|
10
|
+
* }
|
|
11
|
+
*/
|
|
12
|
+
const views = (page) => {
|
|
13
|
+
let pages = {
|
|
14
|
+
dict: 'dict', // 通用设置 -> 数据字典
|
|
15
|
+
api: 'api', // 通用设置 -> API
|
|
16
|
+
roles: 'roles', // 团队管理 -> 角色
|
|
17
|
+
members_manage: 'members_manage', // 团队管理 -> 团队成员
|
|
18
|
+
usergroup: 'usergroup', // 团队管理 -> 用户组
|
|
19
|
+
};
|
|
20
|
+
// 页面配置不存在
|
|
21
|
+
if (!Reflect.has(pages, page)) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
let folder = pages[page];
|
|
25
|
+
return {
|
|
26
|
+
json: path.join(__dirname, `./${folder}/index.js`),
|
|
27
|
+
xml: path.join(__dirname, `./${folder}/index.xml`),
|
|
28
|
+
html: path.join(__dirname, '../common/index_template.html'),
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = views;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
let members_manage = {
|
|
2
|
+
aside: {
|
|
3
|
+
poi: [250],
|
|
4
|
+
rang: [200, 50],
|
|
5
|
+
body: [
|
|
6
|
+
{
|
|
7
|
+
type: 'tree',
|
|
8
|
+
name: 'cat',
|
|
9
|
+
trigger: 'membertable',
|
|
10
|
+
source: '/space/idm/api/orgs',
|
|
11
|
+
level: 10,
|
|
12
|
+
creatable: true,
|
|
13
|
+
removable: true,
|
|
14
|
+
editable: true,
|
|
15
|
+
extraParams: ['parentId'],
|
|
16
|
+
isNeedId: true,
|
|
17
|
+
addText: '添加子部门',
|
|
18
|
+
editText: '修改名称',
|
|
19
|
+
delText: '删除',
|
|
20
|
+
showNodeId: true,
|
|
21
|
+
showRightExtra: true,
|
|
22
|
+
editApi: 'put:/space/team/membermanage/api/group',
|
|
23
|
+
delApi: 'delete:/space/team/membermanage/api/group',
|
|
24
|
+
addApi: 'post:/space/team/membermanage/api/group',
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
body: [
|
|
29
|
+
{
|
|
30
|
+
id: 'membertable',
|
|
31
|
+
type: 'table',
|
|
32
|
+
addRowInfo: {
|
|
33
|
+
mode: 'form',
|
|
34
|
+
layoutSet: [{ label: '新增团队成员', name: 'USER_ID', require: true, searchable: true }],
|
|
35
|
+
},
|
|
36
|
+
rowInfo: {
|
|
37
|
+
mode: 'form',
|
|
38
|
+
layoutSet: [
|
|
39
|
+
// { name: 'USER_ID', disabled: true },
|
|
40
|
+
'USER_NAME',
|
|
41
|
+
'USER_TYPE',
|
|
42
|
+
'EN_NAME',
|
|
43
|
+
'PASSWD',
|
|
44
|
+
'NIKE_NAME',
|
|
45
|
+
'GENDER',
|
|
46
|
+
'EMAIL',
|
|
47
|
+
'MOBILE',
|
|
48
|
+
'TEL',
|
|
49
|
+
'TITLE',
|
|
50
|
+
'DEPT_NO',
|
|
51
|
+
'AVATAR',
|
|
52
|
+
'ADDR',
|
|
53
|
+
'POSITION',
|
|
54
|
+
'STAFF_NO',
|
|
55
|
+
'USER_STATUS',
|
|
56
|
+
'USER_GID',
|
|
57
|
+
'EDUCATION',
|
|
58
|
+
'SCHOOL',
|
|
59
|
+
{ name: 'ADMISSION_DATE', format: 'YYYYMMDD', inputFormat: 'YYYY-MM-DD' },
|
|
60
|
+
{ name: 'JOINED_DATE', format: 'YYYYMMDD', inputFormat: 'YYYY-MM-DD' },
|
|
61
|
+
{ name: 'LEAVE_DATE', format: 'YYYYMMDD', inputFormat: 'YYYY-MM-DD' },
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
module.exports = members_manage;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<PageView title="团队成员" blockApi="/space/team/mapping" initApi="">
|
|
3
|
+
<Fields>
|
|
4
|
+
<element id="USER_ID" component="dropdown" label="成员ID" source="$dict.USER_LIST" clearable="true" size="sm" multiple="true" labelTpl="${label}"/>
|
|
5
|
+
<element id="USER_NAME" component="text" label="姓名" disabled="true" />
|
|
6
|
+
<element id="LEADER" component="text" label="负责人" />
|
|
7
|
+
<element id="POSITION" component="dropdown" label="职务" source="$dict.IDM_USER_POSITION" />
|
|
8
|
+
<element id="DEPT_NO" component="dropdown" label="部门" searchable="true" source="$dict.DEPT_LIST" />
|
|
9
|
+
<element id="MOBILE" component="text" label="手机" />
|
|
10
|
+
<element id="EMAIL" component="text" label="邮箱" />
|
|
11
|
+
<element id="USER_TYPE" component="dropdown" label="成员类型" source="$dict.IDM_USER_TYPE" />
|
|
12
|
+
<element id="EN_NAME" component="text" label="英文名称" />
|
|
13
|
+
<element id="PASSWD" component="text" label="密码" />
|
|
14
|
+
<element id="NIKE_NAME" component="text" label="昵称" />
|
|
15
|
+
<element id="GENDER" component="dropdown" label="性别" source="$dict.IDM_USER_GENDER" />
|
|
16
|
+
<element id="MOBILE" component="text" label="手机号" />
|
|
17
|
+
<element id="TEL" component="text" label="电话号" />
|
|
18
|
+
<element id="TITLE" component="text" label="头衔" />
|
|
19
|
+
<element id="AVATAR" component="input-image" label="头像" accept=".jpg,.png,.jpeg" action='/fss/upload/attachment' />
|
|
20
|
+
<element id="ADDR" component="text" label="地址" />
|
|
21
|
+
<element id="STAFF_NO" component="text" label="员工编号" />
|
|
22
|
+
<element id="USER_STATUS" component="dropdown" label="状态" source="$dict.IDM_USER_STATUS" />
|
|
23
|
+
<element id="USER_GID" component="text" label="成员全局ID" />
|
|
24
|
+
<element id="EDUCATION" component="dropdown" label="学历" source="$dict.IDM_EDUCATION" />
|
|
25
|
+
<element id="SCHOOL" component="text" label="毕业学校" />
|
|
26
|
+
<element id="ADMISSION_DATE" component="date" label="毕业日期" />
|
|
27
|
+
<element id="JOINED_DATE" component="date" label="入职日期" />
|
|
28
|
+
<element id="LEAVE_DATE" component="date" label="离职日期" />
|
|
29
|
+
</Fields>
|
|
30
|
+
|
|
31
|
+
<Operations>
|
|
32
|
+
<!-- <element id="BTN_ADD" type="button" label="新增团队成员" level="primary" actionType="add" icon="plus" size="sm" title="新增成员"/> -->
|
|
33
|
+
<!-- <element id="BTN_DEL" type="button" label="删除" level="danger" actionType="del" /> -->
|
|
34
|
+
<element id="BTN_MOD" type="button" label="修改" level="" actionType="edit" title="成员修改" feature="edit" />
|
|
35
|
+
<element id="BTN_BATCHDEL" type="button" label="批量删除" actionType="batch" size="sm" api="put:/space/team/membermanage/batchdel" feature="del" />
|
|
36
|
+
<element id="BTN_LEADER" type="button" label="设置负责人" actionType="batch" size="sm" api="post:/space/team/membermanage/api/group/leader" feature="edit" />
|
|
37
|
+
</Operations>
|
|
38
|
+
|
|
39
|
+
<Table rowKey="USER_ID" autoFillHeight="true"
|
|
40
|
+
api="/space/team/membermanage?cat=BR01&type=DEPT"
|
|
41
|
+
addApi="post:/space/team/membermanage/add"
|
|
42
|
+
delApi="delete:/space/team/membermanage/del/${USER_ID}"
|
|
43
|
+
editApi="put:/space/team/membermanage/modify/${USER_ID}"
|
|
44
|
+
|
|
45
|
+
>
|
|
46
|
+
<DefaultQuery>
|
|
47
|
+
<element id="page" value="1"/>
|
|
48
|
+
<element id="size" value="50"/>
|
|
49
|
+
</DefaultQuery>
|
|
50
|
+
|
|
51
|
+
<TableHead isReset="true" isMode="false" isContrl="false" isFilterPlus="false">
|
|
52
|
+
<filter list="USER_NAME,dynamic"/>
|
|
53
|
+
<action components="BTN_ADD,BTN_BATCHDEL,BTN_LEADER" />
|
|
54
|
+
</TableHead>
|
|
55
|
+
|
|
56
|
+
<TableBody>
|
|
57
|
+
<column id="__check" />
|
|
58
|
+
<column id="USER_NAME" width="90"/>
|
|
59
|
+
<column id="LEADER" width="60" sortable="true" filterable="true"/>
|
|
60
|
+
<column id="DEPT_NO" width="90" sortable="true" filterable="true"/>
|
|
61
|
+
<column id="MOBILE" width="120"/>
|
|
62
|
+
<column id="EMAIL" width="120"/>
|
|
63
|
+
<column id="opr" label="操作" components="BTN_MOD" width="114" fixed="right" />
|
|
64
|
+
</TableBody>
|
|
65
|
+
|
|
66
|
+
<TableFoot show="true" showPageInput="true" statistics="" placeLeft="statistics" placeRight="pagination,switchPage" switchPage="5, 10, 20, 50, 100" />
|
|
67
|
+
</Table>
|
|
68
|
+
</PageView>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
let roles = {
|
|
2
|
+
body: [
|
|
3
|
+
{
|
|
4
|
+
type: 'table',
|
|
5
|
+
addRowInfo: {
|
|
6
|
+
mode: 'form',
|
|
7
|
+
layoutSet: ['ROLE_ID', 'ROLE_NAME', 'DEPT_NOS', 'REMARKS'],
|
|
8
|
+
},
|
|
9
|
+
rowInfo: {
|
|
10
|
+
mode: 'form',
|
|
11
|
+
layoutSet: [{ name: 'ROLE_ID', disabled: true }, 'ROLE_NAME', 'DEPT_NOS', 'REMARKS'],
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
module.exports = roles;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<PageView title="团队管理-角色" blockApi="" initApi="/space/team/mapping?list=DEPT_LIST">
|
|
3
|
+
<Fields>
|
|
4
|
+
<element id="ROLE_ID" component="text" label="角色ID" required="true"/>
|
|
5
|
+
<element id="ROLE_NAME" component="text" required="true" label="角色名称" />
|
|
6
|
+
<element id="DEPT_NOS" component="dropdown" label="角色部门" source="$dict.DEPT_LIST" />
|
|
7
|
+
<element id="REMARKS" component="textarea" label="角色描述" />
|
|
8
|
+
</Fields>
|
|
9
|
+
|
|
10
|
+
<Operations>
|
|
11
|
+
<element id="BTN_ADD" type="button" label="新增" level="primary" actionType="add" icon="plus" size="sm" title="团队角色新增" feature="add" />
|
|
12
|
+
<element id="BTN_DEL" type="button" label="删除" level="danger" actionType="del" feature="del" />
|
|
13
|
+
<element id="BTN_MOD" type="button" label="修改" level="" actionType="edit" title="团队角色修改" feature="edit" />
|
|
14
|
+
</Operations>
|
|
15
|
+
|
|
16
|
+
<Table rowKey="USER_ID" autoFillHeight="true"
|
|
17
|
+
api="/space/team/roles"
|
|
18
|
+
addApi="post:/space/team/roles"
|
|
19
|
+
delApi="delete:/space/team/roles/${ROLE_ID}"
|
|
20
|
+
editApi="put:/space/team/roles/${ROLE_ID}"
|
|
21
|
+
>
|
|
22
|
+
<DefaultQuery>
|
|
23
|
+
<element id="page" value="1"/>
|
|
24
|
+
<element id="size" value="50"/>
|
|
25
|
+
</DefaultQuery>
|
|
26
|
+
|
|
27
|
+
<TableHead isReset="true" isMode="false" isContrl="false" isFilterPlus="false">
|
|
28
|
+
<filter list="dynamic"/>
|
|
29
|
+
<action components="BTN_ADD"/>
|
|
30
|
+
</TableHead>
|
|
31
|
+
|
|
32
|
+
<TableBody>
|
|
33
|
+
<!-- <column id="ORG_ID" width="90" fixed="left"/> -->
|
|
34
|
+
<column id="ROLE_ID" width="60" />
|
|
35
|
+
<column id="ROLE_NAME" width="140" />
|
|
36
|
+
<column id="DEPT_NOS" width="140" />
|
|
37
|
+
<column id="REMARKS" width="300" />
|
|
38
|
+
<!-- <column id="DATA_CRT_DATE" width="100" />
|
|
39
|
+
<column id="DATA_CRT_TIME" width="100" />
|
|
40
|
+
<column id="DATA_UPD_DATE" width="100" />
|
|
41
|
+
<column id="DATA_UPD_TIME" width="100" /> -->
|
|
42
|
+
<column id="opr" label="操作" components="BTN_MOD, BTN_DEL" width="90" fixed="right" />
|
|
43
|
+
</TableBody>
|
|
44
|
+
|
|
45
|
+
<TableFoot show="true" showPageInput="true" statistics="" placeLeft="statistics" placeRight="pagination,switchPage" switchPage="5, 10, 20, 50, 100" />
|
|
46
|
+
</Table>
|
|
47
|
+
</PageView>
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
let members_manage = {
|
|
2
|
+
aside: {
|
|
3
|
+
poi: [250],
|
|
4
|
+
rang: [200, 50],
|
|
5
|
+
body: [
|
|
6
|
+
{
|
|
7
|
+
type: 'tree',
|
|
8
|
+
name: 'GROUP_ID',
|
|
9
|
+
trigger: 'membertable',
|
|
10
|
+
source: '/space/idm/api/usergroup',
|
|
11
|
+
level: 10,
|
|
12
|
+
creatable: true,
|
|
13
|
+
removable: true,
|
|
14
|
+
editable: true,
|
|
15
|
+
addText: '添加用户组',
|
|
16
|
+
editText: '修改名称',
|
|
17
|
+
delText: '删除',
|
|
18
|
+
isNeedId: true,
|
|
19
|
+
extraParams: ['type', 'group_type'],
|
|
20
|
+
onlyLeaf: true,
|
|
21
|
+
showNodeId: true,
|
|
22
|
+
showRightExtra: true,
|
|
23
|
+
editApi: 'put:/space/team/usergroup/api/group',
|
|
24
|
+
delApi: 'delete:/space/team/usergroup/api/group',
|
|
25
|
+
addApi: 'post:/space/team/usergroup/api/group',
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
body: [
|
|
30
|
+
{
|
|
31
|
+
id: 'membertable',
|
|
32
|
+
type: 'table',
|
|
33
|
+
addRowInfo: {
|
|
34
|
+
mode: 'form',
|
|
35
|
+
layoutSet: [{ label: '新增团队成员', name: 'USER_ID', require: true, searchable: true }],
|
|
36
|
+
},
|
|
37
|
+
rowInfo: {
|
|
38
|
+
mode: 'form',
|
|
39
|
+
layoutSet: [
|
|
40
|
+
'USER_NAME',
|
|
41
|
+
'USER_TYPE',
|
|
42
|
+
'EN_NAME',
|
|
43
|
+
'PASSWD',
|
|
44
|
+
'NIKE_NAME',
|
|
45
|
+
'GENDER',
|
|
46
|
+
'EMAIL',
|
|
47
|
+
'MOBILE',
|
|
48
|
+
'TEL',
|
|
49
|
+
'TITLE',
|
|
50
|
+
'DEPT_NO',
|
|
51
|
+
'AVATAR',
|
|
52
|
+
'ADDR',
|
|
53
|
+
'POSITION',
|
|
54
|
+
'STAFF_NO',
|
|
55
|
+
'USER_STATUS',
|
|
56
|
+
'USER_GID',
|
|
57
|
+
'EDUCATION',
|
|
58
|
+
'SCHOOL',
|
|
59
|
+
{ name: 'ADMISSION_DATE', format: 'YYYYMMDD', inputFormat: 'YYYY-MM-DD' },
|
|
60
|
+
{ name: 'JOINED_DATE', format: 'YYYYMMDD', inputFormat: 'YYYY-MM-DD' },
|
|
61
|
+
{ name: 'LEAVE_DATE', format: 'YYYYMMDD', inputFormat: 'YYYY-MM-DD' },
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
module.exports = members_manage;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<PageView title="用户组" blockApi="/space/team/mapping" initApi="">
|
|
3
|
+
<Fields>
|
|
4
|
+
<element id="USER_ID" component="dropdown" label="成员ID" source="$dict.USER_LIST" clearable="true" size="sm" multiple="true" labelTpl="${label}"/>
|
|
5
|
+
<element id="USER_NAME" component="text" label="姓名" disabled="true" />
|
|
6
|
+
<element id="LEADER" component="text" label="负责人" />
|
|
7
|
+
<element id="POSITION" component="dropdown" label="职务" source="$dict.IDM_USER_POSITION" />
|
|
8
|
+
<element id="DEPT_NO" component="dropdown" label="部门" searchable="true" source="$dict.DEPT_LIST" />
|
|
9
|
+
<element id="MOBILE" component="text" label="手机" />
|
|
10
|
+
<element id="EMAIL" component="text" label="邮箱" />
|
|
11
|
+
<element id="USER_TYPE" component="dropdown" label="成员类型" source="$dict.IDM_USER_TYPE" />
|
|
12
|
+
<element id="EN_NAME" component="text" label="英文名称" />
|
|
13
|
+
<element id="PASSWD" component="text" label="密码" />
|
|
14
|
+
<element id="NIKE_NAME" component="text" label="昵称" />
|
|
15
|
+
<element id="GENDER" component="dropdown" label="性别" source="$dict.IDM_USER_GENDER" />
|
|
16
|
+
<element id="MOBILE" component="text" label="手机号" />
|
|
17
|
+
<element id="TEL" component="text" label="电话号" />
|
|
18
|
+
<element id="TITLE" component="text" label="头衔" />
|
|
19
|
+
<element id="AVATAR" component="input-image" label="头像" accept=".jpg,.png,.jpeg" action='/fss/upload/attachment' />
|
|
20
|
+
<element id="ADDR" component="text" label="地址" />
|
|
21
|
+
<element id="STAFF_NO" component="text" label="员工编号" />
|
|
22
|
+
<element id="USER_STATUS" component="dropdown" label="状态" source="$dict.IDM_USER_STATUS" />
|
|
23
|
+
<element id="USER_GID" component="text" label="成员全局ID" />
|
|
24
|
+
<element id="EDUCATION" component="dropdown" label="学历" source="$dict.IDM_EDUCATION" />
|
|
25
|
+
<element id="SCHOOL" component="text" label="毕业学校" />
|
|
26
|
+
<element id="ADMISSION_DATE" component="date" label="毕业日期" />
|
|
27
|
+
<element id="JOINED_DATE" component="date" label="入职日期" />
|
|
28
|
+
<element id="LEAVE_DATE" component="date" label="离职日期" />
|
|
29
|
+
</Fields>
|
|
30
|
+
|
|
31
|
+
<Operations>
|
|
32
|
+
<element id="BTN_ADD" type="button" label="新增组成员" level="primary" actionType="add" icon="plus" size="sm" title="新增组成员" feature="add" />
|
|
33
|
+
<element id="BTN_DEL" type="button" label="删除组成员" level="danger" actionType="del" feature="del" />
|
|
34
|
+
<!-- <element id="BTN_MOD" type="button" label="修改" level="" actionType="edit" title="成员修改" /> -->
|
|
35
|
+
<element id="BTN_BATCHDEL" type="button" label="批量删除" actionType="batch" size="sm" api="delete:/space/team/usergroup" feature="del" />
|
|
36
|
+
<element id="BTN_LEADER" type="button" label="设置负责人" actionType="batch" size="sm" api="post:/space/team/usergroup/api/usergroup/leader" feature="edit" />
|
|
37
|
+
</Operations>
|
|
38
|
+
|
|
39
|
+
<Table rowKey="USER_ID" autoFillHeight="true"
|
|
40
|
+
api="/space/team/usergroup?GROUP_ID=DEV"
|
|
41
|
+
addApi="post:/space/team/usergroup"
|
|
42
|
+
|
|
43
|
+
>
|
|
44
|
+
<DefaultQuery>
|
|
45
|
+
<element id="page" value="1"/>
|
|
46
|
+
<element id="size" value="50"/>
|
|
47
|
+
</DefaultQuery>
|
|
48
|
+
|
|
49
|
+
<TableHead isReset="true" isMode="false" isContrl="false" isFilterPlus="false">
|
|
50
|
+
<filter list="USER_NAME,dynamic"/>
|
|
51
|
+
<action components="BTN_ADD,BTN_BATCHDEL,BTN_LEADER" />
|
|
52
|
+
</TableHead>
|
|
53
|
+
|
|
54
|
+
<TableBody>
|
|
55
|
+
<column id="__check" />
|
|
56
|
+
<column id="USER_NAME" width="90"/>
|
|
57
|
+
<column id="LEADER" width="60" sortable="true" filterable="true"/>
|
|
58
|
+
<column id="DEPT_NO" width="90" sortable="true" filterable="true"/>
|
|
59
|
+
<column id="MOBILE" width="120"/>
|
|
60
|
+
<column id="EMAIL" width="120"/>
|
|
61
|
+
</TableBody>
|
|
62
|
+
|
|
63
|
+
<TableFoot show="true" showPageInput="true" statistics="" placeLeft="statistics" placeRight="pagination,switchPage" switchPage="5, 10, 20, 50, 100" />
|
|
64
|
+
</Table>
|
|
65
|
+
</PageView>
|