| | |
| | | * @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 |
| | | * @LastEditTime: 2024-11-08 20:12:10 |
| | | * @FilePath: \bigScreen\src\views\space\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/space/space"; |
| | | import { getDictionary } from "@/api/dict/dict"; |
| | | import { reactive } from "vue"; |
| | | const loading = ref(false); |
| | | import publicContent from "./publicContent.vue" |
| | | import { getList } from "@/api/space/space" |
| | | import { getDictionary } from "@/api/dict/dict" |
| | | import { nextTick, reactive } from "vue" |
| | | const SeachBarCondition = ref(null) |
| | | const loading = ref(false) |
| | | const TableContent = ref(null) |
| | | const curTableHeight = ref(0) |
| | | |
| | | const tableData = ref([]); |
| | | const opertionData = ref([]); |
| | | // 搜索项配置 |
| | | const options = reactive({ |
| | | searchBtnGroup: true, |
| | | searchBtn: true, |
| | | resetBtn: true, |
| | | exportBtn: false, |
| | | columns: [ |
| | | { |
| | | label: "名称", |
| | | type: 'input', |
| | | props: 'name', |
| | | placeholder: '请输入名称', |
| | | changeSearch: true, |
| | | flex: 1, |
| | | }, |
| | | { |
| | | label: "类型", |
| | | type: "select", |
| | | props: "type", |
| | | data: [], |
| | | changeSearch: true, |
| | | clearable: true, |
| | | flex: 1, |
| | | }, |
| | | ] |
| | | }) |
| | | |
| | | const tableData = ref([]) |
| | | const pages = { |
| | | page: 1, |
| | | pageSize: 10, |
| | | total: 0, |
| | | }; |
| | | |
| | | function positionColor() { |
| | | return (row) => { |
| | | if ( |
| | | (row.X && row.X != 0) || |
| | | (row.lng && row.lng != 0) || |
| | | (row.longitude && row.longitude != 0) || |
| | | (row.x && row.x != 0) |
| | | ) { |
| | | return "#1AFA29"; |
| | | } else { |
| | | return "#ccc"; |
| | | } |
| | | }; |
| | | } |
| | | |
| | | function positionDisabled() { |
| | | function positionColor () { |
| | | return (row) => { |
| | | if ( |
| | | (row.X && row.X != 0) || |
| | |
| | | (row.longitude && row.longitude != 0) || |
| | | (row.x && row.x != 0) |
| | | ) { |
| | | return false; |
| | | return "#1AFA29" |
| | | } else { |
| | | return true; |
| | | return "#ccc" |
| | | } |
| | | }; |
| | | } |
| | | } |
| | | |
| | | function positionDisabled () { |
| | | return (row) => { |
| | | if ( |
| | | (row.X && row.X != 0) || |
| | | (row.lng && row.lng != 0) || |
| | | (row.longitude && row.longitude != 0) || |
| | | (row.x && row.x != 0) |
| | | ) { |
| | | return false |
| | | } else { |
| | | return true |
| | | } |
| | | } |
| | | } |
| | | |
| | | onMounted(() => { |
| | | // 获取下拉字典信息 |
| | | getDictData("emergency_space_type"); |
| | | // 获取列表信息 |
| | | getLists(); |
| | | }); |
| | | // 表格样式 |
| | | const tableCellStyle = ({ row, column }) => { |
| | | return { background: "#152851", color: "#fff" }; |
| | | }; |
| | | // 表格表头样式 |
| | | const headerCellStyle = ({ }) => { |
| | | return { |
| | | background: "#152851", |
| | | color: "#fff", |
| | | }; |
| | | }; |
| | | // 搜索条件 |
| | | const formInline = reactive({ |
| | | name: "", |
| | | type: "", |
| | | }); |
| | | curTableHeight.value = TableContent.value.offsetHeight |
| | | }) |
| | | |
| | | // 提交查询 |
| | | const onSubmit = () => { |
| | | resetPage(); |
| | | console.log("submit!"); |
| | | getLists(formInline); |
| | | }; |
| | | watch( |
| | | () => TableContent, |
| | | (newData) => { |
| | | console.log(newData.value?.clientHeight, 456465456) |
| | | }, |
| | | { |
| | | immediate: true, |
| | | deep: true |
| | | }) |
| | | |
| | | // 重置分页数据 |
| | | const resetPage = () => { |
| | | pages.page = 1; |
| | | pages.pageSize = 10; |
| | | pages.total = 0; |
| | | }; |
| | | |
| | | // 分页树改变 |
| | | const handleSizeChange = (val) => { |
| | | pages.pageSize = val; |
| | | getLists(formInline); |
| | | }; |
| | | // 分页改变 |
| | | const handleCurrentChange = (val) => { |
| | | pages.page = val; |
| | | getLists(formInline); |
| | | }; |
| | | // 重置条件 |
| | | const clearBtn = () => { |
| | | formInline.name = ""; |
| | | formInline.type = ""; |
| | | resetPage(); |
| | | getLists(formInline); |
| | | }; |
| | | pages.page = val |
| | | getLists(SeachBarCondition.value.getSeachCondition()) |
| | | } |
| | | |
| | | // 获取下拉字典 |
| | | function getDictData(code) { |
| | | const getDictData = (code) => { |
| | | const param = { |
| | | code: code, |
| | | }; |
| | | } |
| | | getDictionary(param).then((res) => { |
| | | opertionData.value = res.data.data; |
| | | }); |
| | | options.columns[1].data = res.data.data.map(item => { |
| | | return { |
| | | label: item.dictValue, |
| | | value: item.dictKey |
| | | } |
| | | }) |
| | | |
| | | searchBtn(SeachBarCondition.value.getSeachCondition()) |
| | | }) |
| | | } |
| | | |
| | | // 查询分页数据 |
| | | function getLists(param = {}) { |
| | | param.current = pages.page; |
| | | param.size = pages.pageSize; |
| | | loading.value = true; |
| | | const 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; |
| | | const data = res.data.data |
| | | tableData.value = data.records |
| | | pages.total = data.total |
| | | loading.value = false |
| | | }) |
| | | .catch((err) => { |
| | | loading.value = false; |
| | | console.log(err); |
| | | }); |
| | | loading.value = false |
| | | console.log(err) |
| | | }) |
| | | } |
| | | |
| | | // 行点击 |
| | | function rowClick(row) { |
| | | function rowClick (row) { |
| | | // 读取定位飞 |
| | | } |
| | | |
| | | // 查看详情 |
| | | function goDetail(row) { } |
| | | function goDetail (row) { } |
| | | |
| | | const searchBtn = (params) => { |
| | | resetPage() |
| | | getLists(params) |
| | | } |
| | | |
| | | const resetBtn = (params) => { |
| | | resetPage() |
| | | getLists(params) |
| | | } |
| | | |
| | | // 重置分页数据 |
| | | const resetPage = () => { |
| | | pages.page = 1 |
| | | pages.pageSize = 10 |
| | | pages.total = 0 |
| | | } |
| | | |
| | | // 分页树改变 |
| | | const handleSizeChange = (val) => { |
| | | pages.pageSize = val |
| | | getLists(SeachBarCondition.value.getSeachCondition()) |
| | | } |
| | | |
| | | getDictData("emergency_space_type") |
| | | </script> |
| | | |
| | | <template> |
| | | <public-content> |
| | | <template #content> |
| | | <div class="search-box"> |
| | | <el-form :inline="true" :model="formInline" class="demo-form-inline"> |
| | | <el-form-item label="名称"> |
| | | <el-input v-model="formInline.name" placeholder="请输入名称" clearable style="width: 350px" /> |
| | | </el-form-item> |
| | | <el-form-item label="类型"> |
| | | <el-select v-model="formInline.type" placeholder="请选择" clearable style="width: 120px"> |
| | | <el-option v-for="item in opertionData" :label="item.dictValue" :value="item.dictKey" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button siz="default" type="primary" @click="onSubmit">查询</el-button> |
| | | <el-button siz="default" 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="emergencySpaceType" label="类型" width="70" /> |
| | | <el-table-column prop="mainFuncName" label="作用" width="60" /> |
| | | <el-table-column width="60" label="操作" align="center"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" :disabled="scope.row.lng == ''" @click="rowClick(scope.row)"> |
| | | 定位 |
| | | </el-button> |
| | | <!-- <el-button link type="primary" size="small" @click="goDetail"> |
| | | <div class="w100 h0 flex-1 flex f-d-c"> |
| | | <global-search :options="options" @searchBtn="searchBtn" @resetBtn="resetBtn" |
| | | ref="SeachBarCondition"></global-search> |
| | | |
| | | <div class="h0 flex-1 table-content" ref="TableContent"> |
| | | <el-table :data="tableData" :height="curTableHeight" style="width: 100%" v-loading="loading"> |
| | | <el-table-column prop="name" label="名称" /> |
| | | <el-table-column prop="emergencySpaceType" label="类型" width="70" /> |
| | | <el-table-column prop="mainFuncName" label="作用" width="60" /> |
| | | <el-table-column width="60" label="操作" align="center"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" :disabled="scope.row.lng == ''" @click="rowClick(scope.row)"> |
| | | 定位 |
| | | </el-button> |
| | | <!-- <el-button link type="primary" size="small" @click="goDetail"> |
| | | <i class="el-icon-document" style="color: #66b1ff"></i>详情 |
| | | </el-button> --> |
| | | </template> |
| | | </el-table-column> |
| | | </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> |
| | | </div> |
| | | </template> |
| | | </public-content> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | |
| | | <div class="el-page"> |
| | | <el-pagination background layout="prev, pager, next" :page-size="pages.pageSize" :total="pages.total" |
| | | @size-change="handleSizeChange" @current-change="handleCurrentChange" size="small" /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | |
| | | color: #fff !important; |
| | | } |
| | | |
| | | |
| | | .search-box { |
| | | ::v-deep .el-table__body-wrapper { |
| | | background-color: #152851; |
| | | } |
| | | } |
| | | |
| | | /* 当表格没有数据时,修改表格的背景颜色 */ |
| | | .el-table--empty .el-table__body { |
| | | background-color: rgba(135, 158, 199, 0.3); |
| | | /* 你想要的背景颜色 */ |
| | | .table-content { |
| | | flex-basis: auto; |
| | | height: calc(100% - 40px); |
| | | } |
| | | |
| | | .el-page { |
| | | margin-top: 10px; |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | // margin-bottom:10px; |
| | | width: 100%; |
| | | height: 40px; |
| | | line-height: 40px; |
| | | } |
| | | </style> |