| @@ -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,}$/, | |||||
| }; | |||||
| @@ -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] | ||||
| @@ -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 | |||||
| }); | |||||
| }, | }, | ||||
| // 设为户主 | // 设为户主 | ||||
| @@ -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> | ||||
| @@ -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 | ||||
| @@ -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> | ||||
| @@ -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) { | ||||
| @@ -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> | ||||
| @@ -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; | |||||
| } | |||||
| } | } | ||||
| @@ -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; | |||||
| } | |||||
| } | } | ||||
| @@ -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; | ||||
| @@ -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'}) | |||||
| } | } | ||||
| }); | }); | ||||
| }, | }, | ||||
| @@ -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> | ||||
| @@ -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 = ''; | |||||
| }, | }, | ||||
| } | } | ||||
| } | } | ||||