vue-list.blade.php 48 KB

1
  1. @extends('layouts.base') @section('title', "中台售后列表") @section('content') <link rel="stylesheet" type="text/css" href="{{static_url('yunshop/goods/vue-goods1.css')}}"/> <style> .edit-i{display:none;} .el-table_1_column_2:hover .edit-i{font-weight:900;padding:0;margin:0;display:inline-block;} .el-tabs__item,.is-top{font-size:16px} .el-tabs__active-bar { height: 3px;} .list-title{display:flex;width:100%;background:#f9f9f9;padding:15px 10px;font-weight:900;border:1px solid #e9e9e9;} .list-title .list-title-1{display:flex;align-items:center;justify-content: center;} .list-info{display:flex ;padding: 10px;justify-content: left;background:#f9f9f9;} .list-con{display:flex;width:100%;font-size:12px;font-weight:500;align-items: stretch;border-bottom: 1px solid rgb(233, 233, 233);} .list-con-goods{display:flex;align-items:center;justify-content: center;box-sizing:border-box;padding-left:10px;border-top:1px solid #e9e9e9;min-height:90px} .list-con-goods-text{min-height:70px;overflow:hidden;flex:1;display: flex;flex-direction: column;justify-content: space-between;} .list-con-goods-price{border-right:1px solid #e9e9e9;border-left:1px solid #e9e9e9;min-width:150px;min-height:90px;text-align: left;padding:20px;display: flex;flex-direction: column;} .list-con-goods-title{font-size:14px;line-height:20px;text-overflow: -o-ellipsis-lastline;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;line-clamp: 2;-webkit-box-orient: vertical;} .list-con-goods-option{font-size:12px;color:#999} .list-con-member-info{display:flex;padding:0 2px;flex-direction: column;flex:1;min-width: 120px;line-height:28px;justify-content: center;text-align:left;font-size:14px;border-top:1px solid #e9e9e9;border-right:1px solid #e9e9e9;} .list-member{padding: 10px;font-size: 12px;font-weight: 500;display:flex} .list-num{flex:3;display:flex;align-items:center;border-right:1px solid #e9e9e9;justify-content: center;} .list-gen{display:flex;align-items:center;justify-content: center;line-height:28px;} .list-gen-txt{flex:1;border-right:1px solid #e9e9e9;border-bottom:1px solid #e9e9e9;align-items:center;justify-content: center;display:flex;} .list-opt{flex:1;display:flex;align-items:center;border-left:1px solid #e9e9e9;justify-content: center;} /* 导航 */ .el-radio-button .el-radio-button__inner,.el-radio-button:first-child .el-radio-button__inner {border-radius: 4px 4px 4px 4px;border-left: 0px;} .el-radio-button__inner{border:0;} .el-radio-button:last-child .el-radio-button__inner {border-radius: 4px 4px 4px 4px;} .a-btn { border-radius: 2px; padding: 8px 12px; box-sizing: border-box; color: #666; font-weight: 500; text-align: center; margin-left: 1%; background-color: #fff; } .a-btn:hover{ background-color: #29BA9C; color: #FFF; } .a-colour1 { background-color: #fff; color: #666; } .a-colour2 { background-color: #29BA9C; color: #FFF; } </style> <div class="all"> <div id="app" v-cloak> <div class="vue-head"> <div class="vue-main-title" style="margin-bottom:20px"> <div class="vue-main-title-left"></div> <div class="vue-main-title-content">订单筛选</div> <div class="vue-main-title-button"> </div> </div> <div class="vue-search"> <el-form :inline="true" :model="search_form" class="demo-form-inline"> <el-form-item label="" prop=""> <el-select v-model="search_form.middleground_configuration_id" placeholder="请选择供应链" clearable remote filterable > <el-option v-for="item in middleground_configuration" :key="item.id" :label="item.title" :value="item.id"></el-option> </el-select> </el-form-item> <el-form-item label=""> <el-select v-model="search_form.order_searchs" clearable placeholder="售后搜索项" @change="orderSearchsChange" style="width:150px"> <el-option v-for="(item,index) in order_searchs_options" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </el-form-item> <el-form-item label=""> <el-input v-model="search_form.order_searchs_string" :placeholder="order_searchs_string_placeholder"></el-input> </el-form-item> <el-form-item label=""> <el-input v-model="search_form.product_title" placeholder="商品名称"></el-input> </el-form-item> <el-form-item label=""> <el-select v-model="search_form.status" clearable placeholder="售后状态" style="width:150px"> <el-option label="待审核" value="wait"></el-option> <el-option label="待发货" value="1"></el-option> <el-option label="待收货" value="2"></el-option> <el-option label="待退款" value="3"></el-option> <el-option label="已完成" value="4"></el-option> <el-option label="已关闭" value="-1"></el-option> <el-option label="已驳回" value="-10"></el-option> </el-select> </el-form-item> <el-form-item label=""> <el-date-picker v-model="times" type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="margin-left:5px;" align="right"> </el-date-picker> </el-form-item> <el-form-item label=""> <el-button type="primary" @click="search(1)">搜索</el-button> </el-form-item> </el-form> </div> </div> <div class="vue-main"> <div class="vue-main-form"> <div class="vue-main-title" style="margin-bottom:20px"> <div class="vue-main-title-left"></div> <div class="" style="text-align:left;font-size:14px;color:#999"> <span>售后数:[[count]]</span>&nbsp;&nbsp;&nbsp; </div> <div class="vue-main-title-button"> </div> </div> <div v-for="(item,index) in list" style="border:1px solid #e9e9e9;border-radius:10px;margin-bottom:10px"> <div class="list-info"> <div style="display:flex;flex-wrap:wrap"> <div class="vue-ellipsis" style="color:#999;max-width:150px"> <strong>订单ID:</strong>[[item.order.id]]&nbsp;&nbsp;&nbsp; </div> <div class="vue-ellipsis" style="color:#999;max-width:240px"> <strong>售后编号:</strong>[[item.after_sale_sn]]&nbsp;&nbsp;&nbsp; </div> <div class="vue-ellipsis" style="color:#999;max-width:240px"> <strong>中台订单编号:</strong>[[item.order.order_sn]]&nbsp;&nbsp;&nbsp; </div> <div class="vue-ellipsis" style="color:#999;max-width:300px"> <strong>商城订单编号:</strong>[[item.order.third_order_sn]]&nbsp;&nbsp;&nbsp; </div> <div class="vue-ellipsis" style="color:#999;max-width:230px"> <strong>售后时间:</strong>[[item.created_at]]&nbsp;&nbsp;&nbsp; </div> </div> </div> <div class="list-con"> <div style="flex:3;min-width:400px"> <div class="list-con-goods"> <div class="list-con-goods-img" style="width:80px"> <el-image :src="item.order_item.image_url" style="width:70px;height:70px"></el-image> </div> <div class="list-con-goods-text" :style="{justifyContent:(item.order_item.sku_title?'':'center')}"> <div class="list-con-goods-title" style="color:#29BA9C;cursor: pointer;" v-if="item.order_item.goods_id" @click="gotoGoods(item.order_item.goods_id)">[[item.order_item.title]]</div> <div class="list-con-goods-title" style="" v-else>[[item.order_item.title]]</div> <div class="list-con-goods-option" v-if="item.order_item.sku_title">规格:[[item.order_item.sku_title]]</div> </div> <div class="list-con-goods-price" style="width:200px;margin: 0 auto;"> <div>中台子订单金额:[[item.order_item.amount]]</div> <div>申请退款金额:[[item.amount]]</div> <div v-if="item.status == 4">实际退款金额:[[item.practical_amount]]</div> </div> </div> </div> <div class="list-con-member-info vue-ellipsis"> <div style="min-width:70%;margin:0 auto"> <div >售后类型:[[item.refund_type_name]]</div> </div> </div> {{-- <div class="list-con-member-info vue-ellipsis" style="text-align:center;min-width: 90px;">--}} {{-- <div><strong>[[item.pay_type_name]]</strong></div>--}} {{-- <div><strong v-if="item.pay_type">[[item.pay_type]]</strong></div>--}} {{-- </div>--}} <div class="list-con-member-info vue-ellipsis" style="text-align:center"> <div style="min-width:70%;margin:0 auto"> <div style="color:#29BA9C">[[item.after_sale_name_show]]</div> </div> </div> <div class="list-con-member-info vue-ellipsis" style="text-align:center;min-width: 80px;border-right:0"> <div v-if="item.status == 1 && item.self_order_id > 0" > <el-button @click="confirmSend(item.order.id,item)" size="mini" type="danger" style="width:80%;margin:0 auto;margin-bottom:5px;">确认发货</el-button><br> </div> <div v-if="item.self_order_id > 0 && item.status == 0 && (item.after_sales_audit.status != 0 && item.after_sales_audit.status != 1)"> <el-button @click="reapplyOrder(item)" size="mini" type="danger" style="width:80%;margin:0 auto;margin-bottom:5px;">重新申请</el-button><br> </div> <div v-if="item.self_order_id > 0 && item.status == 0 && item.after_sales_audit.status == 0" > <el-button @click="cancelOrder(item.id)" size="mini" type="danger" style="width:80%;margin:0 auto;margin-bottom:5px;">取消申请</el-button><br> </div> <div v-if="item.self_order_id > 0 &&item.status == 0 && item.after_sales_audit.status == 0"> <el-button @click="updateOrder(item)" size="mini" type="primary" style="width:80%;margin:0 auto;margin-bottom:5px;">修改申请</el-button><br> </div> </div> </div> <div class="list-member"> <div style="justify-content: flex-end;flex:1;display:flex"> <a style="margin-right: 20px;" v-if="item.self_order_id > 0" @click="gotoOrderDetail(item.self_order_id)" style="color:#29BA9C">查看订单详情</a> <a @click="gotoDetail(item)" style="color:#29BA9C">查看详情</a> </div> </div> </div> </div> </div> <div> <el-dialog :visible.sync="reapply_refund_show" width="650px" title="重新申请"> <el-form ref="refund_pass_form" :model="reapply_refund_form"> <div v-if="reapply_refund_form.order_goods[reapply_refund_form_k]" class="vue-head"> <div class="vue-main-title"> <div class="vue-main-title-left"></div> <div class="vue-main-title-content">商品信息(仅为中台的商品信息)</div> </div> <div class="vue-main-form"> <el-table :data="reapply_refund_form.order_goods[reapply_refund_form_k]" style="width: 100%"> <el-table-column prop="product_id" label="商品ID" width="100" align="center"></el-table-column> <el-table-column prop="" label="商品" width="60" align="center"> <template slot-scope="scope"> <img :src="scope.row.image_url" style="width:50px;height:50px;"> </template> </el-table-column> <el-table-column prop="down_time" label="" min-width="180" align="left"> <template slot-scope="scope"> <div class="list-con-goods-title" style="color:#29BA9C;cursor: pointer;" @click="gotoGoods(scope.row.goods_id)"> [[scope.row.title]] </div> <div class="list-con-goods-option">规格: [[scope.row.goods_option_title]]</div> <div class="list-con-goods-option">数量: [[scope.row.total]]</div> </template> </el-table-column> <el-table-column prop="down_time" label="商品价格" min-width="230" align="center"> <template slot-scope="scope"> <div> <div style="display:flex;justify-content: center;"> <div style="flex:1;text-align:right">价格:</div> <div style="flex:1;text-align:left">¥[[scope.row.amount]]</div> </div> </div> </template> </el-table-column> </el-table> </div> </div> <el-form-item label="服务类型" prop="refund_type"> <el-radio v-for="(item,value) in reapply_refund_form.after_sales_type[reapply_refund_form_k]" v-model.number="reapply_refund_form.refund_type[reapply_refund_form_k]" :label="value">[[item]]</el-radio> </el-form-item> <el-form-item label="换货商品规格" prop="barter_sku_id" v-if="reapply_refund_form.refund_type[reapply_refund_form_k] == 2"> <el-radio v-for="(item,value) in reapply_refund_form.after_sales_goods_options[reapply_refund_form_k]" v-model.number="reapply_refund_form.barter_sku_id[reapply_refund_form_k]" :label="item.id">[[item.title]]</el-radio> </el-form-item> <el-form-item label="" prop="refund_type" v-if="reapply_refund_form.refund_type[reapply_refund_form_k] == 2"> 换货商品数量: <el-input v-model="reapply_refund_form.barter_num[reapply_refund_form_k]" placeholder="换货商品数量"></el-input> </el-form-item> <el-form-item label="货物状态" prop="is_received" v-if="reapply_refund_form.refund_type[reapply_refund_form_k] != 2"> <el-radio v-model.number="reapply_refund_form.is_received[reapply_refund_form_k]" :label="1">已收到货</el-radio> <el-radio v-model.number="reapply_refund_form.is_received[reapply_refund_form_k]" :label="0">未收到货</el-radio> </el-form-item> <el-form-item label="" v-if="reapply_refund_form.refund_type[reapply_refund_form_k] != 2"> 申请原因: <el-input v-model="reapply_refund_form.reason[reapply_refund_form_k]" :rows="3" type="textarea"></el-input> </el-form-item> <el-form-item label="退款方式" prop="refund_way" v-if="reapply_refund_form.refund_type[reapply_refund_form_k] != 2"> <el-radio v-model.number="reapply_refund_form.refund_way[reapply_refund_form_k]" :label="0">自定义金额</el-radio> <el-radio v-model.number="reapply_refund_form.refund_way[reapply_refund_form_k]" :label="1">商品个数</el-radio> </el-form-item> <el-form-item label="" v-if="reapply_refund_form.refund_type[reapply_refund_form_k] != 2 && reapply_refund_form.refund_way[reapply_refund_form_k] == 0"> 退款金额: <el-input v-model="reapply_refund_form.amount[reapply_refund_form_k]" placeholder="退款金额"></el-input> </el-form-item> <el-form-item label="" v-if="reapply_refund_form.refund_type[reapply_refund_form_k] != 2 && reapply_refund_form.refund_way[reapply_refund_form_k] == 1"> 退款商品个数: <el-input v-model="reapply_refund_form.num[reapply_refund_form_k]" placeholder="退款商品个数"></el-input> </el-form-item> <el-form-item label="" v-if="reapply_refund_form.refund_type[reapply_refund_form_k] != 2 "> 退款运费金额: <el-input v-model="reapply_refund_form.freight[reapply_refund_form_k]" placeholder="退款金额"></el-input> </el-form-item> <el-form-item label="" v-if="reapply_refund_form.refund_type[reapply_refund_form_k] != 2"> 退款技术服务费金额: <el-input v-model="reapply_refund_form.technical_services_fee[reapply_refund_form_k]" max="" placeholder="退款金额"></el-input> </el-form-item> <el-form-item label=""> <span v-if="reapply_refund_form.refund_type[reapply_refund_form_k] != 2"> 退款说明: </span> <span v-else> 换货说明: </span> <el-input v-model="reapply_refund_form.description[reapply_refund_form_k]" :rows="3" type="textarea"></el-input> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="reapply_refund_show = false">取 消</el-button> <el-button type="primary" @click="confirmReapplyRefund()">确 认</el-button> </span> </el-dialog> <!-- 确认发货 --> <el-dialog :visible.sync="confirm_send_show" width="750px" title="确认发货"> <div style="height:400px;overflow:auto" id="confirm-send"> <el-form ref="send" :model="send" :rules="send_rules" label-width="15%"> <el-form-item label="收件人信息" prop="aggregation"> <div>收 件 人: [[address_info.contacts]] / [[address_info.tel]]</div> <div>收货地址: [[address_info.province_name.name]][[address_info.city_name.name]][[address_info.district_name.name]][[address_info.address]]</div> </el-form-item> <div> <el-form-item label="快递公司"> <el-select v-model="send.express_code" clearable filterable placeholder="快递公司" :disabled='readonly' style="width:70%;"> <el-option label="请选择快递" value=""></el-option> <el-option v-for="(item,index) in expressCompanies" :key="index" :label="item.name" :value="item.code"></el-option> </el-select> </el-form-item> <el-form-item label="快递单号" prop=""> <el-input v-model="send.express_sn" :disabled='readonly' style="width:70%;"></el-input> </el-form-item> </div> <el-table ref="multipleTable" :data="order_goods_send_list" tooltip-effect="dark" height="250" style="width: 100%" @selection-change="moreSendChange"> {{-- <el-table-column type="selection" width="55"></el-table-column>--}} <el-table-column width="550"> <template slot-scope="scope"> <div style="display:flex;width: 88%;"> <div style="width:50px;height:50px"> <img :src="scope.row.image_url" alt="" style="width:50px;height:50px"> </div> <div style="margin-left:20px;display: flex;flex-direction: column;justify-content: space-between;"> <div style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">[[scope.row.title]]</div> <div style="color:#999">[[scope.row.product_id]]</div> </div> </div> </template> </el-table-column> <el-table-column> <template slot-scope="scope"> <div style="color:#999">[[scope.row.sku_title]]</div> </template> </el-table-column> </el-table> </el-form> </div> <span slot="footer" class="dialog-footer"> <el-button @click="confirm_send_show = false">取 消</el-button> <el-button type="primary" @click="sureconfirmSend()">确认发货 </el-button> </span> </el-dialog> </div> <!-- 分页 --> <div class="vue-page" v-if="total>0"> <el-row> <el-col align="right"> <el-pagination layout="prev, pager, next,jumper" @current-change="search" :total="total" :page-size="per_page" :current-page="current_page" background ></el-pagination> </el-col> </el-row> </div> </div> </div> {{--@include('public.admin.orderOperation')--}} {{--@include('public.admin.orderOperationV')--}} <script> var app = new Vue({ el: "#app", delimiters: ['[[', ']]'], name: 'test', data() { return { confirm_reapply_refund_url:'',//请求链接 confirm_reapply_refund_confirm:'',//提示语 reapply_refund_form_k:0, reapply_refund_form_count:[], reapply_refund_form:{ order_id:[], order_item_id:[], amount:[], reason_type:[], reason:[], description:[], is_received:[], detail_images:[], refund_type:[], order_goods:[], third_order_sn:[], is_syn:[], after_sales_type:[], freight:[], technical_services_fee:[], barter_sku_id:[], barter_num:[], refund_way:[], num:[], after_sales_goods_options:[], }, reapply_refund_show:false,//同步中台售后弹窗 {{--commonPartUrl: '{!! yzWebFullUrl('order.order-list.common-part') !!}', //获取公共参数链接--}} listUrl: '{!! yzWebFullUrl('plugin.yz-supply.admin.refund.index-list') !!}',//获取订单数据链接 list:[], count:0, has_many_level:[], change_sort:'', times:[], //页面返回全部参数 responseResults:{}, //插件判断条件 extra_param:{}, //订单条件 code:'all', expressCompanies:[],//快递公司 middleground_configuration:[],//中台供应链 //搜索条件参数 search_form:{ middleground_configuration_id:0, order_searchs:'third_order_sn', }, order_searchs_string_placeholder:"请输入", order_searchs_options:[ {  value: 'third_order_sn', label: '商城订单编号'}, {  value: 'after_sale_sn', label: '售后编号'}, ], close_order_id:"", close_order_api:"", close_order1_id:"", close_order1_api:"", cancel_send_show:false,// 取消发货弹窗 cancel_send_con:"",//取消发货原因 cancel_send_id:'', confirm_send_show:false,// 确认发货弹窗 confirm_send_id:"", order_model:{}, dispatch_price:0,//运费 order_goods_model:[], address_info:{ province_name:{}, city_name:{}, district_name:{}, }, //发货提交信息 send:{ dispatch_type_id:1, express_code:"", express_sn:"", order_sn:"", }, send_rules:{ }, order_goods_send_list:[ // {'goods_id':231284,'title':'测试','thumb':'https://fjfff-1301507422.cos.ap-guangzhou.myqcloud.com//images//5//2020//08//GjeOooWqo8O2dlw2v5ODzDOZOqMOeJ.jpg'}, // {'goods_id':231284,'title':'测试','thumb':'https://fjfff-1301507422.cos.ap-guangzhou.myqcloud.com//images//5//2020//08//GjeOooWqo8O2dlw2v5ODzDOZOqMOeJ.jpg'} ], send_order_goods_ids:[], street:0, province_list:[], city_list : [], district_list : [], street_list : [], areaLoading:false, rules: {}, current_page:1, total:1, per_page:1, readonly:false, operationType:'', operationOrder:{}, dialog_show:0, } }, created() { let result = this.viewReturn(); this.__initial(result); this.search_form.member_id = this.getParam('member_id') }, mounted() { this.getMiddlegroundConfiguration(); }, methods: { //视图返回数据 viewReturn() { return {!! $data?:'{}' !!}; }, //初始化页面数据,请求链接 __initial(data) { if (data.order_searchs_string) { this.search_form.order_searchs_string = data.order_searchs_string; } if (data.order_searchs) { this.search_form.order_searchs = data.order_searchs; } console.log(data.middleground_configuration_id); if (data.middleground_configuration_id) { this.search_form.middleground_configuration_id = parseInt(data.middleground_configuration_id); } this.responseResults = data; console.log(data); }, getMiddlegroundConfiguration(){ this.$http.post('{!! yzWebFullUrl('plugin.yz-supply.admin.middleground-configuration.get-middleground-configurations') !!}').then(function (response) { if (response.data.result) { this.middleground_configuration = response.data.data; if(this.search_form.middleground_configuration_id == 0){ this.search_form.middleground_configuration_id = this.middleground_configuration[0].id; } this.getData(1); } else { this.$message({message: response.data.msg, type: 'error'}); } }, function (response) { this.$message({message: response.data.msg, type: 'error'}); }) }, //订单筛选项更改时更改输入框提示语 orderSearchsChange(e){ if(e != ""){ this.order_searchs_string_placeholder = "请输入"+this.order_searchs_options[e-1].label; } }, //订单取消 cancelOrder(id,item){ this.$confirm('确定取消编号:'+item.order_sn+'订单吗?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => { let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'}); this.$http.post('{!! yzWebFullUrl('plugin.yz-supply.admin.cloud.cloud-order.cancel-order') !!}',{order_id:id,order_sn:item.order_sn,middleground_configuration_id:this.search_form.middleground_configuration_id}).then(function (response) { if (response.data.result) { this.$message({type: 'success',message: '取消成功!'}); this.getData(1); } else{ this.$message({type: 'error',message: response.data.msg}); } loading.close(); },function (response) { this.$message({type: 'error',message: response.data.msg}); loading.close(); } ); }).catch(() => { this.$message({type: 'info',message: '已取消'}); }); }, //重新申请售后 reapplyOrder(item){ this.confirm_reapply_refund_confirm = "确认重新申请(如果已关闭重新申请会新生成一个记录)?"; this.confirm_reapply_refund_url = '{!! yzWebFullUrl('plugin.yz-supply.admin.refund.refund') !!}'; this.reapplyRefundFormData(item); }, reapplyRefundFormData(item){ var order_item = []; order_item[0] = item.order_item; this.reapply_refund_show = true; this.reapply_refund_form.order_item_id[0] = item.order_item.id; this.reapply_refund_form.order_id[0] = item.order.id; this.reapply_refund_form.amount[0] = item.amount; this.reapply_refund_form.reason_type[0] = item.reason_type; this.reapply_refund_form.reason[0] = item.reason; this.reapply_refund_form.description[0] = item.description; this.reapply_refund_form.is_received[0] = item.is_received; this.reapply_refund_form.detail_images[0] = item.detail_images; this.reapply_refund_form.refund_type[0] = item.type; this.reapply_refund_form.order_goods[0] = order_item; this.reapply_refund_form.third_order_sn[0] = item.order.third_order_sn; this.reapply_refund_form.is_syn[0] = 1; this.reapply_refund_form.freight[0] = (item.freight/100).toFixed(2); this.reapply_refund_form.technical_services_fee[0] = (item.technical_services_fee/100).toFixed(2); this.reapply_refund_form.barter_sku_id[0] = item.barter_sku_id; this.reapply_refund_form.barter_num[0] = item.barter_num; this.reapply_refund_form.refund_way[0] = item.refund_way; this.reapply_refund_form.num[0] = item.num; this.reapply_refund_form.middleground_configuration_id = this.search_form.middleground_configuration_id console.log(this.reapply_refund_form); }, /** * 修改申请 */ updateOrder(item){ console.log(item); this.reapply_refund_form.after_sales_id = item.id; this.confirm_reapply_refund_confirm = "确认修改申请?"; this.confirm_reapply_refund_url = '{!! yzWebFullUrl('plugin.yz-supply.admin.refund.refund-update') !!}'; this.get_reapply_refund_type = '{!! yzWebFullUrl('plugin.yz-supply.admin.refund.get-reapply-refund-type') !!}'; let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'}); this.$http.post(this.get_reapply_refund_type,{'goods_id':item.order_item.goods_id,middleground_configuration_id:this.search_form.middleground_configuration_id,order_id :item['order_id']}).then(function (response) { if (response.data.result) { this.reapply_refund_show = false; this.reapply_refund_form.after_sales_type[0] = response.data.data.after_sales_type; this.reapply_refund_form.after_sales_goods_options[0] = response.data.data.after_sales_goods_options; this.reapplyRefundFormData(item); } else{ this.$message({type: 'error',message: response.data.msg}); } loading.close(); },function (response) { this.$message({type: 'error',message: response.data.msg}); loading.close(); } ); }, //申请售后到中台 confirmReapplyRefund(){ this.$confirm( this.confirm_reapply_refund_confirm, '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => { let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'}); this.$http.post(this.confirm_reapply_refund_url,{ middleground_refund_form :this.reapply_refund_form}).then(function (response) { if (response.data.result) { this.reapply_refund_show = false; this.$message({type: 'success',message: '成功!'}); this.getData(this.current_page) } else{ this.$message({type: 'error',message: response.data.msg}); } loading.close(); },function (response) { this.$message({type: 'error',message: response.data.msg}); loading.close(); } ); }).catch(() => { this.$message({type: 'info',message: '已取消'}); }); }, //取消中台售后申请 cancelOrder(id){ this.$confirm('确认取消申请?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => { let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'}); this.$http.post('{!! yzWebFullUrl('plugin.yz-supply.admin.refund.after-sales-close') !!}',{middleground_configuration_id:this.search_form.middleground_configuration_id,after_sales_id:id}).then(function (response) { if (response.data.result) { this.reapply_refund_show = false; this.$message({type: 'success',message: '成功!'}); this.getData(this.current_page) } else{ this.$message({type: 'error',message: response.data.msg}); } loading.close(); },function (response) { this.$message({type: 'error',message: response.data.msg}); loading.close(); } ); }).catch(() => { this.$message({type: 'info',message: '已取消'}); }); }, // 确认发货 confirmSend(id,item) { let json = { order_id:id, middleground_configuration_id:this.search_form.middleground_configuration_id }; let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'}); this.$http.post('{!! yzWebFullUrl('plugin.yz-supply.admin.refund.get-send-data') !!}',json).then(function(response) { loading.close(); console.log(response.data); if (response.data.result) { this.confirm_send_show = true; this.confirm_send_con = ""; this.send = { express_code:"", express_sn:"", after_sales_id:item.id, shipping_address_id:response.data.data.address.id, } this.address_info = response.data.data.address || {}; this.order_goods_send_list[0] = item.order_item; this.expressCompanies = response.data.data.express; console.log(this.expressCompanies); } else { this.$message({ message: response.data.msg, type: 'error' }); } }, function(response) { this.$message({ message: response.data.msg, type: 'error' }); loading.close(); }); }, sureconfirmSend(){ for (i in this.expressCompanies){ if(this.expressCompanies[i].code == this.send.express_code){ this.send.express_name = this.expressCompanies[i].name; break; } } let json = { after_sales_id :this.send.after_sales_id, express_code:this.send.express_code, express_company_name:this.send.express_name, express_sn:this.send.express_sn, shipping_address_id:this.send.shipping_address_id, middleground_configuration_id:this.search_form.middleground_configuration_id }; let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'}); this.$http.post('{!! yzWebFullUrl('plugin.yz-supply.admin.refund.send') !!}',json).then(function(response) { if (response.data.result) { this.$message({ message: '发货成功', type: 'success' }); this.confirm_send_show = false; this.getData(this.current_page); } else { this.$message({ message: response.data.msg, type: 'error' }); } loading.close(); }, function(response) { this.$message({ message: response.data.msg, type: 'error' }); loading.close(); }); }, getData(page) { let requestData = { page:page, code: this.code, search: JSON.parse(JSON.stringify(this.search_form)), middleground_configuration_id:this.search_form.middleground_configuration_id }; if(this.times && this.times.length>0) { requestData.search.start_time = this.times[0]; requestData.search.end_time = this.times[1]; } console.log(requestData); let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'}); this.$http.post(this.listUrl,requestData).then(function(response) { console.log(response.data.data); if (response.data.result) { this.count = response.data.data.total; this.list = response.data.data.data; this.current_page = response.data.data.page; this.total = response.data.data.total; this.per_page = response.data.data.per_page; loading.close(); } else { this.$message({ message: response.data.msg, type: 'error' }); } loading.close(); }, function(response) { this.$message({ message: response.data.msg, type: 'error' }); loading.close(); }); }, getExpressCompanies(){ this.$http.post('{!! yzWebFullUrl('plugin.yz-supply.admin.cloud.cloud-order.get-express-companies') !!}').then(response => { if (response.data.result == 1) { this.expressCompanies = response.data.data.data; console.log(this.expressCompanies); } else { that.$message.error(response.data.msg); } }), function (res) { console.log(res); }; }, // 多包裹确认发货 选择商品 moreSendChange(selection) { let arr = []; for(let j = 0,len = selection.length; j < len; j++){ console.log(selection[j].id); arr.push(selection[j].id); } this.send_order_goods_ids = arr; }, gotoDetail(item) { let link = '{!! yzWebFullUrl('plugin.yz-supply.admin.refund.detail') !!}'; {{--let link = '{!! yzWebFullUrl('plugin.yz-supply.admin.cloud.vue-detail') !!}';--}} link = link+'&middleground_configuration_id='+this.search_form.middleground_configuration_id+'&id='+item.id; console.log(link); window.open(link); }, gotoOrderDetail(id) { let link = '{!! yzWebFullUrl('plugin.yz-supply.admin.order-vue-list.detail') !!}'; link = link +'&id='+id+'&order_id='+id; window.open(link); }, search(val) { this.getData(val); }, orderConfirm(operationType, order) { console.log(operationType, order); this.dialog_show++; this.operationOrder = order; this.operationType = operationType; }, orderexport(){ let requestData = { code: this.code, search: JSON.parse(JSON.stringify(this.search_form)), middleground_configuration_id:this.search_form.middleground_configuration_id }; if(this.times && this.times.length>0) { requestData.search.start_time = this.times[0]; requestData.search.end_time = this.times[1]; } // window.location.href = this.exportUrl; let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'}); this.$http.post(this.exportUrl,requestData).then(function(response) { console.log(response.data.data.link); if (response.data.result) { let $eleForm = $("<form method='get'></form>"); $eleForm.attr("action",response.data.data.link); $(document.body).append($eleForm); //提交表单,实现下载 $eleForm.submit(); loading.close(); } else { this.$message({ message: response.data.msg, type: 'error' }); } loading.close(); }, function(response) { this.$message({ message: response.data.msg, type: 'error' }); loading.close(); }); }, gotoGoods(id) { let link = '{!! yzWebFullUrl('plugin.yz-supply.admin.shop-goods.edit') !!}'; window.location.href = link+`&id=`+id; }, // 字符转义 escapeHTML(a) { a = "" + a; return a.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, "\"").replace(/&apos;/g, "'");; }, getParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }, reloadList() { this.search(this.current_page) } }, }) </script> @endsection