Commit 4a254395 by 黑潮

Merge branch 'feature/福利中心-礼品管理' into dev

parents 20dd3d47 e61df18b
.order-info[data-v-06d082c3]{margin:20px 0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.order-info li[data-v-06d082c3]{width:33%;margin:10px 0}.delivery-complete[data-v-06d082c3]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:20px}.delivery-complete .el-icon-success[data-v-06d082c3]{color:#33af4a;font-size:63px}.delivery-complete .el-icon-error[data-v-06d082c3]{color:#f5222d;font-size:63px}.delivery-complete p[data-v-06d082c3]{margin-top:16px;color:#606266}.delivery-complete p[data-v-06d082c3]:first-of-type{margin-top:28px;font-size:24px;color:#303133}.delivery-todo[data-v-06d082c3]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.delivery-todo .status-text[data-v-06d082c3]{margin-top:50px;color:#303133;font-size:24px;font-weight:700}.delivery-todo .status-description[data-v-06d082c3]{margin-top:16px;margin-bottom:40px;color:#606266}.delivery-todo .status[data-v-06d082c3]{width:100%;position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.delivery-todo .status .time[data-v-06d082c3]{position:absolute;top:30px;left:30px;color:#909399}.delivery-todo .status .line[data-v-06d082c3]{height:1px;background-color:#2f54eb;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:0 20px}.delivery-todo .status i[data-v-06d082c3]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:24px;width:24px;background-color:#2f54eb;color:#fff;border-radius:50%;-ms-flex-negative:0;flex-shrink:0}.delivery-todo .status i[data-v-06d082c3]:last-of-type{border:1px solid #c0c4cc;color:#c0c4cc;background-color:#fff}.delivery-todo .status span[data-v-06d082c3]{display:inline-block;margin-left:10px;font-size:16px;color:#303133;font-weight:700}.delivery-todo .status span[data-v-06d082c3]:last-of-type{color:#909399;font-weight:700}
\ No newline at end of file
.empty_block[data-v-6af1f573]:after{content:"\6682\65E0\7269\6D41\4FE1\606F"}.logistics-info[data-v-6af1f573]{display:-webkit-box;display:-ms-flexbox;display:flex}.logistics-info>div[data-v-6af1f573]{-webkit-box-flex:1;-ms-flex:1;flex:1}.logistics-info span[data-v-6af1f573]{display:inline-block}.logistics-info span+span[data-v-6af1f573]{margin-left:10px}.logistics-step[data-v-6af1f573]{margin-top:24px;background:#fafafa;padding:15px 0}.logistics-step h3[data-v-6af1f573]{color:#303133;font-size:16px;border-bottom:1px solid #dcdfe6;padding:0 20px 15px 20px}.logistics-step .logistics-list[data-v-6af1f573]{height:328px;overflow-y:auto;padding:20px}.logistics-step .logistics-item[data-v-6af1f573]{position:relative;padding-bottom:10px}.logistics-step .logistics-line-step[data-v-6af1f573]{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px}.logistics-step .logistics-line-step .time[data-v-6af1f573]{margin-right:20px;width:160px;line-height:22px;font-weight:500;color:#303133}.logistics-step .logistics-line-step .content[data-v-6af1f573]{color:#303133;-webkit-box-flex:1;-ms-flex:1;flex:1;line-height:22px}
\ No newline at end of file
.el-icon-warning[data-v-3af8fe50]{color:#faad14;font-size:21px}.write-off[data-v-5539a2cd]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:14px;color:#303133}.write-off .code[data-v-5539a2cd]{margin-top:20px;color:#f5222d;font-size:20px}.empty_block[data-v-aef9879e]:after{content:"\6682\65E0\7269\6D41\4FE1\606F"}.logistics-info[data-v-aef9879e]{display:-webkit-box;display:-ms-flexbox;display:flex}.logistics-info>div[data-v-aef9879e]{-webkit-box-flex:1;-ms-flex:1;flex:1}.logistics-info span[data-v-aef9879e]{display:inline-block}.logistics-info span+span[data-v-aef9879e]{margin-left:10px}.logistics-step[data-v-aef9879e]{margin-top:24px;background:#fafafa;padding:15px 0}.logistics-step h3[data-v-aef9879e]{color:#303133;font-size:16px;border-bottom:1px solid #dcdfe6;padding:0 20px 15px 20px}.logistics-step .logistics-list[data-v-aef9879e]{height:328px;overflow-y:auto;padding:20px}.logistics-step .logistics-item[data-v-aef9879e]{position:relative;padding-bottom:10px}.logistics-step .logistics-line-step[data-v-aef9879e]{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px}.logistics-step .logistics-line-step .time[data-v-aef9879e]{margin-right:20px;width:160px;line-height:22px;font-weight:500;color:#303133}.logistics-step .logistics-line-step .content[data-v-aef9879e]{color:#303133;-webkit-box-flex:1;-ms-flex:1;flex:1;line-height:22px}.order-info[data-v-0cdabcb1]{margin:20px 0;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.order-info li[data-v-0cdabcb1]{width:33%;margin:10px 0}.delivery-complete[data-v-0cdabcb1]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:20px}.delivery-complete .el-icon-success[data-v-0cdabcb1]{color:#33af4a;font-size:63px}.delivery-complete .el-icon-error[data-v-0cdabcb1]{color:#f5222d;font-size:63px}.delivery-complete p[data-v-0cdabcb1]{margin-top:16px;color:#606266}.delivery-complete p[data-v-0cdabcb1]:first-of-type{margin-top:28px;font-size:24px;color:#303133}.delivery-todo[data-v-0cdabcb1]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.delivery-todo .status-text[data-v-0cdabcb1]{margin-top:50px;color:#303133;font-size:24px;font-weight:700}.delivery-todo .status-description[data-v-0cdabcb1]{margin-top:16px;margin-bottom:40px;color:#606266}.delivery-todo .status[data-v-0cdabcb1]{width:100%;position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.delivery-todo .status .time[data-v-0cdabcb1]{position:absolute;top:30px;left:30px;color:#909399}.delivery-todo .status .line[data-v-0cdabcb1]{height:1px;background-color:#2f54eb;-webkit-box-flex:1;-ms-flex:1;flex:1;margin:0 20px}.delivery-todo .status i[data-v-0cdabcb1]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:24px;width:24px;background-color:#2f54eb;color:#fff;border-radius:50%;-ms-flex-negative:0;flex-shrink:0}.delivery-todo .status i[data-v-0cdabcb1]:last-of-type{border:1px solid #c0c4cc;color:#c0c4cc;background-color:#fff}.delivery-todo .status span[data-v-0cdabcb1]{display:inline-block;margin-left:10px;font-size:16px;color:#303133;font-weight:700}.delivery-todo .status span[data-v-0cdabcb1]:last-of-type{color:#909399;font-weight:700}
\ No newline at end of file
.logistics-info[data-v-7b704b71]{display:-webkit-box;display:-ms-flexbox;display:flex}.logistics-info>div[data-v-7b704b71]{-webkit-box-flex:1;-ms-flex:1;flex:1}.logistics-info span[data-v-7b704b71]{display:inline-block}.logistics-info span+span[data-v-7b704b71]{margin-left:10px}.logistics-step[data-v-7b704b71]{margin-top:24px;background:#fafafa;padding:15px 0}.logistics-step h3[data-v-7b704b71]{color:#303133;font-size:16px;border-bottom:1px solid #dcdfe6;padding:0 20px 15px 20px}.logistics-step .logistics-list[data-v-7b704b71]{height:328px;overflow-y:auto;padding:20px}.logistics-step .logistics-item[data-v-7b704b71]{position:relative;padding-bottom:10px}.logistics-step .logistics-line-step[data-v-7b704b71]{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px}.logistics-step .logistics-line-step .time[data-v-7b704b71]{margin-right:20px;width:160px;line-height:22px;font-weight:500;color:#303133}.logistics-step .logistics-line-step .content[data-v-7b704b71]{color:#303133;-webkit-box-flex:1;-ms-flex:1;flex:1;line-height:22px}
\ No newline at end of file
[data-v-25f84e59] .el-divider--horizontal{margin:16px 0;margin-top:20px}.upload[data-v-25f84e59] .el-button{border-style:dashed}.el-icon-warning[data-v-77230a36]{color:#faad14;font-size:21px}.logistics-info[data-v-4f0cd98a]{display:-webkit-box;display:-ms-flexbox;display:flex}.logistics-info>div[data-v-4f0cd98a]{-webkit-box-flex:1;-ms-flex:1;flex:1}.logistics-info span[data-v-4f0cd98a]{display:inline-block}.logistics-info span+span[data-v-4f0cd98a]{margin-left:10px}.logistics-step[data-v-4f0cd98a]{margin-top:24px;background:#fafafa;padding:15px 0}.logistics-step h3[data-v-4f0cd98a]{color:#303133;font-size:16px;border-bottom:1px solid #dcdfe6;padding:0 20px 15px 20px}.logistics-step .logistics-list[data-v-4f0cd98a]{height:328px;overflow-y:auto;padding:20px}.logistics-step .logistics-item[data-v-4f0cd98a]{position:relative;padding-bottom:10px}.logistics-step .logistics-line-step[data-v-4f0cd98a]{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px}.logistics-step .logistics-line-step .time[data-v-4f0cd98a]{margin-right:20px;width:160px;line-height:22px;font-weight:500;color:#303133}.logistics-step .logistics-line-step .content[data-v-4f0cd98a]{color:#303133;-webkit-box-flex:1;-ms-flex:1;flex:1;line-height:22px}.write-off[data-v-73b5382e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:14px;color:#303133}.write-off .code[data-v-73b5382e]{margin-top:20px;color:#f5222d;font-size:20px}.goods-info[data-v-7e9e03b8]{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.goods-info img[data-v-7e9e03b8]{width:62px;height:62px;border:1px solid #f1f3f7;border-radius:5px}.goods-info .goods-text[data-v-7e9e03b8]{margin-left:18px;font-size:13px;color:#303133;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.goods-info .goods-text-info[data-v-7e9e03b8]{color:#909399;font-size:12px}.goods-info .goods-text-name[data-v-7e9e03b8]{margin-bottom:5px;line-height:16px}
\ No newline at end of file
[data-v-25f84e59] .el-divider--horizontal{margin:16px 0;margin-top:20px}.upload[data-v-25f84e59] .el-button{border-style:dashed}.el-icon-warning[data-v-3af8fe50]{color:#faad14;font-size:21px}.empty_block[data-v-c46fc112]:after{content:"\6682\65E0\7269\6D41\4FE1\606F"}.logistics-info[data-v-c46fc112]{display:-webkit-box;display:-ms-flexbox;display:flex}.logistics-info>div[data-v-c46fc112]{-webkit-box-flex:1;-ms-flex:1;flex:1}.logistics-info span[data-v-c46fc112]{display:inline-block}.logistics-info span+span[data-v-c46fc112]{margin-left:10px}.logistics-step[data-v-c46fc112]{margin-top:24px;background:#fafafa;padding:15px 0}.logistics-step h3[data-v-c46fc112]{color:#303133;font-size:16px;border-bottom:1px solid #dcdfe6;padding:0 20px 15px 20px}.logistics-step .logistics-list[data-v-c46fc112]{height:328px;overflow-y:auto;padding:20px}.logistics-step .logistics-item[data-v-c46fc112]{position:relative;padding-bottom:10px}.logistics-step .logistics-line-step[data-v-c46fc112]{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px}.logistics-step .logistics-line-step .time[data-v-c46fc112]{margin-right:20px;width:160px;line-height:22px;font-weight:500;color:#303133}.logistics-step .logistics-line-step .content[data-v-c46fc112]{color:#303133;-webkit-box-flex:1;-ms-flex:1;flex:1;line-height:22px}.write-off[data-v-5539a2cd]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;font-size:14px;color:#303133}.write-off .code[data-v-5539a2cd]{margin-top:20px;color:#f5222d;font-size:20px}.goods-info[data-v-b7f9a690]{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.goods-info img[data-v-b7f9a690]{width:62px;height:62px;border:1px solid #f1f3f7;border-radius:5px}.goods-info .goods-text[data-v-b7f9a690]{margin-left:18px;font-size:13px;color:#303133;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.goods-info .goods-text-info[data-v-b7f9a690]{color:#909399;font-size:12px}.goods-info .goods-text-name[data-v-b7f9a690]{margin-bottom:5px;line-height:16px}
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-05c2d03e"],{"1ba7":function(e,t,r){"use strict";r("d06d")},2072:function(e,t,r){"use strict";r("8e6e"),r("ac6a"),r("456d");var i=r("ade3"),s=r("71f6"),l=r("f121");function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){Object(i["a"])(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var d={getDelivery:{url:"/delivery-order/get-page-list",method:"post"},getPerformanceList:{url:"/order/get-page-list",method:"post"},getApplicationList:"/stock/application-list",getRefund:{url:"/refund-order/get-page-list",method:"post"},exportRefundData:{url:"/refund-order/order-export",method:"post"},exportDeliveryData:{url:"/delivery-order/order-export",method:"post"},exportPerformanceData:{url:"/order/order-export",method:"post"},getLogisticsInfo:{url:"/logistics/get-logistics-info",method:"post"},handleRefundOrder:{url:"/refund-order/process-refund-order",method:"post"},getDeliveryDetail:{url:"/delivery-order/get-delivery-detail",method:"post",useFormData:!0},delivering:{url:"/delivery-order/delivering",method:"post"},closeOrder:{url:"/delivery-order/close",method:"post",useFormData:!0}};d=Object(s["a"])(d,l["f"]),t["a"]=o({},d)},d06d:function(e,t,r){},de2d:function(e,t,r){"use strict";r.r(t);var i=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"p20"},[2===e.deliveryInfo.deliveryType&&0===e.deliveryInfo.deliveryFlag?r("div",{staticClass:"delivery-todo"},[r("div",{staticClass:"status"},[r("i",[e._v("1")]),r("span",[e._v("创建发货单")]),r("div",{staticClass:"line"}),r("i",[e._v("2")]),r("span",[e._v("门店核销")]),r("div",{staticClass:"time"},[e._v(e._s(e._f("formatDate")(e.deliveryInfo.deliveryTime)))])]),r("div",{staticClass:"status-text"},[e._v("等待核销")]),r("div",{staticClass:"status-description"},[e._v("发货单创建成功")]),r("div",[r("el-button",{staticClass:"specter",attrs:{type:"primary"}},[e._v("发货核销")]),r("el-button",[e._v("关闭发货单")])],1)]):e._e(),1===e.deliveryInfo.deliveryType&&0===e.deliveryInfo.deliveryFlag?r("div",{staticClass:"delivery-todo"},[r("div",{staticClass:"status"},[r("i",[e._v("1")]),r("span",[e._v("创建发货单")]),r("div",{staticClass:"line"}),r("i",[e._v("2")]),r("span",[e._v("仓库发货")]),r("div",{staticClass:"time"},[e._v(e._s(e._f("formatDate")(e.deliveryInfo.deliveryTime)))])]),r("div",{staticClass:"status-text"},[e._v("等待仓库发货")]),r("div",{staticClass:"status-description"},[e._v("发货单创建成功")]),r("div",[r("el-button",{staticClass:"specter",attrs:{type:"primary"}},[e._v("发货核销")]),r("el-button",[e._v("关闭发货单")])],1)]):2===e.deliveryInfo.deliveryType&&1===e.deliveryInfo.deliveryFlag?r("div",{staticClass:"delivery-complete"},[r("i",{staticClass:"el-icon-success"}),r("p",[e._v("核销成功")]),r("p",[e._v("仓库已核销,发货单完成")])]):1===e.deliveryInfo.deliveryType&&1===e.deliveryInfo.deliveryFlag?r("div",{staticClass:"delivery-complete"},[r("i",{staticClass:"el-icon-success"}),r("p",[e._v("已发货")]),r("p",[e._v("仓库已发货,发货单完成")])]):2===e.deliveryInfo.deliveryFlag?r("div",{staticClass:"delivery-complete"},[r("i",{staticClass:"el-icon-error"}),r("p",[e._v("发货单关闭")]),r("p",[e._v("仓库关闭发货单")]),r("p",[e._v(e._s(e.deliveryInfo.cancelReason))])]):e._e(),r("el-divider"),r("p",[e._v("\n 发货单信息\n ")]),1==e.deliveryInfo.deliveryFlag?r("ul",{staticClass:"order-info"},[r("li",[e._v("发货单号:"+e._s(e.deliveryInfo.deliveryId))]),r("li",[e._v("履约单号:"+e._s(e.deliveryInfo.orderId))]),r("li",[e._v("会员姓名:"+e._s(e.deliveryInfo.memberName))]),r("li",[e._v("会员卡号:"+e._s(e.deliveryInfo.memberCardNo))]),r("li",[e._v("配货方式:物流发货")]),r("li",[e._v("收货信息:"+e._s(e.deliveryInfo.consignee)+" "+e._s(e.deliveryInfo.consigneePhone)+" "+e._s(e.deliveryInfo.consigneeAddress))])]):r("ul",{staticClass:"order-info"},[r("li",[e._v("发货单号:"+e._s(e.deliveryInfo.deliveryId))]),r("li",[e._v("履约单号:"+e._s(e.deliveryInfo.orderId))]),r("li",[e._v("会员姓名:"+e._s(e.deliveryInfo.memberName))]),r("li",[e._v("会员卡号:"+e._s(e.deliveryInfo.memberCardNo))]),r("li",[e._v("配货方式:上门自提")]),r("li",[e._v("提货信息:"+e._s(e.deliveryInfo.consignee)+" "+e._s(e.deliveryInfo.consigneePhone))]),r("li",[e._v("自提点:"+e._s(e.deliveryInfo.pickUpPointAddress))]),r("li",[e._v("提货地址:"+e._s(e.deliveryInfo.pickUpPointName))]),r("li",[e._v("提货时间:"+e._s(e._f("formatDate")(e.deliveryInfo.pickUpStartTime))+" - "+e._s(e._f("formatDate")(e.deliveryInfo.pickUpStopTime)))])]),r("el-table",{attrs:{data:e.giftList}},[r("el-table-column",{attrs:{label:"礼品",width:"300"},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.row;return[r("div",{staticClass:"goods-info"},[r("img",{staticClass:"imgs-style",attrs:{src:i.giftImgUrl,alt:""}}),r("div",{staticClass:"goods-text"},[r("div",{staticClass:"goods-text-name"},[e._v("\n "+e._s(i.giftName)+"\n ")]),r("div",{staticClass:"goods-text-info"},[r("div",e._l(JSON.parse(i.giftSkuStrand),(function(t,i){return r("span",{key:i},[e._v(e._s(t.specStandardName)+":"+e._s(t.specStandardValueName)+"   ")])})),0),r("div",[e._v("SKU编码:"+e._s(i.giftSkuCode))])])])])]}}])}),r("el-table-column",{attrs:{label:"礼品编码",prop:"giftId"}}),r("el-table-column",{attrs:{label:"成本(元)",prop:"costPrice"}}),r("el-table-column",{attrs:{label:"数量",prop:"exchangeQuantity"}}),r("el-table-column",{attrs:{label:"物流公司 | 运单号"},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.row;return[r("p",[e._v(e._s(i.logisticsCompanyName||"--"))]),r("p",[e._v(e._s(i.logisticsNo||"--"))])]}}])})],1)],1)},s=[],l=(r("96cf"),r("1da1")),a=r("2072"),o=a["a"].getDeliveryDetail,d={name:"DeliveryDetail",data:function(){return{giftList:[],deliveryInfo:{},loading:!1}},created:function(){this.$emit("updateBread",[{breadName:"福利中心"},{breadName:"履约管理"},{breadName:"发货单",breadPath:"/performance/delivery"},{breadName:"发货单详情"}]),this.getDeliveryDetail()},methods:{getDeliveryDetail:function(){var e=Object(l["a"])(regeneratorRuntime.mark((function e(){var t,r,i=this;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return this.loading=!0,e.next=3,o({deliveryId:this.$route.query.deliveryId}).finally((function(){return i.loading=!1}));case 3:t=e.sent,r=t.result,this.deliveryInfo=r.orderDelivery,this.giftList=[r.orderDelivery];case 6:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()}},n=d,v=(r("1ba7"),r("2877")),c=Object(v["a"])(n,i,s,!1,null,"06d082c3",null);t["default"]=c.exports}}]);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -34,10 +34,10 @@ export default {
this.visible = true;
},
methods: {
handleConfirm() {
async handleConfirm() {
if(this.reason) {
this.loading = true;
closeOrder({
await closeOrder({
deliveryId: this.data.deliveryId,
desc: this.reason,
}).finally(() => this.loading = false);
......
<template>
<el-dialog title="物流详情" :visible.sync="visible" width="800px" @closed="$emit('close')">
<div class="logistics-info">
<div>
<span class="key">快递公司:</span>
<span>{{ logisticsCompanyName || '--' }}</span>
</div>
<div>
<span class="key">快递单号:</span>
<span>{{ logisticCode || '--' }}</span>
<el-button class="ml15" type="text" v-clipboard:copy="data.logisticCode" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</el-button>
</div>
</div>
<div v-if="logisticsList.length>0" class="logistics-step">
<h3>派送中</h3>
<el-timeline class="hollow logistics-list">
<el-timeline-item
v-for="(activity, index) in logisticsList"
:key="index"
:color="index===0?'':'#c0c4cc'">
<div class="logistics-line-step">
<span class="time">{{ activity.acceptTime || '--' }}</span>
<p class="content">{{ activity.acceptStation }}</p>
</div>
</el-timeline-item>
</el-timeline>
</div>
<div v-else class="empty_block"></div>
</el-dialog>
</template>
<script>
import fetch from '@/api/performance.js';
const { getLogisticsInfo } = fetch;
export default {
props: {
data: Object
},
data() {
return {
visible: false,
logisticsList: [],
logisticsCompanyName: '',
logisticCode: ''
};
},
mounted() {
this.visible = true;
this.getInfo();
},
methods: {
async getInfo() {
let { result } = await getLogisticsInfo({
companyCode: this.data.logisticsCompanyCode/* 'YD' */,
logisticsNo: this.data.logisticsNo/* '4312317986451' */,
});
this.logisticsList = result.traces || [];
this.logisticsList.reverse();
this.logisticsCompanyName = result.logisticsCompanyName;
this.logisticCode = result.logisticCode;
}
}
};
</script>
<style lang="scss" scoped>
.empty_block::after {
content: '暂无物流信息';
}
.logistics-info {
display: flex;
&>div {
flex: 1;
}
span {
display: inline-block;
}
span + span {
margin-left: 10px;
}
}
.logistics-step {
margin-top: 24px;
background: #fafafa;
padding: 15px 0px;
h3 {
color: #303133;
font-size: 16px;
border-bottom: 1px solid #dcdfe6;
padding: 0 20px 15px 20px;
};
.logistics-list {
height: 328px;
overflow-y: auto;
padding: 20px
};
.logistics-item {
position: relative;
padding-bottom: 10px;
}
.logistics-line-step {
display: flex;
font-size: 12px;
}
.logistics-line-step .time {
margin-right: 20px;
width: 160px;
line-height: 22px;
font-weight: 500;
color: #303133;
}
.logistics-line-step .content {
color: #303133;
flex: 1;
line-height: 22px;
}
}
</style>
......@@ -109,6 +109,9 @@ export default {
</script>
<style lang="scss" scoped>
.empty_block::after {
content: '暂无物流信息';
}
.logistics-info {
display: flex;
&>div {
......
......@@ -36,6 +36,7 @@ export default {
deliveryId: this.data.deliveryId,
}).finally(() => this.loading = false);
this.visible = false;
this.$emit('refresh');
}
}
};
......
......@@ -7,13 +7,13 @@
<div class="line"></div>
<i>2</i>
<span>门店核销</span>
<div class="time">{{ deliveryInfo.deliveryTime | formatDate }}</div>
<div class="time">{{ deliveryInfo.deliveryTime | formatDate('dateTime') }}</div>
</div>
<div class="status-text">等待核销</div>
<div class="status-description">发货单创建成功</div>
<div>
<el-button class="specter" type="primary">发货核销</el-button>
<el-button>关闭发货单</el-button>
<el-button class="specter" type="primary" @click="openDialog('WriteOff')">发货核销</el-button>
<el-button @click="openDialog('CancelOrder')">关闭发货单</el-button>
</div>
</div>
<div class="delivery-todo" v-if="deliveryInfo.deliveryType === 1 && deliveryInfo.deliveryFlag === 0">
......@@ -23,13 +23,13 @@
<div class="line"></div>
<i>2</i>
<span>仓库发货</span>
<div class="time">{{ deliveryInfo.deliveryTime | formatDate }}</div>
<div class="time">{{ deliveryInfo.deliveryTime | formatDate('dateTime') }}</div>
</div>
<div class="status-text">等待仓库发货</div>
<div class="status-description">发货单创建成功</div>
<div>
<el-button class="specter" type="primary">发货核销</el-button>
<el-button>关闭发货单</el-button>
<el-button class="specter" type="primary" @click="openDialog('LogisticsDelivery')">发货核销</el-button>
<el-button @click="openDialog('CancelOrder')">关闭发货单</el-button>
</div>
</div>
<div v-else-if="deliveryInfo.deliveryType === 2 && deliveryInfo.deliveryFlag === 1" class="delivery-complete">
......@@ -39,7 +39,7 @@
</div>
<div v-else-if="deliveryInfo.deliveryType === 1 && deliveryInfo.deliveryFlag === 1" class="delivery-complete">
<i class="el-icon-success"></i>
<p>已发货</p>
<p>发货成功</p>
<p>仓库已发货,发货单完成</p>
</div>
<div v-else-if="deliveryInfo.deliveryFlag === 2" class="delivery-complete">
......@@ -81,9 +81,10 @@
{{row.giftName}}
</div>
<div class="goods-text-info">
<div>
<span v-for="(item, i) in JSON.parse(row.giftSkuStrand)" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
<div v-if="row.giftSkuStrand">
<span v-for="(item, i) in JSON.parse(row.giftSkuStrand || '[]')" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
</div>
<span v-else>- -</span>
<div>SKU编码:{{ row.giftSkuCode }}</div>
</div>
</div>
......@@ -95,24 +96,35 @@
<el-table-column label="数量" prop="exchangeQuantity"></el-table-column>
<el-table-column label="物流公司 | 运单号">
<template slot-scope="{ row }">
<p>{{ row.logisticsCompanyName || '--' }}</p>
<p>{{ row.logisticsNo || '--' }}</p>
<div v-if="row.logisticsNo">
<p>{{ row.logisticsCompanyName || '--' }}<el-divider direction="vertical"></el-divider>{{ row.logisticsNo || '--' }}</p>
<p><el-button type="text" @click="openDialog('LogisticsDetail')">查看物流</el-button></p>
</div>
<span v-else>- -</span>
</template>
</el-table-column>
</el-table>
<component :is="activeDialog" :data="deliveryInfo" @close="activeDialog=''" @refresh="getDeliveryDetail"></component>
</div>
</template>
<script>
import CancelOrder from './components/cancel-order-dialog';
import LogisticsDelivery from './components/logistics-delivery-dialog';
import WriteOff from './components/writeoff-dialog';
import LogisticsDetail from './components/logistics-detail-dialog';
import fetch from '@/api/performance.js';
const { getDeliveryDetail } = fetch;
export default {
name: 'DeliveryDetail',
components: { CancelOrder, LogisticsDelivery, WriteOff, LogisticsDetail },
data() {
return {
giftList: [],
deliveryInfo: {},
loading: false,
activeDialog: ''
};
},
created() {
......@@ -139,8 +151,32 @@ export default {
let { result } = await getDeliveryDetail({ deliveryId: this.$route.query.deliveryId }).finally(()=> this.loading = false);
this.deliveryInfo = result.orderDelivery,
this.giftList = [ result.orderDelivery ];
},
openDialog(dialogName) {
this.activeDialog = dialogName;
},
},
filters: {
formatDate(ms, type = 'date') {
if (!ms) return '--';
const date = [];
const time = [];
ms = new Date(ms);
date.push(ms.getFullYear());
date.push((ms.getMonth() + 1).toString().padStart(2, '0'));
date.push(ms.getDate().toString().padStart(2, '0'));
time.push(ms.getHours().toString().padStart(2, '0'));
time.push(ms.getMinutes().toString().padStart(2, '0'));
time.push(ms.getSeconds().toString().padStart(2, '0'));
return {
date: date.join('-'),
time: time.join(':'),
dateTime: date.join('-') + ' ' + time.join(':')
}[type];
}
}
},
};
</script>
......
......@@ -37,9 +37,10 @@
{{row.giftName}}
</div>
<div class="goods-text-info">
<div>
<span v-for="(item, i) in JSON.parse(row.giftSkuStrand)" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
<div v-if="row.giftSkuStrand">
<span v-for="(item, i) in JSON.parse(row.giftSkuStrand || '[]')" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
</div>
<span v-else>- -</span>
<div>SKU编码:{{ row.giftSkuCode }}</div>
</div>
</div>
......@@ -68,22 +69,22 @@
<div class="mt10"><span>收货信息:</span><span>{{row.consignee}} {{row.consigneePhone}} {{row.consigneeAddress}}</span></div>
</template>
<template v-else-if="row.deliveryType === 1 && row.deliveryFlag === 1">
<div class="mt10"><span>完成时间:</span><span>{{row.deliveryTime | formatDate}}</span></div>
<div class="mt10"><span>完成时间:</span><span>{{row.deliveryTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>收货信息:</span><span>{{row.consignee}} {{row.consigneePhone}} {{row.consigneeAddress}}</span></div>
</template>
<template v-else-if="row.deliveryType === 2 && row.deliveryFlag === 0">
<div class="mt10"><span>自提信息:</span><span>{{row.consignee}} {{row.consigneePhone}}</span></div>
<div class="mt10"><span>自提时间:</span><span>{{row.pickUpStopTime | formatDate}}</span></div>
<div class="mt10"><span>自提时间:</span><span>{{row.pickUpStopTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>自提地址:</span><span>{{row.pickUpStartTime}} - {{row.pickUpStopTime}}</span></div>
</template>
<template v-else-if="row.deliveryType === 2 && row.deliveryFlag === 1">
<div class="mt10"><span>自提信息:</span><span>{{row.consignee}} {{row.consigneePhone}}</span></div>
<div class="mt10"><span>完成时间:</span><span>{{row.deliveryTime | formatDate}}</span></div>
<div class="mt10"><span>完成时间:</span><span>{{row.deliveryTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>核销门店:</span><span>{{row.pickUpPointName}}</span></div>
<div class="mt10"><span>操作人:</span><span>{{row.pickUpPointName}}</span></div>
</template>
<template v-else-if="row.deliveryFlag === 2">
<div class="mt10"><span>关闭时间:</span><span>{{row.cancelTime | formatDate}}</span></div>
<div class="mt10"><span>关闭时间:</span><span>{{row.cancelTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>关闭原因:</span><span>{{row.cancelReason}}</span></div>
</template>
</div>
......@@ -308,7 +309,8 @@ export default {
return {
date: date.join('-'),
time: time.join(':')
time: time.join(':'),
dateTime: date.join('-') + ' ' + time.join(':')
}[type];
}
},
......
......@@ -40,9 +40,10 @@
{{row.giftName}}
</div>
<div class="goods-text-info">
<div>
<span v-for="(item, i) in JSON.parse(row.giftSkuStrand)" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
<div v-if="row.giftSkuStrand">
<span v-for="(item, i) in JSON.parse(row.giftSkuStrand || '[]')" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
</div>
<span v-else>- -</span>
<div>SKU编码:{{ row.giftSkuCode }}</div>
</div>
</div>
......@@ -249,7 +250,8 @@ export default {
return {
date: date.join('-'),
time: time.join(':')
time: time.join(':'),
dateTime: date.join('-') + ' ' + time.join(':')
}[type];
}
},
......
......@@ -41,9 +41,10 @@
{{row.giftName}}
</div>
<div class="goods-text-info">
<div>
<span v-for="(item, i) in JSON.parse(row.giftSkuStandard)" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
<div v-if="row.giftSkuStandard">
<span v-for="(item, i) in JSON.parse(row.giftSkuStandard || '[]')" :key="i">{{ item.specStandardName }}{{ item.specStandardValueName }} &nbsp;&nbsp;</span>
</div>
<span v-else>- -</span>
<div>SKU编码:{{ row.giftSkuCode }}</div>
</div>
</div>
......@@ -73,25 +74,25 @@
<div class="mt10"><span>退货说明:</span><span>{{row.refundRemark}}</span></div>
</template>
<template v-else-if="row.refundFlag === 0 && row.refundLogisticsNo">
<div class="mt10"><span>寄回时间:</span><span>{{row.deliveryTime | formatDate}}</span></div>
<div class="mt10"><span>寄回时间:</span><span>{{row.deliveryTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>退货原因:</span><span>{{row.refundReason}}</span></div>
<div class="mt10"><span>退货说明:</span><span>{{row.refundRemark}}</span></div>
</template>
<template v-else-if="row.refundFlag === 1">
<div class="mt10"><span>操作人:</span><span>{{row.refundUserName}}</span></div>
<div class="mt10"><span>操作时间:</span><span>{{row.processTime | formatDate}}</span></div>
<div class="mt10"><span>操作时间:</span><span>{{row.processTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>退货原因:</span><span>{{row.refundReason}}</span></div>
<div class="mt10"><span>退货说明:</span><span>{{row.refundRemark}}</span></div>
</template>
<template v-else-if="row.refundFlag === 2">
<div class="mt10"><span>操作人:</span><span>{{row.refundUserName}}</span></div>
<div class="mt10"><span>操作时间:</span><span>{{row.processTime | formatDate}}</span></div>
<div class="mt10"><span>操作时间:</span><span>{{row.processTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>拒绝原因:</span><span>{{row.refuseReason}}</span></div>
<div class="mt10"><span>退货原因:</span><span>{{row.refundReason}}</span></div>
<div class="mt10"><span>退货说明:</span><span>{{row.refundRemark}}</span></div>
</template>
<template v-else-if="row.refundFlag === 3">
<div class="mt10"><span>关闭时间:</span><span>{{row.cancelTime | formatDate}}</span></div>
<div class="mt10"><span>关闭时间:</span><span>{{row.cancelTime | formatDate('dateTime')}}</span></div>
<div class="mt10"><span>关闭原因:</span><span>{{row.cancelReason}}</span></div>
</template>
</div>
......@@ -424,7 +425,8 @@ export default {
return {
date: date.join('-'),
time: time.join(':')
time: time.join(':'),
dateTime: date.join('-') + ' ' + time.join(':')
}[type];
}
},
......@@ -443,6 +445,9 @@ export default {
</script>
<style lang="scss" scoped>
.empty_block::after {
content: '暂无物流信息';
}
.logistics-info {
display: flex;
&>div {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment