<template>
|
<div class="app-container">
|
<el-form :inline="true" :model="queryParams" class="search-form">
|
<el-form-item label="供应商名称">
|
<el-input
|
v-model="queryParams.supplierName"
|
placeholder="请输入"
|
clearable
|
:style="{ width: '100%' }"
|
/>
|
</el-form-item>
|
<el-form-item label="煤种">
|
<el-input
|
v-model="queryParams.coal"
|
placeholder="请输入"
|
clearable
|
:style="{ width: '100%' }"
|
/>
|
</el-form-item>
|
<el-form-item>
|
<el-button type="primary" @click="handleQuery">查询</el-button>
|
<el-button @click="resetQuery">重置</el-button>
|
</el-form-item>
|
</el-form>
|
<el-card>
|
<!-- 标签页 -->
|
<el-tabs
|
v-model="activeTab"
|
class="info-tabs"
|
@tab-click="handleTabClick"
|
>
|
<el-tab-pane
|
v-for="tab in tabs"
|
:key="tab.name"
|
:label="tab.label"
|
:name="tab.name"
|
/>
|
</el-tabs>
|
<!-- 操作按钮区 -->
|
<el-space>
|
<el-button type="primary" :icon="Plus" @click="handleAdd">新建</el-button>
|
<el-button type="danger" :icon="Delete" @click="handleDelete">删除</el-button>
|
<el-button type="info" plain :icon="Download">导出</el-button>
|
</el-space>
|
<div>
|
<div>
|
<ETable :loading="tableLoading"
|
:table-data="tableData"
|
:columns="columns"
|
@selection-change="handleSelectionChange"
|
:show-selection="true"
|
:border="true"
|
:maxHeight="480"
|
@edit="handleAdd"></ETable>
|
</div>
|
<pagination
|
v-if="total>0"
|
:page-num="pageNum"
|
:page-size="pageSize"
|
:total="total"
|
@pagination="handleQuery"
|
:layout="'total, prev, pager, next, jumper'"
|
/>
|
</div>
|
</el-card>
|
</div>
|
</template>
|
|
<script setup>
|
import {Download, Delete, Plus} from "@element-plus/icons-vue";
|
import {onMounted, ref} from "vue";
|
import Pagination from "@/components/Pagination/index.vue";
|
import ETable from "@/components/Table/ETable.vue";
|
|
// 查询参数
|
const queryParams = reactive({
|
supplierName: "",
|
coal: "",
|
})
|
// 当前标签
|
const activeTab = ref("task");
|
const tabName = ref("qrCode");
|
// 标签页数据
|
const tabs = reactive([
|
{ name: "task", label: "任务下发" },
|
{ name: "qrCode", label: "二维码管理" },
|
]);
|
// 表格
|
const selectedRows = ref([]);
|
const tableData = ref([]);
|
const tableLoading = ref(false);
|
const total = ref(0);
|
const pageNum = ref(1);
|
const pageSize = ref(10);
|
const columns = ref([
|
{ prop: "saleDate", label: "销售日期", minWidth: 160 },
|
{ prop: "customer", label: "客户", minWidth: 120 },
|
{ prop: "coal", label: "煤种", minWidth: 150 },
|
{ prop: "unit", label: "单位", minWidth: 150 },
|
{ prop: "priceIncludingTax", label: "单价(含税)", minWidth: 150 },
|
{ prop: "inventoryQuantity", label: "库存数量", minWidth: 120 },
|
{ prop: "saleQuantity", label: "销售数量", minWidth: 120 },
|
{ prop: "salePrice", label: "销售单价(含税)", minWidth: 150 },
|
{ prop: "totalAmount", label: "销售总价(含税)", minWidth: 120 },
|
{ prop: "freight", label: "运费", minWidth: 90 },
|
{ prop: "taxCoal", label: "购销煤税率(%)", minWidth: 120 },
|
{ prop: "taxTrans", label: "运输税率(%)", minWidth: 120 },
|
{ prop: "grossProfit", label: "毛利润", minWidth: 90 },
|
{ prop: "netProfit", label: "净利润", minWidth: 90 },
|
{ prop: "registrant", label: "登记人", minWidth: 100 },
|
{ prop: "registrationDate", label: "登记日期", minWidth: 100 },
|
]);
|
|
onMounted(() => {
|
handleTabClick({ props: { name: "task" } });
|
});
|
// 标签页点击
|
const handleTabClick = (tab) => {
|
tabName.value = tab.props.name;
|
tableData.value = [];
|
getList();
|
};
|
// 点击查询
|
const handleQuery = () => {
|
pageNum.value = 1
|
pageSize.value = 10
|
getList()
|
}
|
const getList = () => {
|
// tableLoading.value = true;
|
|
};
|
// 重置查询
|
const resetQuery = () => {
|
Object.keys(queryParams).forEach((key) => {
|
if (key !== "pageNum" && key !== "pageSize") {
|
queryParams[key] = "";
|
}
|
});
|
handleQuery();
|
};
|
|
// 新增、编辑
|
const handleAdd = (row) => {
|
|
};
|
// 删除任务
|
const handleDelete = () => {
|
if (selectedRows.value.length === 0) {
|
proxy.$modal.msgWarning("请选择要删除的数据");
|
return;
|
}
|
const deleteIds = selectedRows.value.map(item => item.id);
|
proxy.$modal.confirm('是否确认删除所选数据项?').then(function() {
|
return delSalesRecord(deleteIds)
|
}).then(() => {
|
handleQuery()
|
proxy.$modal.msgSuccess("删除成功")
|
}).catch(() => {})
|
};
|
// 选择行
|
const handleSelectionChange = (selection) => {
|
selectedRows.value = selection;
|
};
|
</script>
|
|
<style scoped>
|
|
</style>
|