MrShi
2023-11-09 19d17f0f0fb02f46342d70b5180e40a0ad1b66d3
admin/src/views/business/wxBillDetail.vue
@@ -33,15 +33,35 @@
            <div v-else>{{ row.billType }}</div>
          </template>
        </el-table-column>
        <el-table-column prop="sumBill" label="订单数量" min-width="100px" align="center"></el-table-column>
        <el-table-column prop="sumTotalFee" label="交易金额" min-width="100px" align="center"></el-table-column>
        <el-table-column prop="sumRefundBill" label="退款笔数" min-width="100px" align="center"></el-table-column>
        <el-table-column prop="sumRefundFee" label="退款金额" min-width="100px" align="center"></el-table-column>
        <el-table-column prop="sumBill" label="订单数量" min-width="100px" align="center">
          <template slot-scope="scope">
            <span>{{scope.row.sumBill == 0 ? '-' : scope.row.sumBill }}</span>
          </template>
        </el-table-column>
        <el-table-column label="交易金额" min-width="100px" align="center">
          <template slot-scope="scope">
            <span v-if="scope.row.sumSuccessFee">{{scope.row.sumSuccessFee == 0 ? '-' : scope.row.sumSuccessFee }}</span>
            <span v-else>{{scope.row.sumTotalFee == 0 ? '-' : scope.row.sumTotalFee }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="sumRefundBill" label="退款笔数" min-width="100px" align="center">
          <template slot-scope="scope">
            <span>{{scope.row.sumRefundBill == 0 ? '-' : scope.row.sumRefundBill }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="sumRefundFee" label="退款金额" min-width="100px" align="center">
          <template slot-scope="scope">
            <span>{{scope.row.sumRefundFee == 0 ? '-' : scope.row.sumRefundFee }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="cmmsAmt" label="手续费" min-width="100px" align="center"></el-table-column>
        <el-table-column prop="total" label="结算金额" min-width="100px" align="center"></el-table-column>
        <el-table-column prop="total" label="结算金额" min-width="100px" align="center">
          <template slot-scope="scope">
            <span>{{scope.row.total == 0 ? '-' : scope.row.total }}</span>
          </template>
        </el-table-column>
        <!-- v-if="containPermissions(['business:pricingparam:update', 'business:pricingparam:delete'])" -->
        <el-table-column
          label="操作"
          min-width="120"
          align="center"
@@ -50,13 +70,13 @@
          <template slot-scope="scope">
            <template v-if="scope.$index != 2">
              <el-button type="text" @click="$refs.billDetailWindow.open(scope.$index==4?'非自行车收入明细':'对账明细', {type:scope.$index, ...searchForm})">查看明细</el-button>
              <el-button type="text">导出明细</el-button>
              <el-button type="text" @click="exportExcel(scope.$index)">导出明细</el-button>
            </template>
            <div v-else>-</div>
          </template>
        </el-table-column>
      </el-table>
    </template>
    <BillDetailWindow ref="billDetailWindow"/>
  </TableLayout>
@@ -65,7 +85,7 @@
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import { fetchList } from '@/api/business/wxBillDetail'
import { fetchList, exportNotBikeExcel } from '@/api/business/wxBillDetail'
import BillDetailWindow from '@/components/business/BillDetailWindow'
import { formatDateTime } from '@/utils/util'
export default {
@@ -79,6 +99,7 @@
      searchForm: {
        endDate: '',
        startDate: '',
        // type: 1
      },
      pickerOptions: {}
    }
@@ -91,11 +112,11 @@
      'field.main': 'id'
    })
    this.pickerOptions.disabledDate = (time) => {
       // 一天
      let tempTime = 3600 * 1000 * 24
      // 一天
      const tempTime = 3600 * 1000 * 24
      return time.getTime() > new Date() - tempTime
    }
    // let tempTime = new Date().getTime() - 3600 * 1000 * 24
    // let tempTime = new Date().getTime() - 3600 * 1000 * 24
    // this.searchForm.startDate = formatDateTime(new Date(tempTime), 'yyyy-MM-dd') + ' 00:00:00'
    // this.searchForm.endDate = formatDateTime(new Date(tempTime), 'yyyy-MM-dd') + ' 23:59:59'
    // this.value1 = [this.searchForm.startDate, this.searchForm.endDate]
@@ -103,27 +124,80 @@
    this.search()
  },
  methods: {
    reset() {
    exportExcel (index) {
      this.__checkApi()
      this.$dialog.exportConfirm('确认导出吗?')
        .then(() => {
          this.isWorking.export = true
          let type = ''
          if (index === 0) {
            type = 0
          } else if (index === 1) {
            type = 1
          } else if (index === 4) {
            type = 4
            let obj = { ...this.searchForm, type, isBikeFee: 1 }
            exportNotBikeExcel({
              page: 1,
              capacity: 10,
              model: {
                type: 4,
                endDate: this.searchForm.endDate,
                startDate: this.searchForm.startDate,
                isBikeFee: 1
              },
              sorts: null
            }).then(response => {
              this.download(response)
            }).catch(e => {
              this.$tip.apiFailed(e)
            }).finally(() => {
              this.isWorking.export = false
            })
            return;
          }
          var obj = { ...this.searchForm, type }
          this.api.exportExcel({
            page: this.tableData.pagination.pageIndex,
            capacity: 1000000,
            model: obj,
            sorts: this.tableData.sorts
          })
            .then(response => {
              this.download(response)
            })
            .catch(e => {
              this.$tip.apiFailed(e)
            })
            .finally(() => {
              this.isWorking.export = false
            })
        })
        .catch(() => {})
    },
    reset () {
      this.searchForm.startDate = ''
      this.searchForm.endDate = ''
      this.value1 = []
      this.$refs.searchForm.resetFields()
      this.search()
    },
    search() {
    search () {
      fetchList(this.searchForm)
        .then(res => {
          console.log(res)
          this.tableData.list = [
            { billType: '交易实收', ...res[0], cmmsAmt: (res[0].sumCmmsAmt + res[0].sumRefundCmmsAmt).toFixed(2) },
            { billType: '退款', ...res[1], cmmsAmt: (res[1].sumRefundCmmsAmt + res[1].sumRefundCmmsAmt).toFixed(2) },
            { billType: '总计', ...res[2], cmmsAmt: (res[2].sumCmmsAmt + res[2].sumRefundCmmsAmt).toFixed(2) },
            { billType: '退款', ...res[1], cmmsAmt: (res[1].sumCmmsAmt + res[1].sumRefundCmmsAmt).toFixed(2) },
            { billType: '总计', ...res[2], cmmsAmt: res[2].sumRefundCmmsAmt },
            { billType: '其中含' },
            { billType: '非自行车收入', ...res[3], cmmsAmt: (res[3].sumCmmsAmt + res[3].sumRefundCmmsAmt).toFixed(2) },
            { billType: '非自行车收入', ...res[3], cmmsAmt: (res[3].sumCmmsAmt + res[3].sumRefundCmmsAmt).toFixed(2) }
          ]
        })
    },
    selectDate(v) {
    selectDate (v) {
      this.searchForm.startDate = ''
      this.searchForm.endDate = ''
      if (v) {
@@ -132,15 +206,15 @@
      }
      this.search()
    },
    arraySpanMethod({ row, column, rowIndex, columnIndex }) {
        if (rowIndex == 3) {
          if (columnIndex === 0) {
            return [1,8];
          } else {
            return [0, 0];
          }
    arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
      if (rowIndex == 3) {
        if (columnIndex === 0) {
          return [1, 8]
        } else {
          return [0, 0]
        }
      },
  },
      }
    }
  }
}
</script>