bug修改
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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' }
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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' }
|
||||||
}, {
|
}, {
|
||||||
|
|||||||
+2
-2
@@ -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' }
|
||||||
}, {
|
}, {
|
||||||
|
|||||||
+2
-2
@@ -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' }
|
||||||
}, {
|
}, {
|
||||||
|
|||||||
+4
-2
@@ -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' }
|
||||||
}, {
|
}, {
|
||||||
|
|||||||
+5
-3
@@ -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' }
|
||||||
}, {
|
}, {
|
||||||
|
|||||||
@@ -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">-->
|
||||||
|
<!-- <!– 月–>-->
|
||||||
|
<!-- <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'
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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 => {
|
||||||
|
|||||||
Reference in New Issue
Block a user