bug修改

This commit is contained in:
zhaoxiao
2021-10-13 11:30:57 +08:00
parent 02898fd216
commit 896ad36e6a
6 changed files with 85 additions and 46 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
*/ */
window._CONFIG = {}; window._CONFIG = {};
window._CONFIG["domianURL"] = "/jero-boot"; // 路由转发 devServer window._CONFIG["domianURL"] = "/jero-boot"; // 路由转发 devServer
window._CONFIG["domianWebSocketURL"] = "http://localhost:21824/jero-boot"; window._CONFIG["domianWebSocketURL"] = "http://localhost:8080/jero-boot";
// 单点登录地址 // 单点登录地址
window._CONFIG["staticDomainURL"] = window._CONFIG["domianURL"] + "/sys/common/download"; window._CONFIG["staticDomainURL"] = window._CONFIG["domianURL"] + "/sys/common/download";
window._CONFIG["pdfDomainURL"] = window._CONFIG["domianURL"] + "/sys/common/pdf/pdfPreviewIframe"; window._CONFIG["pdfDomainURL"] = window._CONFIG["domianURL"] + "/sys/common/pdf/pdfPreviewIframe";
+31 -6
View File
@@ -53,6 +53,8 @@
<script> <script>
import { putAction } from '@/api/manage' import { putAction } from '@/api/manage'
import { getRSAPublicKey } from '@api/login'
import { JSEncrypt } from 'jsencrypt'
export default { export default {
name: 'UserPassword', name: 'UserPassword',
@@ -72,12 +74,13 @@ export default {
rules: [ rules: [
{ required: true, message: '请输入新密码!' }, { required: true, message: '请输入新密码!' },
{ {
//原正则,3种组合时不会提示 /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/ //原正则,3种组合时不会提示 /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/
pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/, pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/,
message: '密码由8位及以上数字、大小写字母和特殊符号组成!' message: '密码由8位及以上数字、大小写字母和特殊符号组成!'
}, },
{ validator: this.validateToNextPassword } { validator: this.validateToNextPassword }
] ],
validateTrigger: 'blur'
}, },
confirmpassword: { confirmpassword: {
rules: [ rules: [
@@ -86,8 +89,9 @@ export default {
pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/, pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/,
message: '密码由8位及以上数字、大小写字母和特殊符号组成!' message: '密码由8位及以上数字、大小写字母和特殊符号组成!'
}, },
{ validator: this.validateToNextPassword } { validator: this.handlePasswordCheck }
] ],
validateTrigger: 'blur'
} }
}, },
confirmDirty: false, confirmDirty: false,
@@ -102,7 +106,8 @@ export default {
form: this.$form.createForm(this), form: this.$form.createForm(this),
url: 'sys/user/updatePassword', url: 'sys/user/updatePassword',
username: '' username: '',
rsaPublicKey: '' // 公钥
} }
}, },
methods: { methods: {
@@ -112,10 +117,16 @@ export default {
return return
} else { } else {
this.username = uname this.username = uname
this.getPublicKey()
this.form.resetFields() this.form.resetFields()
this.visible = true this.visible = true
} }
}, },
getPublicKey() {
getRSAPublicKey().then(res => {
this.rsaPublicKey = res.result
})
},
handleCancel() { handleCancel() {
this.close() this.close()
}, },
@@ -131,7 +142,14 @@ export default {
this.form.validateFields((err, values) => { this.form.validateFields((err, values) => {
if (!err) { if (!err) {
that.confirmLoading = true that.confirmLoading = true
let params = Object.assign({ username: this.username }, values) let params = {}
params.username = this.username
params.rsaPublicKey = this.rsaPublicKey
let encrypt = new JSEncrypt()
encrypt.setPublicKey(params.rsaPublicKey)
params.oldpassword = encrypt.encrypt(values.oldpassword)
params.password = encrypt.encrypt(values.password)
params.confirmpassword = encrypt.encrypt(values.confirmpassword)
console.log('修改密码提交数据', params) console.log('修改密码提交数据', params)
putAction(this.url, params).then((res) => { putAction(this.url, params).then((res) => {
if (res.success) { if (res.success) {
@@ -154,6 +172,13 @@ export default {
} }
callback() callback()
}, },
handlePasswordCheck(rule, value, callback) {
let password = this.form.getFieldValue('password')
if (value && password && value.trim() !== password.trim()) {
callback(new Error('两次密码不一致'))
}
callback()
},
compareToFirstPassword(rule, value, callback) { compareToFirstPassword(rule, value, callback) {
const form = this.form const form = this.form
if (value && value !== form.getFieldValue('password')) { if (value && value !== form.getFieldValue('password')) {
@@ -41,7 +41,7 @@
<a-form-item label="公司电话" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="公司电话" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入公司电话" <a-input placeholder="请输入公司电话"
v-decorator="['companyPhone', validatorRules.companyPhone]" v-decorator="['companyPhone', validatorRules.companyPhone]"
:maxLength='16' :maxLength='15'
@change="e => e.target.value = (e.target.value.replace(/[^0-9-]/g, '')).trim()"></a-input> @change="e => e.target.value = (e.target.value.replace(/[^0-9-]/g, '')).trim()"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -92,13 +92,14 @@
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, record"> <span slot="action" class="action-span-cell" slot-scope="text, record">
<template v-if="record.showOperate"> <a @click="goFilesMaintenance(record)" v-has="'workingGroupProject:fileMaintenance'">文件维护</a>
<a @click="goFilesMaintenance(record)" v-has="'workingGroupProject:fileMaintenance'">文件维护</a> <a @click="goConferenceMaintenance(record)" v-has="'workingGroupProject:meetingMaintenance'">会议维护</a>
<a @click="goConferenceMaintenance(record)" v-has="'workingGroupProject:meetingMaintenance'">会议维护</a> <a @click="copyWorkGroup(record.id)" v-has="'workingGroupProject:copy'"
<a @click="copyWorkGroup(record.id)" v-has="'workingGroupProject:copy'" v-if="record.canOperate">复制</a> v-if="record.checkoutOperation === 1">复制</a>
<a @click="handleEdit(record)" v-has="'workingGroupProject:edit'" v-if="record.canOperate">编辑</a> <a @click="handleEdit(record)" v-has="'workingGroupProject:edit'"
<a @click="handleDelete(record.id)" v-has="'workingGroupProject:delete'" v-if="record.canOperate">删除</a> v-if="record.checkoutOperation === 1">编辑</a>
</template> <a @click="handleDelete(record.id)" v-has="'workingGroupProject:delete'"
v-if="record.checkoutOperation === 1">删除</a>
</span> </span>
</a-table> </a-table>
</div> </div>
@@ -212,36 +213,36 @@ export default {
} }
}).finally(() => { }).finally(() => {
this.loading = false this.loading = false
// 判断登录用户是否为负责人B // 判断登录用户是否为负责人B 2021-10-13:修改为后端在列表字段返回checkoutOperation字段控制,1--可操作,2--不可操作
if (this.dataSource.length > 0) { // if (this.dataSource.length > 0) {
for (let index = 0; index < this.dataSource.length; index++) { // for (let index = 0; index < this.dataSource.length; index++) {
this.checkWorkingGroupPrincipal(index).then((res) => { // this.checkWorkingGroupPrincipal(index).then((res) => {
res.showOperate = true // res.showOperate = true
this.$set(this.dataSource, index, res) // this.$set(this.dataSource, index, res)
}) // })
} // }
} // }
}) })
}, },
/** /**
* 判断登录用户是否为负责人B * 判断登录用户是否为负责人B
*/ */
checkWorkingGroupPrincipal(index) { // checkWorkingGroupPrincipal(index) {
let item = this.dataSource[index] // let item = this.dataSource[index]
// (负责人B不可操作) // // (负责人B不可操作)
return new Promise(resolve => { // return new Promise(resolve => {
checkoutWorkingGroupPrincipal({ id: item.id }).then(res => { // checkoutWorkingGroupPrincipal({ id: item.id }).then(res => {
// 不可操作则置否 // // 不可操作则置否
if (res.success) { // if (res.success) {
item.canOperate = true // item.canOperate = true
} else { // } else {
item.canOperate = false // item.canOperate = false
} // }
}).finally(() => { // }).finally(() => {
resolve(item) // resolve(item)
}) // })
}) // })
}, // },
/** /**
* 文件维护 * 文件维护
* @param record * @param record
@@ -252,7 +253,7 @@ export default {
path: '/projectManagement/WorkingGroupProjectDataMaintenance', path: '/projectManagement/WorkingGroupProjectDataMaintenance',
query: { query: {
workingGroupId: record.id, workingGroupId: record.id,
canOperate: record.canOperate canOperate: record.checkoutOperation === 1
} }
}) })
}, },
@@ -266,7 +267,7 @@ export default {
query: { query: {
workingGroupProject: record.workingGroupProject, workingGroupProject: record.workingGroupProject,
workingGroupProjectId: record.id, workingGroupProjectId: record.id,
canOperate: record.canOperate canOperate: record.checkoutOperation === 1
} }
}) })
}, },
@@ -295,7 +296,7 @@ export default {
query: { query: {
workingGroupProject: record.workingGroupProject, workingGroupProject: record.workingGroupProject,
workingGroupProjectId: record.id, workingGroupProjectId: record.id,
canOperate: record.canOperate canOperate: record.checkoutOperation === 1
} }
}) })
}, },
@@ -307,7 +308,7 @@ export default {
year: new Date().getFullYear().toString() year: new Date().getFullYear().toString()
} }
this.loadData(1) this.loadData(1)
}, }
} }
} }
</script> </script>
@@ -15,7 +15,7 @@
<a-form-item label="来款项目" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol"> <a-form-item label="来款项目" :labelCol="remarksLabelCol" :wrapperCol="remarksWrapperCol">
<a-input placeholder="请输入来款项目" <a-input placeholder="请输入来款项目"
v-decorator="['chargeProject',validatorRules.chargeProject]" v-decorator="['chargeProject',validatorRules.chargeProject]"
:maxLength='100' :maxLength='50'
@change="e => {e.target.value = (e.target.value + '').trim()}"></a-input> @change="e => {e.target.value = (e.target.value + '').trim()}"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -185,6 +185,8 @@ import CompanySelect from '@comp/company/CompanySelect'
import SelectPrincipal from '@comp/company/SelectPrincipal' import SelectPrincipal from '@comp/company/SelectPrincipal'
import SelectContacts from '@comp/company/SelectContacts' import SelectContacts from '@comp/company/SelectContacts'
import { addZero } from '../../../utils/util' import { addZero } from '../../../utils/util'
import Vue from 'vue'
import { USER_INFO } from '../../../store/mutation-types'
export default { export default {
name: 'GeneralProjectModule', name: 'GeneralProjectModule',
@@ -344,6 +346,7 @@ export default {
companyName: record.chargeCompanyTemporaryName companyName: record.chargeCompanyTemporaryName
} }
} }
// 是否存在从收入合同传入的签订联系人id // 是否存在从收入合同传入的签订联系人id
console.log(record, this.signedContactId) console.log(record, this.signedContactId)
record.contactsId = this.signedContactId || record.contactsTemporaryId || undefined record.contactsId = this.signedContactId || record.contactsTemporaryId || undefined
@@ -361,6 +364,13 @@ export default {
id: this.model.mailContactsTemporaryId, id: this.model.mailContactsTemporaryId,
name: this.model.mailContactsTemporaryName name: this.model.mailContactsTemporaryName
} }
} else {
// 新增默认运行年份为当年
this.model.year = new Date().getFullYear().toString()
// 新增默认负责人为当前用户
this.model.principalId = Vue.ls.get(USER_INFO).id
// 新增默认来款方式为无
this.model.chargeWay = 1
} }
this.chargeWayType = record.chargeWay this.chargeWayType = record.chargeWay
this.visible = true this.visible = true
+4 -1
View File
@@ -581,7 +581,7 @@ export default {
callback() callback()
} }
if (!passwordReg(value)) { if (!passwordReg(value)) {
callback('密码长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类') callback('密码由8位及以上数字、大小写字母和特殊符号组成!')
} }
if (value && this.confirmDirty) { if (value && this.confirmDirty) {
form.validateFields(['confirm'], {force: true}) form.validateFields(['confirm'], {force: true})
@@ -590,6 +590,9 @@ export default {
}, },
compareToFirstPassword(rule, value, callback) { compareToFirstPassword(rule, value, callback) {
const form = this.form const form = this.form
if (value && !passwordReg(value)) {
callback('密码由8位及以上数字、大小写字母和特殊符号组成!')
}
if (value && value !== form.getFieldValue('password')) { if (value && value !== form.getFieldValue('password')) {
callback('两次输入的密码不一样!') callback('两次输入的密码不一样!')
} else { } else {