231 lines
6.4 KiB
Vue
231 lines
6.4 KiB
Vue
<template>
|
||
<div class="store-bill">
|
||
<Card>
|
||
<Form ref="searchForm"
|
||
:model="searchForm"
|
||
inline
|
||
:label-width="70" class="search-form" @keydown.enter.native="handleSearch"
|
||
>
|
||
<Form-item label="开始时间" prop="startDay">
|
||
<DatePicker
|
||
type="date"
|
||
v-model="searchForm.startDate"
|
||
format="yyyy-MM-dd HH:mm:ss"
|
||
placeholder="请选择"
|
||
clearable
|
||
style="width: 200px"
|
||
></DatePicker>
|
||
</Form-item>
|
||
<Form-item label="结束时间" prop="endDate">
|
||
<DatePicker
|
||
type="date"
|
||
v-model="searchForm.endDate"
|
||
format="yyyy-MM-dd HH:mm:ss"
|
||
di
|
||
placeholder="请选择"
|
||
clearable
|
||
style="width: 200px"
|
||
></DatePicker>
|
||
</Form-item>
|
||
<Form-item label="状态" prop="orderStatus">
|
||
<Select v-model="searchForm.billStatus" placeholder="请选择" clearable style="width: 200px">
|
||
<Option value="OUT">已出账</Option>
|
||
<Option value="CHECK">已对账</Option>
|
||
<Option value="COMPLETE">已完成</Option>
|
||
</Select>
|
||
</Form-item>
|
||
<Button @click="handleSearch" type="primary" class="search-btn">搜索</Button>
|
||
<Button @click="handleReset" class="search-btn">重置</Button>
|
||
</Form>
|
||
<Table
|
||
:loading="loading"
|
||
border
|
||
:columns="columns"
|
||
:data="data"
|
||
ref="table"
|
||
class="mt_10"
|
||
></Table>
|
||
<Row type="flex" justify="end" class="mt_10">
|
||
<Page
|
||
:current="searchForm.pageNumber"
|
||
:total="total"
|
||
:page-size="searchForm.pageSize"
|
||
@on-change="changePage"
|
||
@on-page-size-change="changePageSize"
|
||
:page-size-opts="[10, 20, 50]"
|
||
size="small"
|
||
show-total
|
||
show-elevator
|
||
show-sizer
|
||
></Page>
|
||
</Row>
|
||
</Card>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import * as API_Shop from "@/api/shops";
|
||
|
||
export default {
|
||
name: "storeBill",
|
||
data() {
|
||
return {
|
||
loading: true, // 表单加载状态
|
||
searchForm: {
|
||
// 搜索框初始化对象
|
||
pageNumber: 1, // 当前页数
|
||
pageSize: 10, // 页面大小
|
||
sort: "createTime", // 默认排序字段
|
||
order: "desc", // 默认排序方式
|
||
startDate: "", // 起始时间
|
||
endDate: "", // 终止时间
|
||
},
|
||
columns: [
|
||
{
|
||
title: "账单号",
|
||
key: "sn",
|
||
minWidth: 250,
|
||
tooltip: true
|
||
},
|
||
{
|
||
title: "生成时间",
|
||
key: "createTime",
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: "结算时间段",
|
||
key: "startTime",
|
||
width: 200,
|
||
tooltip: true,
|
||
render: (h, params) => {
|
||
return h('div', params.row.startTime +"~"+params.row.endTime)
|
||
}
|
||
},
|
||
{
|
||
title: "结算金额",
|
||
key: "billPrice",
|
||
minWidth: 100,
|
||
render: (h, params) => {
|
||
return h("priceColorScheme", {props:{value:params.row.billPrice,color:this.$mainColor}} );
|
||
},
|
||
|
||
},
|
||
|
||
|
||
{
|
||
title: "状态",
|
||
key: "billStatus",
|
||
width: 100,
|
||
render: (h, params) => {
|
||
if (params.row.billStatus == "OUT") {
|
||
return h("Tag", {props: {color: "blue",},},"已出账");
|
||
} else if (params.row.billStatus == "CHECK") {
|
||
return h("Tag", {props: {color: "geekblue",},},"已对账");
|
||
} else if (params.row.billStatus == "EXAMINE") {
|
||
return h("Tag", {props: {color: "purple",},},"已审核");
|
||
} else {
|
||
return h("Tag", {props: {color: "green",},},"已付款");
|
||
}
|
||
}
|
||
},
|
||
|
||
{
|
||
title: "操作",
|
||
key: "action",
|
||
align: "center",
|
||
width: 120,
|
||
render: (h, params) => {
|
||
return h("div", [
|
||
h(
|
||
"Button",
|
||
{
|
||
props: {
|
||
type: "info",
|
||
size: "small",
|
||
},
|
||
style: {
|
||
marginRight: "5px",
|
||
},
|
||
on: {
|
||
click: () => {
|
||
this.detail(params.row);
|
||
},
|
||
},
|
||
},
|
||
"查看"
|
||
),
|
||
]);
|
||
},
|
||
},
|
||
],
|
||
data: [], // 表单数据
|
||
total: 0, // 表单数据总数
|
||
};
|
||
},
|
||
methods: {
|
||
// 初始化数据
|
||
init() {
|
||
this.getDataList();
|
||
},
|
||
// 分页 改变页码
|
||
changePage(v) {
|
||
this.searchForm.pageNumber = v;
|
||
this.getDataList();
|
||
},
|
||
// 分页 改变页数
|
||
changePageSize(v) {
|
||
this.searchForm.pageNumber = 1;
|
||
this.searchForm.pageSize = v;
|
||
this.getDataList();
|
||
},
|
||
// 搜索
|
||
handleSearch() {
|
||
this.searchForm.pageNumber = 1;
|
||
this.searchForm.pageSize = 10;
|
||
this.getDataList();
|
||
},
|
||
// 重置
|
||
handleReset() {
|
||
this.searchForm = {}
|
||
this.searchForm.pageNumber = 1;
|
||
this.searchForm.pageSize = 10;
|
||
this.getDataList();
|
||
},
|
||
// 获取列表数据
|
||
getDataList() {
|
||
this.loading = true;
|
||
API_Shop.getBillPage(this.searchForm).then((res) => {
|
||
this.loading = false;
|
||
if (res.success) {
|
||
this.data = res.result.records;
|
||
this.total = res.result.total;
|
||
}
|
||
});
|
||
this.total = this.data.length;
|
||
this.loading = false;
|
||
},
|
||
// 跳转结算详情
|
||
detail(v) {
|
||
let id = v.id;
|
||
this.$options.filters.customRouterPush({
|
||
name: "bill-detail",
|
||
query: { id: id },
|
||
})
|
||
},
|
||
},
|
||
mounted () {
|
||
this.init();
|
||
},
|
||
// 页面缓存处理,从该页面离开时,修改KeepAlive为false,保证进入该页面是刷新
|
||
beforeRouteLeave(to, from, next) {
|
||
from.meta.keepAlive = false
|
||
next()
|
||
}
|
||
};
|
||
</script>
|
||
<style lang="scss" scoped>
|
||
// 建议引入通用样式 可删除下面样式代码
|
||
@import "@/styles/table-common.scss";
|
||
|
||
</style>
|