<template>
	<div class="app-container">
		<base-table
			v-loading="dataListLoading"
			:table-props="tableProps"
			:page="listQuery.pageNo"
			:limit="listQuery.pageSize"
			:max-height="tableH"
			:table-data="tableData">
		</base-table>
		<pagination
			:limit.sync="listQuery.pageSize"
			:page.sync="listQuery.pageNo"
			:total="listQuery.total"
			@pagination="getDataList" />
	</div>
</template>

<script>
import basicPage from '@/mixins/basic-page';
import tableHeightMixin from '@/mixins/lb/tableHeightMixin';
import { parseTime } from '@/filter/code-filter';
import {
	deleteRawOthercostLog,
	getRawOthercostLogPage,
	exportRawOthercostLogExcel,
} from '@/api/cost/costOthercostLog';
import { getRawOthercostRulePage } from '@/api/cost/rawOthercostRule';

const tableProps = [
	{
		prop: 'otherCostName',
		label: '成本名称',
	},
	{
		prop: 'recTime',
		label: '日期',
		filter: (val) => parseTime(val, '{y}年{m}月{d}日'),
	},
	{
		prop: 'price',
		label: '成本金额',
		align: 'right',
	},
	{
		prop: 'remark',
		label: '备注',
	},
];

export default {
	mixins: [basicPage, tableHeightMixin],
	data() {
		return {
			urlOptions: {
				getDataListURL: getRawOthercostLogPage,
				deleteURL: deleteRawOthercostLog,
				exportURL: exportRawOthercostLogExcel,
			},
			tableProps,
			tableData: [],
		};
	},
	components: {
	},
	created() {
		const params = {
			pageNo: 1,
			pageSize: 100,
		};
		getRawOthercostRulePage(params).then((response) => {
			this.formConfig[0].selectOptions = response.data.list;
		});
	},
	methods: {
		buttonClick(val) {
			switch (val.btnName) {
				case 'search':
					this.listQuery.pageNo = 1;
					this.listQuery.pageSize = 20;
					this.listQuery.name = val.name||null;
					this.listQuery.startTime = val.searchTime ? val.searchTime[0] : null;
					this.listQuery.endTime = val.searchTime
						? val.searchTime[1].substr(0, 10) + ' 23:59:59'
						: null;
					this.getDataList();
					break;
				case 'add':
					this.addOrUpdateHandle();
					break;
				case 'export':
					this.listQuery.pageNo = 1;
					this.listQuery.pageSize = 20;
					this.listQuery.name = val.name;
					this.listQuery.recTime = val.searchTime;
					this.handleExport();
					break;
				default:
					console.log(val);
			}
		},
	},
};
</script>
