|
@@ -16,11 +16,17 @@
|
|
|
class="box-item"
|
|
|
effect="dark"
|
|
|
placement="top-start"
|
|
|
- :content="formOption.formDataCopy.sellCountryName + ' ' + formData.data.sellProvinceName + ' ' + formData.data.sellCityName"
|
|
|
+ :content="formOption.formDataCopy.sellCountryName + ' ' +
|
|
|
+ formOption.formDataCopy.sellProvinceName + ' ' +
|
|
|
+ formOption.formDataCopy.sellCityName + ' ' +
|
|
|
+ formOption.formDataCopy.sellAddress"
|
|
|
>
|
|
|
<span
|
|
|
-
|
|
|
- :style="formOption.formDataCopy.sellCountryName != formData.data.sellCountryName ? 'color:red' : ''">
|
|
|
+ :style="formOption.formDataCopy.sellCountryName != formData.data.sellCountryName ||
|
|
|
+ formOption.formDataCopy.sellProvinceName != formData.data.sellProvinceName ||
|
|
|
+ formOption.formDataCopy.sellCityName != formData.data.sellCityName ||
|
|
|
+ formOption.formDataCopy.sellAddress != formData.data.sellAddress
|
|
|
+ ? 'color:red' : ''">
|
|
|
地址
|
|
|
</span>
|
|
|
</el-tooltip>
|
|
@@ -28,12 +34,14 @@
|
|
|
<el-input v-model="formData.data.sellCountryName" placeholder="请输入国家" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="8">
|
|
|
+ <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-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="8">
|
|
|
+ <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-form-item>
|
|
@@ -49,6 +57,22 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="联系人" prop="sellContactName">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.sellContactName + ' ' +
|
|
|
+ formOption.formDataCopy.sellContactNumber"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.sellContactName != formData.data.sellContactName ||
|
|
|
+ formOption.formDataCopy.sellContactNumber != formData.data.sellContactNumber
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 联系人
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<el-input v-model="formData.data.sellContactName" placeholder="请输入联系人" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -71,6 +95,26 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="地址" prop="countryId">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.buyCountryName + ' ' +
|
|
|
+ formOption.formDataCopy.buyProvinceName + ' ' +
|
|
|
+ formOption.formDataCopy.sellCityName + ' ' +
|
|
|
+ formOption.formDataCopy.buyAddress"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.buyCountryId != formData.data.countryId ||
|
|
|
+ formOption.formDataCopy.buyProvinceId != formData.data.buyProvinceId ||
|
|
|
+ formOption.formDataCopy.buyCountryId != formData.data.buyCountryId ||
|
|
|
+ formOption.formDataCopy.buyAddress != formData.data.buyAddress
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 地址
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<el-select v-model="formData.data.countryId" placeholder="国家" filterable @change="(val) => getCityData(val, '20', true)">
|
|
|
<el-option v-for="item in countryData" :label="formData.data.contractType == '2' ? item.chineseName : item.name" :value="item.id">
|
|
|
</el-option>
|
|
@@ -110,6 +154,22 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="联系人" prop="buyContactName">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.buyContactName + ' ' +
|
|
|
+ formOption.formDataCopy.buyContactNumber"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.buyContactName != formData.data.buyContactName ||
|
|
|
+ formOption.formDataCopy.buyContactNumber != formData.data.buyContactNumber
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 联系人
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<el-autocomplete
|
|
|
v-model="formData.data.buyContactName"
|
|
|
:fetch-suggestions="querySearchPerson"
|
|
@@ -267,6 +327,20 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="4">
|
|
|
<el-form-item label="币种" prop="currency">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.currencyLabel"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.currency != formData.data.currency
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 币种
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<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>
|
|
@@ -274,6 +348,20 @@
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="合同总金额" prop="amount">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.amount"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.amount != formData.data.amount
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 合同总金额
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<el-input v-model="formData.data.amount" placeholder="合同总金额" disabled />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -281,6 +369,20 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="付款方式" prop="paymentMethod">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.paymentMethodName"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.paymentMethod != formData.data.paymentMethod
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 付款方式
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<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>
|
|
@@ -288,6 +390,20 @@
|
|
|
</el-col>
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="预付比例 (%)" prop="advanceRatio">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.advanceRatio"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.advanceRatio != formData.data.advanceRatio
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 预付比例 (%)
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<el-input-number
|
|
|
onmousewheel="return false;"
|
|
|
v-model="formData.data.advanceRatio"
|
|
@@ -301,6 +417,20 @@
|
|
|
</el-col>
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="收款账号" prop="shroffAccountId">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.shroffAccountName"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.shroffAccountId != formData.data.shroffAccountId
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 收款账号
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<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>
|
|
@@ -356,6 +486,20 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="贸易方式" prop="tradeMethods">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.tradeMethodsName"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.tradeMethods != formData.data.tradeMethods
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 贸易方式
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<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>
|
|
@@ -365,6 +509,20 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="运输方式" prop="transportMethod">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.transportMethodName"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.transportMethod != formData.data.transportMethod
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 贸易方式
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<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>
|
|
@@ -372,6 +530,20 @@
|
|
|
</el-col>
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="运输说明" prop="transportRemark">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.transportRemark"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.transportRemark != formData.data.transportRemark
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 运输说明
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<el-input v-model="formData.data.transportRemark" placeholder="请输入运输说明" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -379,6 +551,20 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="14">
|
|
|
<el-form-item label="付款条件" prop="remark">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.remark"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.remark != formData.data.remark
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 付款条件
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<el-input v-model="formData.data.remark" :rows="2" type="textarea" placeholder="请输入付款条件" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -386,6 +572,20 @@
|
|
|
<el-row style="margin-top: 20px; width: 100%">
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="交货期限 (天)" prop="deliveryTime">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.deliveryTime"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.deliveryTime != formData.data.deliveryTime
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 交货期限 (天)
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<el-input-number
|
|
|
onmousewheel="return false;"
|
|
|
v-model="formData.data.deliveryTime"
|
|
@@ -398,6 +598,20 @@
|
|
|
</el-col>
|
|
|
<el-col :span="7">
|
|
|
<el-form-item label="质保期 (天)" prop="warranty">
|
|
|
+ <template #label>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ placement="top-start"
|
|
|
+ :content="formOption.formDataCopy.warranty"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ :style="formOption.formDataCopy.warranty != formData.data.warranty
|
|
|
+ ? 'color:red' : ''">
|
|
|
+ 交货期限 (天)
|
|
|
+ </span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
<el-input-number
|
|
|
onmousewheel="return false;"
|
|
|
v-model="formData.data.warranty"
|
|
@@ -591,6 +805,8 @@ const formConfig = computed(() => {
|
|
|
type: "slot",
|
|
|
slotName: "commodity",
|
|
|
label: "商品信息",
|
|
|
+ isTip:false,
|
|
|
+ tipHtml:'1'
|
|
|
},
|
|
|
{
|
|
|
type: "slot",
|
|
@@ -614,6 +830,18 @@ const formConfig = computed(() => {
|
|
|
},
|
|
|
];
|
|
|
});
|
|
|
+
|
|
|
+const getDictName = (dictList, value) => {
|
|
|
+ let name = "";
|
|
|
+ dictList.forEach((item) => {
|
|
|
+ if (item.value == value) {
|
|
|
+ name = item.label;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ console.log(value)
|
|
|
+ return name;
|
|
|
+};
|
|
|
+
|
|
|
const rules = ref({
|
|
|
contractType: [{ required: true, message: "请选择合同类型", trigger: "change" }],
|
|
|
contractTemplateId: [{ required: true, message: "请选择合同模板", trigger: "change" }],
|
|
@@ -827,6 +1055,37 @@ const getDecisionAids = () => {
|
|
|
if (formData.data.contractProductList && formData.data.contractProductList.length > 0) {
|
|
|
data.productIdList = formData.data.contractProductList.map((item) => item.productId);
|
|
|
}
|
|
|
+ proxy.post("/contract/detail", {
|
|
|
+ id:formData.data.oldContractId
|
|
|
+ }).then((res) => {
|
|
|
+ formOption.formDataCopy = res;
|
|
|
+ //比对formData.data.contractProductList和res.contractProductList 这两个数组是否相同
|
|
|
+ if(JSON.stringify(formData.data.contractProductList) != JSON.stringify(res.contractProductList)) {
|
|
|
+ formConfig.value.push({
|
|
|
+ type: "input",
|
|
|
+ slotName: "shipment",
|
|
|
+ label: "出货11111计划",
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ formOption.formDataCopy.transportMethodName = shippingMethod.value.find((item) => {
|
|
|
+ return item.value === res.transportMethod;
|
|
|
+ }).label;
|
|
|
+ formOption.formDataCopy.tradeMethodsName = tradeMethods.value.find((item) => {
|
|
|
+ return item.value === res.tradeMethods;
|
|
|
+ }).label;
|
|
|
+ formOption.formDataCopy.shroffAccountName = accountList.value.find((item) => {
|
|
|
+ return item.value === res.shroffAccountId;
|
|
|
+ }).label;
|
|
|
+ formOption.formDataCopy.paymentMethodName = fundsPaymentMethod.value.find((item) => {
|
|
|
+ return item.value === res.paymentMethod;
|
|
|
+ }).label;
|
|
|
+ formOption.formDataCopy.currencyLabel = accountCurrency.value.find((item) => {
|
|
|
+ return item.value === res.currency;
|
|
|
+ }).label;
|
|
|
+ console.log(formOption.formDataCopy.currencyLabel)
|
|
|
+ })
|
|
|
proxy.post("/contract/decisionAid", data).then((res) => {
|
|
|
if (res.lastContractList && res.lastContractList.length > 0) {
|
|
|
auxiliaryData.value[0].data = res.lastContractList.map((item) => {
|
|
@@ -1315,8 +1574,6 @@ onMounted(() => {
|
|
|
};
|
|
|
});
|
|
|
}
|
|
|
- formOption.formDataCopy = {...formData.data}
|
|
|
- console.log(formOption.formDataCopy,123123)
|
|
|
});
|
|
|
} else if (props.queryData.contractId) {
|
|
|
proxy.post("/contract/detail", { id: props.queryData.contractId }).then((res) => {
|
|
@@ -1372,8 +1629,6 @@ onMounted(() => {
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
- formOption.formDataCopy = {...formData.data}
|
|
|
- console.log(formOption.formDataCopy,123123)
|
|
|
}
|
|
|
|
|
|
});
|