tplus-portaltouch 3.27.5 → 3.28.4
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/dist/api/ModifyPassApi.js.map +1 -1
- package/dist/components/dutyandsettle/dutysettlebill.js +49 -139
- package/dist/components/dutyandsettle/dutysettlebill.js.map +1 -1
- package/dist/components/dutyandsettle/dutysettlehistory.js +16 -44
- package/dist/components/dutyandsettle/dutysettlehistory.js.map +1 -1
- package/dist/components/dutyandsettle/index.js.map +1 -1
- package/dist/components/dutyandsettle/tipContent.js.map +1 -1
- package/dist/components/header/customUse.js.map +1 -1
- package/dist/components/header/headContent.js.map +1 -1
- package/dist/components/header/index.js +13 -13
- package/dist/components/header/index.js.map +1 -1
- package/dist/components/header/offlinePointDesc.js.map +1 -1
- package/dist/components/header/style.less +456 -456
- package/dist/components/header/themeModal.js +31 -2
- package/dist/components/header/themeModal.js.map +1 -1
- package/dist/components/header/uploadList.js +6 -6
- package/dist/components/header/uploadList.js.map +1 -1
- package/dist/components/header/vertical-touch.js.map +1 -1
- package/dist/components/header/vertical-touch.less +228 -228
- package/dist/containers/Main/index.js.map +1 -1
- package/dist/dutyService/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleWare/index.js.map +1 -1
- package/dist/modalRouter/StaticRouter.js.map +1 -1
- package/dist/modalRouter/index.js +8 -8
- package/dist/modalRouter/index.js.map +1 -1
- package/dist/pages/Modal/index.js.map +1 -1
- package/dist/pages/Modal/style.less +5 -5
- package/dist/pages/Portalbc/data.js +6 -76
- package/dist/pages/Portalbc/data.js.map +1 -1
- package/dist/pages/Portalbc/horizontalPadPortal.js.map +1 -1
- package/dist/pages/Portalbc/horizontalSunMiPortal.js.map +1 -1
- package/dist/pages/Portalbc/index.js +6 -6
- package/dist/pages/Portalbc/index.js.map +1 -1
- package/dist/pages/Portalbc/index.less +812 -821
- package/dist/pages/Portalbc/onframe.js.map +1 -1
- package/dist/pages/Portalbc/verticalPortal.js.map +1 -1
- package/dist/pages/dutyandsettle/AuthProcess.js.map +1 -1
- package/dist/pages/dutyandsettle/index.js.map +1 -1
- package/dist/pages/dutyandsettle/index.less +529 -529
- package/dist/pages/dutyandsettle/offDuty.js +56 -83
- package/dist/pages/dutyandsettle/offDuty.js.map +1 -1
- package/dist/pages/dutyandsettle/onDialy.js.map +1 -1
- package/dist/pages/dutyandsettle/onDuty.js.map +1 -1
- package/dist/pages/dutyandsettle/onUnDaily.js.map +1 -1
- package/dist/pages/dutyandsettle/settleDialy.js.map +1 -1
- package/dist/pages/index.js.map +1 -1
- package/dist/pages/modifyPass/index.js.map +1 -1
- package/dist/pages/modifyPass/style.less +71 -71
- package/dist/pages/notFound/index.js.map +1 -1
- package/dist/pages/notFound/style.less +17 -17
- package/dist/stores/ModalRouter.js.map +1 -1
- package/dist/stores/ModifyPassStore.js.map +1 -1
- package/dist/stores/PortalStore.js +5 -5
- package/dist/stores/PortalStore.js.map +1 -1
- package/dist/stores/PosLoginStore.js.map +1 -1
- package/dist/stores/billHistoryStore.js.map +1 -1
- package/dist/stores/dutySettleStore.js.map +1 -1
- package/dist/stores/index.js.map +1 -1
- package/dist/utils/PrintProcess.js +10 -10
- package/dist/utils/PrintProcess.js.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/networkCheck.js.map +1 -1
- package/package.json +37 -37
- package/tsconfig.json +14 -14
|
@@ -1,229 +1,229 @@
|
|
|
1
|
-
.vertical-touch-platform {
|
|
2
|
-
.pos-header {
|
|
3
|
-
height: 120px;
|
|
4
|
-
|
|
5
|
-
&.isPortal-head {
|
|
6
|
-
.head-content-right {
|
|
7
|
-
span {
|
|
8
|
-
color: #fff;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.head-content-right {
|
|
15
|
-
span {
|
|
16
|
-
height : 100%;
|
|
17
|
-
display : block;
|
|
18
|
-
line-height: 120px;
|
|
19
|
-
font-size : 22px;
|
|
20
|
-
width : 130px;
|
|
21
|
-
float : right;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
&>div {
|
|
25
|
-
float: right;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.member-name {
|
|
29
|
-
font-size : 28px;
|
|
30
|
-
color : #333333;
|
|
31
|
-
height: 120px;
|
|
32
|
-
line-height: 120px;
|
|
33
|
-
position: relative;
|
|
34
|
-
right: 20px;
|
|
35
|
-
padding-left: 20px;
|
|
36
|
-
|
|
37
|
-
.header-triangle-down {
|
|
38
|
-
top: 50%;
|
|
39
|
-
border-width: 10px 8px 0px 8px;
|
|
40
|
-
right: -16px;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.memberWord {
|
|
44
|
-
font-size : 28px;
|
|
45
|
-
padding-left: 12px;
|
|
46
|
-
padding-right: 5px;
|
|
47
|
-
width : auto;
|
|
48
|
-
max-width: 200px;
|
|
49
|
-
overflow: hidden;
|
|
50
|
-
white-space: nowrap;
|
|
51
|
-
text-overflow: ellipsis;
|
|
52
|
-
text-align: right;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.head-content-left {
|
|
58
|
-
.business-logo {
|
|
59
|
-
padding-left: 30px;
|
|
60
|
-
|
|
61
|
-
&>img.example-logo {
|
|
62
|
-
margin: 0px;
|
|
63
|
-
height: 48px;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.pos-code {
|
|
68
|
-
float : left;
|
|
69
|
-
font-size : 24px;
|
|
70
|
-
color : #333333;
|
|
71
|
-
height : 100%;
|
|
72
|
-
line-height: 120px;
|
|
73
|
-
margin-left: 10px;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
.theme-icon{
|
|
78
|
-
float: right;
|
|
79
|
-
height: 100%;
|
|
80
|
-
width: 50px;
|
|
81
|
-
text-align: center;
|
|
82
|
-
padding-top: 28px;
|
|
83
|
-
font-size: 26px;
|
|
84
|
-
color: #fff;
|
|
85
|
-
&.pos-page{
|
|
86
|
-
color: #666;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.isPortal-layout {
|
|
91
|
-
.pos-code {
|
|
92
|
-
color: #fff !important;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.head-content-control {
|
|
97
|
-
padding-top: 28px;
|
|
98
|
-
|
|
99
|
-
.iconfont {
|
|
100
|
-
font-size: 34px;
|
|
101
|
-
padding : 0 15px;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.portal-content {
|
|
106
|
-
.portal-center-content {
|
|
107
|
-
transform: translate3d(0, 50%, 0);
|
|
108
|
-
top : 20%;
|
|
109
|
-
|
|
110
|
-
&>div {
|
|
111
|
-
display: inline-block;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
width: 840px;
|
|
115
|
-
|
|
116
|
-
.worktop-item {
|
|
117
|
-
border-radius: 20px;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.worktop-container-left {
|
|
121
|
-
width : 540px;
|
|
122
|
-
margin-right: 30px;
|
|
123
|
-
|
|
124
|
-
.worktop-item-cashier {
|
|
125
|
-
height: 360px;
|
|
126
|
-
|
|
127
|
-
h1 {
|
|
128
|
-
font-size: 76px;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
.iconfont {
|
|
132
|
-
font-size : 140px;
|
|
133
|
-
width : 140px;
|
|
134
|
-
height : 140px;
|
|
135
|
-
margin-left: -62px;
|
|
136
|
-
margin-top : -20px;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
.worktop-container-right {
|
|
142
|
-
width: 270px;
|
|
143
|
-
|
|
144
|
-
.worktop-item-hardware {
|
|
145
|
-
height : 360px;
|
|
146
|
-
padding : 28px;
|
|
147
|
-
|
|
148
|
-
h1 {
|
|
149
|
-
font-size: 34px;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
.iconfont {
|
|
153
|
-
font-size: 82px;
|
|
154
|
-
bottom : 70px;
|
|
155
|
-
right : 30px;
|
|
156
|
-
width : 80px;
|
|
157
|
-
height : 80px;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
.router-change-confirm {
|
|
166
|
-
.ant-modal-confirm-btns{
|
|
167
|
-
display: none;
|
|
168
|
-
}
|
|
169
|
-
.ant-modal-body {
|
|
170
|
-
.ant-modal-confirm-content {
|
|
171
|
-
.content1 {
|
|
172
|
-
padding: 60px 10px 10px 10px !important;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
.inputs-content {
|
|
176
|
-
.tplus-input-container {
|
|
177
|
-
&:first-child {
|
|
178
|
-
margin-bottom: 30px;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
input::-webkit-input-placeholder{
|
|
184
|
-
font-size: 26px;
|
|
185
|
-
}
|
|
186
|
-
.ant-btn{
|
|
187
|
-
height: auto;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
.verticalTouchDropdownClass {
|
|
193
|
-
z-index: 99999999;
|
|
194
|
-
border-top-left-radius: 10px;
|
|
195
|
-
border-bottom-left-radius: 10px;
|
|
196
|
-
&.ant-dropdown{
|
|
197
|
-
.ant-dropdown-menu {
|
|
198
|
-
width : 174px;
|
|
199
|
-
margin : 5px 0 0;
|
|
200
|
-
padding: 0;
|
|
201
|
-
background-color: rgba(0, 0, 0, 0.65) !important;
|
|
202
|
-
|
|
203
|
-
.ant-dropdown-menu-item {
|
|
204
|
-
padding: 24px 12px;
|
|
205
|
-
i {
|
|
206
|
-
font-size : 25px;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
i,
|
|
210
|
-
span {
|
|
211
|
-
color: #fff;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
span {
|
|
215
|
-
font-size : 24px;
|
|
216
|
-
margin-left: 16px;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
&.ant-dropdown-menu-item-selected {
|
|
220
|
-
background-color: rgba(0, 0, 0, .3);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
.ant-dropdown-menu-item-active {
|
|
225
|
-
background-color: rgba(0, 0, 0, .3);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
1
|
+
.vertical-touch-platform {
|
|
2
|
+
.pos-header {
|
|
3
|
+
height: 120px;
|
|
4
|
+
|
|
5
|
+
&.isPortal-head {
|
|
6
|
+
.head-content-right {
|
|
7
|
+
span {
|
|
8
|
+
color: #fff;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.head-content-right {
|
|
15
|
+
span {
|
|
16
|
+
height : 100%;
|
|
17
|
+
display : block;
|
|
18
|
+
line-height: 120px;
|
|
19
|
+
font-size : 22px;
|
|
20
|
+
width : 130px;
|
|
21
|
+
float : right;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&>div {
|
|
25
|
+
float: right;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.member-name {
|
|
29
|
+
font-size : 28px;
|
|
30
|
+
color : #333333;
|
|
31
|
+
height: 120px;
|
|
32
|
+
line-height: 120px;
|
|
33
|
+
position: relative;
|
|
34
|
+
right: 20px;
|
|
35
|
+
padding-left: 20px;
|
|
36
|
+
|
|
37
|
+
.header-triangle-down {
|
|
38
|
+
top: 50%;
|
|
39
|
+
border-width: 10px 8px 0px 8px;
|
|
40
|
+
right: -16px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.memberWord {
|
|
44
|
+
font-size : 28px;
|
|
45
|
+
padding-left: 12px;
|
|
46
|
+
padding-right: 5px;
|
|
47
|
+
width : auto;
|
|
48
|
+
max-width: 200px;
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
white-space: nowrap;
|
|
51
|
+
text-overflow: ellipsis;
|
|
52
|
+
text-align: right;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.head-content-left {
|
|
58
|
+
.business-logo {
|
|
59
|
+
padding-left: 30px;
|
|
60
|
+
|
|
61
|
+
&>img.example-logo {
|
|
62
|
+
margin: 0px;
|
|
63
|
+
height: 48px;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.pos-code {
|
|
68
|
+
float : left;
|
|
69
|
+
font-size : 24px;
|
|
70
|
+
color : #333333;
|
|
71
|
+
height : 100%;
|
|
72
|
+
line-height: 120px;
|
|
73
|
+
margin-left: 10px;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.theme-icon{
|
|
78
|
+
float: right;
|
|
79
|
+
height: 100%;
|
|
80
|
+
width: 50px;
|
|
81
|
+
text-align: center;
|
|
82
|
+
padding-top: 28px;
|
|
83
|
+
font-size: 26px;
|
|
84
|
+
color: #fff;
|
|
85
|
+
&.pos-page{
|
|
86
|
+
color: #666;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.isPortal-layout {
|
|
91
|
+
.pos-code {
|
|
92
|
+
color: #fff !important;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.head-content-control {
|
|
97
|
+
padding-top: 28px;
|
|
98
|
+
|
|
99
|
+
.iconfont {
|
|
100
|
+
font-size: 34px;
|
|
101
|
+
padding : 0 15px;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.portal-content {
|
|
106
|
+
.portal-center-content {
|
|
107
|
+
transform: translate3d(0, 50%, 0);
|
|
108
|
+
top : 20%;
|
|
109
|
+
|
|
110
|
+
&>div {
|
|
111
|
+
display: inline-block;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
width: 840px;
|
|
115
|
+
|
|
116
|
+
.worktop-item {
|
|
117
|
+
border-radius: 20px;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.worktop-container-left {
|
|
121
|
+
width : 540px;
|
|
122
|
+
margin-right: 30px;
|
|
123
|
+
|
|
124
|
+
.worktop-item-cashier {
|
|
125
|
+
height: 360px;
|
|
126
|
+
|
|
127
|
+
h1 {
|
|
128
|
+
font-size: 76px;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.iconfont {
|
|
132
|
+
font-size : 140px;
|
|
133
|
+
width : 140px;
|
|
134
|
+
height : 140px;
|
|
135
|
+
margin-left: -62px;
|
|
136
|
+
margin-top : -20px;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.worktop-container-right {
|
|
142
|
+
width: 270px;
|
|
143
|
+
|
|
144
|
+
.worktop-item-hardware {
|
|
145
|
+
height : 360px;
|
|
146
|
+
padding : 28px;
|
|
147
|
+
|
|
148
|
+
h1 {
|
|
149
|
+
font-size: 34px;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.iconfont {
|
|
153
|
+
font-size: 82px;
|
|
154
|
+
bottom : 70px;
|
|
155
|
+
right : 30px;
|
|
156
|
+
width : 80px;
|
|
157
|
+
height : 80px;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.router-change-confirm {
|
|
166
|
+
.ant-modal-confirm-btns{
|
|
167
|
+
display: none;
|
|
168
|
+
}
|
|
169
|
+
.ant-modal-body {
|
|
170
|
+
.ant-modal-confirm-content {
|
|
171
|
+
.content1 {
|
|
172
|
+
padding: 60px 10px 10px 10px !important;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.inputs-content {
|
|
176
|
+
.tplus-input-container {
|
|
177
|
+
&:first-child {
|
|
178
|
+
margin-bottom: 30px;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
input::-webkit-input-placeholder{
|
|
184
|
+
font-size: 26px;
|
|
185
|
+
}
|
|
186
|
+
.ant-btn{
|
|
187
|
+
height: auto;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.verticalTouchDropdownClass {
|
|
193
|
+
z-index: 99999999;
|
|
194
|
+
border-top-left-radius: 10px;
|
|
195
|
+
border-bottom-left-radius: 10px;
|
|
196
|
+
&.ant-dropdown{
|
|
197
|
+
.ant-dropdown-menu {
|
|
198
|
+
width : 174px;
|
|
199
|
+
margin : 5px 0 0;
|
|
200
|
+
padding: 0;
|
|
201
|
+
background-color: rgba(0, 0, 0, 0.65) !important;
|
|
202
|
+
|
|
203
|
+
.ant-dropdown-menu-item {
|
|
204
|
+
padding: 24px 12px;
|
|
205
|
+
i {
|
|
206
|
+
font-size : 25px;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
i,
|
|
210
|
+
span {
|
|
211
|
+
color: #fff;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
span {
|
|
215
|
+
font-size : 24px;
|
|
216
|
+
margin-left: 16px;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
&.ant-dropdown-menu-item-selected {
|
|
220
|
+
background-color: rgba(0, 0, 0, .3);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.ant-dropdown-menu-item-active {
|
|
225
|
+
background-color: rgba(0, 0, 0, .3);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
229
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["tplus-portaltouch/containers/Main/index.js"],"names":["Main","hasElectron","env","platform","constant","electron","window","rx$","MainContainer","observer","props","currentFocus","initWebFrameZoom","webFrame","value","localStore","get","setZoomFactor","parseFloat","doDeeplinkingUrl","ipcRenderer","on","event","ret","params","console","log","stores","user","orgId","userId","param","split","reduce","accumulator","current","key","cloudUserId","User","logout","changeLogoSubject","subject","Subject","changeLogo","subscribe","next","v","setLogo","changeHsySubject","changeHsy","setHsy","addHotKeyChangeLister","document","addEventListener","registerHotKey","removeHotKeyChangeLister","removeEventListener","back","fn","setState","hsy_s","hsy_f","store","logoUrl","logo","logoNode","url","isPortal","isLogin","state","isVerticalTouch","isNewRetailBCPos","bcParams","theme","portalStore","themeStore","defualtImage","hotKeyInjectOrEject","type","hotKeyAction","registerKeys","allKeys","hotKey","hotKeyConfig","forEach","keyboard","index","nativeMs","onIpcRendererGlobalShortcut","hotKeyActionHandle","blurButton","target","nodeName","blur","isSetHotKey","hotKeyCreate","observerCallback","observerDom","pressed","clickBefore","activeElement","filter","srcElement","tagName","className","indexOf","undefined","attributes","childList","subtree","attributeFilter","register","operationKeys","esc","enter","visibleModal","modals","querySelectorAll","modal","display","style","visibleDrawer","drawers","drawer","$","clearFocus","setFocus","getFocusId","querySelector","find","handle","toggleKeyCode","message","bind","keys","i","unbind","Message","info","action","handleInfoRender","solt","onCollapse","collapsed","menuOnClick","selectedKeys","handleClose","Keyboard","close","handleOk","count","modifyPassStore","modifyPassWord","headMenuSelect","footer","text","closable","length","map","btn","loading","modalRouter","hide","offlineSys","shouldInOffline","show","title","width","modalType","onHide","destroyOnClose","history","push","portalStores","posLoginStore","savePosCode","isAutoTest","location","search","isShowFourTab","screen","isHorizontalPad","storeUtil","isHorizontalSunMi","isHorizontalSunMi_FuPing","isMobileEnvironment","infoRender","headHook","addClass","id","removeClass","currentId","actionHook","actionFrom","actionChange","body","classList","add","ModalWraper","confirm","content","cancelable","onOk","onCancel","unsubscribe","portalHead","loginHead","retailOrder","pathname","storeInfo","options","isRetailOrder","headProps","businessName","storeName","dateFormat","menu","icon","onClick","orgName","posCode","posIsLogin","hideAll","classNames","layoutClassName","join","height","match","isExact","routes","Component","childContextTypes","PropTypes","func","object","React","cloneElement"],"mappings":"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","file":"index.js","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { Button } from 'antd';\nimport { history, Switch, stores, env, nativeMs, localStore } from 'mutants-microfx';\nimport { Ticon, Layout, Keyboard, ModalWraper, Message, hotKey } from 'tplus-components-touch';\nimport { platform, localStore as storeUtil } from 'mutants-util';\nimport { User } from 'tplus-api';\nimport { Subject } from 'rxjs';\nimport { Redirect } from 'react-router';\nimport Header from '../../components/header';\nimport PortalPageBC from '../../pages/Portalbc';\nimport portalStores from '../../stores';\nimport { closeWebPage, getQueryString, operationKeys } from '../../utils/index';\n\nconst hasElectron = (env.platform === env.constant.platform.electron);\nwindow.rx$ = {};\n\n@observer\nclass MainContainer extends Component {\n currentFocus = null;\n constructor(props) {\n super(props);\n this.hasElectron = hasElectron;\n this.state = {\n hsy_s: false,\n hsy_f: null\n };\n portalStores.posLoginStore.savePosCode();\n this.electron = nativeMs && nativeMs.get('electron');\n this.isAutoTest = getQueryString(location.search, 'at');\n this.isShowFourTab = this.hasElectron && window.screen.width < 1024 ? true : false;\n //针对800*600分辨率下,页面显示不全的做一下处理。\n if (this.isShowFourTab == true) this.initWebFrameZoom();\n\n const isHorizontalPad = storeUtil.get('isHorizontalPad')// 是否在PAD\n const isHorizontalSunMi = storeUtil.get('isHorizontalSunMi'); //是否在商米(SunMi)\n const isHorizontalSunMi_FuPing = storeUtil.get('isHorizontalSunMi_FuPing'); //是否在商米(SunMi)\n\n this.isHorizontalSunMi_FuPing = !!isHorizontalSunMi_FuPing;\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi || !!isHorizontalSunMi_FuPing;\n }\n static childContextTypes = {\n infoRender: PropTypes.func,\n headHook: PropTypes.object,\n actionHook: PropTypes.object,\n }\n\n initWebFrameZoom = () => {\n let webFrame = this.electron ? this.electron.webFrame : null;\n let value = localStore.get('webFrameZoomValue') || '0.7';\n if (webFrame) webFrame.setZoomFactor(parseFloat(value));\n }\n getChildContext() {\n return {\n infoRender: this.handleInfoRender,\n headHook: {\n addClass: (id, key) => {\n this.setState(state => ({\n [key]: [...(state[key] || []), id],\n }));\n },\n removeClass: (id, key) => {\n this.setState(state => ({\n [key]: state[key].filter(currentId => currentId !== id),\n }));\n }\n },\n actionHook: {\n actionFrom: this.actionFrom,\n actionChange: (value) => {\n this.actionFrom = value;\n }\n },\n };\n }\n\n // 内置默认\n // keys = ['esc', 'enter', 'ctrl+f1', ...Object.keys(hotKey.hotKeyConfig)];\n\n // 解决从url地址唤醒exe,不同账号的处理问题。\n doDeeplinkingUrl = () => {\n if (this.hasElectron === false) return;\n let { ipcRenderer } = this.electron || {ipcRenderer:null};\n ipcRenderer && ipcRenderer.on(\"asynchronous-deeplinkingUrl\", (event, ret, params) => {\n if (ret) {\n console.log('deeplinkingUrl:' + ret)\n const {orgId, userId} = stores.user || {};\n if (!orgId || !userId) return;\n const param = ret.split('&').reduce((accumulator, current) => {\n if (!current) return accumulator;\n const [key, value] = current.split('=') || [];\n accumulator[key] = value;\n return accumulator;\n }, {});\n console.log(orgId, userId, param)\n if (param.orgId !== orgId || param.cloudUserId !== userId) {\n User.logout();\n }\n }\n })\n }\n\n componentWillMount() {\n this.changeLogoSubject();\n this.changeHsySubject();\n const { isVerticalTouch } = platform || {};\n if (isVerticalTouch === true) {\n document.body.classList.add('vertical-touch-platform');\n }\n }\n\n changeLogoSubject = () => {\n const subject = new Subject();\n rx$.changeLogo = subject;\n\n subject\n .subscribe({\n next: (v) => this.setLogo(v)\n });\n }\n\n changeHsySubject = () => {\n const subject = new Subject();\n rx$.changeHsy = subject;\n\n subject\n .subscribe({\n next: (v) => this.setHsy(v)\n });\n }\n\n componentDidMount() {\n this.registerHotKey();\n this.addHotKeyChangeLister();\n rx$.changeLogo.next();\n document.body.addEventListener('focus', this.blurButton, true)\n this.doDeeplinkingUrl();\n\n if (this.hasElectron === true) {\n document.body.classList.add('electron-env');\n } else {\n if (this.isAutoTest || this.isMobileEnvironment) return; //自动化测试不弹窗\n ModalWraper.confirm({\n className: 'tplus-confirm-modal',\n title: \"温馨提示\",\n content: '智+新零售POS端不允许浏览器直接访问,请从智+产品中下载安装客户端程序使用!',\n cancelable:false,\n onOk() {\n closeWebPage();\n },\n onCancel(){\n closeWebPage();\n }\n });\n }\n }\n addHotKeyChangeLister = () => {\n document.addEventListener(\"RESET_USER_STORE\",this.registerHotKey);\n }\n removeHotKeyChangeLister = () => {\n document.removeEventListener(\"RESET_USER_STORE\",this.registerHotKey);\n }\n\n componentWillUnmount() {\n rx$.changeLogo.unsubscribe();\n rx$.changeHsy.unsubscribe();\n document.body.removeEventListener('focus', this.blurButton, true)\n // clearInterval(this.addObserverDomTimer);\n }\n\n setHsy = (v) => {\n const { back, fn } = v || {};\n if (back === true) {\n this.setState({ hsy_s: true, hsy_f: fn })\n } else {\n this.setState({ hsy_s: false, hsy_f: null })\n }\n }\n\n setLogo = (v) => {\n const store = localStore.get('StoreKey') || {};\n const { logo: logoUrl } = store;\n logoUrl && this.setState({ logoUrl });\n }\n\n logoNode = (url, isPortal, isLogin) => {\n const { hsy_s, hsy_f } = this.state;\n const { isVerticalTouch, isNewRetailBCPos } = platform || {};\n const bcParams = isNewRetailBCPos ? '-bc' : '';\n const theme = stores.portalStore.themeStore;\n const defualtImage = (isVerticalTouch === true) ? `https://newretail.static.chanjet.com/tinified/logo${bcParams}.png` : `https://newretail.static.chanjet.com/${((!hsy_s && isPortal) || (theme === 'dark' && !isLogin)) ? 'protal-chanjet' : 'chanjet'}-logo${bcParams}.png?v=1`;\n if (hsy_s === true) {\n return (<div className='business-logo-container'>\n <Ticon type='zhiPOS-fanhuishouye2' className='back_i' onClick={() => { hsy_f && hsy_f() }} />\n <img src={url || defualtImage} className=\"example-logo\" />\n </div>);\n }\n return <img src={url || defualtImage} className=\"example-logo\" />\n }\n\n //未使用?\n hotKeyInjectOrEject = (type, hotKeyAction) => {\n const registerKeys = ['esc', 'enter'];\n const allKeys = [...registerKeys, ...Object.keys(hotKey.hotKeyConfig)];\n allKeys.forEach((keyboard, index) => {\n nativeMs.onIpcRendererGlobalShortcut({ type, keyboard }, hotKeyActionHandle);\n });\n }\n\n blurButton = ({ target }) => { // 焦点为 button 时 移除焦点,防止触发 bee 组件enter快捷键\n if (target && target.nodeName === 'BUTTON') {\n target.blur();\n }\n }\n\n registerHotKey = () => {\n this.isSetHotKey = true;\n\n this.hotKeyCreate = hotKey({\n observerCallback: this.observerDom,\n log: true,\n pressed: this.hotKeyAction,\n clickBefore: () => {\n const { activeElement } = document;\n activeElement && activeElement.blur();\n },\n filter: event => {\n const { tagName, className } = event.target || event.srcElement || {};\n\n return !(event.key === 'Enter' && tagName === 'INPUT' && !~className.indexOf('hot-key-not-filter'));\n }\n });\n\n this.hotKeyCreate.observer(undefined, { attributes: true, childList: true, subtree: true ,attributeFilter: ['class', 'style'], });\n this.hotKeyCreate.register('esc')('.hot-key-focus-container')(operationKeys.esc);\n this.hotKeyCreate.register('enter')('.hot-key-focus-container')(operationKeys.enter);\n }\n\n observerDom = () => {\n let visibleModal;\n const modals = document.querySelectorAll('.ant-modal-wrap'); //ant-module\n for(let modal of modals) {\n const display = modal.style.display;\n if(display != \"none\"){\n visibleModal = modal\n }\n }\n\n let visibleDrawer;\n const drawers = document.querySelectorAll('.ant-drawer-open'); //ant-drawer\n for(let drawer of drawers) {\n visibleDrawer = drawer;\n break;\n }\n\n if (visibleModal) {\n if(this.currentFocus !== visibleModal){\n $.clearFocus();\n this.currentFocus = visibleModal\n return $.setFocus(visibleModal);\n }\n return;\n }\n\n if (visibleDrawer) {\n if(this.currentFocus !== visibleDrawer){\n $.clearFocus();\n this.currentFocus = visibleDrawer;\n return $.setFocus(visibleDrawer);\n }\n return;\n }\n\n\n if ($.getFocusId() !== '1') {\n if(this.currentFocus !== 'App' || !document.querySelector(\".hot-key-focus-container\")){\n $.clearFocus();\n this.currentFocus = 'App';\n $.find('.app', true).setFocus();\n }\n return;\n }\n }\n\n hotKeyAction = (event, handle) => {\n const { key } = handle || {};\n const toggleKeyCode = 'ctrl+f1';\n if (key === toggleKeyCode) {\n const isSetHotKey = this.isSetHotKey = !this.isSetHotKey;\n const message = isSetHotKey ? '设置' : '取消';\n if (isSetHotKey) {\n $.bind(this.keys.filter(i => i !== toggleKeyCode), this.hotKeyAction);\n } else {\n $.unbind(this.keys.filter(i => i !== toggleKeyCode));\n }\n return Message.info(`已${message}快捷键`);\n }\n\n $.action(key);\n }\n\n handleInfoRender = (solt) => {\n this.setState({solt})\n }\n onCollapse = () => {\n const {collapsed} = this.state;\n this.setState({collapsed: !collapsed});\n }\n menuOnClick = ({key}) => {\n console.log(key)\n this.setState({selectedKeys: key});\n }\n\n handleClose = () => {\n Keyboard.close();\n }\n\n handleOk = (type, count) => {\n stores.modifyPassStore.modifyPassWord();\n }\n\n headMenuSelect = ({key}) => {\n var footer = [\n {text: '取消', className: 'modifypass-cancal-button', closable: true, action: this.handleClose},\n {text: '确定', className: 'modifypass-ok-button', action: this.handleOk, type: 'primary'}\n ];\n footer = !!footer.length && <div>\n {footer.map((btn, i) =>\n <Button\n className={btn.className || ''}\n key={i}\n type={btn.type}\n loading={btn.loading}\n onClick={() => {\n const {action} = btn || {};\n if (typeof action === 'function') action();\n if (btn.closable) {\n stores.modalRouter.hide('/modifypass');\n }\n }}\n >\n {btn.text}\n </Button>)}\n </div>\n switch (key) {\n case 'logout':\n User.logout();\n break;\n case 'modifypass':\n {\n if(!stores.offlineSys.shouldInOffline()) return;\n stores.modalRouter.show({\n url: '/modifypass',\n title: '修改密码',\n className: 'modify-password',\n width: 402,\n footer,modalType:'mid',\n onHide: () => stores.modalRouter.hide('/modifypass'),\n destroyOnClose: true,\n });\n }\n break;\n default:\n history.push(`/${key}`);\n break;\n }\n }\n render() {\n const { collapsed, selectedKeys, solt, portalHead = [], loginHead = [], retailOrder = [], logoUrl, hsy_s } = this.state;\n const pathname = history.location.pathname;\n const storeInfo = stores.user.options.get('store');\n const isPortal = !!portalHead.length;\n const isLogin = !!loginHead.length;\n const isRetailOrder = !!retailOrder.length;\n const headProps = {\n logo: this.logoNode(logoUrl, isPortal, isLogin),\n businessName: '',\n storeName: '',\n dateFormat: 'yyyy年MM月dd日 hh:mm:ss',\n menu: [\n { title: '注销', key: 'logout', icon: 'zhuxiao' },\n { title: '修改密码', key: 'modifypass', icon: 'suoping' }\n ],\n onClick: this.headMenuSelect\n };\n if (storeInfo) {\n headProps.businessName = storeInfo.orgName;\n headProps.storeName = storeInfo.storeName;\n headProps.posCode = storeInfo.posCode;\n }\n\n // 如果存在商米副屏则优先加载商米副屏\n if (this.isHorizontalSunMi_FuPing) {\n return <Redirect to={'/vicescreen'} />\n }\n console.log('!stores.posLoginStore.posIsLogin=============', !stores.posLoginStore.posIsLogin);\n if (!stores.posLoginStore.posIsLogin && !~pathname.indexOf('login')) {\n stores.modalRouter.hideAll && stores.modalRouter.hideAll();\n return <Redirect to={'/login'} />\n }\n const classNames = ['isPortal-layout', 'isRetailOrder-layout'];\n const layoutClassName = [isPortal, isRetailOrder].map((v, i) => (v ? classNames[i] : '')).join(' ');\n return (\n <Layout\n style={{ height: '100%' }}\n className={layoutClassName}\n >\n <Layout>\n <Header\n {...headProps}\n solt={solt}\n isPortal={isPortal}\n className={`${(!hsy_s && isPortal) ? 'isPortal-head' : ''} ${isLogin ? 'isLogin-head' : ''}`}\n isLogin={isLogin}\n location={this.props.location}\n history={this.props.history}\n />\n <Layout.Content>\n {this.props.match.isExact ? (<PortalPageBC />) : <Switch>{this.props.routes}</Switch>}\n </Layout.Content>\n </Layout>\n </Layout>\n )\n }\n}\n\nexport default function Main(props) {\n const { routes, modalRouter } = props;\n\n if (modalRouter) {\n return <Switch>{routes}</Switch>;\n }\n\n return React.cloneElement(<MainContainer />, props);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["tplus-portaltouch/containers/Main/index.js"],"names":["Main","hasElectron","env","platform","constant","electron","window","rx$","MainContainer","observer","props","currentFocus","initWebFrameZoom","webFrame","value","localStore","get","setZoomFactor","parseFloat","doDeeplinkingUrl","ipcRenderer","on","event","ret","params","console","log","stores","user","orgId","userId","param","split","reduce","accumulator","current","key","cloudUserId","User","logout","changeLogoSubject","subject","Subject","changeLogo","subscribe","next","v","setLogo","changeHsySubject","changeHsy","setHsy","addHotKeyChangeLister","document","addEventListener","registerHotKey","removeHotKeyChangeLister","removeEventListener","back","fn","setState","hsy_s","hsy_f","store","logoUrl","logo","logoNode","url","isPortal","isLogin","state","isVerticalTouch","isNewRetailBCPos","bcParams","theme","portalStore","themeStore","defualtImage","hotKeyInjectOrEject","type","hotKeyAction","registerKeys","allKeys","hotKey","hotKeyConfig","forEach","keyboard","index","nativeMs","onIpcRendererGlobalShortcut","hotKeyActionHandle","blurButton","target","nodeName","blur","isSetHotKey","hotKeyCreate","observerCallback","observerDom","pressed","clickBefore","activeElement","filter","srcElement","tagName","className","indexOf","undefined","attributes","childList","subtree","attributeFilter","register","operationKeys","esc","enter","visibleModal","modals","querySelectorAll","modal","display","style","visibleDrawer","drawers","drawer","$","clearFocus","setFocus","getFocusId","querySelector","find","handle","toggleKeyCode","message","bind","keys","i","unbind","Message","info","action","handleInfoRender","solt","onCollapse","collapsed","menuOnClick","selectedKeys","handleClose","Keyboard","close","handleOk","count","modifyPassStore","modifyPassWord","headMenuSelect","footer","text","closable","length","map","btn","loading","modalRouter","hide","offlineSys","shouldInOffline","show","title","width","modalType","onHide","destroyOnClose","history","push","portalStores","posLoginStore","savePosCode","isAutoTest","location","search","isShowFourTab","screen","isHorizontalPad","storeUtil","isHorizontalSunMi","isHorizontalSunMi_FuPing","isMobileEnvironment","infoRender","headHook","addClass","id","removeClass","currentId","actionHook","actionFrom","actionChange","body","classList","add","ModalWraper","confirm","content","cancelable","onOk","onCancel","unsubscribe","portalHead","loginHead","retailOrder","pathname","storeInfo","options","isRetailOrder","headProps","businessName","storeName","dateFormat","menu","icon","onClick","orgName","posCode","posIsLogin","hideAll","classNames","layoutClassName","join","height","match","isExact","routes","Component","childContextTypes","PropTypes","func","object","React","cloneElement"],"mappings":"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","file":"index.js","sourcesContent":["import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { observer } from 'mobx-react';\r\nimport { Button } from 'antd';\r\nimport { history, Switch, stores, env, nativeMs, localStore } from 'mutants-microfx';\r\nimport { Ticon, Layout, Keyboard, ModalWraper, Message, hotKey } from 'tplus-components-touch';\r\nimport { platform, localStore as storeUtil } from 'mutants-util';\r\nimport { User } from 'tplus-api';\r\nimport { Subject } from 'rxjs';\r\nimport { Redirect } from 'react-router';\r\nimport Header from '../../components/header';\r\nimport PortalPageBC from '../../pages/Portalbc';\r\nimport portalStores from '../../stores';\r\nimport { closeWebPage, getQueryString, operationKeys } from '../../utils/index';\r\n\r\nconst hasElectron = (env.platform === env.constant.platform.electron);\r\nwindow.rx$ = {};\r\n\r\n@observer\r\nclass MainContainer extends Component {\r\n currentFocus = null;\r\n constructor(props) {\r\n super(props);\r\n this.hasElectron = hasElectron;\r\n this.state = {\r\n hsy_s: false,\r\n hsy_f: null\r\n };\r\n portalStores.posLoginStore.savePosCode();\r\n this.electron = nativeMs && nativeMs.get('electron');\r\n this.isAutoTest = getQueryString(location.search, 'at');\r\n this.isShowFourTab = this.hasElectron && window.screen.width < 1024 ? true : false;\r\n //针对800*600分辨率下,页面显示不全的做一下处理。\r\n if (this.isShowFourTab == true) this.initWebFrameZoom();\r\n\r\n const isHorizontalPad = storeUtil.get('isHorizontalPad')// 是否在PAD\r\n const isHorizontalSunMi = storeUtil.get('isHorizontalSunMi'); //是否在商米(SunMi)\r\n const isHorizontalSunMi_FuPing = storeUtil.get('isHorizontalSunMi_FuPing'); //是否在商米(SunMi)\r\n\r\n this.isHorizontalSunMi_FuPing = !!isHorizontalSunMi_FuPing;\r\n this.isMobileEnvironment = !!isHorizontalPad || !!isHorizontalSunMi || !!isHorizontalSunMi_FuPing;\r\n }\r\n static childContextTypes = {\r\n infoRender: PropTypes.func,\r\n headHook: PropTypes.object,\r\n actionHook: PropTypes.object,\r\n }\r\n\r\n initWebFrameZoom = () => {\r\n let webFrame = this.electron ? this.electron.webFrame : null;\r\n let value = localStore.get('webFrameZoomValue') || '0.7';\r\n if (webFrame) webFrame.setZoomFactor(parseFloat(value));\r\n }\r\n getChildContext() {\r\n return {\r\n infoRender: this.handleInfoRender,\r\n headHook: {\r\n addClass: (id, key) => {\r\n this.setState(state => ({\r\n [key]: [...(state[key] || []), id],\r\n }));\r\n },\r\n removeClass: (id, key) => {\r\n this.setState(state => ({\r\n [key]: state[key].filter(currentId => currentId !== id),\r\n }));\r\n }\r\n },\r\n actionHook: {\r\n actionFrom: this.actionFrom,\r\n actionChange: (value) => {\r\n this.actionFrom = value;\r\n }\r\n },\r\n };\r\n }\r\n\r\n // 内置默认\r\n // keys = ['esc', 'enter', 'ctrl+f1', ...Object.keys(hotKey.hotKeyConfig)];\r\n\r\n // 解决从url地址唤醒exe,不同账号的处理问题。\r\n doDeeplinkingUrl = () => {\r\n if (this.hasElectron === false) return;\r\n let { ipcRenderer } = this.electron || {ipcRenderer:null};\r\n ipcRenderer && ipcRenderer.on(\"asynchronous-deeplinkingUrl\", (event, ret, params) => {\r\n if (ret) {\r\n console.log('deeplinkingUrl:' + ret)\r\n const {orgId, userId} = stores.user || {};\r\n if (!orgId || !userId) return;\r\n const param = ret.split('&').reduce((accumulator, current) => {\r\n if (!current) return accumulator;\r\n const [key, value] = current.split('=') || [];\r\n accumulator[key] = value;\r\n return accumulator;\r\n }, {});\r\n console.log(orgId, userId, param)\r\n if (param.orgId !== orgId || param.cloudUserId !== userId) {\r\n User.logout();\r\n }\r\n }\r\n })\r\n }\r\n\r\n componentWillMount() {\r\n this.changeLogoSubject();\r\n this.changeHsySubject();\r\n const { isVerticalTouch } = platform || {};\r\n if (isVerticalTouch === true) {\r\n document.body.classList.add('vertical-touch-platform');\r\n }\r\n }\r\n\r\n changeLogoSubject = () => {\r\n const subject = new Subject();\r\n rx$.changeLogo = subject;\r\n\r\n subject\r\n .subscribe({\r\n next: (v) => this.setLogo(v)\r\n });\r\n }\r\n\r\n changeHsySubject = () => {\r\n const subject = new Subject();\r\n rx$.changeHsy = subject;\r\n\r\n subject\r\n .subscribe({\r\n next: (v) => this.setHsy(v)\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.registerHotKey();\r\n this.addHotKeyChangeLister();\r\n rx$.changeLogo.next();\r\n document.body.addEventListener('focus', this.blurButton, true)\r\n this.doDeeplinkingUrl();\r\n\r\n if (this.hasElectron === true) {\r\n document.body.classList.add('electron-env');\r\n } else {\r\n if (this.isAutoTest || this.isMobileEnvironment) return; //自动化测试不弹窗\r\n ModalWraper.confirm({\r\n className: 'tplus-confirm-modal',\r\n title: \"温馨提示\",\r\n content: '智+新零售POS端不允许浏览器直接访问,请从智+产品中下载安装客户端程序使用!',\r\n cancelable:false,\r\n onOk() {\r\n closeWebPage();\r\n },\r\n onCancel(){\r\n closeWebPage();\r\n }\r\n });\r\n }\r\n }\r\n addHotKeyChangeLister = () => {\r\n document.addEventListener(\"RESET_USER_STORE\",this.registerHotKey);\r\n }\r\n removeHotKeyChangeLister = () => {\r\n document.removeEventListener(\"RESET_USER_STORE\",this.registerHotKey);\r\n }\r\n\r\n componentWillUnmount() {\r\n rx$.changeLogo.unsubscribe();\r\n rx$.changeHsy.unsubscribe();\r\n document.body.removeEventListener('focus', this.blurButton, true)\r\n // clearInterval(this.addObserverDomTimer);\r\n }\r\n\r\n setHsy = (v) => {\r\n const { back, fn } = v || {};\r\n if (back === true) {\r\n this.setState({ hsy_s: true, hsy_f: fn })\r\n } else {\r\n this.setState({ hsy_s: false, hsy_f: null })\r\n }\r\n }\r\n\r\n setLogo = (v) => {\r\n const store = localStore.get('StoreKey') || {};\r\n const { logo: logoUrl } = store;\r\n logoUrl && this.setState({ logoUrl });\r\n }\r\n\r\n logoNode = (url, isPortal, isLogin) => {\r\n const { hsy_s, hsy_f } = this.state;\r\n const { isVerticalTouch, isNewRetailBCPos } = platform || {};\r\n const bcParams = isNewRetailBCPos ? '-bc' : '';\r\n const theme = stores.portalStore.themeStore;\r\n const defualtImage = (isVerticalTouch === true) ? `https://newretail.static.chanjet.com/tinified/logo${bcParams}.png` : `https://newretail.static.chanjet.com/${((!hsy_s && isPortal) || (theme === 'dark' && !isLogin)) ? 'protal-chanjet' : 'chanjet'}-logo${bcParams}.png?v=1`;\r\n if (hsy_s === true) {\r\n return (<div className='business-logo-container'>\r\n <Ticon type='zhiPOS-fanhuishouye2' className='back_i' onClick={() => { hsy_f && hsy_f() }} />\r\n <img src={url || defualtImage} className=\"example-logo\" />\r\n </div>);\r\n }\r\n return <img src={url || defualtImage} className=\"example-logo\" />\r\n }\r\n\r\n //未使用?\r\n hotKeyInjectOrEject = (type, hotKeyAction) => {\r\n const registerKeys = ['esc', 'enter'];\r\n const allKeys = [...registerKeys, ...Object.keys(hotKey.hotKeyConfig)];\r\n allKeys.forEach((keyboard, index) => {\r\n nativeMs.onIpcRendererGlobalShortcut({ type, keyboard }, hotKeyActionHandle);\r\n });\r\n }\r\n\r\n blurButton = ({ target }) => { // 焦点为 button 时 移除焦点,防止触发 bee 组件enter快捷键\r\n if (target && target.nodeName === 'BUTTON') {\r\n target.blur();\r\n }\r\n }\r\n\r\n registerHotKey = () => {\r\n this.isSetHotKey = true;\r\n\r\n this.hotKeyCreate = hotKey({\r\n observerCallback: this.observerDom,\r\n log: true,\r\n pressed: this.hotKeyAction,\r\n clickBefore: () => {\r\n const { activeElement } = document;\r\n activeElement && activeElement.blur();\r\n },\r\n filter: event => {\r\n const { tagName, className } = event.target || event.srcElement || {};\r\n\r\n return !(event.key === 'Enter' && tagName === 'INPUT' && !~className.indexOf('hot-key-not-filter'));\r\n }\r\n });\r\n\r\n this.hotKeyCreate.observer(undefined, { attributes: true, childList: true, subtree: true ,attributeFilter: ['class', 'style'], });\r\n this.hotKeyCreate.register('esc')('.hot-key-focus-container')(operationKeys.esc);\r\n this.hotKeyCreate.register('enter')('.hot-key-focus-container')(operationKeys.enter);\r\n }\r\n\r\n observerDom = () => {\r\n let visibleModal;\r\n const modals = document.querySelectorAll('.ant-modal-wrap'); //ant-module\r\n for(let modal of modals) {\r\n const display = modal.style.display;\r\n if(display != \"none\"){\r\n visibleModal = modal\r\n }\r\n }\r\n\r\n let visibleDrawer;\r\n const drawers = document.querySelectorAll('.ant-drawer-open'); //ant-drawer\r\n for(let drawer of drawers) {\r\n visibleDrawer = drawer;\r\n break;\r\n }\r\n\r\n if (visibleModal) {\r\n if(this.currentFocus !== visibleModal){\r\n $.clearFocus();\r\n this.currentFocus = visibleModal\r\n return $.setFocus(visibleModal);\r\n }\r\n return;\r\n }\r\n\r\n if (visibleDrawer) {\r\n if(this.currentFocus !== visibleDrawer){\r\n $.clearFocus();\r\n this.currentFocus = visibleDrawer;\r\n return $.setFocus(visibleDrawer);\r\n }\r\n return;\r\n }\r\n\r\n\r\n if ($.getFocusId() !== '1') {\r\n if(this.currentFocus !== 'App' || !document.querySelector(\".hot-key-focus-container\")){\r\n $.clearFocus();\r\n this.currentFocus = 'App';\r\n $.find('.app', true).setFocus();\r\n }\r\n return;\r\n }\r\n }\r\n\r\n hotKeyAction = (event, handle) => {\r\n const { key } = handle || {};\r\n const toggleKeyCode = 'ctrl+f1';\r\n if (key === toggleKeyCode) {\r\n const isSetHotKey = this.isSetHotKey = !this.isSetHotKey;\r\n const message = isSetHotKey ? '设置' : '取消';\r\n if (isSetHotKey) {\r\n $.bind(this.keys.filter(i => i !== toggleKeyCode), this.hotKeyAction);\r\n } else {\r\n $.unbind(this.keys.filter(i => i !== toggleKeyCode));\r\n }\r\n return Message.info(`已${message}快捷键`);\r\n }\r\n\r\n $.action(key);\r\n }\r\n\r\n handleInfoRender = (solt) => {\r\n this.setState({solt})\r\n }\r\n onCollapse = () => {\r\n const {collapsed} = this.state;\r\n this.setState({collapsed: !collapsed});\r\n }\r\n menuOnClick = ({key}) => {\r\n console.log(key)\r\n this.setState({selectedKeys: key});\r\n }\r\n\r\n handleClose = () => {\r\n Keyboard.close();\r\n }\r\n\r\n handleOk = (type, count) => {\r\n stores.modifyPassStore.modifyPassWord();\r\n }\r\n\r\n headMenuSelect = ({key}) => {\r\n var footer = [\r\n {text: '取消', className: 'modifypass-cancal-button', closable: true, action: this.handleClose},\r\n {text: '确定', className: 'modifypass-ok-button', action: this.handleOk, type: 'primary'}\r\n ];\r\n footer = !!footer.length && <div>\r\n {footer.map((btn, i) =>\r\n <Button\r\n className={btn.className || ''}\r\n key={i}\r\n type={btn.type}\r\n loading={btn.loading}\r\n onClick={() => {\r\n const {action} = btn || {};\r\n if (typeof action === 'function') action();\r\n if (btn.closable) {\r\n stores.modalRouter.hide('/modifypass');\r\n }\r\n }}\r\n >\r\n {btn.text}\r\n </Button>)}\r\n </div>\r\n switch (key) {\r\n case 'logout':\r\n User.logout();\r\n break;\r\n case 'modifypass':\r\n {\r\n if(!stores.offlineSys.shouldInOffline()) return;\r\n stores.modalRouter.show({\r\n url: '/modifypass',\r\n title: '修改密码',\r\n className: 'modify-password',\r\n width: 402,\r\n footer,modalType:'mid',\r\n onHide: () => stores.modalRouter.hide('/modifypass'),\r\n destroyOnClose: true,\r\n });\r\n }\r\n break;\r\n default:\r\n history.push(`/${key}`);\r\n break;\r\n }\r\n }\r\n render() {\r\n const { collapsed, selectedKeys, solt, portalHead = [], loginHead = [], retailOrder = [], logoUrl, hsy_s } = this.state;\r\n const pathname = history.location.pathname;\r\n const storeInfo = stores.user.options.get('store');\r\n const isPortal = !!portalHead.length;\r\n const isLogin = !!loginHead.length;\r\n const isRetailOrder = !!retailOrder.length;\r\n const headProps = {\r\n logo: this.logoNode(logoUrl, isPortal, isLogin),\r\n businessName: '',\r\n storeName: '',\r\n dateFormat: 'yyyy年MM月dd日 hh:mm:ss',\r\n menu: [\r\n { title: '注销', key: 'logout', icon: 'zhuxiao' },\r\n { title: '修改密码', key: 'modifypass', icon: 'suoping' }\r\n ],\r\n onClick: this.headMenuSelect\r\n };\r\n if (storeInfo) {\r\n headProps.businessName = storeInfo.orgName;\r\n headProps.storeName = storeInfo.storeName;\r\n headProps.posCode = storeInfo.posCode;\r\n }\r\n\r\n // 如果存在商米副屏则优先加载商米副屏\r\n if (this.isHorizontalSunMi_FuPing) {\r\n return <Redirect to={'/vicescreen'} />\r\n }\r\n console.log('!stores.posLoginStore.posIsLogin=============', !stores.posLoginStore.posIsLogin);\r\n if (!stores.posLoginStore.posIsLogin && !~pathname.indexOf('login')) {\r\n stores.modalRouter.hideAll && stores.modalRouter.hideAll();\r\n return <Redirect to={'/login'} />\r\n }\r\n const classNames = ['isPortal-layout', 'isRetailOrder-layout'];\r\n const layoutClassName = [isPortal, isRetailOrder].map((v, i) => (v ? classNames[i] : '')).join(' ');\r\n return (\r\n <Layout\r\n style={{ height: '100%' }}\r\n className={layoutClassName}\r\n >\r\n <Layout>\r\n <Header\r\n {...headProps}\r\n solt={solt}\r\n isPortal={isPortal}\r\n className={`${(!hsy_s && isPortal) ? 'isPortal-head' : ''} ${isLogin ? 'isLogin-head' : ''}`}\r\n isLogin={isLogin}\r\n location={this.props.location}\r\n history={this.props.history}\r\n />\r\n <Layout.Content>\r\n {this.props.match.isExact ? (<PortalPageBC />) : <Switch>{this.props.routes}</Switch>}\r\n </Layout.Content>\r\n </Layout>\r\n </Layout>\r\n )\r\n }\r\n}\r\n\r\nexport default function Main(props) {\r\n const { routes, modalRouter } = props;\r\n\r\n if (modalRouter) {\r\n return <Switch>{routes}</Switch>;\r\n }\r\n\r\n return React.cloneElement(<MainContainer />, props);\r\n}\r\n"]}
|