|
@@ -57,216 +57,39 @@
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <el-form ref="form" :model="form" label-width="110px" label-position="right" class="form-container">
|
|
|
|
- <el-row
|
|
|
|
- v-for="(item, index) in form.contractDrafts"
|
|
|
|
- :key="index"
|
|
|
|
- class="form-container-items"
|
|
|
|
- >
|
|
|
|
- <!-- 汇票名称 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="汇票名称" :prop="`contractDrafts.${index}.name`" :rules="rules.name">
|
|
|
|
- <el-input
|
|
|
|
- v-model="item.name"
|
|
|
|
- class="ipwidth"
|
|
|
|
- placeholder="请填写"
|
|
|
|
- clearable
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 汇票号码 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="汇票号码" :prop="`contractDrafts.${index}.draftNo`" :rules="rules.draftNo">
|
|
|
|
- <el-input
|
|
|
|
- v-model="item.draftNo"
|
|
|
|
- class="ipwidth"
|
|
|
|
- placeholder="请填写汇票号码"
|
|
|
|
- clearable
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 出票人 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="出票人" :prop="`contractDrafts.${index}.drawersId`" :rules="rules.drawersId">
|
|
|
|
- <DrawerSelect v-model="item.drawersId" />
|
|
|
|
- <i class="el-icon-circle-plus-outline" style="font-size:20px;cursor: pointer;" @click="addDrawer" />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 预计贴现日 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="预计贴现日" :prop="`contractDrafts.${index}.expectDiscountDate`" :rules="rules.expectDiscountDate">
|
|
|
|
- <el-date-picker
|
|
|
|
- v-model="item.expectDiscountDate"
|
|
|
|
- type="date"
|
|
|
|
- placeholder="选择日期"
|
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
|
- :picker-options="pickerStart(index)"
|
|
|
|
- @change="inputMoney(index)"
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 金额 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="金额" :prop="`contractDrafts.${index}.money`" :rules="rules.money">
|
|
|
|
- <el-input
|
|
|
|
- v-model="item.money"
|
|
|
|
- class="ipwidth"
|
|
|
|
- placeholder="请填写金额"
|
|
|
|
- clearable
|
|
|
|
- @input="inputMoney(index)"
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 承兑人 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="承兑人" :prop="`contractDrafts.${index}.acceptorName`" :rules="rules.acceptorName">
|
|
|
|
- <AcceptorSelect
|
|
|
|
- v-model="item.acceptorName"
|
|
|
|
- @change="(...args)=> changeAcceptorName(...args, index)"
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 承兑日期 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="承兑日期" :prop="`contractDrafts.${index}.issueDate`" :rules="rules.issueDate">
|
|
|
|
- <el-date-picker
|
|
|
|
- v-model="item.issueDate"
|
|
|
|
- type="date"
|
|
|
|
- placeholder="选择日期"
|
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
|
- :picker-options="pickerEnd(index)"
|
|
|
|
- :disabled="!item.expectDiscountDate"
|
|
|
|
- @change="inputMoney(index)"
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 服务费 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="服务费" :prop="`contractDrafts.${index}.serviceMoney`" :rules="rules.serviceMoney">
|
|
|
|
- <el-input
|
|
|
|
- v-model="item.serviceMoney"
|
|
|
|
- class="ipwidth"
|
|
|
|
- placeholder="计算得出服务费"
|
|
|
|
- clearable
|
|
|
|
- disabled
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 服务费率 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="服务费率" :prop="`contractDrafts.${index}.serviceRate`" :rules="rules.serviceRate">
|
|
|
|
- <el-input
|
|
|
|
- v-model="item.serviceRate"
|
|
|
|
- class="ipwidth"
|
|
|
|
- placeholder="服务费率"
|
|
|
|
- clearable
|
|
|
|
- disabled
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 出票日期 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="出票日期" :prop="`contractDrafts.${index}.acceptDate`" :rules="rules.acceptDate">
|
|
|
|
- <el-date-picker
|
|
|
|
- v-model="item.acceptDate"
|
|
|
|
- type="date"
|
|
|
|
- placeholder="选择日期"
|
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 最高贷款额度 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="最高贷款额度" :prop="`contractDrafts.${index}.loanLimit`" :rules="rules.loanLimit">
|
|
|
|
- <el-input
|
|
|
|
- v-model="item.loanLimit"
|
|
|
|
- class="ipwidth"
|
|
|
|
- clearable
|
|
|
|
- placeholder="计算得出最高贷款额度"
|
|
|
|
- disabled
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 利率 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="利率" :prop="`contractDrafts.${index}.interestRate`" :rules="rules.interestRate">
|
|
|
|
- <el-input
|
|
|
|
- v-model="item.interestRate"
|
|
|
|
- clearable
|
|
|
|
- class="ipwidth"
|
|
|
|
- placeholder="利率"
|
|
|
|
- disabled
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 到期日期 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="到期日期" :prop="`contractDrafts.${index}.expireDate`" :rules="rules.expireDate">
|
|
|
|
- <el-date-picker
|
|
|
|
- v-model="item.expireDate"
|
|
|
|
- type="date"
|
|
|
|
- placeholder="选择日期"
|
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 利息 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="利息" :prop="`contractDrafts.${index}.interest`" :rules="rules.interest">
|
|
|
|
- <el-input
|
|
|
|
- v-model="item.interest"
|
|
|
|
- class="ipwidth"
|
|
|
|
- placeholder="计算得出利息"
|
|
|
|
- clearable
|
|
|
|
- disabled
|
|
|
|
- />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 利率 -->
|
|
|
|
- <el-col :span="colSpan">
|
|
|
|
- <el-form-item label="附件" :prop="`contractDrafts.${index}.picUrls`" :rules="rules.picUrls">
|
|
|
|
- <Upload v-model="item.picUrls" />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <!-- 删除汇票 -->
|
|
|
|
- <el-col :span="24" style="text-align:right">
|
|
|
|
- <el-button
|
|
|
|
- type="primary"
|
|
|
|
- @click="onDelete(index)"
|
|
|
|
- >删除汇票</el-button>
|
|
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
- <!-- 新增汇票 -->
|
|
|
|
- <div class="commit">
|
|
|
|
- <div class="addnew">
|
|
|
|
- <el-button type="primary" @click.stop="onAdd">新增汇票</el-button>
|
|
|
|
- </div>
|
|
|
|
- <div class="addall">
|
|
|
|
- <el-button
|
|
|
|
- type="warning"
|
|
|
|
- style="width: 180px; height: 45px; font-size: 16px"
|
|
|
|
- @click="onSubmit"
|
|
|
|
- >确认上传
|
|
|
|
- </el-button>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <!-- 汇票编辑 -->
|
|
|
|
+ <BillForm
|
|
|
|
+ v-model="form.contractDrafts"
|
|
|
|
+ />
|
|
|
|
+
|
|
|
|
+ <!-- 新增汇票 -->
|
|
|
|
+ <div class="commit">
|
|
|
|
+ <div class="addnew">
|
|
|
|
+ <el-button type="primary" @click.stop="onAdd">新增汇票</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="addall">
|
|
|
|
+ <el-button
|
|
|
|
+ type="warning"
|
|
|
|
+ style="width: 180px; height: 45px; font-size: 16px"
|
|
|
|
+ @click="onSubmit"
|
|
|
|
+ >确认上传
|
|
|
|
+ </el-button>
|
|
</div>
|
|
</div>
|
|
- </el-form>
|
|
|
|
|
|
+ </div>
|
|
|
|
+
|
|
</el-card>
|
|
</el-card>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
import { contractSubmitApi, contractsPageApi, contractsDetailApi } from '@/api/contracts'
|
|
import { contractSubmitApi, contractsPageApi, contractsDetailApi } from '@/api/contracts'
|
|
-import { maxLoanAmount, serviceCharge, interest } from '@/utils/calc'
|
|
|
|
-import DrawerSelect from '@/components/DrawerSelect/DrawerSelect.vue'
|
|
|
|
-import AcceptorSelect from '@/components/AcceptorSelect/AcceptorSelect.vue'
|
|
|
|
|
|
+import BillForm from '@/components/BillForm/BillForm.vue'
|
|
|
|
+
|
|
export default {
|
|
export default {
|
|
components: {
|
|
components: {
|
|
- DrawerSelect,
|
|
|
|
- AcceptorSelect
|
|
|
|
|
|
+ BillForm
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
- colSpan: 8,
|
|
|
|
contractList: [],
|
|
contractList: [],
|
|
form: {
|
|
form: {
|
|
name: '', // 合同名称
|
|
name: '', // 合同名称
|
|
@@ -276,8 +99,7 @@ export default {
|
|
tradePics: [], // 贸易合同
|
|
tradePics: [], // 贸易合同
|
|
supplierId: 2, // 不知道干啥的
|
|
supplierId: 2, // 不知道干啥的
|
|
/* 汇票的数据 */
|
|
/* 汇票的数据 */
|
|
- contractDrafts: [
|
|
|
|
- {
|
|
|
|
|
|
+ contractDrafts: [{
|
|
name: '', // 汇票名称
|
|
name: '', // 汇票名称
|
|
draftNo: '', // 汇票号码
|
|
draftNo: '', // 汇票号码
|
|
acceptorId: '', // 承兑人id
|
|
acceptorId: '', // 承兑人id
|
|
@@ -296,61 +118,11 @@ export default {
|
|
// limitTime: '', //
|
|
// limitTime: '', //
|
|
// acceptDateTime: '', //
|
|
// acceptDateTime: '', //
|
|
// expectDiscountDateTime: ''//
|
|
// expectDiscountDateTime: ''//
|
|
- }
|
|
|
|
- ]
|
|
|
|
|
|
+ }]
|
|
},
|
|
},
|
|
- rules: {
|
|
|
|
- name: [
|
|
|
|
- { required: true, message: '请输入', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- draftNo: [
|
|
|
|
- { required: true, message: '请输入', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- drawersId: [
|
|
|
|
- { required: true, message: '请输入', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- expectDiscountDate: [
|
|
|
|
- { required: true, message: '请选择', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- money: [
|
|
|
|
- { required: true, message: '请输入', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- acceptorName: [
|
|
|
|
- { required: true, message: '请选择', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- issueDate: [
|
|
|
|
- { required: true, message: '请选择', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- serviceMoney: [
|
|
|
|
- { required: true, message: '请输入', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- serviceRate: [
|
|
|
|
- { required: true, message: '请输入', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- acceptDate: [
|
|
|
|
- { required: true, message: '请选择', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- loanLimit: [
|
|
|
|
- { required: true, message: '请输入', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- interestRate: [
|
|
|
|
- { required: true, message: '请输入', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- expireDate: [
|
|
|
|
- { required: true, message: '请选择', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- interest: [
|
|
|
|
- { required: true, message: '请输入', trigger: 'change' }
|
|
|
|
- ],
|
|
|
|
- picUrls: [
|
|
|
|
- { trigger: ['change', 'input'], validator: this.validatePicUrls }
|
|
|
|
- ]
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
- // this.loadData()
|
|
|
|
-
|
|
|
|
// 编辑获取详情
|
|
// 编辑获取详情
|
|
this.getDetail()
|
|
this.getDetail()
|
|
},
|
|
},
|
|
@@ -371,14 +143,6 @@ export default {
|
|
this.form.contractDrafts = res.data.contractDraft.result
|
|
this.form.contractDrafts = res.data.contractDraft.result
|
|
});
|
|
});
|
|
},
|
|
},
|
|
- loadData() {
|
|
|
|
- contractsPageApi({
|
|
|
|
- pageIndex: 1,
|
|
|
|
- pageSize: 100
|
|
|
|
- }).then((res) => {
|
|
|
|
- this.contractList = res.data.result
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
getContractNo() {
|
|
getContractNo() {
|
|
const temporaryList = this.contractList.filter(
|
|
const temporaryList = this.contractList.filter(
|
|
(item) => item.name === this.form.name
|
|
(item) => item.name === this.form.name
|
|
@@ -408,19 +172,6 @@ export default {
|
|
expireDate: '' // 到期日期
|
|
expireDate: '' // 到期日期
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- addDrawer() {
|
|
|
|
- this.$router.push({
|
|
|
|
- path: '/form/addTicketdrawer'
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
- onDelete(index) {
|
|
|
|
- const contractDraftsLength = this.form.contractDrafts.length
|
|
|
|
- if (contractDraftsLength > 1) {
|
|
|
|
- this.form.contractDrafts.splice(index, 1)
|
|
|
|
- } else {
|
|
|
|
- this.$message.error('默认汇票禁止删除')
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
onSubmit(o) {
|
|
onSubmit(o) {
|
|
this.$refs.form.validate((valid) => {
|
|
this.$refs.form.validate((valid) => {
|
|
if (valid) {
|
|
if (valid) {
|
|
@@ -439,105 +190,13 @@ export default {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
- changeAcceptorName(value, exist, index) {
|
|
|
|
- if (exist) {
|
|
|
|
- const { id, interest, serviceRate } = exist
|
|
|
|
- this.form.contractDrafts[index].acceptorId = id
|
|
|
|
- this.form.contractDrafts[index].interestRate = interest
|
|
|
|
- this.form.contractDrafts[index].serviceRate = serviceRate
|
|
|
|
- this.inputMoney(index)
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- // 计算金额
|
|
|
|
- inputMoney(index) {
|
|
|
|
- this.getloanLimt(index)
|
|
|
|
- this.getSerMoney(index)
|
|
|
|
- this.getInterMoney(index)
|
|
|
|
- },
|
|
|
|
- /* 计算最高贷款额度 */
|
|
|
|
- getloanLimt(index) {
|
|
|
|
- const {
|
|
|
|
- money,
|
|
|
|
- serviceRate,
|
|
|
|
- interestRate,
|
|
|
|
- expectDiscountDate,
|
|
|
|
- issueDate
|
|
|
|
- } = this.form.contractDrafts[index]
|
|
|
|
- this.form.contractDrafts[index].loanLimit = maxLoanAmount(
|
|
|
|
- money,
|
|
|
|
- serviceRate,
|
|
|
|
- interestRate,
|
|
|
|
- expectDiscountDate,
|
|
|
|
- issueDate
|
|
|
|
- )
|
|
|
|
- },
|
|
|
|
- /* 计算服务费 */
|
|
|
|
- getSerMoney(index) {
|
|
|
|
- const {
|
|
|
|
- loanLimit,
|
|
|
|
- serviceRate,
|
|
|
|
- expectDiscountDate,
|
|
|
|
- issueDate
|
|
|
|
- } = this.form.contractDrafts[index]
|
|
|
|
- this.form.contractDrafts[index].serviceMoney = serviceCharge(
|
|
|
|
- loanLimit,
|
|
|
|
- serviceRate,
|
|
|
|
- expectDiscountDate,
|
|
|
|
- issueDate
|
|
|
|
- )
|
|
|
|
- },
|
|
|
|
- /* 利息*/
|
|
|
|
- getInterMoney(index) {
|
|
|
|
- const {
|
|
|
|
- loanLimit,
|
|
|
|
- interestRate,
|
|
|
|
- expectDiscountDate,
|
|
|
|
- issueDate
|
|
|
|
- } = this.form.contractDrafts[index]
|
|
|
|
- this.form.contractDrafts[index].interest = interest(
|
|
|
|
- loanLimit,
|
|
|
|
- interestRate,
|
|
|
|
- expectDiscountDate,
|
|
|
|
- issueDate
|
|
|
|
- )
|
|
|
|
- },
|
|
|
|
onBack() {
|
|
onBack() {
|
|
this.$router.go(-1)
|
|
this.$router.go(-1)
|
|
- },
|
|
|
|
- // 预计贴现日
|
|
|
|
- pickerStart(index) {
|
|
|
|
- const that = this
|
|
|
|
- return {
|
|
|
|
- disabledDate(time) {
|
|
|
|
- if (that.form.contractDrafts[index].issueDate) { // 如果结束时间不为空,则小于结束时间
|
|
|
|
- return new Date(that.form.contractDrafts[index].issueDate).getTime() < time.getTime()
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- // 承兑日期
|
|
|
|
- pickerEnd(index) {
|
|
|
|
- const that = this
|
|
|
|
- return {
|
|
|
|
- disabledDate(time) {
|
|
|
|
- if (that.form.contractDrafts[index].expectDiscountDate) { // 如果开始时间不为空,则结束时间大于开始时间
|
|
|
|
- return new Date(that.form.contractDrafts[index].expectDiscountDate).getTime() > time.getTime()
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- validatePicUrls(rule, value, callback) {
|
|
|
|
- debugger
|
|
|
|
- console.log(Object.keys(value).length, value)
|
|
|
|
- if (value && Object.keys(value).length > 0) {
|
|
|
|
- callback()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- callback('请选择')
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
+
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
.box-card {
|
|
.box-card {
|
|
padding: 20px 10px;
|
|
padding: 20px 10px;
|
|
@@ -549,19 +208,7 @@ export default {
|
|
margin-top: 20px;
|
|
margin-top: 20px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-.form-container {
|
|
|
|
- margin-top: 15px;
|
|
|
|
- .el-input,.el-select {
|
|
|
|
- width: 220px;
|
|
|
|
- text-align: left;
|
|
|
|
- }
|
|
|
|
- .form-container-items {
|
|
|
|
- margin: 20px 0;
|
|
|
|
- border: 1px solid #c0c0c0;
|
|
|
|
- padding: 30px 10px 0 10px;
|
|
|
|
- border-radius: 10px;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
|
|
+
|
|
.commit {
|
|
.commit {
|
|
text-align: center;
|
|
text-align: center;
|
|
.addnew {
|
|
.addnew {
|