jinhui.wang

接口增加逻辑增加

......@@ -8,75 +8,10 @@ export function fclInit() {
});
}
// 获取用户详细信息
export function getInfo() {
return request({
url: "/manager-server/user/getUser",
method: "get",
});
}
// 登录界面查询用户,可用不要token
export function getUserNotoken() {
return request({
url: "/icleartw/auth/getUser",
method: "get",
});
}
// 根据账号获取用户信息
export function getUserByAccNo(data) {
return request({
url: "/icleartw/auth/getUserByAccNo/" + data,
method: "get",
});
}
// 退出
export function logout() {
return request({
url: "/manager-server/auth/logout",
method: "post",
});
}
// 注册账号
export function addUser(data) {
return request({
url: "/icleartw/auth/addUser",
method: "post",
data: data,
});
}
// 登录
export function userLogin(accNo, password, rememberMe) {
const data = {
accNo,
password,
rememberMe,
};
return request({
url: "/icleartw/auth/login",
method: "post",
data: data,
});
}
// 根据用户账号发送修改密码邮件
export function updPwd(data) {
return request({
url: "/icleartw/auth/updPwd/" + data,
method: "get",
});
}
// 重置密碼
export function resetPwd(data) {
return request({
url: "/icleartw/auth/resetPwd",
method: "post",
data: data,
});
}
// 根据用户账号发送修改密码邮件
export function verifyResetPwd(data) {
return request({
url: "/icleartw/auth/verifyResetPwd/" + data,
method: "get",
});
}
\ No newline at end of file
......
import request from '@/utils/request'
// 上传状态
/**
*/
export function getUploadStatus() {
return request({
url: "/manager-server/dicEntries/getConsStatus",
method: "get",
});
}
......
import request from '@/utils/request'
import { praseStrEmpty } from "@/utils/FedEx";
// 查询用户列表
/**
* @param page 页码 *
* @param size 数据长度 *
* @param isValid 用户状态
* @param username 用户名
* @param phone 手机号码
*/
export function listUser(data) {
return request({
url: '/sysUser/getUserList',
method: 'post',
data: data
})
}
// 查询用户详细
/**
* @param id 用户id *
*/
export function detailUser(userId) {
return request({
url: '/sysUser/detailUser?id=' + praseStrEmpty(userId),
method: 'get'
})
}
// 新增用户
/**
* @param loginName 员工号 *
* @param username 用户姓名 *
* @param phone 手机号
* @param email 电子邮箱
* @param portName 所属口岸 *
* @param roleIds 所属角色 *
* @param remark 备注
*/
export function addOrUpdateUser(data) {
return request({
url: '/sysUser/addOrUpdateUser',
method: 'post',
data: data
})
}
// 修改用户状态
/**
* @param id 用户id *
* @param loginName 员工号 *
* @param username 用户姓名 *
* @param phone 手机号
* @param email 电子邮箱
* @param portName 所属口岸 *
* @param roleIds 所属角色 *
* @param remark 备注
*/
export function updateUserStatus(data) {
return request({
url: '/sysUser/updateUserStatus',
method: 'post',
data: data
})
}
//菜单信息
/**
* @param
*/
export function getAllAuth() {
return request({
url: '/sysMenu/getAllAuth',
method: 'get'
})
}
//菜单开启关闭
/**
* @param id 菜单id *
* @param status 菜单状态 *
*/
export function updateStatus(data) {
return request({
url: '/sysMenu/updateStatus',
method: 'post',
data: data
})
}
//角色列表
/**
* @param name 角色名称
* @param size 数据长度 *
* @param page 页码 *
* @param createStart 创建开始时间
* @param createEnd 创建结束时间
* @param valid 角色状态
*/
export function getRoleList(data) {
// 获取用户详细信息
export function getInfo() {
return request({
url: '/role/getRoleList',
method: 'post',
data: data
})
}
//角色详情
/**
* @param id 角色id *
*/
export function detailRole(id) {
return request({
url: '/role/detailRole?id=' + id,
method: 'get',
})
}
//新增修改角色
/**
* @param id 角色id *
* @param name 角色名 *
* @param remark 角色描述
* @param menuIds 角色权限
* @param valid 角色状态
*/
export function addOrUpdateRole(data) {
return request({
url: '/role/addOrUpdateRole',
method: 'post',
data: data
})
}
//角色状态修改
/**
* @param id 角色id *
* @param valid 角色状态 *
*/
export function updateRoleStatus(data) {
return request({
url: '/role/updateRoleStatus',
method: 'post',
data: data
})
}
//口岸列表
/**
* @param
*/
export function portNameList() {
return request({
url: '/dictionary/port',
method: 'get',
})
}
//口岸变更
/**
* @param
*/
export function changeCurrentPort(data) {
return request({
url: '/sysUser/changeCurrentPort',
method: 'post',
data: data
})
}
//获取用户设置表头
/**
* @param tableName 表名 *
*/
export function getHeaderOrder(data) {
return request({
url: '/table/getHeaderOrder?' + data,
method: 'get',
})
url: "/manager-server/user/getUser",
method: "get",
});
}
//保存用户设置表头
// 修改用户提示状态
/**
* @param tableName 表名 *
* @param idList 显示表头集合 *
* @param addFlag1 * 标致1
* @param addFlag2 * 标志2
*/
export function saveTableHeader(data) {
export function uploadUserTipFlag(data) {
return request({
url: '/table/saveTableHeader',
url: '/manager-server/user/updateAddFlag',
method: 'post',
data: data
})
......
import request from "@/utils/request";
// 运单查询
/**
* @param createTimeFrom
* @param createTimeTo
* @param consignmentCode
* @param sort
* @param curPage * 页数
* @param pageSize * 页长
*/
export function getwaybillData(data) {
return request({
url: "/biz-customer/consignment/query/list",
method: "post",
data: data
});
}
......@@ -86,7 +86,7 @@ export default {
onlineDeclare: "線上申報平臺帳號登錄",
registerNumber: "register a fedex.com account",
userInfo: "用戶信息維護",
logOut: "log out",
logOut: "logout",
logOutDia: "Are you sure to log out and exit the system?",
},
// 申报输入
......
......@@ -43,7 +43,7 @@ import tableHeaders from "@/assets/languages/tableHeaders";
import dictLabels from "@/assets/languages/dictLabels.js";
import settings from "./settings.js";
import * as filters from "./utils/filters.js";
import { toHead, numberRound, base64ConvertFile, b64ToBlob, titleCase } from "@/utils/index";
import { toHead, numberRound, base64ConvertFile, b64ToBlob, titleCase, formatDate } from "@/utils/index";
// 全局方法挂载
Vue.prototype.parseTime = parseTime;
......@@ -66,6 +66,7 @@ Vue.prototype.numberRound = numberRound
Vue.prototype.base64ConvertFile = base64ConvertFile
Vue.prototype.b64ToBlob = b64ToBlob
Vue.prototype.titleCase = titleCase
Vue.prototype.formatDate = formatDate
Vue.prototype.msgSuccess = function (msg) {
this.$message({ showClose: true, message: msg, type: "success" });
};
......
......@@ -46,7 +46,6 @@ const permission = {
return new Promise((resolve) => {
// 向后端请求路由数据
getRouters().then((res) => {
console.log(res);
const sdata = JSON.parse(JSON.stringify(routeItemInfo(res.data)));
const rdata = JSON.parse(JSON.stringify(routeItemInfo(res.data)));
const sidebarRoutes = filterAsyncRouter(sdata);
......
import { userLogin, logout, getInfo } from "@/api/login";
import { userLogin, logout } from "@/api/login";
import { getInfo } from "@/api/system/user.js"
import { getToken, setToken, removeToken } from "@/utils/auth";
import { MessageBox } from "element-ui";
......
......@@ -58,7 +58,7 @@ service.interceptors.response.use(
const code = Number(res.data.code) || 200;
// 获取错误信息
const msg = errorCode[code] || res.data.msg || errorCode["default"];
if (code === 301) {
if (code === 10004) {
MessageBox.alert(
"The login status has expired. You can continue to stay on this page or log in again.",
"System prompt",
......
<template>
<div class="loginForm">
<FedexAlert
v-if="errorTip.length > 0"
class="mb20"
:tipList="errorTip"
@close="errorTipClose"
/>
<div v-if="loginType == 'login'">
<div class="form-title">{{ $t("login.userTitle") }}</div>
<el-form
class="fedexFormStyle"
style="margin-top: 100px"
ref="loginFormRef"
:model="loginForm"
:rules="loginRules"
label-position="top"
>
<Formitem :label="$t('login.userNum')" prop="accNo">
<el-input
type="text"
:id="'inputInner--accNo'"
v-model="loginForm.accNo"
auto-complete="off"
></el-input>
</Formitem>
<Formitem :label="$t('login.passWord')" prop="password">
<el-input
type="password"
:id="'inputInner--password'"
v-model="loginForm.password"
show-password
auto-complete="off"
></el-input>
</Formitem>
<el-checkbox class="mt10" v-model="loginForm.rememberMe">{{
$t("login.checkPassWord")
}}</el-checkbox>
</el-form>
<div class="form-option">
<el-button
class="entrySaveButton entrySaveButton-background"
:loading="loading"
size="medium"
type="primary"
@click.native.prevent="handleLogin"
>
<span v-if="!loading">{{ $t("login.loginBtn") }}</span>
<span v-else>{{ $t("login.loggingBtn") }}</span>
</el-button>
</div>
</div>
<div v-else-if="loginType == 'rePassword'">
<div class="form-title">{{ $t("login.resetPassWord") }}</div>
<div class="form-tip">{{ $t("login.resetTip") }}</div>
<el-form
class="fedexFormStyle"
ref="rePassword"
:model="rePasswordForm"
:rules="rePasswordFormRules"
label-position="top"
>
<Formitem :label="$t('login.userNum')" type="rePassword" prop="accNo">
<el-input
type="text"
:id="'inputInner-rePassword-accNo'"
v-model="rePasswordForm.accNo"
></el-input>
</Formitem>
</el-form>
<div class="form-option">
<el-button
class="entrySaveButton entrySaveButton-background"
size="medium"
type="primary"
@click="rePassword"
>{{ $t("login.resetPassWordBtn") }}</el-button
>
<el-button
class="entrySaveButton"
size="medium"
type="primary"
@click="loginType = 'login'"
>{{ $t("common.goBack") }}</el-button
>
</div>
</div>
<div v-else-if="loginType == 'create'">
<div class="form-title">{{ $t("login.createUserNum") }}</div>
<div class="form-tip"></div>
<el-form
class="fedexFormStyle"
ref="createUserRef"
:model="createUserForm"
:rules="createUserRules"
label-position="top"
>
<el-row :gutter="10">
<el-col :span="12">
<Formitem :label="$t('login.userNum')" type="create" prop="accNo">
<el-input
type="text"
:id="'inputInner-create-accNo'"
v-model="createUserForm.accNo"
oninput="value = value.replace(/\s+/g,'')"
auto-complete="off"
></el-input>
</Formitem>
</el-col>
<el-col :span="12">
<Formitem
:label="$t('login.userName')"
type="create"
prop="userName"
>
<el-input
type="text"
:id="'inputInner-create-userName'"
v-model="createUserForm.userName"
autocomplete="new-password"
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="12">
<Formitem
:label="$t('login.passWord')"
type="create"
prop="password"
>
<el-input
type="text"
:id="'inputInner-create-password'"
v-model="createUserForm.password"
show-password
autocomplete="new-password"
></el-input>
</Formitem>
</el-col>
<el-col :span="12">
<Formitem
:label="$t('login.confirmPassWord')"
type="create"
prop="password2"
>
<el-input
type="text"
:id="'inputInner-create-password2'"
v-model="createUserForm.password2"
show-password
auto-complete="off"
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="12">
<Formitem
:label="$t('login.fedexNum')"
type="create"
prop="fedexAccNo"
>
<el-input
type="text"
:id="'inputInner-create-fedexAccNo'"
v-model="createUserForm.fedexAccNo"
auto-complete="off"
></el-input>
</Formitem>
</el-col>
<el-col :span="12">
<Formitem
:label="$t('login.confirmFedexNum')"
type="create"
prop="fedexAccNo2"
>
<el-input
type="text"
:id="'inputInner-create-fedexAccNo2'"
v-model="createUserForm.fedexAccNo2"
auto-complete="off"
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="12">
<Formitem :label="$t('login.emailNum')" type="create" prop="email">
<el-input
type="text"
:id="'inputInner-create-email'"
v-model="createUserForm.email"
auto-complete="off"
></el-input>
</Formitem>
</el-col>
<el-col :span="12">
<Formitem :label="$t('login.phone')" type="create" prop="phone">
<el-input
type="text"
:id="'inputInner-create-phone'"
maxlength="40"
v-model="createUserForm.phone"
auto-complete="off"
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="12">
<Formitem
:label="$t('login.company')"
type="create"
prop="companyName"
>
<el-input
type="text"
:id="'inputInner-create-companyName'"
v-model="createUserForm.companyName"
auto-complete="off"
></el-input>
</Formitem>
</el-col>
<el-col :span="12">
<Formitem
:label="$t('login.unifyNum')"
type="create"
prop="unifiedBusinessNum"
>
<el-input
type="text"
:id="'inputInner-create-unifiedBusinessNum'"
maxlength="10"
oninput="value = value.replace(/\s+/g, '')"
v-model="createUserForm.unifiedBusinessNum"
auto-complete="off"
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="12">
<Formitem
:label="$t('login.customsNum')"
type="create"
prop="customsSerialNum"
>
<el-input
type="text"
:id="'inputInner-create-customsSerialNum'"
v-model="createUserForm.customsSerialNum"
auto-complete="off"
></el-input>
</Formitem>
</el-col>
</el-row>
<el-checkbox
class="mt10"
v-model="createUserForm.policyFlag"
style="margin-right: 0px"
>{{ $t("login.checkAgree1") }}</el-checkbox
><a @click="openPrivacy">{{ $t("login.policy1") }}</a>
<el-checkbox v-model="createUserForm.clauseFlag">{{
$t("login.checkAgree2_1")
}}</el-checkbox>
<span>{{ $t("login.policy2") }}</span>
<span>{{ $t("login.checkAgree2_2") }}</span
><a @click="openTermPdf">{{ $t("login.policy3") }}</a
><span>{{ $t("login.checkAgree2_3") }}</span>
</el-form>
<div class="form-option">
<el-button
class="entrySaveButton entrySaveButton-background"
size="medium"
type="primary"
@click="createUser"
>{{ $t("common.submitBtn") }}</el-button
>
<el-button
class="entrySaveButton"
size="medium"
type="primary"
@click="loginType = 'login'"
>{{ $t("common.goBack") }}</el-button
>
</div>
</div>
<div v-else-if="loginType == 'reset'">
<div class="form-title">忘記了您的用户密碼?</div>
<div class="form-tip">提供您的用戶帳號</div>
<div class="form-option">
<el-button
class="entrySaveButton entrySaveButton-background"
size="medium"
type="primary"
@click="loginType = 'rePassword'"
>重置密码</el-button
>
<el-button
class="entrySaveButton"
size="medium"
type="primary"
@click="loginType = 'login'"
>{{ $t("common.goBack") }}</el-button
>
</div>
</div>
<!-- 修改密码 -->
<div v-else-if="loginType == 'resetPwd'">
<div class="form-title">
{{ $t("login.loginPassword.resetPassword.title") }}
</div>
<div class="form-tip">
{{ $t("login.loginPassword.resetPassword.tip") }}
</div>
<el-form
class="fedexFormStyle"
ref="resetPassword"
:model="resetPasswordForm"
:rules="resetPasswordRules"
label-position="top"
>
<Formitem
:label="$t('login.loginPassword.resetPassword.loginNameLabel')"
type="reset"
prop="loginName"
>
<el-input
type="text"
:id="'inputInner-reset-loginName'"
v-model="resetPasswordForm.loginName"
disabled
autocomplete="new-password"
></el-input>
</Formitem>
<div class="formTitle" style="font-size: 16px; margin-top: 30px">
{{ $t("login.loginPassword.resetPassword.password")
}}<span class="tip">{{
$t("login.loginPassword.resetPassword.passwordTip")
}}</span>
</div>
<Formitem
:label="$t('login.loginPassword.resetPassword.newPassword')"
type="reset"
prop="password"
>
<el-input
type="password"
:id="'inputInner-reset-password'"
v-model="resetPasswordForm.password"
show-password
autocomplete="new-password"
></el-input>
</Formitem>
<Formitem
:label="$t('login.loginPassword.resetPassword.confirmPassword')"
type="reset"
prop="confirmPassword"
>
<el-input
type="password"
:id="'inputInner-reset-confirmPassword'"
show-password
v-model="resetPasswordForm.confirmPassword"
autocomplete="new-password"
></el-input>
</Formitem>
</el-form>
<div class="form-option">
<el-button
class="entrySaveButton entrySaveButton-background"
size="medium"
type="primary"
:loading="loading"
@click="resetPasswordSubmit"
>{{ $t("common.submitBtn") }}</el-button
>
<el-button
class="entrySaveButton"
size="medium"
type="primary"
@click="loginType = 'login'"
>{{ $t("common.goBack") }}</el-button
>
</div>
</div>
</div>
</template>
<script>
import {
addUser,
getUserByAccNo,
updPwd,
resetPwd,
verifyResetPwd,
} from "@/api/login.js";
export default {
props: {
loginType: {
type: String,
default: "login",
},
loginName: {
type: String,
default: "",
},
},
data() {
return {
linkList: {
privacy: process.env.VUE_APP_PRIVACT_POLICY,
term: process.env.VUE_APP_EXPRESS_FREIGHT_TERM,
},
loginForm: {
accNo: "",
password: "",
rememberMe: false,
},
createUserForm: {
accNo: "",
userName: "",
password: "",
password2: "",
fedexAccNo: "",
fedexAccNo2: "",
email: "",
phone: "",
companyName: "",
unifiedBusinessNum: "",
customsSerialNum: "",
policyFlag: false,
clauseFlag: false,
},
rePasswordForm: {
username: "",
}, //重置密码数据
resetPasswordForm: {
loginName: "",
password: null,
confirmPassword: null,
},
rePasswordData: null,
loginRules: {
accNo: [
{
required: true,
trigger: "blur",
message: "User account cannot be empty.",
},
],
password: [
{
required: true,
trigger: "blur",
message: "Password cannot be empty.",
},
],
},
rePasswordFormRules: {
accNo: [
{
required: true,
trigger: "blur",
message: "User account cannot be empty.",
},
],
},
createUserRules: {
accNo: [
{
required: true,
trigger: "blur",
message: "User account cannot be empty.",
},
{
validator: (rule, value, callback) => {
if (this.regExp.pattern.test(value)) {
callback(
"The username does not allow special characters or spaces!"
);
} else {
getUserByAccNo(value)
.then((res) => {
if (res.code == 200) {
callback("The username already exists, please change it");
} else {
callback(res.message);
}
})
.catch((err) => {
console.log(err);
});
}
},
trigger: "blur",
},
],
userName: [
{ required: true, trigger: "blur", message: "姓名不能為空" },
{
validator: (rule, value, callback) => {
if (this.regExp.pattern.test(value)) {
callback("姓名不允許存在特殊字符以及空格!");
} else {
callback();
}
},
trigger: "blur",
},
],
password: [
{ required: true, trigger: "blur", message: "密碼不能為空" },
{
validator: (rule, value, callback) => {
if (!this.regExp.passwordExp.test(value)) {
callback("大小寫字母加數字的組合,至少8位!");
} else {
callback();
}
},
trigger: "blur",
},
],
password2: [
{ required: true, trigger: "blur", message: "確認密碼不能為空" },
{
validator: (rule, value, callback) => {
if (value != this.createUserForm.password) {
callback("確認密碼必須和新密碼相同!");
} else {
callback();
}
},
trigger: "blur",
},
],
fedexAccNo: [
{ required: true, trigger: "blur", message: "FedEx帳戶不能為空" },
{
validator: (rule, value, callback) => {
if (value.length != 9) {
callback("FedEx帳戶必須為9位!");
} else {
callback();
}
},
trigger: "blur",
},
],
fedexAccNo2: [
{ required: true, trigger: "blur", message: "確認FedEx帳戶不能為空" },
{
validator: (rule, value, callback) => {
if (value != this.createUserForm.fedexAccNo) {
callback("兩次輸入的FedEx賬戶不一致!");
} else {
callback();
}
},
trigger: "blur",
},
],
email: [
{ required: true, trigger: "blur", message: "郵箱不能為空" },
{
validator: (rule, value, callback) => {
if (!this.regExp.email.test(value)) {
callback("郵箱格式不正確!");
} else if (this.regExp.emailPattern.test(value)) {
callback("郵箱地址不允許存在特殊字符以及空格!");
} else {
callback();
}
},
trigger: "blur",
},
],
phone: [
{ required: true, trigger: "blur", message: "聯系電話不能為空" },
{
validator: (rule, value, callback) => {
if (this.regExp.pattern.test(value)) {
callback("電話不允許存在特殊字符以及空格!");
} else {
callback();
}
},
trigger: "blur",
},
],
companyName: [
{ required: true, trigger: "blur", message: "公司名稱不能為空" },
],
unifiedBusinessNum: [
{
required: true,
trigger: "blur",
message: "請您輸入貨物輸出人統一編號",
},
{
validator: (rule, value, callback) => {
if (!this.regExp.expNumExp.test(value)) {
callback("貨物輸出統一編號必須是8-10位纯數字");
} else {
callback();
}
// if (value) {
// if (value.length < 8 || value.length > 10) {
// callback("貨物輸出統一編號必須是8-10位!");
// } else {
// callback();
// }
// } else {
// callback();
// }
},
trigger: "blur",
},
],
},
resetPasswordRules: {
loginName: [
{
required: true,
trigger: "blur",
message: this.$t("login.loginPassword.formCheck.resetloginName"),
},
],
password: [
{
required: true,
trigger: "blur",
message: this.$t(
"login.loginPassword.formCheck.resetPasswordPassword"
),
},
{
validator: (rule, value, callback) => {
if (!this.regExp.passwordExp.test(value)) {
callback(
this.$t("login.loginPassword.resetPassword.passwordTip")
);
} else {
callback();
}
},
trigger: "blur",
},
],
confirmPassword: [
{
required: true,
trigger: "blur",
message: this.$t(
"login.loginPassword.formCheck.resetPasswordConfirmPassword1"
),
},
{
validator: (rule, value, callback) => {
if (value != this.resetPasswordForm.password) {
callback(
this.$t(
"login.loginPassword.formCheck.resetPasswordConfirmPassword2"
)
);
} else {
callback();
}
},
trigger: "blur",
},
],
},
loading: false,
redirect: undefined,
errorTip: [],
};
},
created() {
if (localStorage.getItem("rememberMe")) {
this.loginForm = {
accNo: localStorage.getItem("accNo"),
password: localStorage.getItem("passwordItem"),
rememberMe: JSON.parse(localStorage.getItem("rememberMe")),
};
}
},
watch: {
$route: {
handler: function (route) {
this.redirect = route.query && route.query.redirect;
if (route.query.changePasswordType) {
// route.query.changePasswordType == 'resetPwd' ?
// this.resetPasswordForm.loginName = route.query.loginname : this.resetPasswordForm.loginName = '';
if (
route.query.changePasswordType == "resetPwd" &&
route.query.loginname
) {
verifyResetPwd(route.query.loginname).then((res) => {
if (res.code == 200) {
this.rePasswordData = res;
this.resetPasswordForm.loginName = res.data;
} else {
this.$alert(res.msg, "提示", {
dangerouslyUseHTMLString: true,
type: "error",
});
this.resetPasswordForm.loginName = "";
}
});
}
}
},
immediate: true,
},
},
methods: {
handleLogin() {
this.$refs.loginFormRef.validate((valid) => {
if (valid) {
this.loading = true;
if (this.loginForm.rememberMe) {
localStorage.setItem("accNo", this.loginForm.accNo, {
expires: 30,
});
localStorage.setItem("passwordItem", this.loginForm.password, {
expires: 30,
});
localStorage.setItem("rememberMe", this.loginForm.rememberMe, {
expires: 30,
});
} else {
localStorage.removeItem("accNo");
localStorage.removeItem("passwordItem");
localStorage.removeItem("rememberMe");
}
this.$store
.dispatch("Login", this.loginForm)
.then(() => {
this.$router.push({ name: "WaybillInquiry" }).catch(() => {
this.loading = false;
});
})
.catch(() => {
this.loading = false;
});
}
});
},
createUser() {
this.errorTip = [];
if (this.createUserForm.policyFlag && this.createUserForm.clauseFlag) {
this.$refs.createUserRef.validate((valid) => {
if (valid) {
addUser(this.createUserForm)
.then((res) => {
if (res.code == "200") {
this.$alert("註冊成功", "提示", {
dangerouslyUseHTMLString: true,
type: "success",
})
.then(() => {
this.loginType = "login";
})
.catch(() => {
this.loginType = "login";
});
} else {
this.errorTip = [res.msg];
}
})
.catch((err) => {
console.log(err);
});
}
});
} else {
this.errorTip = ["请先確認相关协议政策后在进行提交!"];
}
},
rePassword() {
this.$refs.rePassword.validate((valid) => {
if (valid) {
//根据用户账号发送修改密码邮件
updPwd(this.rePasswordForm.accNo)
.then((res) => {
if (res.code == 200) {
this.$alert(
this.$t("login.loginPassword.resetPassword.sendEmail"),
"提示",
{
dangerouslyUseHTMLString: true,
type: "success",
}
).then(() => {
this.loginType = "login";
});
} else {
this.$alert(res.msg, "提示", {
dangerouslyUseHTMLString: true,
type: "warning",
});
}
})
.catch((err) => {
console.log(err);
});
}
});
},
errorTipClose() {
this.errorTip = [];
},
openPrivacy() {
window.open(this.linkList.privacy);
},
openTermPdf() {
window.open(this.linkList.term);
},
//重置密码
resetPasswordSubmit() {
this.$refs.resetPassword.validate((valid) => {
if (valid) {
// verifyResetPwd(this.resetPasswordForm.loginName).then(res => {
if (this.rePasswordData.code == 200) {
resetPwd({
accNo: this.rePasswordData.data,
newPwd: this.resetPasswordForm.password,
newPwd2: this.resetPasswordForm.confirmPassword,
}).then((res1) => {
if (res1.code == 200) {
this.$alert(res1.msg, "提示", {
dangerouslyUseHTMLString: true,
type: "success",
}).then(() => {
location.href = "/ImpPer/#/login";
this.loginType = "login";
});
} else {
this.$alert(res1.msg, "提示", {
dangerouslyUseHTMLString: true,
type: "warning",
});
}
});
} else {
this.$alert(this.rePasswordData.msg, "提示", {
dangerouslyUseHTMLString: true,
type: "warning",
});
}
// })
}
});
},
errorTipClose() {
this.errorTip = [];
},
},
};
</script>
<style rel="stylesheet/scss" lang="scss">
@import "@/assets/styles/variables.scss";
.loginForm {
max-width: 970px;
height: auto;
margin: 0 auto;
padding-top: 6rem;
padding-bottom: 50px;
.form-title {
font-size: 40px;
font-weight: 400;
color: #000;
text-align: center;
margin-bottom: 10px;
}
.form-tip {
text-align: center;
font-size: 14px;
font-weight: 600;
margin-bottom: 60px;
}
.buttonType {
cursor: pointer;
color: $fedexButton;
}
.fedexFormStyle {
width: 70%;
margin: 0 auto;
a {
font-size: 12px;
color: $fedexButton;
}
span {
font-size: 12px;
color: #606266;
}
}
.form-option {
text-align: center;
margin-top: 100px;
.el-button {
min-width: 120px;
height: 60px;
font-size: 16px;
}
.rePassword {
font-size: 14px;
font-weight: 600;
margin-top: 15px;
}
}
}
</style>
......@@ -96,7 +96,6 @@
v-else
style="width: 100%; height: calc(100% - 75px); background-color: #fff"
>
<loginForm :loginType="loginType"></loginForm>
</div>
<div class="footer" v-if="!login">
<span>FedEx Online Declaration Platform</span>
......@@ -113,7 +112,6 @@
<script>
import { Navbar } from "@/layout/components";
import loginForm from "./fedexLogin/loginForm.vue";
import { getToken, setToken, removeToken } from "@/utils/auth";
import { fclInit } from "@/api/login.js";
......@@ -121,7 +119,6 @@ export default {
name: "Login",
components: {
Navbar,
loginForm,
},
data() {
return {
......@@ -246,7 +243,7 @@ export default {
localStorage.setItem("impPreHost", location.origin);
this.fclLoginAddr = `http://192.168.1.251/time.html?replaceUrl=${
location.origin
}/ImpPer/#/redjrectLogin&loginUrl=/icleartw/auth/login&d=${new Date().getTime()}`;
}&loginUrl=/manager-server/auth/wlgnForward&d=${new Date().getTime()}`;
} else {
this.fclLoginAddr = res.data;
}
......