index.vue 5.96 KB
<!--  -->
<template>
<div style="padding: 0 10px;background-color:#f7f7f7;">
  <div class="tab_show">
    <!-- <el-tabs v-model="formInline.type" @tab-click="handleClick">
      <el-tab-pane label="全部" :name="null" />
    </el-tabs> -->
    <!-- 搜索 -->

    <!-- 表格 -->
    <div class="tableBox">
      <el-table
        ref="multipleTable"
        v-loading="loading"
        :data="tableData"
     :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
        tooltip-effect="dark"
      >

        <el-table-column prop="afterFormid" label="订单号" width="220" />
        <el-table-column prop="afterId" label="售后类型" show-overflow-tooltip>
          <template slot-scope="scope">
            <span v-if="scope.row.afterType == 1">仅退款</span>
            <span v-if="scope.row.afterType == 2">退货退款</span>
          </template>
        </el-table-column>
        <el-table-column prop="price" label="退款金额(元)" show-overflow-tooltip />
        <el-table-column prop="afterStateName" label="审核状态" show-overflow-tooltip />
        <el-table-column prop="createTime" label="审核时间" show-overflow-tooltip />
        <el-table-column label="操作" show-overflow-tooltip>
          <template slot-scope="scope">
            <div class="btnList">

               <div @click="view(scope.row)" class="tableBtn greens" >{{ scope.row.afterState == 1 ? '处理' : '查看' }}</div>
            </div>
          </template>
        </el-table-column>
      </el-table>
      <div class="fenye">
		  <div style="line-height:200%">共{{total}}条</div>
        <el-pagination
        class="pagination"
          :current-page="currentPage"
          :page-size="10"
       background
        :page-sizes="[10, 20, 50, 100]"
       layout="prev, pager, next"
          :total="total"
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
        />
      </div>
    </div>
  </div>
  <after-details ref="afterDetails" />
</div>



</template>

<script>
// 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
// 例如:import 《组件名称》 from '《组件路径》';
import { aftersaleGetAll, afterOrderExport } from '@/api/order'
import AfterDetails from './afterDetails';
import { type } from 'os';
export default {
  components: { AfterDetails },
  data() {
    // 这里存放数据
    return {
      loading: false,
      activeName: 'first',
      total: 1,
      tableData: [],
      currentPage: 1,
      formInline: {
        searchType: '1', // 搜索类型  1-订单ID 2-买家账户 3-收件人姓名 4-收件人手机号 5-商品ID
        search: '', // 搜索字段
        state: '', // 订单状态 1-待付款 2-待发货 3-已发货 4-已完成 5-已关闭
        afterState: '', // 售后状态 0-无售后 1-售后中 2-售后成功 3-售后关闭
        afterType: '', // 售后类型  1-仅退款  2-退货退款
        type: null, // 列表类型 1-待商家处理 2-待商家收货
        page: 1,
        pageSize: 10,
        afterStateList:[9,10]
      },

      multipleSelection: []
    }
  },
  // 监听属性 类似于data概念
  computed: {},
  // 监控data中的数据变化
  watch: {},
  // 生命周期 - 创建完成(可以访问当前this实例)
  created() {},
  // 生命周期 - 挂载完成(可以访问DOM元素)
  mounted() {
    this.getAll(this.formInline)
  },
  // 方法集合
  methods: {
    handleSizeChange(val) {
      this.formInline.pageSize = val
      this.getAll(this.formInline)
    },
    handleCurrentChange(val) {
      this.formInline.page = val
      this.getAll(this.formInline)
    },
    handleClick(tab, event) {
      this.formInline.type = tab.name
      this.getAll(this.formInline)
    },
    //  查询
    search() {
      this.total = 1
      this.formInline.page = 1
      this.getAll(this.formInline)
    },
    // 处理
    view(row) {
      this.$refs.afterDetails.show(row.afterId)
    },
    // 初始化查询所有数据
    async getAll(formInline) {
      this.loading = true
      try {
        const res = await aftersaleGetAll(formInline)
        this.total = res.data.total
        this.tableData = res.data.list
      } finally {
        this.loading = false
      }
    },
    // 导出订单
    async afterOrderDataExport() {
      this.$message({
        message: '数据导出中,请勿重复操作!',
        type: 'success'
      })
      console.log(this.formInline, 'this.formInline')
      const res = await afterOrderExport(this.formInline)
      if (!res) {
        return
      }
      const blob = new Blob([res], { type: 'application/vnd.ms-excel' }) // 把得到的结果用流对象转一下
      const fileName = '售后订单数据明细表.xls'
      if ('download' in document.createElement('a')) {
        // 非IE下载
        const elink = document.createElement('a')
        elink.download = fileName
        elink.href = URL.createObjectURL(blob) // 将流文件写入a标签的href属性值
        elink.style.display = 'none' // 障眼法藏起来a标签
        document.body.appendChild(elink) // 将a标签追加到文档对象中
        elink.click() // 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
        URL.revokeObjectURL(elink.href) // 释放URL 对象
        document.body.removeChild(elink)
      } else {
        // IE10+下载
        navigator.msSaveBlob(blob, fileName)
      }
    },
  }
}
</script>
<style lang='scss' scoped>
//@import url(); 引入公共css类
@import url("../../../styles/elDialog.scss");
.tab_show {
  padding: 0 20px 20px 20px;
  background-color:#fff;
}
.fenye {
  margin-top: 20px;
  display: flex;
  justify-content: space-between;
  position: relative;
}
  ::v-deep .el-pagination__total {
    position: absolute;
    left: 10px;
  }
  .formSearch {
      display: flex;
      width: 100%;
      font-size: 14px;
      justify-content: space-between;
    }
</style>