合同新增
parent
39fea5ff3a
commit
248ea11952
|
|
@ -7,8 +7,10 @@
|
||||||
:rules="formRules"
|
:rules="formRules"
|
||||||
label-width="120px"
|
label-width="120px"
|
||||||
>
|
>
|
||||||
|
<ContentWrap style="border: none;font-weight: 700">
|
||||||
|
基础信息
|
||||||
|
</ContentWrap>
|
||||||
<el-row>
|
<el-row>
|
||||||
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合同名称" prop="name">
|
<el-form-item label="合同名称" prop="name">
|
||||||
<el-input v-model="formData.name" placeholder="请输入合同名称" />
|
<el-input v-model="formData.name" placeholder="请输入合同名称" />
|
||||||
|
|
@ -24,6 +26,7 @@
|
||||||
<el-select
|
<el-select
|
||||||
@change="handleQuotationChange"
|
@change="handleQuotationChange"
|
||||||
v-model="formData.quotationId"
|
v-model="formData.quotationId"
|
||||||
|
placeholder="请选择报价单编号"
|
||||||
class="w-1/1"
|
class="w-1/1"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
|
|
@ -40,7 +43,7 @@
|
||||||
<el-select
|
<el-select
|
||||||
v-model="formData.customerId"
|
v-model="formData.customerId"
|
||||||
disabled=""
|
disabled=""
|
||||||
placeholder="请选择客户"
|
placeholder="客户"
|
||||||
class="w-1/1"
|
class="w-1/1"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
|
|
@ -52,166 +55,26 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="方案签约人" prop="quotationId">
|
||||||
|
<el-select
|
||||||
|
@change="handleQuotationChange"
|
||||||
|
v-model="formData.quotationId"
|
||||||
|
class="w-1/1"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in quotationList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.no"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合同签订日期" prop="startTime">
|
<el-form-item label="授信额度" prop="creditLimit">
|
||||||
<el-date-picker
|
<el-input v-model="formData.creditLimit" placeholder="授信额度" disabled />
|
||||||
v-model="formData.startTime"
|
|
||||||
type="date"
|
|
||||||
value-format="x"
|
|
||||||
placeholder="选择合同签订日期"
|
|
||||||
style="width: 100%"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="合同结束时间" prop="endTime">
|
|
||||||
<el-date-picker
|
|
||||||
v-model="formData.endTime"
|
|
||||||
type="date"
|
|
||||||
value-format="x"
|
|
||||||
placeholder="选择合同结束时间"
|
|
||||||
style="width: 100%"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<!-- <el-col :span="8">
|
|
||||||
<el-form-item label="票据模板" prop="invoiceTemplateId">
|
|
||||||
<el-input v-model="formData.invoiceTemplateId" placeholder="请输入票据模板" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row> -->
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="违约金比例" prop="penaltyRate">
|
|
||||||
<el-input v-model="formData.penaltyRate" placeholder="请输入违约金比例" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="延期付款利率" prop="latePaymentRate">
|
|
||||||
<el-input v-model="formData.latePaymentRate" placeholder="请输入延期付款利率" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="财务结算方式" prop="settleMethod">
|
|
||||||
<el-select v-model="formData.settleMethod" placeholder="请选择财务结算方式">
|
|
||||||
<el-option
|
|
||||||
v-for="dict in getIntDictOptions('settle_method')"
|
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="最晚付款日期" prop="lastPayDate">
|
|
||||||
<el-date-picker
|
|
||||||
v-model="formData.lastPayDate"
|
|
||||||
type="date"
|
|
||||||
value-format="x"
|
|
||||||
style="width: 100%"
|
|
||||||
placeholder="选择最晚付款日期"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="合同期限(月)" prop="contractTerm">
|
|
||||||
<el-input v-model="formData.contractTerm" placeholder="请输入合同期限(月)" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="报价签约人" prop="signUserId">
|
|
||||||
<el-select v-model="formData.signUserId" placeholder="报价签约人" disabled >
|
|
||||||
<el-option
|
|
||||||
v-for="dict in userOptions"
|
|
||||||
:key="dict.id"
|
|
||||||
:label="dict.nickname"
|
|
||||||
:value="dict.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="签约人联系电话" prop="signPhoneNumber">
|
|
||||||
<el-input v-model="formData.signPhoneNumber" placeholder="签约人联系电话" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="签约人Email" prop="signEmail">
|
|
||||||
<el-input v-model="formData.signEmail" placeholder="签约人Email" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="签约人微信" prop="signWechat">
|
|
||||||
<el-input v-model="formData.signWechat" placeholder="签约人微信" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="商机负责人" prop="ownerUserId">
|
|
||||||
<el-select v-model="formData.ownerUserId" placeholder="商机负责人" disabled>
|
|
||||||
<el-option
|
|
||||||
v-for="dict in userOptions"
|
|
||||||
:key="dict.id"
|
|
||||||
:label="dict.nickname"
|
|
||||||
:value="dict.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="拓展人" prop="expanderUserId">
|
|
||||||
<el-select v-model="formData.expanderUserId" placeholder="拓展人" disabled>
|
|
||||||
<el-option
|
|
||||||
v-for="dict in userOptions"
|
|
||||||
:key="dict.id"
|
|
||||||
:label="dict.nickname"
|
|
||||||
:value="dict.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="方案报价人" prop="pricingUserId">
|
|
||||||
<el-select v-model="formData.pricingUserId" placeholder="方案报价人" disabled>
|
|
||||||
<el-option
|
|
||||||
v-for="dict in userOptions"
|
|
||||||
:key="dict.id"
|
|
||||||
:label="dict.nickname"
|
|
||||||
:value="dict.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="售后维护人" prop="afterSaleUserId">
|
|
||||||
<el-select v-model="formData.afterSaleUserId" placeholder="请选择售后维护人">
|
|
||||||
<el-option
|
|
||||||
v-for="dict in userOptions"
|
|
||||||
:key="dict.id"
|
|
||||||
:label="dict.nickname"
|
|
||||||
:value="dict.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="协作人" prop="collUserId">
|
|
||||||
<el-select v-model="formData.collUserId" placeholder="请选择协作人">
|
|
||||||
<el-option
|
|
||||||
v-for="dict in userOptions"
|
|
||||||
:key="dict.id"
|
|
||||||
:label="dict.nickname"
|
|
||||||
:value="dict.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
|
|
@ -239,15 +102,27 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="授信额度" prop="creditLimit">
|
<el-form-item label="第几次报价" prop="quotationTimes">
|
||||||
<el-input v-model="formData.creditLimit" placeholder="授信额度" disabled />
|
<el-input v-model="formData.quotationTimes" disabled placeholder="第几次报价" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合作主体" prop="partnerCompanyId">
|
<el-form-item label="账期" prop="paymentTerm">
|
||||||
<el-select v-model="formData.partnerCompanyId" placeholder="合作主体" disabled >
|
<el-select v-model="formData.paymentTerm" disabled placeholder="账期">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in orgList"
|
v-for="dict in getStrDictOptions('payment_term')"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="票据模板" prop="invoiceTemplateId">
|
||||||
|
<el-select v-model="formData.invoiceTemplateId" disabled placeholder="请选择票据模板">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in templateOptions"
|
||||||
:key="dict.id"
|
:key="dict.id"
|
||||||
:label="dict.name"
|
:label="dict.name"
|
||||||
:value="dict.id"
|
:value="dict.id"
|
||||||
|
|
@ -255,40 +130,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="归属部门" prop="deptId" >
|
|
||||||
<el-tree-select
|
|
||||||
v-model="formData.deptId"
|
|
||||||
:data="deptTree"
|
|
||||||
:props="defaultProps"
|
|
||||||
filterable
|
|
||||||
disabled
|
|
||||||
check-strictly
|
|
||||||
node-key="id"
|
|
||||||
placeholder="归属部门"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="第几次报价" prop="quotationTimes">
|
|
||||||
<el-input v-model="formData.quotationTimes" placeholder="请输入第几次报价" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="合同正文" prop="contractBody">
|
|
||||||
<el-input v-model="formData.contractBody" type="textarea" rows="5" placeholder="请输入合同正文" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="24">
|
|
||||||
<el-form-item label="合同补充协议" prop="contractAgreement">
|
|
||||||
<el-input v-model="formData.contractAgreement" type="textarea" rows="5" placeholder="请输入合同补充协议" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="线上总金额" prop="onlinePrice">
|
<el-form-item label="线上总金额" prop="onlinePrice">
|
||||||
|
|
@ -314,12 +156,286 @@
|
||||||
<el-form-item label="总金额" prop="price">
|
<el-form-item label="总金额" prop="price">
|
||||||
<el-input
|
<el-input
|
||||||
disabled
|
disabled
|
||||||
|
placeholder="总金额"
|
||||||
v-model="formData.totalPrice"
|
v-model="formData.totalPrice"
|
||||||
:formatter="erpPriceInputFormatter"
|
:formatter="erpPriceInputFormatter"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<ContentWrap style="border: none;font-weight: 700">
|
||||||
|
甲方基本信息
|
||||||
|
</ContentWrap>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="甲方名称" prop="partyName">
|
||||||
|
<el-select v-model="formData.partyName" disabled placeholder="甲方名称">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getStrDictOptions('payment_term')"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="客户编号" prop="customerId">
|
||||||
|
<el-input v-model="formData.customerId" disabled placeholder="客户编号" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="法人代表" prop="legalRepresentative">
|
||||||
|
<el-input v-model="formData.legalRepresentative" placeholder="法人代表" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="统一信用代码" prop="creditCode">
|
||||||
|
<el-input v-model="formData.creditCode" placeholder="统一信用代码" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="企业类型" prop="regType">
|
||||||
|
<el-input v-model="formData.regType" placeholder="企业类型" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="融资信息" prop="financingInfo">
|
||||||
|
<el-input v-model="formData.financingInfo" placeholder="融资信息" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="实缴资金" prop="actualCapital">
|
||||||
|
<el-input v-model="formData.actualCapital" placeholder="实缴资金" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="参保人数" prop="socialEmployeeNum">
|
||||||
|
<el-input v-model="formData.socialEmployeeNum" placeholder="参保人数" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="上市情况" prop="listingStatus">
|
||||||
|
<el-input v-model="formData.listingStatus" placeholder="上市情况" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="通讯地址" prop="listingStatus">
|
||||||
|
<el-input v-model="formData.partAddress" placeholder="通讯地址" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<ContentWrap style="border: none;font-weight: 700">
|
||||||
|
乙方基本信息
|
||||||
|
</ContentWrap>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="合作主体" prop="partnerCompanyId">
|
||||||
|
<el-select v-model="formData.partnerCompanyId" placeholder="合作主体" disabled >
|
||||||
|
<el-option
|
||||||
|
v-for="dict in orgList"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.name"
|
||||||
|
:value="dict.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="开户行" prop="bankName">
|
||||||
|
<el-input v-model="formData.bankName" placeholder="开户行" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="银行账号" prop="bankAccount">
|
||||||
|
<el-input v-model="formData.bankAccount" placeholder="银行账号" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="法人代表" prop="secPartyLegalRepresentative">
|
||||||
|
<el-input v-model="formData.secPartyLegalRepresentative" placeholder="法人代表" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="商务负责人" prop="secPartyPerson">
|
||||||
|
<el-input v-model="formData.secPartyPerson" placeholder="商务负责人" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="手机号" prop="mobile">
|
||||||
|
<el-input
|
||||||
|
v-model="formData.mobile"
|
||||||
|
placeholder="手机号"
|
||||||
|
disabled
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="E-mail" prop="email">
|
||||||
|
<el-input
|
||||||
|
v-model="formData.email"
|
||||||
|
placeholder="E-mail"
|
||||||
|
disabled
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="微信号" prop="wechat">
|
||||||
|
<el-input
|
||||||
|
v-model="formData.wechat"
|
||||||
|
placeholder="微信号"
|
||||||
|
disabled
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="归属部门" prop="deptId">
|
||||||
|
<el-tree-select
|
||||||
|
v-model="formData.deptId"
|
||||||
|
:data="deptTree"
|
||||||
|
:props="defaultProps"
|
||||||
|
disabled
|
||||||
|
check-strictly
|
||||||
|
node-key="id"
|
||||||
|
placeholder="归属部门"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<ContentWrap style="border: none;font-weight: 700">
|
||||||
|
合同信息
|
||||||
|
</ContentWrap>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="合同类型" prop="contractType">
|
||||||
|
<el-radio-group v-model="formData.contractType">
|
||||||
|
<el-radio :label="1">单次合同</el-radio>
|
||||||
|
<el-radio :label="2">框架合同</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="合同签订日期" prop="startTime">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="formData.startTime"
|
||||||
|
type="date"
|
||||||
|
value-format="x"
|
||||||
|
placeholder="选择合同签订日期"
|
||||||
|
style="width: 100%"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="合同结束时间" prop="endTime">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="formData.endTime"
|
||||||
|
type="date"
|
||||||
|
value-format="x"
|
||||||
|
placeholder="选择合同结束时间"
|
||||||
|
style="width: 100%"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="合同期限(月)" prop="contractTerm">
|
||||||
|
<el-input v-model="formData.contractTerm" oninput = "value=value.replace(/[^\d]/g,'')" placeholder="请输入合同期限(月)" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="账单日" prop="statement">
|
||||||
|
<el-select v-model="formData.statement" placeholder="请选择账单日" >
|
||||||
|
<el-option
|
||||||
|
v-for="(dict, index) in statement"
|
||||||
|
:key="index"
|
||||||
|
:label="index + 1"
|
||||||
|
:value="index + 1"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="最晚付款日" prop="contractTerm">
|
||||||
|
<el-select v-model="formData.partnerCompanyId" placeholder="请选择最晚付款日" >
|
||||||
|
<el-option
|
||||||
|
v-for="(dict, index) in statement"
|
||||||
|
:key="index"
|
||||||
|
:label="index + 1"
|
||||||
|
:value="index + 1"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="违约金比例" prop="penaltyRate">
|
||||||
|
<el-input v-model="formData.penaltyRate" placeholder="请输入违约金比例" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="延期付款利率" prop="latePaymentRate">
|
||||||
|
<el-input v-model="formData.latePaymentRate" placeholder="请输入延期付款利率" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<!-- <el-col :span="8">
|
||||||
|
<el-form-item label="票据模板" prop="invoiceTemplateId">
|
||||||
|
<el-input v-model="formData.invoiceTemplateId" placeholder="请输入票据模板" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row> -->
|
||||||
|
<el-col :span="24">
|
||||||
|
<ContentWrap style="border: none;font-weight: 700">
|
||||||
|
财务与客服对接信息
|
||||||
|
</ContentWrap>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="合同类型" prop="financeRecord">
|
||||||
|
<el-radio-group v-model="formData.financeRecord">
|
||||||
|
<el-radio :label="1">按月结算</el-radio>
|
||||||
|
<el-radio :label="0">按项目结算</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="售后维护人" prop="afterSaleUserId">
|
||||||
|
<el-select v-model="formData.afterSaleUserId" placeholder="请选择售后维护人">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in userOptions"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.nickname"
|
||||||
|
:value="dict.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="协作人" prop="collUserId">
|
||||||
|
<el-select v-model="formData.collUserId" placeholder="请选择协作人">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in userOptions"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.nickname"
|
||||||
|
:value="dict.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="合同正文" prop="contractBody">
|
||||||
|
<el-input v-model="formData.contractBody" type="textarea" rows="5" placeholder="请输入合同正文" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="合同补充协议" prop="contractAgreement">
|
||||||
|
<el-input v-model="formData.contractAgreement" type="textarea" rows="5" placeholder="请输入合同补充协议" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
<!-- 子表的表单 -->
|
<!-- 子表的表单 -->
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<el-tabs v-model="subTabsName" class="-mt-15px -mb-10px">
|
<el-tabs v-model="subTabsName" class="-mt-15px -mb-10px">
|
||||||
|
|
@ -350,7 +466,6 @@
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
|
|
||||||
import * as CustomerApi from '@/api/crm/customer'
|
import * as CustomerApi from '@/api/crm/customer'
|
||||||
import * as ContractApi from '@/api/crm/contract'
|
import * as ContractApi from '@/api/crm/contract'
|
||||||
import * as ContactApi from '@/api/crm/contact'
|
import * as ContactApi from '@/api/crm/contact'
|
||||||
|
|
@ -358,11 +473,13 @@ import * as UserApi from '@/api/system/user'
|
||||||
import { QuotationApi,QuotationVO } from '@/api/crm/quotation'
|
import { QuotationApi,QuotationVO } from '@/api/crm/quotation'
|
||||||
import { erpPriceMultiply, erpPriceInputFormatter } from '@/utils'
|
import { erpPriceMultiply, erpPriceInputFormatter } from '@/utils'
|
||||||
import { useUserStore } from '@/store/modules/user'
|
import { useUserStore } from '@/store/modules/user'
|
||||||
|
import { BillTemplateApi, BillTemplateVO } from '@/api/crm/billtemplate'
|
||||||
import ContractProductForm from '@/views/crm/contract/components/ContractProductForm.vue'
|
import ContractProductForm from '@/views/crm/contract/components/ContractProductForm.vue'
|
||||||
import ContractAAuthorizedCompanyForm from './components/ContractAAuthorizedCompanyForm.vue'
|
import ContractAAuthorizedCompanyForm from './components/ContractAAuthorizedCompanyForm.vue'
|
||||||
import ContractAAuthorizedPersonForm from './components/ContractAAuthorizedPersonForm.vue'
|
import ContractAAuthorizedPersonForm from './components/ContractAAuthorizedPersonForm.vue'
|
||||||
import ContractBAuthorizedPersonForm from './components/ContractBAuthorizedPersonForm.vue'
|
import ContractBAuthorizedPersonForm from './components/ContractBAuthorizedPersonForm.vue'
|
||||||
import { propTypes } from '@/utils/propTypes'
|
import { propTypes } from '@/utils/propTypes'
|
||||||
|
import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||||
|
|
||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
|
|
@ -371,6 +488,7 @@ const props = defineProps({
|
||||||
id: propTypes.number.def(undefined),
|
id: propTypes.number.def(undefined),
|
||||||
type: propTypes.number.def(undefined),
|
type: propTypes.number.def(undefined),
|
||||||
})
|
})
|
||||||
|
const templateOptions = ref([])
|
||||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
const dialogTitle = ref('') // 弹窗的标题
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
|
|
@ -380,6 +498,10 @@ const formData = ref({
|
||||||
name: undefined,
|
name: undefined,
|
||||||
no: undefined,
|
no: undefined,
|
||||||
customerId: undefined,
|
customerId: undefined,
|
||||||
|
partyName: undefined,
|
||||||
|
partAddress: undefined,
|
||||||
|
secPartyPerson: undefined,
|
||||||
|
wechat: undefined,
|
||||||
quotationId: undefined,
|
quotationId: undefined,
|
||||||
invoiceTemplateId: undefined,
|
invoiceTemplateId: undefined,
|
||||||
processInstanceId: undefined,
|
processInstanceId: undefined,
|
||||||
|
|
@ -418,7 +540,12 @@ const formRules = reactive({
|
||||||
customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }],
|
customerId: [{ required: true, message: '客户不能为空', trigger: 'blur' }],
|
||||||
quotationId: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
|
quotationId: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
|
||||||
orderDate: [{ required: true, message: '下单日期不能为空', trigger: 'blur' }],
|
orderDate: [{ required: true, message: '下单日期不能为空', trigger: 'blur' }],
|
||||||
ownerUserId: [{ required: true, message: '负责人不能为空', trigger: 'blur' }]
|
ownerUserId: [{ required: true, message: '负责人不能为空', trigger: 'blur' }],
|
||||||
|
statement: [{ required: true, message: '账单日不能为空', trigger: 'change' }],
|
||||||
|
contractType: [{ required: true, message: '合同类型不能为空', trigger: 'change' }],
|
||||||
|
penaltyRate: [{ required: true, message: '违约金比例不能为空', trigger: 'blur' }],
|
||||||
|
latePaymentRate: [{ required: true, message: '延期付款利率不能为空', trigger: 'blur' }],
|
||||||
|
collUserId: [{ required: true, message: '协作人不能为空', trigger: 'blur' }],
|
||||||
})
|
})
|
||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
const userOptions = ref<UserApi.UserVO[]>([]) // 用户列表
|
const userOptions = ref<UserApi.UserVO[]>([]) // 用户列表
|
||||||
|
|
@ -426,6 +553,7 @@ const customerList = ref([]) // 客户列表的数据
|
||||||
const quotationList = ref<QuotationVO[]>([])
|
const quotationList = ref<QuotationVO[]>([])
|
||||||
const contactList = ref<ContactApi.ContactVO[]>([])
|
const contactList = ref<ContactApi.ContactVO[]>([])
|
||||||
const orgList = ref([])
|
const orgList = ref([])
|
||||||
|
const statement = ref(new Array(31).fill(null))
|
||||||
|
|
||||||
/** 子表的表单 */
|
/** 子表的表单 */
|
||||||
const subTabsName = ref('product')
|
const subTabsName = ref('product')
|
||||||
|
|
@ -451,7 +579,7 @@ watch(
|
||||||
/** 打开弹窗 */
|
/** 打开弹窗 */
|
||||||
const open = async (type: string) => {
|
const open = async (type: string) => {
|
||||||
if (type) {
|
if (type) {
|
||||||
formLoading.value = true
|
// formLoading.value = true
|
||||||
try {
|
try {
|
||||||
formData.value = await ContractApi.getContract(type)
|
formData.value = await ContractApi.getContract(type)
|
||||||
} finally {
|
} finally {
|
||||||
|
|
@ -647,6 +775,7 @@ const getContactOptions = computed(() =>
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
console.log('%csrc/views/crm/contract/ContractForm.vue:760 statement.value', 'color: #007acc;', statement.value);
|
||||||
formType.value = props.id || route.query.id
|
formType.value = props.id || route.query.id
|
||||||
|
|
||||||
if (formType.value) await open(formType.value)
|
if (formType.value) await open(formType.value)
|
||||||
|
|
@ -658,6 +787,12 @@ onMounted(async () => {
|
||||||
// 获得报价列表
|
// 获得报价列表
|
||||||
quotationList.value = await QuotationApi.getSimpleQuotationList()
|
quotationList.value = await QuotationApi.getSimpleQuotationList()
|
||||||
|
|
||||||
|
//票据
|
||||||
|
const tempData = await BillTemplateApi.getBillTemplatePage({
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 1000,
|
||||||
|
})
|
||||||
|
templateOptions.value = tempData.list
|
||||||
// 默认新建时选中自己
|
// 默认新建时选中自己
|
||||||
// if (formType.value === 'create') {
|
// if (formType.value === 'create') {
|
||||||
// formData.value.ownerUserId = useUserStore().getUser.id
|
// formData.value.ownerUserId = useUserStore().getUser.id
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue