| | |
| | | <!-- |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2023-03-13 14:54:26 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-03-13 15:00:55 |
| | | * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. |
| | | --> |
| | | <script setup> |
| | | import publicContent from './publicContent.vue' |
| | | </script> |
| | | |
| | | <template> |
| | | <public-content> |
| | | <template #content> |
| | | <div> |
| | | |
| | | <public-content> |
| | | <template #content> |
| | | <div class="content_box"> |
| | | <div class="list_box"> |
| | | <span class="content_span" @click="scrollLeft"> |
| | | <img src="@/assets/images/left.png" alt=""> |
| | | </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> |
| | | </template> |
| | | </public-content> |
| | | </el-scrollbar> |
| | | <span class="content_span" @click="scrollRight"> |
| | | <img src="@/assets/images/right.png" alt=""> |
| | | </span> |
| | | </div> |
| | | |
| | | <div class="page_box"> |
| | | <div> |
| | | <el-table border empty-text="" v-if="formInline.ownership == 1" :data="tableData"> |
| | | <el-table-column prop="name" label="物资名称" /> |
| | | <el-table-column prop="personInCha" label="负责人" width="150" /> |
| | | <el-table-column prop="personInChaPhone" label="负责人电话" width="250" /> |
| | | <el-table-column prop="stoLoc" label="物资地址" /> |
| | | <el-table-column prop="numUnit" label="数量" width="150" /> |
| | | </el-table> |
| | | |
| | | <el-table border empty-text="" v-else :data="tableData"> |
| | | <el-table-column prop="name" label="物资名称" /> |
| | | <el-table-column prop="personInCha" label="负责人" width="150" /> |
| | | <el-table-column prop="personInChaPhone" label="负责人电话" width="250" /> |
| | | <el-table-column prop="stoLoc" label="物资地址" /> |
| | | <el-table-column prop="numUnit" label="数量" /> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </public-content> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped></style> |
| | | <script setup> |
| | | import publicContent from "./publicContent.vue" |
| | | import { getList, getCompanyList } 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 objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => { |
| | | // if (columnIndex === 0) { |
| | | // if (rowIndex % 2 === 0) { |
| | | // return { |
| | | // rowspan: 2, |
| | | // colspan: 1 |
| | | // } |
| | | // } else { |
| | | // return { |
| | | // rowspan: 0, |
| | | // colspan: 0 |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | const scrollbarRef = ref(null) |
| | | |
| | | |
| | | // 搜索条件 |
| | | 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 |
| | | getLists(formInline) |
| | | } else { |
| | | formInline.firmId = item.id |
| | | formInline.ownership = 2 |
| | | getComLists(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 |
| | | tableData.value = data.records |
| | | pages.total = data.total |
| | | loading.value = false |
| | | }) |
| | | .catch((err) => { |
| | | loading.value = false |
| | | console.log(err) |
| | | }) |
| | | } |
| | | |
| | | |
| | | // 查询分页数据 |
| | | function getComLists(param = {}) { |
| | | param.current = pages.page |
| | | param.size = pages.pageSize |
| | | loading.value = true |
| | | getCompanyList(param) |
| | | .then((res) => { |
| | | const data = res.data.data |
| | | tableData.value = data.dataList |
| | | 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: 10px; |
| | | box-shadow: inset 0 0 40px #409eff; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .content_box .content_span { |
| | | line-height: 70px; |
| | | margin: 0 15px; |
| | | cursor: pointer; |
| | | |
| | | & img { |
| | | // 图片上下居中 |
| | | vertical-align: middle; |
| | | width: 30px; |
| | | height: 30px; |
| | | } |
| | | |
| | | & img:hover { |
| | | box-shadow: inset 0 0 40px #fff; |
| | | border-radius: 10px; |
| | | } |
| | | } |
| | | |
| | | .page_box .el-table { |
| | | width: 100%; |
| | | height: 680px; |
| | | // background-color: rgba(117, 116, 116, 0.3); |
| | | } |
| | | |
| | | .active { |
| | | // color: #409eff; |
| | | // border-radius: 10px; |
| | | box-shadow: inset 0 0 100px #2a8ef1; |
| | | } |
| | | </style> |