|
@@ -1,182 +1,228 @@
|
|
|
<template>
|
|
|
- <el-row class="main animate__animated animate__backInLeft">
|
|
|
- <el-col :span="24" class="info">
|
|
|
- <el-col :span="24" class="tabs">
|
|
|
- <el-col :span="3" :class="['tabList', item.id == tabActive ? 'tabActiveList' : '']"
|
|
|
- v-for="(item, index) in tabList" :key="index" @click="tabChange(item)">
|
|
|
- {{ item.title }}
|
|
|
- </el-col>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24" class="infoList">
|
|
|
- <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
|
|
|
- <el-col :span="20" class="title textOver">
|
|
|
- {{ item.title }}
|
|
|
- </el-col>
|
|
|
- <el-col :span="4" class="date">
|
|
|
- {{ item.date }}
|
|
|
- </el-col>
|
|
|
- </el-col>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24" class="pages">
|
|
|
- <pages-index :total="total" @search="toSearch" />
|
|
|
- </el-col>
|
|
|
+ <el-row class="main animate__animated animate__backInLeft">
|
|
|
+ <el-col :span="24" class="info">
|
|
|
+ <el-col :span="24" class="tabs">
|
|
|
+ <el-col
|
|
|
+ :span="3"
|
|
|
+ :class="['tabList', item.id == tabActive ? 'tabActiveList' : '']"
|
|
|
+ v-for="(item, index) in tabList"
|
|
|
+ :key="index"
|
|
|
+ @click="tabChange(item)"
|
|
|
+ >
|
|
|
+ {{ item.title }}
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" v-if="tabActive == '6'">
|
|
|
+ <!-- TODO:网上缴费组件 -->
|
|
|
+ <online-pay></online-pay>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" v-else-if="tabActive == '7'">
|
|
|
+ <!-- 网上办事大厅是跳转走的.不需要显示内容 -->
|
|
|
+ </el-col>
|
|
|
+ <template v-else>
|
|
|
+ <el-col :span="24" class="infoList">
|
|
|
+ <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
|
|
|
+ <el-col :span="20" class="title textOver">
|
|
|
+ {{ item.title }}
|
|
|
</el-col>
|
|
|
- </el-row>
|
|
|
+ <el-col :span="4" class="date">
|
|
|
+ {{ item.date }}
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="pages">
|
|
|
+ <pages-index :total="total" @search="toSearch" />
|
|
|
+ </el-col>
|
|
|
+ </template>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-
|
|
|
import { ref, onMounted } from 'vue'
|
|
|
-import dayjs from 'dayjs'
|
|
|
-
|
|
|
/* 分页 */
|
|
|
import pagesIndex from '../../../components/windows/pagesIndex.vue'
|
|
|
+import onlinePay from './onlinePay.vue'
|
|
|
+import { get } from 'lodash-es'
|
|
|
|
|
|
const tabList = ref([
|
|
|
- {
|
|
|
- id: '1',
|
|
|
- title: '水务情况'
|
|
|
- },
|
|
|
- {
|
|
|
- id: '2',
|
|
|
- title: '水质报告'
|
|
|
- },
|
|
|
- {
|
|
|
- id: '3',
|
|
|
- title: '停水信息'
|
|
|
- },
|
|
|
- {
|
|
|
- id: '4',
|
|
|
- title: '管网压力'
|
|
|
- },
|
|
|
- {
|
|
|
- id: '5',
|
|
|
- title: '长水e办'
|
|
|
- },
|
|
|
- {
|
|
|
- id: '6',
|
|
|
- title: '网上缴费'
|
|
|
- },
|
|
|
- {
|
|
|
- id: '7',
|
|
|
- title: '网上办事大厅'
|
|
|
- },
|
|
|
- {
|
|
|
- id: '8',
|
|
|
- title: '采购价格信息公布'
|
|
|
- }
|
|
|
+ {
|
|
|
+ id: '1',
|
|
|
+ title: '水务情况',
|
|
|
+ type: 'swggz',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: '2',
|
|
|
+ title: '水质报告',
|
|
|
+ type: 'szbgz',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: '3',
|
|
|
+ title: '停水信息',
|
|
|
+ type: 'tsxxz',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: '4',
|
|
|
+ title: '管网压力',
|
|
|
+ type: 'gwylz',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: '5',
|
|
|
+ title: '长水e办',
|
|
|
+ type: 'toLogin',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: '6',
|
|
|
+ title: '网上缴费',
|
|
|
+ type: 'showView',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: '7',
|
|
|
+ title: '网上办事大厅',
|
|
|
+ type: 'gov',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: '8',
|
|
|
+ title: '采购价格信息公布',
|
|
|
+ type: 'cgjgxxgbz',
|
|
|
+ },
|
|
|
])
|
|
|
const tabActive = ref('1')
|
|
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
|
const list = ref<any[]>([
|
|
|
- {
|
|
|
- id: '1',
|
|
|
- title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
- date: '2024-12-24',
|
|
|
- },
|
|
|
- {
|
|
|
- id: '2',
|
|
|
- title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
- date: '2024-12-24',
|
|
|
- },
|
|
|
- {
|
|
|
- id: '3',
|
|
|
- title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
- date: '2024-12-24',
|
|
|
- },
|
|
|
- {
|
|
|
- id: '4',
|
|
|
- title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
- date: '2024-12-24',
|
|
|
- }
|
|
|
+ {
|
|
|
+ id: '1',
|
|
|
+ title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
+ date: '2024-12-24',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: '2',
|
|
|
+ title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
+ date: '2024-12-24',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: '3',
|
|
|
+ title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
+ date: '2024-12-24',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: '4',
|
|
|
+ title: '集团召开2021年度安全生产委员会第一次全体(扩大)视频会议',
|
|
|
+ date: '2024-12-24',
|
|
|
+ },
|
|
|
])
|
|
|
const total = ref(40)
|
|
|
|
|
|
-
|
|
|
/* 选择 */
|
|
|
const tabChange = (event: { id: string }) => {
|
|
|
- tabActive.value = event.id
|
|
|
+ tabActive.value = event.id
|
|
|
+ dealNowTag(event.id)
|
|
|
}
|
|
|
-
|
|
|
+/**根据标签页id,处理显示内容 */
|
|
|
+const dealNowTag = (id: string) => {
|
|
|
+ const tab = tabList.value.find((f) => f.id == id)
|
|
|
+ if (!tab) return
|
|
|
+ const type = get(tab, 'type')
|
|
|
+ if (!type) return
|
|
|
+ if (type == 'toLogin') {
|
|
|
+ // TODO:跳转至登录
|
|
|
+ } else if (type == 'gov') {
|
|
|
+ // 跳转到吉林省政府平台
|
|
|
+ window.location.href = 'https://zwfw.jl.gov.cn/jlszwfw/'
|
|
|
+ } else if (type == 'showView') {
|
|
|
+ // 切换到网上办事大厅组件,不用做什么
|
|
|
+ } else {
|
|
|
+ // 剩下的都是列表查询
|
|
|
+ viewType.value = type
|
|
|
+ toSearch()
|
|
|
+ }
|
|
|
+}
|
|
|
+const viewType = ref('swggz')
|
|
|
+import { gsxx } from '@/api/api'
|
|
|
/* 查询 */
|
|
|
const toSearch = async ({ skip = 0, limit = 10, ...info } = {}) => {
|
|
|
- console.log(skip, limit);
|
|
|
- console.log(info);
|
|
|
+ const result = await gsxx.query(viewType.value, { skip, limit, ...info })
|
|
|
+ if (result.errcode == 0) {
|
|
|
+ const resultList = get(result, 'data.data', [])
|
|
|
+ const resultTotal = get(result, 'data.total', 0)
|
|
|
+ if (resultList.length > 0) {
|
|
|
+ list.value = resultList
|
|
|
+ total.value = resultTotal
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+import { useRoute } from 'vue-router'
|
|
|
+const route = useRoute()
|
|
|
/* 初始化 */
|
|
|
onMounted(() => {
|
|
|
- toSearch()
|
|
|
+ const id: any = get(route, 'query.tag')
|
|
|
+ if (id) dealNowTag(id)
|
|
|
})
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
|
.main {
|
|
|
- padding: 0 17%;
|
|
|
-
|
|
|
- .info {
|
|
|
- .tabs {
|
|
|
- display: flex;
|
|
|
- margin: 0 0 50px 0;
|
|
|
-
|
|
|
- .tabList {
|
|
|
- text-align: center;
|
|
|
- color: rgb(102, 102, 102);
|
|
|
- font-family: '黑体';
|
|
|
- font-size: 18px;
|
|
|
- font-weight: 500;
|
|
|
- line-height: 26px;
|
|
|
- letter-spacing: 0px;
|
|
|
- border-bottom: 4px solid transparent;
|
|
|
- }
|
|
|
-
|
|
|
- .tabList:hover {
|
|
|
- cursor: pointer;
|
|
|
- color: rgb(25, 25, 26);
|
|
|
- border-bottom: 4px solid rgb(21, 134, 255);
|
|
|
- }
|
|
|
-
|
|
|
- .tabActiveList {
|
|
|
- color: rgb(25, 25, 26);
|
|
|
- border-bottom: 4px solid rgb(21, 134, 255);
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .infoList {
|
|
|
-
|
|
|
- .list {
|
|
|
- display: flex;
|
|
|
- border-bottom: 1px solid rgb(217, 217, 217);
|
|
|
- padding: 30px 0;
|
|
|
-
|
|
|
- .title {
|
|
|
- color: rgb(25, 25, 26);
|
|
|
- font-family: '黑体';
|
|
|
- font-size: 24px;
|
|
|
- font-weight: 500;
|
|
|
- line-height: 35px;
|
|
|
- letter-spacing: 0px;
|
|
|
- text-align: left;
|
|
|
- }
|
|
|
-
|
|
|
- .date {
|
|
|
- color: rgb(25, 25, 26);
|
|
|
- font-family: '黑体';
|
|
|
- font-size: 24px;
|
|
|
- font-weight: 500;
|
|
|
- line-height: 32px;
|
|
|
- letter-spacing: 0px;
|
|
|
- text-align: left;
|
|
|
- }
|
|
|
-
|
|
|
+ padding: 0 17%;
|
|
|
+
|
|
|
+ .info {
|
|
|
+ .tabs {
|
|
|
+ display: flex;
|
|
|
+ margin: 0 0 50px 0;
|
|
|
+
|
|
|
+ .tabList {
|
|
|
+ text-align: center;
|
|
|
+ color: rgb(102, 102, 102);
|
|
|
+ font-family: '黑体';
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: 500;
|
|
|
+ line-height: 26px;
|
|
|
+ letter-spacing: 0px;
|
|
|
+ border-bottom: 4px solid transparent;
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ .tabList:hover {
|
|
|
+ cursor: pointer;
|
|
|
+ color: rgb(25, 25, 26);
|
|
|
+ border-bottom: 4px solid rgb(21, 134, 255);
|
|
|
+ }
|
|
|
|
|
|
- .list:last-child {
|
|
|
- border-bottom: none;
|
|
|
- }
|
|
|
+ .tabActiveList {
|
|
|
+ color: rgb(25, 25, 26);
|
|
|
+ border-bottom: 4px solid rgb(21, 134, 255);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .infoList {
|
|
|
+ .list {
|
|
|
+ display: flex;
|
|
|
+ border-bottom: 1px solid rgb(217, 217, 217);
|
|
|
+ padding: 30px 0;
|
|
|
+
|
|
|
+ .title {
|
|
|
+ color: rgb(25, 25, 26);
|
|
|
+ font-family: '黑体';
|
|
|
+ font-size: 24px;
|
|
|
+ font-weight: 500;
|
|
|
+ line-height: 35px;
|
|
|
+ letter-spacing: 0px;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+
|
|
|
+ .date {
|
|
|
+ color: rgb(25, 25, 26);
|
|
|
+ font-family: '黑体';
|
|
|
+ font-size: 24px;
|
|
|
+ font-weight: 500;
|
|
|
+ line-height: 32px;
|
|
|
+ letter-spacing: 0px;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ .list:last-child {
|
|
|
+ border-bottom: none;
|
|
|
}
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|