From 89761212ad3ac02b68276d82c26ab6cd767ea216 Mon Sep 17 00:00:00 2001
From: zhangxiaoxu <819527061@qq.com>
Date: 星期二, 06 一月 2026 14:56:29 +0800
Subject: [PATCH] 新政修改密码功能
---
pages/home/home.vue | 350 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 325 insertions(+), 25 deletions(-)
diff --git a/pages/home/home.vue b/pages/home/home.vue
index 6d06960..81c1ea5 100644
--- a/pages/home/home.vue
+++ b/pages/home/home.vue
@@ -11,7 +11,7 @@
</view>
- <view class="huoshiju-box" v-if="compId == '1000278'">
+ <view class="huoshiju-box" v-if="roles && roles.includes(2000144)">
<!-- 浜у搧褰撳墠浠锋牸 -->
<view class="price-group" v-if="coalData && coalData.length > 0">
<combined-title title="浜у搧褰撳墠浠锋牸"></combined-title>
@@ -25,8 +25,8 @@
</uni-tr>
<uni-tr v-for="(item,index) in coalData" :key="index">
<uni-td align="left">{{item.coalName}}</uni-td>
- <uni-td align="center">{{item.price1}}</uni-td>
- <uni-td align="center">{{item.price2}}</uni-td>
+ <uni-td align="center">{{item.price1 || ''}}</uni-td>
+ <uni-td align="center">{{item.price2 || ''}}</uni-td>
</uni-tr>
</uni-table>
<!-- <view class="price-line">
@@ -78,7 +78,7 @@
<view class="text1">{{item.ledgerName || ''}}</view>
</view>
</view>
- <view class="shouqiIcon" @click="handleShouKuanIsMore">
+ <view v-if="shoukuanJiluTemp && shoukuanJiluTemp.length > 2" class="shouqiIcon" @click="handleShouKuanIsMore">
<image v-if="!shoukuanIsMore" src="@/static/home/xialaIcon.png"></image>
<image v-else src="@/static/home/shouqiIcon.png"></image>
</view>
@@ -145,12 +145,12 @@
<view class="num">{{item.lyDSum || 0}}</view>
</view>
<view class="caol-block">
- <view class="name">鏃ュ悎璁�(鍏�)</view>
+ <view class="name">鏃ュ悎璁�(鍚�)</view>
<view class="num">{{item.d1 || 0}}</view>
</view>
</view>
</view>
- <view class="shouqiIcon" @click="handleCoalIsMore">
+ <view class="shouqiIcon" v-if="coalTongjiTemp && coalTongjiTemp.length > 2" @click="handleCoalIsMore">
<image v-if="!coalShowIsMore" src="@/static/home/xialaIcon.png"></image>
<image v-else src="@/static/home/shouqiIcon.png"></image>
</view>
@@ -169,23 +169,35 @@
<div class="shoukuan-box-inside">
<view class="shoukuan-main" v-for="(item,index) in kehuTongji" :key="index">
<view class="shoukuan-line">
- <view class="name">瀹㈡埛锛�</view>
+<!-- <view class="name">瀹㈡埛锛�</view>-->
<view class="text1">{{item.customerName}}</view>
+<!-- <view class="meizhong">
+ <view class="coal">{{item.coalName}}</view>
+ </view>-->
+ </view>
+ <view class="shoukuan-line coal-line">
+ <view class="coal" v-if="item.coalName">{{item.coalName}}</view>
+ <view class="coal" v-if="item.type">{{item.type || ''}}</view>
+ <view class="coal" v-if="item.carSize">{{item.carSize || ''}}杞�</view>
</view>
<view class="shoukuan-line">
<view class="name">璐﹀锛�</view>
<view class="text1">{{item.ledgerName}}</view>
</view>
- <view class="coalTongji-box">
+<!-- <view class="coalTongji-box">
<view class="shoukuan-line kehu-block">
<view class="name">杞︽暟锛�</view>
- <view class="text1 num">{{item.carSize}}</view>
+ <view class="text1 num">{{item.carSize || ''}}</view>
</view>
<view class="shoukuan-line kehu-block">
+ <view class="name">鏂瑰紡锛�</view>
+ <view class="text1 num">{{item.type || ''}}</view>
+ </view>
+<!– <view class="shoukuan-line kehu-block">
<view class="name">鐓ょ锛�</view>
<view class="text1">{{item.coalName}}</view>
- </view>
- </view>
+ </view>–>
+ </view>-->
<view class="coalTongji-box marginTop">
<view class="caol-block">
<view class="name">鍙戣繍閲�(鍚�)</view>
@@ -201,7 +213,7 @@
</view>
</view>
</view>
- <view class="shouqiIcon" @click="handlekehuTongjiShowIsMore">
+ <view class="shouqiIcon" v-if="kehuTongjiTemp && kehuTongjiTemp.length > 2" @click="handlekehuTongjiShowIsMore">
<image v-if="!kehuTongjiShowIsMore" src="@/static/home/xialaIcon.png"></image>
<image v-else src="@/static/home/shouqiIcon.png"></image>
</view>
@@ -517,6 +529,14 @@
<!-- 鑿滃崟鏍� -->
<!-- <popup-menu @menuShow="menushow" ref="menuRef"></popup-menu> -->
<u-gap height="15" bgColor="#eeeeee"></u-gap>
+
+
+
+ <view class="editorPass" @click="handlePwd">
+ <image class="icon" src="@/static/home/editorIcon.png"></image>
+ <view class="">淇敼瀵嗙爜</view>
+ </view>
+ <view class="huiseBox"></view>
<view class="utils">
<view class="utils-container">
<view class="utils-container-body" @click="redirectLogin">
@@ -530,6 +550,66 @@
</view>
</view>
<u-gap height="60" bgColor="#eeeeee"></u-gap>
+
+ <view class="passWord-main-box">
+ <u-popup :show="passShow"
+ :closeable="true"
+ :closeOnClickOverlay="true"
+ @close="handleClosePassShow"
+ mode="center"
+ width="90%"
+ class="passBox">
+ <view class="popup-box">
+ <u-form :model="formData" ref="uForm" borderBottom :rules="rules" :label-width="150">
+ <u-form-item prop="password" label="鍘熷瘑鐮�" borderBottom>
+ <u-input
+ class="flex-1"
+ type="password"
+ v-model="formData.password"
+ :border="false"
+ placeholder="璇疯緭鍏ュ師鏉ョ殑瀵嗙爜"
+ />
+ </u-form-item>
+ <u-form-item prop="newpassword1" label="鏂板瘑鐮�" borderBottom>
+ <u-input
+ class="flex-1"
+ type="password"
+ v-model="formData.newpassword1"
+ placeholder="瀵嗙爜搴旂敱8-16浣嶆暟瀛椼�佸瓧姣嶃�佺鍙风粍鎴愩�傝涓嶈浣跨敤瀹规槗琚寽鍒扮殑瀵嗙爜"
+ :border="false"
+ />
+ </u-form-item>
+ <view class="intensity">
+ <view class="psdText">瀵嗙爜寮哄害</view>
+ <view
+ class="line"
+ :class="[level.includes('low') ? 'low' : '']"></view>
+ <view
+ class="line"
+ :class="[level.includes('middle') ? 'middle' : '']"></view>
+ <view
+ class="line"
+ :class="[level.includes('high') ? 'high' : '']"></view>
+ <div class="warningtext">
+ 瀵嗙爜搴旂敱8-16浣嶆暟瀛椼�佸瓧姣嶃�佺鍙风粍鎴愩�傝涓嶈浣跨敤瀹规槗琚寽鍒扮殑瀵嗙爜
+ </div>
+ </view>
+ <u-form-item prop="newpassword2" label="纭瀵嗙爜" borderBottom>
+ <u-input
+ class="flex-1"
+ type="password"
+ v-model="formData.newpassword2"
+ placeholder="鍐嶆杈撳叆鏂板瘑鐮�"
+ :border="false"
+ />
+ </u-form-item>
+ </u-form>
+ <view class="sumbmit-box">
+ <u-button type="primary" shape="circle" @click="handlePassConfirm" :loading="sumbLoading"> 纭畾 </u-button>
+ </view>
+ </view>
+ </u-popup>
+ </view>
</view>
</template>
@@ -564,7 +644,83 @@
}
},
data() {
+ const validatePass = (rule, value, callback) => {
+ if (this.formData.newpassword1 !== "") {
+ if (value !== this.formData.newpassword1) {
+ callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!"));
+ } else {
+ callback();
+ }
+ } else {
+ callback();
+ }
+ };
+ const checkPassword = (rule, value, callback) => {
+ // let roles = this.$store.getters.roles;//褰撳墠鐢ㄦ埛瑙掕壊id
+ // let passL = 8;
+ // if (roles.concat(1)){
+ // passL = 10
+ // }
+ let passL = 8;
+ this.level = []
+ if(!value) {
+ return callback('瀵嗙爜涓嶈兘涓虹┖')
+ }
+ if(value.length < passL) {
+ return callback(`瀵嗙爜涓嶈兘灏戜簬${passL}浣峘)
+ }
+ if(value.length > 16) {
+ return callback('瀵嗙爜涓嶈兘澶т簬16浣�')
+ }
+ //鏍¢獙鏄暟瀛�
+ const regex1 = /^\d+$/
+ // 鏍¢獙瀛楁瘝
+ const regex2 = /^[A-Za-z]+$/
+ // 鏍¢獙绗﹀彿
+ const regex3 =
+ /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]路~锛丂#锟�%鈥︹��&*锛堬級鈥斺�擻-+={}|銆娿�嬶紵锛氣�溾�濄�愩�戙�侊紱鈥�'锛屻�傘�乚+$/
+ if(regex1.test(value)) {
+ this.level.push('low')
+ return callback('瀵嗙爜寮哄害杩囦綆')
+ }else if(regex2.test(value)) {
+ this.level.push('low')
+ return callback('瀵嗙爜寮哄害杩囦綆')
+ }else if(regex3.test(value)) {
+ this.level.push('low')
+ return callback('瀵嗙爜寮哄害杩囦綆')
+ }else if(/^[A-Za-z\d]+$/.test(value)) {
+ this.level.push('low')
+ this.level.push('middle')
+ return callback('瀵嗙爜寮哄害杩囦綆')
+ }else if(
+ /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]路~锛丂#锟�%鈥︹��&*锛堬級鈥斺�擻-+={}|銆娿�嬶紵锛氣�溾�濄�愩�戙�侊紱鈥�'锛屻�傘�乗d]+$/.test(
+ value
+ )
+ ) {
+ this.level.push('low')
+ this.level.push('middle')
+ return callback('瀵嗙爜寮哄害杩囦綆')
+ }else if(
+ /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]路~锛丂#锟�%鈥︹��&*锛堬級鈥斺�擻-+={}|銆娿�嬶紵锛氣�溾�濄�愩�戙�侊紱鈥�'锛屻�傘�丄-Za-z]+$/.test(
+ value
+ )
+ ) {
+ this.level.push('low')
+ this.level.push('middle')
+ return callback('瀵嗙爜寮哄害杩囦綆')
+ } else if (
+ /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]路~锛丂#锟�%鈥︹��&*锛堬級鈥斺�擻-+={}|銆娿�嬶紵锛氣�溾�濄�愩�戙�侊紱鈥�'锛屻�傘�丄-Za-z\d]+$/.test(
+ value
+ )
+ ) {
+ this.level.push('low')
+ this.level.push('middle')
+ this.level.push('high')
+ }
+ return callback()
+ };
return {
+ level:[],
// ucharts鍥捐〃
chartData: {},
opts: {
@@ -640,7 +796,6 @@
procInstId: '',
// 閫夋嫨鍣�
statusSeletShow: false,
- statusList: [['涓浗', '缇庡浗', '鏃ユ湰']],
// data
shenqingData: [],
daibanData: [],
@@ -677,17 +832,42 @@
kehuTongji:[], //鐓ょ缁熻
kehuTongjiTemp:[], //鐓ょ缁熻
kehuTongjiShowIsMore: false,
- compId:'',
+ roles:[],
d2Sum:0, //鎬昏閲戦
d1Sum:0, //鎬昏
lyDSumSum:0, //璺繍
dsumSum:0, //姹借繍
+ passShow: false, //瀵嗙爜寮规
+ sumbLoading: false,
+ formData: {
+ password:'',
+ newpassword1:'',
+ newpassword2:'',
+ },
+ rules: {
+ password: [{
+ type: 'string',
+ required: true,
+ message: '璇峰~鍐欏瘑鐮�',
+ trigger: ['blur', 'change']
+ }],
+ newpassword1: [{
+ required: true,
+ validator: checkPassword,
+ trigger: 'change'
+ }],
+ newpassword2: [{
+ required: true,
+ validator: validatePass,
+ trigger: "blur"
+ }]
+ }
};
},
// 鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚銆傛敞鎰忓鏋滄覆鏌撻�熷害蹇紝浼氬湪椤甸潰杩涘叆鍔ㄧ敾瀹屾垚鍓嶈Е鍙�
- // onReady() {
-
- // },
+ onReady() {
+ this.$refs.uForm.setRules(this.rules)
+ },
// 鐐瑰嚮瀵艰埅鏍忚彍鍗曞悗
onNavigationBarButtonTap(e) {
console.log('閫�鍑哄鑸爮鎸夐挳浜嬩欢', e);
@@ -715,11 +895,11 @@
watch: {
shoukuanIsMore: {
handler(newVal,oldVal) {
- console.log(newVal,'newVal-------褰撳ぉ鏀舵璁板綍')
let temp = newVal.toString() || ''
if(this.shoukuanJiluTemp && this.shoukuanJiluTemp.length > 0) {
if(temp == 'false') {
this.shoukuanJilu = this.shoukuanJiluTemp.slice(0,2)
+ console.log(this.shoukuanJilu,'this.shoukuanJilu------鏀舵鎯呭喌')
this.coalShowIsMore = false
}else if(temp == 'true') {
this.shoukuanJilu = this.shoukuanJiluTemp
@@ -732,7 +912,6 @@
},
coalShowIsMore: {
handler(newVal,oldVal) {
- console.log(newVal,'newVal-------鎸夌叅绉嶇粺璁�')
let temp = newVal.toString() || ''
if(this.coalTongjiTemp && this.coalTongjiTemp.length > 0) {
if(temp == 'false') {
@@ -749,7 +928,6 @@
},
kehuTongjiShowIsMore: {
handler(newVal,oldVal) {
- console.log(newVal,'newVal-------鎸夊鎴峰彂杩愮粺璁�')
let temp = newVal.toString() || ''
if(this.kehuTongjiTemp && this.kehuTongjiTemp.length > 0) {
if(temp == 'false') {
@@ -766,6 +944,41 @@
},
},
methods: {
+ handlePassConfirm() { //淇敼瀵嗙爜
+ //鍒楄〃鏌ヨ
+ this.$refs.uForm.validate().then(res => {
+ this.sumbLoading = true
+ uni.showLoading({
+ title: '姝e湪鍔犺浇...'
+ });
+ this.formData.deptId = uni.getStorageSync('userInfo')?.deptId
+ this.formData.username = uni.getStorageSync('userInfo')?.username
+ this.$reqPut('editInfo',this.formData).then(res => {
+ if (res.code == 0) {
+ this.passShow = false
+ this.sumbLoading = false
+ this.$u.toast('淇敼瀵嗙爜鎴愬姛!');
+ setTimeout(() => {
+ uni.reLaunch({
+ url:"/pages/login/login"
+ })
+ }, 1000)
+ uni.hideLoading();
+ }else {
+ this.$u.toast(res.msg || '淇敼瀵嗙爜澶辫触');
+ this.sumbLoading = false
+ uni.hideLoading();
+ }
+ })
+ })
+
+ },
+ handleClosePassShow() {
+ this.passShow = false
+ },
+ handlePwd() {
+ this.passShow = true
+ },
handleShouKuanIsMore() { //褰撴棩鏀舵鎯呭喌
this.shoukuanIsMore = !this.shoukuanIsMore
},
@@ -804,7 +1017,7 @@
this.shoukuanJiluTemp = res.data || []
if(this.shoukuanJiluTemp && this.shoukuanJiluTemp.length > 0) {
this.shoukuanToatl = this.shoukuanJiluTemp[0]?.money || 0
- if(this.shoukuanJiluTemp.length > 1) {
+ if(this.shoukuanJiluTemp.length > 0) {
this.shoukuanJilu = this.shoukuanJiluTemp.slice(0,2)
this.shoukuanIsMore = false
}
@@ -821,7 +1034,7 @@
this.d1Sum = this.coalTongjiTemp[0]?.d1Sum || 0
this.lyDSumSum = this.coalTongjiTemp[0]?.lyDSumSum || 0
this.dsumSum = this.coalTongjiTemp[0]?.dsumSum || 0
- if(this.coalTongjiTemp.length > 1) {
+ if(this.coalTongjiTemp.length > 0) {
this.coalTongji = this.coalTongjiTemp.slice(0,2)
this.coalShowIsMore = false
}
@@ -834,7 +1047,7 @@
if (res.code == 0) {
this.kehuTongjiTemp = res.data || []
if(this.kehuTongjiTemp && this.kehuTongjiTemp.length > 0){
- if(this.kehuTongjiTemp.length > 1) {
+ if(this.kehuTongjiTemp.length > 0) {
this.kehuTongji = this.kehuTongjiTemp.slice(0,2)
this.kehuTongjiShowIsMore = false
}
@@ -877,8 +1090,8 @@
this.$store.commit('SET_PERMISSIONS',res.data.permissions)
//uni.setStorageSync('permissions', res.data.permissions);
this.userId = res.data.sysUser?.userId;
- this.compId = res.data.sysUser?.compId;
- console.log(this.compId,'this.compId---111')
+ this.roles = res.data?.roles;
+ console.log(this.roles,'this.roles---111')
this.$nextTick(() => {
this.coalbunker();
});
@@ -1215,6 +1428,17 @@
::v-deep{
.uni-table-td,.uni-table-th{
color: #000;
+ }
+ .u-popup__content{
+ width: 85%;
+ padding: 40rpx;
+ box-sizing: border-box;
+ border-radius: 10rpx;
+ }
+ .passWord-main-box{
+ .u-icon__icon{
+ font-size: 28rpx!important;
+ }
}
}
::v-deep.home {
@@ -1650,6 +1874,19 @@
align-items: baseline;
height: 60rpx;
line-height: 60rpx;
+ position: relative;
+ .coal{
+ font-size: 26rpx;
+ color: #3884ff;
+ border: 1px solid #3884ff;
+ margin-right: 26rpx;
+ padding: 0 32rpx;
+ height: 38rpx;
+ line-height: 38rpx;
+ border-radius: 8rpx;
+ letter-spacing: 2px;
+ font-weight: 500;
+ }
.name{
font-size: 24rpx;
color: #606266;
@@ -1665,6 +1902,10 @@
display: flex;
align-items: baseline;
}
+ }
+ .coal-line{
+ display: flex;
+ align-items: center;
}
.kehu-block{
width: 33%;
@@ -1718,4 +1959,63 @@
}
}
}
+.sumbmit-box{
+ margin-top: 40rpx;
+}
+.editorPass{
+ width: 100%;
+ justify-content: center;
+ display: flex;
+ margin: 20rpx 0;
+ align-items: center;
+ .icon{
+ width: 46rpx;
+ height: 46rpx;
+ margin-right: 10rpx;
+ }
+}
+.huiseBox{
+ width: 100%;
+ height: 12rpx;
+ background: #eeeeee;
+}
+.intensity {
+ width: 100%;
+ margin-top: 10rpx;
+ .psdText {
+ font-size: 14px;
+ margin-right: 10px;
+ }
+
+ .line {
+ display: inline-block;
+ width: 70rpx;
+ height: 8rpx;
+ background: #d8d8d8;
+ border-radius: 6rpx;
+ margin-right: 16rpx;
+
+ &.low {
+ background: #f4664a;
+ }
+
+ &.middle {
+ background: #ffb700;
+ }
+
+ &.high {
+ background: #2cbb79;
+ }
+ }
+
+ .level {
+ margin: 0 32rpx 0 16rpx;
+ }
+
+ .warningtext {
+ color: #5a5a5a;
+ font-size: 24rpx;
+ margin-top: 10rpx;
+ }
+}
</style>
--
Gitblit v1.9.1