批量开票、开票邮寄图标需求变更,密码禁止粘贴

This commit is contained in:
zhaoxiao
2021-10-11 14:36:54 +08:00
parent 74b0c33a55
commit e6422d1009
6 changed files with 186 additions and 136 deletions
+11 -4
View File
@@ -7,8 +7,7 @@
:title="currentTitle" :title="currentTitle"
arrow-point-at-center arrow-point-at-center
:mouse-enter-delay="0.1" :mouse-enter-delay="0.1"
@visibleChange="visibleChange" @visibleChange="visibleChange">
>
<img :src="status" @click="s"/> <img :src="status" @click="s"/>
</a-tooltip> </a-tooltip>
</template> </template>
@@ -32,7 +31,7 @@ export default {
data() { data() {
return { return {
currentTitle: ' ', // 气泡中显示的文字,必须有内容,否则dom选择时不会解析 currentTitle: ' ', // 气泡中显示的文字,必须有内容,否则dom选择时不会解析
hasInfo: false, // 是否有详情信息可以显示,即是否通过接口请求过数据 hasInfo: false // 是否有详情信息可以显示,即是否通过接口请求过数据
} }
}, },
props: { props: {
@@ -60,7 +59,7 @@ export default {
required: false required: false
}, },
// 当前需要转换key的属性, 悬浮显示实际具体内容信息时需要 // 当前需要转换key的属性, 悬浮显示实际具体内容信息时需要
// paymentRecord 来款 mail -- 邮寄 bill--邮寄 // paymentRecord 来款 mail -- 邮寄 bill--开票
statusKey: { statusKey: {
type: String, type: String,
required: false, required: false,
@@ -94,7 +93,12 @@ export default {
} else { } else {
// 应收金额不为0 都正常判断 // 应收金额不为0 都正常判断
if (this.statusNo === 0) { if (this.statusNo === 0) {
// 开票或邮寄时,不需要发票
if ((this.statusKey === 'bill' || this.statusKey === 'mail') && this.statuObj.needInvoice === 0) {
return zero
} else {
return error return error
}
} else if (this.statusNo === 1) { } else if (this.statusNo === 1) {
return finished return finished
} else if (this.statusNo === 2) { } else if (this.statusNo === 2) {
@@ -115,6 +119,9 @@ export default {
} }
return result return result
} }
},
created() {
}, },
methods: { methods: {
s() { s() {
+32 -10
View File
@@ -14,6 +14,8 @@
<a-form-item <a-form-item
:labelCol="labelCol" :labelCol="labelCol"
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
@paste.native.capture.prevent="handleOperate"
autocomplete="false"
label="旧密码"> label="旧密码">
<a-input type="password" placeholder="请输入旧密码" v-decorator="[ 'oldpassword', validatorRules.oldpassword]"/> <a-input type="password" placeholder="请输入旧密码" v-decorator="[ 'oldpassword', validatorRules.oldpassword]"/>
</a-form-item> </a-form-item>
@@ -22,14 +24,25 @@
:labelCol="labelCol" :labelCol="labelCol"
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
label="新密码"> label="新密码">
<a-input type="password" placeholder="请输入新密码" v-decorator="[ 'password', validatorRules.password]" /> <a-input
type="password"
placeholder="请输入新密码"
@paste.native.capture.prevent="handleOperate"
autocomplete="false"
v-decorator="[ 'password', validatorRules.password]"/>
</a-form-item> </a-form-item>
<a-form-item <a-form-item
:labelCol="labelCol" :labelCol="labelCol"
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
label="确认新密码"> label="确认新密码">
<a-input type="password" @blur="handleConfirmBlur" placeholder="请确认新密码" v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]"/> <a-input
type="password"
@blur="handleConfirmBlur"
placeholder="请确认新密码"
@paste.native.capture.prevent="handleOperate"
autocomplete="false"
v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]"/>
</a-form-item> </a-form-item>
</a-form> </a-form>
@@ -52,20 +65,26 @@
validatorRules: { validatorRules: {
oldpassword: { oldpassword: {
rules: [{ rules: [{
required: true, message: '请输入旧密码!', required: true, message: '请输入旧密码!'
}], }]
}, },
password: { password: {
rules: [ rules: [
{ required: true, message: '请输入新密码!' }, { required: true, message: '请输入新密码!' },
{ pattern:/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, message: '密码由8位数字、大小写字母和特殊符号组成!'}, {
pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
message: '密码由8位数字、大小写字母和特殊符号组成!'
},
{ validator: this.validateToNextPassword } { validator: this.validateToNextPassword }
] ]
}, },
confirmpassword: { confirmpassword: {
rules: [ rules: [
{ required: true, message: '请确认新密码!' }, { required: true, message: '请确认新密码!' },
{ pattern:/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, message: '密码由8位数字、大小写字母和特殊符号组成!'}, {
pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,
message: '密码由8位数字、大小写字母和特殊符号组成!'
},
{ validator: this.validateToNextPassword } { validator: this.validateToNextPassword }
] ]
} }
@@ -73,16 +92,16 @@
confirmDirty: false, confirmDirty: false,
labelCol: { labelCol: {
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 5 }, sm: { span: 5 }
}, },
wrapperCol: { wrapperCol: {
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 16 }, sm: { span: 16 }
}, },
form: this.$form.createForm(this), form: this.$form.createForm(this),
url: 'sys/user/updatePassword', url: 'sys/user/updatePassword',
username:'', username: ''
} }
}, },
methods: { methods: {
@@ -145,8 +164,11 @@
handleConfirmBlur(e) { handleConfirmBlur(e) {
const value = e.target.value const value = e.target.value
this.confirmDirty = this.confirmDirty || !!value this.confirmDirty = this.confirmDirty || !!value
},
// 密码禁止粘贴
handleOperate() {
return false
} }
} }
} }
</script> </script>
@@ -339,7 +339,10 @@ export default {
}) })
// 选中项目非同一企业 // 选中项目非同一企业
if (!isAllEqual(companyArr)) { if (!isAllEqual(companyArr)) {
reject('请选择来款单位为同一企业的项目合并开票') reject('请选择来款单位为同一企业的项目合并开票!')
}
if (arr.some(item => item.invoiceAmount && Number(item.invoiceAmount) === Number(item.receivableAmount))) {
reject('存在已完成开票的项目!')
} }
this.selectedCompany = { this.selectedCompany = {
id: arr[0].chargeCompanyId, id: arr[0].chargeCompanyId,
+6
View File
@@ -30,11 +30,13 @@
<template v-if="!model.id"> <template v-if="!model.id">
<a-form-item label="登录密码" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="登录密码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input type="password" placeholder="请输入登录密码" :maxLength="50" autocomplete='new-password' <a-input type="password" placeholder="请输入登录密码" :maxLength="50" autocomplete='new-password'
@paste.native.capture.prevent="handleOperate"
@change="event => event.target.value = event.target.value.trim()" :disabled="disableSubmit" v-decorator="[ 'password',validatorRules.password]"/> @change="event => event.target.value = event.target.value.trim()" :disabled="disableSubmit" v-decorator="[ 'password',validatorRules.password]"/>
</a-form-item> </a-form-item>
<a-form-item label="确认密码" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="确认密码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input type="password" @blur="handleConfirmBlur" :maxLength="50" placeholder="请输入确认密码" :disabled="disableSubmit" <a-input type="password" @blur="handleConfirmBlur" :maxLength="50" placeholder="请输入确认密码" :disabled="disableSubmit"
@paste.native.capture.prevent="handleOperate"
@change="event => event.target.value = event.target.value.trim()" v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]"/> @change="event => event.target.value = event.target.value.trim()" v-decorator="[ 'confirmpassword', validatorRules.confirmpassword]"/>
</a-form-item> </a-form-item>
</template> </template>
@@ -699,6 +701,10 @@ export default {
} else { } else {
this.departIdShow = true this.departIdShow = true
} }
},
// 密码禁止粘贴
handleOperate() {
return false
} }
} }
} }
+5
View File
@@ -30,6 +30,7 @@
type="password" type="password"
autocomplete="false" autocomplete="false"
placeholder="请输入密码" placeholder="请输入密码"
@paste.native.capture.prevent="handleOperate"
> >
<a-icon slot="prefix" type="lock" :style="{ color: '#B3B7C2',fontSize:'20px' }"/> <a-icon slot="prefix" type="lock" :style="{ color: '#B3B7C2',fontSize:'20px' }"/>
</a-input> </a-input>
@@ -307,6 +308,10 @@ export default {
} }
}) })
}, },
// 密码禁止粘贴
handleOperate() {
return false
},
} }
} }
</script> </script>
+8 -1
View File
@@ -73,6 +73,8 @@
<a-input <a-input
placeholder="请输入新密码" placeholder="请输入新密码"
v-decorator="['password', { rules: validatorRules.password.rules}]" v-decorator="['password', { rules: validatorRules.password.rules}]"
@paste.native.capture.prevent="handleOperate"
autocomplete="false"
type="password"> type="password">
</a-input> </a-input>
</a-form-item> </a-form-item>
@@ -89,6 +91,7 @@
placeholder="请输入确认密码" placeholder="请输入确认密码"
v-decorator="['confirmPassword', { rules: validatorRules.confirmPassword.rules}]" v-decorator="['confirmPassword', { rules: validatorRules.confirmPassword.rules}]"
type="password" type="password"
@paste.native.capture.prevent="handleOperate"
autocomplete="false"> autocomplete="false">
</a-input> </a-input>
</a-form-item> </a-form-item>
@@ -265,7 +268,11 @@ export default {
getRSAPublicKey().then(res => { getRSAPublicKey().then(res => {
this.rsaPublicKey = res.result this.rsaPublicKey = res.result
}) })
} },
// 密码禁止粘贴
handleOperate() {
return false
},
} }
} }
</script> </script>