20 Ревизии d1b75cecf7 ... 4fff8656d8

Автор SHA1 Съобщение Дата
  chenghanbin 4fff8656d8 优化样式 преди 4 месеца
  chenghanbin e56294078b 修改引底部添加的margin-top引起的政务公开、机构概况和互动交流子页面的样式问题 преди 4 месеца
  chenghanbin 78a08f5456 优化政务公开页面显示 преди 4 месеца
  chenghanbin dff9058584 优化政务公开页面样式 преди 4 месеца
  chenghanbin d2e51284e8 优化菜单显示 преди 4 месеца
  chenghanbin a29a5f1db8 优化菜单样式 преди 4 месеца
  chenghanbin 5291a9fb12 Merge branch 'dev' of http://101.36.160.140:21044/portal-site-vue-qinghai/portal-site-web into dev-chb преди 4 месеца
  chenghanbin a8ff05f716 优化政务公开菜单样式显示 преди 4 месеца
  chenghanbin 1a88686d44 Merge branch 'dev' of http://101.36.160.140:21044/portal-site-vue-qinghai/portal-site-web into dev преди 4 месеца
  chenghanbin 053e8134f1 Merge branch 'dev-chb' of http://101.36.160.140:21044/portal-site-vue-qinghai/portal-site-web into dev преди 4 месеца
  chenghanbin c5e75834bd 删除副本 преди 4 месеца
  chenghanbin d41813dd50 修改图标 преди 4 месеца
  meidi 0c4611b654 Merge branch 'dev-3.0.0' of portal-site-vue-qinghai/portal-site-web into dev преди 4 месеца
  chenghanbin c54ccc1e0c Merge branch 'dev' of http://101.36.160.140:21044/portal-site-vue-qinghai/portal-site-web into dev преди 4 месеца
  chenghanbin 8b2aa48c9a 归纳图标 修改引用图标地址 преди 4 месеца
  chenghanbin c77ee12f70 x修改政务公开样式 преди 4 месеца
  wzq 718c26842d Merge branch 'dev-3.0.0' into dev преди 4 месеца
  meidi 2cf907b61e Merge branch 'dev-3.0.0' of portal-site-vue-qinghai/portal-site-web into dev преди 4 месеца
  meidi 9fbbf4ff9d Merge branch 'dev-3.0.0' of portal-site-vue-qinghai/portal-site-web into dev преди 4 месеца
  chenghanbin cd1fcc60c1 修改互动交流样式 преди 4 месеца

src/assets/logo/qh-sy-search-more.png → src/assets/hdjl/qh-sy-search-more.png


src/assets/logo/wyxx1.png → src/assets/hdjl/wyxx1.png


src/assets/logo/wyxx2.png → src/assets/hdjl/wyxx2.png


src/assets/logo/wyxx4.png → src/assets/hdjl/wyxx4.png


BIN
src/assets/menu/nav3.png


BIN
src/assets/menu/nav4.png


BIN
src/assets/menu/nav5.png


+ 1 - 1
src/style/common/index.less

@@ -12,7 +12,7 @@ body {
12 12
   width: 1200px;
13 13
   // overflow: auto;
14 14
   margin: 0 auto;
15
-  min-height: calc(100vh - 570px);
15
+  min-height: calc(100vh - 470px);
16 16
   background: #fff;
17 17
 }
18 18
 

+ 1 - 1
src/style/hdjl/index.less

@@ -8,7 +8,7 @@
8 8
     .el-card{
9 9
       margin: 15px 0;
10 10
       .el-card__header{
11
-        background: #409EFF;
11
+        background: #1b68c0;
12 12
         .moduleName{
13 13
           color: #fff;
14 14
           font-weight: bold;

+ 1 - 1
src/style/home/index.less

@@ -372,7 +372,7 @@
372 372
 .part {
373 373
   display: flex;
374 374
   width: 97%;
375
-  margin-left: 3%;
375
+  padding: 10px 3% 50px 3%;
376 376
 }
377 377
 
378 378
 .part-box {

+ 0 - 107
src/style/zwgk/menuModule.less

@@ -1,107 +0,0 @@
1
-.page {
2
-  background: #fff !important;
3
-
4
-  .featureBox {
5
-    width: 240px;
6
-    float: left;
7
-    border-radius: 5px 5px 0 0;
8
-
9
-    .el-menu {
10
-      border: none;
11
-      .el-menu-item-group {
12
-        height: 70px;
13
-        text-align: center;
14
-        margin-bottom: 15px;
15
-        background: #2c66a4;
16
-
17
-        .title {
18
-          color: #fff;
19
-          font-size: 26px;
20
-          line-height: 35px;
21
-          font-weight: bold;
22
-        }
23
-      }
24
-
25
-      .el-menu-item {
26
-        height: 80px;
27
-        font-size: 23px;
28
-        border-radius: 6px;
29
-        margin-bottom: 15px;
30
-        background: #f2f2f2;
31
-        border: 1px solid #ddd;
32
-
33
-        &:hover {
34
-          background: #1b68c0;
35
-
36
-          .muneName {
37
-            color: #fff;
38
-          }
39
-        }
40
-
41
-        img {
42
-          width: 40px;
43
-          float: left;
44
-          margin-top: 6px;
45
-          margin-left: 20px;
46
-          padding-right: 20px;
47
-        }
48
-
49
-        .muneName {
50
-          width: 110px;
51
-          display: block;
52
-          font-size: 23px;
53
-          color: #1c68c0;
54
-          line-height: 28px;
55
-          white-space: normal;
56
-          word-wrap: break-word;
57
-        }
58
-      }
59
-      .is-active{
60
-        background: #1b68c0;
61
-        .muneName{
62
-          color: #fff;
63
-        }
64
-      }
65
-
66
-      .menuBox {
67
-        font-size: 23px;
68
-        margin-bottom: 15px;
69
-        background: #f2f2f2;
70
-        border: 1px solid #ddd;
71
-
72
-        &:hover {
73
-          .el-sub-menu__title {
74
-            color: #fff;
75
-            background: #1b68c0;
76
-          }
77
-        }
78
-
79
-        .el-sub-menu__title {
80
-          height: 70px;
81
-          color: #1c68c0;
82
-
83
-          .el-icon {
84
-            font-size: 22px;
85
-          }
86
-        }
87
-
88
-        img {
89
-          width: 40px;
90
-          float: left;
91
-          margin-top: 6px;
92
-          margin-left: 20px;
93
-          padding-right: 20px;
94
-        }
95
-
96
-        span {
97
-          width: 110px;
98
-          display: block;
99
-          font-size: 23px;
100
-          line-height: 28px;
101
-          white-space: normal;
102
-          word-wrap: break-word;
103
-        }
104
-      }
105
-    }
106
-  }
107
-}

+ 118 - 0
src/style/zwgk/menuStyle.less

@@ -0,0 +1,118 @@
1
+.featureBox {
2
+  width: 240px;
3
+  float: left;
4
+  border-radius: 5px 5px 0 0;
5
+
6
+  ::v-deep(.el-menu) {
7
+    border: none;
8
+    background: transparent;
9
+
10
+    .el-menu-item {
11
+      height: 80px;
12
+      font-size: 23px;
13
+      border-radius: 6px;
14
+      margin-bottom: 15px;
15
+      background: #f2f2f2;
16
+      border: 1px solid #ddd;
17
+
18
+      img {
19
+        width: 40px;
20
+        float: left;
21
+        margin-top: 6px;
22
+        margin-left: 20px;
23
+        padding-right: 20px;
24
+      }
25
+
26
+      .muneName {
27
+        width: 110px;
28
+        display: block;
29
+        font-size: 23px;
30
+        color: #1c68c0;
31
+        line-height: 28px;
32
+        white-space: normal;
33
+        word-wrap: break-word;
34
+      }
35
+
36
+      &.is-active {
37
+        background: #1b68c0;
38
+
39
+        .muneName {
40
+          color: #fff;
41
+        }
42
+      }
43
+    }
44
+
45
+    //  二级菜单样式
46
+    .el-sub-menu {
47
+      margin-bottom: 14px;
48
+
49
+      .el-sub-menu__title {
50
+        height: 80px;
51
+        font-size: 23px;
52
+        border-radius: 6px;
53
+        background: #f2f2f2;
54
+        border: 1px solid #ddd;
55
+
56
+        img {
57
+          width: 40px;
58
+          float: left;
59
+          margin-top: 6px;
60
+          margin-left: 20px;
61
+          padding-right: 20px;
62
+        }
63
+
64
+        .muneName {
65
+          width: 110px;
66
+          display: block;
67
+          font-size: 23px;
68
+          color: #1c68c0;
69
+          line-height: 28px;
70
+          white-space: normal;
71
+          word-wrap: break-word;
72
+        }
73
+
74
+        .el-icon {
75
+          color: #1c68c0;
76
+          font-size: 20px;
77
+        }
78
+      }
79
+
80
+      .el-menu {
81
+        .el-menu-item-group {
82
+          .el-menu-item-group__title {
83
+            padding: 3px 0 3px 0;
84
+          }
85
+
86
+          .el-menu-item {
87
+            margin: 0;
88
+            color: #1c68c0;
89
+            font-size: 20px;
90
+            white-space: normal;
91
+            word-wrap: break-word;
92
+
93
+            &.is-active {
94
+              color: #fff;
95
+              background: #1b68c0;
96
+            }
97
+          }
98
+        }
99
+      }
100
+
101
+      &.is-active {
102
+        background: transparent;
103
+
104
+        .el-sub-menu__title {
105
+          background: #1b68c0;
106
+
107
+          .muneName {
108
+            color: #fff;
109
+          }
110
+
111
+          .el-icon {
112
+            color: #fff;
113
+          }
114
+        }
115
+      }
116
+    }
117
+  }
118
+}

+ 2 - 3
src/views/footer/index.vue

@@ -29,15 +29,14 @@
29 29
   </div>
30 30
 </template>
31 31
 <script setup lang="ts" name="">
32
-import {} from 'vue'
32
+import {} from "vue";
33 33
 </script>
34 34
 <style scoped lang="less">
35 35
 .footer {
36 36
   padding: 20px 0;
37 37
   background-color: #7898c0;
38 38
   border-top: 2px solid #37e;
39
-  background: url('../../assets/bgImage/footer.png') 100% 100% no-repeat;
40
-  margin-top: 30px;
39
+  background: url("../../assets/bgImage/footer.png") 100% 100% no-repeat;
41 40
   .link {
42 41
     ul {
43 42
       width: 380px;

+ 3 - 3
src/views/hdjl/index.vue

@@ -94,15 +94,15 @@
94 94
     </div>
95 95
     <div class="featureArea">
96 96
       <div class="feature" @click="jumpModule('/hdjl/ldxx')">
97
-        <img src="@/assets/logo/wyxx1.png" />
97
+        <img src="@/assets/hdjl/wyxx1.png" />
98 98
         <span>领导信箱</span>
99 99
       </div>
100 100
       <div class="feature" @click="jumpModule('/hdjl/xfjb')">
101
-        <img src="@/assets/logo/wyxx2.png" />
101
+        <img src="@/assets/hdjl/wyxx2.png" />
102 102
         <span>信访举报</span>
103 103
       </div>
104 104
       <div class="feature" @click="jumpModule('/hdjl/myzj')">
105
-        <img src="@/assets/logo/wyxx4.png" />
105
+        <img src="@/assets/hdjl/wyxx4.png" />
106 106
         <span>民意征集</span>
107 107
       </div>
108 108
     </div>

+ 9 - 8
src/views/zwgk/modules/main.vue

@@ -1,5 +1,5 @@
1 1
 <template>
2
-  <div class="page" :class="{ homeStyle: props.showView == 'IPP' }">
2
+  <div class="menuView" :class="{ homeStyle: props.showView == 'IPP' }">
3 3
     <div class="searchBox" v-if="props.showView != 'IPP'">
4 4
       <input
5 5
         type="text"
@@ -39,13 +39,15 @@ function chkSearch() {
39 39
 }
40 40
 </script>
41 41
 <style scoped lang="less">
42
-.page {
42
+.menuView {
43 43
   width: 1128px;
44 44
   height: 100%;
45 45
   overflow: hidden;
46
-  background-color: rgb(242, 242, 242);
47 46
   margin: 0 auto;
48
-  padding: 20px 36px 20px 36px;
47
+  padding: 35px;
48
+  background-color: #fff;
49
+  border: 1px solid #f0f2f5;
50
+  box-shadow: 2px 2px 20px 2px #e6e8eb;
49 51
 
50 52
   .searchBox {
51 53
     display: block;
@@ -109,13 +111,12 @@ function chkSearch() {
109 111
     height: 100%;
110 112
 
111 113
     .contentView {
112
-      display: block;
113 114
       float: left;
114
-      width: calc(100% - 310px);
115
-      background-color: #fff;
116
-      border: 1px solid #dfdfdf;
115
+      display: block;
117 116
       padding: 0px 20px;
118 117
       margin-left: 18px;
118
+      width: calc(100% - 310px);
119
+      background-color: #fff;
119 120
     }
120 121
   }
121 122
 }

+ 65 - 81
src/views/zwgk/modules/menuModule.vue

@@ -1,91 +1,63 @@
1 1
 <template>
2 2
   <div class="featureBox">
3
-    <el-menu
4
-      :collapse="isCollapse"
5
-      :default-active="activeMenu"
6
-      class="el-menu-vertical-demo dark-mode"
7
-    >
8
-      <template v-for="item in menuList" :key="item.key">
9
-        <el-sub-menu
10
-          class="menuBox"
11
-          :index="item.path"
12
-          v-if="item.children"
13
-          @mouseenter="
14
-            (el) => {
15
-              moveToMenu(el, item.icon);
16
-            }
17
-          "
18
-          @mouseleave="
19
-            (el) => {
20
-              leaveToMenu(el, item.icon);
21
-            }
22
-          "
3
+    <el-menu :default-active="activeMenu">
4
+      <template v-for="menu in menuList">
5
+        <!-- 只有一级菜单 -->
6
+        <el-menu-item
7
+          v-if="!menu.children"
8
+          :index="menu.path"
9
+          @click="jumpRoute(menu)"
23 10
         >
11
+          <img :src="getImgUrl(menu)" :alt="menu.name" />
12
+          <span class="muneName">{{ menu.name }}</span>
13
+        </el-menu-item>
14
+        <!-- 有二级菜单 -->
15
+        <el-sub-menu v-else :index="menu.path">
24 16
           <template #title>
25
-            <img :src="getUrl(item.icon)" alt="" />
26
-            <span>{{ item.name }}</span>
17
+            <img :src="getImgUrl(menu)" :alt="menu.name" />
18
+            <span class="muneName">{{ menu.name }}</span>
27 19
           </template>
28
-          <el-menu-item
29
-            :index="son.path"
30
-            v-for="son in item.children"
31
-            @click="jumpModule(son.path)"
20
+          <el-menu-item-group
21
+            v-for="menuSub in menu.children"
22
+            :key="menuSub.path"
32 23
           >
33
-            <template #title>
34
-              <span class="muneName">{{ son.name }}</span>
35
-            </template>
36
-          </el-menu-item>
24
+            <el-menu-item :index="menuSub.path" @click="jumpRoute(menuSub)">{{
25
+              menuSub.name
26
+            }}</el-menu-item>
27
+          </el-menu-item-group>
37 28
         </el-sub-menu>
38
-
39
-        <el-menu-item
40
-          v-else
41
-          :index="item.path"
42
-          @mouseenter="
43
-            (el) => {
44
-              moveToMenu(el, item.icon);
45
-            }
46
-          "
47
-          @mouseleave="
48
-            (el) => {
49
-              leaveToMenu(el, item.icon);
50
-            }
51
-          "
52
-          @click="jumpModule(item.path)"
53
-        >
54
-          <img :src="getUrl(item.icon)" alt="" />
55
-          <template #title>
56
-            <span class="muneName">{{ item.name }}</span>
57
-          </template>
58
-        </el-menu-item>
59 29
       </template>
60
-      <slot />
61 30
     </el-menu>
62 31
   </div>
63 32
 </template>
64 33
 <script setup>
65 34
 import { ref, watch, reactive } from "vue";
66 35
 import { useRouter } from "vue-router";
67
-import "@/style/zwgk/menuModule.less";
68 36
 
69 37
 const router = useRouter();
70 38
 const activeMenu = ref("zfxxgkzn");
71 39
 
72 40
 const menuList = reactive([
73 41
   {
42
+    active: true,
74 43
     path: "zfxxgkzn",
75 44
     icon: "zfxxgkzn",
76 45
     name: "政府信息公开指南",
77 46
   },
78 47
   {
48
+    active: false,
79 49
     path: "zfxxgkzd",
80 50
     icon: "zfxxgkzd",
81 51
     name: "政府信息公开制度",
82 52
   },
83 53
   {
54
+    active: false,
84 55
     path: "zfxxgknb",
85 56
     icon: "zfxxgknb",
86 57
     name: "政府信息公开年报",
87 58
   },
88 59
   {
60
+    active: false,
89 61
     path: "fdgknr",
90 62
     icon: "fdgknr",
91 63
     name: "法定公开内容",
@@ -125,65 +97,77 @@ const menuList = reactive([
125 97
     ],
126 98
   },
127 99
   {
100
+    active: false,
128 101
     path: "zcwj",
129 102
     icon: "zcwj",
130 103
     name: "政策文件",
131 104
   },
132 105
   {
106
+    active: false,
133 107
     path: "zcjd",
134 108
     icon: "zcjd",
135 109
     name: "政策解读",
136 110
   },
137 111
   {
112
+    active: false,
138 113
     path: "xzgfxwj",
139 114
     icon: "xzgfxwj",
140 115
     name: "行政规范性文件",
141 116
   },
142 117
   {
118
+    active: false,
143 119
     path: "ysqgk",
144 120
     icon: "ysqgk",
145 121
     name: "依申请公开",
146 122
   },
147 123
   {
124
+    active: false,
148 125
     path: "zfwzgznb",
149 126
     icon: "zfwzgznb",
150 127
     name: "政府网站工作年报",
151 128
   },
152 129
 ]);
153
-function jumpModule(path) {
154
-  activeMenu.value = path;
155
-  router.push("/zwgk/" + path);
156
-}
157
-function getUrl(name) {
158
-  if (name == activeMenu.value) {
159
-    name = name + "s";
160
-  }
161
-  return new URL(`../../../assets/hdjl/${name}.png`, import.meta.url).href;
162
-}
163
-// 鼠标移入菜单
164
-function moveToMenu(el, url) {
165
-  let urls = url + "s";
166
-  // 找到当前菜单项中的 img 元素
167
-  let imgElement = el.target.querySelector("img");
168
-  if (imgElement) {
169
-    imgElement.src = imgElement.src.replace(url, urls);
170
-  }
130
+// 路由跳转
131
+function jumpRoute(data) {
132
+  activeMenu.value = data.path;
133
+  router.push("/zwgk/" + data.path);
171 134
 }
172
-// 鼠标移出菜单
173
-function leaveToMenu(el, url) {
174
-  let urls = url + "s";
175
-  // 找到当前菜单项中的 img 元素
176
-  let imgElement = el.target.querySelector("img");
177
-  if (imgElement) {
178
-    imgElement.src = imgElement.src.replace(urls, url);
135
+// 获取图片地址
136
+function getImgUrl(data) {
137
+  let url = "";
138
+  if (data.active) {
139
+    url = data.icon + "s";
140
+  } else {
141
+    url = data.icon;
179 142
   }
143
+  return new URL(`../../../assets/hdjl/${url}.png`, import.meta.url).href;
180 144
 }
181
-
145
+// 监听 选中的菜单对应的图标高亮
146
+watch(
147
+  () => activeMenu.value,
148
+  (newValue) => {
149
+    let hasSlash = newValue.includes("/");
150
+    let menuPath = hasSlash ? "fdgknr" : newValue;
151
+    menuList.forEach((item) => {
152
+      if (menuPath == item.path) {
153
+        item.active = true;
154
+      } else {
155
+        item.active = false;
156
+      }
157
+    });
158
+  },
159
+  { immediate: true }
160
+);
161
+// 监听路由
182 162
 watch(
183
-  () => router.currentRoute.value.name,
163
+  () => router.currentRoute.value.path,
184 164
   (newValue) => {
185
-    activeMenu.value = newValue == "zwgk" ? "zfxxgkzn" : newValue;
165
+    let path = newValue.replace("/zwgk/", "");
166
+    activeMenu.value = path == "info" ? "zfxxgkzn" : path;
186 167
   },
187 168
   { immediate: true }
188 169
 );
189 170
 </script>
171
+<style lang="less" scoped>
172
+@import url(@/style/zwgk/menuStyle.less);
173
+</style>

+ 7 - 7
src/views/zwgk/pages/ysqgk.vue

@@ -3,22 +3,22 @@
3 3
     <bread-crumb />
4 4
     <div class="funModule">
5 5
       <div class="fun" @click="jumpModule('apply')">
6
-        <img src="@/assets/logo/zdgk2.png" alt="申请">
6
+        <img src="@/assets/hdjl/zdgk2.png" alt="申请" />
7 7
         <span>申请</span>
8 8
       </div>
9 9
       <div class="fun" @click="jumpModule('query')">
10
-        <img src="@/assets/logo/qh-sy-search-more.png" alt="查询">
10
+        <img src="@/assets/hdjl/qh-sy-search-more.png" alt="查询" />
11 11
         <span>查询</span>
12 12
       </div>
13 13
     </div>
14 14
   </div>
15 15
 </template>
16 16
 <script setup lang="ts" name="">
17
-import { useRouter } from 'vue-router'
18
-import BreadCrumb from "@/components/breadcrumbModule/index.vue"
17
+import { useRouter } from "vue-router";
18
+import BreadCrumb from "@/components/breadcrumbModule/index.vue";
19 19
 const router = useRouter();
20 20
 function jumpModule(path) {
21
-  router.push('/zwgk/ysqgk/' + path);
21
+  router.push("/zwgk/ysqgk/" + path);
22 22
 }
23 23
 </script>
24 24
 <style scoped lang="less">
@@ -27,7 +27,7 @@ function jumpModule(path) {
27 27
 
28 28
   .funModule {
29 29
     padding: 20px;
30
-    height: calc(100vh - 560px);
30
+    height: calc(100vh - 580px);
31 31
 
32 32
     .fun {
33 33
       float: left;
@@ -50,4 +50,4 @@ function jumpModule(path) {
50 50
     }
51 51
   }
52 52
 }
53
-</style>
53
+</style>