ソースを参照

处理订单管理及详情新增的需求和修改

lph 1 年間 前
コミット
3f8a131d82
2 ファイル変更184 行追加20 行削除
  1. 12 0
      zkqy-ui/src/api/tablelist/commonTable.js
  2. 172 20
      zkqy-ui/src/views/orderMange/index.vue

+ 12 - 0
zkqy-ui/src/api/tablelist/commonTable.js

@@ -235,3 +235,15 @@ export function btnCommonApi(data) {
     baseURL: process.env.VUE_APP_BASE_API1
   })
 }
+
+// 订单管理  查询订单标号是否合法
+export function checkOrderNo(data) {
+  return request({
+    url: '/system/order/checkContractNo',
+    method: 'get',
+    params: data,
+    baseURL: process.env.VUE_APP_BASE_API1
+  })
+}
+
+// 

+ 172 - 20
zkqy-ui/src/views/orderMange/index.vue

@@ -299,9 +299,11 @@
           :inline="true"
           size="normal"
         >
-          <!-- <el-form-item prop="saleNo" label="合同号:">
-          <el-input size="small" v-model="formData.saleNo"></el-input>
-        </el-form-item> -->
+          <el-col :span="24">
+            <el-form-item prop="saleNo" label="合同号:">
+              <el-input size="small" v-model="formData.saleNo"></el-input>
+            </el-form-item>
+          </el-col>
           <el-col :span="12">
             <el-form-item prop="saleDate" label="日期:">
               <el-date-picker
@@ -364,10 +366,23 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="交货周期:" size="normal" prop="saleLeadTime">
+            <el-form-item label="交货天数:" size="normal" prop="saleLeadTime">
               <el-input size="small" v-model="formData.saleLeadTime"></el-input>
             </el-form-item>
           </el-col>
+          <el-col :span="12">
+            <el-form-item label="交货日期:" size="normal" prop="deliveryDate">
+              <el-date-picker
+                size="small"
+                v-model="formData.deliveryDate"
+                value-format="yyyy-MM-dd"
+                format="yyyy-MM-dd"
+                type="date"
+                placeholder="选择日期"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
           <el-col :span="24">
             <el-divider>货品明细</el-divider>
           </el-col>
@@ -510,11 +525,33 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="付款方式">
-              <el-input
+              <!-- <el-input
                 v-model="formData.salePayType"
                 size="small"
                 clearable
-              ></el-input>
+              ></el-input> -->
+              <el-select
+                v-model="formData.salePayType"
+                size="small"
+                clearable
+                filterable
+              >
+                <el-option
+                  v-for="item in dict.type.payment_method"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12" v-show="formData.salePayType == '1'">
+            <el-form-item prop="earnestMoney" label="定金">
+              <el-input
+                v-model="formData.earnestMoney"
+                clearable
+                size="small"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="24">
@@ -556,6 +593,23 @@
               ></el-input>
             </el-form-item>
           </el-col>
+          <el-col :span="12">
+            <el-form-item label="捻向:">
+              <el-select
+                v-model="formData.directionOfTwist"
+                clearable
+                filterable
+              >
+                <el-option
+                  v-for="item in dict.type.direction_of_twist"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
           <el-col :span="12">
             <el-form-item label="其它:">
               <el-input
@@ -670,6 +724,7 @@ import {
   batchEdit,
   getStatisticList,
   getTableList1,
+  checkOrderNo,
 } from "@/api/tablelist/commonTable";
 import { listData } from "@/api/system/tenant/data";
 import { getToken } from "@/utils/auth";
@@ -686,6 +741,7 @@ import moment from "moment";
 
 export default {
   name: "listInfo",
+  dicts: ["payment_method", "direction_of_twist"],
   components: { Queryfrom, Menu, DialogTemplate },
   data() {
     return {
@@ -705,9 +761,11 @@ export default {
         saleDate: "", //销售单日期
         saleOrderEstimatedTime: "", //预计下单时间
         saleLeadTime: "", //交货周期
+        deliveryDate: "", //交货日期
         saleAmounts: "", //合计金额 小写
         saleAmountInWords: "", //合计金额 大写
         salePayType: "", //支付方式
+        earnestMoney: "", //定金
         salesman: "", //业务员
         saleLeader: "", //业务主管
         finance: "", //财务部
@@ -733,6 +791,7 @@ export default {
         craftOil: "", //油剂
         craftPackage: "", //卷装
         craftColorFastness: "", //色牢度
+        directionOfTwist: "", //捻向
         craftOther: "", //其它工艺要求
         craftMark: "", //包装/贴唛
         shippingMethod: "", //运输方式
@@ -750,6 +809,17 @@ export default {
         // },
       ],
       rules: {
+        saleNo: [
+          {
+            required: true,
+            message: "请输入销售单号",
+            trigger: "blur",
+          },
+          {
+            validator: this.validateOrderNo,
+            trigger: "blur",
+          },
+        ],
         saleDate: [
           {
             required: true,
@@ -778,6 +848,12 @@ export default {
             trigger: "blur",
           },
         ],
+        earnestMoney: [
+          {
+            validator: this.validateEarnestMoney,
+            trigger: "blur",
+          },
+        ],
       },
 
       // end
@@ -925,9 +1001,11 @@ export default {
         saleDate: "", //销售单日期
         saleOrderEstimatedTime: "", //预计下单时间
         saleLeadTime: "", //交货周期
+        deliveryDate: "",
         saleAmounts: "", //合计金额 小写
         saleAmountInWords: "", //合计金额 大写
         salePayType: "", //支付方式
+        earnestMoney: "",
         salesman: "", //业务员
         saleLeader: "", //业务主管
         finance: "", //财务部
@@ -953,6 +1031,7 @@ export default {
         craftOil: "", //油剂
         craftPackage: "", //卷装
         craftColorFastness: "", //色牢度
+        directionOfTwist: "",
         craftOther: "", //其它工艺要求
         craftMark: "", //包装/贴唛
         shippingMethod: "", //运输方式
@@ -1211,19 +1290,58 @@ export default {
           });
         });
     },
+    // 校验定金
+    validateEarnestMoney(rule, value, callback) {
+      console.log(value);
+      if (this.formData.salePayType == "1") {
+        if (value == "" || value == null || value == undefined) {
+          callback(new Error("请输入定金金额"));
+        } else {
+          callback();
+        }
+      } else {
+        callback();
+      }
+    },
+    // 校验订单号是否有效
+    async validateOrderNo(rule, value, callback) {
+      console.log(value);
+      // let saleNo = this.formData.orderNo;
+      // 检验订单号合法
+      let checkNoPayload = {
+        saleNo: value,
+      };
+      if (this.isEdit) {
+        checkNoPayload.id = this.formData.id;
+      }
+      let result = await checkOrderNo(checkNoPayload);
+      if (result.code == 200) {
+        if (result.data) {
+          callback();
+        } else {
+          callback(new Error("订单号已存在"));
+        }
+      } else {
+        callback(new Error("校验失败,请稍后再试"));
+      }
+    },
     // 审计   提交编辑结果按钮回调
     async editConfirm() {
       this.$refs.formDataRef.validate(async (valid) => {
         if (valid) {
+          console.log(valid);
           let {
             //订单表数据
+            saleNo,
             saleCustomNo,
             saleDate,
             saleOrderEstimatedTime,
             saleLeadTime,
+            deliveryDate,
             saleAmounts,
             saleAmountInWords,
             salePayType,
+            earnestMoney,
             salesman,
             saleLeader,
             finance,
@@ -1235,12 +1353,14 @@ export default {
             craftOil,
             craftPackage,
             craftColorFastness,
+            directionOfTwist,
             craftOther,
             craftMark,
             shippingMethod,
           } = this.formData;
-          let saleCraftNo = this.isEdit ? this.formData.saleCraftNo : uuidv4(),
-            saleNo = this.isEdit ? this.formData.saleNo : uuidv4();
+
+          let saleCraftNo = this.isEdit ? this.formData.saleCraftNo : uuidv4();
+          // saleNo = this.isEdit ? this.formData.saleNo : uuidv4();
           let saleProductsNo = this.productionTableData
             .map((item) => item.saleProductNo)
             .join(","); //销售单表sale_products_no字段存货品表的sale_product_no,逗号分割
@@ -1254,10 +1374,12 @@ export default {
             saleOrderEstimatedTime: moment(
               new Date(saleOrderEstimatedTime)
             ).format("YYYY-MM-DD"),
+            deliveryDate: moment(new Date(deliveryDate)).format("YYYY-MM-DD"),
             saleLeadTime,
             // saleAmounts, //合计金额  小写
             saleAmountInWords,
             salePayType,
+            earnestMoney,
             salesman: this.nickName,
             saleLeader,
             finance,
@@ -1271,6 +1393,7 @@ export default {
             craftOil,
             craftPackage,
             craftColorFastness,
+            directionOfTwist,
             craftOther,
             craftMark,
             shippingMethod,
@@ -1433,10 +1556,12 @@ export default {
             ...sale_craft[0],
             ...sale_order[0],
           });
-          let { saleDate, saleOrderEstimatedTime } = sale_order[0];
+          let { saleDate, saleOrderEstimatedTime, deliveryDate } =
+            sale_order[0];
           saleDate && (this.formData.saleDate = new Date(saleDate));
           saleOrderEstimatedTime &&
             (this.formData.saleOrderEstimatedTime = saleOrderEstimatedTime);
+          deliveryDate && (this.formData.deliveryDate = new Date(deliveryDate));
           this.productionTableData = sale_products;
           this.productIds = sale_products.map((item) => item.saleProductNo);
 
@@ -2358,6 +2483,14 @@ export default {
       window.location.reload();
       return false;
     },
+    // 根据字典value获取字典label
+    getDictLabel(value, dict) {
+      return (
+        this.dict.type[dict].find((item) => {
+          return item.value === value;
+        })?.label || ""
+      );
+    },
     // 获取详情html字符串
     async getDetailTableString(row) {
       let { saleOrderSaleNo } = row;
@@ -2398,9 +2531,11 @@ export default {
           saleDate, //销售单日期
           saleOrderEstimatedTime, //预计下单时间
           saleLeadTime, //交货周期
+          deliveryDate,
           saleAmounts, //合计金额 小写
           saleAmountInWords, //合计金额 大写
           salePayType, //支付方式
+          earnestMoney,
           salesman, //业务员
           saleLeader, //业务主管
           finance, //财务部
@@ -2422,6 +2557,7 @@ export default {
           craftOil, //油剂
           craftPackage, //卷装
           craftColorFastness, //色牢度
+          directionOfTwist,
           craftOther, //其它工艺要求
           craftMark, //包装/贴唛
           shippingMethod, //运输方式
@@ -2433,6 +2569,9 @@ export default {
         let customAddress = customData?.customAddress || "无";
         let customCountryType = customData?.customCountryType || "";
         let contactPerson = customData?.contactPerson || "无";
+        let directionOfTwistDescription = directionOfTwist
+          ? this.getDictLabel(directionOfTwist, "direction_of_twist")
+          : "";
         let printStr = `
         <table style="width:1050px; border-collapse:collapse;" border="1" cellpadding="10" align="center">
             <div style="text-align:center;font-size: 20px;">诸暨市新丝维纤维有限公司</div>
@@ -2459,12 +2598,14 @@ export default {
                 </tr>
                 <tr align="center">
                     <td width="300px" colspan="2">预计下单时间:</td>
-                    <td width="300px" colspan="2">${saleOrderEstimatedTime.replace(
+                    <td  colspan="1">${saleOrderEstimatedTime.replace(
                       "T",
                       " "
                     )}</td>
-                    <td width="300px" colspan="2">交货周期:</td>
+                    <td  colspan="1">交货周期:</td>
                     <td >${saleLeadTime}</td>
+                    <td  colspan="1">交货日期:</td>
+                    <td >${deliveryDate.replace("T", " ")}</td>
                 </tr>
                 <tr align="center">
                     <td colspan="7">货品明细</td>
@@ -2491,9 +2632,8 @@ export default {
           );
           console.log("item", item);
           item.sliceTypeLabel =
-            this.sliceTypeOptions.find(
-              (k) => k.materielCode == item.sliceType
-            )?.materielName || "";
+            this.sliceTypeOptions.find((k) => k.materielCode == item.sliceType)
+              ?.materielName || "";
           item.colourNumberLabel = this.colourNumberOptions.find(
             (k) => k.materielCode == item.colourNumber
           )?.materieColorNumber;
@@ -2522,10 +2662,22 @@ export default {
                 <tr>
                     <td colspan="7">合计金额(大写):${saleAmountInWords}</td>
                 </tr>
-                <tr>
-                    <td colspan="7">付款方式:${salePayType}</td>
-                </tr>
-                <tr align="center">
+                `;
+
+        if (salePayType == "1") {
+          //定金
+          printStr += `
+          <tr>
+            <td colspan="4">付款方式:${salePayType}</td>
+            <td colspan="3">定金:${earnestMoney}</td>
+          </tr>`;
+        } else {
+          printStr += `
+         <tr>
+              <td colspan="7">付款方式:${salePayType}</td>
+          </tr>`;
+        }
+        printStr += `<tr align="center">
                     <td colspan="7">工艺要求</td>
                 </tr>
                 <tr align="center">
@@ -2533,18 +2685,18 @@ export default {
                     <td width="150px">油剂</td>
                     <td width="150px">卷装</td>
                     <td width="150px">色牢度</td>
+                    <td width="150px">捻向</td>
                     <td width="150px">其他</td>
                     <td width="150px"></td>
-                    <td width="150px"></td>
                 </tr>
                 <tr align="center">
                     <td >${craftGrid}</td>
                     <td>${craftOil}</td>
                     <td>${craftPackage}</td>
                     <td>${craftColorFastness}</td>
+                    <td>${directionOfTwistDescription}</td>
                     <td>${craftOther}</td>
                     <td width="150px"></td>
-                    <td width="150px"></td>
                 </tr>
                 <tr>
                     <td colspan="7">包装/贴唛:${craftMark}</td>