|
@@ -1,53 +1,29 @@
|
|
|
<template>
|
|
|
<div style="width: 100%; padding: 0px 15px">
|
|
|
- <byForm
|
|
|
- :formConfig="formConfig"
|
|
|
- :formOption="formOption"
|
|
|
- v-model="formData.data"
|
|
|
- :rules="rules"
|
|
|
- ref="submit"
|
|
|
- >
|
|
|
+ <byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="submit">
|
|
|
<template #seller>
|
|
|
<div style="width: 100%">
|
|
|
<el-form-item prop="sellCorporationId">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.sellCorporationId"
|
|
|
- style="width: 100%"
|
|
|
- disabled
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in corporationList"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
+ <el-select v-model="formData.data.sellCorporationId" style="width: 100%" disabled>
|
|
|
+ <el-option v-for="item in corporationList" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="地址" prop="sellCountryName">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.sellCountryName"
|
|
|
- placeholder="请输入国家"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.sellCountryName" placeholder="请输入国家" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1"></el-col>
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label=" " prop="sellProvinceName">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.sellProvinceName"
|
|
|
- placeholder="请输入省/州"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.sellProvinceName" placeholder="请输入省/州" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1"></el-col>
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label=" " prop="sellCityName">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.sellCityName"
|
|
|
- placeholder="请输入城市"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.sellCityName" placeholder="请输入城市" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -62,19 +38,13 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="联系人" prop="sellContactName">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.sellContactName"
|
|
|
- placeholder="请输入联系人"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.sellContactName" placeholder="请输入联系人" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1"></el-col>
|
|
|
<el-col :span="15">
|
|
|
<el-form-item label=" " prop="sellContactNumber">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.sellContactNumber"
|
|
|
- placeholder="请输入联系人电话"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.sellContactNumber" placeholder="请输入联系人电话" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -84,67 +54,39 @@
|
|
|
<div style="width: 100%">
|
|
|
<div style="width: 100%">
|
|
|
<el-form-item prop="buyCorporationId">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.buyCorporationId"
|
|
|
- filterable
|
|
|
- style="width: 100%"
|
|
|
- @change="changeCustomer"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in customerList"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
+ <el-select v-model="formData.data.buyCorporationId" filterable style="width: 100%" @change="changeCustomer">
|
|
|
+ <el-option v-for="item in customerList" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="地址" prop="countryId">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.countryId"
|
|
|
- placeholder="国家"
|
|
|
- filterable
|
|
|
- @change="(val) => getCityData(val, '20', true)"
|
|
|
- :no-match-text="'无数据,请联系管理员添加'">
|
|
|
- <el-option v-for="item in countryData" :key="item.id" :label="item.chineseName + '(' + item.name + ')'" :value="item.id"> </el-option>
|
|
|
+ <el-select v-model="formData.data.countryId" placeholder="国家" filterable @change="(val) => getCityData(val, '20', true)"
|
|
|
+ :no-match-text="'无数据,请联系管理员添加'">
|
|
|
+ <el-option v-for="item in countryData" :key="item.id" :label="item.chineseName + '(' + item.name + ')'" :value="item.id">
|
|
|
+ </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1"></el-col>
|
|
|
<el-col :span="5">
|
|
|
<el-form-item label=" " prop="provinceName">
|
|
|
- <selectCity
|
|
|
- placeholder="省/洲"
|
|
|
- @change="(val) => getCityData(val, '30', true)"
|
|
|
- addressId="provinceId"
|
|
|
- addressName="provinceName"
|
|
|
- v-model="formData.data"
|
|
|
- :data="provinceData"
|
|
|
- >
|
|
|
+ <selectCity placeholder="省/洲" @change="(val) => getCityData(val, '30', true)" addressId="provinceId" addressName="provinceName"
|
|
|
+ v-model="formData.data" :data="provinceData">
|
|
|
</selectCity>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1"></el-col>
|
|
|
<el-col :span="5">
|
|
|
<el-form-item label=" " prop="cityName">
|
|
|
- <selectCity
|
|
|
- placeholder="城市"
|
|
|
- addressId="cityId"
|
|
|
- addressName="cityName"
|
|
|
- v-model="formData.data"
|
|
|
- :data="cityData"
|
|
|
- >
|
|
|
+ <selectCity placeholder="城市" addressId="cityId" addressName="cityName" v-model="formData.data" :data="cityData">
|
|
|
</selectCity>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1"></el-col>
|
|
|
<el-col :span="5">
|
|
|
<el-form-item label=" " prop="buyPostalCode">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.buyPostalCode"
|
|
|
- placeholder="请输入邮编"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.buyPostalCode" placeholder="请输入邮编" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -159,24 +101,15 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="联系人" prop="buyContactName">
|
|
|
- <el-autocomplete
|
|
|
- v-model="formData.data.buyContactName"
|
|
|
- :fetch-suggestions="querySearchPerson"
|
|
|
- clearable
|
|
|
- class="inline-input w-50"
|
|
|
- placeholder="请输入联系人"
|
|
|
- @select="handlePerson"
|
|
|
- >
|
|
|
+ <el-autocomplete v-model="formData.data.buyContactName" :fetch-suggestions="querySearchPerson" clearable class="inline-input w-50"
|
|
|
+ placeholder="请输入联系人" @select="handlePerson">
|
|
|
</el-autocomplete>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1"></el-col>
|
|
|
<el-col :span="15">
|
|
|
<el-form-item label=" " prop="buyContactNumber">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.buyContactNumber"
|
|
|
- placeholder="请输入联系人电话"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.buyContactNumber" placeholder="请输入联系人电话" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -186,18 +119,11 @@
|
|
|
<template #commodity>
|
|
|
<div style="width: 100%">
|
|
|
<el-button @click="openProduct = true">添加商品</el-button>
|
|
|
- <el-table
|
|
|
- :data="formData.data.contractProductList"
|
|
|
- style="width: 100%; margin-top: 16px"
|
|
|
- >
|
|
|
+ <el-table :data="formData.data.contractProductList" style="width: 100%; margin-top: 16px">
|
|
|
<el-table-column label="商品图片" width="80">
|
|
|
<template #default="{ row }">
|
|
|
<div v-if="row.fileUrl">
|
|
|
- <img
|
|
|
- :src="row.fileUrl"
|
|
|
- class="pic"
|
|
|
- @click="onPicture(row.fileUrl)"
|
|
|
- />
|
|
|
+ <img :src="row.fileUrl" class="pic" @click="onPicture(row.fileUrl)" />
|
|
|
</div>
|
|
|
<div v-else></div>
|
|
|
</template>
|
|
@@ -207,15 +133,8 @@
|
|
|
<el-table-column label="商品英文名" min-width="200">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item
|
|
|
- :prop="'contractProductList.' + $index + '.productName'"
|
|
|
- :rules="rules.productName"
|
|
|
- :inline-message="true"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="row.productName"
|
|
|
- placeholder="请输入商品英文名"
|
|
|
- />
|
|
|
+ <el-form-item :prop="'contractProductList.' + $index + '.productName'" :rules="rules.productName" :inline-message="true">
|
|
|
+ <el-input v-model="row.productName" placeholder="请输入商品英文名" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -223,40 +142,19 @@
|
|
|
<el-table-column label="规格型号" width="180">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item
|
|
|
- :prop="'contractProductList.' + $index + '.productModel'"
|
|
|
- :inline-message="true"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="row.productModel"
|
|
|
- placeholder="请输入规格型号"
|
|
|
- />
|
|
|
+ <el-form-item :prop="'contractProductList.' + $index + '.productModel'" :inline-message="true">
|
|
|
+ <el-input v-model="row.productModel" placeholder="请输入规格型号" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="unit"
|
|
|
- label="单位"
|
|
|
- width="100"
|
|
|
- :formatter="(row) => dictValueLabel(row.unit, productUnit)"
|
|
|
- />
|
|
|
+ <el-table-column prop="unit" label="单位" width="100" :formatter="(row) => dictValueLabel(row.unit, productUnit)" />
|
|
|
<el-table-column label="数量" width="160">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item
|
|
|
- :prop="'contractProductList.' + $index + '.quantity'"
|
|
|
- :rules="rules.quantity"
|
|
|
- :inline-message="true"
|
|
|
- >
|
|
|
- <el-input-number
|
|
|
- onmousewheel="return false;"
|
|
|
- v-model="row.quantity"
|
|
|
- placeholder="请输入数量"
|
|
|
- style="width: 100%"
|
|
|
- :controls="false"
|
|
|
- :min="0"
|
|
|
- @change="
|
|
|
+ <el-form-item :prop="'contractProductList.' + $index + '.quantity'" :rules="rules.quantity" :inline-message="true">
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="row.quantity" placeholder="请输入数量" style="width: 100%" :controls="false"
|
|
|
+ :min="0" @change="
|
|
|
() => {
|
|
|
return calculationAmount(
|
|
|
'contractProductList',
|
|
@@ -264,8 +162,7 @@
|
|
|
'quantity'
|
|
|
);
|
|
|
}
|
|
|
- "
|
|
|
- />
|
|
|
+ " />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -273,19 +170,9 @@
|
|
|
<el-table-column label="单价" width="160">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item
|
|
|
- :prop="'contractProductList.' + $index + '.price'"
|
|
|
- :rules="rules.price"
|
|
|
- :inline-message="true"
|
|
|
- >
|
|
|
- <el-input-number
|
|
|
- onmousewheel="return false;"
|
|
|
- v-model="row.price"
|
|
|
- placeholder="请输入单价"
|
|
|
- style="width: 100%"
|
|
|
- :controls="false"
|
|
|
- :min="0"
|
|
|
- @change="
|
|
|
+ <el-form-item :prop="'contractProductList.' + $index + '.price'" :rules="rules.price" :inline-message="true">
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="row.price" placeholder="请输入单价" style="width: 100%" :controls="false"
|
|
|
+ :min="0" @change="
|
|
|
() => {
|
|
|
return calculationAmount(
|
|
|
'contractProductList',
|
|
@@ -293,32 +180,16 @@
|
|
|
'price'
|
|
|
);
|
|
|
}
|
|
|
- "
|
|
|
- />
|
|
|
+ " />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="amount" label="金额" width="100" />
|
|
|
- <el-table-column
|
|
|
- align="center"
|
|
|
- label="操作"
|
|
|
- width="120"
|
|
|
- fixed="right"
|
|
|
- >
|
|
|
+ <el-table-column align="center" label="操作" width="120" fixed="right">
|
|
|
<template #default="{ row, $index }">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- link
|
|
|
- @click="handleHandover(row, $index)"
|
|
|
- >交接单</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- link
|
|
|
- @click="handleRemove($index, row)"
|
|
|
- >删除</el-button
|
|
|
- >
|
|
|
+ <el-button type="primary" link @click="handleHandover(row, $index)">交接单</el-button>
|
|
|
+ <el-button type="primary" link @click="handleRemove($index, row)">删除</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -327,25 +198,13 @@
|
|
|
<template #otherCharge>
|
|
|
<div style="width: 100%">
|
|
|
<el-button type="primary" @click="clickAdd()">添加行</el-button>
|
|
|
- <el-table
|
|
|
- :data="formData.data.contractProjectList"
|
|
|
- style="width: 100%; margin-top: 16px"
|
|
|
- >
|
|
|
+ <el-table :data="formData.data.contractProjectList" style="width: 100%; margin-top: 16px">
|
|
|
<el-table-column label="收费项目" width="220">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item
|
|
|
- :prop="'contractProjectList.' + $index + '.payName'"
|
|
|
- :rules="rules.payName"
|
|
|
- :inline-message="true"
|
|
|
- >
|
|
|
- <el-autocomplete
|
|
|
- v-model="row.payName"
|
|
|
- :fetch-suggestions="querySearch"
|
|
|
- clearable
|
|
|
- class="inline-input w-50"
|
|
|
- placeholder="请输入收费项目"
|
|
|
- />
|
|
|
+ <el-form-item :prop="'contractProjectList.' + $index + '.payName'" :rules="rules.payName" :inline-message="true">
|
|
|
+ <el-autocomplete v-model="row.payName" :fetch-suggestions="querySearch" clearable class="inline-input w-50"
|
|
|
+ placeholder="请输入收费项目" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -353,19 +212,9 @@
|
|
|
<el-table-column label="金额" width="180">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item
|
|
|
- :prop="'contractProjectList.' + $index + '.amount'"
|
|
|
- :rules="rules.amount"
|
|
|
- :inline-message="true"
|
|
|
- >
|
|
|
- <el-input-number
|
|
|
- onmousewheel="return false;"
|
|
|
- v-model="row.amount"
|
|
|
- placeholder="请输入金额"
|
|
|
- style="width: 100%"
|
|
|
- :controls="false"
|
|
|
- :min="0"
|
|
|
- @change="
|
|
|
+ <el-form-item :prop="'contractProjectList.' + $index + '.amount'" :rules="rules.amount" :inline-message="true">
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="row.amount" placeholder="请输入金额" style="width: 100%" :controls="false"
|
|
|
+ :min="0" @change="
|
|
|
() => {
|
|
|
return totalAmount(
|
|
|
'contractProjectList',
|
|
@@ -373,8 +222,7 @@
|
|
|
'amount'
|
|
|
);
|
|
|
}
|
|
|
- "
|
|
|
- />
|
|
|
+ " />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -382,24 +230,15 @@
|
|
|
<el-table-column label="备注">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item
|
|
|
- :prop="'contractProjectList.' + $index + '.remark'"
|
|
|
- >
|
|
|
+ <el-form-item :prop="'contractProjectList.' + $index + '.remark'">
|
|
|
<el-input v-model="row.remark" placeholder="请输入备注" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column
|
|
|
- align="center"
|
|
|
- label="操作"
|
|
|
- width="80"
|
|
|
- fixed="right"
|
|
|
- >
|
|
|
+ <el-table-column align="center" label="操作" width="80" fixed="right">
|
|
|
<template #default="{ row, $index }">
|
|
|
- <el-button type="primary" link @click="handleDelete($index)"
|
|
|
- >删除</el-button
|
|
|
- >
|
|
|
+ <el-button type="primary" link @click="handleDelete($index)">删除</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -410,78 +249,38 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="4">
|
|
|
<el-form-item label="币种" prop="currency">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.currency"
|
|
|
- placeholder="请选择币种"
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in accountCurrency"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
+ <el-select v-model="formData.data.currency" placeholder="请选择币种" style="width: 100%">
|
|
|
+ <el-option v-for="item in accountCurrency" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1"></el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="合同总金额" prop="amount">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.amount"
|
|
|
- placeholder="合同总金额"
|
|
|
- disabled
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.amount" placeholder="合同总金额" disabled />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="付款方式" prop="paymentMethod">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.paymentMethod"
|
|
|
- placeholder="请选择付款方式"
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in fundsPaymentMethod"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
+ <el-select v-model="formData.data.paymentMethod" placeholder="请选择付款方式" style="width: 100%">
|
|
|
+ <el-option v-for="item in fundsPaymentMethod" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1"></el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="预付比例 (%)" prop="advanceRatio">
|
|
|
- <el-input-number
|
|
|
- onmousewheel="return false;"
|
|
|
- v-model="formData.data.advanceRatio"
|
|
|
- placeholder="请输入预付比例"
|
|
|
- style="width: 100%"
|
|
|
- :precision="2"
|
|
|
- :controls="false"
|
|
|
- :min="0"
|
|
|
- :max="100"
|
|
|
- />
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="formData.data.advanceRatio" placeholder="请输入预付比例" style="width: 100%"
|
|
|
+ :precision="2" :controls="false" :min="0" :max="100" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1"></el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="收款账号" prop="shroffAccountId">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.shroffAccountId"
|
|
|
- placeholder="请选择收款账号"
|
|
|
- style="width: 100%"
|
|
|
- @change="changeShroffAccount"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in accountList"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
+ <el-select v-model="formData.data.shroffAccountId" placeholder="请选择收款账号" style="width: 100%" @change="changeShroffAccount">
|
|
|
+ <el-option v-for="item in accountList" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -500,62 +299,29 @@
|
|
|
<el-collapse-item title="" name="1">
|
|
|
<el-row style="width: 100%">
|
|
|
<el-col :span="9">
|
|
|
- <el-form-item
|
|
|
- label="Beneficiary Name"
|
|
|
- prop="beneficiaryName"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="formData.data.beneficiaryName"
|
|
|
- placeholder="请输入Beneficiary Name"
|
|
|
- />
|
|
|
+ <el-form-item label="Beneficiary Name" prop="beneficiaryName">
|
|
|
+ <el-input v-model="formData.data.beneficiaryName" placeholder="请输入Beneficiary Name" />
|
|
|
</el-form-item>
|
|
|
<div style="height: 20px"></div>
|
|
|
- <el-form-item
|
|
|
- label="Beneficiary Bank"
|
|
|
- prop="beneficiaryBank"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="formData.data.beneficiaryBank"
|
|
|
- placeholder="请输入Beneficiary Bank"
|
|
|
- />
|
|
|
+ <el-form-item label="Beneficiary Bank" prop="beneficiaryBank">
|
|
|
+ <el-input v-model="formData.data.beneficiaryBank" placeholder="请输入Beneficiary Bank" />
|
|
|
</el-form-item>
|
|
|
<div style="height: 20px"></div>
|
|
|
- <el-form-item
|
|
|
- label="Beneficiary Bank Address"
|
|
|
- prop="beneficiaryBankAddress"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="formData.data.beneficiaryBankAddress"
|
|
|
- placeholder="请输入Beneficiary Bank Address"
|
|
|
- />
|
|
|
+ <el-form-item label="Beneficiary Bank Address" prop="beneficiaryBankAddress">
|
|
|
+ <el-input v-model="formData.data.beneficiaryBankAddress" placeholder="请输入Beneficiary Bank Address" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="9">
|
|
|
- <el-form-item
|
|
|
- label="Beneficiary Account Number"
|
|
|
- prop="beneficiaryAccountNumber"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="formData.data.beneficiaryAccountNumber"
|
|
|
- placeholder="请输入Beneficiary Account Number"
|
|
|
- />
|
|
|
+ <el-form-item label="Beneficiary Account Number" prop="beneficiaryAccountNumber">
|
|
|
+ <el-input v-model="formData.data.beneficiaryAccountNumber" placeholder="请输入Beneficiary Account Number" />
|
|
|
</el-form-item>
|
|
|
<div style="height: 20px"></div>
|
|
|
<el-form-item label="Swift Code" prop="swiftCode">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.swiftCode"
|
|
|
- placeholder="请输入Swift Code"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.swiftCode" placeholder="请输入Swift Code" />
|
|
|
</el-form-item>
|
|
|
<div style="height: 20px"></div>
|
|
|
- <el-form-item
|
|
|
- label="Beneficiary Address"
|
|
|
- prop="beneficiaryAddress"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="formData.data.beneficiaryAddress"
|
|
|
- placeholder="请输入Beneficiary Address"
|
|
|
- />
|
|
|
+ <el-form-item label="Beneficiary Address" prop="beneficiaryAddress">
|
|
|
+ <el-input v-model="formData.data.beneficiaryAddress" placeholder="请输入Beneficiary Address" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -569,17 +335,8 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="贸易方式" prop="tradeMethods">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.tradeMethods"
|
|
|
- placeholder="请选择贸易方式"
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in tradeMethods"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
+ <el-select v-model="formData.data.tradeMethods" placeholder="请选择贸易方式" style="width: 100%">
|
|
|
+ <el-option v-for="item in tradeMethods" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -587,68 +344,37 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="运输方式" prop="transportMethod">
|
|
|
- <el-select
|
|
|
- v-model="formData.data.transportMethod"
|
|
|
- placeholder="请选择运输方式"
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in shippingMethod"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
+ <el-select v-model="formData.data.transportMethod" placeholder="请选择运输方式" style="width: 100%">
|
|
|
+ <el-option v-for="item in shippingMethod" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1"></el-col>
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="运输说明" prop="transportRemark">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.transportRemark"
|
|
|
- placeholder="请输入运输说明"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.transportRemark" placeholder="请输入运输说明" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="15">
|
|
|
<el-form-item label="付款条件" prop="remark">
|
|
|
- <el-input
|
|
|
- v-model="formData.data.remark"
|
|
|
- :rows="2"
|
|
|
- type="textarea"
|
|
|
- placeholder="请输入付款条件"
|
|
|
- />
|
|
|
+ <el-input v-model="formData.data.remark" :rows="2" type="textarea" placeholder="请输入付款条件" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="交货期限 (天)" prop="deliveryTime">
|
|
|
- <el-input-number
|
|
|
- onmousewheel="return false;"
|
|
|
- v-model="formData.data.deliveryTime"
|
|
|
- placeholder="请输入交货期限"
|
|
|
- style="width: 100%"
|
|
|
- :precision="0"
|
|
|
- :controls="false"
|
|
|
- :min="0"
|
|
|
- />
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="formData.data.deliveryTime" placeholder="请输入交货期限" style="width: 100%"
|
|
|
+ :precision="0" :controls="false" :min="0" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1"></el-col>
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="质保期 (天)" prop="warranty">
|
|
|
- <el-input-number
|
|
|
- onmousewheel="return false;"
|
|
|
- v-model="formData.data.warranty"
|
|
|
- placeholder="请输入质保期"
|
|
|
- style="width: 100%"
|
|
|
- :precision="0"
|
|
|
- :controls="false"
|
|
|
- :min="0"
|
|
|
- />
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="formData.data.warranty" placeholder="请输入质保期" style="width: 100%" :precision="0"
|
|
|
+ :controls="false" :min="0" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -656,26 +382,14 @@
|
|
|
</template>
|
|
|
<template #shipment>
|
|
|
<div style="width: 100%">
|
|
|
- <el-table
|
|
|
- :data="formData.data.contractShipmentList"
|
|
|
- style="width: 100%; margin-top: 16px"
|
|
|
- >
|
|
|
+ <el-table :data="formData.data.contractShipmentList" style="width: 100%; margin-top: 16px">
|
|
|
<el-table-column prop="code" label="商品编码" width="120" />
|
|
|
<el-table-column prop="productName" label="商品名称" />
|
|
|
<el-table-column label="出货日期" width="220">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item
|
|
|
- :prop="'contractShipmentList.' + $index + '.shipmentTime'"
|
|
|
- :rules="rules.shipmentTime"
|
|
|
- :inline-message="true"
|
|
|
- >
|
|
|
- <el-date-picker
|
|
|
- v-model="row.shipmentTime"
|
|
|
- type="date"
|
|
|
- placeholder="请选择出货日期"
|
|
|
- value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
- />
|
|
|
+ <el-form-item :prop="'contractShipmentList.' + $index + '.shipmentTime'" :rules="rules.shipmentTime" :inline-message="true">
|
|
|
+ <el-date-picker v-model="row.shipmentTime" type="date" placeholder="请选择出货日期" value-format="YYYY-MM-DD HH:mm:ss" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -683,18 +397,9 @@
|
|
|
<el-table-column label="数量" width="160">
|
|
|
<template #default="{ row, $index }">
|
|
|
<div style="width: 100%">
|
|
|
- <el-form-item
|
|
|
- :prop="'contractShipmentList.' + $index + '.quantity'"
|
|
|
- :inline-message="true"
|
|
|
- >
|
|
|
- <el-input-number
|
|
|
- onmousewheel="return false;"
|
|
|
- v-model="row.quantity"
|
|
|
- placeholder="请输入数量"
|
|
|
- style="width: 100%"
|
|
|
- :controls="false"
|
|
|
- :min="0"
|
|
|
- @change="
|
|
|
+ <el-form-item :prop="'contractShipmentList.' + $index + '.quantity'" :inline-message="true">
|
|
|
+ <el-input-number onmousewheel="return false;" v-model="row.quantity" placeholder="请输入数量" style="width: 100%" :controls="false"
|
|
|
+ :min="0" @change="
|
|
|
() => {
|
|
|
return calculationAmount(
|
|
|
'contractShipmentList',
|
|
@@ -702,25 +407,15 @@
|
|
|
'quantity'
|
|
|
);
|
|
|
}
|
|
|
- "
|
|
|
- />
|
|
|
+ " />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column
|
|
|
- align="center"
|
|
|
- label="操作"
|
|
|
- width="120"
|
|
|
- fixed="right"
|
|
|
- >
|
|
|
+ <el-table-column align="center" label="操作" width="120" fixed="right">
|
|
|
<template #default="{ row, $index }">
|
|
|
- <el-button type="primary" link @click="clickSplit(row)"
|
|
|
- >拆分</el-button
|
|
|
- >
|
|
|
- <el-button type="primary" link @click="clickDelete($index)"
|
|
|
- >删除</el-button
|
|
|
- >
|
|
|
+ <el-button type="primary" link @click="clickSplit(row)">拆分</el-button>
|
|
|
+ <el-button type="primary" link @click="clickDelete($index)">删除</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -728,50 +423,21 @@
|
|
|
</template>
|
|
|
</byForm>
|
|
|
|
|
|
- <el-dialog
|
|
|
- v-if="openProduct"
|
|
|
- v-model="openProduct"
|
|
|
- title="选择商品"
|
|
|
- width="70%"
|
|
|
- append-to-body
|
|
|
- >
|
|
|
- <SelectGoods
|
|
|
- :selectList="acquireSelectList()"
|
|
|
- @cancel="openProduct = false"
|
|
|
- @pushGoods="pushGoods"
|
|
|
- ></SelectGoods>
|
|
|
+ <el-dialog v-if="openProduct" v-model="openProduct" title="选择商品" width="70%" append-to-body>
|
|
|
+ <SelectGoods :selectList="acquireSelectList()" @cancel="openProduct = false" @pushGoods="pushGoods"></SelectGoods>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog
|
|
|
- title="交接单"
|
|
|
- v-if="openHandover"
|
|
|
- v-model="openHandover"
|
|
|
- width="800"
|
|
|
- >
|
|
|
- <byForm
|
|
|
- :formConfig="formHandoverConfig"
|
|
|
- :formOption="formOption"
|
|
|
- v-model="productRow.data"
|
|
|
- >
|
|
|
+ <el-dialog title="交接单" v-if="openHandover" v-model="openHandover" width="800">
|
|
|
+ <byForm :formConfig="formHandoverConfig" :formOption="formOption" v-model="productRow.data">
|
|
|
<template #remark>
|
|
|
<div style="width: 100%">
|
|
|
- <Editor
|
|
|
- :value="productRow.data.remark"
|
|
|
- @updateValue="updateContent"
|
|
|
- />
|
|
|
+ <Editor :value="productRow.data.remark" @updateValue="updateContent" />
|
|
|
</div>
|
|
|
</template>
|
|
|
<template #file>
|
|
|
<div style="width: 100%">
|
|
|
- <el-upload
|
|
|
- v-model:fileList="fileList"
|
|
|
- action="https://winfaster.obs.cn-south-1.myhuaweicloud.com"
|
|
|
- :data="uploadData"
|
|
|
- multiple
|
|
|
- :before-upload="uploadFile"
|
|
|
- :on-success="handleSuccess"
|
|
|
- :on-preview="onPreviewFile"
|
|
|
- >
|
|
|
+ <el-upload v-model:fileList="fileList" action="https://winfaster.obs.cn-south-1.myhuaweicloud.com" :data="uploadData" multiple
|
|
|
+ :before-upload="uploadFile" :on-success="handleSuccess" :on-preview="onPreviewFile">
|
|
|
<el-button>选择</el-button>
|
|
|
</el-upload>
|
|
|
</div>
|
|
@@ -779,9 +445,7 @@
|
|
|
</byForm>
|
|
|
<template #footer>
|
|
|
<el-button @click="openHandover = false" size="large">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submitHandoverForm()" size="large"
|
|
|
- >确 定</el-button
|
|
|
- >
|
|
|
+ <el-button type="primary" @click="submitHandoverForm()" size="large">确 定</el-button>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
@@ -1881,9 +1545,9 @@ onMounted(() => {
|
|
|
proxy
|
|
|
.post("/contract/detail", { id: route.query.contractId })
|
|
|
.then((res) => {
|
|
|
- if (res && res.dataJson) {
|
|
|
- res = { ...res, ...JSON.parse(res.dataJson) };
|
|
|
- }
|
|
|
+ // if (res && res.dataJson) {
|
|
|
+ // res = { ...res, ...JSON.parse(res.dataJson) };
|
|
|
+ // }
|
|
|
res.countryId = res.buyCountryId;
|
|
|
res.provinceId = res.buyProvinceId;
|
|
|
res.cityId = res.buyCityId;
|
|
@@ -1902,6 +1566,12 @@ onMounted(() => {
|
|
|
formData.data.contractProductList &&
|
|
|
formData.data.contractProductList.length > 0
|
|
|
) {
|
|
|
+ formData.data.contractProductList =
|
|
|
+ formData.data.contractProductList.map((x) => ({
|
|
|
+ ...x,
|
|
|
+ code: x.productCode,
|
|
|
+ name: x.productCnName,
|
|
|
+ }));
|
|
|
let productIds = formData.data.contractProductList.map(
|
|
|
(item) => item.productId
|
|
|
);
|
|
@@ -1944,6 +1614,17 @@ onMounted(() => {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+ if (
|
|
|
+ formData.data.contractShipmentList &&
|
|
|
+ formData.data.contractShipmentList.length > 0
|
|
|
+ ) {
|
|
|
+ formData.data.contractShipmentList =
|
|
|
+ formData.data.contractShipmentList.map((x) => ({
|
|
|
+ ...x,
|
|
|
+ code: x.productCode,
|
|
|
+ productName: x.productCnName,
|
|
|
+ }));
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
});
|