cloud-web-corejs-haier 1.0.42 → 1.0.44

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.
Files changed (227) hide show
  1. package/package.json +9 -7
  2. package/src/api/user.js +54 -46
  3. package/src/components/baseAlert/index.vue +57 -53
  4. package/src/components/baseInputExport/index.vue +3 -3
  5. package/src/components/baseTabs/mixins.js +12 -1
  6. package/src/components/errorMsg/index.vue +78 -78
  7. package/src/components/excelExport/button.vue +54 -45
  8. package/src/components/excelExport/exportFieldDialog.vue +3 -3
  9. package/src/components/excelExport/index.js +1 -43
  10. package/src/components/excelExport/index.vue +62 -34
  11. package/src/components/excelExport/mixins.js +74 -87
  12. package/src/components/excelImport/index.js +1 -62
  13. package/src/components/excelImport/mixins.js +1 -774
  14. package/src/components/fileLibrary/index.vue +113 -33
  15. package/src/components/fileLibrary/propertiesDialog.vue +6 -0
  16. package/src/components/hiprint/view/design/index.vue +139 -47
  17. package/src/components/hiprint/view/design/preview.vue +75 -52
  18. package/src/components/hiprint/view/json-view.vue +31 -31
  19. package/src/components/luckysheet/dialog.vue +159 -0
  20. package/src/components/luckysheet/export.js +595 -0
  21. package/src/components/luckysheet/fileUtils.js +147 -0
  22. package/src/components/luckysheet/index.js +69 -0
  23. package/src/components/luckysheet/templateJson.js +12078 -0
  24. package/src/components/luckysheet/view.vue +210 -0
  25. package/src/components/onlineTalk/index.vue +328 -6
  26. package/src/components/onlineTalk/talkUserDialog.vue +280 -0
  27. package/src/components/wf/addTaskUserdialog.vue +5 -5
  28. package/src/components/wf/content.vue +1244 -1169
  29. package/src/components/wf/mixins/setCandidateDialog.js +228 -2
  30. package/src/components/wf/mixins/setCandidateDialog2.js +115 -100
  31. package/src/components/wf/mixins/wfTaskUserRangeDialog.js +67 -1
  32. package/src/components/wf/setCandidateDialog.vue +5 -7
  33. package/src/components/wf/setCandidateDialog2.vue +14 -10
  34. package/src/components/wf/wf.js +527 -411
  35. package/src/components/wf/wfTaskUserRangeDialog.vue +1 -1
  36. package/src/components/wf/wfUtil.js +129 -91
  37. package/src/components/xform/form-designer/designer.js +1994 -9
  38. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +10 -0
  39. package/src/components/xform/form-designer/form-widget/container-widget/detail-pane-widget.vue +3 -2
  40. package/src/components/xform/form-designer/form-widget/dialog/formDialog.vue +5 -1
  41. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin - /345/211/257/346/234/254.js" +1639 -0
  42. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +1756 -2
  43. package/src/components/xform/form-designer/form-widget/field-widget/baseAttachment-widget.vue +1 -0
  44. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-item-widget.vue +10 -1
  45. package/src/components/xform/form-designer/form-widget/field-widget/dropdown-widget.vue +170 -0
  46. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +1630 -1
  47. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +153 -40
  48. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +65 -46
  49. package/src/components/xform/form-designer/form-widget/field-widget/vue-page-widget.vue +231 -0
  50. package/src/components/xform/form-designer/setting-panel/form-setting.vue +7 -4
  51. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/edit-tree-button-group-config-dialog.vue +281 -0
  52. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +659 -221
  53. package/src/components/xform/form-designer/setting-panel/property-editor/container-detail/detail-editor.vue +3 -3
  54. package/src/components/xform/form-designer/setting-panel/property-editor/dropdownFlag-editor.vue +133 -0
  55. package/src/components/xform/form-designer/setting-panel/property-editor/event-handler/onClick-editor.vue +14 -6
  56. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +1 -1
  57. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import2-button-editor.vue +1 -1
  58. package/src/components/xform/form-designer/setting-panel/property-editor/field-vue-page/vue-page-editor.vue +48 -0
  59. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconClass-editor.vue +18 -17
  60. package/src/components/xform/form-designer/setting-panel/property-editor/labelIconPosition-editor.vue +26 -26
  61. package/src/components/xform/form-designer/setting-panel/property-editor/labelTooltip-editor.vue +67 -13
  62. package/src/components/xform/form-designer/setting-panel/property-editor/name-editor.vue +2 -0
  63. package/src/components/xform/form-designer/setting-panel/property-editor/showViewButton-editor.vue +29 -0
  64. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +8 -6
  65. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +1 -0
  66. package/src/components/xform/form-render/container-item/data-table-mixin.js +20 -17
  67. package/src/components/xform/form-render/container-item/detail-item.vue +72 -48
  68. package/src/components/xform/form-render/container-item/sub-form-item.vue +10 -2
  69. package/src/components/xform/form-render/container-item/table2-item.vue +40 -10
  70. package/src/components/xform/form-render/indexMixin.js +3705 -1
  71. package/src/components/xform/icon-picker/icons.json +284 -0
  72. package/src/components/xform/icon-picker/index.vue +145 -0
  73. package/src/components/xform/lang/zh-CN.js +2 -1
  74. package/src/components/xform/mixins/defaultHandle.js +366 -2
  75. package/src/components/xform/utils/formula-util.js +3 -0
  76. package/src/components/xform/utils/sfc-generator.js +2 -2
  77. package/src/components/xform/utils/smart-vue-i18n/index.js +2 -1
  78. package/src/components/xform/utils/tableColumnHelper.js +54 -10
  79. package/src/components/xform/utils/util.js +1547 -1
  80. package/src/index.js +190 -211
  81. package/src/lang/locale/en/login.js +26 -19
  82. package/src/lang/locale/zh/login.js +25 -19
  83. package/src/layout/components/Sidebar/default.vue +252 -71
  84. package/src/layout/components/Sidebar/index.vue +6 -1
  85. package/src/layout/components/TagsView/index.vue +6 -0
  86. package/src/layout/components/langTool.vue +32 -29
  87. package/src/layout/defaultLayout.vue +16 -8
  88. package/src/layout/index.vue +5 -3
  89. package/src/permission.js +135 -1
  90. package/src/router/index.js +1 -4
  91. package/src/store/config/index.js +667 -1
  92. package/src/store/getters.js +2 -1
  93. package/src/store/modules/permission.js +332 -1
  94. package/src/store/modules/settings.js +26 -1
  95. package/src/store/modules/tagsView.js +190 -1
  96. package/src/store/modules/user.js +358 -1
  97. package/src/utils/aes.js +15 -1
  98. package/src/utils/auth.js +27 -1
  99. package/src/utils/componentDialog.js +217 -0
  100. package/src/utils/request.js +368 -1
  101. package/src/utils/vab.js +1256 -7
  102. package/src/views/bd/setting/bd_company_env/dialog.vue +174 -174
  103. package/src/views/bd/setting/bd_company_env/edit.vue +193 -193
  104. package/src/views/bd/setting/formVersion/button.vue +55 -0
  105. package/src/views/bd/setting/formVersion/compareBasicSection.vue +125 -0
  106. package/src/views/bd/setting/formVersion/compareCodeSection.vue +539 -0
  107. package/src/views/bd/setting/formVersion/compareContMixin.scss +65 -0
  108. package/src/views/bd/setting/formVersion/compareContent.vue +63 -0
  109. package/src/views/bd/setting/formVersion/compareDialog.vue +88 -0
  110. package/src/views/bd/setting/formVersion/compareMixin.js +93 -0
  111. package/src/views/bd/setting/formVersion/fieldCompare.vue +54 -0
  112. package/src/views/bd/setting/formVersion/formScriptCompareView.vue +94 -0
  113. package/src/views/bd/setting/formVersion/formTemplateCompareView.vue +74 -0
  114. package/src/views/bd/setting/formVersion/ftHistoryDialog.vue +491 -0
  115. package/src/views/bd/setting/formVersion/link.vue +58 -0
  116. package/src/views/bd/setting/formVersion/preformDialog.vue +87 -0
  117. package/src/views/bd/setting/formVersion/reverButton.vue +82 -0
  118. package/src/views/bd/setting/formVersion/tableDetailDiff.js +99 -0
  119. package/src/views/bd/setting/formVersion/tableModelCompareView.vue +514 -0
  120. package/src/views/bd/setting/formVersion/textDiff.js +102 -0
  121. package/src/views/bd/setting/form_import_log/edit.vue +6 -3
  122. package/src/views/bd/setting/form_import_log/list.vue +5 -0
  123. package/src/views/bd/setting/form_script/edit.vue +196 -83
  124. package/src/views/bd/setting/form_script/edit1.vue +410 -220
  125. package/src/views/bd/setting/form_script/form_list.vue +19 -0
  126. package/src/views/bd/setting/form_script/list.vue +95 -21
  127. package/src/views/bd/setting/form_script/list1.vue +24 -0
  128. package/src/views/bd/setting/form_script/mixins/dialog.js +2 -2
  129. package/src/views/bd/setting/form_script/mixins/edit.js +265 -207
  130. package/src/views/bd/setting/form_script/mixins/edit1.js +259 -201
  131. package/src/views/bd/setting/form_script/mixins/form_list.js +322 -296
  132. package/src/views/bd/setting/form_script/mixins/list.js +163 -95
  133. package/src/views/bd/setting/form_script/mixins/list1.js +244 -155
  134. package/src/views/bd/setting/form_script/mixins/otherAuthDialog.js +1 -1
  135. package/src/views/bd/setting/form_template/batchWfObjConfigDialog.vue +1 -1
  136. package/src/views/bd/setting/form_template/edit.vue +355 -205
  137. package/src/views/bd/setting/form_template/formDesignerDialog.vue +171 -0
  138. package/src/views/bd/setting/form_template/list.vue +49 -74
  139. package/src/views/bd/setting/form_template/mixins/batchWfObjConfigDialog.js +3 -3
  140. package/src/views/bd/setting/form_template/mixins/edit.js +51 -8
  141. package/src/views/bd/setting/form_template/mixins/itemList.js +1 -1
  142. package/src/views/bd/setting/form_template/mixins/list.js +114 -82
  143. package/src/views/bd/setting/form_template/mixins/list2.js +3 -3
  144. package/src/views/bd/setting/form_template/mixins/otherAuthDialog.js +1 -1
  145. package/src/views/bd/setting/form_template/mixins/wf_list.js +3 -7
  146. package/src/views/bd/setting/form_template/wfObjConfigDialog.vue +254 -254
  147. package/src/views/bd/setting/form_template/wf_list.vue +161 -127
  148. package/src/views/bd/setting/request_async_setting/edit.vue +320 -320
  149. package/src/views/bd/setting/request_setting/edit.vue +300 -300
  150. package/src/views/bd/setting/request_setting/list.vue +15 -25
  151. package/src/views/bd/setting/table_model/edit.vue +702 -498
  152. package/src/views/bd/setting/table_model/list.vue +28 -0
  153. package/src/views/bd/setting/table_model/mixins/dialog.js +1 -1
  154. package/src/views/bd/setting/table_model/mixins/edit copy.js +903 -0
  155. package/src/views/bd/setting/table_model/mixins/edit.js +228 -121
  156. package/src/views/bd/setting/table_model/mixins/list.js +55 -20
  157. package/src/views/bd/setting/table_model/mixins/otherAuthDialog.js +1 -1
  158. package/src/views/bd/setting/table_model/mixins/zdDialog.js +50 -46
  159. package/src/views/bd/setting/utils/index.js +15 -0
  160. package/src/views/user/api_request/list.vue +203 -203
  161. package/src/views/user/bill_setting/list.vue +345 -345
  162. package/src/views/user/code_rules/list.vue +204 -204
  163. package/src/views/user/common_attribute/list.vue +378 -378
  164. package/src/views/user/common_script/list.vue +341 -341
  165. package/src/views/user/company_info/dialog.vue +80 -49
  166. package/src/views/user/country/list.vue +197 -197
  167. package/src/views/user/extend_datasource/dialog.vue +0 -3
  168. package/src/views/user/extend_datasource/edit.vue +1 -2
  169. package/src/views/user/extend_datasource/list.vue +221 -224
  170. package/src/views/user/fieldTranslation/editDialog.vue +1 -1
  171. package/src/views/user/fieldTranslation/list.vue +473 -473
  172. package/src/views/user/field_values_invisible/list.vue +207 -207
  173. package/src/views/user/file_type/list.vue +271 -271
  174. package/src/views/user/file_view_area/list.vue +331 -331
  175. package/src/views/user/form/vform/designer.vue +303 -287
  176. package/src/views/user/form/vform/formFieldMapping.js +2 -3
  177. package/src/views/user/form/view/edit.vue +19 -1
  178. package/src/views/user/form/view/list.vue +59 -17
  179. package/src/views/user/groups/list.vue +158 -158
  180. package/src/views/user/home/default.vue +274 -182
  181. package/src/views/user/home/default2.vue +1148 -0
  182. package/src/views/user/home/index.vue +2 -1
  183. package/src/views/user/lang_tag/list.vue +170 -170
  184. package/src/views/user/language_setting/list.vue +208 -208
  185. package/src/views/user/ledger_library/list.vue +12 -10
  186. package/src/views/user/login/default.vue +1 -1
  187. package/src/views/user/login/indexMixin.js +204 -169
  188. package/src/views/user/menu/list.vue +575 -575
  189. package/src/views/user/notify_message/dialog.vue +7 -1
  190. package/src/views/user/notify_template/list.vue +192 -192
  191. package/src/views/user/notify_template/list2.vue +190 -190
  192. package/src/views/user/position/list.vue +188 -188
  193. package/src/views/user/project_tag/list.vue +175 -175
  194. package/src/views/user/push_setting/list.vue +236 -236
  195. package/src/views/user/request_setting/list.vue +248 -248
  196. package/src/views/user/role/list.vue +182 -182
  197. package/src/views/user/system_notice/infoDialog.vue +61 -2
  198. package/src/views/user/system_notice/list.vue +203 -203
  199. package/src/views/user/system_parameter/list.vue +141 -141
  200. package/src/views/user/user/edit.vue +45 -0
  201. package/src/views/user/user/form_list.vue +245 -245
  202. package/src/views/user/user/info.vue +253 -140
  203. package/src/views/user/user_log_classify/list.vue +197 -197
  204. package/src/views/user/wf/iframe/index.vue +46 -46
  205. package/src/views/user/wf/wfReport/index.vue +1 -1
  206. package/src/views/user/wf/wf_auto_submit_data/list.vue +659 -659
  207. package/src/views/user/wf/wf_diy_attribute/edit.vue +1 -1
  208. package/src/views/user/wf/wf_manage/list.vue +795 -795
  209. package/src/views/user/wf/wf_manage/wfContentDialog.vue +106 -106
  210. package/src/views/user/wf/wf_obj_config/dialog.vue +2 -2
  211. package/src/views/user/wf/wf_obj_config/edit.vue +1 -1
  212. package/src/views/user/wf/wf_obj_config/edit_form.vue +2 -2
  213. package/src/views/user/wf/wf_obj_config/itemEdit.vue +1 -1
  214. package/src/views/user/wf/wf_obj_config/itemEdit_form.vue +1 -1
  215. package/src/views/user/wf/wf_obj_config/itemOperateDialog.vue +4 -4
  216. package/src/views/user/wf/wf_obj_config/list.vue +28 -28
  217. package/src/views/user/wf/wf_obj_config/list_form.vue +5 -5
  218. package/src/views/user/wf/wf_obj_config/wfBizDataSettingDialog.vue +292 -292
  219. package/src/views/user/wf/wf_param/edit.vue +1 -1
  220. package/src/views/user/wf/wf_transfer_setting/edit.vue +1 -1
  221. package/src/views/user/wf/wf_transfer_setting/list.vue +321 -319
  222. package/src/views/user/wf/wf_work_calendar/components/calendar.vue +369 -367
  223. package/src/views/user/wf/wf_work_calendar/components/calendar2.vue +401 -399
  224. package/src/views/user/wf/wf_work_calendar/configDialog.vue +6 -6
  225. package/src/views/user/wf/wf_work_calendar/date.js +84 -83
  226. package/src/views/user/wf/wf_work_calendar/list.vue +6 -6
  227. package/src/views/user/workbench_menu/list.vue +555 -0
@@ -1,11 +1,11 @@
1
- import {encode} from "js-base64";
1
+ import { encode } from "js-base64";
2
2
  import settingConfig from "@/settings";
3
3
  import QRcode from "qrcode";
4
4
 
5
5
  function getUrlParams(url) {
6
6
  let result = {};
7
7
  if (url) {
8
- let urlStr = url.split('?')[1];
8
+ let urlStr = url.split("?")[1];
9
9
  const urlSearchParams = new URLSearchParams(urlStr);
10
10
  result = Object.fromEntries(urlSearchParams.entries());
11
11
  }
@@ -13,49 +13,49 @@ function getUrlParams(url) {
13
13
  }
14
14
 
15
15
  export default {
16
- name: 'Login',
17
- props:{
18
- lang: [String,Function]
16
+ name: "Login",
17
+ props: {
18
+ lang: [String, Function],
19
19
  },
20
20
  components: {},
21
21
  data() {
22
22
  return {
23
23
  isCounting: false,
24
24
  countdown: 0,
25
- buttonText: this.$t1('获取验证码'),
25
+ buttonText: this.$t1("获取验证码"),
26
26
  smsTimer: null,
27
27
  isRememberPassword: false,
28
28
  loginForm: {
29
- username: '',
30
- password: ''
29
+ username: "",
30
+ password: "",
31
31
  },
32
32
  loginRules: {
33
33
  username: [
34
34
  {
35
35
  required: true,
36
- trigger: 'blur'
37
- }
36
+ trigger: "blur",
37
+ },
38
38
  ],
39
39
  password: [
40
40
  {
41
41
  required: true,
42
- trigger: 'blur'
43
- }
44
- ]
42
+ trigger: "blur",
43
+ },
44
+ ],
45
45
  },
46
- passwordType: 'password',
46
+ passwordType: "password",
47
47
  capsTooltip: false,
48
48
  loading: false,
49
49
  showDialog: false,
50
50
  redirect: undefined,
51
51
  otherQuery: {},
52
52
  // isChangeBackground: false,
53
- backgroundClass: '',
53
+ backgroundClass: "",
54
54
  hasLogin: false,
55
55
  showView: false,
56
56
  loginForm2: {
57
57
  username: null,
58
- smsCode: null
58
+ smsCode: null,
59
59
  },
60
60
  activeName: "first",
61
61
  searchParam: {},
@@ -69,12 +69,12 @@ export default {
69
69
  settingConfig: settingConfig,
70
70
  qrExpired: false,
71
71
  loginConfig: {},
72
- imageUrl: '',
73
- loginMethod: '',
72
+ imageUrl: "",
73
+ loginMethod: "",
74
74
 
75
- accountLoagin:true,
76
- phoneLogin:false,
77
- qrLogin:false,
75
+ accountLoagin: true,
76
+ phoneLogin: false,
77
+ qrLogin: false,
78
78
  };
79
79
  },
80
80
  watch: {
@@ -86,8 +86,8 @@ export default {
86
86
  this.otherQuery = this.getOtherQuery(query);
87
87
  }
88
88
  },
89
- immediate: true
90
- }
89
+ immediate: true,
90
+ },
91
91
  },
92
92
  beforeDestroy() {
93
93
  this.clearQrLoginTimer();
@@ -105,55 +105,56 @@ export default {
105
105
  },
106
106
  destroyed() {
107
107
  // window.removeEventListener('storage', this.afterQRScan)
108
- window.removeEventListener('keydown', this.keyDown, false);
108
+ window.removeEventListener("keydown", this.keyDown, false);
109
109
  },
110
110
  methods: {
111
- handleLoginConfig(){
111
+ handleLoginConfig() {
112
112
  let loginConfig = this.$store.getters.loginConfig || {};
113
113
  this.loginConfig = loginConfig;
114
114
  this.initImage();
115
115
  this.initLoginMethod();
116
116
  },
117
- initImage(){
117
+ initImage() {
118
118
  //初始化登录图片
119
119
  let loginConfig = this.loginConfig;
120
- if(loginConfig?.attachments?.length){
121
- this.imageUrl = loginConfig.attachments[0].domain + loginConfig.attachments[0].source;
120
+ if (loginConfig?.attachments?.length) {
121
+ this.imageUrl =
122
+ loginConfig.attachments[0].domain + loginConfig.attachments[0].source;
122
123
  }
123
124
  },
124
125
 
125
- initLoginMethod(){
126
+ initLoginMethod() {
126
127
  let loginConfig = this.loginConfig?.login_method;
127
- if(loginConfig?.length){
128
+ if (loginConfig?.length) {
128
129
  this.accountLoagin = loginConfig.includes(1);
129
130
  this.phoneLogin = loginConfig.includes(2);
130
131
  this.qrLogin = loginConfig.includes(3);
131
- if(this.accountLoagin){
132
+ if (this.accountLoagin) {
132
133
  this.activeName = "first";
133
- }else if(this.phoneLogin){
134
+ } else if (this.phoneLogin) {
134
135
  this.activeName = "second";
135
- }else if(this.qrLogin){
136
+ } else if (this.qrLogin) {
136
137
  this.activeName = "third";
137
138
  this.$nextTick(() => {
138
139
  this.initQR();
139
- })
140
+ });
140
141
  }
141
- }else{
142
+ } else {
142
143
  this.accountLoagin = true;
143
144
  this.phoneLogin = settingConfig.mobileLoginEnabled;
144
145
  this.qrLogin = settingConfig.qrLoginEnabled;
145
146
  }
146
147
  },
147
- initLang(){
148
+ initLang() {
148
149
  let lang = this.$route.query.lang;
149
- if(!lang && !!this.lang){
150
- if(typeof this.lang === "function"){
150
+ if (!lang && !!this.lang) {
151
+ if (typeof this.lang === "function") {
151
152
  lang = this.lang();
152
- }else{
153
+ } else {
153
154
  lang = this.lang;
154
155
  }
155
156
  }
156
- if(lang){
157
+ if (lang) {
157
158
  this.$i18n.locale = lang;
158
159
  localStorage.setItem("i18n-lang", lang);
159
160
  }
@@ -170,12 +171,19 @@ export default {
170
171
  }
171
172
  // 获取URL参数
172
173
  const urlParams = this.$route.query;
173
- if (ssoParams.ticket || "bear_portalsso" == urlParams.access || urlParams.ticket) {
174
+ if (
175
+ ssoParams.ticket ||
176
+ "bear_portalsso" == urlParams.access ||
177
+ urlParams.ticket
178
+ ) {
174
179
  //小熊单点登录
175
180
  this.bearSsoLogin();
176
181
  } else if (searchParam.gatewayToken) {
177
- this.showContent = false
182
+ this.showContent = false;
178
183
  this.handleGatewayTokenLogin();
184
+ } else if (searchParam.xtoken) {
185
+ this.showContent = false;
186
+ this.handleXTokenLogin();
179
187
  } else {
180
188
  //正常登陆
181
189
  this.login();
@@ -183,22 +191,22 @@ export default {
183
191
  },
184
192
  keyDown(e) {
185
193
  //如果是回车则执行登录方法
186
- if (e.keyCode == 13 && e.target.nodeName != 'INPUT') {
187
- let closeBtn = document.querySelector('.el-dialog__close');
194
+ if (e.keyCode == 13 && e.target.nodeName != "INPUT") {
195
+ let closeBtn = document.querySelector(".el-dialog__close");
188
196
  closeBtn && closeBtn.click();
189
- if (this.activeName == "third") return
197
+ if (this.activeName == "third") return;
190
198
  this.handleLogin();
191
199
  }
192
200
  },
193
201
  checkCapslock(e) {
194
- const {key} = e;
195
- this.capsTooltip = key && key.length === 1 && (key >= 'A' && key <= 'Z');
202
+ const { key } = e;
203
+ this.capsTooltip = key && key.length === 1 && key >= "A" && key <= "Z";
196
204
  },
197
205
  showPwd() {
198
- if (this.passwordType === 'password') {
199
- this.passwordType = '';
206
+ if (this.passwordType === "password") {
207
+ this.passwordType = "";
200
208
  } else {
201
- this.passwordType = 'password';
209
+ this.passwordType = "password";
202
210
  }
203
211
  this.$nextTick(() => {
204
212
  this.$refs.password.focus();
@@ -206,54 +214,54 @@ export default {
206
214
  },
207
215
  handleLogin() {
208
216
  let loadingObj = null;
209
- let reqData = {}
210
- if (this.activeName == 'first') {
217
+ let reqData = {};
218
+ if (this.activeName == "first") {
211
219
  //账号密码登录
212
220
  loadingObj = this.$baseLoading();
213
- let password = encode(this.loginForm.password + '');
214
- reqData = {username: this.loginForm.username, password: password};
221
+ let password = encode(this.loginForm.password + "");
222
+ reqData = { username: this.loginForm.username, password: password };
215
223
  } else {
216
224
  //手机验证码登录
217
225
  let username = this.loginForm2.username;
218
226
  let smsCode = this.loginForm2.smsCode;
219
227
  if (!username || !smsCode) {
220
- this.$baseAlert(this.$t1('请输入手机号和验证码'));
228
+ this.$baseAlert(this.$t1("请输入手机号和验证码"));
221
229
  return;
222
230
  }
223
231
  loadingObj = this.$baseLoading();
224
- reqData = {username: username, smsCode: smsCode, "mode": "sms"}
232
+ reqData = { username: username, smsCode: smsCode, mode: "sms" };
225
233
  }
226
234
 
227
235
  if (settingConfig.i18nEnabled) {
228
236
  //登录传语种到后台
229
- let language = this.$i18n?.locale
237
+ let language = this.$i18n?.locale;
230
238
  if (language && language != "zh") {
231
239
  reqData.language = language;
232
240
  }
233
241
  }
234
242
 
235
243
  this.$store
236
- .dispatch('user/login2', reqData)
237
- .then(res => {
244
+ .dispatch("user/login2", reqData)
245
+ .then((res) => {
238
246
  setTimeout(function () {
239
247
  loadingObj.close();
240
248
  }, 200);
241
- if (res.type == 'success') {
242
- localStorage.removeItem('currentMenuId');
249
+ if (res.type == "success") {
250
+ localStorage.removeItem("currentMenuId");
243
251
  this.rememberPassword();
244
252
  /*this.$router.push({
245
253
  path: '/'
246
254
  });*/
247
255
  this.loading = false;
248
- window.removeEventListener('keydown', this.keyDown, false);
249
- this.handleRedirectUrl()
256
+ window.removeEventListener("keydown", this.keyDown, false);
257
+ this.handleRedirectUrl();
250
258
  } else {
251
259
  setTimeout(function () {
252
260
  loadingObj.close();
253
261
  }, 200);
254
262
  }
255
263
  })
256
- .catch(e => {
264
+ .catch((e) => {
257
265
  this.loading = false;
258
266
  setTimeout(function () {
259
267
  loadingObj.close();
@@ -263,21 +271,21 @@ export default {
263
271
  },
264
272
  getOtherQuery(query) {
265
273
  return Object.keys(query).reduce((acc, cur) => {
266
- if (cur !== 'redirect') {
274
+ if (cur !== "redirect") {
267
275
  acc[cur] = query[cur];
268
276
  }
269
277
  return acc;
270
278
  }, {});
271
279
  },
272
280
  initPassword() {
273
- var u = localStorage.getItem('login_info');
281
+ var u = localStorage.getItem("login_info");
274
282
  var login_info;
275
283
  if (u) {
276
284
  login_info = JSON.parse(u);
277
285
  var username = login_info.username;
278
286
  var password = login_info.password;
279
287
  var isRememberPassword = login_info.isRememberPassword;
280
- if (isRememberPassword == 'true') {
288
+ if (isRememberPassword == "true") {
281
289
  this.isRememberPassword = true;
282
290
  this.loginForm.username = username;
283
291
  this.loginForm.password = password;
@@ -288,26 +296,40 @@ export default {
288
296
  if (this.isRememberPassword) {
289
297
  var username = this.loginForm.username;
290
298
  var password = this.loginForm.password;
291
- var login_info = {username: username, password: password, isRememberPassword: 'true'};
292
- localStorage.setItem('login_info', JSON.stringify(login_info));
299
+ var login_info = {
300
+ username: username,
301
+ password: password,
302
+ isRememberPassword: "true",
303
+ };
304
+ localStorage.setItem("login_info", JSON.stringify(login_info));
293
305
  } else {
294
- localStorage.removeItem('login_info');
306
+ localStorage.removeItem("login_info");
295
307
  }
296
308
  },
297
309
  changeBackground() {
298
- if (location.host.indexOf('pcp.sc.5mall.com') >= 0 || location.host.indexOf('pip.bears.com.cn') >= 0) {
299
- this.backgroundClass = 'pcp';
300
- } else if (location.host.indexOf('chigo.sc.5mall.com') >= 0) {
301
- this.backgroundClass = 'chigo';
310
+ if (
311
+ location.host.indexOf("pcp.sc.5mall.com") >= 0 ||
312
+ location.host.indexOf("pip.bears.com.cn") >= 0
313
+ ) {
314
+ this.backgroundClass = "pcp";
315
+ } else if (location.host.indexOf("chigo.sc.5mall.com") >= 0) {
316
+ this.backgroundClass = "chigo";
302
317
  } else {
303
- this.backgroundClass = 'tc';
318
+ this.backgroundClass = "tc";
304
319
  }
305
320
  },
306
321
  login() {
307
- let url = window.MAIN_WEB_PREFIX + '/index.html/#/login';
308
- if (self != top && (process.env.NODE_ENV == 'development' || self.host == parent.host)) {
322
+ let url = window.MAIN_WEB_PREFIX + "/index.html/#/login";
323
+ if (
324
+ self != top &&
325
+ (process.env.NODE_ENV == "development" || self.host == parent.host)
326
+ ) {
309
327
  parent.location.href = url;
310
- } else if (process.env.NODE_ENV !== 'development' && window.MAIN_WEB_PREFIX && window.MAIN_WEB_PREFIX != window.WEB_PREFIX) {
328
+ } else if (
329
+ process.env.NODE_ENV !== "development" &&
330
+ window.MAIN_WEB_PREFIX &&
331
+ window.MAIN_WEB_PREFIX != window.WEB_PREFIX
332
+ ) {
311
333
  window.location.href = url;
312
334
  }
313
335
  /* let lang = this.$route.query.lang;
@@ -318,14 +340,13 @@ export default {
318
340
  } */
319
341
  // window.addEventListener('storage', this.afterQRScan)
320
342
 
321
- window.removeEventListener('keydown', this.keyDown, false);
322
- window.addEventListener('keydown', this.keyDown, false);
343
+ window.removeEventListener("keydown", this.keyDown, false);
344
+ window.addEventListener("keydown", this.keyDown, false);
323
345
  this.changeBackground();
324
346
  this.initPassword();
325
347
  this.showView = true;
326
348
  },
327
349
  bearSsoLogin() {
328
-
329
350
  //小熊SSO返回判断--目前因为小熊单点返回ticket有问题要特殊处理
330
351
  let urlParams = {};
331
352
  if (location.search) {
@@ -340,26 +361,26 @@ export default {
340
361
 
341
362
  //&& loginPath ===window.location.href
342
363
  if (urlParams.ticket) {
343
- console.log("进入回调方法=================")
344
- this.$store.dispatch('user/clearToken')
364
+ console.log("进入回调方法=================");
365
+ this.$store.dispatch("user/clearToken");
345
366
  this.$http({
346
- url: USER_PREFIX + '/auth/idmLogin',
367
+ url: USER_PREFIX + "/auth/idmLogin",
347
368
  method: `post`,
348
- data: {ticket: urlParams.ticket},
369
+ data: { ticket: urlParams.ticket },
349
370
  isLoading: true,
350
371
  modalStrictly: true,
351
- success: res => {
372
+ success: (res) => {
352
373
  let token = res.objx;
353
- console.log("token", token)
354
- this.$store.dispatch('user/addToken', {token}).then(res => {
355
- localStorage.removeItem('currentMenuId');
374
+ console.log("token", token);
375
+ this.$store.dispatch("user/addToken", { token }).then((res) => {
376
+ localStorage.removeItem("currentMenuId");
356
377
  this.rememberPassword();
357
378
  /*this.$router.push({
358
379
  path: '/'
359
380
  });*/
360
381
  this.loading = false;
361
- window.removeEventListener('keydown', this.keyDown, false);
362
- let redirect = sessionStorage.getItem("loginRedirect")
382
+ window.removeEventListener("keydown", this.keyDown, false);
383
+ let redirect = sessionStorage.getItem("loginRedirect");
363
384
  this.handleRedirectUrl(redirect);
364
385
  });
365
386
  },
@@ -368,20 +389,20 @@ export default {
368
389
  },
369
390
  error: () => {
370
391
  this.showView = true;
371
- }
392
+ },
372
393
  });
373
394
  } else {
374
- console.log("进入单点方法")
395
+ console.log("进入单点方法");
375
396
  let redirect = this.$route.query.redirect || "";
376
397
  this.$http({
377
- url: USER_PREFIX + '/auth/idmLoginUrl',
398
+ url: USER_PREFIX + "/auth/idmLoginUrl",
378
399
  method: `post`,
379
400
  data: {},
380
401
  isLoading: true,
381
402
  modalStrictly: true,
382
- success: res => {
383
- sessionStorage.setItem("loginRedirect", redirect)
384
- location.href = res.objx
403
+ success: (res) => {
404
+ sessionStorage.setItem("loginRedirect", redirect);
405
+ location.href = res.objx;
385
406
  // location.href = res.objx+"&redirect="+redirect;
386
407
  },
387
408
  fail: () => {
@@ -389,47 +410,48 @@ export default {
389
410
  },
390
411
  error: () => {
391
412
  this.showView = true;
392
- }
413
+ },
393
414
  });
394
415
  }
395
416
  },
396
417
  sendCode() {
397
418
  if (this.isCounting) {
398
- return
419
+ return;
399
420
  }
400
421
  let mobile = this.loginForm2.username;
401
422
  if (!mobile) {
402
423
  this.$baseAlert("请输入手机号");
403
- return
424
+ return;
404
425
  }
405
426
 
406
427
  this.$http({
407
- url: USER_PREFIX + '/auth/sendSmsCode',
428
+ url: USER_PREFIX + "/auth/sendSmsCode",
408
429
  method: `post`,
409
- data: {mobile: mobile},
430
+ data: { mobile: mobile },
410
431
  isLoading: true,
411
- success: res => {
432
+ success: (res) => {
412
433
  this.$message({
413
434
  message: res.content,
414
- type: 'success',
415
- duration: 1500
435
+ type: "success",
436
+ duration: 1500,
416
437
  });
417
- this.isCounting = true
418
- this.countdown = 60
419
- this.buttonText = this.$t1('60秒后重新获取')
438
+ this.isCounting = true;
439
+ this.countdown = 60;
440
+ this.buttonText = this.$t1("60秒后重新获取");
420
441
  this.clearSmsTimer();
421
442
  this.smsTimer = setInterval(() => {
422
443
  this.countdown--;
423
- this.buttonText = this.$t1('{time}秒后重新获取',{time:this.countdown})
444
+ this.buttonText = this.$t1("{time}秒后重新获取", {
445
+ time: this.countdown,
446
+ });
424
447
  if (this.countdown == 0) {
425
448
  this.clearSmsTimer();
426
- this.isCounting = false
427
- this.buttonText = this.$t1('获取验证码')
449
+ this.isCounting = false;
450
+ this.buttonText = this.$t1("获取验证码");
428
451
  }
429
- }, 1000)
430
- }
452
+ }, 1000);
453
+ },
431
454
  });
432
-
433
455
  },
434
456
  clearSmsTimer() {
435
457
  if (this.smsTimer) {
@@ -437,31 +459,30 @@ export default {
437
459
  this.smsTimer = null;
438
460
  }
439
461
  },
440
- mobileLogin() {
441
-
442
- },
462
+ mobileLogin() {},
443
463
  handleRedirectUrl(redirect) {
444
- redirect = redirect || this.$route.query.redirect
464
+ redirect = redirect || this.$route.query.redirect;
445
465
  let path = null;
446
466
  if (redirect && redirect.startsWith("/outLinkView")) {
447
467
  path = this.addParamToUrl(redirect, "hasToken", "true");
448
468
  } else {
449
- path = '/';
469
+ path = "/";
450
470
  }
451
471
  this.getWebPrefix((webPrefix) => {
452
- let prefix = webPrefix ? ('/' + webPrefix) : '';
472
+ let prefix = webPrefix ? "/" + webPrefix : "";
453
473
  let ssotoken = this.searchParam.gatewayToken;
474
+ let xtoken = this.searchParam.xtoken;
454
475
  if (prefix && prefix !== window.WEB_PREFIX) {
455
- location.href = prefix + '/index.html' + path
456
- } else if (!!ssotoken) {
476
+ location.href = prefix + "/index.html" + path;
477
+ } else if (!!ssotoken || !!xtoken) {
457
478
  prefix = prefix || window.WEB_PREFIX;
458
- location.href = prefix + '/index.html' + path
479
+ location.href = prefix + "/index.html" + path;
459
480
  } else {
460
481
  this.$router.push({
461
- path: path
482
+ path: path,
462
483
  });
463
484
  }
464
- })
485
+ });
465
486
  /*if (redirect && redirect.startsWith("/outLinkView")) {
466
487
  let path = this.addParamToUrl(redirect, "hasToken", "true");
467
488
  this.$router.push({
@@ -474,64 +495,79 @@ export default {
474
495
  }*/
475
496
  },
476
497
  addParamToUrl(url, paramKey, paramValue) {
477
- var regex = new RegExp('([?&])' + paramKey + '=.*?(&|$)', 'i');
498
+ var regex = new RegExp("([?&])" + paramKey + "=.*?(&|$)", "i");
478
499
  if (url.match(regex)) {
479
- url = url.replace(regex, '$1' + paramKey + '=' + paramValue + '$2');
500
+ url = url.replace(regex, "$1" + paramKey + "=" + paramValue + "$2");
480
501
  } else {
481
- url += (url.indexOf('?') === -1 ? '?' : '&') + paramKey + '=' + paramValue;
502
+ url +=
503
+ (url.indexOf("?") === -1 ? "?" : "&") + paramKey + "=" + paramValue;
482
504
  }
483
505
  return url;
484
506
  },
485
507
  getWebPrefix(callback) {
486
508
  this.$http({
487
- url: USER_PREFIX + '/auth/getWebPrefix',
509
+ url: USER_PREFIX + "/auth/getWebPrefix",
488
510
  method: `post`,
489
511
  data: {},
490
512
  isLoading: true,
491
- success: res => {
492
- let webPrefix = res.objx
493
- callback && callback(webPrefix)
494
- }
513
+ success: (res) => {
514
+ let webPrefix = res.objx;
515
+ callback && callback(webPrefix);
516
+ },
495
517
  });
496
518
  },
497
519
  handleGatewayTokenLogin() {
498
- let ssotoken = this.searchParam.gatewayToken
520
+ let ssotoken = this.searchParam.gatewayToken;
521
+ let companycode = this.searchParam.entCode;
499
522
  this.$store
500
- .dispatch('user/login2', {ssotoken})
501
- .then(res => {
523
+ .dispatch("user/login2", { ssotoken, companycode })
524
+ .then((res) => {
502
525
  if (res.type == "success") {
503
526
  this.$nextTick(() => {
504
- this.handleRedirectUrl()
527
+ this.handleRedirectUrl();
505
528
  });
506
529
  }
507
530
  });
508
531
  },
509
-
532
+ handleXTokenLogin() {
533
+ let xtoken = this.searchParam.xtoken;
534
+ let companycode = this.searchParam.entCode;
535
+ this.$store
536
+ .dispatch("user/login2", { xtoken, companycode })
537
+ .then((res) => {
538
+ if (res.type == "success") {
539
+ this.handleRedirectUrl();
540
+ }
541
+ });
542
+ },
510
543
  /**二维码登录begin*/
511
544
  guid() {
512
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (t) {
513
- var e = 16 * Math.random() | 0;
514
- return ("x" == t ? e : 3 & e | 8).toString(16);
515
- });
545
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(
546
+ /[xy]/g,
547
+ function (t) {
548
+ var e = (16 * Math.random()) | 0;
549
+ return ("x" == t ? e : (3 & e) | 8).toString(16);
550
+ }
551
+ );
516
552
  },
517
553
  initQR() {
518
554
  this.clearQrLoginTimer();
519
555
  this.qrExpired = true;
520
- let option = {width: 300, height: 300};
556
+ let option = { width: 300, height: 300 };
521
557
  this.qrContent = this.guid();
522
- this.createQR(this.qrContent, option).then(url => {
558
+ this.createQR(this.qrContent, option).then((url) => {
523
559
  this.qrExpired = false;
524
- this.qrBase64 = url
560
+ this.qrBase64 = url;
525
561
  this.createQrLoginTimer();
526
- })
562
+ });
527
563
  },
528
564
  // 生成二维码
529
565
  createQR(content, options) {
530
566
  return new Promise((resolve, reject) => {
531
- QRcode.toDataURL(content, options).then(url => {
532
- resolve(url)
533
- })
534
- })
567
+ QRcode.toDataURL(content, options).then((url) => {
568
+ resolve(url);
569
+ });
570
+ });
535
571
  },
536
572
  changeTab() {
537
573
  // this.initQR();
@@ -544,58 +580,57 @@ export default {
544
580
  },
545
581
  clearQrLoginTimer() {
546
582
  if (this.qrTimer1) {
547
- clearTimeout(this.qrTimer1)
583
+ clearTimeout(this.qrTimer1);
548
584
  this.qrTimer1 = null;
549
585
  }
550
586
  if (this.qrTimer2) {
551
- clearTimeout(this.qrTimer2)
587
+ clearTimeout(this.qrTimer2);
552
588
  this.qrTimer2 = null;
553
589
  }
554
590
  },
555
591
  createQrLoginTimer() {
556
- this.checkQrLoginTimerHanlde()
592
+ this.checkQrLoginTimerHanlde();
557
593
  this.qrTimer2 = setTimeout(() => {
558
594
  this.qrExpired = true;
559
595
  this.clearQrLoginTimer();
560
- }, 60000)
596
+ }, 60000);
561
597
  },
562
598
  checkQrLoginTimerHanlde() {
563
599
  this.qrTimer1 = setTimeout(() => {
564
600
  this.checkQrLoginStatusHanlde();
565
- }, 3000)
601
+ }, 3000);
566
602
  },
567
603
  checkQrLoginStatusHanlde() {
568
604
  if (this.qrExpired) {
569
- return
605
+ return;
570
606
  }
571
607
  this.$http({
572
- url: USER_PREFIX + '/auth/login',
608
+ url: USER_PREFIX + "/auth/login",
573
609
  method: `post`,
574
- data: {as: this.qrContent},
610
+ data: { as: this.qrContent },
575
611
  // isLoading: true,
576
612
  failMsg: false,
577
- success: res => {
613
+ success: (res) => {
578
614
  let token = res.objx;
579
615
  if (token) {
580
616
  this.$message({
581
- message: this.$t1('登录成功'),
582
- type: 'success'
617
+ message: this.$t1("登录成功"),
618
+ type: "success",
583
619
  });
584
620
  this.clearQrLoginTimer();
585
- this.$store.dispatch('user/addToken', {token}).then(res => {
586
- localStorage.removeItem('currentMenuId');
621
+ this.$store.dispatch("user/addToken", { token }).then((res) => {
622
+ localStorage.removeItem("currentMenuId");
587
623
  this.rememberPassword();
588
624
  this.loading = false;
589
- window.removeEventListener('keydown', this.keyDown, false);
625
+ window.removeEventListener("keydown", this.keyDown, false);
590
626
  this.handleRedirectUrl();
591
627
  });
592
628
  } else {
593
629
  this.checkQrLoginTimerHanlde();
594
630
  }
595
- }
631
+ },
596
632
  });
597
- }
633
+ },
598
634
  /**二维码登录end*/
599
-
600
- }
601
- }
635
+ },
636
+ };