| 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>
</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]]
</div>
<div class="vue-ellipsis" style="color:#999;max-width:240px">
<strong>售后编号:</strong>[[item.after_sale_sn]]
</div>
<div class="vue-ellipsis" style="color:#999;max-width:240px">
<strong>中台订单编号:</strong>[[item.order.order_sn]]
</div>
<div class="vue-ellipsis" style="color:#999;max-width:300px">
<strong>商城订单编号:</strong>[[item.order.third_order_sn]]
</div>
<div class="vue-ellipsis" style="color:#999;max-width:230px">
<strong>售后时间:</strong>[[item.created_at]]
</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(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, "\"").replace(/'/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
|