|
@@ -1,33 +1,28 @@
|
|
|
<template>
|
|
|
<div class="form">
|
|
|
<van-tabs v-model:active="active">
|
|
|
- <van-tab :title="proxy.t('contract.transactionInformation')" />
|
|
|
- <van-tab :title="proxy.t('contract.commodityInformation')" />
|
|
|
- <van-tab :title="proxy.t('contract.otherCharges')" />
|
|
|
- <van-tab :title="proxy.t('contract.deliveryInformation')" />
|
|
|
- <van-tab :title="proxy.t('contract.shipmentPlan')" />
|
|
|
+ <van-tab :title="proxy.t('priceSheet.transactionInformation')" />
|
|
|
+ <van-tab :title="proxy.t('priceSheet.quotationDetails')" />
|
|
|
+ <van-tab :title="proxy.t('priceSheet.otherCharges')" />
|
|
|
+ <van-tab :title="proxy.t('priceSheet.otherInformation')" />
|
|
|
<div class="common-process-card" v-show="active == 0">
|
|
|
- <div class="common-title">{{ proxy.t("contract.transactionInformation") }}</div>
|
|
|
+ <div class="common-title">{{ proxy.t("priceSheet.transactionInformation") }}</div>
|
|
|
<testForm v-model="formData.data" :formOption="formOption" :formConfig="formConfig" :rules="rules" ref="formDom1"> </testForm>
|
|
|
</div>
|
|
|
<div class="common-process-card" v-show="active == 1">
|
|
|
- <div class="common-title">{{ proxy.t("contract.commodityInformation") }}</div>
|
|
|
+ <div class="common-title">{{ proxy.t("priceSheet.quotationDetails") }}</div>
|
|
|
<testForm v-model="formData.data" :formOption="formGoodsOption" :formConfig="formEmptyConfig" :rules="rules" ref="formDom2"> </testForm>
|
|
|
<testForm v-model="formData.data" :formOption="formOption" :formConfig="formAmountProductConfig" :rules="rules" ref="formDom3"> </testForm>
|
|
|
</div>
|
|
|
<div class="common-process-card" v-show="active == 2">
|
|
|
- <div class="common-title">{{ proxy.t("contract.otherCharges") }}</div>
|
|
|
+ <div class="common-title">{{ proxy.t("priceSheet.otherCharges") }}</div>
|
|
|
<testForm v-model="formData.data" :formOption="formProjectOption" :formConfig="formEmptyConfig" :rules="rules" ref="formDom4"> </testForm>
|
|
|
<testForm v-model="formData.data" :formOption="formOption" :formConfig="formAmountProjectConfig" :rules="rules" ref="formDom5"> </testForm>
|
|
|
</div>
|
|
|
<div class="common-process-card" v-show="active == 3">
|
|
|
- <div class="common-title">{{ proxy.t("contract.deliveryInformation") }}</div>
|
|
|
+ <div class="common-title">{{ proxy.t("priceSheet.otherInformation") }}</div>
|
|
|
<testForm v-model="formData.data" :formOption="formOption" :formConfig="formDeliveryConfig" :rules="rulesTwo" ref="formDom6"> </testForm>
|
|
|
</div>
|
|
|
- <div class="common-process-card" v-show="active == 4">
|
|
|
- <div class="common-title">{{ proxy.t("contract.shipmentPlan") }}</div>
|
|
|
- <testForm v-model="formData.data" :formOption="formShipmentOption" :formConfig="formEmptyConfig" :rules="rulesTwo" ref="formDom7"> </testForm>
|
|
|
- </div>
|
|
|
</van-tabs>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -37,7 +32,7 @@ import { ref, getCurrentInstance, onMounted, defineProps, defineExpose, watch, r
|
|
|
import { useRoute } from "vue-router";
|
|
|
import testForm from "@/components/testForm/index.vue";
|
|
|
import { getUserInfo } from "@/utils/auth";
|
|
|
-import { showSuccessToast, showFailToast } from "vant";
|
|
|
+import { showFailToast } from "vant";
|
|
|
|
|
|
// 接收父组件的传值
|
|
|
const props = defineProps({
|
|
@@ -48,10 +43,8 @@ const route = useRoute();
|
|
|
const active = ref(0);
|
|
|
const formData = reactive({
|
|
|
data: {
|
|
|
- contractType: "1",
|
|
|
- contractProductList: [],
|
|
|
- contractProjectList: [],
|
|
|
- contractShipmentList: [],
|
|
|
+ quotationProductList: [],
|
|
|
+ quotationPayList: [],
|
|
|
},
|
|
|
});
|
|
|
const formDom1 = ref(null);
|
|
@@ -60,7 +53,6 @@ const formDom3 = ref(null);
|
|
|
const formDom4 = ref(null);
|
|
|
const formDom5 = ref(null);
|
|
|
const formDom6 = ref(null);
|
|
|
-const formDom7 = ref(null);
|
|
|
const formOption = reactive({
|
|
|
readonly: false,
|
|
|
disabled: false,
|
|
@@ -72,19 +64,7 @@ const formOption = reactive({
|
|
|
const formConfig = reactive([
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t("contract.contractType"),
|
|
|
- prop: "contractType",
|
|
|
- itemType: "onePicker",
|
|
|
- showPicker: false,
|
|
|
- fieldNames: {
|
|
|
- text: "label",
|
|
|
- value: "value",
|
|
|
- },
|
|
|
- data: [],
|
|
|
- },
|
|
|
- {
|
|
|
- type: "picker",
|
|
|
- label: proxy.t("contract.contractTemplateId"),
|
|
|
+ label: proxy.t("priceSheet.contractTemplateId"),
|
|
|
prop: "contractTemplateId",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -137,11 +117,11 @@ const formConfig = reactive([
|
|
|
},
|
|
|
{
|
|
|
type: "title",
|
|
|
- title: proxy.t("contract.sellerInformation"),
|
|
|
+ title: proxy.t("priceSheet.sellerInformation"),
|
|
|
},
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t("contract.sellCorporationId"),
|
|
|
+ label: proxy.t("priceSheet.sellCorporationId"),
|
|
|
prop: "sellCorporationId",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -154,36 +134,36 @@ const formConfig = reactive([
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.cityText"),
|
|
|
+ label: proxy.t("priceSheet.cityText"),
|
|
|
prop: "sellCity",
|
|
|
itemType: "text",
|
|
|
readonly: true,
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.address"),
|
|
|
+ label: proxy.t("priceSheet.address"),
|
|
|
prop: "sellAddress",
|
|
|
itemType: "textarea",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.contactName"),
|
|
|
+ label: proxy.t("priceSheet.contactName"),
|
|
|
prop: "sellContactName",
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.contactNumber"),
|
|
|
+ label: proxy.t("priceSheet.contactNumber"),
|
|
|
prop: "sellContactNumber",
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "title",
|
|
|
- title: proxy.t("contract.buyerInformation"),
|
|
|
+ title: proxy.t("priceSheet.buyerInformation"),
|
|
|
},
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t("contract.buyCorporationId"),
|
|
|
+ label: proxy.t("priceSheet.buyCorporationId"),
|
|
|
prop: "buyCorporationId",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -245,32 +225,32 @@ const formConfig = reactive([
|
|
|
},
|
|
|
{
|
|
|
type: "cascader",
|
|
|
- label: proxy.t("contract.cityText"),
|
|
|
+ label: proxy.t("priceSheet.cityText"),
|
|
|
prop: "city",
|
|
|
itemType: "city",
|
|
|
showPicker: false,
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.address"),
|
|
|
+ label: proxy.t("priceSheet.address"),
|
|
|
prop: "buyAddress",
|
|
|
itemType: "textarea",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.postalCode"),
|
|
|
+ label: proxy.t("priceSheet.postalCode"),
|
|
|
prop: "buyPostalCode",
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.contactName"),
|
|
|
+ label: proxy.t("priceSheet.contactName"),
|
|
|
prop: "buyContactName",
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.contactNumber"),
|
|
|
+ label: proxy.t("priceSheet.contactNumber"),
|
|
|
prop: "buyContactNumber",
|
|
|
itemType: "text",
|
|
|
},
|
|
@@ -284,13 +264,13 @@ const formGoodsOption = reactive({
|
|
|
hiddenSubmitBtn: true,
|
|
|
btnConfig: {
|
|
|
isNeed: true,
|
|
|
- prop: "contractProductList",
|
|
|
+ prop: "quotationProductList",
|
|
|
plain: true,
|
|
|
- listTitle: proxy.t("contract.commodityInformation"),
|
|
|
+ listTitle: proxy.t("priceSheet.commodityInformation"),
|
|
|
listConfig: [
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t("contract.productId"),
|
|
|
+ label: proxy.t("priceSheet.productId"),
|
|
|
prop: "productId",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -303,10 +283,9 @@ const formGoodsOption = reactive({
|
|
|
changeFn: (val, data, index, indexTwo, propName) => {
|
|
|
let selectList = formData.data[propName].filter((item, itemIndex) => item[data.prop] === val.selectedValues[0] && itemIndex !== index);
|
|
|
if (selectList && selectList.length > 0) {
|
|
|
- return showFailToast(proxy.t("contract.productRepeat"));
|
|
|
+ return showFailToast(proxy.t("priceSheet.productRepeat"));
|
|
|
}
|
|
|
formData.data[propName][index][data.prop] = val.selectedValues[0];
|
|
|
- formData.data.contractShipmentList[index][data.prop] = val.selectedValues[0];
|
|
|
let list = data.data.filter((item) => item[data.fieldNames.value] == val.selectedValues[0]);
|
|
|
if (list && list.length > 0) {
|
|
|
formData.data[propName][index][data.prop + "Name"] = list[0][data.fieldNames.text];
|
|
@@ -319,7 +298,6 @@ const formGoodsOption = reactive({
|
|
|
}
|
|
|
formData.data[propName][index].productName = name;
|
|
|
formData.data[propName][index].productModel = list[0].spec;
|
|
|
- formData.data.contractShipmentList[index].productName = name;
|
|
|
} else {
|
|
|
formData.data[propName][index][data.prop + "Name"] = "";
|
|
|
}
|
|
@@ -327,27 +305,24 @@ const formGoodsOption = reactive({
|
|
|
formData.data[propName][index].price = null;
|
|
|
formData.data[propName][index].amount = null;
|
|
|
formData.data[propName][index].remark = null;
|
|
|
- formData.data.contractShipmentList[index].shipmentTime = null;
|
|
|
- formData.data.contractShipmentList[index].quantity = null;
|
|
|
- formData.data.contractShipmentList[index].remark = null;
|
|
|
data.showPicker = false;
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.productName"),
|
|
|
+ label: proxy.t("priceSheet.productName"),
|
|
|
prop: "productName",
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.productModel"),
|
|
|
+ label: proxy.t("priceSheet.productModel"),
|
|
|
prop: "productModel",
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.quantity"),
|
|
|
+ label: proxy.t("priceSheet.quantity"),
|
|
|
prop: "quantity",
|
|
|
itemType: "number",
|
|
|
changeFn: () => {
|
|
@@ -356,7 +331,7 @@ const formGoodsOption = reactive({
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.price"),
|
|
|
+ label: proxy.t("priceSheet.price"),
|
|
|
prop: "price",
|
|
|
itemType: "number",
|
|
|
changeFn: () => {
|
|
@@ -365,8 +340,8 @@ const formGoodsOption = reactive({
|
|
|
},
|
|
|
],
|
|
|
clickFn: () => {
|
|
|
- if (formData.data.contractProductList && formData.data.contractProductList.length > 0) {
|
|
|
- formData.data.contractProductList.push({
|
|
|
+ if (formData.data.quotationProductList && formData.data.quotationProductList.length > 0) {
|
|
|
+ formData.data.quotationProductList.push({
|
|
|
productId: null,
|
|
|
productName: null,
|
|
|
productModel: null,
|
|
@@ -375,15 +350,8 @@ const formGoodsOption = reactive({
|
|
|
amount: null,
|
|
|
remark: null,
|
|
|
});
|
|
|
- formData.data.contractShipmentList.push({
|
|
|
- productId: null,
|
|
|
- productName: null,
|
|
|
- shipmentTime: null,
|
|
|
- quantity: null,
|
|
|
- remark: null,
|
|
|
- });
|
|
|
} else {
|
|
|
- formData.data.contractProductList = [
|
|
|
+ formData.data.quotationProductList = [
|
|
|
{
|
|
|
productId: null,
|
|
|
productName: null,
|
|
@@ -394,20 +362,10 @@ const formGoodsOption = reactive({
|
|
|
remark: null,
|
|
|
},
|
|
|
];
|
|
|
- formData.data.contractShipmentList = [
|
|
|
- {
|
|
|
- productId: null,
|
|
|
- productName: null,
|
|
|
- shipmentTime: null,
|
|
|
- quantity: null,
|
|
|
- remark: null,
|
|
|
- },
|
|
|
- ];
|
|
|
}
|
|
|
},
|
|
|
deleteFn: (index) => {
|
|
|
- formData.data.contractProductList.splice(index, 1);
|
|
|
- formData.data.contractShipmentList.splice(index, 1);
|
|
|
+ formData.data.quotationProductList.splice(index, 1);
|
|
|
handleChangeAmount();
|
|
|
},
|
|
|
},
|
|
@@ -416,21 +374,21 @@ const formEmptyConfig = reactive([]);
|
|
|
const formAmountProductConfig = reactive([
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.amountProduct"),
|
|
|
+ label: proxy.t("priceSheet.amountProduct"),
|
|
|
prop: "amountProduct",
|
|
|
itemType: "text",
|
|
|
readonly: true,
|
|
|
- placeholder: proxy.t("contract.amountProductPlaceholder"),
|
|
|
+ placeholder: proxy.t("priceSheet.amountProductPlaceholder"),
|
|
|
},
|
|
|
]);
|
|
|
const formAmountProjectConfig = reactive([
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.amountProject"),
|
|
|
+ label: proxy.t("priceSheet.amountProject"),
|
|
|
prop: "amountProject",
|
|
|
itemType: "text",
|
|
|
readonly: true,
|
|
|
- placeholder: proxy.t("contract.amountProjectPlaceholder"),
|
|
|
+ placeholder: proxy.t("priceSheet.amountProjectPlaceholder"),
|
|
|
},
|
|
|
]);
|
|
|
const formProjectOption = reactive({
|
|
@@ -442,19 +400,19 @@ const formProjectOption = reactive({
|
|
|
hiddenSubmitBtn: true,
|
|
|
btnConfig: {
|
|
|
isNeed: true,
|
|
|
- prop: "contractProjectList",
|
|
|
+ prop: "quotationPayList",
|
|
|
plain: true,
|
|
|
- listTitle: proxy.t("contract.chargeItem"),
|
|
|
+ listTitle: proxy.t("priceSheet.chargeItem"),
|
|
|
listConfig: [
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.chargeItem"),
|
|
|
+ label: proxy.t("priceSheet.chargeItem"),
|
|
|
prop: "payName",
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.amount"),
|
|
|
+ label: proxy.t("priceSheet.amount"),
|
|
|
prop: "amount",
|
|
|
itemType: "number",
|
|
|
changeFn: () => {
|
|
@@ -463,20 +421,20 @@ const formProjectOption = reactive({
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.remark"),
|
|
|
+ label: proxy.t("priceSheet.remark"),
|
|
|
prop: "remark",
|
|
|
itemType: "textarea",
|
|
|
},
|
|
|
],
|
|
|
clickFn: () => {
|
|
|
- if (formData.data.contractProjectList && formData.data.contractProjectList.length > 0) {
|
|
|
- formData.data.contractProjectList.push({
|
|
|
+ if (formData.data.quotationPayList && formData.data.quotationPayList.length > 0) {
|
|
|
+ formData.data.quotationPayList.push({
|
|
|
payName: null,
|
|
|
amount: null,
|
|
|
remark: null,
|
|
|
});
|
|
|
} else {
|
|
|
- formData.data.contractProjectList = [
|
|
|
+ formData.data.quotationPayList = [
|
|
|
{
|
|
|
payName: null,
|
|
|
amount: null,
|
|
@@ -486,7 +444,7 @@ const formProjectOption = reactive({
|
|
|
}
|
|
|
},
|
|
|
deleteFn: (index) => {
|
|
|
- formData.data.contractProjectList.splice(index, 1);
|
|
|
+ formData.data.quotationPayList.splice(index, 1);
|
|
|
handleChangeAmount();
|
|
|
},
|
|
|
},
|
|
@@ -494,11 +452,11 @@ const formProjectOption = reactive({
|
|
|
const formDeliveryConfig = reactive([
|
|
|
{
|
|
|
type: "title",
|
|
|
- title: proxy.t("contract.collectionInformation"),
|
|
|
+ title: proxy.t("priceSheet.quotedAmount"),
|
|
|
},
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t("contract.currency"),
|
|
|
+ label: proxy.t("priceSheet.currency"),
|
|
|
prop: "currency",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -510,15 +468,21 @@ const formDeliveryConfig = reactive([
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.amountAll"),
|
|
|
+ label: proxy.t("priceSheet.amountAll"),
|
|
|
prop: "amount",
|
|
|
itemType: "text",
|
|
|
readonly: true,
|
|
|
- placeholder: proxy.t("contract.amountAllPlaceholder"),
|
|
|
+ placeholder: proxy.t("priceSheet.amountAllPlaceholder"),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "input",
|
|
|
+ label: proxy.t("priceSheet.effective"),
|
|
|
+ prop: "effective",
|
|
|
+ itemType: "digit",
|
|
|
},
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t("contract.paymentMethod"),
|
|
|
+ label: proxy.t("priceSheet.paymentMethod"),
|
|
|
prop: "paymentMethod",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -530,7 +494,7 @@ const formDeliveryConfig = reactive([
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.advanceRatio"),
|
|
|
+ label: proxy.t("priceSheet.advanceRatio"),
|
|
|
prop: "advanceRatio",
|
|
|
itemType: "number",
|
|
|
inputFn: (val) => {
|
|
@@ -544,24 +508,12 @@ const formDeliveryConfig = reactive([
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
- type: "picker",
|
|
|
- label: proxy.t("contract.shroffAccountId"),
|
|
|
- prop: "shroffAccountId",
|
|
|
- itemType: "onePicker",
|
|
|
- showPicker: false,
|
|
|
- fieldNames: {
|
|
|
- text: "label",
|
|
|
- value: "value",
|
|
|
- },
|
|
|
- data: [],
|
|
|
- },
|
|
|
- {
|
|
|
type: "title",
|
|
|
- title: proxy.t("contract.deliveryInformation"),
|
|
|
+ title: proxy.t("priceSheet.deliveryInformation"),
|
|
|
},
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t("contract.tradeMethods"),
|
|
|
+ label: proxy.t("priceSheet.tradeMethods"),
|
|
|
prop: "tradeMethods",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -573,7 +525,7 @@ const formDeliveryConfig = reactive([
|
|
|
},
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t("contract.transportMethod"),
|
|
|
+ label: proxy.t("priceSheet.transportMethod"),
|
|
|
prop: "transportMethod",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -585,99 +537,53 @@ const formDeliveryConfig = reactive([
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.transportRemark"),
|
|
|
+ label: proxy.t("priceSheet.transportRemark"),
|
|
|
prop: "transportRemark",
|
|
|
itemType: "text",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.remarks"),
|
|
|
+ label: proxy.t("priceSheet.remarks"),
|
|
|
prop: "remark",
|
|
|
itemType: "textarea",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
- label: proxy.t("contract.warranty"),
|
|
|
+ label: proxy.t("priceSheet.warranty"),
|
|
|
prop: "warranty",
|
|
|
itemType: "digit",
|
|
|
},
|
|
|
- {
|
|
|
- type: "input",
|
|
|
- label: proxy.t("contract.deliveryTime"),
|
|
|
- prop: "deliveryTime",
|
|
|
- itemType: "digit",
|
|
|
- },
|
|
|
]);
|
|
|
-const formShipmentOption = reactive({
|
|
|
- readonly: false,
|
|
|
- disabled: false,
|
|
|
- labelAlign: "top",
|
|
|
- scroll: true,
|
|
|
- labelWidth: "62pk",
|
|
|
- hiddenSubmitBtn: true,
|
|
|
- btnConfig: {
|
|
|
- isNeed: false,
|
|
|
- prop: "contractShipmentList",
|
|
|
- plain: true,
|
|
|
- listTitle: proxy.t("contract.commodity"),
|
|
|
- listConfig: [
|
|
|
- {
|
|
|
- type: "input",
|
|
|
- label: proxy.t("contract.productName"),
|
|
|
- prop: "productName",
|
|
|
- itemType: "text",
|
|
|
- readonly: true,
|
|
|
- placeholder: proxy.t("contract.productNamePlaceholder"),
|
|
|
- },
|
|
|
- {
|
|
|
- type: "picker",
|
|
|
- label: proxy.t("contract.shipmentTime"),
|
|
|
- prop: "shipmentTime",
|
|
|
- itemType: "datePicker",
|
|
|
- showPicker: false,
|
|
|
- split: "-",
|
|
|
- columnsType: ["year", "month", "day"],
|
|
|
- },
|
|
|
- {
|
|
|
- type: "input",
|
|
|
- label: proxy.t("contract.quantityShipment"),
|
|
|
- prop: "quantity",
|
|
|
- itemType: "number",
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
-});
|
|
|
const rules = {
|
|
|
- contractType: [{ required: true, message: proxy.t("contract.contractTypeMsg") }],
|
|
|
- contractTemplateId: [{ required: true, message: proxy.t("contract.contractTemplateIdMsg") }],
|
|
|
- sellCorporationId: [{ required: true, message: proxy.t("contract.sellCorporationIdMsg") }],
|
|
|
- buyCorporationId: [{ required: true, message: proxy.t("contract.buyCorporationIdMsg") }],
|
|
|
- sellCity: [{ required: true, message: proxy.t("contract.cityMsg") }],
|
|
|
- city: [{ required: true, message: proxy.t("contract.cityMsg") }],
|
|
|
- sellAddress: [{ required: true, message: proxy.t("contract.addressMsg") }],
|
|
|
- buyAddress: [{ required: true, message: proxy.t("contract.addressMsg") }],
|
|
|
- sellContactName: [{ required: true, message: proxy.t("contract.contactNameMsg") }],
|
|
|
- sellContactNumber: [{ required: true, message: proxy.t("contract.contactNumberMsg") }],
|
|
|
- buyPostalCode: [{ required: true, message: proxy.t("contract.postalCodeMsg") }],
|
|
|
- buyContactName: [{ required: true, message: proxy.t("contract.contactNameMsg") }],
|
|
|
- buyContactNumber: [{ required: true, message: proxy.t("contract.contactNumberMsg") }],
|
|
|
- productId: [{ required: true, message: proxy.t("contract.productIdMsg") }],
|
|
|
- productName: [{ required: true, message: proxy.t("contract.productNameMsg") }],
|
|
|
- productModel: [{ required: true, message: proxy.t("contract.productModelMsg") }],
|
|
|
- quantity: [{ required: true, message: proxy.t("contract.quantityMsg") }],
|
|
|
- price: [{ required: true, message: proxy.t("contract.priceMsg") }],
|
|
|
- payName: [{ required: true, message: proxy.t("contract.chargeItemMsg") }],
|
|
|
- amount: [{ required: true, message: proxy.t("contract.amountMsg") }],
|
|
|
+ contractTemplateId: [{ required: true, message: proxy.t("priceSheet.contractTemplateIdMsg") }],
|
|
|
+ sellCorporationId: [{ required: true, message: proxy.t("priceSheet.sellCorporationIdMsg") }],
|
|
|
+ buyCorporationId: [{ required: true, message: proxy.t("priceSheet.buyCorporationIdMsg") }],
|
|
|
+ sellCity: [{ required: true, message: proxy.t("priceSheet.cityMsg") }],
|
|
|
+ city: [{ required: true, message: proxy.t("priceSheet.cityMsg") }],
|
|
|
+ sellAddress: [{ required: true, message: proxy.t("priceSheet.addressMsg") }],
|
|
|
+ buyAddress: [{ required: true, message: proxy.t("priceSheet.addressMsg") }],
|
|
|
+ sellContactName: [{ required: true, message: proxy.t("priceSheet.contactNameMsg") }],
|
|
|
+ sellContactNumber: [{ required: true, message: proxy.t("priceSheet.contactNumberMsg") }],
|
|
|
+ buyPostalCode: [{ required: true, message: proxy.t("priceSheet.postalCodeMsg") }],
|
|
|
+ buyContactName: [{ required: true, message: proxy.t("priceSheet.contactNameMsg") }],
|
|
|
+ buyContactNumber: [{ required: true, message: proxy.t("priceSheet.contactNumberMsg") }],
|
|
|
+ productId: [{ required: true, message: proxy.t("priceSheet.productIdMsg") }],
|
|
|
+ productName: [{ required: true, message: proxy.t("priceSheet.productNameMsg") }],
|
|
|
+ productModel: [{ required: true, message: proxy.t("priceSheet.productModelMsg") }],
|
|
|
+ quantity: [{ required: true, message: proxy.t("priceSheet.quantityMsg") }],
|
|
|
+ price: [{ required: true, message: proxy.t("priceSheet.priceMsg") }],
|
|
|
+ payName: [{ required: true, message: proxy.t("priceSheet.chargeItemMsg") }],
|
|
|
+ amount: [{ required: true, message: proxy.t("priceSheet.amountMsg") }],
|
|
|
};
|
|
|
const rulesTwo = {
|
|
|
- currency: [{ required: true, message: proxy.t("contract.currencyMsg") }],
|
|
|
- paymentMethod: [{ required: true, message: proxy.t("contract.paymentMethodMsg") }],
|
|
|
- advanceRatio: [{ required: true, message: proxy.t("contract.advanceRatioMsg") }],
|
|
|
- shroffAccountId: [{ required: true, message: proxy.t("contract.shroffAccountIdMsg") }],
|
|
|
- tradeMethods: [{ required: true, message: proxy.t("contract.tradeMethodsMsg") }],
|
|
|
- transportMethod: [{ required: true, message: proxy.t("contract.transportMethodMsg") }],
|
|
|
- transportRemark: [{ required: true, message: proxy.t("contract.transportRemarkMsg") }],
|
|
|
- remark: [{ required: true, message: proxy.t("contract.remarksMsg") }],
|
|
|
+ currency: [{ required: true, message: proxy.t("priceSheet.currencyMsg") }],
|
|
|
+ effective: [{ required: true, message: proxy.t("priceSheet.effectiveMsg") }],
|
|
|
+ paymentMethod: [{ required: true, message: proxy.t("priceSheet.paymentMethodMsg") }],
|
|
|
+ advanceRatio: [{ required: true, message: proxy.t("priceSheet.advanceRatioMsg") }],
|
|
|
+ tradeMethods: [{ required: true, message: proxy.t("priceSheet.tradeMethodsMsg") }],
|
|
|
+ transportMethod: [{ required: true, message: proxy.t("priceSheet.transportMethodMsg") }],
|
|
|
+ transportRemark: [{ required: true, message: proxy.t("priceSheet.transportRemarkMsg") }],
|
|
|
+ remark: [{ required: true, message: proxy.t("priceSheet.remarksMsg") }],
|
|
|
};
|
|
|
const getDict = () => {
|
|
|
let query = {
|
|
@@ -685,19 +591,9 @@ const getDict = () => {
|
|
|
pageSize: 999,
|
|
|
tenantId: getUserInfo().tenantId,
|
|
|
};
|
|
|
- proxy.post("/dictTenantData/page", { ...query, dictCode: "contract_type" }).then((res) => {
|
|
|
- if (res.data.rows && res.data.rows.length > 0) {
|
|
|
- formConfig[0].data = res.data.rows.map((item) => {
|
|
|
- return {
|
|
|
- label: item.dictValue,
|
|
|
- value: item.dictKey,
|
|
|
- };
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
proxy.post("/contractTemplate/page", { pageNum: 1, pageSize: 999 }).then((res) => {
|
|
|
if (res.data.rows && res.data.rows.length > 0) {
|
|
|
- formConfig[1].data = res.data.rows.map((item) => {
|
|
|
+ formConfig[0].data = res.data.rows.map((item) => {
|
|
|
return {
|
|
|
...item,
|
|
|
label: item.templateName,
|
|
@@ -708,7 +604,7 @@ const getDict = () => {
|
|
|
});
|
|
|
proxy.post("/corporation/page", { pageNum: 1, pageSize: 999 }).then((res) => {
|
|
|
if (res.data.rows && res.data.rows.length > 0) {
|
|
|
- formConfig[3].data = res.data.rows.map((item) => {
|
|
|
+ formConfig[2].data = res.data.rows.map((item) => {
|
|
|
return {
|
|
|
...item,
|
|
|
label: item.name,
|
|
@@ -719,7 +615,7 @@ const getDict = () => {
|
|
|
});
|
|
|
proxy.post("/customer/privateSeaPage", { pageNum: 1, pageSize: 999 }).then((res) => {
|
|
|
if (res.data.rows && res.data.rows.length > 0) {
|
|
|
- formConfig[9].data = res.data.rows.map((item) => {
|
|
|
+ formConfig[8].data = res.data.rows.map((item) => {
|
|
|
return {
|
|
|
...item,
|
|
|
label: item.name,
|
|
@@ -751,7 +647,7 @@ const getDict = () => {
|
|
|
});
|
|
|
proxy.post("/dictTenantData/page", { ...query, dictCode: "funds_payment_method" }).then((res) => {
|
|
|
if (res.data.rows && res.data.rows.length > 0) {
|
|
|
- formDeliveryConfig[3].data = res.data.rows.map((item) => {
|
|
|
+ formDeliveryConfig[4].data = res.data.rows.map((item) => {
|
|
|
return {
|
|
|
label: item.dictValue,
|
|
|
value: item.dictKey,
|
|
@@ -759,17 +655,6 @@ const getDict = () => {
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
- proxy.post("/accountManagement/page", { pageNum: 1, pageSize: 999 }).then((res) => {
|
|
|
- if (res.data.rows && res.data.rows.length > 0) {
|
|
|
- formDeliveryConfig[5].data = res.data.rows.map((item) => {
|
|
|
- return {
|
|
|
- ...item,
|
|
|
- label: item.alias,
|
|
|
- value: item.id,
|
|
|
- };
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
proxy.post("/dictTenantData/page", { ...query, dictCode: "trade_mode" }).then((res) => {
|
|
|
if (res.data.rows && res.data.rows.length > 0) {
|
|
|
formDeliveryConfig[7].data = res.data.rows.map((item) => {
|
|
@@ -793,13 +678,13 @@ const getDict = () => {
|
|
|
};
|
|
|
getDict();
|
|
|
const calculatedAmount = () => {
|
|
|
- if (formData.data.contractProductList && formData.data.contractProductList.length > 0) {
|
|
|
- for (let i = 0; i < formData.data.contractProductList.length; i++) {
|
|
|
+ if (formData.data.quotationProductList && formData.data.quotationProductList.length > 0) {
|
|
|
+ for (let i = 0; i < formData.data.quotationProductList.length; i++) {
|
|
|
let money = 0;
|
|
|
- if (formData.data.contractProductList[i].quantity && formData.data.contractProductList[i].price) {
|
|
|
- money = parseFloat(Number(formData.data.contractProductList[i].quantity) * Number(formData.data.contractProductList[i].price)).toFixed(2);
|
|
|
+ if (formData.data.quotationProductList[i].quantity && formData.data.quotationProductList[i].price) {
|
|
|
+ money = parseFloat(Number(formData.data.quotationProductList[i].quantity) * Number(formData.data.quotationProductList[i].price)).toFixed(2);
|
|
|
}
|
|
|
- formData.data.contractProductList[i].amount = money;
|
|
|
+ formData.data.quotationProductList[i].amount = money;
|
|
|
}
|
|
|
}
|
|
|
handleChangeAmount();
|
|
@@ -808,19 +693,19 @@ const handleChangeAmount = () => {
|
|
|
let money = 0;
|
|
|
let amountProduct = 0;
|
|
|
let amountProject = 0;
|
|
|
- if (formData.data.contractProductList && formData.data.contractProductList.length > 0) {
|
|
|
- for (let i = 0; i < formData.data.contractProductList.length; i++) {
|
|
|
- if (formData.data.contractProductList[i].amount) {
|
|
|
- money = parseFloat(Number(money) + Number(formData.data.contractProductList[i].amount)).toFixed(2);
|
|
|
- amountProduct = parseFloat(Number(amountProduct) + Number(formData.data.contractProductList[i].amount)).toFixed(2);
|
|
|
+ if (formData.data.quotationProductList && formData.data.quotationProductList.length > 0) {
|
|
|
+ for (let i = 0; i < formData.data.quotationProductList.length; i++) {
|
|
|
+ if (formData.data.quotationProductList[i].amount) {
|
|
|
+ money = parseFloat(Number(money) + Number(formData.data.quotationProductList[i].amount)).toFixed(2);
|
|
|
+ amountProduct = parseFloat(Number(amountProduct) + Number(formData.data.quotationProductList[i].amount)).toFixed(2);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (formData.data.contractProjectList && formData.data.contractProjectList.length > 0) {
|
|
|
- for (let i = 0; i < formData.data.contractProjectList.length; i++) {
|
|
|
- if (formData.data.contractProjectList[i].amount) {
|
|
|
- money = parseFloat(Number(money) + Number(formData.data.contractProjectList[i].amount)).toFixed(2);
|
|
|
- amountProject = parseFloat(Number(amountProject) + Number(formData.data.contractProjectList[i].amount)).toFixed(2);
|
|
|
+ if (formData.data.quotationPayList && formData.data.quotationPayList.length > 0) {
|
|
|
+ for (let i = 0; i < formData.data.quotationPayList.length; i++) {
|
|
|
+ if (formData.data.quotationPayList[i].amount) {
|
|
|
+ money = parseFloat(Number(money) + Number(formData.data.quotationPayList[i].amount)).toFixed(2);
|
|
|
+ amountProject = parseFloat(Number(amountProject) + Number(formData.data.quotationPayList[i].amount)).toFixed(2);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -831,12 +716,12 @@ const handleChangeAmount = () => {
|
|
|
const handleSubmit = async () => {
|
|
|
const flag = await formDom1.value.validateForm().then((status) => {
|
|
|
if (status) {
|
|
|
- active.value = 0;
|
|
|
+ active.value = 3;
|
|
|
return false;
|
|
|
} else {
|
|
|
- if (!(formData.data.contractProductList && formData.data.contractProductList.length > 0)) {
|
|
|
+ if (!(formData.data.quotationProductList && formData.data.quotationProductList.length > 0)) {
|
|
|
active.value = 1;
|
|
|
- showFailToast(proxy.t("contract.pleaseAddProduct"));
|
|
|
+ showFailToast(proxy.t("priceSheet.pleaseAddProduct"));
|
|
|
return false;
|
|
|
}
|
|
|
return formDom2.value.validateForm().then((status1) => {
|