Browse Source

Merge branch 'master' of http://39.105.126.192:3000/DR3_web/zjyzt_gis_master_web_ui.git

wan.dequan 3 years ago
parent
commit
38b54a7053

+ 17 - 0
src/api/datalog.js

@@ -0,0 +1,17 @@
+import {
+    post,
+} from '../utils/request'
+
+// 数据日志
+const getDataLog = (params) => {
+    return post(systemConfig.oauthServiceUrl + '/record/getRecordBySuccess', params);
+}
+// 结果反馈
+const getFeedback = (params) => {
+    return post(systemConfig.oauthServiceUrl + '/record/getRecordBytypeAll', params);
+}
+
+export default {
+    getDataLog,
+    getFeedback
+}

BIN
src/assets/fonts/YouSheBiaoTiHei.ttf


BIN
src/assets/images/ChinaGeographicInformationCenterTitleImage.png


+ 5 - 0
src/assets/less/fonts.less

@@ -0,0 +1,5 @@
+
+@font-face {
+    font-family: "YouSheBiaoTiHei";
+    src: url("../fonts/YouSheBiaoTiHei.ttf");
+}

+ 1 - 1
src/components/Currency/DataTable/MetadataListContainer.vue

@@ -246,7 +246,7 @@ export default {
             });
           } else {
             // 提示接口访问失败
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
             that.tableData = [];
             that.dataTotal = 0;
             that.tableLoading = false;

+ 4 - 4
src/components/Currency/DataTable/MetadataListContainer/FileImport.vue

@@ -97,7 +97,7 @@
             </template>
           </el-table-column>
 
-          <el-table-column align="right">
+          <el-table-column :align="$elDatePickerAlign">
             <template slot="header">
               <el-button size="mini" @click="addAdvancedOptionsRow()">
                 <i class="el-icon-plus"></i>
@@ -299,7 +299,7 @@ export default {
               message: "文件上传成功!",
             });
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {
@@ -324,7 +324,7 @@ export default {
               message: "文件上传成功!",
             });
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {
@@ -349,7 +349,7 @@ export default {
               message: "文件上传成功!",
             });
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {

+ 2 - 2
src/components/Currency/DataTable/MetadataListContainer/MetadataList.vue

@@ -268,7 +268,7 @@ export default {
             });
             that.updateData();
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {
@@ -295,7 +295,7 @@ export default {
             that.formData = result.content;
             that.isShowAddSingleDataDialog = true;
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {

+ 3 - 3
src/components/Currency/DataTable/MetadataListContainer/SingleData.vue

@@ -128,7 +128,7 @@
             </template>
           </el-table-column>
 
-          <el-table-column align="right" v-if="edit">
+          <el-table-column :align="$elDatePickerAlign" v-if="edit">
             <template slot="header">
               <el-button size="mini" @click="addAdvancedOptionsRow()">
                 <i class="el-icon-plus"></i>
@@ -382,7 +382,7 @@ export default {
             if (that.updateData) that.updateData();
             that.dialogBeforeClose();
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {
@@ -417,7 +417,7 @@ export default {
             if (that.updateData) that.updateData();
             that.dialogBeforeClose();
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {

+ 185 - 2
src/components/DataAccess/DataLog.vue

@@ -1,13 +1,196 @@
 <template>
-  
+<div class="log_container">
+        <el-container>
+            <el-header>
+                <el-row>
+                    <el-col :span="12">
+                        <div class="title"> </div>
+                    </el-col>
+                    <el-col :span="24">
+                        <div>
+                            <el-date-picker
+                                v-model="datatime"
+                                type="datetimerange"
+                                :picker-options="pickerOptions"
+                                range-separator="至"
+                                start-placeholder="开始日期"
+                                end-placeholder="结束日期"
+                                :align="$elDatePickerAlign"
+                            ></el-date-picker>
+                            <el-button type="primary" @click="search">查询</el-button>
+                        </div>
+                    </el-col>
+                </el-row>
+            </el-header>
+            <el-main>
+                <ListContainer
+                    v-bind="{
+                        listField: listField,
+                        listData: logList,
+                        noDataTip: '暂无数据',
+                        total: total,
+                        pageSize: pageSize,
+                        currentPage: page,
+                        searchData: getDataLog,
+                    }"
+                ></ListContainer>
+            </el-main>
+            <!-- <el-footer>
+                <div>
+                    <el-pagination
+                        background
+                        layout="prev, pager, next"
+                        :page-size="pageSize"
+                        :total="total"
+                        @current-change="currentPageChange"
+                    ></el-pagination>
+                </div>
+            </el-footer>-->
+        </el-container>
+    </div>
 </template>
 
 <script>
+import api from "@/api/datalog"
 export default {
+    components: { 
+        ListContainer: () => import("@/components/Currency/ListContainer.vue")
+    },
+    data() {
+        return {
+            pickerOptions: {
+                shortcuts: [{
+                    text: '最近一周',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }, {
+                    text: '最近一个月',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }, {
+                    text: '最近三个月',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }]
+            },
+            datatime: [new Date(new Date().getTime() - 7 * 24 * 60 * 60 * 1000), new Date()],
+            page: 1,
+            pageSize: 20,
+            total: 0,
+            logList: [],
+            listField: [
+                {
+                    name: 'code',
+                    alias: '响应值',
+                    span: 3
+                },
+                {
+                    name: 'message',
+                    alias: '响应值描述',
+                    span: 3
+                },
+                {
+                    name: 'content',
+                    alias: '日志数据',
+                    span: 15
+                },
+                {
+                    name: 'Count',
+                    alias: '数据条数',
+                    span: 3
+                }
+            ]
+        }
+    },
+    created() {
+        this.page = 1;
+        this.getDataLog(this.page);
+    },
+    methods: {
+        getDataLog(page) {
+            let that = this;
+            let requestData = new FormData;
+            requestData.append("page",page - 1);
+            requestData.append("pageSize",this.pageSize);
+            // let obj = {
+            //     page: page - 1 + '',
+            //     pageSize: this.pageSize + ''
+            // }
+            // if (this.datatime != null) {
+            //     obj.startDate = this.datatime[0].getTime()
+            //     obj.endDate = this.datatime[1].getTime()
+            // }
+            if (this.datatime != null) {
+                requestData.append("startDate",this.datatime[0].getTime());
+                requestData.append("endDate",this.datatime[1].getTime());
+            }
+            api.getDataLog(requestData).then((result) => {
+                if (result.code == 200) {
+                    that.total = result.total;
+                    that.logList = result.content == -1 || result.content == "" ? [] : result.content;
+                } else {
+                    this.$checkRequestCode(result)
+                }
+            }).catch((err) => {
+                that.$message({
+                    type: "error",
+                    message: err
+                })
+            });
+        },
+        search() {
+            this.page = 1;
+            this.getDataLog(this.page)
+        }
+    }
 
 }
 </script>
-
 <style lang="less" scoped>
+.log_container {
+    width: calc(100% - 20px);
+    height: 100%;
+    margin-left:20px;
+    .el-container {
+        width: 100%;
+        height: 100%;
+        .el-header {
+            background-color: #ffffff;
+            border-radius: 4px;
+            .el-row {
+                padding: 10px 0px;
+                .el-col:nth-child(2) {
+                    > div {
+                        float: right;
+                    }
+                }
+            }
+            .title {
+                line-height: 40px;
+                font-size: 20px;
+            }
 
+            .el-date-editor {
+                margin-right: 20px;
+            }
+        }
+        .el-main {
+            border-radius: 4px;
+            margin-top: 20px;
+            background-color: #ffffff;
+        }
+    }
+}
 </style>

+ 206 - 0
src/components/DataAccess/Feedback.vue

@@ -0,0 +1,206 @@
+<template>
+    <div class="log_container">
+        <el-container>
+            <el-header>
+                <el-row>
+                    <el-col :span="12">
+                        <div class="title"> </div>
+                    </el-col>
+                    <el-col :span="24">
+                        <div>
+                            <el-date-picker
+                                v-model="datatime"
+                                type="datetimerange"
+                                :picker-options="pickerOptions"
+                                range-separator="至"
+                                start-placeholder="开始日期"
+                                end-placeholder="结束日期"
+                                :align="$elDatePickerAlign"
+                            ></el-date-picker>
+                            <el-button type="primary" @click="search">查询</el-button>
+                        </div>
+                    </el-col>
+                </el-row>
+            </el-header>
+            <el-main>
+                <ListContainer
+                    v-bind="{
+                        listField: listField,
+                        listData: logList,
+                        noDataTip: '暂无数据',
+                        total: total,
+                        pageSize: pageSize,
+                        currentPage: page,
+                        searchData: getFeedback,
+                    }"
+                ></ListContainer>
+            </el-main>
+            <!-- <el-footer>
+                <div>
+                    <el-pagination
+                        background
+                        layout="prev, pager, next"
+                        :page-size="pageSize"
+                        :total="total"
+                        @current-change="currentPageChange"
+                    ></el-pagination>
+                </div>
+            </el-footer>-->
+        </el-container>
+    </div>
+</template>
+
+<script>
+import api from "@/api/datalog"
+export default {
+    components: { 
+        ListContainer: () => import("@/components/Currency/ListContainer.vue")
+    },
+    data() {
+        return {
+            pickerOptions: {
+                shortcuts: [{
+                    text: '最近一周',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }, {
+                    text: '最近一个月',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }, {
+                    text: '最近三个月',
+                    onClick(picker) {
+                        const end = new Date();
+                        const start = new Date();
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+                        picker.$emit('pick', [start, end]);
+                    }
+                }]
+            },
+            datatime: [new Date(new Date().getTime() - 7 * 24 * 60 * 60 * 1000), new Date()],
+            page: 1,
+            pageSize: 20,
+            total: 0,
+            logList: [],
+            listField: [
+                {
+                    name: 'id',
+                    alias: 'id',
+                    span: 2
+                },
+                {
+                    name: 'userName',
+                    alias: '用户',
+                    span: 3
+                },
+                {
+                    name: 'loginIp',
+                    alias: 'IP',
+                    span: 3
+                },
+                {
+                    name: 'createTime',
+                    alias: '时间',
+                    span: 5
+                },
+                {
+                    name: 'dataState',
+                    alias: '状态',
+                    span: 2
+                },
+                {
+                    name: 'remarks',
+                    alias: '结果反馈',
+                    span: 7
+                }
+            ]
+        }
+    },
+    created() {
+        this.page = 1;
+        this.getFeedback(this.page);
+    },
+    methods: {
+        getFeedback(page) {
+            let that = this;
+            let requestData = new FormData;
+            requestData.append("page",page - 1);
+            requestData.append("pageSize",this.pageSize);
+            // let obj = {
+            //     page: page - 1,
+            //     pageSize: this.pageSize
+            // }
+            // if (this.datatime != null) {
+            //     obj.startDate = this.datatime[0].getTime()
+            //     obj.endDate = this.datatime[1].getTime()
+            // }
+            if (this.datatime != null) {
+                requestData.append("startDate",this.datatime[0].getTime());
+                requestData.append("endDate",this.datatime[1].getTime());
+            }
+            api.getFeedback(requestData).then((result) => {
+                if (result.code == 200) {
+                    that.total = result.total;
+                    that.logList = result.content == -1 || result.content == "" ? [] : result.content;
+                } else {
+                    this.$checkRequestCode(result)
+                }
+            }).catch((err) => {
+                that.$message({
+                    type: "error",
+                    message: err
+                })
+            });
+        },
+        search() {
+            this.page = 1;
+            this.getFeedback(this.page)
+        }
+    }
+}
+</script>
+
+<style lang="less" scoped>
+.log_container {
+    width: calc(100% - 20px);
+    height: 100%;
+    margin-left:20px;
+    .el-container {
+        width: 100%;
+        height: 100%;
+        .el-header {
+            background-color: #ffffff;
+            border-radius: 4px;
+            .el-row {
+                padding: 10px 0px;
+                .el-col:nth-child(2) {
+                    > div {
+                        float: right;
+                    }
+                }
+            }
+            .title {
+                line-height: 40px;
+                font-size: 20px;
+            }
+
+            .el-date-editor {
+                margin-right: 20px;
+            }
+        }
+        .el-main {
+            border-radius: 4px;
+            margin-top: 20px;
+            background-color: #ffffff;
+        }
+    }
+}
+</style>

+ 0 - 14
src/components/DataAccess/ResultFeedback.vue

@@ -1,14 +0,0 @@
-<template>
-  
-</template>
-
-<script>
-export default {
-
-}
-</script>
-
-<style lang="less" scoped>
-
-</style>
- 

+ 2 - 2
src/components/DataLayer/LayerDetail.vue

@@ -369,7 +369,7 @@ export default {
             that.dialogBeforeClose();
           } else {
             loading.close();
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {
@@ -402,7 +402,7 @@ export default {
             that.updateData();
             that.dialogBeforeClose();
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {

+ 3 - 3
src/components/DataLayer/LayerManagement.vue

@@ -146,7 +146,7 @@ export default {
             that.edit = false;
             that.isShowAddModelDetailDialog = true;
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {
@@ -172,7 +172,7 @@ export default {
             that.edit = true;
             that.isShowAddModelDetailDialog = true;
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {
@@ -200,7 +200,7 @@ export default {
               if (response.code == 200) {
                 that.$message({ type: "success", message: "删除成功!" });
               } else {
-                checkRequestCode(result);
+                this.$checkRequestCode(result);
               }
               that.getMenu();
             })

+ 2 - 2
src/components/DataServices/ServiceMonitoring.vue

@@ -15,7 +15,7 @@
                                 range-separator="至"
                                 start-placeholder="开始日期"
                                 end-placeholder="结束日期"
-                                align="right"
+                                :align="$elDatePickerAlign"
                             ></el-date-picker>
                             <el-button type="primary" @click="search">查询</el-button>
                         </div>
@@ -134,7 +134,7 @@ export default {
                     that.total = result.total;
                     that.logList = result.content == -1 || result.content == "" ? [] : result.content;
                 } else {
-                    checkRequestCode(result)
+                    this.$checkRequestCode(result)
                 }
             }).catch((err) => {
                 that.$message({

+ 1 - 1
src/components/SystemManagement/AuthorityManagement.vue

@@ -114,7 +114,7 @@ export default {
               })
             );
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {

+ 3 - 3
src/components/SystemManagement/UserManagement.vue

@@ -167,7 +167,7 @@ export default {
               })
             );
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {
@@ -188,7 +188,7 @@ export default {
             if (result.code == 200) {
               resolve(result.content);
             } else {
-              checkRequestCode(result);
+              this.$checkRequestCode(result);
               reject();
             }
           })
@@ -225,7 +225,7 @@ export default {
               });
               resolve(result.content);
             } else {
-              checkRequestCode(result);
+              this.$checkRequestCode(result);
               reject();
             }
           })

+ 35 - 1
src/main.js

@@ -7,11 +7,45 @@ Vue.use(ElementUI);
 import App from "./App.vue";
 import router from "./router";
 import store from "./store";
-
+// 引入Microsoft YaHei字体
+import "./assets/less/fonts.less";
 import VueStorage from 'vue-ls'
 Vue.use(VueStorage)
 
 Vue.config.productionTip = false;
+Vue.prototype.$elDatePickerAlign = "right";
+let requestCode = systemConfig.requestCode;
+Vue.prototype.$checkRequestCode = (result) => {
+  return new Promise((resolve, reject) => {
+    if (result.code == 212) {
+      let obj = this.getParams();
+      let autologin1 = obj.autologin;
+      let autologin2 = localStorage.getItem("autologin");
+      if (
+        autologin1 == 1 ||
+        autologin2 != null ||
+        autologin2 != undefined
+      ) {
+        this.loginFunc();
+      } else {
+        this.$store.commit("setToken", "");
+        this.$store.commit("setUserState", false);
+      }
+    } else {
+      let code = requestCode[result.code];
+      if (code == 206 || code == 207 || code == 208) {
+        this.$router.push({
+          path: "/error",
+        });
+      } else {
+        ElementUI.Message({
+          type: "warning",
+          message: requestCode[result.code],
+        });
+      }
+    }
+  });
+}
 
 // 时间格式化
 Vue.prototype.dateFormat = function (value, fmt) {

+ 411 - 5
src/views/ComprehensiveDisplay.vue

@@ -1,13 +1,419 @@
 <template>
-  
+  <!-- 综合展示 -->
+  <div class="ComprehensiveDisplayMain">
+    <!-- 第一层:新闻中心、平台介绍 -->
+    <div class="ComprehensiveDisplayMain_IntroductionOfNewsCenterAndPlatform">
+      <!-- 新闻中心 -->
+      <el-card class="Newscenter">
+        <!-- 新闻中心标题 -->
+        <div slot="header" class="clearfix userSelect_None">
+          <span class="clearfix_title"><i class="elIcon el-icon-message-solid"></i>新闻中心</span>
+          <span class="clearfix_titleEn" type="text">News Center</span>
+        </div>
+        <!-- 新闻中心主题 -->
+        <div class="Newscenter_main">
+          <!-- 图片轮播区域 -->
+          <el-carousel class="Newscenter_main_byArea" height="200px">
+            <el-carousel-item v-for="(item, index) in NewscenterAreas" :key="index">
+              <el-image style="cursor: pointer" :src="item.imageUrl" @click="Jump(item.jumpUrl)" :alt="item.alt"> </el-image>
+              <div class="Newscenter_main_byArea_alt userSelect_None">
+                <el-tooltip class="item" effect="dark" :content="item.alt" :open-delay="1000">
+                  <span>{{ item.alt }}</span>
+                </el-tooltip>
+              </div>
+            </el-carousel-item>
+          </el-carousel>
+          <!-- 新闻中心内容 -->
+          <div class="Newscenter_main_content">
+            <!-- 标题 -->
+            <el-tooltip class="item" effect="dark" :content="NewscenterData.NewscenterTitle" :open-delay="1000">
+              <div class="title" @click="Jump(NewscenterData.NewscenterUrl)">{{ NewscenterData.NewscenterTitle }}</div>
+            </el-tooltip>
+            <!-- 内容 -->
+            <el-tooltip class="item" effect="dark" :content="NewscenterData.NewscenterContent" :open-delay="1000">
+              <div class="content userSelect_None">
+                {{ NewscenterData.NewscenterContent }}
+              </div>
+            </el-tooltip>
+            <!-- 小标题 -->
+            <div v-if="NewscenterData.NewscenterTitles.length > 0">
+              <el-carousel height="70px" direction="vertical">
+                <el-carousel-item v-for="index in Math.ceil(NewscenterData.NewscenterTitles.length / 2)" :key="index">
+                  <el-tooltip
+                    class="item"
+                    effect="dark"
+                    :content="NewscenterData.NewscenterTitles[2 * index - 2].title"
+                    :open-delay="1000"
+                  >
+                    <div class="titles" @click="Jump(NewscenterData.NewscenterTitles[2 * index - 2].url)">
+                      {{ NewscenterData.NewscenterTitles[2 * index - 2].title }}
+                    </div>
+                  </el-tooltip>
+                  <div v-if="NewscenterData.NewscenterTitles[2 * index - 1]">
+                    <el-tooltip
+                      class="item"
+                      effect="dark"
+                      :content="NewscenterData.NewscenterTitles[2 * index - 1].title"
+                      :open-delay="1000"
+                    >
+                      <div class="titles" @click="Jump(NewscenterData.NewscenterTitles[2 * index - 1].url)">
+                        {{ NewscenterData.NewscenterTitles[2 * index - 1].title }}
+                      </div>
+                    </el-tooltip>
+                  </div>
+                </el-carousel-item>
+              </el-carousel>
+            </div>
+            <div v-else>暂无数据</div>
+          </div>
+        </div>
+      </el-card>
+      <!-- 平台介绍 -->
+      <el-card class="PlatformIsIntroduced">
+        <!-- 平台介绍标题 -->
+        <div slot="header" class="clearfix userSelect_None">
+          <span class="clearfix_title"><i class="elIcon el-icon-s-flag"></i>平台介绍</span>
+          <span class="clearfix_titleEn" type="text">Platform Introduction</span>
+        </div>
+        <!-- 平台介绍主题 -->
+        <div class="PlatformIsIntroduced_main" v-html="PlatformIsIntroducedContent"></div>
+      </el-card>
+    </div>
+    <!-- 第二层:中国地理信息平台 -->
+    <el-card
+      class="ComprehensiveDisplayMain_ChinaGeographicInformationCenter"
+    >
+      <!-- 平台介绍内容 -->
+      <span class="ChinaGeographicInformationCenterTitle userSelect_None" @click="undefinedFunction()">中国地理信息平台</span>
+    </el-card>
+    <!-- 第三层:服务中心 -->
+    <el-card class="ComprehensiveDisplayMain_ServiceCenter">
+      <!-- 服务中心标题 -->
+      <div slot="header" class="clearfix userSelect_None">
+        <span class="clearfix_title"><i class="elIcon el-icon-s-cooperation"></i>服务中心</span>
+        <span class="clearfix_titleEn" type="text">Service Center</span>
+      </div>
+      <!-- 服务中心主题 -->
+      <div class="ServiceCenter_main userSelect_None">
+        <div @click="undefinedFunction()"><i class="el-icon-s-operation" style="margin-right: 47px"></i>数据管理</div>
+        <div @click="undefinedFunction()"><i class="el-icon-s-promotion" style="margin-right: 47px"></i>专题发布</div>
+        <div @click="undefinedFunction()"><i class="el-icon-data-line" style="margin-right: 47px"></i>数据可视化</div>
+      </div>
+    </el-card>
+  </div>
 </template>
 
 <script>
 export default {
-
-}
+  name: "ComprehensiveDisplay",
+  components: {},
+  data() {
+    //   后续可调用后端接口动态显示
+    return {
+      // 新闻中心轮播
+      NewscenterAreas: [
+        {
+          imageUrl: "http://zfcxjst.hebei.gov.cn/dtlsj/202205/W020220518322335295754.jpg",
+          jumpUrl: "http://zfcxjst.hebei.gov.cn/dtlsj/202205/t20220517_316299.html",
+          alt: "于文学在石家庄市督导检查自建房安全隐患排查整治工作"
+        },
+        {
+          imageUrl: "http://zfcxjst.hebei.gov.cn/dtlsj/202205/W020220520541128729525.jpg",
+          jumpUrl: "http://zfcxjst.hebei.gov.cn/dtlsj/202205/t20220520_316317.html",
+          alt: "周仲明到河北省住房和城乡建设厅专题调研"
+        },
+        {
+          imageUrl: "http://zfcxjst.hebei.gov.cn/sylbt/202205/W020220517418513508357.jpg",
+          jumpUrl: "http://zfcxjst.hebei.gov.cn/sylbt/202205/t20220517_316294.html",
+          alt: "河北省住房和城乡建设厅举办“奋进新征程 建功新时代”青年干部交流会"
+        },
+        {
+          imageUrl: "http://zfcxjst.hebei.gov.cn/sylbt/202205/W020220527577333537379.jpg",
+          jumpUrl: "http://zfcxjst.hebei.gov.cn/sylbt/202205/t20220527_316375.html",
+          alt: "河北省住房和城乡建设厅举办扣好廉洁从政“第一粒扣子”青年干部主题演讲比赛"
+        },
+        {
+          imageUrl: "http://zfcxjst.hebei.gov.cn/sylbt/202205/W020220523637616449653.jpg",
+          jumpUrl: "http://zfcxjst.hebei.gov.cn/sylbt/202205/t20220523_316327.html",
+          alt: "河北省住房和城乡建设厅召开党组扩大会议"
+        }
+      ],
+      // 新闻中心右侧
+      NewscenterData: {
+        NewscenterTitle: "河北省住房和城乡建设厅举办扣好廉洁从政“第一粒扣子”青年干部主题演讲比赛",
+        NewscenterUrl: "http://zfcxjst.hebei.gov.cn/sylbt/202205/t20220527_316375.html",
+        NewscenterContent:
+          "为教育引导青年干部坚定理想信念,牢记初心使命,正确对待权力,时刻自重自省,严守纪法规矩,按照省直机关纪检监察工作安排,5月26日,河北省住房和城乡建设厅举办扣好廉洁从政“第一粒扣子”青年干部演讲比赛。厅党组成员、总规划师吴铁,党组成员、副厅长赵春旺,二级巡视员翟佳麟及总经济师李景会到场观看比赛并为获奖人员颁奖。",
+        NewscenterTitles: [
+          {
+            title: "河北省住房和城乡建设厅举办扣好廉洁从政“第一粒扣子”青年干部主题演讲比赛",
+            url: "http://zfcxjst.hebei.gov.cn/xinwenzhongxin/gongzuodongtai/202205/t20220527_316375.html"
+          },
+          {
+            title: "163个项目列入2022年河北省建设科技研究项目指导性计划",
+            url: "http://zfcxjst.hebei.gov.cn/xinwenzhongxin/gongzuodongtai/202205/t20220524_316332.html"
+          },
+          {
+            title: "河北省住房和城乡建设厅举办扣好廉洁从政“第一粒扣子”青年干部主题演讲比赛",
+            url: "http://zfcxjst.hebei.gov.cn/xinwenzhongxin/gongzuodongtai/202205/t20220527_316375.html"
+          },
+          {
+            title: "163个项目列入2022年河北省建设科技研究项目指导性计划",
+            url: "http://zfcxjst.hebei.gov.cn/xinwenzhongxin/gongzuodongtai/202205/t20220524_316332.html"
+          },
+          {
+            title: "河北省住房和城乡建设厅举办扣好廉洁从政“第一粒扣子”青年干部主题演讲比赛",
+            url: "http://zfcxjst.hebei.gov.cn/xinwenzhongxin/gongzuodongtai/202205/t20220527_316375.html"
+          },
+          {
+            title: "163个项目列入2022年河北省建设科技研究项目指导性计划",
+            url: "http://zfcxjst.hebei.gov.cn/xinwenzhongxin/gongzuodongtai/202205/t20220524_316332.html"
+          }
+        ]
+      },
+      // 平台介绍,纯文本或者html文本都可以
+      PlatformIsIntroducedContent: `<p>“河北省住房和城乡建设厅”网站由河北省住房和城乡建设厅主办,河北省住房和城乡建设厅信息中心承办。本法律声明阐述之条款和条件适用于所有登陆“河北省住房和城乡建设厅”网站的用户,以及其他网站或单位与该网站的法律关系。</p><p>
+河北省住房和城乡建设厅是“河北省住房和城乡建设厅”网站的所有者。“河北省住房和城乡建设厅”网站上刊载的所有内容,包括文字、图片、声音、图表、色彩的组合,版面设计,专题专栏目录与名称、内容分类等的版权均属河北省住房和城乡建设厅所有,受《中华人民共和国著作权法》及其它相关法律的保护。</p><p>
+他人将“河北省住房和城乡建设厅”网站提供的内容与服务用于商业、盈利、广告性目的时,需征得河北省住房和城乡建设厅或相关权利人许可,注明作者及文章出处,并依法向权利人支付报酬。</p><p>
+使用者将“河北省住房和城乡建设厅”网站提供的内容与服务用于非商业用途时,应遵守著作权法以及其他相关法律的规定,不得侵犯“河北省住房和城乡建设厅”网站及相关权利人的权益。</p><p>
+凡作者或权利人声明不得转载的文章或图片,任何单位及个人不得转载。</p><p>
+未经河北省住房和城乡建设厅授权,任何人不得建立该网站的镜像。</p>`
+    };
+  },
+  computed: {},
+  mounted() {},
+  methods: {
+    Jump(jumpUrl) {
+      window.open(jumpUrl);
+    },
+    undefinedFunction() {
+      this.$message.info("敬请期待!");
+    }
+  }
+};
 </script>
 
 <style lang="less" scoped>
-
-</style>
+// 主题
+.ComprehensiveDisplayMain {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  // 第一层:新闻中心、平台介绍
+  &_IntroductionOfNewsCenterAndPlatform {
+    width: 100%;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    align-content: center;
+    flex-wrap: wrap;
+    margin-bottom: 15px;
+    // 新闻中心
+    .Newscenter {
+      width: calc(50% - 15px);
+      height: 300px;
+      &_main {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        align-content: center;
+        &_byArea {
+          width: 360px;
+          height: 200px;
+          //   轮播组件指示器样式
+          /deep/ .el-carousel__button {
+            width: 15px;
+          }
+          /deep/ .el-carousel__arrow {
+            background: rgba(0, 0, 0, 0.75);
+            box-shadow: 0px 0px 5px 1px #ffffff, 0px 0px 10px 2px #000000;
+          }
+          &_alt {
+            width: 100%;
+            position: absolute;
+            bottom: 20px;
+            background: linear-gradient(90deg, #409eff, #409eff64);
+            span {
+              color: #ffffff;
+              margin: 5px 10px;
+              font-size: 14px;
+              overflow: hidden;
+              text-overflow: ellipsis;
+              display: -webkit-box;
+              -webkit-box-orient: vertical;
+              -webkit-line-clamp: 1;
+            }
+          }
+        }
+        &_content {
+          width: 321px;
+          height: 200px;
+          overflow: hidden;
+          text-overflow: ellipsis;
+          .title {
+            font-size: 22px;
+            font-family: Microsoft YaHei;
+            font-weight: 400;
+            color: #409eff;
+            line-height: 24px;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+            &:hover {
+              cursor: pointer;
+              color: #409eff;
+              text-decoration: underline #409eff;
+            }
+          }
+          .content {
+            margin: 18px 0 27px 0;
+            font-size: 18px;
+            font-family: Microsoft YaHei;
+            font-weight: 400;
+            color: #808080;
+            line-height: 24px;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            display: -webkit-box;
+            -webkit-box-orient: vertical;
+            -webkit-line-clamp: 2;
+          }
+          /deep/ .el-carousel__button {
+            height: 15px;
+            background-color: #303133;
+          }
+          .titles {
+            width: 300px;
+            margin-bottom: 22px;
+            font-size: 18px;
+            font-family: Microsoft YaHei;
+            font-weight: 400;
+            text-shadow: 0 0 1px #4C4C4C;
+            color: #4C4C4C;
+            line-height: 24px;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+            &:hover {
+              cursor: pointer;
+              color: #409eff;
+              text-decoration: underline #409eff;
+            }
+          }
+        }
+      }
+    }
+    // 平台介绍
+    .PlatformIsIntroduced {
+      width: calc(50% - 15px);
+      height: 300px;
+      &_main {
+        height: 190px;
+        text-indent: 36px;
+        font-size: 18px;
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        color: #808080;
+        line-height: 32px;
+        overflow-y: scroll;
+      }
+    }
+  }
+  // 第二层:中国地理信息平台
+  &_ChinaGeographicInformationCenter {
+    width: 100%;
+    height: 90px;
+    display: flex;
+    align-content: center;
+    flex-direction: row-reverse;
+    align-items: center;
+    margin: 10px 0px;
+    background-image: url(~@/assets/images/ChinaGeographicInformationCenterTitleImage.png);
+    .ChinaGeographicInformationCenterTitle {
+      font-size: 30px;
+      font-family: Microsoft YaHei;
+      font-weight: bold;
+      color: #ffffff;
+      line-height: 40px;
+      text-shadow: 2px 2px 5px #000, 2px 2px 10px white;
+      transition: all 0.3s;
+      padding-right: 20px;
+      &:hover {
+        cursor: pointer;
+        text-shadow: 2px 2px 5px #000, 1px 1px 15px white;
+      }
+    }
+  }
+  // 第三层:服务中心
+  &_ServiceCenter {
+    width: 100%;
+    margin: 15px 0px;
+    .ServiceCenter_main {
+      display: flex;
+      justify-content: space-around;
+      align-items: center;
+      align-content: center;
+      flex-wrap: nowrap;
+      div {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        align-content: center;
+        flex-wrap: nowrap;
+        width: calc(33% - 40px);
+        height: 90px;
+        background: #0589ff;
+        border-radius: 3px;
+        font-size: 40px;
+        font-family: YouSheBiaoTiHei;
+        font-weight: 400;
+        color: #d9f1ff;
+        line-height: 40px;
+        transition: all 0.3s;
+        &:hover {
+          cursor: pointer;
+          color: #ffffff;
+          background: #05a3ff;
+          text-shadow: 1px 1px 2px #0589ff, 1px 1px 4px white;
+          box-shadow: 1px 1px 5px 0px #ffffff, 1px 1px 10px 0px #0589ff;
+        }
+      }
+    }
+  }
+  //   公共属性
+  //   icon公用样式
+  .elIcon {
+    margin-right: 19px;
+  }
+  //   卡片头部样式
+  /deep/ .el-card__header {
+    padding: 15px 20px !important;
+  }
+  .clearfix {
+    height: 30px;
+    &_title {
+      font-size: 30px;
+      font-family: Microsoft YaHei;
+      font-weight: bold;
+      color: #258df5;
+      line-height: 40px;
+    }
+    &_titleEn {
+      float: right;
+      padding-right: 19px;
+      font-size: 20px;
+      font-family: YouSheBiaoTiHei;
+      font-weight: 400;
+      color: #258df5;
+      line-height: 40px;
+    }
+  }
+  // 文字禁止选中
+  .userSelect_None {
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+  }
+}
+</style>

+ 4 - 1
src/views/DataAccess.vue

@@ -15,6 +15,8 @@
             index: Number(showIndex),
           }"
         ></DataTable>
+        <DataLog v-if="showIndex == '3'"></DataLog>
+        <Feedback v-if="showIndex == '4'"></Feedback>
       </el-main>
     </el-container>
   </div>
@@ -38,8 +40,9 @@ export default {
     Aside: () => import("@/components/Currency/Aside.vue"),
     DataTable: () => import("@/components/Currency/DataTable/DataTable.vue"),
     DataLog: () => import("@/components/DataAccess/DataLog.vue"),
-    ResultFeedback: () => import("@/components/DataAccess/ResultFeedback.vue"),
+    Feedback: () => import("@/components/DataAccess/Feedback.vue")
   },
+    
   created() {
     let that = this;
     this.menuList =

+ 4 - 5
src/views/Home.vue

@@ -41,7 +41,7 @@
         </div>
       </el-header>
       <el-container class="router_container">
-        <el-main>
+        <el-main :style="showIndex == '1' ? 'padding: 30px 200px 0 200px;' : 'padding: 30px 200px;'">
           <ComprehensiveDisplay
             v-if="showIndex == '1'"
             v-bind="{
@@ -161,7 +161,6 @@ export default {
   },
   beforeCreate() {
     window.loginFunc = this.loginFunc;
-    window.checkRequestCode = this.checkRequestCode;
     window.getMenu = this.getMenu;
     window.getIcon = this.getIcon;
   },
@@ -217,6 +216,7 @@ export default {
       // 页面刷新
       location.reload();
     },
+
     // 权限筛选
     permissionFiltering(permissionArr) {
       let list = JSON.parse(
@@ -300,7 +300,7 @@ export default {
           if (result.code == 200) {
             that.$store.commit("setLayerList", result.content);
           } else {
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {
@@ -320,7 +320,7 @@ export default {
             that.$store.commit("setIconList", result.content);
           } else {
             result.message = "标注图片获取失败,请重试!";
-            checkRequestCode(result);
+            this.$checkRequestCode(result);
           }
         })
         .catch((err) => {
@@ -462,6 +462,5 @@ export default {
 .el-main {
   padding: 0 0;
   background: #f9f9f9;
-  padding: 30px 200px;
 }
 </style>

+ 9 - 0
zjyzt_gis_master_web_ui.iml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>