xyvcard-wechat-auth 0.0.1 → 0.0.3
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 +1 -1
- package/dist/api/auth/index.js +159 -1
- package/dist/api/auth/types.js +1 -1
- package/dist/api/dict/index.js +36 -1
- package/dist/api/dict/types.js +1 -1
- package/dist/api/dicts.js +53 -1
- package/dist/api/files/index.js +135 -1
- package/dist/api/files/types.js +1 -1
- package/dist/api/index.js +12 -1
- package/dist/api/myorgan/index.js +1 -1
- package/dist/api/myorgan/types.js +1 -1
- package/dist/api/types.d.ts +47 -0
- package/dist/api/types.js +9 -1
- package/dist/components/common/btn/footer-btn/index.js +34 -1
- package/dist/components/common/btn/footer-btn/index.wxml +1 -1
- package/dist/components/common/btn/footer-double-btn/index.js +67 -1
- package/dist/components/common/btn/footer-double-btn/index.wxml +4 -2
- package/dist/components/common/btn/footer-double-btn/index.wxss +1 -0
- package/dist/components/common/choose-avatar/index.js +82 -1
- package/dist/components/common/choose-avatar/index.wxss +1 -1
- package/dist/components/common/none-data/index.js +53 -1
- package/dist/components/common/none-data/index.wxml +2 -2
- package/dist/components/common/none-data/index.wxss +1 -1
- package/dist/components/common/popup/index.js +50 -1
- package/dist/components/common/popup/index.wxml +1 -1
- package/dist/components/common/popup/index.wxss +1 -1
- package/dist/components/common/search/index.d.ts +1 -0
- package/dist/components/common/search/index.js +55 -0
- package/dist/components/common/search/index.json +4 -0
- package/dist/components/common/search/index.wxml +7 -0
- package/dist/components/common/search/index.wxss +1 -0
- package/dist/components/common/top-navigation/index.d.ts +1 -0
- package/dist/components/common/top-navigation/index.js +49 -0
- package/dist/components/common/top-navigation/index.json +4 -0
- package/dist/components/common/top-navigation/index.wxml +6 -0
- package/dist/components/common/top-navigation/index.wxss +1 -0
- package/dist/components/jmash-half-login/index.d.ts +1 -0
- package/dist/components/jmash-half-login/index.js +105 -0
- package/dist/components/jmash-half-login/index.json +8 -0
- package/dist/components/jmash-half-login/index.wxml +46 -0
- package/dist/components/jmash-half-login/index.wxss +1 -0
- package/dist/components/jmash-login/index.d.ts +1 -0
- package/dist/components/jmash-login/index.js +99 -0
- package/dist/components/jmash-login/index.json +4 -0
- package/dist/components/jmash-login/index.wxml +16 -0
- package/dist/components/jmash-login/index.wxss +1 -0
- package/dist/constant.js +15 -1
- package/dist/index.d.ts +11 -2
- package/dist/index.js +25 -1
- package/dist/styles/{global.scss → index.scss} +11 -1
- package/dist/utils/auth.d.ts +3 -2
- package/dist/utils/auth.js +199 -1
- package/dist/utils/common.d.ts +16 -0
- package/dist/utils/common.js +112 -1
- package/dist/utils/config.d.ts +3 -1
- package/dist/utils/config.js +27 -1
- package/dist/utils/db.js +188 -1
- package/dist/utils/request.js +86 -1
- package/dist/utils/util.d.ts +9 -0
- package/dist/utils/util.js +88 -1
- package/package.json +4 -3
- package/xyvcard-wechat-auth-0.0.1.tgz +0 -0
- package/dist/app.d.ts +0 -0
- package/dist/app.js +0 -1
- package/dist/app.json +0 -24
- package/dist/app.wxss +0 -0
- package/dist/pages/index/index.d.ts +0 -0
- package/dist/pages/index/index.js +0 -1
- package/dist/pages/index/index.json +0 -7
- package/dist/pages/index/index.wxml +0 -4
- package/dist/pages/index/index.wxss +0 -0
- package/dist/sitemap.json +0 -7
package/README.md
CHANGED
package/dist/api/auth/index.js
CHANGED
|
@@ -1 +1,159 @@
|
|
|
1
|
-
|
|
1
|
+
import { db } from "../../utils/db.js";
|
|
2
|
+
import { config } from "../../utils/config.js";
|
|
3
|
+
import { sendRequest, request, clearEmpty } from "../../utils/request.js";
|
|
4
|
+
class AuthApiImpl {
|
|
5
|
+
// code 登录
|
|
6
|
+
miniappLogin(data) {
|
|
7
|
+
const header = {
|
|
8
|
+
"content-type": "application/json"
|
|
9
|
+
};
|
|
10
|
+
return sendRequest({
|
|
11
|
+
url: "/v1/front/rbac/miniapp_login/" + config.tenant,
|
|
12
|
+
method: "POST",
|
|
13
|
+
data
|
|
14
|
+
}, header);
|
|
15
|
+
}
|
|
16
|
+
// 手机号注册登录
|
|
17
|
+
miniappPhoneNumber(data) {
|
|
18
|
+
const header = {
|
|
19
|
+
"content-type": "application/json"
|
|
20
|
+
};
|
|
21
|
+
return sendRequest({
|
|
22
|
+
url: "/v1/front/rbac/miniapp_phonenumber/" + config.tenant,
|
|
23
|
+
method: "POST",
|
|
24
|
+
data
|
|
25
|
+
}, header);
|
|
26
|
+
}
|
|
27
|
+
// 刷新token
|
|
28
|
+
refreshToken(data) {
|
|
29
|
+
data.tenant = config.tenant;
|
|
30
|
+
data.clientId = config.appId;
|
|
31
|
+
const header = {
|
|
32
|
+
"content-type": "application/json"
|
|
33
|
+
};
|
|
34
|
+
return sendRequest({
|
|
35
|
+
url: "/v1/front/rbac/auth/refresh_token",
|
|
36
|
+
method: "POST",
|
|
37
|
+
data
|
|
38
|
+
}, header);
|
|
39
|
+
}
|
|
40
|
+
// 登出
|
|
41
|
+
logout(accessToken) {
|
|
42
|
+
return request({
|
|
43
|
+
url: "/v1/rbac/auth/logout?tenant=" + config.tenant + "&client_id=" + config.appId + "&accessToken=" + accessToken,
|
|
44
|
+
method: "DELETE"
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// 获取当前会话用户
|
|
48
|
+
userInfo() {
|
|
49
|
+
return request({
|
|
50
|
+
url: "/v1/rbac/auth/user?tenant=" + config.tenant,
|
|
51
|
+
method: "GET"
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
// 当前用户角色权限
|
|
55
|
+
userRolesPerms() {
|
|
56
|
+
return request({
|
|
57
|
+
url: "/v1/rbac/auth/roles_perms?tenant=" + config.tenant,
|
|
58
|
+
method: "GET"
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// 允许切换身份的用户列表
|
|
62
|
+
allowRunAsUser() {
|
|
63
|
+
return request({
|
|
64
|
+
url: "/v1/rbac/auth/allow_run_as_user?tenant=" + config.tenant,
|
|
65
|
+
method: "GET"
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
// 运行某种身份
|
|
69
|
+
runAsUser(userId) {
|
|
70
|
+
const data = {
|
|
71
|
+
tenant: config.tenant,
|
|
72
|
+
userId
|
|
73
|
+
};
|
|
74
|
+
return request({
|
|
75
|
+
url: "/v1/rbac/auth/run_as",
|
|
76
|
+
method: "POST",
|
|
77
|
+
data
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
// 更新用户
|
|
81
|
+
updateUser(data) {
|
|
82
|
+
return request({
|
|
83
|
+
url: "/v1/rbac/auth/user",
|
|
84
|
+
method: "PATCH",
|
|
85
|
+
data
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
// 修改密码
|
|
89
|
+
updatePwd(encodeOldPwd, encodeNewPwd) {
|
|
90
|
+
const data = {
|
|
91
|
+
tenant: db.getUserTenant(),
|
|
92
|
+
encodeOldPwd,
|
|
93
|
+
encodeNewPwd
|
|
94
|
+
};
|
|
95
|
+
return request({
|
|
96
|
+
url: "/v1/rbac/auth/change_pwd",
|
|
97
|
+
method: "PATCH",
|
|
98
|
+
data
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
// 部门Tree
|
|
102
|
+
deptTree(deptId) {
|
|
103
|
+
const query = {
|
|
104
|
+
tenant: db.getUserTenant(),
|
|
105
|
+
excludeId: deptId
|
|
106
|
+
};
|
|
107
|
+
return request({
|
|
108
|
+
url: "/v1/rbac/dept/treelist",
|
|
109
|
+
method: "GET",
|
|
110
|
+
data: query
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
// 职务Tree
|
|
114
|
+
jobTree() {
|
|
115
|
+
const query = {
|
|
116
|
+
tenant: db.getUserTenant(),
|
|
117
|
+
roleType: "job",
|
|
118
|
+
hasRoleType: true
|
|
119
|
+
};
|
|
120
|
+
return request({
|
|
121
|
+
url: "/v1/rbac/role/treelist",
|
|
122
|
+
method: "GET",
|
|
123
|
+
data: query
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
// 修改个人信息
|
|
127
|
+
updateUserInfo(data) {
|
|
128
|
+
data.tenant = config.tenant;
|
|
129
|
+
clearEmpty(data);
|
|
130
|
+
return request({
|
|
131
|
+
url: "/v1/rbac/auth/user",
|
|
132
|
+
method: "PATCH",
|
|
133
|
+
data
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
// 已登陆状态小程序更换绑定手机号
|
|
137
|
+
replaceBindphone(data) {
|
|
138
|
+
data.tenant = config.tenant;
|
|
139
|
+
clearEmpty(data);
|
|
140
|
+
return request({
|
|
141
|
+
url: "/v1/front/rbac/miniapp_bindphone",
|
|
142
|
+
method: "POST",
|
|
143
|
+
data
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
// 获取当前会话用户的信息
|
|
147
|
+
findUserInfo(data) {
|
|
148
|
+
data.tenant = config.tenant;
|
|
149
|
+
return request({
|
|
150
|
+
url: "/v1/front/rbac/auth/user",
|
|
151
|
+
method: "GET",
|
|
152
|
+
data
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const authApi = new AuthApiImpl();
|
|
157
|
+
export {
|
|
158
|
+
authApi
|
|
159
|
+
};
|
package/dist/api/auth/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
|
package/dist/api/dict/index.js
CHANGED
|
@@ -1 +1,36 @@
|
|
|
1
|
-
|
|
1
|
+
import { config } from "../../utils/config.js";
|
|
2
|
+
import { request } from "../../utils/request.js";
|
|
3
|
+
class DictApiImpl {
|
|
4
|
+
/**
|
|
5
|
+
* 枚举
|
|
6
|
+
* @param data 查询条件
|
|
7
|
+
* @returns 返回Promise<Entry[]>的对象
|
|
8
|
+
*/
|
|
9
|
+
enumApi(module, className, type) {
|
|
10
|
+
const data = { className, type };
|
|
11
|
+
return request({
|
|
12
|
+
url: "/v1/" + module + "/enum/entry",
|
|
13
|
+
method: "GET",
|
|
14
|
+
data
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* 普通字典
|
|
19
|
+
* @param data 查询条件
|
|
20
|
+
* @returns 返回Promise<Entry[]>的对象
|
|
21
|
+
*/
|
|
22
|
+
dictEntryApi(data) {
|
|
23
|
+
if (data) {
|
|
24
|
+
data.hasEnable = data.enable != void 0;
|
|
25
|
+
}
|
|
26
|
+
return request({
|
|
27
|
+
url: "/v1/dict/dict_entry/list/" + config.tenant,
|
|
28
|
+
method: "GET",
|
|
29
|
+
data
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const dictApi = new DictApiImpl();
|
|
34
|
+
export {
|
|
35
|
+
dictApi
|
|
36
|
+
};
|
package/dist/api/dict/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
|
package/dist/api/dicts.js
CHANGED
|
@@ -1 +1,53 @@
|
|
|
1
|
-
|
|
1
|
+
import { dictApi } from "./dict/index.js";
|
|
2
|
+
class EnumDict {
|
|
3
|
+
constructor(module, enumClass, type = 0) {
|
|
4
|
+
this.values = [];
|
|
5
|
+
this.module = module;
|
|
6
|
+
this.enumClass = enumClass;
|
|
7
|
+
this.type = type;
|
|
8
|
+
}
|
|
9
|
+
useEnumValues() {
|
|
10
|
+
return new Promise((resolve) => {
|
|
11
|
+
dictApi.enumApi(this.module, this.enumClass, this.type).then(({ data }) => {
|
|
12
|
+
this.values.length = 0;
|
|
13
|
+
this.values.push(...data.values);
|
|
14
|
+
resolve(this.values);
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
getEnumValue(key) {
|
|
19
|
+
for (const obj of this.values) {
|
|
20
|
+
if (obj.key == key) {
|
|
21
|
+
return obj.value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return "";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
class EntryDict {
|
|
28
|
+
constructor(typeCode, enable = true) {
|
|
29
|
+
this.values = [];
|
|
30
|
+
this.typeCode = typeCode;
|
|
31
|
+
this.enable = enable;
|
|
32
|
+
}
|
|
33
|
+
// 加载数据字典
|
|
34
|
+
useDictValues() {
|
|
35
|
+
return new Promise((resolve) => {
|
|
36
|
+
const req = { typeCode: this.typeCode, enable: this.enable };
|
|
37
|
+
dictApi.dictEntryApi(req).then(({ data }) => {
|
|
38
|
+
this.values.length = 0;
|
|
39
|
+
this.values.push(...data.results);
|
|
40
|
+
resolve(this.values);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//获取字典值
|
|
45
|
+
getDictValue(key) {
|
|
46
|
+
const entry = this.values.find((entrys) => entrys.dictCode === key);
|
|
47
|
+
return (entry == null ? void 0 : entry.dictName) ? entry.dictName : "";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
EntryDict,
|
|
52
|
+
EnumDict
|
|
53
|
+
};
|
package/dist/api/files/index.js
CHANGED
|
@@ -1 +1,135 @@
|
|
|
1
|
-
|
|
1
|
+
import { config } from "../../utils/config.js";
|
|
2
|
+
import { clearEmpty, request } from "../../utils/request.js";
|
|
3
|
+
import { db } from "../../utils/db.js";
|
|
4
|
+
class FileApi {
|
|
5
|
+
baseApiUrl() {
|
|
6
|
+
let currentBaseURL = config.baseUrl;
|
|
7
|
+
if (currentBaseURL.slice(-1) === "/") {
|
|
8
|
+
currentBaseURL = currentBaseURL.slice(0, -1);
|
|
9
|
+
}
|
|
10
|
+
return currentBaseURL;
|
|
11
|
+
}
|
|
12
|
+
// 上传Url
|
|
13
|
+
uploadUrl() {
|
|
14
|
+
return this.baseApiUrl() + "/v1/file/upload?tenant=" + config.tenant;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* url 获取图片Full路径
|
|
18
|
+
* @param type resize 等比例缩放,white 补白,trans 补透明,clip 裁剪
|
|
19
|
+
*/
|
|
20
|
+
imageUrl(imageUrl, width = 0, height = 0, type = "clip") {
|
|
21
|
+
const regular = /^\//;
|
|
22
|
+
if (regular.test(imageUrl)) {
|
|
23
|
+
return this.baseApiUrl() + `/v1/file/image/${type}/${width}/${height}` + imageUrl;
|
|
24
|
+
} else {
|
|
25
|
+
return this.baseApiUrl() + `/v1/file/image/${type}/${width}/${height}/` + imageUrl;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Id 获取图片Full路径
|
|
30
|
+
* @param type resize 等比例缩放,white 补白,trans 补透明,clip 裁剪
|
|
31
|
+
*/
|
|
32
|
+
imageIdUrl(imageId, width = 0, height = 0, type = "clip") {
|
|
33
|
+
return this.baseApiUrl() + "/v1/file/image_id/" + config.tenant + `/${type}/${width}/${height}/` + imageId;
|
|
34
|
+
}
|
|
35
|
+
// url 获取文件Full路径
|
|
36
|
+
fileUrl(fileUrl) {
|
|
37
|
+
return this.baseApiUrl() + "/v1/file/path/" + fileUrl;
|
|
38
|
+
}
|
|
39
|
+
// Id 获取文件Full路径
|
|
40
|
+
fileIdUrl(fileId) {
|
|
41
|
+
return this.baseApiUrl() + "/v1/file/id/" + config.tenant + fileId;
|
|
42
|
+
}
|
|
43
|
+
// 上传文件
|
|
44
|
+
uploadBase64File(base64) {
|
|
45
|
+
base64.tenant = config.tenant;
|
|
46
|
+
clearEmpty(base64);
|
|
47
|
+
return request({
|
|
48
|
+
url: "/v1/file/base64upload",
|
|
49
|
+
method: "POST",
|
|
50
|
+
data: base64
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
// 上传文件
|
|
54
|
+
uploadFile(file) {
|
|
55
|
+
let that = this;
|
|
56
|
+
return new Promise((resolve, reject) => {
|
|
57
|
+
wx.uploadFile({
|
|
58
|
+
url: that.uploadUrl(),
|
|
59
|
+
filePath: file,
|
|
60
|
+
name: "file",
|
|
61
|
+
header: {
|
|
62
|
+
"Content-Type": "multipart/form-data",
|
|
63
|
+
"Authorization": db.getBearerToken()
|
|
64
|
+
},
|
|
65
|
+
success(response) {
|
|
66
|
+
if (response.statusCode === 200) {
|
|
67
|
+
resolve({
|
|
68
|
+
code: response.statusCode,
|
|
69
|
+
message: response.errMsg,
|
|
70
|
+
data: JSON.parse(response.data)
|
|
71
|
+
});
|
|
72
|
+
} else if (response.statusCode === 401) {
|
|
73
|
+
wx.clearStorage();
|
|
74
|
+
} else {
|
|
75
|
+
wx.showToast({
|
|
76
|
+
title: response.errMsg,
|
|
77
|
+
icon: "none",
|
|
78
|
+
duration: 2e3
|
|
79
|
+
});
|
|
80
|
+
resolve({
|
|
81
|
+
code: response.statusCode,
|
|
82
|
+
message: response.errMsg,
|
|
83
|
+
data: JSON.parse(response.data)
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
fail(error) {
|
|
88
|
+
reject(error);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
// 上传文件
|
|
94
|
+
downloadFile(url) {
|
|
95
|
+
return new Promise((resolve, reject) => {
|
|
96
|
+
wx.downloadFile({
|
|
97
|
+
url,
|
|
98
|
+
header: {
|
|
99
|
+
"Authorization": db.getBearerToken()
|
|
100
|
+
},
|
|
101
|
+
success(response) {
|
|
102
|
+
resolve({
|
|
103
|
+
statusCode: response.statusCode,
|
|
104
|
+
tempFilePath: response.tempFilePath,
|
|
105
|
+
filePath: response.tempFilePath
|
|
106
|
+
});
|
|
107
|
+
},
|
|
108
|
+
fail(error) {
|
|
109
|
+
reject(error);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
// 上传文件
|
|
115
|
+
uploadWebFile(data) {
|
|
116
|
+
clearEmpty(data);
|
|
117
|
+
return request({
|
|
118
|
+
url: "/v1/file/webupload",
|
|
119
|
+
method: "POST",
|
|
120
|
+
data
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
// 删除文件
|
|
124
|
+
deleteFile(filePath) {
|
|
125
|
+
return request({
|
|
126
|
+
url: "/api/v1/files",
|
|
127
|
+
method: "DELETE",
|
|
128
|
+
data: { filePath }
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const fileApi = new FileApi();
|
|
133
|
+
export {
|
|
134
|
+
fileApi
|
|
135
|
+
};
|
package/dist/api/files/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
|
package/dist/api/index.js
CHANGED
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import { EnumDict } from "./dicts.js";
|
|
2
|
+
const Constant = require("../constant");
|
|
3
|
+
const _Dict = class _Dict2 {
|
|
4
|
+
};
|
|
5
|
+
_Dict.genderDict = new EnumDict(
|
|
6
|
+
Constant.MODULE_RBAC,
|
|
7
|
+
Constant.ENUM_GENDER
|
|
8
|
+
);
|
|
9
|
+
let Dict = _Dict;
|
|
10
|
+
export {
|
|
11
|
+
Dict
|
|
12
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
|
package/dist/api/types.d.ts
CHANGED
|
@@ -24,3 +24,50 @@ export interface SearchHistoricalModel {
|
|
|
24
24
|
name: string;
|
|
25
25
|
time: Date;
|
|
26
26
|
}
|
|
27
|
+
export interface EventBase {
|
|
28
|
+
changedTouches?: any;
|
|
29
|
+
currentTarget: EventTarget;
|
|
30
|
+
target?: EventTarget;
|
|
31
|
+
type?: string;
|
|
32
|
+
detail?: any;
|
|
33
|
+
touches: any;
|
|
34
|
+
}
|
|
35
|
+
export interface CustomEvent<T> extends EventBase {
|
|
36
|
+
detail: T;
|
|
37
|
+
}
|
|
38
|
+
export interface EventTarget {
|
|
39
|
+
dataset: any;
|
|
40
|
+
id: string | number;
|
|
41
|
+
offsetLeft?: number;
|
|
42
|
+
offsetTop?: number;
|
|
43
|
+
}
|
|
44
|
+
export interface ValidateData {
|
|
45
|
+
validate: boolean;
|
|
46
|
+
message: string;
|
|
47
|
+
}
|
|
48
|
+
export interface EventKeyFn {
|
|
49
|
+
detail?: any;
|
|
50
|
+
target?: EventTarget;
|
|
51
|
+
currentTarget?: currentEvent;
|
|
52
|
+
touches?: any;
|
|
53
|
+
}
|
|
54
|
+
export interface currentEvent {
|
|
55
|
+
dataset: any;
|
|
56
|
+
id: any;
|
|
57
|
+
}
|
|
58
|
+
export interface EventKey extends EventBase {
|
|
59
|
+
detail?: DetailKey;
|
|
60
|
+
mark?: MarkKey;
|
|
61
|
+
}
|
|
62
|
+
export interface MarkKey {
|
|
63
|
+
customData?: string;
|
|
64
|
+
}
|
|
65
|
+
export interface DetailKey {
|
|
66
|
+
value: any;
|
|
67
|
+
cursor: number;
|
|
68
|
+
keyCode?: number;
|
|
69
|
+
index?: number;
|
|
70
|
+
x?: number;
|
|
71
|
+
y?: number;
|
|
72
|
+
scrollTop?: number;
|
|
73
|
+
}
|
package/dist/api/types.js
CHANGED
|
@@ -1 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
var TenantType = /* @__PURE__ */ ((TenantType2) => {
|
|
2
|
+
TenantType2[TenantType2["System"] = 0] = "System";
|
|
3
|
+
TenantType2[TenantType2["User"] = 1] = "User";
|
|
4
|
+
TenantType2[TenantType2["Organ"] = 2] = "Organ";
|
|
5
|
+
return TenantType2;
|
|
6
|
+
})(TenantType || {});
|
|
7
|
+
export {
|
|
8
|
+
TenantType
|
|
9
|
+
};
|
|
@@ -1 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
Component({
|
|
2
|
+
/**
|
|
3
|
+
* 组件的属性列表
|
|
4
|
+
*/
|
|
5
|
+
properties: {
|
|
6
|
+
// 文本
|
|
7
|
+
text: {
|
|
8
|
+
type: String,
|
|
9
|
+
value: ""
|
|
10
|
+
},
|
|
11
|
+
// 禁用
|
|
12
|
+
disabled: {
|
|
13
|
+
type: Boolean,
|
|
14
|
+
value: false
|
|
15
|
+
},
|
|
16
|
+
// 按钮的样式(包括字体颜色,背景色等)
|
|
17
|
+
buttonStyle: {
|
|
18
|
+
type: String,
|
|
19
|
+
value: "background-color: #2563EB;color: #fff;"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
/**
|
|
23
|
+
* 组件的初始数据
|
|
24
|
+
*/
|
|
25
|
+
data: {},
|
|
26
|
+
/**
|
|
27
|
+
* 组件的方法列表
|
|
28
|
+
*/
|
|
29
|
+
methods: {
|
|
30
|
+
onClick() {
|
|
31
|
+
this.triggerEvent("click", null, {});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
@@ -1 +1,67 @@
|
|
|
1
|
-
|
|
1
|
+
Component({
|
|
2
|
+
/**
|
|
3
|
+
* 组件的属性列表
|
|
4
|
+
*/
|
|
5
|
+
properties: {
|
|
6
|
+
// 左侧的文本内容
|
|
7
|
+
leftText: {
|
|
8
|
+
type: String,
|
|
9
|
+
value: ""
|
|
10
|
+
},
|
|
11
|
+
// 右侧的文本内容
|
|
12
|
+
rightText: {
|
|
13
|
+
type: String,
|
|
14
|
+
value: ""
|
|
15
|
+
},
|
|
16
|
+
// 左侧按钮背景色
|
|
17
|
+
leftBgColor: {
|
|
18
|
+
type: String,
|
|
19
|
+
value: ""
|
|
20
|
+
},
|
|
21
|
+
// 右侧按钮背景色
|
|
22
|
+
rightBgColor: {
|
|
23
|
+
type: String,
|
|
24
|
+
value: ""
|
|
25
|
+
},
|
|
26
|
+
// 左侧按钮字体颜色
|
|
27
|
+
leftColor: {
|
|
28
|
+
type: String,
|
|
29
|
+
value: ""
|
|
30
|
+
},
|
|
31
|
+
// 右侧按钮字体颜色
|
|
32
|
+
rightColor: {
|
|
33
|
+
type: String,
|
|
34
|
+
value: ""
|
|
35
|
+
},
|
|
36
|
+
// 按钮圆角
|
|
37
|
+
btnRadius: {
|
|
38
|
+
type: String,
|
|
39
|
+
value: ""
|
|
40
|
+
},
|
|
41
|
+
// 左侧按钮边框
|
|
42
|
+
leftBorder: {
|
|
43
|
+
type: String,
|
|
44
|
+
value: ""
|
|
45
|
+
},
|
|
46
|
+
// 右侧按钮边框
|
|
47
|
+
rightBorder: {
|
|
48
|
+
type: String,
|
|
49
|
+
value: ""
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
/**
|
|
53
|
+
* 组件的初始数据
|
|
54
|
+
*/
|
|
55
|
+
data: {},
|
|
56
|
+
/**
|
|
57
|
+
* 组件的方法列表
|
|
58
|
+
*/
|
|
59
|
+
methods: {
|
|
60
|
+
handleLeft() {
|
|
61
|
+
this.triggerEvent("leftbtn");
|
|
62
|
+
},
|
|
63
|
+
handleRight() {
|
|
64
|
+
this.triggerEvent("rightbtn");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
<
|
|
1
|
+
<view class="btn-box">
|
|
2
|
+
<button class="btn-left" style="background-color: {{ leftBgColor }}; color: {{ leftColor }}; border-radius: {{ btnRadius }}; border: {{ leftBorder }};" bind:tap="handleLeft">{{ leftText }}</button>
|
|
3
|
+
<button class="btn-right" style="background-color: {{ rightBgColor }}; color: {{ rightColor }}; border-radius: {{ btnRadius }}; border: {{ rightBorder }};" bind:tap="handleRight">{{ rightText }}</button>
|
|
4
|
+
</view>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.btn-box{display:flex;align-items:center;justify-content:space-between;width:100%}.btn-box .btn-left{width:33%;margin-right:3%;height:48px;font-size:16px;line-height:48px}.btn-box .btn-right{height:48px;font-size:16px;width:64%;line-height:48px}
|