bug修改

This commit is contained in:
zhaoxiao
2021-10-20 16:12:26 +08:00
parent a24d69b7e2
commit 59089919ff
25 changed files with 184 additions and 94 deletions
+10 -4
View File
@@ -82,6 +82,8 @@ export default {
} }
}, },
created() { created() {
// this.initContacts = null
this.contactsList = []
// 编辑 第一次不回显的问题 // 编辑 第一次不回显的问题
this.getContactsList() this.getContactsList()
}, },
@@ -117,7 +119,7 @@ export default {
* 获取联系人数据 * 获取联系人数据
*/ */
getContactsList() { getContactsList() {
if (this.selectedCompany && this.selectedCompany.hasOwnProperty.call(this.selectedCompany, 'id')) { if (this.selectedCompany && this.selectedCompany.id) {
const params = { const params = {
companyId: this.selectedCompany.id companyId: this.selectedCompany.id
} }
@@ -127,7 +129,7 @@ export default {
return new Promise(resolve => { return new Promise(resolve => {
getContactsByCompanyNoLimit(params).then(res => { getContactsByCompanyNoLimit(params).then(res => {
this.contactsList = res.result this.contactsList = res.result
if (this.initContacts && this.initContacts.hasOwnProperty.call(this.initContacts, 'id')) { if (this.initContacts && this.initContacts.id) {
this.contactsList.push(this.initContacts) this.contactsList.push(this.initContacts)
} }
resolve() resolve()
@@ -137,7 +139,8 @@ export default {
return new Promise(resolve => { return new Promise(resolve => {
getContactsByCompany(params).then(res => { getContactsByCompany(params).then(res => {
this.contactsList = res.result this.contactsList = res.result
if (this.initContacts && this.initContacts.hasOwnProperty.call(this.initContacts, 'id')) { console.log(this.initContacts)
if (this.initContacts && this.initContacts.id) {
this.contactsList.push(this.initContacts) this.contactsList.push(this.initContacts)
} }
resolve() resolve()
@@ -179,8 +182,11 @@ export default {
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
) )
}, },
/**
* 第一次展开下拉,去掉和初始联系人一样的联系人
*/
handleDropdownOpen() { handleDropdownOpen() {
if (this.isFirstOpen && this.initContacts && this.initContacts.hasOwnProperty.call(this.initContacts, 'id')) { if (this.isFirstOpen && this.initContacts && this.initContacts.id) {
this.contactsList.forEach((item, index) => { this.contactsList.forEach((item, index) => {
if (item.id === this.initContacts.id) { if (item.id === this.initContacts.id) {
this.$emit('change', undefined) this.$emit('change', undefined)
+17 -8
View File
@@ -57,6 +57,7 @@
import { putAction } from '@/api/manage' import { putAction } from '@/api/manage'
import { getRSAPublicKey } from '@api/login' import { getRSAPublicKey } from '@api/login'
import { JSEncrypt } from 'jsencrypt' import { JSEncrypt } from 'jsencrypt'
import { passwordReg } from '../../utils/validate'
export default { export default {
name: 'UserPassword', name: 'UserPassword',
@@ -85,14 +86,19 @@ export default {
validateTrigger: 'blur' validateTrigger: 'blur'
}, },
confirmpassword: { confirmpassword: {
rules: [ rules: [{
{ required: true, message: '请确认新密码!' }, required: true, message: '请确认新密码',
{ }, {
pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/, validator: this.handlePasswordCheck,
message: '密码由8位及以上数字、大小写字母和特殊符号组成!' }],
}, // rules: [
{ validator: this.handlePasswordCheck } // { required: true, message: '请确认新密码!' },
], // {
// pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,30}$/,
// message: '密码由8位及以上数字、大小写字母和特殊符号组成!'
// },
// { validator: this.handlePasswordCheck }
// ],
validateTrigger: 'blur' validateTrigger: 'blur'
} }
}, },
@@ -179,6 +185,9 @@ export default {
if (value && password && value.trim() !== password.trim()) { if (value && password && value.trim() !== password.trim()) {
callback(new Error('两次密码不一致')) callback(new Error('两次密码不一致'))
} }
if (value && !passwordReg(value)) {
callback('密码由8位及以上数字、大小写字母和特殊符号组成!')
}
callback() callback()
}, },
compareToFirstPassword(rule, value, callback) { compareToFirstPassword(rule, value, callback) {
+1 -1
View File
@@ -1,7 +1,7 @@
import { getIsAssociatedProject } from '../api/incomePaymentsApi' import { getIsAssociatedProject } from '../api/incomePaymentsApi'
/** /**
* 验证项目是否关联合同 * 验证项目是否关联合同
* @param projectId * @param projectId 项目id
*/ */
export function checkAssociatedProject(projectId) { export function checkAssociatedProject(projectId) {
return new Promise(resolve => { return new Promise(resolve => {
@@ -72,7 +72,7 @@ export default {
title: '来款单位', title: '来款单位',
align: 'center', align: 'center',
dataIndex: 'chargeCompanyName', dataIndex: 'chargeCompanyName',
width: 250, width: 280,
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '应收金额', title: '应收金额',
@@ -90,13 +90,13 @@ export default {
title: '负责人', title: '负责人',
align: 'center', align: 'center',
dataIndex: 'principalName', dataIndex: 'principalName',
width: 250, width: 280,
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '企业联系人', title: '企业联系人',
align: 'center', align: 'center',
dataIndex: 'contactsName', dataIndex: 'contactsName',
width: 250, width: 280,
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '创建时间', title: '创建时间',
@@ -547,6 +547,8 @@ export default {
} else { } else {
this.form.resetFields() this.form.resetFields()
this.$refs.installmentForm.form.resetFields() this.$refs.installmentForm.form.resetFields()
// 清除选中联系人相关信息
this.selectedContact = null
} }
}, },
installmentFormOk(value) { installmentFormOk(value) {
@@ -280,7 +280,9 @@ export default {
this.lastQueryParam.year = new Date().getFullYear().toString() this.lastQueryParam.year = new Date().getFullYear().toString()
// //
this.queryParam.principalId = this.principal this.queryParam.principalId = this.principal
this.lastQueryParam.principalId = this.principal
this.queryParam.departId = this.departId this.queryParam.departId = this.departId
this.lastQueryParam.departId = this.departId
this.loadDepartTreeData() this.loadDepartTreeData()
this.visible = true this.visible = true
this.loadData() this.loadData()
@@ -76,7 +76,7 @@
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, columnWidth: 80}" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, columnWidth: 80}"
class="j-table-force-nowrap"> class="j-table-force-nowrap">
<template slot="textRow" slot-scope="text"> <template slot="textRow" slot-scope="text">
<j-ellipsis :value="text" :length="20"></j-ellipsis> <j-ellipsis :value="text" :length="12"></j-ellipsis>
</template> </template>
<span slot="action" class="action-span-cell" slot-scope="text, itemRecord"> <span slot="action" class="action-span-cell" slot-scope="text, itemRecord">
@@ -204,7 +204,7 @@ export default {
}, { }, {
title: '项目负责人', title: '项目负责人',
align: 'center', align: 'center',
width: 140, width: 280,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
@@ -222,7 +222,7 @@ export default {
}, { }, {
title: '实收金额', title: '实收金额',
align: 'center', align: 'center',
width: 100, width: 120,
dataIndex: 'paidAmount', dataIndex: 'paidAmount',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
@@ -154,7 +154,11 @@ export default {
checkMoney(rules, value, callback) { checkMoney(rules, value, callback) {
if (value) { if (value) {
if (money(value)) { if (money(value)) {
callback() if (Number(value) > 0) {
callback()
} else {
callback('到账金额不能小于或等于0')
}
return return
} }
callback('请输入合法的金额数字,最多2位小数,10位正数') callback('请输入合法的金额数字,最多2位小数,10位正数')
@@ -207,12 +207,15 @@ export default {
&-content { &-content {
padding-right: 20px; padding-right: 20px;
word-break: break-all; word-break: break-all;
white-space: nowrap;
font-size: 14px; font-size: 14px;
font-family: NotoSansHans, NotoSansHans-Light; font-family: NotoSansHans, NotoSansHans-Light;
color: #4D4D4D; color: #4D4D4D;
&-money { &-money {
color: #D40505; color: #D40505;
word-break: break-all;
white-space: nowrap;
} }
} }
} }
+4 -4
View File
@@ -152,7 +152,7 @@ export default {
{ {
title: '票号', title: '票号',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'billNo', dataIndex: 'billNo',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
@@ -166,21 +166,21 @@ export default {
{ {
title: '项目负责人', title: '项目负责人',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
{ {
title: '来款单位', title: '来款单位',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'chargeCompanyName', dataIndex: 'chargeCompanyName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
{ {
title: '邮寄联系人', title: '邮寄联系人',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'contactName', dataIndex: 'contactName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, },
+5 -5
View File
@@ -124,28 +124,28 @@ export default {
{ {
title: '合同编号', title: '合同编号',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'contractNum', dataIndex: 'contractNum',
scopedSlots: { customRender: 'htmlSlot' } scopedSlots: { customRender: 'htmlSlot' }
}, },
{ {
title: '合同名称', title: '合同名称',
align: 'center', align: 'center',
width: 250, width: 300,
dataIndex: 'contractName', dataIndex: 'contractName',
scopedSlots: { customRender: 'projectName' } scopedSlots: { customRender: 'projectName' }
}, },
{ {
title: '签订单位', title: '签订单位',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'signedCompanyTemporaryName', dataIndex: 'signedCompanyTemporaryName',
scopedSlots: { customRender: 'projectName' } scopedSlots: { customRender: 'projectName' }
}, },
{ {
title: '负责人', title: '负责人',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'projectName' } scopedSlots: { customRender: 'projectName' }
}, },
@@ -159,7 +159,7 @@ export default {
{ {
title: '邮寄联系人', title: '邮寄联系人',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'liaisonMan', dataIndex: 'liaisonMan',
scopedSlots: { customRender: 'projectName' } scopedSlots: { customRender: 'projectName' }
}, },
@@ -310,7 +310,11 @@ export default {
checkMoney(rules, value, callback) { checkMoney(rules, value, callback) {
if (value) { if (value) {
if (money(value)) { if (money(value)) {
callback() if (Number(value) > 0) {
callback
} else {
callback('来款金额不能小于或等于0')
}
return return
} }
callback('请输入合法的金额数字,最多2位小数,10位正数') callback('请输入合法的金额数字,最多2位小数,10位正数')
@@ -198,6 +198,9 @@ export default {
close() { close() {
this.$emit('close') this.$emit('close')
this.visible = false this.visible = false
// 清空选中联系人相关信息
this.initContact = null
this.initPackContact = null
}, },
handleOk() { handleOk() {
if (this.confirmLoading) { if (this.confirmLoading) {
@@ -111,7 +111,7 @@
<a-form-item label="来款方式" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="来款方式" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span v-if="defaultChargeWay === 2 && chargeWayType === 2">合同</span> <span v-if="defaultChargeWay === 2 && chargeWayType === 2">合同</span>
<a-radio-group v-decorator="['chargeWay',validatorRules.chargeWay]" @change="handlechargeWayChange" <a-radio-group v-decorator="['chargeWay',validatorRules.chargeWay]" @change="handlechargeWayChange"
v-else> v-else :disabled="isAssociatedContract">
<a-radio :value="1">无</a-radio> <a-radio :value="1">无</a-radio>
<a-radio :value="2">合同</a-radio> <a-radio :value="2">合同</a-radio>
<a-radio :value="3">收费通知</a-radio> <a-radio :value="3">收费通知</a-radio>
@@ -123,7 +123,7 @@
<a-input placeholder="请输入合同号" <a-input placeholder="请输入合同号"
v-decorator="['contractNum',validatorRules.contractNum]" v-decorator="['contractNum',validatorRules.contractNum]"
:maxLength='50' :maxLength='50'
:disabled="isContractNumDisabled" :disabled="isContractNumDisabled || isAssociatedContract"
@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>
@@ -317,6 +317,7 @@ export default {
selectedContact: null, // 编辑时的联系人 selectedContact: null, // 编辑时的联系人
selectedMailContact: null, // 编辑时的邮寄联系人 selectedMailContact: null, // 编辑时的邮寄联系人
disabledCompany: false, // 企业是否可以编辑 disabledCompany: false, // 企业是否可以编辑
isAssociatedContract: false, // 是否已关联合同
url: { url: {
add: '/project/payCommonProject/add', add: '/project/payCommonProject/add',
edit: '/project/payCommonProject/edit' edit: '/project/payCommonProject/edit'
@@ -354,6 +355,7 @@ export default {
// 验证项目是否关联收入合同 // 验证项目是否关联收入合同
checkAssociatedProject(record.id).then(res => { checkAssociatedProject(record.id).then(res => {
this.disabledCompany = this.disabledChargeCompany || res || (!!record.inAccount && record.inAccount !== 0) || (!!record.makeInvoice && record.makeInvoice !== 0) || (!!record.mail && record.mail !== 0) this.disabledCompany = this.disabledChargeCompany || res || (!!record.inAccount && record.inAccount !== 0) || (!!record.makeInvoice && record.makeInvoice !== 0) || (!!record.mail && record.mail !== 0)
this.isAssociatedContract = res
}) })
} else { } else {
this.disabledCompany = this.disabledChargeCompany this.disabledCompany = this.disabledChargeCompany
@@ -392,6 +394,12 @@ export default {
this.$emit('close') this.$emit('close')
this.chargeWayType = null this.chargeWayType = null
this.selectedCompany = null this.selectedCompany = null
// 清空选中联系人的相关信息
this.selectedContact = null
this.selectedMailContact = null
// 清除能否编辑企业、来款方式的限制
this.isAssociatedContract = false
this.disabledCompany = false
this.visible = false this.visible = false
}, },
handleOk() { handleOk() {
@@ -89,7 +89,7 @@
<a-form-item label="来款方式" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="来款方式" :labelCol="labelCol" :wrapperCol="wrapperCol">
<span v-if="defaultChargeWay === 2">合同</span> <span v-if="defaultChargeWay === 2">合同</span>
<a-radio-group v-decorator="['chargeWay',validatorRules.chargeWay]" @change="handlechargeWayChange" <a-radio-group v-decorator="['chargeWay',validatorRules.chargeWay]" @change="handlechargeWayChange"
v-else> v-else :disabled="isAssociatedContract">
<a-radio :value="1">无</a-radio> <a-radio :value="1">无</a-radio>
<a-radio :value="2">合同</a-radio> <a-radio :value="2">合同</a-radio>
<a-radio :value="3">收费通知</a-radio> <a-radio :value="3">收费通知</a-radio>
@@ -141,7 +141,7 @@
<a-input placeholder="请输入合同号" <a-input placeholder="请输入合同号"
v-decorator="['contractNum',validatorRules.contractNum]" v-decorator="['contractNum',validatorRules.contractNum]"
:maxLength='50' :maxLength='50'
:disabled="isContractNumDisabled" :disabled="isContractNumDisabled || isAssociatedContract"
@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>
@@ -354,6 +354,7 @@ export default {
workingGroupId: null, workingGroupId: null,
workingGroupList: [], workingGroupList: [],
disabledCompany: false, // 企业是否禁用 disabledCompany: false, // 企业是否禁用
isAssociatedContract: false, // 是否关联合同
url: { url: {
add: '/project/payWorkingGroupSubitem/add', add: '/project/payWorkingGroupSubitem/add',
edit: '/project/payWorkingGroupSubitem/edit' edit: '/project/payWorkingGroupSubitem/edit'
@@ -409,6 +410,7 @@ export default {
if (record.id) { if (record.id) {
checkAssociatedProject(record.id).then(res => { checkAssociatedProject(record.id).then(res => {
this.disabledCompany = this.disabledChargeCompany || res || (!!record.inAccount && record.inAccount !== 0) || (!!record.makeInvoice && record.makeInvoice !== 0) || (!!record.mail && record.mail !== 0) this.disabledCompany = this.disabledChargeCompany || res || (!!record.inAccount && record.inAccount !== 0) || (!!record.makeInvoice && record.makeInvoice !== 0) || (!!record.mail && record.mail !== 0)
this.isAssociatedContract = res
}) })
} else { } else {
this.disabledCompany = this.disabledChargeCompany this.disabledCompany = this.disabledChargeCompany
@@ -453,6 +455,14 @@ export default {
this.$emit('close') this.$emit('close')
this.chargeWayType = null this.chargeWayType = null
this.selectedCompany = null this.selectedCompany = null
// 清除选中联系人信息
this.selectedContact1 = null
this.selectedContact2 = null
this.selectedContact3 = null
this.selectedMailContact = null
// 清除企业、来款方式、合同号的限制
this.isAssociatedContract = false
this.disabledCompany = false
this.visible = false this.visible = false
}, },
handleOk() { handleOk() {
@@ -197,25 +197,25 @@ export default {
}, { }, {
title: '来款项目', title: '来款项目',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'projectName', dataIndex: 'projectName',
scopedSlots: { customRender: 'projectName' } scopedSlots: { customRender: 'projectName' }
}, { }, {
title: '项目负责人', title: '项目负责人',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '所属科室', title: '所属科室',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'depart', dataIndex: 'depart',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款单位', title: '来款单位',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'chargeCompanyTemporaryName', dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
@@ -246,25 +246,25 @@ export default {
}, { }, {
title: '来款项目', title: '来款项目',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'projectName', dataIndex: 'projectName',
scopedSlots: { customRender: 'projectName' } scopedSlots: { customRender: 'projectName' }
}, { }, {
title: '项目负责人', title: '项目负责人',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '所属科室', title: '所属科室',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'depart', dataIndex: 'depart',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款单位', title: '来款单位',
align: 'center', align: 'center',
width: 200, width: 300,
dataIndex: 'chargeCompanyTemporaryName', dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
@@ -170,7 +170,7 @@ export default {
}, { }, {
title: '来款项目', title: '来款项目',
align: 'center', align: 'center',
width: 160, width: 300,
dataIndex: 'projectName', dataIndex: 'projectName',
scopedSlots: { customRender: 'projectName' } scopedSlots: { customRender: 'projectName' }
}, { }, {
@@ -203,7 +203,7 @@ export default {
}, { }, {
title: '来款项目', title: '来款项目',
align: 'center', align: 'center',
width: 160, width: 300,
dataIndex: 'workGroup', dataIndex: 'workGroup',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
@@ -156,7 +156,7 @@ export default {
}, { }, {
title: '项目负责人', title: '项目负责人',
align: 'center', align: 'center',
width: 140, width: 300,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'projectName' } scopedSlots: { customRender: 'projectName' }
}, { }, {
@@ -186,7 +186,7 @@ export default {
}, { }, {
title: '项目负责人', title: '项目负责人',
align: 'center', align: 'center',
width: 140, width: 300,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
@@ -178,19 +178,19 @@ export default {
}, { }, {
title: '项目负责人', title: '项目负责人',
align: 'center', align: 'center',
width: 160, width: 300,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款项目', title: '来款项目',
align: 'center', align: 'center',
width: 160, width: 300,
dataIndex: 'projectName', dataIndex: 'projectName',
scopedSlots: { customRender: 'projectName' } scopedSlots: { customRender: 'projectName' }
}, { }, {
title: '来款单位', title: '来款单位',
align: 'center', align: 'center',
width: 160, width: 300,
dataIndex: 'chargeCompanyTemporaryName', dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
@@ -223,19 +223,19 @@ export default {
}, { }, {
title: '项目负责人', title: '项目负责人',
align: 'center', align: 'center',
width: 160, width: 300,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款项目', title: '来款项目',
align: 'center', align: 'center',
width: 160, width: 300,
dataIndex: 'projectName', dataIndex: 'projectName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款单位', title: '来款单位',
align: 'center', align: 'center',
width: 160, width: 300,
dataIndex: 'chargeCompanyTemporaryName', dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
@@ -72,7 +72,7 @@
:dataSource="dataSource" :dataSource="dataSource"
:pagination="ipagination" :pagination="ipagination"
:loading="loading" :loading="loading"
:scroll="{x: 1100}" :scroll="{x: 1000}"
@change="handleTableChange" @change="handleTableChange"
:class="dataSource.length === 0 ? 'show-scroll' : ''" :class="dataSource.length === 0 ? 'show-scroll' : ''"
class="j-table-force-nowrap main-table"> class="j-table-force-nowrap main-table">
@@ -101,7 +101,7 @@
:dataSource="footerDataSource" :dataSource="footerDataSource"
:showHeader="false" :showHeader="false"
:pagination="false" :pagination="false"
:scroll="{x: 1100}" :scroll="{x: 1000}"
class="j-table-force-nowrap footer-table"> class="j-table-force-nowrap footer-table">
<!-- 项目名称--> <!-- 项目名称-->
@@ -161,6 +161,7 @@ export default {
}, { }, {
title: '来款项目', title: '来款项目',
align: 'center', align: 'center',
width: 300,
dataIndex: 'projectName', dataIndex: 'projectName',
scopedSlots: { customRender: 'projectName' } scopedSlots: { customRender: 'projectName' }
}, { }, {
@@ -193,6 +194,7 @@ export default {
}, { }, {
title: '来款项目', title: '来款项目',
align: 'center', align: 'center',
width: 300,
dataIndex: 'projectName', dataIndex: 'projectName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
@@ -173,12 +173,13 @@ export default {
}, { }, {
title: '项目负责人', title: '项目负责人',
align: 'center', align: 'center',
width: 300,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款单位', title: '来款单位',
align: 'center', align: 'center',
width: 160, width: 300,
dataIndex: 'chargeCompanyTemporaryName', dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
@@ -214,17 +215,18 @@ export default {
{ {
title: '序号', title: '序号',
dataIndex: 'title', dataIndex: 'title',
width: 100, width: 60,
align: 'center' align: 'center'
}, { }, {
title: '项目负责人', title: '项目负责人',
align: 'center', align: 'center',
width: 300,
dataIndex: 'principalName', dataIndex: 'principalName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
title: '来款单位', title: '来款单位',
align: 'center', align: 'center',
width: 160, width: 300,
dataIndex: 'chargeCompanyTemporaryName', dataIndex: 'chargeCompanyTemporaryName',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'text' }
}, { }, {
+66 -32
View File
@@ -11,44 +11,70 @@
dictCode="system_dept_frequency" dictCode="system_dept_frequency"
@change="deptFrequencyChange"/> @change="deptFrequencyChange"/>
</a-form-item> </a-form-item>
<a-form-item label="催款时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<!-- 仅此一次(年月日)--> <!-- 仅此一次(年月日)-->
<a-form-item label="催款时间" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="selectDeptFrequency === '1'">
<j-date <j-date
v-if="selectDeptFrequency === '1'"
placeholder="请选择催款时间" placeholder="请选择催款时间"
allowClear allowClear
style="width: 100%;" style="width: 100%;"
v-decorator="['time', validatorRules.time]" v-decorator="['time', validatorRules.time]"
:trigger-change="true" :trigger-change="true"
date-format="YYYY-MM-DD"/> date-format="YYYY-MM-DD"/>
</a-form-item>
<!-- 每年一次(月日)-->
<a-row :gutter="12" v-if="selectDeptFrequency === '2'">
<a-col :span="14">
<a-form-item label="催款时间" :labelCol="yearLabelCol" :wrapperCol="yearWrapperCol">
<!-- 月-->
<a-select
placeholder="请选择月"
allowClear
v-decorator="['deptMonth', validatorRules.deptMonth]"
:options="monthOptions">
</a-select>
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item>
<a-select
placeholder="请选择日"
allowClear
v-decorator="['deptDay', validatorRules.deptDay]"
:options="dayOptions">
</a-select>
</a-form-item>
</a-col>
</a-row>
<a-form-item v-if="selectDeptFrequency === '3'" label="催款时间" :labelCol="labelCol" :wrapperCol="wrapperCol" >
<a-select
placeholder="请选择日"
allowClear
v-decorator="['deptDay', validatorRules.deptDay]"
:options="dayOptions">
</a-select>
</a-form-item>
<!-- <a-row :gutter="12">-->
<!-- <a-col :span="12">-->
<!-- &lt;!&ndash; 月&ndash;&gt;-->
<!-- <template v-if="selectDeptFrequency === '2'">-->
<!-- <a-select-->
<!-- placeholder="请选择月"-->
<!-- allowClear-->
<!-- v-decorator="['deptMonth', validatorRules.deptMonth]"-->
<!-- :options="monthOptions">-->
<!-- </a-select>-->
<!-- </template>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- 每年一次(月日)-->
<div class="m-d">
<a-row :gutter="12">
<a-col :span="12">
<!-- 月-->
<template v-if="selectDeptFrequency === '2'">
<a-select
placeholder="请选择月"
allowClear
v-decorator="['deptMonth', validatorRules.deptMonth]"
:options="monthOptions">
</a-select>
</template>
</a-col>
<a-col :span="12">
<a-form-item v-if="selectDeptFrequency === '2' || selectDeptFrequency === '3'">
<a-select
placeholder="请选择日"
allowClear
v-decorator="['deptDay', validatorRules.deptDay]"
:options="dayOptions">
</a-select>
</a-form-item>
</a-col>
</a-row>
</div>
</a-form-item> </a-form-item>
<a-form-item class="btn-form"> <a-form-item class="btn-form">
<a-button type="primary" class="btn-form-save" @click="handleOk" v-has="'system:dept:save'">保存</a-button> <a-button type="primary" class="btn-form-save" @click="handleOk" v-has="'system:dept:save'">保存</a-button>
@@ -76,14 +102,22 @@ export default {
model: {}, model: {},
labelCol: { labelCol: {
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 3 } sm: { span: 4 }
}, },
wrapperCol: { wrapperCol: {
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 21 } sm: { span: 20 }
},
yearLabelCol: {
xs: { span: 24 },
sm: { span: 7 }
},
yearWrapperCol: {
xs: { span: 24 },
sm: { span: 17 }
}, },
validatorRules: { validatorRules: {
deptFrequency: { frequency: {
rules: [{ required: true, message: '请选择频率' }], rules: [{ required: true, message: '请选择频率' }],
validateTrigger: 'change' validateTrigger: 'change'
}, },
+2
View File
@@ -157,6 +157,8 @@ export default {
}, },
close() { close() {
this.$emit('close') this.$emit('close')
// 解决点编辑关闭后,再点添加下级角色编码仍然置灰的问题
this.roleDisabled = false
this.isAddLower = false this.isAddLower = false
this.visible = false this.visible = false
}, },
+4 -5
View File
@@ -606,14 +606,13 @@ export default {
}, },
compareToFirstPassword(rule, value, callback) { compareToFirstPassword(rule, value, callback) {
const form = this.form const form = this.form
if (value && value !== form.getFieldValue('password')) {
callback('两次输入的密码不一样!')
}
if (value && !passwordReg(value)) { if (value && !passwordReg(value)) {
callback('密码由8位及以上数字、大小写字母和特殊符号组成!') callback('密码由8位及以上数字、大小写字母和特殊符号组成!')
} }
if (value && value !== form.getFieldValue('password')) { callback()
callback('两次输入的密码不一样!')
} else {
callback()
}
}, },
validatePhone(rule, value, callback) { validatePhone(rule, value, callback) {
checkPhone(value, this.userId).then(res => { checkPhone(value, this.userId).then(res => {