<template>
|
<public-content>
|
<template #content>
|
<div class="content_box">
|
<div class="list_box">
|
<span class="content_span" @click="scrollLeft">《</span>
|
<el-scrollbar ref="scrollbarRef" @scroll="scroll">
|
<div class="scrollbar-flex-content">
|
<p v-for="(item, index) in tilteList" @click="handleClick(item, index)" :key="index"
|
class="scrollbar-demo-item" :class="{ active: index === currentIndex }">
|
{{ item.label }}
|
</p>
|
</div>
|
</el-scrollbar>
|
<span class="content_span" @click="scrollRight">》</span>
|
</div>
|
|
<div class="page_box">
|
<div>
|
<el-table v-if="formInline.ownership == 1" :data="tableData" style="width: 100%"
|
:header-cell-style="headerCellStyle" :cell-style="tableCellStyle">
|
<el-table-column fixed prop="name" label="物资名称" />
|
<el-table-column fixed prop="personInCha" label="负责人" />
|
<el-table-column fixed prop="personInChaPhone" label="负责人电话" />
|
<el-table-column fixed prop="stoLoc" label="物资地址" />
|
<el-table-column prop="numUnit" label="数量" width="100" />
|
</el-table>
|
|
<el-table v-else :data="tableData" style="width: 100%" :header-cell-style="headerCellStyle"
|
:cell-style="tableCellStyle">
|
<el-table-column fixed prop="firmName" label="企业名称" />
|
<el-table-column fixed prop="name" label="物资名称" />
|
<el-table-column fixed prop="personInCha" label="负责人" />
|
<el-table-column fixed prop="personInChaPhone" label="负责人电话" />
|
<el-table-column fixed prop="stoLoc" label="物资地址" />
|
<el-table-column prop="numUnit" label="数量" width="100" />
|
</el-table>
|
</div>
|
</div>
|
</div>
|
</template>
|
</public-content>
|
</template>
|
|
<script setup>
|
import publicContent from "./publicContent.vue";
|
import { getList } from "@/api/emergencySupplies/emergencySupplies";
|
import { getPage } from '@/api/indParkInfo'
|
import { reactive, ref, onMounted } from "vue";
|
import { ElScrollbar } from 'element-plus';
|
|
const loading = ref(false);
|
|
const tableData = ref([]);
|
const pages = {
|
page: 1,
|
pageSize: 1000,
|
total: 0,
|
};
|
|
let currentIndex = ref(0)
|
|
// 园区 企业
|
const tilteList = ref([
|
{ label: "吉水化工园区", value: "0", id: "1" }
|
]);
|
|
onMounted(() => {
|
getLists(formInline);
|
getCompanyPages()
|
});
|
|
const scrollbarRef = ref(null);
|
|
const inputSlider = (number) => {
|
if (scrollbarRef.value) {
|
scrollbarRef.value.setScrollTop(number);
|
}
|
}
|
|
// 搜索条件
|
const formInline = reactive({
|
firmId: '',
|
ownership: 1,
|
});
|
|
function getCompanyPages(param = {}) {
|
param.current = pages.page;
|
param.size = pages.pageSize;
|
getPage(param).then(res => {
|
let companyList = res.data.data.records
|
companyList.forEach(item => {
|
tilteList.value.push({
|
label: item.name,
|
value: item.id,
|
id: item.id
|
})
|
})
|
}).catch(err => {
|
})
|
}
|
|
function handleClick(item, index) {
|
currentIndex.value = index
|
pages.page = 1
|
pages.pageSize = 1000
|
pages.total = 0
|
if (item.id == 1) {
|
formInline.firmId = ''
|
formInline.ownership = 1
|
} else {
|
formInline.firmId = item.id
|
formInline.ownership = 2
|
}
|
getLists(formInline);
|
}
|
|
// 表格样式
|
const tableCellStyle = ({ row, column }) => {
|
return { background: "#152851", color: "#fff" };
|
};
|
|
// 表格表头样式
|
const headerCellStyle = ({ }) => {
|
return {
|
background: "#152851",
|
color: "#fff",
|
};
|
};
|
|
// 分页树改变
|
const handleSizeChange = (val) => {
|
pages.pageSize = val;
|
getLists(formInline);
|
}
|
|
// 分页改变
|
const handleCurrentChange = (val) => {
|
pages.page = val;
|
getLists(formInline);
|
}
|
|
// 重置条件
|
const clearBtn = () => {
|
formInline.name = ''
|
formInline.ownership = ''
|
pages.page = 1
|
pages.pageSize = 1000
|
pages.total = 0
|
getLists(formInline);
|
}
|
|
// 查询分页数据
|
function getLists(param = {}) {
|
param.current = pages.page;
|
param.size = pages.pageSize;
|
loading.value = true;
|
getList(param)
|
.then((res) => {
|
const data = res.data.data;
|
data.records.forEach((element) => {
|
if (element.ownership == -1) {
|
element.ownership = "园区";
|
} else {
|
element.ownership = "企业";
|
}
|
});
|
tableData.value = data.records;
|
pages.total = data.total;
|
loading.value = false;
|
})
|
.catch((err) => {
|
loading.value = false;
|
console.log(err);
|
});
|
}
|
|
// 滚动到左边
|
const scrollLeft = () => {
|
if (scrollbarRef.value) {
|
const currentScrollLeft = scrollbarRef.value.wrapRef.scrollLeft;
|
const step = 500; // 每次滚动的距离
|
scrollbarRef.value.wrapRef.scrollLeft = currentScrollLeft - step;
|
}
|
}
|
|
// 滚动到右边
|
const scrollRight = () => {
|
if (scrollbarRef.value) {
|
const currentScrollLeft = scrollbarRef.value.wrapRef.scrollLeft;
|
const step = 500; // 每次滚动的距离
|
scrollbarRef.value.wrapRef.scrollLeft = currentScrollLeft + step;
|
}
|
}
|
</script>
|
|
|
<style lang="scss" scoped>
|
.content_box {
|
color: #fff;
|
}
|
|
.content_box .list_box {
|
display: flex;
|
text-align: center;
|
}
|
|
.scrollbar-flex-content {
|
display: flex;
|
}
|
|
.scrollbar-demo-item {
|
flex-shrink: 0;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
height: 50px;
|
margin: 10px;
|
padding: 0 5px;
|
text-align: center;
|
border-radius: 4px;
|
// background: var(--el-color-danger-light-9);
|
background-color: rgba(117, 116, 116, 0.3);
|
// color: var(--el-color-danger);
|
// color: #000;
|
}
|
|
.content_box .content_span {
|
line-height: 70px;
|
margin: 0 15px;
|
}
|
|
.page_box .el-table {
|
width: 100%;
|
height: 680px;
|
background-color: rgba(117, 116, 116, 0.3);
|
}
|
|
.active {
|
background-color: rgba(255, 255, 255, 0.3);
|
color: #fff;
|
border-radius: 10px;
|
}
|
</style>
|