|
@@ -0,0 +1,184 @@
|
|
|
+<template>
|
|
|
+ <van-nav-bar :title="'利润结算表'" left-text="" left-arrow @click-left="onClickLeft">
|
|
|
+ </van-nav-bar>
|
|
|
+ <van-search v-model="req.keyword" :placeholder="$t('common.pleaseEnterKeywords')" @search="getList" />
|
|
|
+ <div style="width:100vw;overflow-x: auto;background:#fff">
|
|
|
+ <table border class="table">
|
|
|
+ <thead>
|
|
|
+ <tr>
|
|
|
+ <th style="min-width:130px" rowspan="2">合同编号</th>
|
|
|
+ <th style="min-width:180px;text-align:left" rowspan="2">客户名称</th>
|
|
|
+ <th style="min-width:80px" rowspan="2">业务员</th>
|
|
|
+ <th style="min-width:100px" rowspan="2">合同金额</th>
|
|
|
+ <th style="min-width:100px" rowspan="2"> 是否已结清</th>
|
|
|
+ <th colspan="4">统计</th>
|
|
|
+ <th colspan="3">收入</th>
|
|
|
+ <th rowspan="2" style="min-width:100px">采购合同金额</th>
|
|
|
+ <th colspan="12">支出</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th style="min-width:90px">收入合计</th>
|
|
|
+ <th style="min-width:90px">支出合计</th>
|
|
|
+ <th style="min-width:90px">毛利</th>
|
|
|
+ <th style="min-width:90px">毛利率</th>
|
|
|
+ <th style="min-width:90px">到账金额</th>
|
|
|
+ <th style="min-width:90px">退税金额</th>
|
|
|
+ <th style="min-width:90px">其他收入</th>
|
|
|
+ <th style="min-width:90px">已付货款</th>
|
|
|
+ <th style="min-width:90px">代理费</th>
|
|
|
+ <th style="min-width:90px">拖车费</th>
|
|
|
+ <th style="min-width:90px">报关费</th>
|
|
|
+ <th style="min-width:90px">港杂费</th>
|
|
|
+ <th style="min-width:90px">验货红包</th>
|
|
|
+ <th style="min-width:90px">佣金</th>
|
|
|
+ <th style="min-width:90px">检测费</th>
|
|
|
+ <th style="min-width:90px">验货费</th>
|
|
|
+ <th style="min-width:90px">运费</th>
|
|
|
+ <th style="min-width:90px">产地证费</th>
|
|
|
+ <th style="min-width:90px">其他</th>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ </thead>
|
|
|
+ <tbody>
|
|
|
+ <tr v-for="row in listData" :key="row.id">
|
|
|
+ <td>
|
|
|
+ {{row.code}}
|
|
|
+ </td>
|
|
|
+ <td style="text-align:left">
|
|
|
+ {{row.customerName}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{row.userName}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ row.currency }} {{ moneyFormat( row.amount,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ dictValueLabel( row.isSettled,isSettled)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.incomeAmount,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.expenditureAmount,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.gross,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.grossRate,2)}} %
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.sumClaimMoney,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.refundableAmount,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.otherIncomeAmount,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.sumPurchaseContractMoney,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.accountPaid,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.agencyFee,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.trailerFee,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.customsFee,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.portMixedFee,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.inspectionRedPack,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.commission,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.checkout,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.inspectionCharge,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.freight,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.certificateOfOrigin,2)}}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ moneyFormat( row.other,2)}}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div style="display:flex;align-items:center;background:#fff;padding:20px 20px 20px 0;justify-content:end">
|
|
|
+ <van-button plain type="primary" size="small" @click="handleChangePage(false)" :disabled="req.pageNum==1">上一页</van-button>
|
|
|
+ <span style="margin:0 15px">共{{total}}条</span>
|
|
|
+ <van-button plain type="primary" size="small" @click="handleChangePage(true)" :disabled="(total/10)<= req.pageNum ">下一页</van-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+</template>
|
|
|
+<script setup>
|
|
|
+import { ref, getCurrentInstance } from "vue";
|
|
|
+const proxy = getCurrentInstance().proxy;
|
|
|
+const onClickLeft = () => proxy.$router.push("/main/working");
|
|
|
+const req = ref({
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ keyword: "",
|
|
|
+});
|
|
|
+const total = ref(0);
|
|
|
+const isSettled = ref([
|
|
|
+ {
|
|
|
+ label: "已结清",
|
|
|
+ value: "1",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "未结清",
|
|
|
+ value: "0",
|
|
|
+ },
|
|
|
+]);
|
|
|
+const loading = ref(false);
|
|
|
+const listData = ref([]);
|
|
|
+const getList = () => {
|
|
|
+ proxy.post("/contract/getProfitClearingPage", req.value).then((res) => {
|
|
|
+ listData.value = res.data.rows;
|
|
|
+ total.value = res.data.total;
|
|
|
+ });
|
|
|
+};
|
|
|
+getList();
|
|
|
+const handleChangePage = (flag) => {
|
|
|
+ req.value.pageNum = flag ? req.value.pageNum + 1 : req.value.pageNum - 1;
|
|
|
+ getList();
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.list {
|
|
|
+ min-height: 70vh;
|
|
|
+}
|
|
|
+.table {
|
|
|
+ border-collapse: collapse;
|
|
|
+ border-spacing: 0;
|
|
|
+ width: 100%;
|
|
|
+ border-color: #ebeef5;
|
|
|
+ color: #606266;
|
|
|
+ thead tr th {
|
|
|
+ padding: 6px 0px;
|
|
|
+ }
|
|
|
+ td {
|
|
|
+ text-align: center;
|
|
|
+ padding: 6px 0px;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|