307 lines
7.9 KiB
Vue
307 lines
7.9 KiB
Vue
<template>
|
|
<div class="contain">
|
|
<div class="rightbox" style="width: 100%">
|
|
<div class="topbox">
|
|
<el-form ref="form" :model="queryParams" label-width="80px">
|
|
<el-row>
|
|
<el-col :span="4">
|
|
<el-form-item :label="'交易类型'" prop="tradeType">
|
|
<el-select
|
|
clearable
|
|
v-model="queryParams.tradeType"
|
|
:placeholder="'请选择'"
|
|
>
|
|
<el-option
|
|
v-for="(item, index) in tradeTypeList"
|
|
:key="index"
|
|
:label="item.label"
|
|
:value="item.value"
|
|
></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="4">
|
|
<el-form-item :label="'账户类型'" prop="pkAccount">
|
|
<el-select
|
|
clearable
|
|
v-model="queryParams.pkAccount"
|
|
:placeholder="'请选择'"
|
|
>
|
|
<el-option
|
|
v-for="(item, index) in pkAccountList"
|
|
:key="index"
|
|
:label="item.pkTransactionKeyVal || item.accountName"
|
|
:value="item.pkId"
|
|
></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-form-item :label="'交易时间'" prop="teamCode">
|
|
<el-date-picker
|
|
v-model="thetime"
|
|
type="daterange"
|
|
value-format="yyyy-MM-dd"
|
|
:range-separator="'至'"
|
|
:start-placeholder="'开始日期'"
|
|
:end-placeholder="'结束日期'"
|
|
:picker-options="pickerOptions"
|
|
>
|
|
</el-date-picker>
|
|
</el-form-item>
|
|
</el-col>
|
|
|
|
<el-col :span="4">
|
|
<div class="searchbox">
|
|
<el-button type="primary" @click="research">{{
|
|
"搜索"
|
|
}}</el-button>
|
|
<el-button @click="chongzhi">{{ "重置" }}</el-button>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
</div>
|
|
<div class="tablebox">
|
|
<el-table
|
|
:data="tableData"
|
|
:header-cell-style="{ background: '#EEEEEE' }"
|
|
:row-class-name="tableRowClassName"
|
|
>
|
|
<el-table-column
|
|
align="center"
|
|
type="index"
|
|
:label="'序号'"
|
|
></el-table-column>
|
|
<el-table-column
|
|
align="center"
|
|
prop="tradeCode"
|
|
:label="'单据编号'"
|
|
></el-table-column>
|
|
<el-table-column
|
|
align="center"
|
|
prop="pkAccountVal"
|
|
:label="'账户类型'"
|
|
></el-table-column>
|
|
<el-table-column
|
|
align="center"
|
|
prop="tradeTypeVal"
|
|
:label="'交易类型'"
|
|
></el-table-column>
|
|
<el-table-column
|
|
align="center"
|
|
prop="tradeAmount"
|
|
:label="`${'交易金额'}(${userInfo.currencyIcon})`"
|
|
></el-table-column>
|
|
<el-table-column
|
|
align="center"
|
|
prop="tradeBalance"
|
|
:label="`${'交易余额'}(${userInfo.currencyIcon})`"
|
|
></el-table-column>
|
|
<el-table-column
|
|
align="center"
|
|
prop="creationTime"
|
|
:label="'交易时间'"
|
|
></el-table-column>
|
|
<el-table-column align="center" prop="remarks" :label="'备注'">
|
|
<template slot-scope="scope">
|
|
<span v-if="scope.row.montage == 0">
|
|
{{ scope.row.tradeTypeVal }}{{ scope.row.sourceCode }}</span
|
|
>
|
|
<span v-else> {{ scope.row.remarks }}</span>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<pagination
|
|
:total="total"
|
|
:page.sync="queryParams.pageNum"
|
|
:limit.sync="queryParams.pageSize"
|
|
@pagination="research"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import pagination from "@/components/pagination.vue";
|
|
import { mapGetters } from "vuex";
|
|
import {
|
|
getTransactionDetails,
|
|
getTradeTypeList,
|
|
getEnumsAccountList,
|
|
} from "@/api/wallet.js";
|
|
export default {
|
|
name: "walletBalance",
|
|
components: {
|
|
pagination,
|
|
},
|
|
props: {
|
|
theId: {
|
|
type: String,
|
|
},
|
|
},
|
|
computed: {
|
|
...mapGetters(["userInfo", "specialCarNum"]),
|
|
},
|
|
data() {
|
|
return {
|
|
pickerOptions: {
|
|
disabledDate(time) {
|
|
return time.getTime() > Date.now();
|
|
},
|
|
},
|
|
thetime: "",
|
|
tableData: [],
|
|
total: 0,
|
|
queryParams: {
|
|
pageNum: 1,
|
|
pageSize: 50,
|
|
tradeType: "",
|
|
pkAccount: "",
|
|
startDate: "",
|
|
endDate: "",
|
|
},
|
|
tradeTypeList: [], //交易类型
|
|
pkAccountList: [], //账户类型
|
|
};
|
|
},
|
|
watch: {
|
|
$route() {
|
|
this.specialArea = 4;
|
|
},
|
|
},
|
|
created() {
|
|
this.queryParams.pkAccount = this.theId || "";
|
|
},
|
|
mounted() {
|
|
this.specialArea = 4;
|
|
this.research();
|
|
this.getTradeTypeList();
|
|
this.getEnumsAccountList();
|
|
},
|
|
methods: {
|
|
getTradeTypeList() {
|
|
getTradeTypeList().then((res) => {
|
|
this.tradeTypeList = res.data;
|
|
});
|
|
},
|
|
getEnumsAccountList() {
|
|
getEnumsAccountList().then((res) => {
|
|
console.log(res, "res......交易类型");
|
|
this.pkAccountList = res.data;
|
|
});
|
|
},
|
|
|
|
chongzhi() {
|
|
this.thetime = "";
|
|
this.queryParams = {
|
|
pageNum: 1,
|
|
pageSize: 50,
|
|
tradeType: "",
|
|
pkAccount: "",
|
|
startDate: "",
|
|
endDate: "",
|
|
};
|
|
this.research();
|
|
},
|
|
research() {
|
|
if (this.thetime) {
|
|
this.queryParams.startDate = this.thetime[0];
|
|
this.queryParams.endDate = this.thetime[1];
|
|
}
|
|
getTransactionDetails(this.queryParams).then((res) => {
|
|
const tableDataWithRow = res.rows.map((item, index) => {
|
|
return { ...item, row: index + 1 };
|
|
});
|
|
this.tableData = tableDataWithRow;
|
|
this.total = res.total;
|
|
});
|
|
},
|
|
|
|
tableRowClassName({ rowIndex }) {
|
|
if (rowIndex % 2 == 1) {
|
|
return "warning-row";
|
|
} else if (rowIndex % 2 == 0) {
|
|
return "success-row";
|
|
}
|
|
return "";
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
::v-deep .el-table .warning-row {
|
|
background: #f9f9f9;
|
|
}
|
|
|
|
::v-deep .el-table .success-row {
|
|
background: #ffffff;
|
|
}
|
|
::v-deep .el-table thead {
|
|
color: #000000;
|
|
font-size: 14px;
|
|
}
|
|
.contain {
|
|
background: rgba(249, 249, 249, 1);
|
|
height: 100vh;
|
|
display: flex;
|
|
.goodArea {
|
|
display: flex;
|
|
align-items: center;
|
|
font-size: 18px;
|
|
font-weight: 400;
|
|
color: #333333;
|
|
width: 100%;
|
|
height: 80px;
|
|
border-bottom: 5px solid rgba(0, 0, 0, 0.05);
|
|
.goodArea_i {
|
|
margin: 0 35px;
|
|
text-align: center;
|
|
cursor: pointer;
|
|
}
|
|
.actArea {
|
|
color: #00417c;
|
|
}
|
|
}
|
|
.topbox {
|
|
// height: 109px;
|
|
background: #ffffff;
|
|
box-shadow: 0px 0px 20px 0px rgba(204, 204, 204, 0.5);
|
|
border-radius: 8px 8px 8px 8px;
|
|
margin: 20px 0 40px 0;
|
|
padding: 30px 16px 10px 16px;
|
|
.searchbox {
|
|
display: flex;
|
|
align-items: center;
|
|
.btn1 {
|
|
background: #cccccc;
|
|
border-radius: 5px 5px 5px 5px;
|
|
color: #ffffff;
|
|
}
|
|
.btn2 {
|
|
border-radius: 5px 5px 5px 5px;
|
|
background: rgba(214, 24, 32, 1);
|
|
color: #ffffff;
|
|
}
|
|
}
|
|
}
|
|
.tablebox {
|
|
box-shadow: 0px 2px 20px 0px rgba(135, 135, 135, 0.3);
|
|
border-radius: 10px 10px 10px 10px;
|
|
.tabletop {
|
|
text-align: right;
|
|
padding: 20px;
|
|
.tabletoptitle1 {
|
|
font-size: 18px;
|
|
}
|
|
.tabletoptitle2 {
|
|
font-size: 24px;
|
|
font-weight: 600;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|