|
@@ -32,14 +32,54 @@ const formData = reactive({
|
|
|
},
|
|
|
});
|
|
|
const rules = {
|
|
|
- customerId: [{ required: true, message: proxy.t('salesContract.pleaseSelectTheCustomerName'), }],
|
|
|
- deliveryDate: [{ required: true, message: proxy.t('salesContract.pleaseSelectTheDeliveryDeadline'), }],
|
|
|
- payMethod: [{ required: true, message: proxy.t('salesContract.pleaseSelectThePaymentMethod'), }],
|
|
|
- freightPayer: [{ required: true, message: proxy.t('salesContract.PleaseSelectTheFreightPayer'), }],
|
|
|
- productId: [{ required: true, message: proxy.t('salesContract.pleaseSelectTheProductName'), }],
|
|
|
- isCustomized: [{ required: true, message: proxy.t('salesContract.pleaseSelectWhetherToCustomize'), }],
|
|
|
- unitPrice: [{ required: true, message: proxy.t('salesContract.pleaseEnterTheUnitPrice'), }],
|
|
|
- quantity: [{ required: true, message: proxy.t('salesContract.pleaseEnterTheQuantity'), }],
|
|
|
+ customerId: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: proxy.t("salesContract.pleaseSelectTheCustomerName"),
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ deliveryDate: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: proxy.t("salesContract.pleaseSelectTheDeliveryDeadline"),
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ payMethod: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: proxy.t("salesContract.pleaseSelectThePaymentMethod"),
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ freightPayer: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: proxy.t("salesContract.PleaseSelectTheFreightPayer"),
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ productId: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: proxy.t("salesContract.pleaseSelectTheProductName"),
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ isCustomized: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: proxy.t("salesContract.pleaseSelectWhetherToCustomize"),
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ unitPrice: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: proxy.t("salesContract.pleaseEnterTheUnitPrice"),
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ quantity: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: proxy.t("salesContract.pleaseEnterTheQuantity"),
|
|
|
+ },
|
|
|
+ ],
|
|
|
};
|
|
|
const formOption = reactive({
|
|
|
readonly: false, //用于控制整个表单是否只读
|
|
@@ -52,11 +92,11 @@ const formOption = reactive({
|
|
|
isNeed: true,
|
|
|
prop: "salesContractDetailsList",
|
|
|
plain: true,
|
|
|
- listTitle: proxy.t('salesContract.contractDetails'),
|
|
|
+ listTitle: proxy.t("salesContract.contractDetails"),
|
|
|
listConfig: [
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t('salesContract.productName'),
|
|
|
+ label: proxy.t("salesContract.productName"),
|
|
|
prop: "productId",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -66,10 +106,15 @@ const formOption = reactive({
|
|
|
value: "value",
|
|
|
},
|
|
|
data: [],
|
|
|
+ isNeedSearch: true, //是否需要关键字过滤数据
|
|
|
+ searchKeyword: "",
|
|
|
+ onSearchData: (keyword) => {
|
|
|
+ getProductData(keyword);
|
|
|
+ },
|
|
|
},
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t('salesContract.whetherToCustomize'),
|
|
|
+ label: proxy.t("salesContract.whetherToCustomize"),
|
|
|
prop: "isCustomized",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -80,11 +125,11 @@ const formOption = reactive({
|
|
|
},
|
|
|
data: [
|
|
|
{
|
|
|
- label: proxy.t('salesContract.yes'),
|
|
|
+ label: proxy.t("salesContract.yes"),
|
|
|
value: "1",
|
|
|
},
|
|
|
{
|
|
|
- label: proxy.t('salesContract.no'),
|
|
|
+ label: proxy.t("salesContract.no"),
|
|
|
value: "0",
|
|
|
},
|
|
|
],
|
|
@@ -92,7 +137,7 @@ const formOption = reactive({
|
|
|
{
|
|
|
type: "input",
|
|
|
itemType: "number",
|
|
|
- label: proxy.t('salesContract.unitPrice'),
|
|
|
+ label: proxy.t("salesContract.unitPrice"),
|
|
|
prop: "unitPrice",
|
|
|
clearable: true,
|
|
|
changeFn: (index, val) => {
|
|
@@ -102,7 +147,7 @@ const formOption = reactive({
|
|
|
{
|
|
|
type: "input",
|
|
|
itemType: "number",
|
|
|
- label: proxy.t('salesContract.quantity'),
|
|
|
+ label: proxy.t("salesContract.quantity"),
|
|
|
prop: "quantity",
|
|
|
clearable: true,
|
|
|
changeFn: (index, val) => {
|
|
@@ -112,9 +157,11 @@ const formOption = reactive({
|
|
|
{
|
|
|
type: "input",
|
|
|
itemType: "number",
|
|
|
- label: proxy.t('salesContract.amountSubtotal'),
|
|
|
+ label: proxy.t("salesContract.amountSubtotal"),
|
|
|
prop: "total",
|
|
|
- placeholder: proxy.t('salesContract.automaticallyCalculatedBasedOnUnitPriceAndQuantity'),
|
|
|
+ placeholder: proxy.t(
|
|
|
+ "salesContract.automaticallyCalculatedBasedOnUnitPriceAndQuantity"
|
|
|
+ ),
|
|
|
readonly: true,
|
|
|
},
|
|
|
],
|
|
@@ -141,7 +188,7 @@ const formOption = reactive({
|
|
|
const formConfig = reactive([
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t('salesContract.customerName'),
|
|
|
+ label: proxy.t("salesContract.customerName"),
|
|
|
prop: "customerId",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -153,7 +200,7 @@ const formConfig = reactive([
|
|
|
},
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t('salesContract.deliveryDeadline'),
|
|
|
+ label: proxy.t("salesContract.deliveryDeadline"),
|
|
|
prop: "deliveryDate",
|
|
|
itemType: "datePicker",
|
|
|
showPicker: false,
|
|
@@ -162,7 +209,7 @@ const formConfig = reactive([
|
|
|
},
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t('salesContract.paymentMethod'),
|
|
|
+ label: proxy.t("salesContract.paymentMethod"),
|
|
|
prop: "payMethod",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -174,7 +221,7 @@ const formConfig = reactive([
|
|
|
},
|
|
|
{
|
|
|
type: "picker",
|
|
|
- label: proxy.t('salesContract.freightPayer'),
|
|
|
+ label: proxy.t("salesContract.freightPayer"),
|
|
|
prop: "freightPayer",
|
|
|
itemType: "onePicker",
|
|
|
showPicker: false,
|
|
@@ -184,11 +231,11 @@ const formConfig = reactive([
|
|
|
},
|
|
|
data: [
|
|
|
{
|
|
|
- label: proxy.t('salesContract.partyA'),
|
|
|
+ label: proxy.t("salesContract.partyA"),
|
|
|
value: "0",
|
|
|
},
|
|
|
{
|
|
|
- label: proxy.t('salesContract.partyB'),
|
|
|
+ label: proxy.t("salesContract.partyB"),
|
|
|
value: "1",
|
|
|
},
|
|
|
],
|
|
@@ -196,13 +243,13 @@ const formConfig = reactive([
|
|
|
{
|
|
|
type: "input",
|
|
|
itemType: "textarea",
|
|
|
- label: proxy.t('salesContract.remarks'),
|
|
|
+ label: proxy.t("salesContract.remarks"),
|
|
|
prop: "remark",
|
|
|
},
|
|
|
{
|
|
|
type: "input",
|
|
|
itemType: "number",
|
|
|
- label: proxy.t('salesContract.contractTotalAmount'),
|
|
|
+ label: proxy.t("salesContract.contractTotalAmount"),
|
|
|
prop: "total",
|
|
|
readonly: true,
|
|
|
},
|
|
@@ -227,16 +274,26 @@ const getDict = () => {
|
|
|
formConfig[0].data = customerData.value;
|
|
|
});
|
|
|
proxy
|
|
|
- .post("/productInfo/page", { pageNum: 1, pageSize: 9999, definition: "1" })
|
|
|
+ .post("/productInfo/page", { pageNum: 1, pageSize: 50, definition: "1" })
|
|
|
.then((res) => {
|
|
|
productData.value = res.data.rows.map((x) => ({
|
|
|
- label: x.name,
|
|
|
+ label: x.name + ` (${x.spec})`,
|
|
|
value: x.id,
|
|
|
}));
|
|
|
formOption.btnConfig.listConfig[0].data = productData.value;
|
|
|
});
|
|
|
};
|
|
|
|
|
|
+const getProductData = (keyword) => {
|
|
|
+ proxy.post("/productInfo/page", { keyword, definition: "1" }).then((res) => {
|
|
|
+ productData.value = res.data.rows.map((x) => ({
|
|
|
+ label: x.name + ` (${x.spec})`,
|
|
|
+ value: x.id,
|
|
|
+ }));
|
|
|
+ formOption.btnConfig.listConfig[0].data = productData.value;
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
const getDetails = (id) => {
|
|
|
proxy.post("/salesContract/detail", { id }).then((res) => {
|
|
|
if (res.data && res.data.contractDetailsList.length > 0) {
|
|
@@ -244,6 +301,7 @@ const getDetails = (id) => {
|
|
|
} else {
|
|
|
res.data.salesContractDetailsList = [];
|
|
|
}
|
|
|
+ res.data.deliveryDate = res.data.deliveryDate.slice(0, 10);
|
|
|
formData.data = res.data;
|
|
|
changeAmount();
|
|
|
});
|
|
@@ -268,7 +326,7 @@ const onSubmit = () => {
|
|
|
})
|
|
|
.then(
|
|
|
() => {
|
|
|
- showSuccessToast( proxy.t('common.operationSuccessful'));
|
|
|
+ showSuccessToast(proxy.t("common.operationSuccessful"));
|
|
|
setTimeout(() => {
|
|
|
onClickLeft();
|
|
|
}, 500);
|
|
@@ -278,7 +336,7 @@ const onSubmit = () => {
|
|
|
}
|
|
|
);
|
|
|
} else {
|
|
|
- return showFailToast( proxy.t('salesContract.pleaseAddContractDetails'));
|
|
|
+ return showFailToast(proxy.t("salesContract.pleaseAddContractDetails"));
|
|
|
}
|
|
|
};
|
|
|
|