fix:用户登录和修改密码相关调整,处理了一些问题

dev_1.0.2
jiangpeng 2026-06-15 02:23:20 +08:00
parent 348eb137a8
commit eb1f4fb7b3
6 changed files with 39 additions and 16 deletions

View File

@ -274,9 +274,9 @@
<div class="stocking-product-summary__item">
<span class="stocking-product-summary__label">已备货:</span>
<span class="stocking-product-summary__value stocking-product-summary__value--green">{{ item.bhNum !== undefined && item.bhNum !== null ? item.bhNum : '-' }}</span>
<span v-if="item.orderNum !== undefined && item.orderNum !== null && Number(item.bhNum || 0) < Number(item.orderNum)" class="stocking-product-summary__value stocking-product-summary__value--red-bg" style="margin-left: 8px; font-size: 12px; font-weight: normal; padding: 2px 6px;">: {{ Number(item.orderNum) - Number(item.bhNum || 0) }}</span>
<span v-else-if="item.bhNum !== undefined && item.bhNum !== null && item.orderNum !== undefined && item.orderNum !== null && Number(item.bhNum) > Number(item.orderNum)" class="stocking-product-summary__value" style="margin-left: 8px; font-size: 12px; font-weight: normal; padding: 2px 6px; background: #e6a23c; color: #fff; border-radius: 3px;">超配: {{ Number(item.bhNum) - Number(item.orderNum) }}</span>
<span v-else-if="item.bhNum !== undefined && item.bhNum !== null && item.orderNum !== undefined && item.orderNum !== null && Number(item.bhNum) === Number(item.orderNum)" class="stocking-product-summary__value" style="margin-left: 8px; font-size: 12px; font-weight: normal; padding: 2px 6px; background: #67c23a; color: #fff; border-radius: 3px;">备货完成</span>
<span v-if="['1', '2'].includes(String(item.productType)) && item.orderNum !== undefined && item.orderNum !== null && Number(item.bhNum || 0) < Number(item.orderNum)" class="stocking-product-summary__value stocking-product-summary__value--red-bg" style="margin-left: 8px; font-size: 12px; font-weight: normal; padding: 2px 6px;">: {{ Number(item.orderNum) - Number(item.bhNum || 0) }}</span>
<span v-else-if="['1', '2'].includes(String(item.productType)) && item.bhNum !== undefined && item.bhNum !== null && item.orderNum !== undefined && item.orderNum !== null && Number(item.bhNum) > Number(item.orderNum)" class="stocking-product-summary__value" style="margin-left: 8px; font-size: 12px; font-weight: normal; padding: 2px 6px; background: #e6a23c; color: #fff; border-radius: 3px;">超配: {{ Number(item.bhNum) - Number(item.orderNum) }}</span>
<span v-else-if="['1', '2'].includes(String(item.productType)) && item.bhNum !== undefined && item.bhNum !== null && item.orderNum !== undefined && item.orderNum !== null && Number(item.bhNum) === Number(item.orderNum)" class="stocking-product-summary__value" style="margin-left: 8px; font-size: 12px; font-weight: normal; padding: 2px 6px; background: #67c23a; color: #fff; border-radius: 3px;">备货完成</span>
</div>
</div>
</div>

View File

@ -81,7 +81,15 @@
{{ emailCodeCountdown > 0 ? emailCodeCountdown + '秒后重发' : '发送验证码' }}
</el-button>
</el-form-item>
<div class="password-tip">密码长度8-20需包含大小写字母数字特殊字符</div>
<div class="password-tip">
<div>密码长度8-20以下规则中至少满足 3 </div>
<ul>
<li>大写字母</li>
<li>小写字母</li>
<li>数字</li>
<li>特殊字符</li>
</ul>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" :loading="resetPwdLoading" @click="submitResetPwd"> </el-button>
@ -129,7 +137,7 @@ export default {
newPassword: [
{ required: true, trigger: "blur", message: "请输入新密码" },
{ min: 8, max: 20, trigger: "blur", message: "密码长度为8到20个字符" },
{ pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,20}$/, trigger: "blur", message: "密码需包含大小写字母、数字、特殊字符" }
{ pattern: /^(?=.{8,20}$)(?:(?=.*[a-z])(?=.*[A-Z])(?=.*\d)|(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*\d)(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9])).*$/, trigger: "blur", message: "不符合密码规则" }
],
confirmPassword: [
{ required: true, trigger: "blur", message: "请确认新密码" },

View File

@ -9,6 +9,15 @@
<el-form-item label="确认密码" prop="confirmPassword">
<el-input v-model="user.confirmPassword" placeholder="请确认新密码" type="password" show-password/>
</el-form-item>
<div class="password-tip">
<div>密码长度8-20以下规则中至少满足 3 </div>
<ul>
<li>大写字母</li>
<li>小写字母</li>
<li>数字</li>
<li>特殊字符</li>
</ul>
</div>
<el-form-item>
<el-button type="primary" size="mini" @click="submit"></el-button>
<el-button type="danger" size="mini" @click="close"></el-button>
@ -42,7 +51,7 @@ export default {
newPassword: [
{ required: true, trigger: "blur", message: "请输入新密码" },
{ min: 8, max: 20, trigger: "blur", message: "密码长度为8到20个字符" },
{ pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,20}$/, trigger: "blur", message: "密码需包含大小写字母、数字、特殊字符" }
{ pattern: /^(?=.{8,20}$)(?:(?=.*[a-z])(?=.*[A-Z])(?=.*\d)|(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*\d)(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9])).*$/, trigger: "blur", message: "不符合密码规则" }
],
confirmPassword: [
{ required: true, message: "确认密码不能为空", trigger: "blur" },
@ -74,3 +83,12 @@ export default {
}
}
</script>
<style scoped>
.password-tip {
margin-top: 6px;
color: #f56c6c;
font-size: 12px;
line-height: 18px;
}
</style>

View File

@ -169,7 +169,7 @@ public class SysLoginController extends BaseController
}
if (!passwordService.isStrongPassword(newPassword))
{
return error("新密码长度为8-20位且需包含大小写字母、数字、特殊字符");
return error("新密码不符合规则");
}
SysUser user = userService.selectUserByLoginName(username);
if (user == null)

View File

@ -53,7 +53,7 @@ public class UserConstants
public static final int PASSWORD_MIN_LENGTH = 5;
public static final int PASSWORD_MAX_LENGTH = 20;
public static final String PASSWORD_COMPLEXITY_PATTERN = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^A-Za-z0-9]).{8,20}$";
public static final String PASSWORD_COMPLEXITY_PATTERN = "^(?=.{8,20}$)(?:(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)|(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*\\d)(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*\\d)(?=.*[^A-Za-z0-9])).*$";
/**
*

View File

@ -3001,16 +3001,13 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To
.allMatch(item -> item.getOrderNum() != null && item.getOrderNum() > 0
&& item.getBhNum() != null && item.getBhNum() >= item.getOrderNum());
String stockingStatus = null;
if (!deliveryCompleted) {
stockingStatus = ProjectOrderInfo.OrderStockingStatusEnum.PHZ.getCode();
} else {
String stockingStatus = ProjectOrderInfo.OrderStockingStatusEnum.PHZ.getCode();
if (deliveryCompleted) {
stockingStatus = ProjectOrderInfo.OrderStockingStatusEnum.YPH.getCode();
if (hasStocking && !stockingCompleted) {
stockingStatus = ProjectOrderInfo.OrderStockingStatusEnum.BFBH.getCode();
}
if (stockingCompleted) {
if (CollUtil.isEmpty(stockingProductList) || stockingCompleted) {
stockingStatus = ProjectOrderInfo.OrderStockingStatusEnum.BHWC.getCode();
} else if (hasStocking) {
stockingStatus = ProjectOrderInfo.OrderStockingStatusEnum.BFBH.getCode();
}
}
projectOrderInfoMapper.updateOrderStockingStatusByCode(orderCode, stockingStatus);