Преглед на файлове

物流新增添加物流信息

xdd преди 2 месеца
родител
ревизия
49ec54bea0
променени са 1 файла, в които са добавени 46 реда и са изтрити 20 реда
  1. 46 20
      src/views/store/components/productOrder.vue

+ 46 - 20
src/views/store/components/productOrder.vue

@@ -161,10 +161,11 @@
       </el-descriptions>
         <div style="margin-top: 20px">
           <span class="font-small">物流信息</span>
+          &nbsp;
+          <el-link  type="primary" @click="editDelivery(null)">添加物流信息</el-link>
         </div>
         <el-table
           border
-          v-if="deliverList!=null"
           :data="deliverList"
           size="small"
           style="width: 100%;margin-top: 20px" >
@@ -439,14 +440,10 @@
         <el-button size="mini" @click="updateErpOrder" >同步物流单号信息</el-button>
       </div>
         <el-form-item label="物流公司" prop="deliverySn" >
-           <el-select style="width:220px" v-model="editDyForm.deliverSn" placeholder="请选择" clearable size="small">
-            <el-option key="SF"  label="顺丰" value="SF" />
-            <el-option key="EMS"  label="邮政" value="EMS" />
-             <el-option key="ZTO"  label="中通" value="ZTO" />
-             <el-option key="JD"  label="京东" value="JD" />
-             <el-option key="DBL"  label="德邦" value="DBL" />
-           </el-select>
-         </el-form-item>
+          <el-select style="width:220px" v-model="editDyForm.deliverSn" placeholder="请选择" clearable size="small">
+            <el-option v-for="item in deliveryOptions" :key="item.key" :label="item.label" :value="item.value" />
+          </el-select>
+        </el-form-item>
         <el-form-item label="物流单号" prop="deliveryId"  >
           <el-input v-model="editDyForm.deliverId" placeholder="请输入物流单号" />
         </el-form-item>
@@ -570,8 +567,16 @@ export default {
         id: null,
         orderId: null,
         deliverSn:null,
+        deliverName:null,
         deliverId:null,
       },
+      deliveryOptions: [
+        { key: "SF", label: "顺丰", value: "SF" },
+        { key: "EMS", label: "邮政", value: "EMS" },
+        { key: "ZTO", label: "中通", value: "ZTO" },
+        { key: "JD", label: "京东", value: "JD" },
+        { key: "DBL", label: "德邦", value: "DBL" }
+      ],
       editForm:{
         orderType:null,
         status:null,
@@ -636,6 +641,17 @@ export default {
       this.scheduleOptions = response.data;
     });
   },
+  watch: {
+    'editDyForm.deliverSn': {
+      handler(newValue) {
+        // 找到对应的选项
+        const selectedOption = this.deliveryOptions.find(option => option.value === newValue);
+        // 如果找到了,就设置 deliverName;否则清空 deliverName
+        this.editDyForm.deliverName = selectedOption ? selectedOption.label : '';
+      },
+      immediate: true // 立即执行一次,处理初始值
+    }
+  },
   methods: {
     deliveryStatus(val){
       return this.deliveryStatusOptions.filter(e=>e.dictValue === val)[0].dictLabel;
@@ -753,14 +769,18 @@ export default {
     submitEditDyForm(){
         this.$refs["editDyForm"].validate(valid => {
         if (valid) {
-          updateDeliveryId(this.editDyForm).then(response => {
-            if (response.code === 200) {
-              this.msgSuccess("操作成功");
-              this.editDy.open = false;
-              this.getOrder(this.order.id);
-            }
-          });
-
+          // 如果没有id就表明是添加物流信息
+            updateDeliveryId(this.editDyForm).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("操作成功");
+                this.editDy.open = false;
+                this.getOrder(this.order.id);
+              }
+            }).finally(()=>{
+              this.editDyForm.deliverSn=null;
+              this.editDyForm.deliverId=null;
+              this.editDyForm.deliverName=null;
+            })
         }
       });
     },
@@ -877,9 +897,15 @@ export default {
     editDelivery(scope){
       this.editDy.open = true;
       this.editDyForm.orderId = this.order.id;
-      this.editDyForm.id = scope.row.id;
-      this.editDyForm.deliverId = scope.row.deliverId;
-      this.editDyForm.deliverSn = scope.row.deliverSn;
+      if(scope) {
+        this.editDyForm.id = scope.row.id;
+        this.editDyForm.deliverId = scope.row.deliverId;
+        this.editDyForm.deliverSn = scope.row.deliverSn;
+      } else {
+        this.editDyForm.deliverSn=null;
+        this.editDyForm.deliverId=null;
+        this.editDyForm.deliverName=null;
+      }
     },
     getOrder(orderId){
         this.orderId=orderId;