From ecdffd165cf73c0e3c051c69d1dfdc71ba9331c8 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Tue, 26 Nov 2024 01:18:01 +0800
Subject: [PATCH] 突发事件模拟调整

---
 src/views/supplies/components/box/dataContent.vue |  414 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 262 insertions(+), 152 deletions(-)

diff --git a/src/views/supplies/components/box/dataContent.vue b/src/views/supplies/components/box/dataContent.vue
index a506ea5..1859838 100644
--- a/src/views/supplies/components/box/dataContent.vue
+++ b/src/views/supplies/components/box/dataContent.vue
@@ -1,170 +1,280 @@
-<!--
- * @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";
-import { getList } from "@/api/emergencySupplies/emergencySupplies";
-import { reactive } from "vue";
-
-const loading = ref(false);
-
-const tableData = ref([]);
-const pages = {
-  page: 1,
-  pageSize: 13,
-  total: 0,
-};
-
-onMounted(() => {
-  getLists();
-});
-// 表格样式
-const tableCellStyle = ({ row, column }) => {
-  return { background: "#152851", color: "#fff" };
-};
-// 表格表头样式
-const headerCellStyle = ({}) => {
-  return {
-    background: "#152851",
-    color: "#fff",
-  };
-};
-// 搜索条件
-const formInline = reactive({
-  name: "",
-  ownership:''
-});
-
-// 提交查询
-const onSubmit = () => {
-  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 = ''
-  formInline.ownership = ''
-  pages.page = 1
-  pages.pageSize=13
-  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.firmId) {
-          element.ownership = "园区";
-        } else {
-          element.ownership = "企业";
-        }
-      });
-      tableData.value = data.records;
-      pages.total = data.total;
-      loading.value = false;
-    })
-    .catch((err) => {
-      loading.value = false;
-      console.log(err);
-    });
-}
-</script>
-
 <template>
   <public-content>
     <template #content>
-      <div>
-        <el-form :inline="true" :model="formInline" class="demo-form-inline">
-          <el-form-item label="名称">
-            <el-input
-              v-model="formInline.name"
-              placeholder="请输入名称"
-              clearable
-              style="width: 120px"
-            />
-          </el-form-item>
-          <el-form-item label="归属">
-            <el-select
-              v-model="formInline.ownership"
-              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>
-        <el-table
-          :data="tableData"
-          style="width: 100%"
-          :header-cell-style="headerCellStyle"
-          :cell-style="tableCellStyle"
-          v-loading="loading"
-        >
-          <el-table-column fixed prop="name" label="名称" />
-          <el-table-column prop="numUnit" label="数量" width="100" />
-          <!-- <el-table-column prop="firmName" label="单位名称" /> -->
-          <el-table-column prop="ownership" label="归属" width="100" />
-        </el-table>
-        <div class="el-page">
-          <el-pagination
-            background
-            layout="prev, pager, next"
-            :page-size="pages.pageSize"
-            :total="pages.total"
-             @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-          />
+      <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>
+          </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>
 
+<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>
-.el-form-item__label {
-  color: #fff !important;
+.content_box {
+  color: #fff;
 }
 
-/* 当表格没有数据时,修改表格的背景颜色 */
-.el-table--empty .el-table__body {
-  background-color: #19284e !important; /* 你想要的背景颜色 */
+.content_box .list_box {
+  display: flex;
+  text-align: center;
 }
 
-.el-page {
-  margin-top: 10px;
-  width: 100%;
+.scrollbar-flex-content {
+  display: flex;
+}
+
+.scrollbar-demo-item {
+  flex-shrink: 0;
   display: flex;
   align-items: center;
-  // margin-bottom:10px;
+  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>

--
Gitblit v1.9.3