张泽亮 hace 2 años
padre
commit
f60eb0840f
Se han modificado 14 ficheros con 164 adiciones y 83 borrados
  1. +4
    -0
      src/utils/global.js
  2. +16
    -5
      src/views/homesteadSurvey/add4.vue
  3. +13
    -49
      src/views/homesteadSurvey/hncyList2.vue
  4. +3
    -3
      src/views/homesteadSurvey/index.vue
  5. +0
    -4
      src/views/homesteadSurvey/list.vue
  6. +19
    -1
      src/views/homesteadSurvey/nhcyList.vue
  7. +1
    -1
      src/views/homesteadSurvey/nmfwAdd.vue
  8. +1
    -1
      src/views/sunVillage_info/entityReport/reportLineList.vue
  9. +7
    -1
      src/views/sunVillage_info/entityReport/reportLineSummary.vue
  10. +7
    -1
      src/views/sunVillage_info/entityReport/reportLineView.vue
  11. +3
    -2
      src/views/sunVillage_info/familyMember/familyMemberList.vue
  12. +8
    -2
      src/views/sunVillage_info/login_code.vue
  13. +26
    -5
      src/views/sunVillage_info/passWord.vue
  14. +56
    -8
      src/views/yinnong/password.vue

+ 4
- 0
src/utils/global.js Ver fichero

@@ -9,3 +9,7 @@ export default
export const REGION = { export const REGION = {
YI_LONG_XIAN: '仪陇', YI_LONG_XIAN: '仪陇',
} }

export const REGEXP = {
PASSWORD: /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*])[\da-zA-Z~!@#$%^&*]{8,}$/,
};

+ 16
- 5
src/views/homesteadSurvey/add4.vue Ver fichero

@@ -63,7 +63,7 @@
<div style="padding:15px;"> <div style="padding:15px;">
<p style="display: flex;align-items: center;"> <p style="display: flex;align-items: center;">
<img src="../../assets/images/housesteadSurvey/add03.png" alt="" style="margin-right: 5px;"> <img src="../../assets/images/housesteadSurvey/add03.png" alt="" style="margin-right: 5px;">
<span style="line-height: 1;font-size: 16px;">{{item.fssslx}}</span>
<span style="line-height: 1;font-size: 16px;">{{ formatDict(fssslxList, item.fssslx) }}</span>
</p> </p>
<div style="display:flex;line-height:20px;margin-top: 15px;font-size: 14px;color: #999999;"> <div style="display:flex;line-height:20px;margin-top: 15px;font-size: 14px;color: #999999;">
<p style="flex:1;text-align:left;">建筑面积(㎡):</p> <p style="flex:1;text-align:left;">建筑面积(㎡):</p>
@@ -71,7 +71,7 @@
</div> </div>
<div style="display:flex;line-height:20px;margin-top: 5px;font-size: 14px;color: #999999;"> <div style="display:flex;line-height:20px;margin-top: 5px;font-size: 14px;color: #999999;">
<p style="flex:1;text-align:left;">建筑物情况:</p> <p style="flex:1;text-align:left;">建筑物情况:</p>
<p style="flex:1;text-align:right;">{{item.jzwqk}}</p>
<p style="flex:1;text-align:right;">{{ formatDict(jzwqkList, item.jzwqk) }} </p>
</div> </div>
<div style="text-align:center;overflow:auto;display: flex;justify-content: center;margin-top: 10px;"> <div style="text-align:center;overflow:auto;display: flex;justify-content: center;margin-top: 10px;">
<p style="width:49%;display: flex;align-items: center;justify-content:center;border: 1px solid transparent;background: #22B7F2;padding: 3px 0;border-radius: 50px;" @click="showPopupzrz(item)"> <p style="width:49%;display: flex;align-items: center;justify-content:center;border: 1px solid transparent;background: #22B7F2;padding: 3px 0;border-radius: 50px;" @click="showPopupzrz(item)">
@@ -173,6 +173,8 @@ export default {
permission:false, permission:false,
bztp:"", bztp:"",
ycbz:"", ycbz:"",
jzwqkList:[],
fssslxList:[],
examineData:[{dictLabel:"审批通过",dictValue:"5"},{dictLabel:"审批驳回",dictValue:"4"}], examineData:[{dictLabel:"审批通过",dictValue:"5"},{dictLabel:"审批驳回",dictValue:"4"}],
zjdzdxx:{surveyStatus:"5"}, zjdzdxx:{surveyStatus:"5"},
fssslist:[], fssslist:[],
@@ -187,13 +189,19 @@ export default {
}; };
}, },
created(){ created(){
this.houseGetDicts("jzwqk").then((response) => {
this.jzwqkList = response.data;
});
this.houseGetDicts("fsss_type").then((response) => {
this.fssslxList = response.data;
});
this.zjdzdxx = JSON.parse(localStorage.getItem("zjdzdxxItem")); this.zjdzdxx = JSON.parse(localStorage.getItem("zjdzdxxItem"));
this.permission = localStorage.getItem("executePermission"); this.permission = localStorage.getItem("executePermission");
let businessLevel = this.$store.state.user.businessLevel; let businessLevel = this.$store.state.user.businessLevel;
console.info(this.zjdzdxx);
if(this.zjdzdxx.surveySign != null){ if(this.zjdzdxx.surveySign != null){
this.signature.resultImg = this.$store.getters.baseRoutingUrl+this.zjdzdxx.surveySign; this.signature.resultImg = this.$store.getters.baseRoutingUrl+this.zjdzdxx.surveySign;
} }
console.info(businessLevel);
if(this.zjdzdxx.id !== undefined){ if(this.zjdzdxx.id !== undefined){
getZjdzd(this.zjdzdxx.id).then((response) => { getZjdzd(this.zjdzdxx.id).then((response) => {
if(response.data.surveyStatus !== "1" && businessLevel === "2"){ if(response.data.surveyStatus !== "1" && businessLevel === "2"){
@@ -293,12 +301,12 @@ export default {
zjddcSign(param, this.zjdzdxx.zjddm).then(response => { zjddcSign(param, this.zjdzdxx.zjddm).then(response => {
this.$notify({type: 'success', message: '签字成功'}); this.$notify({type: 'success', message: '签字成功'});
this.showesign = false; this.showesign = false;
// location.reload();
getZjdzd(this.zjdzdxx.id).then((response) => { getZjdzd(this.zjdzdxx.id).then((response) => {
localStorage.setItem("zjdzdxxItem",JSON.stringify(response.data)) localStorage.setItem("zjdzdxxItem",JSON.stringify(response.data))
location.reload();
}); });


this.getList();
}); });


}) })
@@ -307,6 +315,9 @@ export default {
this.$toast.fail('请签名后再保存签字'); this.$toast.fail('请签名后再保存签字');
}); });
}, },
formatDict(dict, value) {
return this.selectDictLabel(dict, value);
},
dataURLtoBlob (dataurl, filename = 'file') { dataURLtoBlob (dataurl, filename = 'file') {
let arr = dataurl.split(',') let arr = dataurl.split(',')
let mime = arr[0].match(/:(.*?);/)[1] let mime = arr[0].match(/:(.*?);/)[1]


+ 13
- 49
src/views/homesteadSurvey/hncyList2.vue Ver fichero

@@ -566,57 +566,21 @@
}, },
//删除户主 //删除户主
deletenh(item,index){ deletenh(item,index){
let yes = true
let params={
nhdm : item.nhdm,
deptId: item.deptId
}
listNhhncy(params).then((res) => {
console.log(res.rows.length)
if(res.rows.length>0){
yes = false
this.$toast({
icon: 'error', // 找到自己需要的图标
message: '无法删除,此户主存在户内成员!',
duration:"1000",
onClose:function(){
Dialog.confirm({
title: '警告',
message: '确认删除户内成员么?',
})
.then(() => {
// on confirm
delNhhncy(item.id).then(res => {
if(res.code=="200"){
this.hncylist.splice(index,1);
} }
}) })
}else{
listShyqr(params).then((res) => {
if(res.rows.length>0){
yes = false
this.$toast({
icon: 'error', // 找到自己需要的图标
message: '无法删除,此户主已经成为使用权人!',
duration:"1000",
onClose:function(){
}
})
}else{
if(yes){
Dialog.confirm({
title: '警告',
message: '确认删除此使用权人么?',
})
.then(() => {
// on confirm
delNh(item.id).then(res => {
if(res.code=="200"){
this.nhlist.splice(index,1);
this.totalH--
this.totalR--
}
})
})
.catch(() => {
// on cancel
});
}
}
});
}
});
})
.catch(() => {
// on cancel
});


}, },
// 设为户主 // 设为户主


+ 3
- 3
src/views/homesteadSurvey/index.vue Ver fichero

@@ -84,7 +84,7 @@
size="70%" size="70%"
layer-color="#ebedf0" layer-color="#ebedf0"
:color="chooseColor(item)" :color="chooseColor(item)"
:text="item.zjdwcsl!=0?(((item.zjdwcsl/item.zjdsl)*100).toFixed(2))+'%':0+'%'"
:text="item.zjdwcsl!=0?(item.zjdwcsl == item.zjdsl?100+'%':(((item.zjdwcsl/item.zjdsl)*100).toFixed(2))+'%'):0+'%'"
/> />
</template> </template>
<template #label> <template #label>
@@ -111,7 +111,7 @@
size="70%" size="70%"
layer-color="#ebedf0" layer-color="#ebedf0"
:color="chooseColor(item)" :color="chooseColor(item)"
:text="item.zjdwcsl!=0?(((item.zjdwcsl/item.zjdsl)*100).toFixed(2))+'%':0+'%'"
:text="item.zjdwcsl!=0?(item.zjdwcsl == item.zjdsl?100+'%':(((item.zjdwcsl/item.zjdsl)*100).toFixed(2))+'%'):0+'%'"
/> />
</template> </template>
<template #label> <template #label>
@@ -137,7 +137,7 @@
size="70%" size="70%"
layer-color="#ebedf0" layer-color="#ebedf0"
:color="chooseColor(item)" :color="chooseColor(item)"
:text="item.zjdwcsl!=0?(((item.zjdwcsl/item.zjdsl)*100).toFixed(2))+'%':0+'%'"
:text="item.zjdwcsl!=0?(item.zjdwcsl == item.zjdsl?100+'%':(((item.zjdwcsl/item.zjdsl)*100).toFixed(2))+'%'):0+'%'"
/> />
</template> </template>
<template #label> <template #label>


+ 0
- 4
src/views/homesteadSurvey/list.vue Ver fichero

@@ -436,10 +436,6 @@
showUploadList(){ showUploadList(){
this.showImageList = true; this.showImageList = true;
}, },
onCancel(){
console.info(2321)
this.zjdvalue = "";
},
submitUploadList(){ submitUploadList(){
submitUploadImageList(this.uploadImgList1).then(res => { submitUploadImageList(this.uploadImgList1).then(res => {
let _this = this let _this = this


+ 19
- 1
src/views/homesteadSurvey/nhcyList.vue Ver fichero

@@ -73,7 +73,7 @@
</div> </div>
</div> </div>
<template #right> <template #right>
<van-button v-if="permission == 'true'" square text="删除" type="danger" class="delete-button" @click="deletesyqr(item.id,index)"/>
<van-button v-if="permission == 'true'" square text="删除" type="danger" class="delete-button" @click="deletehncy(item.id,index)"/>
</template> </template>
</van-swipe-cell> </van-swipe-cell>
<div v-if="permission == 'true'" style=" width:95%;margin:20px auto;display: flex;justify-content: space-between;"> <div v-if="permission == 'true'" style=" width:95%;margin:20px auto;display: flex;justify-content: space-between;">
@@ -147,6 +147,24 @@ export default {
showPopuphncy(val){ showPopuphncy(val){
this.$router.push({name:'nhcyAdd',query:val}); this.$router.push({name:'nhcyAdd',query:val});
}, },
// 删除户内成员
deletehncy(id,index){
Dialog.confirm({
title: '警告',
message: '确认删除户内成员么?',
})
.then(() => {
// on confirm
delNhhncy(id).then(res => {
if(res.code=="200"){
this.hnnylist.splice(index,1);
}
})
})
.catch(() => {
// on cancel
});
},
} }
} }
</script> </script>


+ 1
- 1
src/views/homesteadSurvey/nmfwAdd.vue Ver fichero

@@ -515,7 +515,7 @@ export default {
} }
}, },
cancel(){ cancel(){
this.$router.push({path:'/homesteadSurvey/nmfwList',query: {zjddm: this.form.zjddm}});
this.$router.push({path:'/homesteadSurvey/nmfwList',query: {nmfwzh:this.form.nmfwzh}});
}, },
// 获取登录人位置坐标 // 获取登录人位置坐标
getLandCoord(func) { getLandCoord(func) {


+ 1
- 1
src/views/sunVillage_info/entityReport/reportLineList.vue Ver fichero

@@ -30,7 +30,7 @@
</div> </div>
<div class="flex_block"> <div class="flex_block">
<i class="icon icon_2"></i> <i class="icon icon_2"></i>
<div class="text">填报数: {{item.params.numReport}}</div>
<div class="text">填报数: {{item.params.numReport}}</div>
</div> </div>
</div> </div>
</div> </div>


+ 7
- 1
src/views/sunVillage_info/entityReport/reportLineSummary.vue Ver fichero

@@ -71,7 +71,7 @@
<div class="full-height" v-else-if="col.type === '4'"> <div class="full-height" v-else-if="col.type === '4'">
<input class="input-field align-center full-height" v-model="col.name" :readonly="disableEdit"></input> <input class="input-field align-center full-height" v-model="col.name" :readonly="disableEdit"></input>
</div> </div>
<div v-else :style="{'text-align': calcAlign(col.type)}">{{col.name}}</div>
<div v-else class="full-height flex-center" :style="{'justify-content': calcAlign(col.type)}">{{col.name}}</div>


<van-icon name="edit" v-if="cindex === editorData.headerTypes.length - 1 && canEdit(col)" class="edit-icon" color="#1989fa" size="24" @click="edit(col)"/> <van-icon name="edit" v-if="cindex === editorData.headerTypes.length - 1 && canEdit(col)" class="edit-icon" color="#1989fa" size="24" @click="edit(col)"/>
</div> </div>
@@ -170,6 +170,7 @@ export default {
this.loading = true; this.loading = true;
summaryList({ summaryList({
templateId: this.editorData.templateId, templateId: this.editorData.templateId,
deptId: Cookies.get('deptId'),
}).then((resp) => { }).then((resp) => {
this.editorData = resp.data; this.editorData = resp.data;
}).finally(() => { }).finally(() => {
@@ -467,6 +468,11 @@ export default {
right: -0.6rem; right: -0.6rem;
top: calc(50% - 0.3rem); top: calc(50% - 0.3rem);
} }
.flex-center {
display: flex;
align-items: center;
justify-content: center;
}
} }






+ 7
- 1
src/views/sunVillage_info/entityReport/reportLineView.vue Ver fichero

@@ -51,7 +51,8 @@
<div class="main-table" v-if="!!editorData.templateId"> <div class="main-table" v-if="!!editorData.templateId">
<div v-for="(header, rindex) in editorData.detailHeaders"> <div v-for="(header, rindex) in editorData.detailHeaders">
<van-field v-if="header.type === '2'" label-width="50%" :readonly="disableEdit" v-model="editorData.rows[0][rindex].val" :label="header.headerName" :placeholder="header.headerName" input-align="right" type="number"/> <van-field v-if="header.type === '2'" label-width="50%" :readonly="disableEdit" v-model="editorData.rows[0][rindex].val" :label="header.headerName" :placeholder="header.headerName" input-align="right" type="number"/>
<van-field v-else-if="header.type === '4' || header.type === '3'" label-width="50%" :readonly="disableEdit" v-model="editorData.rows[0][rindex].name" :label="header.headerName" :placeholder="header.headerName" input-align="right"/>
<van-field v-else-if="header.type === '4'" label-width="50%" :readonly="disableEdit" v-model="editorData.rows[0][rindex].name" :label="header.headerName" :placeholder="header.headerName" input-align="right"/>
<van-field v-else-if="header.type === '3'" label-width="50%" :readonly="disableEdit" v-model="editorData.rows[0][rindex].name" :label="header.headerName" :placeholder="header.headerName" type="digit" input-align="right"/>
<van-field v-else label-width="50%" :readonly="true" :value="editorData.rows[0][rindex].name" :label="header.headerName" :placeholder="header.headerName" input-align="right"/> <van-field v-else label-width="50%" :readonly="true" :value="editorData.rows[0][rindex].name" :label="header.headerName" :placeholder="header.headerName" input-align="right"/>
</div> </div>
</div> </div>
@@ -525,6 +526,11 @@ export default {
.form_readonly /deep/ .van-icon-arrow-down { .form_readonly /deep/ .van-icon-arrow-down {
display: none; display: none;
} }

.main-table /deep/ .van-field {
height: unset;
min-height: 1rem;
}
} }






+ 3
- 2
src/views/sunVillage_info/familyMember/familyMemberList.vue Ver fichero

@@ -65,9 +65,11 @@ export default {
loading: false, loading: false,
finished: false, finished: false,
idcard:null, idcard:null,
farmerCode:null,
queryParams:{ queryParams:{
pageNum:1, pageNum:1,
pageSize:10, pageSize:10,
farmerCode:null,
deptId: Cookies.get('deptId'), deptId: Cookies.get('deptId'),
orderByColumn:'createTime', orderByColumn:'createTime',
isAsc:'desc', isAsc:'desc',
@@ -88,8 +90,7 @@ export default {
this.houseGetDicts("tcfs").then((res) => { this.houseGetDicts("tcfs").then((res) => {
this.tcfsStatus = res.data; this.tcfsStatus = res.data;
}); });
this.idcard = Cookies.get('idcard');
this.$set(this.queryParams, "sqrzjhm", this.idcard);
this.queryParams.farmerCode = Cookies.get('farmerCode');
this.houseGetDicts("yctcsp_status").then((res) => { this.houseGetDicts("yctcsp_status").then((res) => {
// this.auditStatus = res.data; // this.auditStatus = res.data;
let _this = this; let _this = this;


+ 8
- 2
src/views/sunVillage_info/login_code.vue Ver fichero

@@ -58,6 +58,7 @@
<script> <script>
import { getCodeImg, getSmsCode } from "@/api/login"; import { getCodeImg, getSmsCode } from "@/api/login";
import { checkFarmer } from "@/api/sunVillage_info/fixedAssets"; import { checkFarmer } from "@/api/sunVillage_info/fixedAssets";
import { getFamilyMemberList } from "@/api/sunVillage_info/homestead/familyMember";
import Cookies from "js-cookie"; import Cookies from "js-cookie";
import { encrypt, decrypt } from "../../utils/jsencrypt"; import { encrypt, decrypt } from "../../utils/jsencrypt";
//引用wx sdk //引用wx sdk
@@ -96,6 +97,7 @@
idcard: idcard === undefined ? this.formData.idcard : idcard, idcard: idcard === undefined ? this.formData.idcard : idcard,
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe), rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
}; };

}, },
handleLogin(values) { handleLogin(values) {
if (this.formData.rememberMe) { if (this.formData.rememberMe) {
@@ -125,9 +127,13 @@
let seconds = 3600; let seconds = 3600;


let expires = new Date(new Date() * 1 + seconds * 1000); let expires = new Date(new Date() * 1 + seconds * 1000);
getFamilyMemberList({idcard:this.formData.idcard,familyStatus:"02"}).then(res => {
const farmerCode = res.rows[0].farmerCode;
Cookies.set("farmerCode",farmerCode, { expires: 30 });
Cookies.set("user", response.data, { expires: expires });
this.$router.push({path:'/sunVillage_info/index_code_rights'})
})


Cookies.set("user", response.data, { expires: expires });
this.$router.push({path:'/sunVillage_info/index_code_rights'})
} }
}); });
}, },


+ 26
- 5
src/views/sunVillage_info/passWord.vue Ver fichero

@@ -5,14 +5,14 @@
<div class="return_btn" @click="onClickLeft"></div> <div class="return_btn" @click="onClickLeft"></div>
<div class="add_btn" @click="send">保存</div> <div class="add_btn" @click="send">保存</div>
</div> </div>
<van-form @submit="onSubmit" ref="formData">
<van-form @submit="onSubmit" ref="formData" error-message-align="right">
<div class="list_main"> <div class="list_main">


<van-field required label="旧密码" :rules="[{ required: true , message:'请输入旧密码' }]" v-model="user.oldPassword" placeholder="请输入旧密码" input-align="right" :border="false" />
<van-field required label="旧密码" :rules="[{ required: true , message:'' }]" v-model="user.oldPassword" placeholder="请输入旧密码" input-align="right" :border="false" />


<van-field required label="新密码" :rules="[{ required: true , message:'请输入新密码'}]" v-model="user.newPassword" placeholder="请输入新密码" input-align="right" :border="false" />
<van-field required label="新密码" :rules="rules.newPassword" v-model="user.newPassword" placeholder="请输入新密码" input-align="right" :border="false" />


<van-field required label="确认密码" :rules="[{ required: true, message: '请确认密码' }]" prop="email" v-model="user.confirmPassword" placeholder="请确认密码" input-align="right" :border="false" />
<van-field required label="确认密码" :rules="[{ required: true, message: '' }]" prop="email" v-model="user.confirmPassword" placeholder="请确认密码" input-align="right" :border="false" />


</div> </div>


@@ -27,11 +27,21 @@


<script> <script>
import { updateUserPwd } from "@/api/sunVillage_info/fixedAssets"; import { updateUserPwd } from "@/api/sunVillage_info/fixedAssets";
import {REGEXP} from "@/utils/global";
import {Notify} from "vant";
export default { export default {
name: "certificateList", name: "certificateList",
data() { data() {
return { return {
user:{}, user:{},
rules: {
newPassword: [
{ required: true , message:''},
{ validator: (val) => { return val.length >= 8; }, message: '密码长度至少8位', },
{ validator: (val) => { return val.length <= 20; }, message: '密码长度不能超过20位', },
{ pattern: REGEXP.PASSWORD, message: '密码必须包括字母、数字、特殊符号!', }
],
},
}; };
}, },
created() { created() {
@@ -46,6 +56,8 @@
that.$notify({ type: 'warning', message: '两次输入的密码不一致!' }); that.$notify({ type: 'warning', message: '两次输入的密码不一致!' });
return; return;
} }
if(!this.validatePassword(this.user.newPassword))
return;
updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => { updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
that.$notify({ type: 'success', message: '修改成功!' }); that.$notify({ type: 'success', message: '修改成功!' });
setTimeout(function(){ setTimeout(function(){
@@ -53,6 +65,15 @@
},2000) },2000)
}); });
}, },
validatePassword(what) {
if(!(REGEXP.PASSWORD.test(what)))
{
Notify.clear();
Notify({ type: 'danger', message: '密码至少8个字符,必须包括字母、数字、特殊符号!' });
return false;
}
return true;
},
}, },
} }
</script> </script>
@@ -176,7 +197,7 @@
left: 0PX; left: 0PX;
} }
/deep/ .van-field__error-message{ /deep/ .van-field__error-message{
display: none;
/*display: none;*/
} }
} }
</style> </style>

+ 56
- 8
src/views/yinnong/password.vue Ver fichero

@@ -6,7 +6,7 @@
@click-left="$router.back(-1)" @click-left="$router.back(-1)"
/> />
<van-cell-group style="width: 96%;margin:2%;border-radius: 6px;overflow: hidden;padding-top: 10px;padding-bottom: 10px;box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);"> <van-cell-group style="width: 96%;margin:2%;border-radius: 6px;overflow: hidden;padding-top: 10px;padding-bottom: 10px;box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);">
<van-field type="password" v-model="user.oldPassword" placeholder="" >
<van-field type="password" v-model="user.oldPassword" placeholder="" @input="clearError" >
<template #left-icon> <template #left-icon>
<van-image <van-image
height="20" height="20"
@@ -17,7 +17,7 @@
<H4 style="margin-left: 5px">原密码</H4> <H4 style="margin-left: 5px">原密码</H4>
</template> </template>
</van-field> </van-field>
<van-field type="password" v-model="user.newPassword" placeholder="" >
<van-field type="password" :error-message="validate.newPassword" v-model="user.newPassword" placeholder="" @input="clearError" @blur="validate_newPassword">
<template #left-icon> <template #left-icon>
<van-image <van-image
height="20" height="20"
@@ -28,7 +28,7 @@
<H4 style="margin-left: 5px">新密码</H4> <H4 style="margin-left: 5px">新密码</H4>
</template> </template>
</van-field> </van-field>
<van-field type="password" v-model="user.confirmPassword" placeholder="" >
<van-field type="password" v-model="user.confirmPassword" placeholder="" @input="clearError">
<template #left-icon> <template #left-icon>
<van-image <van-image
height="20" height="20"
@@ -49,6 +49,8 @@
<script> <script>
import onlineHomeIndex from "../onlineHomeIndex"; import onlineHomeIndex from "../onlineHomeIndex";
import {updateUserPwd} from "../../api/onlineHome/my"; import {updateUserPwd} from "../../api/onlineHome/my";
import {REGEXP} from "@/utils/global";
import {Notify} from "vant";


export default { export default {
components: { components: {
@@ -62,10 +64,15 @@
newPassword: undefined, newPassword: undefined,
confirmPassword: undefined confirmPassword: undefined
}, },
validate: {
newPassword: '',
},
}; };
}, },
methods: { methods: {
submit() { submit() {
if(!this.validate_newPassword())
return;
console.log(this.user) console.log(this.user)
if(this.user.confirmPassword if(this.user.confirmPassword
!=this.user.newPassword){ !=this.user.newPassword){
@@ -73,14 +80,19 @@
icon: 'error', // 找到自己需要的图标 icon: 'error', // 找到自己需要的图标
message: '两次密码不同,请重新输入', message: '两次密码不同,请重新输入',
duration:"1000", duration:"1000",
onClose:function(){
this.user.oldPassword=""
this.user.newPassword=""
this.user.confirmPassword=""
onClose:() => {
if(0)
{
this.user.oldPassword=""
this.user.newPassword=""
this.user.confirmPassword=""
}
return false; return false;
} }
}) })
}else{ }else{
if(!this.validatePassword(this.user.newPassword))
return;
updateUserPwd(this.user.oldPassword, this.user.newPassword).then( updateUserPwd(this.user.oldPassword, this.user.newPassword).then(
response => { response => {
let _this =this let _this =this
@@ -95,7 +107,43 @@
} }
); );
} }

},
validatePassword(what) {
if(!(REGEXP.PASSWORD.test(what)))
{
Notify.clear();
Notify({ type: 'danger', message: '密码至少8个字符,必须包括字母、数字、特殊符号!' });
return false;
}
return true;
},
validate_newPassword() {
let password = this.user.newPassword;
if(!password)
{
this.validate.newPassword = '';
return false;
}
if(password.length < 8)
{
this.validate.newPassword = '密码长度至少8位';
return false;
}
if(password.length > 20)
{
this.validate.newPassword = '密码长度不能超过20位';
return false;
}
if(!(REGEXP.PASSWORD.test(password)))
{
this.validate.newPassword = '密码必须包括字母、数字、特殊符号!';
return false;
}
this.validate.newPassword = '';
return true;
},
clearError() {
this.validate.newPassword = '';
}, },
} }
} }


Cargando…
Cancelar
Guardar