caixianzhi pc接口修改完成
This commit is contained in:
@@ -76,6 +76,26 @@
|
||||
<div class="uc-nickname" id="userNickName">未登录</div>
|
||||
<div class="uc-level" id="userLevel">普通会员</div>
|
||||
<div class="uc-phone" id="userPhone"></div>
|
||||
<div class="wechatBindCard" id="wechat-bind-card">
|
||||
<div class="wechatBindTop">
|
||||
<div class="wechatBindIconBox">
|
||||
<img class="wechatBindIcon" src="../public/img/pay-wechat.png" alt="微信" />
|
||||
</div>
|
||||
<div class="wechatBindInfo">
|
||||
<div class="wechatBindTitle">微信账号</div>
|
||||
<div class="wechatBindDesc" id="wechat-bind-desc">检测中...</div>
|
||||
</div>
|
||||
<div class="wechatBindStateDot"></div>
|
||||
</div>
|
||||
<button
|
||||
type="button"
|
||||
class="wechatBindButton"
|
||||
id="wechat-bind-button"
|
||||
onclick="openWeChatBindPopup()"
|
||||
>
|
||||
绑定微信
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uc-actions">
|
||||
<button
|
||||
@@ -120,6 +140,27 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wechatBindCard" id="wechat-bind-card">
|
||||
<div class="wechatBindTop">
|
||||
<div class="wechatBindIconBox">
|
||||
<img class="wechatBindIcon" src="../public/img/pay-wechat.png" alt="微信" />
|
||||
</div>
|
||||
<div class="wechatBindInfo">
|
||||
<div class="wechatBindTitle">微信账号</div>
|
||||
<div class="wechatBindDesc" id="wechat-bind-desc">正在检测绑定状态...</div>
|
||||
</div>
|
||||
<div class="wechatBindStateDot"></div>
|
||||
</div>
|
||||
<div class="wechatBindLine"></div>
|
||||
<button
|
||||
type="button"
|
||||
class="wechatBindButton"
|
||||
id="wechat-bind-button"
|
||||
onclick="openWeChatBindPopup()"
|
||||
>
|
||||
绑定微信
|
||||
</button>
|
||||
</div>
|
||||
<!-- Balance Cards -->
|
||||
<div class="uc-balance-grid">
|
||||
<div class="uc-balance-item">
|
||||
@@ -370,10 +411,43 @@
|
||||
↑
|
||||
</button>
|
||||
|
||||
<div id="mask-layer"></div>
|
||||
<div id="wechat-bind-popup">
|
||||
<div class="wechatBindPopupHeader">
|
||||
<div>
|
||||
<div class="wechatBindPopupTitle">绑定微信</div>
|
||||
<div class="wechatBindPopupSub">绑定后可使用微信快捷登录当前账号</div>
|
||||
</div>
|
||||
<div class="popup-close" onclick="closeWeChatBindPopup()">
|
||||
<i class="layui-icon layui-icon-close"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wechatBindPopupBody">
|
||||
<div class="wechatBindFormRow">
|
||||
<label>手机号</label>
|
||||
<input id="wechatBindPhone" type="text" placeholder="请输入手机号" />
|
||||
</div>
|
||||
<div class="wechatBindFormRow">
|
||||
<label>短信验证码</label>
|
||||
<div class="wechatBindCodeBox">
|
||||
<input id="wechatBindSmsCode" type="text" placeholder="请输入验证码" />
|
||||
<button type="button" onclick="sendWeChatBindSms()">获取验证码</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wechatBindFormRow">
|
||||
<label>登录密码</label>
|
||||
<input id="wechatBindPassword" type="password" placeholder="请输入登录密码" />
|
||||
</div>
|
||||
<div class="wechatBindTip">当前接口需要微信授权参数、手机号、短信验证码和密码。</div>
|
||||
<button type="button" class="wechatBindSubmit" onclick="submitWeChatBind()">确认绑定</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="../public/js/md5.js"></script>
|
||||
<script>
|
||||
const $ = layui.$;
|
||||
var currentUserData = null;
|
||||
var accountInfoData = {};
|
||||
var menuListData = [];
|
||||
var signInPageNum = 1;
|
||||
var articlePageNum = 1;
|
||||
@@ -466,6 +540,148 @@
|
||||
$("#publishArticleBtn").toggle(expert);
|
||||
}
|
||||
|
||||
function loadAccountInfoForWechat() {
|
||||
ApiClient.get(ApiClient.API.accountInfo, null, { headers: CommonUtil.authHeaders() })
|
||||
.then(function (res) {
|
||||
accountInfoData = ApiClient.isSuccess(res) && res.data ? res.data : {};
|
||||
updateWechatBindPanel();
|
||||
})
|
||||
.catch(function () {
|
||||
accountInfoData = {};
|
||||
updateWechatBindPanel();
|
||||
});
|
||||
}
|
||||
|
||||
function isWechatBound() {
|
||||
var data = Object.assign({}, currentUserData || {}, accountInfoData || {});
|
||||
return Boolean(
|
||||
data.openId ||
|
||||
data.openid ||
|
||||
data.wxOpenId ||
|
||||
data.wechatOpenId ||
|
||||
data.wechatOpenid ||
|
||||
data.unionId ||
|
||||
data.wechatUnionId ||
|
||||
data.wechatBound ||
|
||||
data.isWechatBound,
|
||||
);
|
||||
}
|
||||
|
||||
function updateWechatBindPanel() {
|
||||
var $desc = $("#wechat-bind-desc");
|
||||
var $button = $("#wechat-bind-button");
|
||||
var $card = $("#wechat-bind-card");
|
||||
if (!$desc.length || !$button.length) return;
|
||||
|
||||
$card.removeClass("is-bound is-pending is-ready");
|
||||
if (isWechatBound()) {
|
||||
$desc.text("微信已绑定");
|
||||
$card.addClass("is-bound");
|
||||
$button
|
||||
.text("已绑定")
|
||||
.removeClass("is-pending")
|
||||
.addClass("is-bound")
|
||||
.prop("disabled", true);
|
||||
return;
|
||||
}
|
||||
|
||||
$desc.text("未绑定微信");
|
||||
$card.addClass("is-ready");
|
||||
$button
|
||||
.text("绑定微信")
|
||||
.removeClass("is-bound is-pending")
|
||||
.prop("disabled", false);
|
||||
}
|
||||
|
||||
function getWechatAuthParams() {
|
||||
var params = new URLSearchParams(window.location.search);
|
||||
return {
|
||||
socialCode: params.get("socialCode") || params.get("code") || "",
|
||||
socialState: params.get("socialState") || params.get("state") || "",
|
||||
};
|
||||
}
|
||||
|
||||
function openWeChatBindPopup() {
|
||||
var authParams = getWechatAuthParams();
|
||||
if (isWechatBound()) {
|
||||
layui.layer.msg("当前账号已绑定微信", { icon: 1 });
|
||||
return;
|
||||
}
|
||||
if (!authParams.socialCode) {
|
||||
layui.layer.msg("请先通过微信授权入口进入绑定流程", { icon: 0 });
|
||||
return;
|
||||
}
|
||||
|
||||
$("#wechatBindPhone").val(
|
||||
(currentUserData && currentUserData.phoneNumber) ||
|
||||
accountInfoData.phoneNumber ||
|
||||
"",
|
||||
);
|
||||
$("#wechatBindSmsCode").val("");
|
||||
$("#wechatBindPassword").val("");
|
||||
$("#mask-layer").show();
|
||||
$("#wechat-bind-popup").show();
|
||||
}
|
||||
|
||||
function closeWeChatBindPopup() {
|
||||
$("#wechat-bind-popup").hide();
|
||||
$("#mask-layer").hide();
|
||||
}
|
||||
|
||||
function sendWeChatBindSms() {
|
||||
var phoneNumber = $("#wechatBindPhone").val().trim();
|
||||
if (!phoneNumber) {
|
||||
layui.layer.msg("请输入手机号", { icon: 2 });
|
||||
return;
|
||||
}
|
||||
|
||||
ApiClient.get(ApiClient.API.authSocialBindPhoneSmsCode, {
|
||||
phoneNumber: phoneNumber,
|
||||
}).then(function (res) {
|
||||
if (ApiClient.isSuccess(res)) {
|
||||
layui.layer.msg("验证码已发送", { icon: 1 });
|
||||
} else {
|
||||
layui.layer.msg(res.msg || "验证码发送失败", { icon: 2 });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function submitWeChatBind() {
|
||||
var authParams = getWechatAuthParams();
|
||||
var phoneNumber = $("#wechatBindPhone").val().trim();
|
||||
var smsCode = $("#wechatBindSmsCode").val().trim();
|
||||
var password = $("#wechatBindPassword").val();
|
||||
|
||||
if (!authParams.socialCode) {
|
||||
layui.layer.msg("缺少微信授权参数", { icon: 2 });
|
||||
return;
|
||||
}
|
||||
if (!phoneNumber || !smsCode || !password) {
|
||||
layui.layer.msg("请完整填写绑定信息", { icon: 2 });
|
||||
return;
|
||||
}
|
||||
|
||||
ApiClient.post(ApiClient.API.authSocialBind, {
|
||||
source: "wechat_open",
|
||||
socialCode: authParams.socialCode,
|
||||
socialState: authParams.socialState,
|
||||
phoneNumber: phoneNumber,
|
||||
smsCode: smsCode,
|
||||
password: hex_md5(password),
|
||||
}).then(function (res) {
|
||||
if (ApiClient.isSuccess(res)) {
|
||||
layui.layer.msg("微信绑定成功", { icon: 1 });
|
||||
try {
|
||||
sessionStorage.setItem("wechatAccountBindSuccess", "1");
|
||||
} catch (e) {}
|
||||
closeWeChatBindPopup();
|
||||
loadUserDetail();
|
||||
} else {
|
||||
layui.layer.msg(res.msg || "微信绑定失败", { icon: 2 });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function isTodayTime(value) {
|
||||
if (!value) return false;
|
||||
var dateText = String(value).slice(0, 10);
|
||||
@@ -534,6 +750,7 @@
|
||||
: "普通会员",
|
||||
);
|
||||
updateExpertActions(data);
|
||||
loadAccountInfoForWechat();
|
||||
$("#userPoints").html((data.points || 0) + "<span>点</span>");
|
||||
if (hasSignedTodayValue(data)) {
|
||||
setSignInButtonSigned(readSignedToday(data));
|
||||
|
||||
Reference in New Issue
Block a user