智慧园区前端大屏
linwe
2024-11-13 1b29075752cff967d98eb8dd4263a6c11d60c43b
救援物质页面优化
3 files modified
167 ■■■■■ changed files
src/views/rt/components/box/dataContent.vue 44 ●●●●● patch | view | raw | blame | history
src/views/supplies/components/box/dataContent.vue 121 ●●●●● patch | view | raw | blame | history
src/views/survey/components/box/fireSource.vue 2 ●●● patch | view | raw | blame | history
src/views/rt/components/box/dataContent.vue
@@ -21,8 +21,8 @@
let currentIndex = ref(0)
// 园区 企业
const tilteList = ref([
  { label: "吉水化工园区", value: "0", id: "1" },
  { label: "吉水化工园区企业", value: "0", id: "2" }
  { label: "园区救援队伍", value: "0", id: "1" },
  { label: "企业救援队伍", value: "0", id: "2" }
]);
const pages = {
@@ -33,24 +33,8 @@
onMounted(() => {
  getLists(formInline);
  // getCompanyPages();
});
// 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
@@ -118,16 +102,7 @@
  getList(param)
    .then((res) => {
      const data = res.data.data;
      // data.records.forEach((element) => {
      //   if (element.type == 1) {
      //     element.ownership = "园区";
      //   } else {
      //     element.ownership = "企业";
      //   }
      // });
      tableData.value = data.records;
      // pages.total = data.total;
      // loading.value = false;
    })
    .catch((err) => {
      loading.value = false;
@@ -140,21 +115,6 @@
  <public-content>
    <template #content>
      <div class="content_box">
        <!-- <el-form :inline="true" :model="formInline" class="demo-form-inline">
          <el-form-item label="姓名">
            <el-input v-model="formInline.perInCha" placeholder="请输入姓名" clearable style="width: 120px" />
          </el-form-item>
          <el-form-item label="归属">
            <el-select v-model="formInline.type" placeholder="请选择" clearable style="width: 120px">
              <el-option label="园区" value="1" />
              <el-option label="企业" value="2" />
            </el-select>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="onSubmit">查询</el-button>
            <el-button type="" @click="clearBtn">重置</el-button>
          </el-form-item>
        </el-form> -->
        <div class="list_box">
          <ul>
src/views/supplies/components/box/dataContent.vue
@@ -1,33 +1,24 @@
<!--
 * @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.
-->
<template>
  <public-content>
    <template #content>
      <div class="content_box">
        <div class="list_box">
          <ul>
            <li v-for="( item, index ) in  tilteList " :key="index" :class="[currentIndex === index ? 'active' : '']"
              @click="handleClick(item, index)">
              {{ item.label }}
            </li>
          </ul>
          <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="负责人电话" />
@@ -37,7 +28,6 @@
            <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="负责人" />
@@ -47,7 +37,6 @@
            </el-table>
          </div>
        </div>
      </div>
    </template>
  </public-content>
@@ -57,7 +46,8 @@
import publicContent from "./publicContent.vue";
import { getList } from "@/api/emergencySupplies/emergencySupplies";
import { getPage } from '@/api/indParkInfo'
import { reactive } from "vue";
import { reactive, ref, onMounted } from "vue";
import { ElScrollbar } from 'element-plus';
const loading = ref(false);
@@ -80,11 +70,20 @@
  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;
@@ -115,10 +114,12 @@
  }
  getLists(formInline);
}
// 表格样式
const tableCellStyle = ({ row, column }) => {
  return { background: "#152851", color: "#fff" };
};
// 表格表头样式
const headerCellStyle = ({ }) => {
  return {
@@ -127,26 +128,18 @@
  };
};
// 提交查询
// const onSubmit = () => {
//   pages.page = 1
//   pages.pageSize = 13
//   pages.total = 0
//   console.log("submit!");
//   getLists(formInline);
// };
// 分页树改变
const handleSizeChange = (val) => {
  pages.pageSize = val;
  getLists(formInline);
}
// 分页改变
const handleCurrentChange = (val) => {
  pages.page = val;
  getLists(formInline);
}
// 重置条件
const clearBtn = () => {
  formInline.name = ''
@@ -181,6 +174,24 @@
      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>
@@ -189,41 +200,45 @@
  color: #fff;
}
.list_box {
  overflow-x: auto;
  white-space: nowrap;
  // scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
}
.list_box ul {
.content_box .list_box {
  display: flex;
  /* 使用 Flexbox 布局 */
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: center;
}
.list_box li {
  padding: 10px;
  margin-right: 10px;
  cursor: pointer;
.scrollbar-flex-content {
  display: flex;
}
.list_box li.active {
.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: white;
  // color: var(--el-color-danger);
  // color: #000;
}
.content_box .content_span {
  line-height: 70px;
  margin: 0 15px;
}
.page_box .el-table {
  width: 100%;
  height: 700px;
  height: 680px;
  background-color: rgba(117, 116, 116, 0.3);
}
.active {
  background-color: #fff;
  color: #000;
  background-color: rgba(255, 255, 255, 0.3);
  color: #fff;
  border-radius: 10px;
}
</style>
src/views/survey/components/box/fireSource.vue
@@ -139,7 +139,7 @@
.box-content-img {
  height: 380px;
  height: 280px;
  line-height: 28px;
  // 隐藏滚动条
  scrollbar-width: none;