选择企业组件修改;选择联系人组件;工作组项目页面;进度条组件

This commit is contained in:
zhaoxiao
2021-08-27 14:21:11 +08:00
parent 47fb83594c
commit d1f8a2cb51
9 changed files with 818 additions and 62 deletions
@@ -31,12 +31,6 @@
<select-principal placeholder="请选择负责人"
v-decorator="['principalId',validatorRules.principalId]"
:maxLength='50'></select-principal>
<!-- <a-select placeholder="请选择负责人"-->
<!-- v-decorator="['principalId',validatorRules.principalId]"-->
<!-- :maxLength='50'-->
<!-- @change="e => {e.target.value = (e.target.value + '').trim()}">-->
<!-- <a-select-option v-for="item in userList" :key="item.id" :value="item.id">{{ item.username }}</a-select-option>-->
<!-- </a-select>-->
</a-form-item>
</a-col>
</a-row>
@@ -44,7 +38,7 @@
<a-col :xl="12" :sm="24">
<a-form-item label="来款企业" :labelCol="labelCol" :wrapperCol="wrapperCol">
<company-select placeholder="请选择来款企业"
v-decorator="['chargeCompanyName',validatorRules.chargeCompanyName]"
v-decorator="['chargeCompany',validatorRules.chargeCompany]"
@change="companyChange"
:maxLength='50'>
</company-select>
@@ -60,36 +54,22 @@
<a-row>
<a-col :xl="12" :sm="24">
<a-form-item label="联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-row>
<a-col :span="20">
<a-select placeholder="请选择联系人"
v-decorator="['contactsId',validatorRules.contactsId]"
:maxLength='50'
@change="e => {e.target.value = (e.target.value + '').trim()}">
<a-select-option v-for="item in userList" :key="item.id" :value="item.id">{{ item.contactsName }}</a-select-option>
</a-select>
</a-col>
<a-col :span="4" class="form-btn">
<a-button icon="plus" @click="addContacts"></a-button>
</a-col>
</a-row>
<select-contacts :selected-company="selectedCompany"
placeholder="请选择联系人"
v-decorator="['contactsId',validatorRules.contactsId]"
:maxLength='50'
ref="selectContacts"
@ok="addContactsOk"></select-contacts>
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item label="邮寄联系人" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-row>
<a-col :span="20">
<a-select placeholder="请选择邮寄联系人"
v-decorator="['mailContactsId',validatorRules.mailContactsId]"
:maxLength='50'
@change="e => {e.target.value = (e.target.value + '').trim()}">
<a-select-option v-for="item in userList" :key="item.id" :value="item.id">{{ item.mailContactsName }}</a-select-option>
</a-select>
</a-col>
<a-col :span="4" class="form-btn">
<a-button icon="plus" @click="addContacts"></a-button>
</a-col>
</a-row>
<select-contacts :selected-company="selectedCompany"
placeholder="请选择邮寄联系人"
v-decorator="['mailContactsId',validatorRules.mailContactsId]"
:maxLength='50'
ref="selectMailContacts"
@ok="addContactsOk"></select-contacts>
</a-form-item>
</a-col>
</a-row>
@@ -132,7 +112,7 @@
</a-form-item>
</a-col>
<a-col :xl="12" :sm="24">
<a-form-item label="合同号" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="chargeWayType === 2">
<a-form-item label="合同号" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="chargeWayType === 2">
<a-input placeholder="请输入合同号"
v-decorator="['contractNum',validatorRules.contractNum]"
:maxLength='50'
@@ -140,7 +120,7 @@
</a-form-item>
</a-col>
</a-row>
<a-row v-show="chargeWayType === 3">
<a-row v-if="chargeWayType === 3">
<a-col :xl="12" :sm="24">
<a-form-item label="收费通知号" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入收费通知号"
@@ -169,7 +149,6 @@
</a-col>
</a-row>
</a-form>
<contact-management-module ref="contactForm" is-company-disabled :selected-company="selectedCompany"></contact-management-module>
</j-modal>
</template>
@@ -181,10 +160,11 @@ import JUpload from '@comp/jero/JUpload'
import CompanySelect from '@comp/company/CompanySelect'
import ContactManagementModule from '@views/businessManagement/modules/ContactManagementModule'
import SelectPrincipal from '@comp/company/SelectPrincipal'
import SelectContacts from '@comp/company/SelectContacts'
export default {
name: 'GeneralProjectModule',
components: { JDate, JUpload, CompanySelect, ContactManagementModule, SelectPrincipal },
components: { JDate, JUpload, CompanySelect, ContactManagementModule, SelectPrincipal, SelectContacts },
data() {
return {
title: '操作',
@@ -219,7 +199,7 @@ export default {
principalId: {
rules: [{ required: true, message: '请选择负责人' }]
},
chargeCompanyName: {
chargeCompany: {
rules: [{ required: true, message: '请选择来款企业' }]
},
chargeUse: {
@@ -261,7 +241,7 @@ export default {
this.model = Object.assign({}, record)
this.visible = true
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'chargeProject', 'year', 'principalId', 'chargeCompanyName', 'chargeUse', 'contactsId', 'mailContactsId', 'receivableAmount', 'invoice', 'chargeWay', 'contractNum', 'chargeNoticeNo', 'remarks'))
this.form.setFieldsValue(pick(this.model, 'chargeProject', 'year', 'principalId', 'chargeCompany', 'chargeUse', 'contactsId', 'mailContactsId', 'receivableAmount', 'invoice', 'chargeWay', 'contractNum', 'chargeNoticeNo', 'remarks'))
})
},
close() {
@@ -273,14 +253,14 @@ export default {
// 触发表单验证
this.form.validateFields((err, values) => {
if (!err) {
values.chargeCompanyName = values.chargeCompany.companyName
values.chargeCompanyId = values.chargeCompany.id
let httpurl = ''
let method = ''
let method = 'post'
if (!this.model.id) {
httpurl += this.url.add
method = 'post'
} else {
httpurl += this.url.edit
method = 'put'
}
const formData = Object.assign(this.model, values)
console.log('表单提交数据', formData)
@@ -308,25 +288,30 @@ export default {
handlechargeWayChange(e) {
this.chargeWayType = e.target.value
},
/**
* 选中企业变化,将联系人的值清空
* @param value
*/
companyChange(value) {
console.log(1)
this.selectedCompany = value
this.model.contactsId = undefined
this.model.mailContactsId = undefined
this.$nextTick(() => {
this.form.setFieldsValue(pick(this.model, 'contactsId', 'mailContactsId'))
})
},
addContacts() {
if (this.selectedCompany) {
this.$refs.contactForm.add()
this.$refs.contactForm.title = "新增";
this.$refs.contactForm.disableSubmit = false;
return
}
this.$message.warn('请先选择来款企业再为该企业新建联系人')
/**
* 在新增成功后重新获取联系人列表
*/
addContactsOk() {
this.$refs.selectContacts.getContactsList()
this.$refs.selectMailContacts.getContactsList()
}
}
}
</script>
<style scoped>
.form-btn {
padding-top: 1px;
padding-left: 8px;
}
</style>