@jctrans-materials/comps-vue3 1.0.42-beta.1 → 1.0.42-beta.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/dist/components/JcLoginDialog/cmps/AuthBottomTip.d.ts +3 -0
- package/dist/components/JcLoginDialog/composables/useAuthLogin.d.ts +34 -0
- package/dist/components/JcLoginDialog/composables/useLoginForm.d.ts +20 -0
- package/dist/components/JcLoginDialog/composables/useThirdPartyLogin.d.ts +22 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +367 -100
- package/package.json +2 -2
package/dist/index.esm.js
CHANGED
|
@@ -11252,6 +11252,7 @@ function useThirdPartyLogin$1(config) {
|
|
|
11252
11252
|
}
|
|
11253
11253
|
};
|
|
11254
11254
|
const handleLoginSuccess = (res) => {
|
|
11255
|
+
var _a;
|
|
11255
11256
|
const data = res.data || res;
|
|
11256
11257
|
console.log("🍉 处理登录结果:", data);
|
|
11257
11258
|
loginResult.value = data;
|
|
@@ -11265,6 +11266,10 @@ function useThirdPartyLogin$1(config) {
|
|
|
11265
11266
|
(data == null ? void 0 : data.thirdPartyInfo) || {},
|
|
11266
11267
|
(data == null ? void 0 : data.mobileEmailList) || []
|
|
11267
11268
|
);
|
|
11269
|
+
setThirdPartySessions$1(
|
|
11270
|
+
(data == null ? void 0 : data.thirdPartyInfo) || {},
|
|
11271
|
+
(data == null ? void 0 : data.mobileEmailList) || []
|
|
11272
|
+
);
|
|
11268
11273
|
if (list.length > 0) {
|
|
11269
11274
|
console.log("👉 进入绑定流程");
|
|
11270
11275
|
bindList.value = list;
|
|
@@ -11275,11 +11280,17 @@ function useThirdPartyLogin$1(config) {
|
|
|
11275
11280
|
console.log("👉 直接登录成功,准备跳转");
|
|
11276
11281
|
isBindDialogVisible.value = false;
|
|
11277
11282
|
isRegisterVisible.value = false;
|
|
11283
|
+
setTokenAll(data.result);
|
|
11284
|
+
if ((_a = data.result) == null ? void 0 : _a.improveComp) {
|
|
11285
|
+
if (config.onNeedComplete) {
|
|
11286
|
+
config.onNeedComplete(data);
|
|
11287
|
+
}
|
|
11288
|
+
return;
|
|
11289
|
+
}
|
|
11278
11290
|
if (unref(config.test)) {
|
|
11279
11291
|
logTestLoginResult("第三方(Facebook/LinkedIn)登录", data);
|
|
11280
11292
|
return;
|
|
11281
11293
|
}
|
|
11282
|
-
setTokenAll(data.result);
|
|
11283
11294
|
if (config.onSuccess) {
|
|
11284
11295
|
config.onSuccess(data);
|
|
11285
11296
|
} else {
|
|
@@ -12706,6 +12717,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
|
12706
12717
|
disabledTabs.mobile = false;
|
|
12707
12718
|
codeVerifyUuid.value = "";
|
|
12708
12719
|
verifyData.value = null;
|
|
12720
|
+
verifyVisible.value = false;
|
|
12709
12721
|
loading.value = false;
|
|
12710
12722
|
}
|
|
12711
12723
|
return (_ctx, _cache) => {
|
|
@@ -12909,7 +12921,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
|
|
|
12909
12921
|
};
|
|
12910
12922
|
}
|
|
12911
12923
|
});
|
|
12912
|
-
const index$4 = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-
|
|
12924
|
+
const index$4 = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-3f11f601"]]);
|
|
12913
12925
|
const __vite_glob_0_4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
12914
12926
|
__proto__: null,
|
|
12915
12927
|
default: index$4
|
|
@@ -22357,13 +22369,13 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
|
22357
22369
|
onClick: applyJoin
|
|
22358
22370
|
}, [
|
|
22359
22371
|
createTextVNode(toDisplayString(register_join_in.value) + " ", 1),
|
|
22360
|
-
_cache[0] || (_cache[0] = createStaticVNode('<svg width="8" height="12" viewBox="0 0 8 12" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-
|
|
22372
|
+
_cache[0] || (_cache[0] = createStaticVNode('<svg width="8" height="12" viewBox="0 0 8 12" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-d15f8d69><g id="icon/more/8" clip-path="url(#clip0_1016_6109)" data-v-d15f8d69><path id="Vector 79" d="M2 3L5 6L2 9" stroke="white" stroke-linejoin="round" data-v-d15f8d69></path></g><defs data-v-d15f8d69><clipPath id="clip0_1016_6109" data-v-d15f8d69><rect width="8" height="12" fill="white" data-v-d15f8d69></rect></clipPath></defs></svg>', 1))
|
|
22361
22373
|
])
|
|
22362
22374
|
]);
|
|
22363
22375
|
};
|
|
22364
22376
|
}
|
|
22365
22377
|
});
|
|
22366
|
-
const ApplyJoinBtn = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-
|
|
22378
|
+
const ApplyJoinBtn = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-d15f8d69"]]);
|
|
22367
22379
|
const _sfc_main$d = {
|
|
22368
22380
|
name: "RegisterForm",
|
|
22369
22381
|
components: {
|
|
@@ -22393,29 +22405,50 @@ const _sfc_main$d = {
|
|
|
22393
22405
|
"third-party-click",
|
|
22394
22406
|
"register-step-change"
|
|
22395
22407
|
],
|
|
22408
|
+
// =========================================================================
|
|
22409
|
+
// Computed - 派生状态,根据表单数据和选中城市动态计算
|
|
22410
|
+
// =========================================================================
|
|
22396
22411
|
computed: {
|
|
22412
|
+
// 用户协议是否已勾选(仅读取 agree 字段值,用于外部快速判断)
|
|
22397
22413
|
isAgree() {
|
|
22398
22414
|
return this.form.agree;
|
|
22399
22415
|
},
|
|
22416
|
+
// countryId - 从 city 对象的 raw 数据中提取国家 ID
|
|
22417
|
+
// 数据来源兼容两种结构:
|
|
22418
|
+
// 1. 直接选择城市:city.raw.country.id
|
|
22419
|
+
// 2. 搜索结果:city.raw.city.countryId
|
|
22420
|
+
// 用于区分国内/海外,驱动手机号/邮箱切换以及区号数据加载
|
|
22400
22421
|
countryId() {
|
|
22401
22422
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
22402
22423
|
return ((_c = (_b = (_a = this.form.city) == null ? void 0 : _a.raw) == null ? void 0 : _b.country) == null ? void 0 : _c.id) || ((_g = (_f = (_e = (_d = this.form) == null ? void 0 : _d.city) == null ? void 0 : _e.raw) == null ? void 0 : _f.city) == null ? void 0 : _g.countryId);
|
|
22403
22424
|
},
|
|
22425
|
+
// cityId - 从 city 对象中提取城市 ID,提交注册时作为必填参数之一
|
|
22404
22426
|
cityId() {
|
|
22405
22427
|
var _a;
|
|
22406
22428
|
return (_a = this.form.city) == null ? void 0 : _a.id;
|
|
22407
22429
|
},
|
|
22430
|
+
// currentCountryIsChina - 判断当前所选城市是否在中国(countryId === 1)
|
|
22431
|
+
// 中国 → 显示手机号输入区(区号下拉 + 手机号);海外 → 显示企业邮箱输入区
|
|
22432
|
+
// 同时考虑 resistCompanyInfo(申请加入已有公司时传入的预设国家信息)
|
|
22408
22433
|
currentCountryIsChina() {
|
|
22409
22434
|
var _a;
|
|
22410
22435
|
const id = this.countryId || ((_a = this.resistCompanyInfo) == null ? void 0 : _a.countryId);
|
|
22411
22436
|
return [1].includes(Number(id));
|
|
22412
22437
|
},
|
|
22438
|
+
// currentCompanyLabel - 根据中英文环境和国家动态切换公司名输入框的 placeholder 标签
|
|
22439
|
+
// 中国 + 中文 → "公司中文名称";海外 + 中文 → "公司英文名称"
|
|
22440
|
+
// 中国 + 英文 → "Company Name in Chinese";海外 + 英文 → "Company Name in English"
|
|
22413
22441
|
currentCompanyLabel() {
|
|
22414
22442
|
return this.isEn ? this.currentCountryIsChina ? "Company Name in Chinese" : "Company Name in English" : this.currentCountryIsChina ? "公司中文名称" : "公司英文名称";
|
|
22415
22443
|
},
|
|
22444
|
+
// isTraderSector - 判断当前选择的行业是否为"货主"(Trade)
|
|
22445
|
+
// 货主行业无需填写公司名,Step2 中直接跳过公司名输入,仅展示勾选协议
|
|
22416
22446
|
isTraderSector() {
|
|
22417
22447
|
return this.form.sector === "Trade";
|
|
22418
22448
|
},
|
|
22449
|
+
// codeInputLabel - 动态生成验证码输入框上方的提示标签
|
|
22450
|
+
// 根据国内/海外分别显示 "验证码已发送至手机号 138****0000" 或 "验证码已发送至邮箱 t***@example.com"
|
|
22451
|
+
// 通过工具函数 buildCodeInputLabel 拼接展示文案,支持中英文切换
|
|
22419
22452
|
codeInputLabel() {
|
|
22420
22453
|
return buildCodeInputLabel({
|
|
22421
22454
|
isChina: this.currentCountryIsChina,
|
|
@@ -22425,47 +22458,74 @@ const _sfc_main$d = {
|
|
|
22425
22458
|
});
|
|
22426
22459
|
}
|
|
22427
22460
|
},
|
|
22461
|
+
// 当注册步骤切换时,通知父组件更新 Banner 显隐状态
|
|
22428
22462
|
watch: {
|
|
22429
22463
|
registerStep(newVal) {
|
|
22430
22464
|
this.$emit("register-step-change", newVal);
|
|
22431
22465
|
}
|
|
22432
22466
|
},
|
|
22467
|
+
// =========================================================================
|
|
22468
|
+
// data - 表单数据、校验规则、业务状态
|
|
22469
|
+
// =========================================================================
|
|
22433
22470
|
data() {
|
|
22434
22471
|
return {
|
|
22472
|
+
// 验证码是否可发送(由联系方式校验通过后置为 true)
|
|
22435
22473
|
codeReady: false,
|
|
22436
|
-
//
|
|
22474
|
+
// 公司查重结果:是否已存在英文/中文公司名,用于展示"申请加入"按钮
|
|
22437
22475
|
companyResistEn: false,
|
|
22438
22476
|
companyResistCn: false,
|
|
22477
|
+
// 滑块验证通过后保存的验证数据(uuid + code),用于获取验证码和提交注册
|
|
22439
22478
|
verifyData: {},
|
|
22440
|
-
// 注册分步状态:1 或 2
|
|
22479
|
+
// 注册分步状态:1(城市+联系方式) 或 2(验证码+行业+公司+协议)
|
|
22441
22480
|
registerStep: 1,
|
|
22442
|
-
// Step 1 进入 Step 2
|
|
22481
|
+
// Step 1 进入 Step 2 时快照当前联系方式,返回 Step 1 时用于判断是否需重置验证码
|
|
22443
22482
|
step1AccountSnapshot: "",
|
|
22483
|
+
// ===== 注册表单字段 =====
|
|
22444
22484
|
form: {
|
|
22445
22485
|
city: null,
|
|
22486
|
+
// 城市选择器绑定值(JcSearch 对象)
|
|
22446
22487
|
cityId: "",
|
|
22488
|
+
// 城市 ID
|
|
22447
22489
|
companyName: "",
|
|
22490
|
+
// 公司名称(中文或英文,取决于国家)
|
|
22448
22491
|
countryId: "",
|
|
22492
|
+
// 国家 ID(从城市数据中提取)
|
|
22449
22493
|
email: "",
|
|
22494
|
+
// 海外用户的邮箱
|
|
22450
22495
|
phone: "",
|
|
22496
|
+
// 国内用户的手机号
|
|
22451
22497
|
code: "",
|
|
22498
|
+
// 4 位验证码
|
|
22452
22499
|
sector: "Logistics",
|
|
22500
|
+
// 行业类型,默认"货代"
|
|
22453
22501
|
agree: false,
|
|
22502
|
+
// 是否同意用户协议
|
|
22454
22503
|
useKq: false,
|
|
22504
|
+
// 是否使用快企查重(ChineseCompanySearch 组件回传)
|
|
22455
22505
|
kqCode: "",
|
|
22506
|
+
// 快企查重编码
|
|
22456
22507
|
kqInfo: null,
|
|
22508
|
+
// 快企查重返回的公司信息对象
|
|
22457
22509
|
areaCode: "+86",
|
|
22510
|
+
// 手机区号(默认中国 +86)
|
|
22458
22511
|
nameCn: "",
|
|
22512
|
+
// 中文姓名(申请加入已有公司时使用)
|
|
22459
22513
|
nameEn: "",
|
|
22514
|
+
// 英文姓名
|
|
22460
22515
|
firstName: "",
|
|
22516
|
+
// 名(海外用户申请加入已有公司时使用)
|
|
22461
22517
|
lastName: ""
|
|
22518
|
+
// 姓(海外用户申请加入已有公司时使用)
|
|
22462
22519
|
},
|
|
22520
|
+
// 行业类型选项列表(由接口动态获取,本地默认为三个选项)
|
|
22463
22521
|
sectors: [
|
|
22464
22522
|
{ cn: "货代", en: "Freight Forwarder", value: "Logistics" },
|
|
22465
22523
|
{ cn: "货主", en: "Trader", value: "Trade" },
|
|
22466
22524
|
{ cn: "衍生产品供应商", en: "Vendor", value: "Service" }
|
|
22467
22525
|
],
|
|
22526
|
+
// ===== 表单校验规则 =====
|
|
22468
22527
|
rules: {
|
|
22528
|
+
// city: 城市必选,change 和 blur 时触发
|
|
22469
22529
|
city: [
|
|
22470
22530
|
{
|
|
22471
22531
|
required: true,
|
|
@@ -22473,6 +22533,7 @@ const _sfc_main$d = {
|
|
|
22473
22533
|
trigger: ["change", "blur"]
|
|
22474
22534
|
}
|
|
22475
22535
|
],
|
|
22536
|
+
// companyName: 公司名校验(货主行业跳过;通过 validateCompanyName 进行业务校验)
|
|
22476
22537
|
companyName: [
|
|
22477
22538
|
{
|
|
22478
22539
|
required: true,
|
|
@@ -22486,6 +22547,7 @@ const _sfc_main$d = {
|
|
|
22486
22547
|
trigger: "blur"
|
|
22487
22548
|
}
|
|
22488
22549
|
],
|
|
22550
|
+
// nameCn: 中文姓名校验(仅在"已有公司 + 中国区"场景下生效),调用 validateName 校验中文名
|
|
22489
22551
|
nameCn: [
|
|
22490
22552
|
{
|
|
22491
22553
|
required: true,
|
|
@@ -22499,6 +22561,7 @@ const _sfc_main$d = {
|
|
|
22499
22561
|
trigger: "blur"
|
|
22500
22562
|
}
|
|
22501
22563
|
],
|
|
22564
|
+
// firstName: 名校验(仅在"已有公司 + 海外区"场景下生效),调用 validateName 校验英文名
|
|
22502
22565
|
firstName: [
|
|
22503
22566
|
{
|
|
22504
22567
|
required: true,
|
|
@@ -22512,6 +22575,7 @@ const _sfc_main$d = {
|
|
|
22512
22575
|
trigger: "blur"
|
|
22513
22576
|
}
|
|
22514
22577
|
],
|
|
22578
|
+
// lastName: 姓校验(仅在"已有公司 + 海外区"场景下生效)
|
|
22515
22579
|
lastName: [
|
|
22516
22580
|
{
|
|
22517
22581
|
required: true,
|
|
@@ -22525,6 +22589,7 @@ const _sfc_main$d = {
|
|
|
22525
22589
|
trigger: "blur"
|
|
22526
22590
|
}
|
|
22527
22591
|
],
|
|
22592
|
+
// email: 邮箱格式校验(仅在海外区生效),调用 validateUserEmail 验证
|
|
22528
22593
|
email: [
|
|
22529
22594
|
{
|
|
22530
22595
|
required: true,
|
|
@@ -22532,6 +22597,7 @@ const _sfc_main$d = {
|
|
|
22532
22597
|
trigger: "blur"
|
|
22533
22598
|
}
|
|
22534
22599
|
],
|
|
22600
|
+
// phone: 手机号格式校验(仅在中国区生效),调用 validateUserMobilefive 验证
|
|
22535
22601
|
phone: [
|
|
22536
22602
|
{
|
|
22537
22603
|
required: true,
|
|
@@ -22539,6 +22605,7 @@ const _sfc_main$d = {
|
|
|
22539
22605
|
trigger: "blur"
|
|
22540
22606
|
}
|
|
22541
22607
|
],
|
|
22608
|
+
// code: 4 位验证码校验,调用 validateVerifyCode 验证格式和必填
|
|
22542
22609
|
code: [
|
|
22543
22610
|
{
|
|
22544
22611
|
required: true,
|
|
@@ -22546,6 +22613,7 @@ const _sfc_main$d = {
|
|
|
22546
22613
|
trigger: "blur"
|
|
22547
22614
|
}
|
|
22548
22615
|
],
|
|
22616
|
+
// agree: 用户协议复选框必勾选,未勾选时显示提示
|
|
22549
22617
|
agree: [
|
|
22550
22618
|
{
|
|
22551
22619
|
required: true,
|
|
@@ -22564,27 +22632,38 @@ const _sfc_main$d = {
|
|
|
22564
22632
|
}
|
|
22565
22633
|
]
|
|
22566
22634
|
},
|
|
22635
|
+
// 验证码倒计时中,防止用户重复发送
|
|
22567
22636
|
isCounting: false,
|
|
22637
|
+
// 区号列表数据(从接口获取)
|
|
22568
22638
|
areaCodeData: [],
|
|
22639
|
+
// 短信验证码发送后返回的 UID,提交注册时需回传后端
|
|
22569
22640
|
mobileUid: "",
|
|
22570
|
-
//
|
|
22641
|
+
// 邮箱验证码发送后返回的 UID,提交注册时需回传后端
|
|
22571
22642
|
emailUid: "",
|
|
22572
|
-
//
|
|
22643
|
+
// 是否展示已有公司卡片(true → 申请加入模式;false → 新设公司模式)
|
|
22573
22644
|
hasResistCompany: false,
|
|
22645
|
+
// 已有公司信息对象(compId, compNameCn, compNameEn, cityNameCn 等)
|
|
22574
22646
|
resistCompanyInfo: null,
|
|
22575
|
-
//
|
|
22647
|
+
// 提交中状态,防止重复点击注册按钮
|
|
22576
22648
|
loading: false
|
|
22577
22649
|
};
|
|
22578
22650
|
},
|
|
22651
|
+
// =========================================================================
|
|
22652
|
+
// 生命周期 - 初始化时获取区号、行业字典、并检查是否有 compKey 邀请
|
|
22653
|
+
// =========================================================================
|
|
22579
22654
|
mounted() {
|
|
22580
22655
|
this.getAreaCodeData();
|
|
22581
22656
|
this.findDict();
|
|
22582
22657
|
this.inviteJoinGetComp();
|
|
22583
22658
|
},
|
|
22659
|
+
// =========================================================================
|
|
22660
|
+
// Methods - 业务方法
|
|
22661
|
+
// =========================================================================
|
|
22584
22662
|
methods: {
|
|
22585
22663
|
go2Agreement: go2Agreement$1,
|
|
22586
22664
|
getAuthSessionItems,
|
|
22587
22665
|
go2Policy: go2Policy$1,
|
|
22666
|
+
// ===== 受邀加入公司:通过 sessionStorage 中的 compKey 获取已有公司信息 =====
|
|
22588
22667
|
async inviteJoinGetComp() {
|
|
22589
22668
|
const sessions = getAuthSessionItems();
|
|
22590
22669
|
const key = sessions.compKey;
|
|
@@ -22593,6 +22672,7 @@ const _sfc_main$d = {
|
|
|
22593
22672
|
this.hasResistCompany = true;
|
|
22594
22673
|
this.resistCompanyInfo = res.data;
|
|
22595
22674
|
},
|
|
22675
|
+
// ===== 获取行业类型字典(从接口动态获取,与本地默认值合并) =====
|
|
22596
22676
|
findDict() {
|
|
22597
22677
|
findDictApi({
|
|
22598
22678
|
dictType: "cmc_company_industry_sector"
|
|
@@ -22614,10 +22694,12 @@ const _sfc_main$d = {
|
|
|
22614
22694
|
}).catch((err) => {
|
|
22615
22695
|
});
|
|
22616
22696
|
},
|
|
22697
|
+
// ===== 切换公司名时重置查重状态(清除之前的"已有公司"标记) =====
|
|
22617
22698
|
handleChangeCompany() {
|
|
22618
22699
|
this.companyResistCn = false;
|
|
22619
22700
|
this.companyResistEn = false;
|
|
22620
22701
|
},
|
|
22702
|
+
// ===== 取消加入已有公司 → 恢复到新设公司模式,清空所有相关状态 =====
|
|
22621
22703
|
handleCancelJoin() {
|
|
22622
22704
|
this.hasResistCompany = false;
|
|
22623
22705
|
this.companyResistCn = false;
|
|
@@ -22629,8 +22711,8 @@ const _sfc_main$d = {
|
|
|
22629
22711
|
this.form.firstName = "";
|
|
22630
22712
|
this.form.lastName = "";
|
|
22631
22713
|
},
|
|
22714
|
+
// ===== 选择行业类型 → 若切换为"货主",清空所有公司相关信息(货主不需要填公司) =====
|
|
22632
22715
|
handleSelectSector(value) {
|
|
22633
|
-
this.form.sector = value;
|
|
22634
22716
|
if (value === "Trade") {
|
|
22635
22717
|
this.form.companyName = "";
|
|
22636
22718
|
this.form.useKq = false;
|
|
@@ -22646,16 +22728,17 @@ const _sfc_main$d = {
|
|
|
22646
22728
|
this.form.lastName = "";
|
|
22647
22729
|
}
|
|
22648
22730
|
},
|
|
22649
|
-
//
|
|
22731
|
+
// ===== 申请加入已有公司按钮 → 切换为"已有公司"卡片模式,清除公司名校验错误 =====
|
|
22650
22732
|
handleApplyJoinClick() {
|
|
22651
22733
|
this.hasResistCompany = true;
|
|
22652
22734
|
this.$nextTick(() => {
|
|
22653
22735
|
this.$refs.registerFormRef.clearValidate("companyName");
|
|
22654
22736
|
});
|
|
22655
22737
|
},
|
|
22656
|
-
|
|
22657
|
-
|
|
22658
|
-
|
|
22738
|
+
// ===== [Step 1 → Step 2] 校验城市+联系方式后进入验证码/公司信息页面 =====
|
|
22739
|
+
// 1. 根据国家判断校验城市+手机(中国)还是城市+邮箱(海外)
|
|
22740
|
+
// 2. 校验通过后,快照当前联系方式用于后续"返回"时的智能判断
|
|
22741
|
+
// 3. 切换到 Step 2,清除所有校验错误提示
|
|
22659
22742
|
handleNextStep() {
|
|
22660
22743
|
const step1Fields = this.currentCountryIsChina ? ["city", "phone"] : ["city", "email"];
|
|
22661
22744
|
this.$refs.registerFormRef.validateField(step1Fields, (isValid) => {
|
|
@@ -22667,9 +22750,10 @@ const _sfc_main$d = {
|
|
|
22667
22750
|
});
|
|
22668
22751
|
});
|
|
22669
22752
|
},
|
|
22670
|
-
|
|
22671
|
-
|
|
22672
|
-
|
|
22753
|
+
// ===== [Step 2 → Step 1] 智能返回:已加入公司→取消加入;联系方式变化→重置验证码 =====
|
|
22754
|
+
// 两种返回路径:
|
|
22755
|
+
// 1. 当前处于"已有公司"卡片模式 → 取消加入,回到公司名输入界面
|
|
22756
|
+
// 2. 正常返回 Step 1:比对当前联系方式与快照,若发生变化则重置验证码状态
|
|
22673
22757
|
handleBackToStep1() {
|
|
22674
22758
|
if (this.hasResistCompany) {
|
|
22675
22759
|
this.handleCancelJoin();
|
|
@@ -22684,9 +22768,14 @@ const _sfc_main$d = {
|
|
|
22684
22768
|
this.$refs.registerFormRef.clearValidate();
|
|
22685
22769
|
});
|
|
22686
22770
|
},
|
|
22687
|
-
|
|
22688
|
-
|
|
22689
|
-
|
|
22771
|
+
// ===== 重置验证码所有相关状态 =====
|
|
22772
|
+
// 清空以下所有验证码相关的表单数据与 UI 状态:
|
|
22773
|
+
// - form.code:输入的 4 位验证码
|
|
22774
|
+
// - mobileUid / emailUid:滑块验证成功后服务端返回的 UID(用于验证码校验)
|
|
22775
|
+
// - verifyData:滑块验证组件的数据对象(含 ticket、randstr 等)
|
|
22776
|
+
// - codeReady:验证码输入框是否就绪(控制滑块重新弹出)
|
|
22777
|
+
// - isCounting:倒计时状态(停止倒计时)
|
|
22778
|
+
// 触发时机:用户返回 Step 1 且联系方式发生变化时
|
|
22690
22779
|
resetVerifyState() {
|
|
22691
22780
|
this.form.code = "";
|
|
22692
22781
|
this.mobileUid = "";
|
|
@@ -22695,6 +22784,9 @@ const _sfc_main$d = {
|
|
|
22695
22784
|
this.codeReady = false;
|
|
22696
22785
|
this.isCounting = false;
|
|
22697
22786
|
},
|
|
22787
|
+
// ===== 获取 IP 定位城市 + 区号列表 =====
|
|
22788
|
+
// 1. 调用 IP 定位 API 获取用户当前城市,自动填充城市选择器
|
|
22789
|
+
// 2. 调用区号列表 API 获取全球区号数据
|
|
22698
22790
|
async getAreaCodeData() {
|
|
22699
22791
|
var _a, _b, _c;
|
|
22700
22792
|
const res1 = await getLocalIpDataApi();
|
|
@@ -22727,6 +22819,7 @@ const _sfc_main$d = {
|
|
|
22727
22819
|
const res = await findPAreaCodeApi();
|
|
22728
22820
|
this.areaCodeData = res.data.data.records;
|
|
22729
22821
|
},
|
|
22822
|
+
// ===== 清空城市 → 重置验证码 + 公司查重 + 姓名等所有相关状态 =====
|
|
22730
22823
|
handleClearCity() {
|
|
22731
22824
|
this.resetVerifyState();
|
|
22732
22825
|
this.companyResistEn = false;
|
|
@@ -22737,6 +22830,12 @@ const _sfc_main$d = {
|
|
|
22737
22830
|
this.form.firstName = "";
|
|
22738
22831
|
this.form.lastName = "";
|
|
22739
22832
|
},
|
|
22833
|
+
// ===== 选择城市 → 处理城市/国家变化后的副作用 =====
|
|
22834
|
+
// 1. 提取城市 ID 和国家 ID
|
|
22835
|
+
// 2. 重置验证码状态(城市变化后需重新获取验证码)
|
|
22836
|
+
// 3. 非 compKey 邀请场景下,重置公司查重状态
|
|
22837
|
+
// 4. 若国家发生变化,清空公司名和快企信息(避免中英文公司名残留)
|
|
22838
|
+
// 5. 触发城市和公司名校验
|
|
22740
22839
|
handleSelectCity(e) {
|
|
22741
22840
|
var _a, _b, _c, _d;
|
|
22742
22841
|
const prevCountryId = this.form.countryId;
|
|
@@ -22766,14 +22865,25 @@ const _sfc_main$d = {
|
|
|
22766
22865
|
this.$refs.registerFormRef.validateField("city");
|
|
22767
22866
|
});
|
|
22768
22867
|
},
|
|
22868
|
+
// ===== 校验单个表单字段 =====
|
|
22869
|
+
// 用于在字段值变化时做局部校验(blur 事件触发),而非全量 validate
|
|
22870
|
+
// 特殊逻辑:当校验的是 email 或 phone 字段且校验通过,自动将 codeReady 置为 true,
|
|
22871
|
+
// 允许用户点击发送验证码;若校验失败则 codeReady 为 false,按钮保持禁用
|
|
22769
22872
|
validateField(field) {
|
|
22770
|
-
if (!this.$refs.registerFormRef) return;
|
|
22771
22873
|
this.$refs.registerFormRef.validateField(field, (isValid) => {
|
|
22772
22874
|
if (field === "email" || field === "phone") {
|
|
22773
22875
|
this.codeReady = isValid;
|
|
22774
22876
|
}
|
|
22775
22877
|
});
|
|
22776
22878
|
},
|
|
22879
|
+
// ===== 发送验证码 =====
|
|
22880
|
+
// 根据当前国家选择 API:中国 → sendMobileCodeApi(短信),海外 → sendEmailCodeApi(邮箱)
|
|
22881
|
+
// 参数说明:
|
|
22882
|
+
// captchaData:滑块验证通过后传入的数据
|
|
22883
|
+
// - uuid:滑块会话标识(注册提交时需与验证码一起回传)
|
|
22884
|
+
// - code:滑块验证码
|
|
22885
|
+
// startTimer:CodeInput 组件提供的倒计时启动函数(仅在接口成功时调用,避免失败时锁死按钮)
|
|
22886
|
+
// 成功后将返回的 verifyCode 存入 mobileUid/emailUid,用于后续注册提交时的校验回传
|
|
22777
22887
|
handleGetCode({ captchaData, startTimer }) {
|
|
22778
22888
|
this.verifyData = captchaData;
|
|
22779
22889
|
const params = {
|
|
@@ -22808,6 +22918,19 @@ const _sfc_main$d = {
|
|
|
22808
22918
|
});
|
|
22809
22919
|
console.log("发送注册验证码");
|
|
22810
22920
|
},
|
|
22921
|
+
// ===== 提交注册:全量校验后构建 payload,分流至"新设公司"或"申请加入" =====
|
|
22922
|
+
// 执行步骤:
|
|
22923
|
+
// 1. 全量表单校验(el-form validate)
|
|
22924
|
+
// 2. 检查是否已获取验证码(verifyData.uuid 必须存在,否则提示"请先获取验证码")
|
|
22925
|
+
// 3. 构建通用提交参数:appId、session 来源信息(clickSource/activityCode/referenceUserId/empNo)、
|
|
22926
|
+
// 行业类型(industrySector)、滑块验证数据(uuid/code)、项目 ID、注册入口标记
|
|
22927
|
+
// 4. 根据联系方式类型分支:
|
|
22928
|
+
// - MOBILE(中国区):区号 + 加密后的手机号 + 验证码 + 验证码 UUID
|
|
22929
|
+
// - EMAIL(海外区):邮箱地址 + 验证码 + 验证码 UUID
|
|
22930
|
+
// 5. 分流到具体提交方法:
|
|
22931
|
+
// - hasResistCompany=true → handleApplyJoinSubmit(申请加入已有公司)
|
|
22932
|
+
// - hasResistCompany=false → handleNewCompanySubmit(新设公司注册)
|
|
22933
|
+
// - 同时收集 session 中的国家/城市/公司名缓存,供注册后写入
|
|
22811
22934
|
handleRegister() {
|
|
22812
22935
|
this.$refs.registerFormRef.validate((valid) => {
|
|
22813
22936
|
var _a;
|
|
@@ -22863,9 +22986,14 @@ const _sfc_main$d = {
|
|
|
22863
22986
|
}
|
|
22864
22987
|
});
|
|
22865
22988
|
},
|
|
22866
|
-
|
|
22867
|
-
|
|
22868
|
-
|
|
22989
|
+
// ===== [A 路径] 新设公司注册 =====
|
|
22990
|
+
// 构建注册 payload 并调用注册 API:
|
|
22991
|
+
// 1. 合并基础参数 + 城市(cityId)/ 国家(countryId)/ 行业(industrySector)
|
|
22992
|
+
// 2. 非货主行业:附加公司名(中国→compNameCn,海外→compNameEn)+ 快企查重信息
|
|
22993
|
+
// (注意:kqInfo 中若含 compId 字段需排除,避免与新接口的 compId 语义冲突)
|
|
22994
|
+
// 3. 货主行业:不提交公司名称相关字段
|
|
22995
|
+
// 4. 根据 session 中的 uniqueCode 判断调用普通注册 API 或第三方绑定注册 API
|
|
22996
|
+
// 注册成功后统一调用 handlePostRegister 处理响应分流
|
|
22869
22997
|
async handleNewCompanySubmit(baseData) {
|
|
22870
22998
|
const sessionStorageItems = this.getAuthSessionItems();
|
|
22871
22999
|
const registerPayload = {
|
|
@@ -22904,9 +23032,14 @@ const _sfc_main$d = {
|
|
|
22904
23032
|
this.loading = false;
|
|
22905
23033
|
}
|
|
22906
23034
|
},
|
|
22907
|
-
|
|
22908
|
-
|
|
22909
|
-
|
|
23035
|
+
// ===== [B 路径] 申请加入已有公司 =====
|
|
23036
|
+
// 构建申请 payload 并调用注册 API:
|
|
23037
|
+
// 1. 携带已有公司 ID(compId),来源:公司查重匹配或 compKey 邀请链接
|
|
23038
|
+
// 2. 申请者姓名:中国区提交 nameCn;海外区拼接 firstName + lastName 为 nameEn
|
|
23039
|
+
// 3. 移除与新设公司相关的字段(industrySector、compNameEn/Cn、countryId、cityId 等),
|
|
23040
|
+
// 因为加入已有公司无需新建公司信息
|
|
23041
|
+
// 4. 根据 uniqueCode 判断调用普通注册 API 或第三方绑定注册 API
|
|
23042
|
+
// 注册成功后统一调用 handlePostRegister 处理响应分流
|
|
22910
23043
|
async handleApplyJoinSubmit(baseData) {
|
|
22911
23044
|
const sessionStorageItems = this.getAuthSessionItems();
|
|
22912
23045
|
const applyPayload = {
|
|
@@ -22951,6 +23084,10 @@ const _sfc_main$d = {
|
|
|
22951
23084
|
this.loading = false;
|
|
22952
23085
|
}
|
|
22953
23086
|
},
|
|
23087
|
+
// ===== 延迟跳转工具函数 =====
|
|
23088
|
+
// 先清除 sessionStorage 中的认证缓存数据(路径、来源等),再执行页面跳转
|
|
23089
|
+
// delayInput 支持传入毫秒数或数字字符串,经 normalizeDelayMs 统一转换为毫秒
|
|
23090
|
+
// 典型用法:注册成功后延迟 1000ms 跳转到 redirectPath
|
|
22954
23091
|
executeRedirectWithDelay(redirectPath, delayInput) {
|
|
22955
23092
|
const delayMs = normalizeDelayMs(delayInput);
|
|
22956
23093
|
setTimeout(() => {
|
|
@@ -22958,6 +23095,17 @@ const _sfc_main$d = {
|
|
|
22958
23095
|
handleRedirect$1(redirectPath);
|
|
22959
23096
|
}, delayMs);
|
|
22960
23097
|
},
|
|
23098
|
+
// ===== 注册成功后的统一后处理 =====
|
|
23099
|
+
// 根据接口返回的 res.data 分三种情况处理:
|
|
23100
|
+
// 1. improveComp 存在(第三方登录注册后需要完善公司信息)
|
|
23101
|
+
// → 不入库 tgc,不做跳转,直接 emit need-complete 事件,
|
|
23102
|
+
// 由父组件切换到 CompleteInfoForm 完善信息
|
|
23103
|
+
// 2. redirect 为 true(注册成功直接登录)
|
|
23104
|
+
// → 写入 tgc 凭证到 Cookie(30 天有效期)
|
|
23105
|
+
// → emit register-success,携带流控对象(redirect/preventDefault 方法)
|
|
23106
|
+
// 如果父组件没有调用 redirect 或 preventDefault,则内部自动跳转到 redirectPath
|
|
23107
|
+
// 3. redirect 为 false(注册提交成功但需要审核)
|
|
23108
|
+
// → 提示"注册成功,请等待审核",不做跳转,关闭弹窗或保持当前状态
|
|
22961
23109
|
handlePostRegister(res) {
|
|
22962
23110
|
const sessionStorageItems = this.getAuthSessionItems();
|
|
22963
23111
|
console.log("🍉 ~ RegisterForm.vue:749 ~ res.data:", res.data);
|
|
@@ -23463,7 +23611,7 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
23463
23611
|
}, 8, ["model", "rules"])
|
|
23464
23612
|
]);
|
|
23465
23613
|
}
|
|
23466
|
-
const RegisterForm = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$3], ["__scopeId", "data-v-
|
|
23614
|
+
const RegisterForm = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$3], ["__scopeId", "data-v-4ae4e4b8"]]);
|
|
23467
23615
|
const _imports_0$3 = "data:image/webp;base64,UklGRs4CAABXRUJQVlA4WAoAAAAQAAAAJwAAJwAAQUxQSFoBAAABN6KgbRtmp+3Gn/RDEBEEkzTVdowBQKcP3554FoBl23ba5llJyswNJ2VumGWofOY/p8qSit8R/Z8A+a8elYOpw8ta7XyzQK0aYSpXkxxr+l5TIvLMOMTaaw75atjrjVMg6apzYNuvnZH3q2Wxbl7NYR4Ddz6qB+/b4lxd8llHbmrIR018WxYu3QboXfHdMLae0xXZtvhGY+x52WHLcCHeNxRfOfR5Fu/tpdZaJ1mWZeOiA0zFL+w9j/I9NSffY5NUvmeVwTfp8PxNbrn9HRbs2zo8fU3Muq3K6EtK5JFtkzT6ilPmUrji+CvueSh64OULVMJJ0TamEq7JXBx7vAZTCVWXbcNlqBdm4nxFthPmGrPrJj2SvRBXUBdPNcTUvdQTXIu3eoP+gVt1hWlKyLaBQaNs275awvJIwlYeDaBH/f40BXQnkuCVq7HBmr5VI/naaP+iWj1bl98fVlA4IE4BAAAQBwCdASooACgAPi0ShkKhoQ42SgAMAWJZWxKQyHAkNc+PADbI89n6J94A3jAJQK0xA6Tk60mYtNspcySSE/tFIADM///yqf//Kgv//ywQt7g1bu7h+xw3tKfdFW3YSP2h0iF6VIn4CTXLv//vM//94Jv//ee+S0E0m6xnEgxdBDf7ewX/lL4BgZWe2EfgOrK0pMN4Qy5uWqWBS4KWWUfrCz0nMK/H/I4/+XhdD+65pGbyiKvih/6tn//ciDb/uimjajMDV4Q/Xe6/5j9xYKcn08xURQpu0wODf/+3SuKUFZLR0yHKFUmWQGuB/RhP/o3UFQW2JYdAdLNwvjre+S6H5X//i0Kc3jhiy9mLmUsuJ+4/5++fwdGZUbaTBUfk9QB9rjsVLVNwQW2lzccI98O08eePpfHRQKN1FzjT/cMehMc50hgx//o3l7EokAAA";
|
|
23468
23616
|
const _imports_1$2 = "data:image/webp;base64,UklGRhACAABXRUJQVlA4WAoAAAAQAAAAGAAAFwAAQUxQSOcAAAABgINt27HlzZxs1+i945+yudmaXJMm27btmmzbtm094f2+L88RMQHoH0ivGDZ+dTufRGOhwhmw/QIfT5NlyDEEHdz1zdzA5sDmTZ4EKeWJp2may+JdpEray5o7HRnnPYCzy2e43uvNSQvW5CfhcwDY1eKWK4CX3WgRAt0NzG7T6At8vGkUw3FXXX8YGLkf9c+8rLBeOI2gxyD51juA6+5ZuFjaej6YvL3vEsEhxb5nuOicA8KHHlECg1QHMzfnukeCszhGAgY6hBCT+RTuvkMWUWQz7XsGgPs2OUSdS9Uv2N0tWOIT/l4AVlA4IAIBAACwBwCdASoZABgAPjESh0KiIQ39VgAQAYJbACdM5JkB+meFg2gDaAN0l4AD9QPSA/wHuJ/sl6KYX31WXITTIqQjhEf+VVEAAP0cZ9TkuKczs9Y1za4WaelqmDJ+pg5xRI8RGqa0Xf/vA/xc/Jt7352wODrO+GBNH/+k0H/0IZkEP/+9kflw8xfZOvuJnYDve0V1+ez//9tEgIWxjEjRen4x7s8w+Gha3PQxumTkBwxFTp+YlQXvZzWdZW3wRP0nsu895denVK5N8FE8Zg23a9118GTARL99uq+SY4/E8PeGs/GKL4ufe2EdSmq0ixJ9pxRZOAX/4XkoyRtaDa35BrgAAAA=";
|
|
23469
23617
|
const _hoisted_1$c = { class: "login-wx" };
|
|
@@ -23590,6 +23738,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
23590
23738
|
fetchWxCode();
|
|
23591
23739
|
};
|
|
23592
23740
|
const processLoginSuccess = async (loginData) => {
|
|
23741
|
+
var _a;
|
|
23593
23742
|
if (loginData.result) {
|
|
23594
23743
|
setTokenAll(loginData.result);
|
|
23595
23744
|
}
|
|
@@ -23614,6 +23763,10 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
23614
23763
|
fetchWxCode();
|
|
23615
23764
|
}
|
|
23616
23765
|
} else {
|
|
23766
|
+
if ((_a = loginData.result) == null ? void 0 : _a.improveComp) {
|
|
23767
|
+
emit("need-complete", loginData.result.improveComp);
|
|
23768
|
+
return;
|
|
23769
|
+
}
|
|
23617
23770
|
completeRedirect(loginData.redirectPath);
|
|
23618
23771
|
}
|
|
23619
23772
|
};
|
|
@@ -23705,7 +23858,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
23705
23858
|
};
|
|
23706
23859
|
}
|
|
23707
23860
|
});
|
|
23708
|
-
const WechatLogin = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-
|
|
23861
|
+
const WechatLogin = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-84a63da0"]]);
|
|
23709
23862
|
const _sfc_main$b = {
|
|
23710
23863
|
name: "LoginTypeSwitcher",
|
|
23711
23864
|
components: {
|
|
@@ -23814,7 +23967,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
23814
23967
|
_: 1
|
|
23815
23968
|
}, 8, ["model-value", "onChange"]);
|
|
23816
23969
|
}
|
|
23817
|
-
const LoginTypeSwitcher = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$2], ["__scopeId", "data-v-
|
|
23970
|
+
const LoginTypeSwitcher = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$2], ["__scopeId", "data-v-ed6d6ee4"]]);
|
|
23818
23971
|
const _imports_0$2 = "data:image/webp;base64,UklGRhgCAABXRUJQVlA4WAoAAAAQAAAALwAALwAAQUxQSKIAAAABgFZbb9xIEATBUAyhEAqhDBIGNgOXQaEIgiAYwtfZtM3+LyImgP4d+1BAVqvCAx8OLsECo3CFAfMo0ODsecsz88SjeXD/vNQjedOzPgDCuqfl0bRNKsBiEa5APD+aTCWI2l0AnZ3ehTnKW+9dgIp/Kf146Aa2PM5egI8Ns66WwwOBq70JvmyE6jVsIPwIOpB4xuyMXU5jbhlnDF0lSm/03whWUDggUAEAAPALAJ0BKjAAMAA+LRKGQqGhDjduAAwBYlsAMgdwP4BoK/wA4aTvN+x2I4/APyq/oHuA/gHOJ7gD9XfMA6QDrYP0z9gD9APRQ/ZD4FP219gD9UARvMpbMuVN2542MibJh8RTb2jFdmX4AP7/8PzX//KRnpdaTTuezU2wfPVue6zvilNiLydYqgogCDf+z+cTn0sw++BUMUAXW/ykOXcyNB2xLlv/9baGU9jTlskvg+1Mv/puM3RR2VkkR8nzfym/nfxZ64t/3bWsauPme9EKHGYBBZv8u8jT/DUfv3hKs//3THxis4v6eWcTTUpo9W6e2PurHwS2B16ei/If+Ww23FLqmd3jWPwTwBTDBEJ3HBZfQftnPWpA9rY4f//0skE1+0YwOJB/my/FIk/GCZloGHd/7iN//8vNjd/zOhSoSRNP6Xtp1K0Qc6nr99ilYAAAAA==";
|
|
23819
23972
|
const _imports_1$1 = "data:image/webp;base64,UklGRiQBAABXRUJQVlA4WAoAAAAQAAAALwAALwAAQUxQSL8AAAABcFXbVtygAAdPSGKgDqIgMVAMgAIcxEdRAApQcJ0E3tD5LyLYuG0jSXKOaqvMPsL9Ha6xASWTFT5hMHmbKphYTJIwNRlAYFz0ZMB4PDiqHrB+XhpHMT4TIOtZOJhbp0OUOCcy1XDo75yrSk6UONkFJb71XIAWhxs/aFYm7qhkV5PvDmWYa1lGV2s4Wwd6OcM6RlE+dOaZZrpEXD5BoOr3d+sQWTfFkxAbhATAOF1DN6cKD1TD3cncipS2uz9DBwBWUDggPgAAAFADAJ0BKjAAMAA+JQ6FQqGHjAYAkS0gABSWHJn8435xRpEAAP7//k4XP//7dtNf5ihlI///6OQD//9v7AAA";
|
|
23820
23973
|
const _hoisted_1$a = { class: "wechat-choose-type" };
|
|
@@ -23882,7 +24035,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
23882
24035
|
};
|
|
23883
24036
|
}
|
|
23884
24037
|
});
|
|
23885
|
-
const WechatChooseType = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-
|
|
24038
|
+
const WechatChooseType = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-f485c6be"]]);
|
|
23886
24039
|
const _imports_0$1 = "data:image/webp;base64,UklGRkYDAABXRUJQVlA4WAoAAAAQAAAATwAATwAAQUxQSK0BAAABkJVtT55JrwQkRAISIqEOBgl1sDhoHVAHXQdIQEIkICH780ETOodzEBETgJ+MA3FKG8fvIaQiOm5lCy/j2vVx4RdxVdtKLwmH2pfwBmrqKbQeifr2bTUSdd/WIlH/HpcqOuxnyjJT9/0aqISFkg47AaCJGwDOgeaFZPQb/7dR/I9HSsuwjsuHapaXKRMaAZCOawBQJvoyMqN3PvqEypGrzsZFgvrLmShgXXYrjMDHLSLS6rGR3+ZUCVy7TtfklVz6Dq76XJIPe0gMh9oW8iAHIWpqLeSAbhdJ1L5Hh8ssB1HPTnZsJTjUV4IZxChFHUrartG5nf2TZju2EdQRAaifCgAe9GCG22QnHQoA7J8SAAw02wWxiPtIv4AgnyqAX6NmBxID1Am9S9ehlKqTwQ4kjxpkxj46gORJha6YPBCuR32FzQXxQYOswD7ng457heAj/8ndPmnYF6hwjaoqCUDglEspRAskn1Ml4WF1E/huCY/ZjZ1MT6eM9UNzufBGEocaXgFqZhdem412vJiqCb8JiJdM9f/OdwHg/a4i0soeQZeqvO4pi8bvBWD8PAwAVlA4IHIBAACQDQCdASpQAFAAPjESh0KiIQzPMmYQAYJYgDTVCv5F+Mf4gb4DJX+Sz7l/ANsR/t26P/QD/AegB1gH9L/gHoV9YB+tfoUf7T/efAf+sP68fAV+m//U1vlDvsJaoYWahGVgTNJjQto23T3wmPTWzB6ZzMk6AwAA/v7uqgr/9ZP//7blAnmnE6lioCaVp1+WnldB5HpBbYjxc1NG5XU54UvD9kf2w/pZ7/42ltzXYtGbK1//nqr8tjkze5eVKps78/9WExTMn4pKTe3c8mpsuj8YwNG+XmxN6qsxIT2EwKQHnE5z8J/+pe+1IL/r1o8YBWTv7H+OAb1dnyF/HIBfP7w3V0JsIK9k9luJE6Inls4/P8XLinjMj63/lB+fL9Mg/9VBqi1r084wLn/+c3RisrFoveLUv2I5xww1R/MwdnWNwJwQ8oKLyHlGl0b3UxrGhAtGoS5KzFv4B538wnEyq7d8a9J8x7Ua1ZythfCc5mNgAAAA";
|
|
23887
24040
|
const _imports_2 = "data:image/webp;base64,UklGRtgAAABXRUJQVlA4WAoAAAAQAAAAHwAAHwAAQUxQSG8AAAABcFXbVq2cCEQ4EYxABBtIhNvg0kAaEMEIJwoRiLB86/b5GxETYP9n6T1rGiyaBULjMJPEAvaaDOwkdgBWSRrAKH4rxsOTq3NzbfD0/Cr+eACzZk/XHl+Bluz5DlRTBnRTOuCSAmHSBlU0xlbzdwIAVlA4IEIAAABwAwCdASogACAAPjESjEYiENDKACADBLSAACWH58lev5ur/aAA/iw///2p6j//i/2//+H8FPIH///0cbN//9v7AAA=";
|
|
23888
24041
|
function useAuthLogin(options = {}) {
|
|
@@ -24197,7 +24350,6 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
24197
24350
|
const emits = __emit;
|
|
24198
24351
|
const {
|
|
24199
24352
|
loading: loadingBtn,
|
|
24200
|
-
// 将 Hook 的 loading 重命名为 loadingBtn
|
|
24201
24353
|
handleBindSubmit
|
|
24202
24354
|
} = useAuthLogin({
|
|
24203
24355
|
appId: "ERA",
|
|
@@ -24583,7 +24735,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
24583
24735
|
};
|
|
24584
24736
|
}
|
|
24585
24737
|
});
|
|
24586
|
-
const WechatBindLogin = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-
|
|
24738
|
+
const WechatBindLogin = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-a39fbac2"]]);
|
|
24587
24739
|
const _sfc_main$8 = {
|
|
24588
24740
|
name: "CompleteInfoForm",
|
|
24589
24741
|
components: {
|
|
@@ -24612,6 +24764,10 @@ const _sfc_main$8 = {
|
|
|
24612
24764
|
verifyData: {},
|
|
24613
24765
|
codeReady: false,
|
|
24614
24766
|
codeSent: false,
|
|
24767
|
+
mobileCodeReady: false,
|
|
24768
|
+
emailCodeReady: false,
|
|
24769
|
+
mobileCodeSent: false,
|
|
24770
|
+
emailCodeSent: false,
|
|
24615
24771
|
mobileUid: "",
|
|
24616
24772
|
emailUid: "",
|
|
24617
24773
|
areaCodeData: [],
|
|
@@ -24633,7 +24789,8 @@ const _sfc_main$8 = {
|
|
|
24633
24789
|
phone: "",
|
|
24634
24790
|
areaCode: "+86",
|
|
24635
24791
|
email: "",
|
|
24636
|
-
|
|
24792
|
+
mobileCode: "",
|
|
24793
|
+
emailCode: "",
|
|
24637
24794
|
useKq: false,
|
|
24638
24795
|
kqCode: "",
|
|
24639
24796
|
kqInfo: null
|
|
@@ -24690,7 +24847,14 @@ const _sfc_main$8 = {
|
|
|
24690
24847
|
trigger: "blur"
|
|
24691
24848
|
}
|
|
24692
24849
|
],
|
|
24693
|
-
|
|
24850
|
+
mobileCode: [
|
|
24851
|
+
{
|
|
24852
|
+
required: true,
|
|
24853
|
+
validator: (rule, value, cb) => validateVerifyCode$1(rule, value, cb, this.isEn),
|
|
24854
|
+
trigger: "blur"
|
|
24855
|
+
}
|
|
24856
|
+
],
|
|
24857
|
+
emailCode: [
|
|
24694
24858
|
{
|
|
24695
24859
|
required: true,
|
|
24696
24860
|
validator: (rule, value, cb) => validateVerifyCode$1(rule, value, cb, this.isEn),
|
|
@@ -24701,29 +24865,44 @@ const _sfc_main$8 = {
|
|
|
24701
24865
|
};
|
|
24702
24866
|
},
|
|
24703
24867
|
computed: {
|
|
24868
|
+
// 当前城市所属国家 ID
|
|
24704
24869
|
countryId() {
|
|
24705
24870
|
var _a, _b, _c, _d;
|
|
24706
24871
|
return ((_c = (_b = (_a = this.form.city) == null ? void 0 : _a.raw) == null ? void 0 : _b.country) == null ? void 0 : _c.id) || ((_d = this.resistCompanyInfo) == null ? void 0 : _d.countryId);
|
|
24707
24872
|
},
|
|
24873
|
+
// 当前城市 ID
|
|
24708
24874
|
cityId() {
|
|
24709
24875
|
var _a;
|
|
24710
24876
|
return (_a = this.form.city) == null ? void 0 : _a.id;
|
|
24711
24877
|
},
|
|
24878
|
+
// 当前国家是否为中国
|
|
24712
24879
|
currentCountryIsChina() {
|
|
24713
24880
|
const id = this.countryId;
|
|
24714
24881
|
return [1].includes(Number(id));
|
|
24715
24882
|
},
|
|
24883
|
+
// 公司名称输入框标签文字
|
|
24716
24884
|
currentCompanyLabel() {
|
|
24717
24885
|
return this.isEn ? this.currentCountryIsChina ? "Company Name in Chinese" : "Company Name in English" : this.currentCountryIsChina ? "公司中文名称" : "公司英文名称";
|
|
24718
24886
|
},
|
|
24887
|
+
/**
|
|
24888
|
+
* 是否显示手机验证码区域
|
|
24889
|
+
* 条件:渲染就绪 && 中国区 && 当前用户未绑定手机号
|
|
24890
|
+
* 已绑定手机号的用户无需再次验证
|
|
24891
|
+
*/
|
|
24719
24892
|
isShowMobileCode() {
|
|
24720
24893
|
if (!this.isReady) return false;
|
|
24721
24894
|
return this.currentCountryIsChina && !this.currentUserMobile;
|
|
24722
24895
|
},
|
|
24896
|
+
/**
|
|
24897
|
+
* 是否显示邮箱验证码区域
|
|
24898
|
+
* 条件:渲染就绪 && 当前用户未绑定邮箱
|
|
24899
|
+
* 已绑定邮箱的用户无需再次验证
|
|
24900
|
+
*/
|
|
24723
24901
|
isShowEmailCode() {
|
|
24724
24902
|
if (!this.isReady) return false;
|
|
24725
24903
|
return !this.currentUserEmail;
|
|
24726
24904
|
},
|
|
24905
|
+
// 验证码输入组件标签
|
|
24727
24906
|
codeInputLabel() {
|
|
24728
24907
|
return buildCodeInputLabel({
|
|
24729
24908
|
isChina: this.currentCountryIsChina,
|
|
@@ -24804,41 +24983,51 @@ const _sfc_main$8 = {
|
|
|
24804
24983
|
},
|
|
24805
24984
|
validateField(field) {
|
|
24806
24985
|
this.$refs.formRef.validateField(field, (isValid) => {
|
|
24807
|
-
if (field === "phone"
|
|
24808
|
-
this.
|
|
24809
|
-
this.
|
|
24810
|
-
|
|
24811
|
-
|
|
24812
|
-
|
|
24813
|
-
|
|
24814
|
-
|
|
24986
|
+
if (field === "phone") {
|
|
24987
|
+
this.mobileCodeReady = isValid;
|
|
24988
|
+
this.mobileCodeSent = false;
|
|
24989
|
+
this.mobileUid = "";
|
|
24990
|
+
} else if (field === "email") {
|
|
24991
|
+
this.emailCodeReady = isValid;
|
|
24992
|
+
this.emailCodeSent = false;
|
|
24993
|
+
this.emailUid = "";
|
|
24815
24994
|
}
|
|
24816
24995
|
});
|
|
24817
24996
|
},
|
|
24818
|
-
|
|
24997
|
+
/**
|
|
24998
|
+
* 发送验证码
|
|
24999
|
+
* @param captchaData - 滑块验证返回的 { uuid, code }
|
|
25000
|
+
* @param type - 'mobile' 发送手机验证码 | 'email' 发送邮箱验证码
|
|
25001
|
+
* 根据 type 参数选择不同的 API,成功后设置对应的 codeSent/Uid 状态,
|
|
25002
|
+
* 接口成功后才调用 startTimer 启动倒计时
|
|
25003
|
+
*/
|
|
25004
|
+
handleGetCode({ captchaData, startTimer }, type = "mobile") {
|
|
25005
|
+
var _a;
|
|
24819
25006
|
this.verifyData = captchaData;
|
|
25007
|
+
const isMobile = type === "mobile";
|
|
24820
25008
|
const params = {
|
|
24821
|
-
target:
|
|
25009
|
+
target: isMobile ? this.form.phone : this.form.email,
|
|
24822
25010
|
uuid: captchaData.uuid,
|
|
24823
25011
|
code: captchaData.code
|
|
24824
25012
|
};
|
|
24825
|
-
const api2 =
|
|
24826
|
-
if (
|
|
25013
|
+
const api2 = isMobile ? sendMobileCodeApi : sendEmailCodeApi;
|
|
25014
|
+
if (isMobile) {
|
|
24827
25015
|
params.areaCode = this.form.areaCode;
|
|
24828
|
-
params.areaCodeCountryId = this.areaCodeData.find(
|
|
25016
|
+
params.areaCodeCountryId = (_a = this.areaCodeData.find(
|
|
24829
25017
|
(item) => item.telCode === this.form.areaCode
|
|
24830
|
-
).id;
|
|
25018
|
+
)) == null ? void 0 : _a.id;
|
|
24831
25019
|
}
|
|
24832
25020
|
api2(params).then((res) => {
|
|
24833
|
-
var
|
|
24834
|
-
const verifyCode = ((
|
|
25021
|
+
var _a2;
|
|
25022
|
+
const verifyCode = ((_a2 = res.data.data) == null ? void 0 : _a2.verifyCode) || res.data.verifyCode;
|
|
24835
25023
|
if (res.data.code === 0 && verifyCode) {
|
|
24836
|
-
if (
|
|
25024
|
+
if (isMobile) {
|
|
24837
25025
|
this.mobileUid = verifyCode;
|
|
25026
|
+
this.mobileCodeSent = true;
|
|
24838
25027
|
} else {
|
|
24839
25028
|
this.emailUid = verifyCode;
|
|
25029
|
+
this.emailCodeSent = true;
|
|
24840
25030
|
}
|
|
24841
|
-
this.codeSent = true;
|
|
24842
25031
|
startTimer();
|
|
24843
25032
|
ElMessage.success(this.isEn ? "Code Sent" : "验证码已发送");
|
|
24844
25033
|
} else {
|
|
@@ -24853,7 +25042,7 @@ const _sfc_main$8 = {
|
|
|
24853
25042
|
handleSubmit() {
|
|
24854
25043
|
this.$refs.formRef.validate((valid) => {
|
|
24855
25044
|
if (!valid) return;
|
|
24856
|
-
if (
|
|
25045
|
+
if (this.isShowMobileCode && !this.mobileCodeSent || this.isShowEmailCode && !this.emailCodeSent) {
|
|
24857
25046
|
ElMessage.warning(
|
|
24858
25047
|
this.isEn ? "Please send the verification code first" : "请先发送验证码"
|
|
24859
25048
|
);
|
|
@@ -24866,8 +25055,13 @@ const _sfc_main$8 = {
|
|
|
24866
25055
|
}
|
|
24867
25056
|
});
|
|
24868
25057
|
},
|
|
24869
|
-
|
|
25058
|
+
/**
|
|
25059
|
+
* 逻辑 A:新设公司提交
|
|
25060
|
+
* 组装城市、公司名、行业、手机/邮箱验证码数据,
|
|
25061
|
+
* 调用 completeCompRedirectApi 完成完善信息
|
|
25062
|
+
*/
|
|
24870
25063
|
handleNewSubmit() {
|
|
25064
|
+
var _a;
|
|
24871
25065
|
this.loading = true;
|
|
24872
25066
|
const payload = {
|
|
24873
25067
|
cityId: this.form.cityId,
|
|
@@ -24877,14 +25071,14 @@ const _sfc_main$8 = {
|
|
|
24877
25071
|
nameEn: !this.currentCountryIsChina ? this.form.companyName : "",
|
|
24878
25072
|
mobile: this.form.phone,
|
|
24879
25073
|
mobileVerificationCodeUuid: this.mobileUid,
|
|
24880
|
-
mobileVerificationCodeVal: this.isShowMobileCode ? this.form.
|
|
25074
|
+
mobileVerificationCodeVal: this.isShowMobileCode ? this.form.mobileCode : "",
|
|
24881
25075
|
areaCode: this.form.areaCode,
|
|
24882
|
-
areaCodeCountryId: this.areaCodeData.find(
|
|
25076
|
+
areaCodeCountryId: (_a = this.areaCodeData.find(
|
|
24883
25077
|
(item) => item.telCode === this.form.areaCode
|
|
24884
|
-
).id,
|
|
25078
|
+
)) == null ? void 0 : _a.id,
|
|
24885
25079
|
email: this.form.email,
|
|
24886
25080
|
emailVerificationCodeUuid: this.emailUid,
|
|
24887
|
-
emailVerificationCodeVal: this.isShowEmailCode ? this.form.
|
|
25081
|
+
emailVerificationCodeVal: this.isShowEmailCode ? this.form.emailCode : "",
|
|
24888
25082
|
toSys: "ERA",
|
|
24889
25083
|
path: (window == null ? void 0 : window.location.pathname) || "/",
|
|
24890
25084
|
...this.form.kqInfo
|
|
@@ -24896,12 +25090,21 @@ const _sfc_main$8 = {
|
|
|
24896
25090
|
} else {
|
|
24897
25091
|
ElMessage.error(res.data.msg);
|
|
24898
25092
|
}
|
|
25093
|
+
}).catch(() => {
|
|
25094
|
+
ElMessage.error(
|
|
25095
|
+
this.isEn ? "Submission failed" : "提交失败,请重试"
|
|
25096
|
+
);
|
|
24899
25097
|
}).finally(() => {
|
|
24900
25098
|
this.loading = false;
|
|
24901
25099
|
});
|
|
24902
25100
|
},
|
|
24903
|
-
|
|
25101
|
+
/**
|
|
25102
|
+
* 逻辑 B:申请加入已有公司提交
|
|
25103
|
+
* 传入已有公司 compId + 用户姓名 + 验证码,调用 completeJoinCompanyRedirectApi
|
|
25104
|
+
* 成功后写入 tgc Cookie 并执行页面重定向
|
|
25105
|
+
*/
|
|
24904
25106
|
handleJoinSubmit() {
|
|
25107
|
+
var _a;
|
|
24905
25108
|
this.loading = true;
|
|
24906
25109
|
const payload = {
|
|
24907
25110
|
compId: this.resistCompanyInfo.compId,
|
|
@@ -24910,17 +25113,17 @@ const _sfc_main$8 = {
|
|
|
24910
25113
|
industrySector: this.form.sector,
|
|
24911
25114
|
// 验证码信息
|
|
24912
25115
|
areaCode: this.form.areaCode,
|
|
24913
|
-
areaCodeCountryId: this.areaCodeData.find(
|
|
25116
|
+
areaCodeCountryId: (_a = this.areaCodeData.find(
|
|
24914
25117
|
(item) => item.telCode === this.form.areaCode
|
|
24915
|
-
).id,
|
|
25118
|
+
)) == null ? void 0 : _a.id,
|
|
24916
25119
|
account: this.isShowMobileCode ? this.form.phone : this.form.email,
|
|
24917
25120
|
type: this.isShowMobileCode ? "MOBILE" : "EMAIL",
|
|
24918
25121
|
mobile: this.form.phone,
|
|
24919
25122
|
mobileVerificationCodeUuid: this.mobileUid,
|
|
24920
|
-
mobileVerificationCodeVal: this.isShowMobileCode ? this.form.
|
|
25123
|
+
mobileVerificationCodeVal: this.isShowMobileCode ? this.form.mobileCode : "",
|
|
24921
25124
|
email: this.form.email,
|
|
24922
25125
|
emailVerificationCodeUuid: this.emailUid,
|
|
24923
|
-
emailVerificationCodeVal: this.isShowEmailCode ? this.form.
|
|
25126
|
+
emailVerificationCodeVal: this.isShowEmailCode ? this.form.emailCode : "",
|
|
24924
25127
|
toSys: getAppId() || "ERA",
|
|
24925
25128
|
path: (window == null ? void 0 : window.location.pathname) || "/"
|
|
24926
25129
|
};
|
|
@@ -24994,7 +25197,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
24994
25197
|
createElementVNode("div", _hoisted_2$6, [
|
|
24995
25198
|
createElementVNode("div", _hoisted_3$6, toDisplayString($props.isEn ? "Complete Your Information" : "完善企业信息"), 1),
|
|
24996
25199
|
createElementVNode("div", _hoisted_4$6, [
|
|
24997
|
-
_cache[
|
|
25200
|
+
_cache[17] || (_cache[17] = createElementVNode("img", {
|
|
24998
25201
|
src: "https://resources.jctrans.com/res/era/pc/img/icon_gantan.png",
|
|
24999
25202
|
alt: ""
|
|
25000
25203
|
}, null, -1)),
|
|
@@ -25027,7 +25230,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
25027
25230
|
placeholder: $props.isEn ? "Location(City)" : "请输入公司所在城市",
|
|
25028
25231
|
onSelect: $options.handleSelectCity
|
|
25029
25232
|
}, {
|
|
25030
|
-
prefix: withCtx(() => [..._cache[
|
|
25233
|
+
prefix: withCtx(() => [..._cache[18] || (_cache[18] = [
|
|
25031
25234
|
createElementVNode("i", { class: "icon-auth-location" }, null, -1)
|
|
25032
25235
|
])]),
|
|
25033
25236
|
_: 1
|
|
@@ -25058,7 +25261,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
25058
25261
|
"onUpdate:existStatus": $options.handleCompanyExistStatus,
|
|
25059
25262
|
onChange: $options.handleChangeCompany
|
|
25060
25263
|
}, {
|
|
25061
|
-
prefix: withCtx(() => [..._cache[
|
|
25264
|
+
prefix: withCtx(() => [..._cache[19] || (_cache[19] = [
|
|
25062
25265
|
createElementVNode("i", { class: "icon-auth-company" }, null, -1)
|
|
25063
25266
|
])]),
|
|
25064
25267
|
_: 1
|
|
@@ -25120,7 +25323,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
25120
25323
|
label: $options.currentCountryIsChina ? $props.isEn ? "Your Full Name in Chinese" : "您的中文名称" : $props.isEn ? "Your Full Name in English" : "您的名称",
|
|
25121
25324
|
placeholder: $props.isEn ? "Please enter your name to prove your identity" : "请输入您的姓名,以证明您的身份"
|
|
25122
25325
|
}, {
|
|
25123
|
-
prefix: withCtx(() => [..._cache[
|
|
25326
|
+
prefix: withCtx(() => [..._cache[20] || (_cache[20] = [
|
|
25124
25327
|
createElementVNode("i", { class: "icon-auth-user" }, null, -1)
|
|
25125
25328
|
])]),
|
|
25126
25329
|
_: 1
|
|
@@ -25153,7 +25356,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
25153
25356
|
maxlength: "15"
|
|
25154
25357
|
}, {
|
|
25155
25358
|
prefix: withCtx(() => [
|
|
25156
|
-
_cache[
|
|
25359
|
+
_cache[21] || (_cache[21] = createElementVNode("i", { class: "icon-auth-phone" }, null, -1)),
|
|
25157
25360
|
createVNode(_component_el_form_item, {
|
|
25158
25361
|
prop: "areaCode",
|
|
25159
25362
|
class: "tel-areacode",
|
|
@@ -25190,24 +25393,24 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
25190
25393
|
]),
|
|
25191
25394
|
_: 1
|
|
25192
25395
|
}, 512),
|
|
25193
|
-
createVNode(_component_el_form_item, { prop: "
|
|
25396
|
+
createVNode(_component_el_form_item, { prop: "mobileCode" }, {
|
|
25194
25397
|
default: withCtx(() => [
|
|
25195
25398
|
createVNode(_component_CodeInput, {
|
|
25196
|
-
modelValue: $data.form.
|
|
25197
|
-
"onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => $data.form.
|
|
25399
|
+
modelValue: $data.form.mobileCode,
|
|
25400
|
+
"onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => $data.form.mobileCode = $event),
|
|
25198
25401
|
label: $options.codeInputLabel,
|
|
25199
25402
|
placeholder: $props.isEn ? "Enter 4 Verification Code" : "请输入4位数字验证码",
|
|
25200
|
-
ready: $data.
|
|
25403
|
+
ready: $data.mobileCodeReady,
|
|
25201
25404
|
"is-en": $props.isEn,
|
|
25202
25405
|
"show-icon": "",
|
|
25203
25406
|
"form-type-color": "4",
|
|
25204
|
-
onSend: $options.handleGetCode
|
|
25407
|
+
onSend: _cache[12] || (_cache[12] = (data) => $options.handleGetCode(data, "mobile"))
|
|
25205
25408
|
}, {
|
|
25206
|
-
prefix: withCtx(() => [..._cache[
|
|
25409
|
+
prefix: withCtx(() => [..._cache[22] || (_cache[22] = [
|
|
25207
25410
|
createElementVNode("i", { class: "icon-verify" }, null, -1)
|
|
25208
25411
|
])]),
|
|
25209
25412
|
_: 1
|
|
25210
|
-
}, 8, ["modelValue", "label", "placeholder", "ready", "is-en"
|
|
25413
|
+
}, 8, ["modelValue", "label", "placeholder", "ready", "is-en"])
|
|
25211
25414
|
]),
|
|
25212
25415
|
_: 1
|
|
25213
25416
|
})
|
|
@@ -25220,12 +25423,12 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
25220
25423
|
default: withCtx(() => [
|
|
25221
25424
|
createVNode(_component_JcFloatInput, {
|
|
25222
25425
|
modelValue: $data.form.email,
|
|
25223
|
-
"onUpdate:modelValue": _cache[
|
|
25426
|
+
"onUpdate:modelValue": _cache[13] || (_cache[13] = ($event) => $data.form.email = $event),
|
|
25224
25427
|
label: $props.isEn ? "Business Email Address" : "企业邮箱",
|
|
25225
25428
|
placeholder: $props.isEn ? "Business Email Address, QQ Mail is not available" : "请输入您的企业邮箱,暂不支持QQ邮箱",
|
|
25226
|
-
onBlur: _cache[
|
|
25429
|
+
onBlur: _cache[14] || (_cache[14] = ($event) => $options.validateField("email"))
|
|
25227
25430
|
}, {
|
|
25228
|
-
prefix: withCtx(() => [..._cache[
|
|
25431
|
+
prefix: withCtx(() => [..._cache[23] || (_cache[23] = [
|
|
25229
25432
|
createElementVNode("i", { class: "icon-auth-email" }, null, -1)
|
|
25230
25433
|
])]),
|
|
25231
25434
|
_: 1
|
|
@@ -25233,24 +25436,24 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
25233
25436
|
]),
|
|
25234
25437
|
_: 1
|
|
25235
25438
|
}),
|
|
25236
|
-
createVNode(_component_el_form_item, { prop: "
|
|
25439
|
+
createVNode(_component_el_form_item, { prop: "emailCode" }, {
|
|
25237
25440
|
default: withCtx(() => [
|
|
25238
25441
|
createVNode(_component_CodeInput, {
|
|
25239
|
-
modelValue: $data.form.
|
|
25240
|
-
"onUpdate:modelValue": _cache[
|
|
25442
|
+
modelValue: $data.form.emailCode,
|
|
25443
|
+
"onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => $data.form.emailCode = $event),
|
|
25241
25444
|
label: $options.codeInputLabel,
|
|
25242
25445
|
placeholder: $props.isEn ? "Enter 4 Verification Code" : "请输入4位数字验证码",
|
|
25243
|
-
ready: $data.
|
|
25446
|
+
ready: $data.emailCodeReady,
|
|
25244
25447
|
"is-en": $props.isEn,
|
|
25245
25448
|
"show-icon": "",
|
|
25246
25449
|
"form-type-color": "4",
|
|
25247
|
-
onSend: $options.handleGetCode
|
|
25450
|
+
onSend: _cache[16] || (_cache[16] = (data) => $options.handleGetCode(data, "email"))
|
|
25248
25451
|
}, {
|
|
25249
|
-
prefix: withCtx(() => [..._cache[
|
|
25452
|
+
prefix: withCtx(() => [..._cache[24] || (_cache[24] = [
|
|
25250
25453
|
createElementVNode("i", { class: "icon-verify" }, null, -1)
|
|
25251
25454
|
])]),
|
|
25252
25455
|
_: 1
|
|
25253
|
-
}, 8, ["modelValue", "label", "placeholder", "ready", "is-en"
|
|
25456
|
+
}, 8, ["modelValue", "label", "placeholder", "ready", "is-en"])
|
|
25254
25457
|
]),
|
|
25255
25458
|
_: 1
|
|
25256
25459
|
})
|
|
@@ -25258,7 +25461,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
25258
25461
|
createVNode(_component_el_button, {
|
|
25259
25462
|
class: "submit-btn register-btn register-btn-is-active",
|
|
25260
25463
|
loading: $data.loading,
|
|
25261
|
-
disabled:
|
|
25464
|
+
disabled: $options.isShowMobileCode && !$data.mobileCodeSent || $options.isShowEmailCode && !$data.emailCodeSent,
|
|
25262
25465
|
onClick: $options.handleSubmit
|
|
25263
25466
|
}, {
|
|
25264
25467
|
default: withCtx(() => [
|
|
@@ -25271,7 +25474,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
25271
25474
|
}, 8, ["model", "rules"])
|
|
25272
25475
|
]);
|
|
25273
25476
|
}
|
|
25274
|
-
const CompleteInfoForm = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$1], ["__scopeId", "data-v-
|
|
25477
|
+
const CompleteInfoForm = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$1], ["__scopeId", "data-v-8d245598"]]);
|
|
25275
25478
|
const _hoisted_1$7 = { class: "auth-footer-box" };
|
|
25276
25479
|
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
25277
25480
|
__name: "FooterBox",
|
|
@@ -25320,7 +25523,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
25320
25523
|
};
|
|
25321
25524
|
}
|
|
25322
25525
|
});
|
|
25323
|
-
const FooterBox = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-
|
|
25526
|
+
const FooterBox = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-00dec381"]]);
|
|
25324
25527
|
const _hoisted_1$6 = { class: "forget-password-wrapper" };
|
|
25325
25528
|
const _hoisted_2$5 = { class: "forgot-pwd-container" };
|
|
25326
25529
|
const _hoisted_3$5 = { class: "header-title" };
|
|
@@ -25478,13 +25681,12 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
25478
25681
|
}
|
|
25479
25682
|
loading.value = true;
|
|
25480
25683
|
try {
|
|
25481
|
-
const { MD5 } = await Promise.resolve().then(() => index$6);
|
|
25482
25684
|
const { data: res } = await resetPasswordApi({
|
|
25483
25685
|
id: userData.value.id,
|
|
25484
25686
|
account: userData.value.account,
|
|
25485
25687
|
codeId: codeUid.value,
|
|
25486
25688
|
codeValue: formB.code,
|
|
25487
|
-
password: MD5(formB.password).toString(),
|
|
25689
|
+
password: cryptoJsExports.MD5(formB.password).toString(),
|
|
25488
25690
|
...verifyData.value
|
|
25489
25691
|
});
|
|
25490
25692
|
if (res.code === 0) {
|
|
@@ -25695,7 +25897,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
25695
25897
|
};
|
|
25696
25898
|
}
|
|
25697
25899
|
});
|
|
25698
|
-
const ForgetPassword = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-
|
|
25900
|
+
const ForgetPassword = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-9dd4814c"]]);
|
|
25699
25901
|
const _hoisted_1$5 = { class: "auth-bottom-tip" };
|
|
25700
25902
|
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
25701
25903
|
__name: "AuthBottomTip",
|
|
@@ -25743,7 +25945,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
25743
25945
|
};
|
|
25744
25946
|
}
|
|
25745
25947
|
});
|
|
25746
|
-
const AuthBottomTip = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-
|
|
25948
|
+
const AuthBottomTip = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-b4421e4f"]]);
|
|
25747
25949
|
const _imports_0 = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1767855712095'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='9362'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20fill='currentcolor'%20d='M113.242353%20250.217412l356.352%20356.412235a60.235294%2060.235294%200%200%200%2080.655059%204.156235l4.577882-4.156235%20356.111059-356.171294c1.204706%204.397176%201.987765%208.914824%202.409412%2013.552941l0.240941%206.987294v481.882353c0%2042.345412-32.768%2077.101176-74.270118%2080.112941l-6.023529%200.240942H190.765176a80.293647%2080.293647%200%200%201-80.112941-74.330353l-0.180706-6.02353v-481.882353c0-4.818824%200.421647-9.456941%201.204706-14.034823l1.505883-6.746353z%20m720.052706-59.512471c4.818824%200%209.637647%200.421647%2014.215529%201.204706l6.866824%201.566118-342.136471%20342.13647-342.256941-342.13647c4.397176-1.204706%209.035294-2.048%2013.673412-2.409412l7.107764-0.361412h642.529883z'%20p-id='9363'%3e%3c/path%3e%3c/svg%3e";
|
|
25748
25950
|
const _imports_1 = "data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1767855760413'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='9516'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M694.874353%20918.949647c-57.825882-2.108235-221.726118-24.696471-393.336471-196.367059-171.610353-171.550118-194.258824-335.450353-196.367058-393.33647-3.252706-88.124235%2064.271059-173.778824%20142.336-207.209412a59.030588%2059.030588%200%200%201%2058.006588%206.324706c64.210824%2046.863059%20108.604235%20117.639529%20146.672941%20173.357176%2017.227294%2025.178353%2013.071059%2059.512471-10.24%2079.75153L363.52%20439.717647a19.275294%2019.275294%200%200%200-5.722353%2024.696471c17.709176%2032.346353%2049.332706%2080.353882%2085.473882%20116.495058%2036.141176%2036.141176%2086.437647%2069.752471%20120.952471%2089.509648a19.395765%2019.395765%200%200%200%2025.840941-6.445177l50.959059-77.703529c19.516235-25.961412%2056.018824-31.623529%2082.582588-13.251765%2056.500706%2039.092706%20122.458353%2082.642824%20170.706824%20144.444235a59.030588%2059.030588%200%200%201%207.589647%2059.632941c-33.611294%2078.426353-118.663529%20145.167059-207.088941%20141.914353z'%20p-id='9517'%3e%3c/path%3e%3c/svg%3e";
|
|
25749
25951
|
const _hoisted_1$4 = { class: "bind-container" };
|
|
@@ -25996,6 +26198,18 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
25996
26198
|
res.data.data
|
|
25997
26199
|
);
|
|
25998
26200
|
const data = res.data.data;
|
|
26201
|
+
if (data.subCode === "USER_HAS_OTHER_BIND" || res.data.subCode === "USER_HAS_OTHER_BIND") {
|
|
26202
|
+
ElMessage.error(
|
|
26203
|
+
props.isEn ? "Bound to other user" : "该账号已绑定其他用户"
|
|
26204
|
+
);
|
|
26205
|
+
return;
|
|
26206
|
+
}
|
|
26207
|
+
if (data.result) {
|
|
26208
|
+
setTokenAll(data.result);
|
|
26209
|
+
}
|
|
26210
|
+
if (data.tgc) {
|
|
26211
|
+
api$1.set("tgc", data.tgc, { expires: 30 });
|
|
26212
|
+
}
|
|
25999
26213
|
emit("login-success", {
|
|
26000
26214
|
...data || {},
|
|
26001
26215
|
accountType: ((_a = currentUser.value) == null ? void 0 : _a.accountType) || ((_b = currentUser.value) == null ? void 0 : _b.email) || ((_c = currentUser.value) == null ? void 0 : _c.mobile),
|
|
@@ -26229,9 +26443,9 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
26229
26443
|
};
|
|
26230
26444
|
}
|
|
26231
26445
|
});
|
|
26232
|
-
const ThirdBindLogin = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-
|
|
26446
|
+
const ThirdBindLogin = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-e8b08f1c"]]);
|
|
26233
26447
|
const _sfc_main$3 = {
|
|
26234
|
-
name: "
|
|
26448
|
+
name: "ThirdRegisterForm",
|
|
26235
26449
|
components: {
|
|
26236
26450
|
ElDialog,
|
|
26237
26451
|
ElForm,
|
|
@@ -26260,34 +26474,43 @@ const _sfc_main$3 = {
|
|
|
26260
26474
|
"register-step-change"
|
|
26261
26475
|
],
|
|
26262
26476
|
computed: {
|
|
26477
|
+
// 是否同意用户协议
|
|
26263
26478
|
isAgree() {
|
|
26264
26479
|
return this.form.agree;
|
|
26265
26480
|
},
|
|
26481
|
+
// 当前选择的城市所属国家 ID
|
|
26266
26482
|
countryId() {
|
|
26267
26483
|
var _a, _b, _c;
|
|
26268
26484
|
return (_c = (_b = (_a = this.form.city) == null ? void 0 : _a.raw) == null ? void 0 : _b.country) == null ? void 0 : _c.id;
|
|
26269
26485
|
},
|
|
26486
|
+
// 当前选择的城市 ID
|
|
26270
26487
|
cityId() {
|
|
26271
26488
|
var _a;
|
|
26272
26489
|
return (_a = this.form.city) == null ? void 0 : _a.id;
|
|
26273
26490
|
},
|
|
26491
|
+
// 当前国家是否为中国(countryId=1 为中国),影响表单字段与验证码发送方式
|
|
26274
26492
|
currentCountryIsChina() {
|
|
26275
26493
|
var _a;
|
|
26276
26494
|
const id = this.countryId || ((_a = this.resistCompanyInfo) == null ? void 0 : _a.countryId);
|
|
26277
26495
|
return [1].includes(Number(id));
|
|
26278
26496
|
},
|
|
26497
|
+
// 公司名称输入框的 placeholder 文字,根据语言和地区动态切换
|
|
26279
26498
|
currentCompanyLabel() {
|
|
26280
26499
|
return this.isEn ? this.currentCountryIsChina ? "Company Name in Chinese" : "Company Name in English" : this.currentCountryIsChina ? "公司中文名称" : "公司英文名称";
|
|
26281
26500
|
},
|
|
26501
|
+
// 是否选择了"货主(Trader)"行业类型,货主不需要填写公司名称
|
|
26282
26502
|
isTraderSector() {
|
|
26283
26503
|
return this.form.sector === "Trade";
|
|
26284
26504
|
},
|
|
26505
|
+
// 是否显示邮箱绑定按钮(海外区 && 有第三方邮箱验证列表)
|
|
26285
26506
|
showEmailBindBtn() {
|
|
26286
26507
|
return !this.currentCountryIsChina && this.thirdPartyEmailVerifyList.length > 0;
|
|
26287
26508
|
},
|
|
26509
|
+
// 是否显示手机号绑定按钮(中国区 && 有第三方手机验证列表)
|
|
26288
26510
|
showMobileBindBtn() {
|
|
26289
26511
|
return this.currentCountryIsChina && this.thirdPartyMobileVerifyList.length > 0;
|
|
26290
26512
|
},
|
|
26513
|
+
// 验证码输入组件的标签文字,根据地区自动拼接手机号/邮箱
|
|
26291
26514
|
codeInputLabel() {
|
|
26292
26515
|
return buildCodeInputLabel({
|
|
26293
26516
|
isChina: this.currentCountryIsChina,
|
|
@@ -26459,6 +26682,10 @@ const _sfc_main$3 = {
|
|
|
26459
26682
|
type === "email" ? this.thirdPartyEmailVerifyList : this.thirdPartyMobileVerifyList
|
|
26460
26683
|
);
|
|
26461
26684
|
},
|
|
26685
|
+
/**
|
|
26686
|
+
* Step 1 → Step 2:校验城市 + 联系方式(手机/邮箱)后进入第 2 步
|
|
26687
|
+
* 同时快照当前联系方式,用于返回 Step 1 时的变更检测
|
|
26688
|
+
*/
|
|
26462
26689
|
handleNextStep() {
|
|
26463
26690
|
const step1Fields = this.currentCountryIsChina ? ["city", "phone"] : ["city", "email"];
|
|
26464
26691
|
this.$refs.registerFormRef.validateField(step1Fields, (isValid) => {
|
|
@@ -26470,6 +26697,11 @@ const _sfc_main$3 = {
|
|
|
26470
26697
|
});
|
|
26471
26698
|
});
|
|
26472
26699
|
},
|
|
26700
|
+
/**
|
|
26701
|
+
* Step 2 → Step 1:返回到第 1 步
|
|
26702
|
+
* - 如果处于"已加入公司"状态,则回到公司名输入界面(取消加入)
|
|
26703
|
+
* - 如果联系方式有变更,重置验证码相关状态
|
|
26704
|
+
*/
|
|
26473
26705
|
handleBackToStep1() {
|
|
26474
26706
|
if (this.hasResistCompany) {
|
|
26475
26707
|
this.handleCancelJoin();
|
|
@@ -26629,6 +26861,13 @@ const _sfc_main$3 = {
|
|
|
26629
26861
|
}
|
|
26630
26862
|
});
|
|
26631
26863
|
},
|
|
26864
|
+
/**
|
|
26865
|
+
* 发送验证码
|
|
26866
|
+
* - 滑块验证成功后的回调,接收 captchaData(含 uuid + code)
|
|
26867
|
+
* - 根据 currentCountryIsChina 选择 sendMobileCodeApi 或 sendEmailCodeApi
|
|
26868
|
+
* - 成功后保存 verifyCode UUID(mobileUid/emailUid),用于注册时提交
|
|
26869
|
+
* - 接口成功后才调用 startTimer() 启动倒计时,避免失败时按钮被锁
|
|
26870
|
+
*/
|
|
26632
26871
|
handleGetCode({ captchaData, startTimer }) {
|
|
26633
26872
|
this.verifyData = captchaData;
|
|
26634
26873
|
const params = {
|
|
@@ -26662,6 +26901,12 @@ const _sfc_main$3 = {
|
|
|
26662
26901
|
console.error(err);
|
|
26663
26902
|
});
|
|
26664
26903
|
},
|
|
26904
|
+
/**
|
|
26905
|
+
* 注册提交入口
|
|
26906
|
+
* 1. 表单整体校验
|
|
26907
|
+
* 2. 组装提交数据(区分手机号/邮箱、拼接第三方登录信息)
|
|
26908
|
+
* 3. 业务分流:hasResistCompany ? 申请加入公司 : 新设公司注册
|
|
26909
|
+
*/
|
|
26665
26910
|
handleRegister() {
|
|
26666
26911
|
this.$refs.registerFormRef.validate((valid) => {
|
|
26667
26912
|
var _a;
|
|
@@ -26746,6 +26991,7 @@ const _sfc_main$3 = {
|
|
|
26746
26991
|
const res = await registerThirdPartyCustomizedApi(registerPayload);
|
|
26747
26992
|
this.handlePostRegister(res);
|
|
26748
26993
|
} catch (err) {
|
|
26994
|
+
console.error("ThirdRegisterForm handleNewCompanySubmit error:", err);
|
|
26749
26995
|
this.loading = false;
|
|
26750
26996
|
}
|
|
26751
26997
|
},
|
|
@@ -26784,6 +27030,7 @@ const _sfc_main$3 = {
|
|
|
26784
27030
|
const res = await registerThirdPartyCustomizedApi(applyPayload);
|
|
26785
27031
|
this.handlePostRegister(res);
|
|
26786
27032
|
} catch (err) {
|
|
27033
|
+
console.error("ThirdRegisterForm handleApplyJoinSubmit error:", err);
|
|
26787
27034
|
this.loading = false;
|
|
26788
27035
|
}
|
|
26789
27036
|
},
|
|
@@ -26794,6 +27041,14 @@ const _sfc_main$3 = {
|
|
|
26794
27041
|
handleRedirect$1(redirectPath);
|
|
26795
27042
|
}, delayMs);
|
|
26796
27043
|
},
|
|
27044
|
+
/**
|
|
27045
|
+
* 注册成功后的处理流程
|
|
27046
|
+
* 1. 写入登录凭证(tgc Cookie + token)
|
|
27047
|
+
* 2. improveComp 检查:如果后端返回 improveComp 标记,说明需要完善公司信息,
|
|
27048
|
+
* 则 emit need-complete 事件并 return,不执行重定向
|
|
27049
|
+
* 3. 正常流程:emit register-success 事件(包含 redirect/preventDefault 流控能力),
|
|
27050
|
+
* 如果父组件未处理则自动执行重定向
|
|
27051
|
+
*/
|
|
26797
27052
|
handlePostRegister(res) {
|
|
26798
27053
|
const sessionStorageItems = this.getAuthSessionItems();
|
|
26799
27054
|
if (res.data.code === 0) {
|
|
@@ -27286,7 +27541,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
27286
27541
|
}, 8, ["model", "rules"])
|
|
27287
27542
|
]);
|
|
27288
27543
|
}
|
|
27289
|
-
const ThirdRegisterForm = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
27544
|
+
const ThirdRegisterForm = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render], ["__scopeId", "data-v-fda6eabc"]]);
|
|
27290
27545
|
function useLoginForm(options) {
|
|
27291
27546
|
const { isEn, loginType } = options;
|
|
27292
27547
|
const loginFormRef = ref();
|
|
@@ -27686,7 +27941,8 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
27686
27941
|
isUserClosed,
|
|
27687
27942
|
startLogin,
|
|
27688
27943
|
handleBindThirdParty,
|
|
27689
|
-
resetBindRegisterState
|
|
27944
|
+
resetBindRegisterState,
|
|
27945
|
+
resetState: resetThirdPartyState
|
|
27690
27946
|
} = useThirdPartyLogin$1({
|
|
27691
27947
|
appId,
|
|
27692
27948
|
isEn,
|
|
@@ -27700,6 +27956,12 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
27700
27956
|
});
|
|
27701
27957
|
currentVisible.value = false;
|
|
27702
27958
|
executeRedirect(loginData);
|
|
27959
|
+
},
|
|
27960
|
+
onNeedComplete: (loginData) => {
|
|
27961
|
+
handleNeedComplete({
|
|
27962
|
+
mode: "login",
|
|
27963
|
+
accountType: resolveAccountType(thirdType.value || "")
|
|
27964
|
+
});
|
|
27703
27965
|
}
|
|
27704
27966
|
});
|
|
27705
27967
|
watch(isUserClosed, (val) => {
|
|
@@ -27791,6 +28053,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
27791
28053
|
resetAuthSessionItems();
|
|
27792
28054
|
resetGioSessionItems();
|
|
27793
28055
|
resetBindRegisterState();
|
|
28056
|
+
resetThirdPartyState();
|
|
27794
28057
|
}
|
|
27795
28058
|
function handleNeedComplete(options = {}) {
|
|
27796
28059
|
const mode2 = (options == null ? void 0 : options.mode) === "register" ? "register" : "login";
|
|
@@ -28265,7 +28528,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
28265
28528
|
};
|
|
28266
28529
|
}
|
|
28267
28530
|
});
|
|
28268
|
-
const index$2 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-
|
|
28531
|
+
const index$2 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-80de1603"]]);
|
|
28269
28532
|
const __vite_glob_0_16 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
28270
28533
|
__proto__: null,
|
|
28271
28534
|
default: index$2
|
|
@@ -29364,7 +29627,9 @@ const {
|
|
|
29364
29627
|
AirLineSearch,
|
|
29365
29628
|
SeaLineSearch,
|
|
29366
29629
|
LineCascader,
|
|
29367
|
-
JcImg
|
|
29630
|
+
JcImg,
|
|
29631
|
+
ForgotPasswordDialog,
|
|
29632
|
+
ChangePasswordDialog
|
|
29368
29633
|
} = components;
|
|
29369
29634
|
let installed = false;
|
|
29370
29635
|
const index = {
|
|
@@ -29387,8 +29652,10 @@ export {
|
|
|
29387
29652
|
AirCarrierSearch,
|
|
29388
29653
|
AirLineSearch,
|
|
29389
29654
|
ApplyDataDialog,
|
|
29655
|
+
ChangePasswordDialog,
|
|
29390
29656
|
ChineseCompanySearch,
|
|
29391
29657
|
CodeInput,
|
|
29658
|
+
ForgotPasswordDialog,
|
|
29392
29659
|
GlobalModal,
|
|
29393
29660
|
GoogleInput,
|
|
29394
29661
|
JcCarrierSearch,
|