chenrui 4 anni fa
parent
commit
16575b2ed3

+ 7 - 0
src/api/order.js

@@ -27,6 +27,13 @@ export const offPartnerOrderFind = (params) => {
   })
 }
 //  填写物流信息
+export const orderExpressSend = (params) => {
+  return axios.request({
+    url: '/orderExpress/sendExpress',
+    data: params,
+    method: 'post'
+  })
+}
 //  快递公司
 export const expressCompanyQuery = (params) => {
   return axios.request({

+ 16 - 28
src/views/shop/GoodsLogistics.vue

@@ -16,27 +16,27 @@
       @submit="handleSubmit">
       <a-form-item label="快递公司" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
         <a-select
-          id="logistics-company"
+          id="logistics-expressName"
           allowClear
           v-decorator="[
-            'formData.company',
-            { initialValue: formData.company,
+            'formData.expressName',
+            { initialValue: formData.expressName,
               rules: [{ required: true, message: '请选择快递公司' }] },
           ]"
           placeholder="请选择快递公司"
         >
-          <a-select-option v-for="(item,index) in expressCompany" :key="index" :value="item.deliveryTimeRuleNo">
-            {{ item.name }}
+          <a-select-option v-for="(item,index) in expressCompany" :key="index" :value="item.expressName">
+            {{ item.expressName }}
           </a-select-option>
         </a-select>
       </a-form-item>
       <a-form-item label="运单编号" :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol">
         <a-input
-          id="logistics-orderNo"
+          id="logistics-expressNum"
           :maxLength="30"
           v-decorator="[
-            'formData.orderNo',
-            { initialValue: formData.orderNo, getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入运单编号' }] }
+            'formData.expressNum',
+            { initialValue: formData.expressNum, getValueFromEvent: $filterEmpty, rules: [{ required: true, message: '请输入运单编号' }] }
           ]"
           placeholder="请输入运单编号(最多30个字符)"
           allowClear />
@@ -59,10 +59,6 @@ export default {
     openModal: { //  弹框显示状态
       type: Boolean,
       default: false
-    },
-    orderNo: {
-      type: [Number, String],
-      default: ''
     }
   },
   data () {
@@ -73,28 +69,23 @@ export default {
         wrapperCol: { span: 16 }
       },
       formData: {
-        company: null, //  快递公司
-        orderNo: '' //  运单编号
+        expressName: undefined, //  快递公司
+        expressNum: '' //  运单编号
       },
       isShow: this.openModal, //  是否填写物流信息
       expressCompany: [] //  快递公司
     }
   },
+  mounted () {
+    this.getExpressCompany()
+  },
   methods: {
     //  物流信息  保存
     handleSubmit (e) {
       e.preventDefault()
-      const _this = this
       this.form.validateFields((err, values) => {
         if (!err) {
-          const formData = values.formData
-          // expressCompanyQuery(formData).then(res => {
-          //   if (res.status == 200) {
-          //     _this.$message.success(res.message)
-          //     this.$emit('success')
-          //     this.isShow = false
-          //   }
-          // })
+          this.$emit('submit', values.formData)
         }
       })
     },
@@ -118,11 +109,8 @@ export default {
     isShow (val) {
       if (!val) {
         this.$emit('close')
-      }
-    },
-    orderNo (newValue, oldValue) {
-      if (this.isShow && newValue) {
-        this.getExpressCompany()
+      } else {
+        this.form.resetFields()
       }
     }
   }

+ 14 - 4
src/views/shop/GoodsOrder.vue

@@ -23,7 +23,7 @@
       size="default"
       :row-selection="type=='orderGoods' ? { selectedRowKeys: selectedRowKeys, onChange: onSelectChange } : null"
       :columns="columns"
-      :rowKey="(record) => record.id"
+      :rowKey="(record) => record.orderGoodsNo"
       :data-source="dataSource"
       :pagination="false"
       bordered>
@@ -36,7 +36,7 @@ export default {
   name: 'GoodsOrder',
   props: {
     orderData: {
-      type: Object,
+      type: [Object, Array],
       default: () => {
         return {}
       }
@@ -44,11 +44,14 @@ export default {
     type: {
       type: String,
       default: ''
+    },
+    isReset: {
+      type: Boolean,
+      default: false
     }
   },
   computed: {
     dataSource: function () {
-      console.log(this.orderData, '-----this.orderData')
       if (this.type == 'orderGoods') {
         return this.orderData
       } else if (this.type == 'express') {
@@ -71,7 +74,6 @@ export default {
   methods: {
     //  选择商品
     onSelectChange (selectedRowKeys) {
-      console.log('selectedRowKeys changed: ', selectedRowKeys)
       this.selectedRowKeys = selectedRowKeys
     },
     //  立即发货
@@ -86,6 +88,14 @@ export default {
     onCopy (e) {
       this.$message.success('复制成功')
     }
+  },
+  watch: {
+    //  是否重置表格选中状态
+    isReset (newValue, oldValue) {
+      if (newValue) {
+        this.selectedRowKeys = []
+      }
+    }
   }
 }
 </script>

+ 20 - 12
src/views/shop/orderDetail.vue

@@ -54,25 +54,23 @@
           <a-tab-pane v-for="item in orderDetail.officialPartnerOrderList" :key="item.officialPartnerNo" :tab="item.officialPartner.name"></a-tab-pane>
         </a-tabs>
         <!-- 商品订单 -->
-        <!-- <GoodsOrder v-for="(item, index) in orderData" :key="index" :orderData="item" @sendGoods="sendGoods" /> -->
         <div v-if="orderData">
           <!-- 待发货 -->
-          <GoodsOrder v-for="(item, index) in orderData.orderExpressList" :key="index" type="express" :orderData="item" @sendGoods="sendGoods" />
+          <GoodsOrder type="orderGoods" :orderData="orderData.orderGoodsList" :isReset="isReset" @sendGoods="sendGoods" />
           <!-- 已发货 -->
-          <GoodsOrder v-for="(item, index) in orderData.orderGoodsList" :key="index" type="orderGoods" :orderData="item" />
+          <GoodsOrder v-for="(item, index) in orderData.orderExpressList" :key="index" type="express" :orderData="item" />
         </div>
-
       </div>
     </a-card>
     <!-- 物流信息 -->
-    <GoodsLogistics v-if="orderDetail" :openModal="openModal" :orderNo="orderDetail.orderNo" @success="handleClick" @close="openModal=false" />
+    <GoodsLogistics :openModal="openModal" @submit="handleSubmit" @close="openModal=false" />
   </div>
 </template>
 
 <script>
 import GoodsOrder from './GoodsOrder.vue'
 import GoodsLogistics from './GoodsLogistics.vue'
-import { orderFind, offPartnerOrderFind } from '@/api/order'
+import { orderFind, offPartnerOrderFind, orderExpressSend } from '@/api/order'
 export default {
   name: 'OrderDetail',
   components: { GoodsOrder, GoodsLogistics },
@@ -81,7 +79,9 @@ export default {
       orderDetail: null, //  订单详情
       orderData: null,
       officialPartnerNo: '', //  供货商编号
-      openModal: false //  是否填写物流信息
+      openModal: false, //  是否填写物流信息
+      orderGoodsNoList: [], //  发货订单号
+      isReset: false //  是否重置数据
     }
   },
   methods: {
@@ -100,13 +100,9 @@ export default {
     },
     //  立即发货
     sendGoods (idArr) {
-      console.log(idArr)
+      this.orderGoodsNoList = idArr
       this.openModal = true
     },
-    // //  物流信息填写成功
-    // sendGoodsSuccess () {
-    //   console.log('物流信息填写成功')
-    // },
     getOrderDetail () {
       orderFind({ id: this.$route.params.id }).then(res => {
         if (res.status == 200) {
@@ -119,6 +115,18 @@ export default {
           this.orderDetail = null
         }
       })
+    },
+    //  提交物流
+    handleSubmit (form) {
+      form.orderGoodsNoList = this.orderGoodsNoList
+      orderExpressSend(form).then(res => {
+        if (res.status == 200) {
+          this.isReset = true
+          this.$message.success(res.message)
+          this.handleClick()
+          this.openModal = false
+        }
+      })
     }
   },
   beforeRouteEnter (to, from, next) {