Browse Source

jxst销售合同更改

cz 1 year ago
parent
commit
e03125115d

+ 14 - 0
src/components/testForm/index.vue

@@ -125,6 +125,20 @@
             position="bottom"
             v-if="i.type == 'picker' && i.itemType == 'onePicker'"
           >
+            <div class="searchBox">
+              <van-search
+                v-if="i.isNeedSearch && i.isNeedSearch === true"
+                v-model="i.searchKeyword"
+                show-action
+                label=""
+                placeholder="请输入搜索关键词"
+                @search="onSearchData(i)"
+              >
+                <template #action>
+                  <div @click="onSearchData(i)">搜索</div>
+                </template>
+              </van-search>
+            </div>
             <van-picker
               :columns="i.data"
               :columns-field-names="

+ 87 - 29
src/views/JXSK/salesContract/add.vue

@@ -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"));
   }
 };
 

+ 9 - 6
src/views/JXSK/salesContract/index.vue

@@ -6,7 +6,7 @@
     @click-left="onClickLeft"
     @click-right="onClickRight"
   >
-    <template #right> {{$t('common.add')}} </template>
+    <template #right> {{ $t("common.add") }} </template>
   </van-nav-bar>
   <van-search
     v-model="req.keyword"
@@ -15,7 +15,6 @@
   />
   <van-pull-refresh v-model="loading" @refresh="onRefresh">
     <div class="list">
-      0
       <van-list
         v-model:loading="loading"
         :finished="finished"
@@ -49,15 +48,19 @@ const proxy = getCurrentInstance().proxy;
 const listData = ref([]);
 const listConfig = ref([
   {
-    label: proxy.t('salesContract.customerName'),
+    label: "合同号",
+    prop: "code",
+  },
+  {
+    label: proxy.t("salesContract.customerName"),
     prop: "customerName",
   },
   {
-    label: proxy.t('salesContract.contractAmount'),
+    label: proxy.t("salesContract.contractAmount"),
     prop: "contractAmount",
   },
   {
-    label: proxy.t('salesContract.signingTime'),
+    label: proxy.t("salesContract.signingTime"),
     prop: "createTime",
   },
 ]);
@@ -78,7 +81,7 @@ const onClickRight = () => {
     },
   });
 };
-proxy.uploadDdRightBtn(onClickRight,proxy.t('common.add'))
+proxy.uploadDdRightBtn(onClickRight, proxy.t("common.add"));
 const toDtl = (row) => {
   proxy.$router.push({
     path: "jxskSalesContractAdd",