Browse Source

基础架构

基础架构
dangyunlong 2 days ago
parent
commit
a0fe0d7b5e
85 changed files with 4582 additions and 3771 deletions
  1. 16 0
      .nuxt/components.d.ts
  2. 41 41
      .nuxt/dev/index.mjs
  3. 0 0
      .nuxt/dev/index.mjs.map
  4. 0 1
      .nuxt/imports.d.ts
  5. 1 1
      .nuxt/manifest/latest.json
  6. 0 0
      .nuxt/manifest/meta/bf8c9acd-a0a7-4c55-9127-2008e6f60c9f.json
  7. 1 1
      .nuxt/manifest/meta/dev.json
  8. 3 3
      .nuxt/nitro.json
  9. 2 2
      .nuxt/nuxt.json
  10. 1 1
      .nuxt/tsconfig.json
  11. 0 20
      .nuxt/types/imports.d.ts
  12. 4 4
      .nuxt/types/plugins.d.ts
  13. 157 178
      assets/css/about.less
  14. 490 320
      assets/css/class.less
  15. 1 1
      assets/css/error.less
  16. 1390 948
      assets/css/index.less
  17. 12 130
      assets/css/list.less
  18. 2 2
      assets/css/public/footer.less
  19. 150 171
      assets/css/public/nav.less
  20. 34 14
      assets/css/search.less
  21. 30 57
      components/detail/HotNews.vue
  22. 10 29
      components/detail/HotNews2.vue
  23. 28 87
      components/home/ListSecondaryHeading.vue
  24. 28 88
      components/home/SecondaryHeading.vue
  25. 554 0
      components/home/Surveyvote.vue
  26. 154 0
      components/home/SwiperSnsc.vue
  27. 147 0
      components/home/SwiperSnscChannel.vue
  28. 29 0
      components/home/ad/Adindexmain.vue
  29. 4 1
      components/home/pageHead.vue
  30. 136 45
      components/home/pageNavigation.vue
  31. 77 51
      components/home/pageNavigation1.vue
  32. 0 0
      middleware/auth.ts
  33. 2 367
      pages/[dir]/[dir]/[id].vue
  34. 1 1
      pages/[dir]/[dir]/list-[id].vue
  35. 4 366
      pages/[dir]/[id].vue
  36. 305 214
      pages/[dir]/index.html.vue
  37. 2 2
      pages/[dir]/list-[id].vue
  38. 692 313
      pages/index.vue
  39. 59 181
      pages/search/[id].vue
  40. 0 0
      plugins/element-plus.ts
  41. 10 10
      plugins/globals.ts
  42. 0 0
      plugins/pinia.ts
  43. 5 6
      plugins/request.ts
  44. BIN
      public/error/404.png
  45. BIN
      public/favicon.ico
  46. BIN
      public/images/Iconly/Broken/Search.png
  47. BIN
      public/images/Iconly/Two-tone/Arrow - Down 3.png
  48. BIN
      public/images/dianhua 1.png
  49. BIN
      public/images/guanbi 1.png
  50. BIN
      public/images/qq 1.png
  51. BIN
      public/images/weixin 1.png
  52. BIN
      public/img/10.png
  53. BIN
      public/img/11.png
  54. BIN
      public/img/12.png
  55. BIN
      public/img/13.png
  56. BIN
      public/img/14.png
  57. BIN
      public/img/15.png
  58. BIN
      public/img/16.png
  59. BIN
      public/img/17.png
  60. BIN
      public/img/18.png
  61. BIN
      public/img/19.png
  62. BIN
      public/img/2.png
  63. BIN
      public/img/20.png
  64. BIN
      public/img/21.png
  65. BIN
      public/img/22.png
  66. BIN
      public/img/23.png
  67. BIN
      public/img/24.png
  68. BIN
      public/img/3.png
  69. BIN
      public/img/4.png
  70. BIN
      public/img/5.png
  71. BIN
      public/img/6.png
  72. BIN
      public/img/7.png
  73. BIN
      public/img/8.png
  74. BIN
      public/img/9.png
  75. BIN
      public/index/ad1.png
  76. BIN
      public/index/banner.png
  77. BIN
      public/index/logo1.png
  78. BIN
      public/special/1.png
  79. BIN
      public/special/2.png
  80. BIN
      public/special/3.png
  81. BIN
      public/special/foot01.png
  82. BIN
      public/special/head01.png
  83. BIN
      public/special/mid01.png
  84. 0 0
      server/api/index.ts
  85. 0 115
      utils/request.js

+ 16 - 0
.nuxt/components.d.ts

@@ -15,7 +15,11 @@ interface _GlobalComponents {
     'HomePagination': typeof import("../components/home/Pagination.vue")['default']
     'HomeSecondaryHeading': typeof import("../components/home/SecondaryHeading.vue")['default']
     'HomeSmallSwiper1': typeof import("../components/home/SmallSwiper1.vue")['default']
+    'HomeSurveyvote': typeof import("../components/home/Surveyvote.vue")['default']
+    'HomeSwiperSnsc': typeof import("../components/home/SwiperSnsc.vue")['default']
+    'HomeSwiperSnscChannel': typeof import("../components/home/SwiperSnscChannel.vue")['default']
     'HomeTopTen': typeof import("../components/home/TopTen.vue")['default']
+    'HomeAdAdindexmain': typeof import("../components/home/ad/Adindexmain.vue")['default']
     'HomeFoot': typeof import("../components/home/foot.vue")['default']
     'HomeFoot1': typeof import("../components/home/foot1.vue")['default']
     'HomeKefu': typeof import("../components/home/kefu.vue")['default']
@@ -58,7 +62,11 @@ interface _GlobalComponents {
     'LazyHomePagination': typeof import("../components/home/Pagination.vue")['default']
     'LazyHomeSecondaryHeading': typeof import("../components/home/SecondaryHeading.vue")['default']
     'LazyHomeSmallSwiper1': typeof import("../components/home/SmallSwiper1.vue")['default']
+    'LazyHomeSurveyvote': typeof import("../components/home/Surveyvote.vue")['default']
+    'LazyHomeSwiperSnsc': typeof import("../components/home/SwiperSnsc.vue")['default']
+    'LazyHomeSwiperSnscChannel': typeof import("../components/home/SwiperSnscChannel.vue")['default']
     'LazyHomeTopTen': typeof import("../components/home/TopTen.vue")['default']
+    'LazyHomeAdAdindexmain': typeof import("../components/home/ad/Adindexmain.vue")['default']
     'LazyHomeFoot': typeof import("../components/home/foot.vue")['default']
     'LazyHomeFoot1': typeof import("../components/home/foot1.vue")['default']
     'LazyHomeKefu': typeof import("../components/home/kefu.vue")['default']
@@ -107,7 +115,11 @@ export const HomePageMessage: typeof import("../components/home/PageMessage.vue"
 export const HomePagination: typeof import("../components/home/Pagination.vue")['default']
 export const HomeSecondaryHeading: typeof import("../components/home/SecondaryHeading.vue")['default']
 export const HomeSmallSwiper1: typeof import("../components/home/SmallSwiper1.vue")['default']
+export const HomeSurveyvote: typeof import("../components/home/Surveyvote.vue")['default']
+export const HomeSwiperSnsc: typeof import("../components/home/SwiperSnsc.vue")['default']
+export const HomeSwiperSnscChannel: typeof import("../components/home/SwiperSnscChannel.vue")['default']
 export const HomeTopTen: typeof import("../components/home/TopTen.vue")['default']
+export const HomeAdAdindexmain: typeof import("../components/home/ad/Adindexmain.vue")['default']
 export const HomeFoot: typeof import("../components/home/foot.vue")['default']
 export const HomeFoot1: typeof import("../components/home/foot1.vue")['default']
 export const HomeKefu: typeof import("../components/home/kefu.vue")['default']
@@ -150,7 +162,11 @@ export const LazyHomePageMessage: typeof import("../components/home/PageMessage.
 export const LazyHomePagination: typeof import("../components/home/Pagination.vue")['default']
 export const LazyHomeSecondaryHeading: typeof import("../components/home/SecondaryHeading.vue")['default']
 export const LazyHomeSmallSwiper1: typeof import("../components/home/SmallSwiper1.vue")['default']
+export const LazyHomeSurveyvote: typeof import("../components/home/Surveyvote.vue")['default']
+export const LazyHomeSwiperSnsc: typeof import("../components/home/SwiperSnsc.vue")['default']
+export const LazyHomeSwiperSnscChannel: typeof import("../components/home/SwiperSnscChannel.vue")['default']
 export const LazyHomeTopTen: typeof import("../components/home/TopTen.vue")['default']
+export const LazyHomeAdAdindexmain: typeof import("../components/home/ad/Adindexmain.vue")['default']
 export const LazyHomeFoot: typeof import("../components/home/foot.vue")['default']
 export const LazyHomeFoot1: typeof import("../components/home/foot1.vue")['default']
 export const LazyHomeKefu: typeof import("../components/home/kefu.vue")['default']

+ 41 - 41
.nuxt/dev/index.mjs

@@ -3,30 +3,30 @@ import { Server } from 'node:http';
 import { tmpdir } from 'node:os';
 import { join } from 'node:path';
 import { parentPort, threadId } from 'node:worker_threads';
-import { getRequestHeader, splitCookiesString, setResponseStatus, setResponseHeader, send, getRequestHeaders, defineEventHandler, handleCacheHeaders, createEvent, fetchWithEvent, isEvent, eventHandler, setHeaders, sendRedirect, proxyRequest, createApp, createRouter as createRouter$1, toNodeListener, lazyEventHandler, getResponseStatus, setResponseHeaders, createError, getRouterParam, getQuery as getQuery$1, readBody, getResponseStatusText } from 'file://D:/MyProject/gogs/nongminwang/node_modules/h3/dist/index.mjs';
-import { getRequestDependencies, getPreloadLinks, getPrefetchLinks, createRenderer } from 'file://D:/MyProject/gogs/nongminwang/node_modules/vue-bundle-renderer/dist/runtime.mjs';
-import { stringify, uneval } from 'file://D:/MyProject/gogs/nongminwang/node_modules/devalue/index.js';
-import destr from 'file://D:/MyProject/gogs/nongminwang/node_modules/destr/dist/index.mjs';
-import { withQuery, joinURL, withTrailingSlash, parseURL, withoutBase, getQuery, joinRelativeURL } from 'file://D:/MyProject/gogs/nongminwang/node_modules/ufo/dist/index.mjs';
-import { renderToString } from 'file://D:/MyProject/gogs/nongminwang/node_modules/vue/server-renderer/index.mjs';
-import { propsToString, renderSSRHead } from 'file://D:/MyProject/gogs/nongminwang/node_modules/@unhead/ssr/dist/index.mjs';
-import { createServerHead as createServerHead$1, CapoPlugin } from 'file://D:/MyProject/gogs/nongminwang/node_modules/unhead/dist/index.mjs';
-import { klona } from 'file://D:/MyProject/gogs/nongminwang/node_modules/klona/dist/index.mjs';
-import defu, { defuFn } from 'file://D:/MyProject/gogs/nongminwang/node_modules/defu/dist/defu.mjs';
-import { snakeCase } from 'file://D:/MyProject/gogs/nongminwang/node_modules/scule/dist/index.mjs';
-import { createHooks } from 'file://D:/MyProject/gogs/nongminwang/node_modules/hookable/dist/index.mjs';
-import { createFetch as createFetch$1, Headers as Headers$1 } from 'file://D:/MyProject/gogs/nongminwang/node_modules/ofetch/dist/node.mjs';
-import { createCall, createFetch } from 'file://D:/MyProject/gogs/nongminwang/node_modules/unenv/runtime/fetch/index.mjs';
+import { getRequestHeader, splitCookiesString, setResponseStatus, setResponseHeader, send, getRequestHeaders, defineEventHandler, handleCacheHeaders, createEvent, fetchWithEvent, isEvent, eventHandler, setHeaders, sendRedirect, proxyRequest, createApp, createRouter as createRouter$1, toNodeListener, lazyEventHandler, getResponseStatus, setResponseHeaders, createError, getRouterParam, getQuery as getQuery$1, readBody, getResponseStatusText } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/h3/dist/index.mjs';
+import { getRequestDependencies, getPreloadLinks, getPrefetchLinks, createRenderer } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/vue-bundle-renderer/dist/runtime.mjs';
+import { stringify, uneval } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/devalue/index.js';
+import destr from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/destr/dist/index.mjs';
+import { withQuery, joinURL, withTrailingSlash, parseURL, withoutBase, getQuery, joinRelativeURL } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/ufo/dist/index.mjs';
+import { renderToString } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/vue/server-renderer/index.mjs';
+import { propsToString, renderSSRHead } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/@unhead/ssr/dist/index.mjs';
+import { createServerHead as createServerHead$1, CapoPlugin } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/unhead/dist/index.mjs';
+import { klona } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/klona/dist/index.mjs';
+import defu, { defuFn } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/defu/dist/defu.mjs';
+import { snakeCase } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/scule/dist/index.mjs';
+import { createHooks } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/hookable/dist/index.mjs';
+import { createFetch as createFetch$1, Headers as Headers$1 } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/ofetch/dist/node.mjs';
+import { createCall, createFetch } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/unenv/runtime/fetch/index.mjs';
 import { AsyncLocalStorage } from 'node:async_hooks';
-import { consola } from 'file://D:/MyProject/gogs/nongminwang/node_modules/consola/dist/index.mjs';
-import { getContext } from 'file://D:/MyProject/gogs/nongminwang/node_modules/unctx/dist/index.mjs';
-import { captureRawStackTrace, parseRawStackTrace } from 'file://D:/MyProject/gogs/nongminwang/node_modules/errx/dist/index.js';
-import { isVNode, version, unref } from 'file://D:/MyProject/gogs/nongminwang/node_modules/vue/index.mjs';
-import { hash } from 'file://D:/MyProject/gogs/nongminwang/node_modules/ohash/dist/index.mjs';
-import { createStorage, prefixStorage } from 'file://D:/MyProject/gogs/nongminwang/node_modules/unstorage/dist/index.mjs';
-import unstorage_47drivers_47fs from 'file://D:/MyProject/gogs/nongminwang/node_modules/unstorage/drivers/fs.mjs';
-import { toRouteMatcher, createRouter } from 'file://D:/MyProject/gogs/nongminwang/node_modules/radix3/dist/index.mjs';
-import { defineHeadPlugin } from 'file://D:/MyProject/gogs/nongminwang/node_modules/@unhead/shared/dist/index.mjs';
+import { consola } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/consola/dist/index.mjs';
+import { getContext } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/unctx/dist/index.mjs';
+import { captureRawStackTrace, parseRawStackTrace } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/errx/dist/index.js';
+import { isVNode, version, unref } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/vue/index.mjs';
+import { hash } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/ohash/dist/index.mjs';
+import { createStorage, prefixStorage } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/unstorage/dist/index.mjs';
+import unstorage_47drivers_47fs from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/unstorage/drivers/fs.mjs';
+import { toRouteMatcher, createRouter } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/radix3/dist/index.mjs';
+import { defineHeadPlugin } from 'file://D:/MyProject/gogs/nongmingongwang/node_modules/@unhead/shared/dist/index.mjs';
 
 function hasReqHeader(event, name, includes) {
   const value = getRequestHeader(event, name);
@@ -172,13 +172,13 @@ if (!window.__NUXT_DEVTOOLS_TIME_METRIC__) {
 window.__NUXT_DEVTOOLS_TIME_METRIC__.appInit = Date.now()
 `;
 
-const _XYzHutxL7P = (function(nitro) {
+const _fZlSe17wp2 = (function(nitro) {
   nitro.hooks.hook("render:html", (htmlContext) => {
     htmlContext.head.push(`<script>${script}<\/script>`);
   });
 });
 
-const rootDir = "D:/MyProject/gogs/nongminwang";
+const rootDir = "D:/MyProject/gogs/nongmingongwang";
 
 const appHead = {"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"},{"name":"description","content":""},{"name":"keywords","content":""}],"link":[],"style":[],"script":[],"noscript":[],"title":""};
 
@@ -197,7 +197,7 @@ const devReducers = {
   URL: (data) => data instanceof URL ? data.toString() : undefined
 };
 const asyncContext = getContext("nuxt-dev", { asyncContext: true, AsyncLocalStorage });
-const _lrCI0MH0Mq = (nitroApp) => {
+const _CkyJTRfL29 = (nitroApp) => {
   const handler = nitroApp.h3App.handler;
   nitroApp.h3App.handler = (event) => {
     return asyncContext.callAsync({ logs: [], event }, () => handler(event));
@@ -267,20 +267,20 @@ function onConsoleLog(callback) {
 }
 
 const plugins = [
-  _XYzHutxL7P,
-_lrCI0MH0Mq
+  _fZlSe17wp2,
+_CkyJTRfL29
 ];
 
-const _lazy_feGkJK = () => Promise.resolve().then(function () { return index; });
-const _lazy_PQUD28 = () => Promise.resolve().then(function () { return renderer$1; });
+const _lazy_I8Ca5T = () => Promise.resolve().then(function () { return index; });
+const _lazy_Ar5Hm6 = () => Promise.resolve().then(function () { return renderer$1; });
 
 const handlers = [
-  { route: '/api', handler: _lazy_feGkJK, lazy: true, middleware: false, method: undefined },
-  { route: '/__nuxt_error', handler: _lazy_PQUD28, lazy: true, middleware: false, method: undefined },
-  { route: '/**', handler: _lazy_PQUD28, lazy: true, middleware: false, method: undefined }
+  { route: '/api', handler: _lazy_I8Ca5T, lazy: true, middleware: false, method: undefined },
+  { route: '/__nuxt_error', handler: _lazy_Ar5Hm6, lazy: true, middleware: false, method: undefined },
+  { route: '/**', handler: _lazy_Ar5Hm6, lazy: true, middleware: false, method: undefined }
 ];
 
-const serverAssets = [{"baseName":"server","dir":"D:/MyProject/gogs/nongminwang/server/assets"}];
+const serverAssets = [{"baseName":"server","dir":"D:/MyProject/gogs/nongmingongwang/server/assets"}];
 
 const assets = createStorage();
 
@@ -292,11 +292,11 @@ const storage = createStorage({});
 
 storage.mount('/assets', assets);
 
-storage.mount('root', unstorage_47drivers_47fs({"driver":"fs","readOnly":true,"base":"D:\\MyProject\\gogs\\nongminwang","ignore":["**/node_modules/**","**/.git/**"]}));
-storage.mount('src', unstorage_47drivers_47fs({"driver":"fs","readOnly":true,"base":"D:\\MyProject\\gogs\\nongminwang\\server","ignore":["**/node_modules/**","**/.git/**"]}));
-storage.mount('build', unstorage_47drivers_47fs({"driver":"fs","readOnly":false,"base":"D:\\MyProject\\gogs\\nongminwang\\.nuxt","ignore":["**/node_modules/**","**/.git/**"]}));
-storage.mount('cache', unstorage_47drivers_47fs({"driver":"fs","readOnly":false,"base":"D:\\MyProject\\gogs\\nongminwang\\.nuxt\\cache","ignore":["**/node_modules/**","**/.git/**"]}));
-storage.mount('data', unstorage_47drivers_47fs({"driver":"fs","base":"D:\\MyProject\\gogs\\nongminwang\\.data\\kv","ignore":["**/node_modules/**","**/.git/**"]}));
+storage.mount('root', unstorage_47drivers_47fs({"driver":"fs","readOnly":true,"base":"D:\\MyProject\\gogs\\nongmingongwang","ignore":["**/node_modules/**","**/.git/**"]}));
+storage.mount('src', unstorage_47drivers_47fs({"driver":"fs","readOnly":true,"base":"D:\\MyProject\\gogs\\nongmingongwang\\server","ignore":["**/node_modules/**","**/.git/**"]}));
+storage.mount('build', unstorage_47drivers_47fs({"driver":"fs","readOnly":false,"base":"D:\\MyProject\\gogs\\nongmingongwang\\.nuxt","ignore":["**/node_modules/**","**/.git/**"]}));
+storage.mount('cache', unstorage_47drivers_47fs({"driver":"fs","readOnly":false,"base":"D:\\MyProject\\gogs\\nongmingongwang\\.nuxt\\cache","ignore":["**/node_modules/**","**/.git/**"]}));
+storage.mount('data', unstorage_47drivers_47fs({"driver":"fs","base":"D:\\MyProject\\gogs\\nongmingongwang\\.data\\kv","ignore":["**/node_modules/**","**/.git/**"]}));
 
 function useStorage(base = "") {
   return base ? prefixStorage(storage, base) : storage;
@@ -1167,8 +1167,8 @@ function publicAssetsURL(...path) {
 
 globalThis.__buildAssetsURL = buildAssetsURL;
 globalThis.__publicAssetsURL = publicAssetsURL;
-const getClientManifest = () => import('file://D:/MyProject/gogs/nongminwang/.nuxt/dist/server/client.manifest.mjs').then((r) => r.default || r).then((r) => typeof r === "function" ? r() : r);
-const getServerEntry = () => import('file://D:/MyProject/gogs/nongminwang/.nuxt/dist/server/server.mjs').then((r) => r.default || r);
+const getClientManifest = () => import('file://D:/MyProject/gogs/nongmingongwang/.nuxt/dist/server/client.manifest.mjs').then((r) => r.default || r).then((r) => typeof r === "function" ? r() : r);
+const getServerEntry = () => import('file://D:/MyProject/gogs/nongmingongwang/.nuxt/dist/server/server.mjs').then((r) => r.default || r);
 const getSSRStyles = lazyCachedFunction(() => Promise.resolve().then(function () { return styles$1; }).then((r) => r.default || r));
 const getSSRRenderer = lazyCachedFunction(async () => {
   const manifest = await getClientManifest();

File diff suppressed because it is too large
+ 0 - 0
.nuxt/dev/index.mjs.map


+ 0 - 1
.nuxt/imports.d.ts

@@ -31,6 +31,5 @@ export { injectHead, useHead, useSeoMeta, useHeadSafe, useServerHead, useServerS
 export { requestData, requestDataPromise, requestDataWebUrl, requestHome } from '../composables/getData';
 export { getTime, getTitleLength, getLinkPath, getLinkPathDetail, getRoutePath } from '../composables/publicFunction';
 export { seoSetup } from '../composables/useSeo';
-export { apiUse, asyncFetchData, fGET, fPOST, fPUT, fDELETE, GET, POST, PUT, DELETE } from '../utils/request';
 export { useNuxtDevTools } from '../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools';
 export { definePageMeta } from '../node_modules/nuxt/dist/pages/runtime/composables';

+ 1 - 1
.nuxt/manifest/latest.json

@@ -1 +1 @@
-{"id":"dev","timestamp":1744608806222}
+{"id":"dev","timestamp":1744795676659}

+ 0 - 0
.nuxt/manifest/meta/96d7b98e-233e-4101-8c47-36ace736c79c.json → .nuxt/manifest/meta/bf8c9acd-a0a7-4c55-9127-2008e6f60c9f.json


+ 1 - 1
.nuxt/manifest/meta/dev.json

@@ -1 +1 @@
-{"id":"dev","timestamp":1744608806222,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
+{"id":"dev","timestamp":1744795676659,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

+ 3 - 3
.nuxt/nitro.json

@@ -1,5 +1,5 @@
 {
-  "date": "2025-04-14T05:33:34.835Z",
+  "date": "2025-04-16T09:28:02.456Z",
   "preset": "nitro-dev",
   "framework": {
     "name": "nuxt",
@@ -9,9 +9,9 @@
     "nitro": "2.10.4"
   },
   "dev": {
-    "pid": 8572,
+    "pid": 8472,
     "workerAddress": {
-      "socketPath": "\\\\.\\pipe\\nitro\\worker-8572-1.sock"
+      "socketPath": "\\\\.\\pipe\\nitro\\worker-8472-1.sock"
     }
   }
 }

+ 2 - 2
.nuxt/nuxt.json

@@ -1,7 +1,7 @@
 {
-  "_hash": "uVxffiE3iZ",
+  "_hash": "2PNCE4tiGO",
   "project": {
-    "rootDir": "D:/MyProject/gogs/nongminwang"
+    "rootDir": "D:/MyProject/gogs/nongmingongwang"
   },
   "versions": {
     "nuxt": "3.15.2"

+ 1 - 1
.nuxt/tsconfig.json

@@ -102,7 +102,7 @@
         "./imports"
       ],
       "#app-manifest": [
-        "./manifest/meta/dev"
+        "./manifest/meta/dev.json"
       ],
       "#components": [
         "./components"

+ 0 - 20
.nuxt/types/imports.d.ts

@@ -1,14 +1,8 @@
 // Generated by auto imports
 export {}
 declare global {
-  const DELETE: typeof import('../../utils/request')['DELETE']
-  const GET: typeof import('../../utils/request')['GET']
-  const POST: typeof import('../../utils/request')['POST']
-  const PUT: typeof import('../../utils/request')['PUT']
   const abortNavigation: typeof import('../../node_modules/nuxt/dist/app/composables/router')['abortNavigation']
   const addRouteMiddleware: typeof import('../../node_modules/nuxt/dist/app/composables/router')['addRouteMiddleware']
-  const apiUse: typeof import('../../utils/request')['apiUse']
-  const asyncFetchData: typeof import('../../utils/request')['asyncFetchData']
   const callOnce: typeof import('../../node_modules/nuxt/dist/app/composables/once')['callOnce']
   const cancelIdleCallback: typeof import('../../node_modules/nuxt/dist/app/compat/idle-callback')['cancelIdleCallback']
   const clearError: typeof import('../../node_modules/nuxt/dist/app/composables/error')['clearError']
@@ -30,10 +24,6 @@ declare global {
   const definePayloadReviver: typeof import('../../node_modules/nuxt/dist/app/composables/payload')['definePayloadReviver']
   const effect: typeof import('vue')['effect']
   const effectScope: typeof import('vue')['effectScope']
-  const fDELETE: typeof import('../../utils/request')['fDELETE']
-  const fGET: typeof import('../../utils/request')['fGET']
-  const fPOST: typeof import('../../utils/request')['fPOST']
-  const fPUT: typeof import('../../utils/request')['fPUT']
   const getAppManifest: typeof import('../../node_modules/nuxt/dist/app/composables/manifest')['getAppManifest']
   const getCurrentInstance: typeof import('vue')['getCurrentInstance']
   const getCurrentScope: typeof import('vue')['getCurrentScope']
@@ -199,14 +189,8 @@ declare global {
 import { UnwrapRef } from 'vue'
 declare module 'vue' {
   interface ComponentCustomProperties {
-    readonly DELETE: UnwrapRef<typeof import('../../utils/request')['DELETE']>
-    readonly GET: UnwrapRef<typeof import('../../utils/request')['GET']>
-    readonly POST: UnwrapRef<typeof import('../../utils/request')['POST']>
-    readonly PUT: UnwrapRef<typeof import('../../utils/request')['PUT']>
     readonly abortNavigation: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/router')['abortNavigation']>
     readonly addRouteMiddleware: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/router')['addRouteMiddleware']>
-    readonly apiUse: UnwrapRef<typeof import('../../utils/request')['apiUse']>
-    readonly asyncFetchData: UnwrapRef<typeof import('../../utils/request')['asyncFetchData']>
     readonly callOnce: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/once')['callOnce']>
     readonly cancelIdleCallback: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/compat/idle-callback')['cancelIdleCallback']>
     readonly clearError: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/error')['clearError']>
@@ -228,10 +212,6 @@ declare module 'vue' {
     readonly definePayloadReviver: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/payload')['definePayloadReviver']>
     readonly effect: UnwrapRef<typeof import('vue')['effect']>
     readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
-    readonly fDELETE: UnwrapRef<typeof import('../../utils/request')['fDELETE']>
-    readonly fGET: UnwrapRef<typeof import('../../utils/request')['fGET']>
-    readonly fPOST: UnwrapRef<typeof import('../../utils/request')['fPOST']>
-    readonly fPUT: UnwrapRef<typeof import('../../utils/request')['fPUT']>
     readonly getAppManifest: UnwrapRef<typeof import('../../node_modules/nuxt/dist/app/composables/manifest')['getAppManifest']>
     readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
     readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>

+ 4 - 4
.nuxt/types/plugins.d.ts

@@ -20,10 +20,10 @@ type NuxtAppInjections =
   InjectionType<typeof import("../../node_modules/@nuxt/devtools/dist/runtime/plugins/devtools.client.js")> &
   InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/dev-server-logs.js")> &
   InjectionType<typeof import("../../node_modules/nuxt/dist/app/plugins/check-if-layout-used.js")> &
-  InjectionType<typeof import("../../plugins/element-plus.js")> &
-  InjectionType<typeof import("../../plugins/request.js")> &
-  InjectionType<typeof import("../../plugins/globals.js")> &
-  InjectionType<typeof import("../../plugins/pinia.js")>
+  InjectionType<typeof import("../../plugins/element-plus")> &
+  InjectionType<typeof import("../../plugins/request")> &
+  InjectionType<typeof import("../../plugins/globals")> &
+  InjectionType<typeof import("../../plugins/pinia")>
 
 declare module '#app' {
   interface NuxtApp extends NuxtAppInjections { }

+ 157 - 178
assets/css/about.less

@@ -1,193 +1,172 @@
 //导航条
 .breadcrumb {
-  width: 1200px;
-  margin: 0 auto;
-  height: 22px;
-  padding-bottom: 40px;
-  margin-top: 40px;
-  margin-bottom: 60px;
-  border-bottom: 1px solid #d9d9d9;
-  font-family: Microsoft YaHei, Microsoft YaHei;
-  font-weight: 400;
-  font-size: 20px;
-  color: #666666;
-  line-height: 23px;
-  text-align: left;
-  font-style: normal;
-  text-transform: none;
-
-  .el-breadcrumb::v-deep {
-      display: inline-block;
-      vertical-align: -4px;
-  }
-
-  /deep/.el-breadcrumb__inner a,
-  /deep/.el-breadcrumb__inner.is-link {
-      color: #666666;
-      font-weight: 400;
-      text-decoration: none;
-      transition: var(--el-transition-color);
-  }
-
-  span {
-      font-family: Microsoft YaHei, Microsoft YaHei;
-      font-weight: 400;
-      font-size: 20px;
-      color: #666666;
-      line-height: 23px;
-      text-align: left;
-      font-style: normal;
-      text-transform: none;
-  }
-
-  span:hover {
-      color: #666666;
-  }
-
-  .location {
-      margin-right: 20px;
-      width: 100px;
-      height: 22px;
-      font-family: Microsoft YaHei, Microsoft YaHei;
-      font-weight: 400;
-      font-size: 20px;
-      color: #666666;
-      line-height: 23px;
-      text-align: left;
-      font-style: normal;
-      text-transform: none;
-  }
-}
+    width: 1200px;
+    margin: 0 auto;
+    height: 22px;
+    padding-bottom: 40px;
+    margin-top: 40px;
+    margin-bottom: 60px;
+    border-bottom: 1px solid #d9d9d9;
+    font-family: Microsoft YaHei, Microsoft YaHei;
+    font-weight: 400;
+    font-size: 20px;
+    color: #666666;
+    line-height: 23px;
+    text-align: left;
+    font-style: normal;
+    text-transform: none;
+
+    .el-breadcrumb::v-deep {
+        display: inline-block;
+        vertical-align: -4px;
+    }
 
-// 资讯列表
-.newsDetail {
-  width: 100%;
-  // height: 1400px;
-  // margin-bottom: 70px;
-
-  .inner {
-      width: 1200px;
-      font-size: 16px;
-      position: relative;
-
-      .innerDetail {
-          width: 1080px;
-          margin: 0 auto;
-          margin-bottom: 60px;
-
-          .headImg {
-              width: 1086px;
-              height: 10px;
-              background: url("@/public/special/head11.png") no-repeat 100% 100%;
-          }
-
-          .footImg {
-              width: 1086px;
-              height: 7px;
-              background: url("@/public/special/foot01.png") no-repeat 100% 100%;
-          }
-
-          .innerDetail1 {
-              width: 1086px;
-              margin: 0 auto;
-              padding: 30px 50px 40px;
-              box-sizing: border-box;
-              border-left: 1px solid #DBBE9E;
-              background: url("@/public/special/mid01.png") repeat-y 100% 100%;
-          }
-
-         .leftBottom::v-deep {
-              font-size: 16px;
-              line-height: 40px;  
-         }
-      }
-
-
-
-      .innerLeft {
-          width: 279px;
-          position: absolute;
-          top: 3px;
-          left: -155px;
-
-          .rightMenuTitle {
-              width: 279px;
-              height: 69px;
-              font-size: 22px;
-              font-weight: bold;
-              line-height: 58px;
-              text-align: center;
-              color: #fff;
-              background: url("@/public/special/projectMoreTitle.png") no-repeat;
-              margin-bottom: 30px;
-          }
-
-          ul {
-              li {
-                  a {
-                      display: inline-block;
-                      width: 144px;
-                      height: 60px;
-                      line-height: 60px;
-                      text-align: center;
-                      background-color: #F4F4F4;
-                      border-top: 1px #fff solid;
-                      font-family: Microsoft YaHei, Microsoft YaHei;
-                      font-weight: 400;
-                      font-size: 16px;
-                      color: #000000;
-                  }
-              }
-
-              li:nth-child(1) {
-                  width: 144px;
-                  height: 60px;
-                  line-height: 60px;
-                  text-align: center;
-                  background-color: #F4F4F4;
-                  border-top: 1px #fff solid;
-                  font-family: Microsoft YaHei, Microsoft YaHei;
-                  font-weight: 400;
-                  font-size: 16px;
-                  color: #dd7d18;
-              }
-
-          }
-
-          .active {
-              background: #dd7d18;
-              color: #fff;
-          }
-      }
-  }
-}
+    /deep/.el-breadcrumb__inner a,
+    /deep/.el-breadcrumb__inner.is-link {
+        color: #666666;
+        font-weight: 400;
+        text-decoration: none;
+        transition: var(--el-transition-color);
+    }
 
-//本网招聘
-.projectMoreBox {
-    margin: 0 auto;
-    height: 520px;
-    //margin-top: 20px;
-    //background: url("http://img.bjzxtw.org.cn/master/bjzxtw/public/special/projectMoreBg.png") no-repeat;
-
-    .projectMoreTitle {
-        color: #dd7d18;
-        padding-top: 20px;
-        font-size: 26px;
-        //padding-left: 204px;
+    span {
+        font-family: Microsoft YaHei, Microsoft YaHei;
+        font-weight: 400;
+        font-size: 20px;
+        color: #666666;
+        line-height: 23px;
+        text-align: left;
+        font-style: normal;
+        text-transform: none;
+    }
+
+    span:hover {
+        color: #666666;
     }
 
-    .projectMoreText {
-        padding: 40px;
+    .location {
+        margin-right: 20px;
+        width: 100px;
+        height: 22px;
+        font-family: Microsoft YaHei, Microsoft YaHei;
+        font-weight: 400;
         font-size: 20px;
-        color: #333333;
-        text-indent: 2em;
-        line-height: 36px;
+        color: #666666;
+        line-height: 23px;
+        text-align: left;
+        font-style: normal;
+        text-transform: none;
     }
 }
 
+// 资讯列表
+.newsDetail {
+    width: 100%;
+    // height: 1400px;
+    // margin-bottom: 70px;
+
+    .inner {
+        width: 1200px;
+        font-size: 16px;
+        position: relative;
+
+        .innerDetail {
+            width: 1080px;
+            margin: 0 auto;
+            margin-bottom: 60px;
+
+            .headImg {
+                width: 1086px;
+                height: 10px;
+                background: url("../../public/special/1.png") no-repeat 100% 100%;
+            }
+
+            .footImg {
+                width: 1086px;
+                height: 7px;
+                background: url("../../public/special/3.png") no-repeat 100% 100%;
+            }
+
+            .innerDetail1 {
+                width: 1086px;
+                margin: 0 auto;
+                padding: 30px 50px 40px;
+                box-sizing: border-box;
+                border-left: 1px solid #c6d9f0;
+                background: url("../../public/special/2.png") repeat-y 100% 100%;
+            }
+
+           .leftBottom::v-deep {
+                font-size: 16px;
+                line-height: 40px;  
+           }
+        }
+
+
+
+        .innerLeft {
+            width: 279px;
+            position: absolute;
+            top: 3px;
+            left: -155px;
+
+            .rightMenuTitle {
+                width: 279px;
+                height: 69px;
+                font-size: 22px;
+                font-weight: bold;
+                line-height: 58px;
+                text-align: center;
+                color: #fff;
+                background: url("../../public/special/projectMoreTitle.png") no-repeat;
+                margin-bottom: 30px;
+            }
+
+            ul {
+                li {
+                    a {
+                        display: inline-block;
+                        width: 144px;
+                        height: 60px;
+                        line-height: 60px;
+                        text-align: center;
+                        background-color: #F4F4F4;
+                        border-top: 1px #fff solid;
+                        font-family: Microsoft YaHei, Microsoft YaHei;
+                        font-weight: 400;
+                        font-size: 16px;
+                        color: #000000;
+                    }
+                }
+
+                li:nth-child(1) {
+                    width: 144px;
+                    height: 60px;
+                    line-height: 60px;
+                    text-align: center;
+                    background-color: #F4F4F4;
+                    border-top: 1px #fff solid;
+                    font-family: Microsoft YaHei, Microsoft YaHei;
+                    font-weight: 400;
+                    font-size: 16px;
+                    color: #255590;
+                }
+
+            }
+
+            .active {
+                // border-left: 0;
+                // border: 1px solid #028E21;
+                background: #255590;
+                color: #fff;
+            }
+        }
+    }
+}
+/*列表样式*/
 .innerTitle {
     font-size: 24px;
-    border-bottom: 1px solid #dd7d18;
+    border-bottom: 1px solid #255590;
     padding-bottom: 20px;
 }
 

+ 490 - 320
assets/css/class.less

@@ -1,3 +1,33 @@
+* {
+    margin: 0;
+    padding: 0;
+    font-family: "微软雅黑", "microsoft yahei";
+}
+
+a:active {
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: none;
+}
+
+a:visited {
+    text-decoration: none;
+}
+
+a:link {
+    text-decoration: none;
+}
+
+a:focus {
+    text-decoration: none;
+}
+
+body {
+    position: relative;
+}
+
 .clearfix {
     overflow: hidden;
 }
@@ -28,24 +58,21 @@
 
 .dot2 {
     overflow: hidden;
-    display: -webkit-box !important;
+    display: -webkit-box;
     -webkit-box-orient: vertical;
     -webkit-line-clamp: 2;
 }
 
-.dot3 {
-    overflow: hidden;
-    display: -webkit-box !important;
-    -webkit-box-orient: vertical;
-    -webkit-line-clamp: 3;
+input,
+img {
+    border: none;
 }
 
-/*input,img{border:none;width:100%;height:100%;}*/
-
 .cover100 img {
     display: block;
     width: 100%;
     height: 100%;
+    object-fit: cover;
 }
 
 .back100 {
@@ -59,7 +86,6 @@ footer,
 header,
 time,
 video,
-top,
 main,
 nav,
 h4,
@@ -68,468 +94,612 @@ section {
     display: block;
 }
 
-.index_2_left :deep(.el-tabs__header) {
-    height: 45px;
-    display: block;
-    width: 100%;
-    margin-bottom: 40px;
-    background: url(@/public/img/2.png) left center;
-    background-repeat: repeat-x;
-    background-size: auto 10px;
+.index_main {
+    margin: 0 auto;
+    width: 1200px;
 }
 
-
-.index_2_left :deep(.el-tabs__item) {
-    float: left;
-    height: 45px;
-    line-height: 45px;
-    color: #999;
-    font-size: 34px;
-    font-weight: bold;
-    background: #fff;
-    padding: 0px 28px 0px 0px !important;
+.channel_1 {
+    margin-top: 40px;
 }
 
-.index_2_left :deep(.is-active) {
-    color: #333;
-    padding-right: 28px;
-}
+.channel_nav {
+    height: 60px;
+    width: 1200px;
+    background-image: url(../../public/img/5.png);
+    margin-top: 40px;
 
-.index_2_left :deep(.el-tabs__active-bar) {
-    display: none;
+    .channel_nav_a {
+        float: left;
+        height: 60px;
+        line-height: 60px;
+        color: #255590;
+        font-size: 20px;
+        margin: 0px 19px;
+        font-weight: bold;
+    }
+
+    .channel_nav_a:nth-of-type(1) {
+        color: #fff;
+        margin: 0px 42px;
+    }
 }
 
-.index_2_left :deep(.el-tabs__nav-wrap)::after {
-    display: none;
+.channel_1_box {
+    width: 720px;
+    height: 405px;
 }
 
-.index_2_left_h3_a {
+.channel_1_left {
     float: left;
-    height: 45px;
-    line-height: 45px;
-    color: #999;
-    font-size: 34px;
-    font-weight: bold;
-    padding-right: 28px;
-    background: #fff;
+    width: 720px;
 }
 
-.index_2_left_h3_a_only {
-    color: #333;
+.channel_1_right {
+    float: right;
+    width: 450px;
 }
 
-.index_2_left_h3 {
-    height: 45px;
-    display: block;
-    width: 100%;
-    margin-bottom: 40px;
-    background: url(@/public/img/2.png) left center;
-    background-repeat: repeat-x;
-    background-size: auto 10px;
+.channel_1_box_1 {
+    float: left;
+    width: 350px;
+    margin-right: 20px;
 }
 
-.slow_6 {
-    -webkit-transition: all .6s;
-    -moz-transition: all .6s;
-    -ms-transition: all .6s;
-    -o-transition: all .6s;
-    transition: all .6s;
+.channel_1_box_2 {
+    float: left;
+    width: 350px;
 }
 
-.index_main {
-    margin: 0 auto;
-    width: 1200px;
-}
+.channel_name_ul {
+    margin-top: 0px;
 
-.index_nav {
-    margin-top: 20px;
-    border-bottom: solid 1px #D9D9D9;
+    .channel_name_ul_li {
+        height: 24px;
+        margin-bottom: 18px;
+        display: flex;
+    }
 
-    .index_nav_a {
-        float: left;
+    .channel_name_ul_li_tag {
+        height: 24px;
+        line-height: 24px;
+        color: #0046AE;
+        font-size: 18px;
+        margin-right: 15px;
+        word-break: keep-all;
+        white-space: nowrap;
+    }
+
+    .channel_name_ul_li_dot1 {
+        height: 24px;
+        line-height: 24px;
         color: #333;
-        font-size: 16px;
-        margin: 0px 36px;
-        height: 88px;
-        line-height: 88px;
-        font-weight: bold;
-        border-bottom: solid 3px #fff;
-        box-sizing: border-box;
-        position: relative;
+        font-size: 18px;
+        width: 100%;
     }
 
-    .index_nav_a:hover {
-        color: #D2600F;
-        // border-bottom: solid 3px #D2600F;
+    .channel_name_ul_li:nth-of-type(1) .channel_name_ul_li_tag {
+        display: none;
     }
 
-    .index_nav_a_only {
-        border-bottom: solid 3px #D2600F;
+    .channel_name_ul_li:nth-of-type(1) .channel_name_ul_li_dot1 {
+        font-weight: bold;
+        font-size: 20px;
     }
 
-    .index_nav_a::after {
-        content: '';
-        display: block;
-        position: absolute;
-        width: 2px;
-        height: 12px;
-        background: #DBDBDB;
-        right: -38px;
-        top: 39px;
+    .channel_name_ul_li:hover .channel_name_ul_li_dot1 {
+        color: #255590;
     }
+}
 
-    .index_nav_a:nth-last-of-type(1) {
-        overflow: hidden;
+.channel_2 {
+    margin-top: 16px;
+}
+
+.channel_head {
+    height: 30px;
+    position: relative;
+    margin-bottom: 28px;
+
+    .channel_head_name {
+        float: left;
+        height: 30px;
+        line-height: 30px;
+        color: #255590;
+        font-size: 22px;
+        text-indent: 22px;
+        font-weight: bold;
     }
 
-    .index_nav_a:nth-of-type(1) {
-        overflow: hidden;
-        height: 56px;
-        line-height: 56px;
-        color: #fff;
-        font-size: 18px;
+    .channel_head_name_a {
+        display: block;
+        height: 30px;
+        line-height: 30px;
+        color: #255590;
+        font-size: 22px;
         font-weight: bold;
-        width: 153px;
-        margin: 14px 30px 0px 0px;
-        text-indent: 46px;
-        background: url(../public/img/3.png) no-repeat left top;
-        background-size: 100% 100%;
     }
 
-}
+    .channel_head_name::after {
+        content: '';
+        display: block;
+        width: 3px;
+        height: 18px;
+        background: #255590;
+        position: absolute;
+        left: 0px;
+        top: 6px;
+        z-index: 11;
+    }
 
-.index_1 {
-    margin-top: 40px;
-    height: 410px;
-}
+    .channel_head_more {
+        float: right;
+        height: 30px;
+        line-height: 30px;
+        color: #999;
+        font-size: 16px;
+    }
 
-.index_1_left {
-    float: left;
-    width: 720px;
+    .channel_head_more::after {
+        content: '';
+        display: block;
+        width: 100%;
+        height: 100%;
+        position: absolute;
+        left: 0px;
+        top: 0px;
+        z-index: 22;
+    }
 }
 
-.index_1_right {
-    float: right;
-    width: 450px;
+.channel_head:hover .channel_head_more {
+    color: #255590;
 }
 
-.roll_1_box {
-    width: 100%;
-    height: 405px;
-}
+.channel_img_big_1_ul {
+    .channel_img_big_1_li {
+        width: 350px;
+        height: 230px;
+        margin-bottom: 31px;
+        position: relative;
+    }
 
-.index_1_color_box {
-    background: #FAFAFA;
-    width: 100%;
-    box-sizing: border-box;
-    border: solid 1px #FAFAFA;
-    border-left: solid 15px #FAFAFA;
-    border-right: solid 15px #FAFAFA;
-    padding: 0px 15px 20px;
-}
+    .channel_img_big_1_li_a {}
 
-.index_1_head_h3 {
-    margin-top: 20px;
-    display: block;
-    height: 30px;
-    margin-bottom: 10px;
-    .index_1_head_a {
-        float: left;
-        color: #333;
-        font-size: 20px;
-        font-weight: bold;
+    .channel_img_big_1_li_img {
+        display: block;
+        width: 350px;
+        height: 230px;
     }
-}
 
-.index_1_ul_2 {
-    margin: -8px 0px 8px 0px;
+    .channel_img_big_1_li_dot1 {
+        width: 350px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
 }
 
-.index_1_ul_a {
-    width: 100%;
-    position: relative;
-    height: 48px;
-    line-height: 48px;
+.channel_ul_2_a {
+    height: 24px;
+    line-height: 24px;
     color: #333;
     font-size: 18px;
-    text-indent: 18px;
-}
+    margin-bottom: 17px;
+    box-sizing: border-box;
+    text-indent: 16px;
+    position: relative;
 
-.index_1_ul_a:hover {
-    color: #D2600F;
+    &:hover {
+        color: #255590;
+    }
 }
 
-.index_1_ul_a::after {
+.channel_ul_2_a::after {
     content: '';
     display: block;
-    width: 8px;
-    height: 8px;
-    background: #D9D9D9;
-    position: absolute;
+    width: 6px;
+    height: 6px;
+    background: #ddd;
     border-radius: 50%;
+    position: absolute;
     left: 0px;
-    top: 20px;
+    top: 9px;
+    z-index: 11;
 }
 
-
-
-.index_2 {
-    margin-top: 40px;
+.channel_ul_2_a:nth-of-type(3n-2) {
+    font-weight: bold;
 }
 
-.index_2_left {
-    float: left;
-    width: 900px;
+.channel_ul_2_a:hover::after {
+    content: '';
+    display: block;
+    background: #255590;
 }
 
-.index_2_right {
-    float: right;
-    width: 270px;
-}
+.channel_img_big_2_ul {}
 
-.index_2_left_img_out {
-    width: 410px;
-    float: left;
+.channel_img_big_2_li {
+    width: 350px;
+    height: 230px;
+    margin-bottom: 20px;
+    position: relative;
 }
 
-.index_2_big_img_li {
-    margin-bottom: 30px;
-    .index_2_big_img_li_a img {
-        display: block;
-        width: 100%;
-        height: 260px;
-    }
-}
+.channel_img_big_2_li_a {}
 
-.index_2_img_li {
-    width: 195px;
-    .index_2_img_li_a img {
-        display: block;
-        height: 117px;
-        width: 100%;
-    }
+.channel_img_big_2_li_img {
+    display: block;
+    width: 350px;
+    height: 230px;
 }
 
-.index_2_img_li:nth-of-type(odd) {
-    float: left;
+.channel_img_big_2_li_dot1 {
+    width: 350px;
+    height: 44px;
+    line-height: 44px;
+    color: #fff;
+    font-size: 18px;
+    padding: 0px 10px;
+    box-sizing: border-box;
+    position: absolute;
+    z-index: 11;
+    left: 0px;
+    bottom: 0px;
+    background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
 }
 
-.index_2_img_li:nth-of-type(even) {
-    float: right;
+.channel_3 {
+    margin-top: 31px;
 }
 
-.index_2_img_li_dot1 {
+.channel_ul_3_a {
     height: 24px;
     line-height: 24px;
-    color: #000;
+    color: #333;
     font-size: 18px;
-    margin-top: 17px;
-}
+    margin-bottom: 17px;
+    box-sizing: border-box;
+    text-indent: 16px;
+    position: relative;
 
-.index_2_img_li_dot1:hover {
-    color: #D2600F;
+    &:hover {
+        color: #255590;
+    }
 }
 
-.index_2_left_ul_box {
-    width: 460px;
-    float: right;
+.channel_ul_3_a::after {
+    content: '';
+    display: block;
+    width: 6px;
+    height: 6px;
+    background: #ddd;
+    border-radius: 50%;
+    position: absolute;
+    left: 0px;
+    top: 9px;
+    z-index: 11;
 }
 
-.index_2_left_ul {
-    width: 100%;
+.channel_ul_3_a:nth-of-type(3n-2) {
+    font-weight: bold;
 }
 
-.index_2_left_ul_group_6 .index_2_left_ul_li:nth-of-type(6n) {
-    margin-bottom: 44px;
+.channel_ul_3_a:hover::after {
+    content: '';
+    display: block;
+    background: #255590;
 }
 
-.index_2_left_ul_group_6 .index_2_left_ul_li:nth-of-type(6n-5) .index_2_left_ul_li_a_text {
-    font-weight: bold;
-}
+.channel_img_big_3_ul {
+    .channel_img_big_3_li {
+        height: 265px;
+        position: relative;
+        width: 450px;
+        margin-bottom: 22px;
+        overflow: hidden;
+    }
 
+    .channel_img_big_3_li_a {}
 
-.index_2_left_ul_group_5 .index_2_left_ul_li:nth-of-type(5n) {
-    margin-bottom: 35px;
-}
+    .channel_img_big_3_li_img {
+        display: block;
+        height: 267px;
+        width: 450px;
+    }
 
-.index_2_left_ul_group_5 .index_2_left_ul_li:nth-of-type(5n-4) .index_2_left_ul_li_a_text {
-    font-weight: bold;
+    .channel_img_big_3_li_dot1 {
+        width: 450px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        box-sizing: border-box;
+        position: absolute;
+        padding: 0px 10px;
+        left: 0px;
+        bottom: 0px;
+        z-index: 11;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
 }
 
-.index_2_left_ul_li {
-    height: 24px;
-    line-height: 24px;
-    margin: 0px 0 20px;
-    display: flex;
+.channel_ul_4 {
+    width: 450px;
 
-    .index_2_left_ul_li_a_name {
-        height: 15px;
-        line-height: 15px;
-        color: #999;
-        font-size: 18px;
-        margin: 6px 10px 0px 0px;
-        padding-right: 10px;
-        border-right: solid 1px #D46F05;
+    .channel_ul_4_li {
+        width: 450px;
+        display: flex;
+        height: 24px;
+        margin-bottom: 24px;
     }
 
-    .index_2_left_ul_li_a_name:hover {
-        color: #D2600F;
+    .channel_ul_4_li_num {
+        height: 24px;
+        line-height: 24px;
+        color: #ccc;
+        font-size: 18px;
+        width: 24px;
+        text-align: center;
+        font-style: italic;
+        margin-right: 20px;
     }
 
-    .index_2_left_ul_li_a_text {
+    .channel_ul_4_a {
         height: 24px;
         line-height: 24px;
         color: #333;
         font-size: 18px;
-        width: 100%;
-        display: block;
-        word-break: keep-all;
-        white-space: nowrap;
-        overflow: hidden;
-        text-overflow: ellipsis;
+
+        &:hover {
+            color: #255590;
+        }
     }
 
-    .index_2_left_ul_li_a_text:hover {
-        color: #D2600F;
+    .channel_ul_4_li:nth-of-type(-n+3) .channel_ul_4_li_num {
+        color: #255590;
     }
 }
 
+.channel_banner {
+    width: 1200px;
+    margin: 2px auto 0px;
+}
+
+.channel_banner_a {
+    display: block;
+    width: 1200px;
+}
 
-.index_2_right_head {
-    height: 45px;
+.channel_banner_img {
     display: block;
-    margin-bottom: 44px;
+    width: 1200px;
+}
 
-    .index_2_right_head_a {
-        float: left;
-        height: 45px;
-        line-height: 45px;
+.channel_img_big_4_ul {
+    .channel_img_big_4_li {
+        width: 350px;
+        margin-bottom: 25px;
+        overflow: hidden;
+    }
+
+    .channel_img_big_4_li_a {}
+
+    .channel_img_big_4_li_img {
+        display: block;
+        height: 230px;
+        width: 350px;
+    }
+
+    .channel_img_big_4_li_dot2 {
+        height: 48px;
+        width: 350px;
         color: #333;
-        font-size: 24px;
+        font-size: 18px;
+        margin-top: 20px;
+        line-height: 24px;
+        font-weight: bold;
     }
 }
 
-
-.index_2_right_img_li {
-    margin-bottom: 20px;
+.channel_img_big_4_li_a:hover .channel_img_big_4_li_dot2 {
+    color: #255590;
 }
 
-.index_2_right_img_li_a {
-    display: flex;
+.channel_img_ul_1 {}
+
+.channel_img_ul_1_li {
+    width: 165px;
+
+    .channel_img_ul_1_li_img {
+        display: block;
+        width: 165px;
+        height: 96px;
+    }
+
+    .channel_img_ul_1_li_dot2 {
+        height: 48px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-top: 15px;
+    }
 }
 
-.index_2_right_img_li_a_img_box {
-    width: 120px;
-    height: 80px;
-    margin-right: 10px;
-    display: block;
+.channel_img_ul_1_li:nth-of-type(odd) {
+    float: left;
 }
 
-.index_3_img_li_in {
-    width: 100%;
+.channel_img_ul_1_li:nth-of-type(even) {
+    float: right;
 }
 
-.index_2_right_img_li img {
-    width: 120px;
-    height: 80px;
-    display: block;
+.channel_img_ul_1_li_a {}
+
+.channel_img_ul_1_li_a:hover .channel_img_ul_1_li_dot2 {
+    color: #255590;
 }
 
-.index_2_right_img_li_dot3 {
-    height: 63px;
-    line-height: 21px;
+.channel_ul_5_a {
+    height: 24px;
+    line-height: 24px;
     color: #333;
     font-size: 18px;
-    width: 100%;
-}
+    margin-bottom: 27px;
 
-.index_2_right_img_li_dot3:hover {
-    color: #D2600F;
+    &:hover {
+        color: #255590;
+    }
 }
 
-.index_3 {
-    margin-top: 40px;
-    height: 555px;
+.channel_ul_5_a:nth-of-type(5n-4) {
+    font-weight: bold;
 }
 
-.index_3_img_li {
-    margin-bottom: 35px;
-
-    .index_3_img_li_a {
-        display: flex;
+.channel_img_ul_2 {
+    .channel_img_ul_2_li {
+        width: 220px;
     }
 
-    .index_3_img_li_img_box {
+    .channel_img_ul_2_li:nth-of-type(odd) {
         float: left;
-        width: 180px;
-        height: 120px;
-        margin-right: 15px;
     }
 
-    .index_3_img_li_a img {
+    .channel_img_ul_2_li:nth-of-type(even) {
+        float: right;
+    }
+
+    .channel_img_ul_2_li_a {}
+
+    .channel_img_ul_2_li_img {
         display: block;
-        width: 180px;
-        height: 120px;
+        width: 220px;
+        height: 130px;
     }
 
-    .index_3_img_li_dot3 {
-        height: 66px;
-        line-height: 22px;
+    .channel_img_ul_2_li_dot1 {
+        height: 24px;
+        line-height: 24px;
         color: #333;
         font-size: 18px;
-        font-weight: bold;
-        margin-top: 8px;
+        margin-top: 20px;
+        text-align: center;
     }
 
-    .index_3_img_li_dot3:hover {
-        color: #D2600F;
+    .channel_img_ul_2_li_a:hover .channel_img_ul_2_li_dot1 {
+        color: #255590;
     }
+}
 
-    .index_3_img_li_tag {
-        float: left;
-        height: 28px;
-        line-height: 28px;
-        color: #999;
-        font-size: 14px;
-        background: #F5F5F7;
-        padding: 0px 5px;
-        margin-top: 10px;
+.channel_ul_6 {
+    margin-top: 39px;
+
+    .channel_ul_6_a {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 25px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+
+    .channel_ul_6_a::after {
+        content: '';
+        display: block;
+        width: 4px;
+        height: 4px;
+        background: #255590;
+        position: absolute;
+        left: 0px;
+        top: 10px;
+        z-index: 11;
+    }
+
+    .channel_ul_6_a:nth-last-of-type(1) {
+        margin-bottom: 11px;
+    }
+
+    .channel_ul_6_a:hover {
+        color: #255590;
     }
 }
 
+.channel_4 {
+    margin-top: 14px;
+}
 
-.index_3_num_li {
-    border-bottom: solid 1px #E4E4E4;
+.channel_ul_7_a {
+    height: 24px;
+    line-height: 24px;
+    color: #333;
+    font-size: 18px;
+    margin-bottom: 37px;
     box-sizing: border-box;
-    height: 66px;
-    line-height: 66px;
+    text-indent: 16px;
+    position: relative;
 
-    .index_3_num_li_tag {
-        float: left;
-        font-style: italic;
-        color: #D9D9D9;
-        font-size: 20px;
-        height: 100%;
-        line-height: 66px;
-        margin-right: 13px;
+    &:hover {
+        color: #255590;
     }
+}
 
-    .index_3_num_li_dot1 {
-        color: #333;
-        font-size: 18px;
-        height: 100%;
-        line-height: 66px;
-    }
+.channel_ul_7_a::after {
+    content: '';
+    display: block;
+    width: 4px;
+    height: 4px;
+    background: #333;
+    position: absolute;
+    left: 0px;
+    top: 10px;
+    z-index: 11;
+}
 
-    .index_3_num_li_dot1:hover {
-        color: #D2600F;
-    }
+.channel_ul_7_a:nth-of-type(1) {
+    font-weight: bold;
 }
 
-.index_3_num_li:nth-of-type(1) {
-    margin-top: -26px;
+.channel_ul_7_a:hover::after {
+    content: '';
+    display: block;
+    background: #255590;
 }
 
-.index_3_num_li:nth-of-type(-n+3) .index_3_num_li_tag {
-    color: #DD7D18;
+.channel_img_big_5_ul {
+    .channel_img_big_5_li {
+        margin-bottom: 25px;
+        overflow: hidden;
+    }
+
+    .channel_img_big_5_li_a {}
+
+    .channel_img_big_5_li_img {
+        display: block;
+        width: 100%;
+        height: 267px;
+    }
+
+    .channel_img_big_5_li_dot2 {
+        height: 48px;
+        color: #333;
+        font-size: 18px;
+        margin-top: 20px;
+        line-height: 24px;
+        font-weight: bold;
+    }
+
+    .channel_img_big_5_li_a:hover .channel_img_big_5_li_dot2 {
+        color: #255590;
+    }
 }

+ 1 - 1
assets/css/error.less

@@ -15,7 +15,7 @@
     color: #fff;
     text-align: center;
     margin: 0 auto;
-    background: #DD7D18;
+    background: #255590;
     border-radius: 8px;
     margin-top: 70px;
     cursor: pointer;

+ 1390 - 948
assets/css/index.less

@@ -1,986 +1,1428 @@
+* {
+    margin: 0;
+    padding: 0;
+    font-family: "微软雅黑", "microsoft yahei";
+}
 
+a:active {
+    text-decoration: none;
+}
 
+a:hover {
+    text-decoration: none;
+}
 
-//第一部分
-.part1 {
-    width: 100%;
-    height: 475px;
+a:visited {
+    text-decoration: none;
+}
+
+a:link {
+    text-decoration: none;
+}
+
+a:focus {
+    text-decoration: none;
+}
+
+body {
+    position: relative;
+}
+
+.clearfix {
     overflow: hidden;
-    margin-top: 30px;
-    margin-bottom: 30px;
+}
 
-    .inner {
-        width: 1200px;
-        margin: 0 auto;
-
-        //左侧
-        .part1_left {
-            float: left;
-            width: 900px;
-            position: relative;
-
-            .hengxian {
-                width: 900px;
-                height: 2px;
-                background: #DD7D18;
-                margin-top: 10px;
-
-                em {
-                    display: inline-block;
-                    width: 100px;
-                    height: 6px;
-                    background: #DD7D18;
-                    position: absolute;
-                    top: 10px;
-                    left: 46px;
-                }
-            }
-
-
-            .part1_left_title {
-                font-family: Microsoft YaHei, Microsoft YaHei;
-                font-weight: bold;
-                font-size: 24px;
-                color: #333333;
-                margin-top: 20px;
-
-                a {
-                    color: #333333;
-                }
-
-                img {
-                    width: 30px;
-                    height: 30px;
-                    vertical-align: middle;
-                    margin-right: 10px;
-                }
-            }
-
-            .part1_left_content {
-                width: 900px;
-                height: 300px;
-                margin-top: 20px;
-
-                .part1_left_content1 {
-                    float: left;
-
-
-                    .part1_left_photo {
-                        width: 410px;
-                        height: 160px;
-
-                        .part1_left_photo11 {
-                            width: 195px;
-                            height: 160px;
-                            float: left;
-
-                            img {
-                                width: 195px;
-                                height: 117px;
-                            }
-
-                            .left_content {
-                                width: 195px;
-                                height: 40px;
-                                white-space: nowrap;
-                                overflow: hidden;
-                                text-overflow: ellipsis;
-                                line-height: 40px;
-                                font-weight: 400;
-                                font-size: 18px;
-                                color: #333333;
-                            }
-                        }
-
-                        .part1_left_photo11:hover {
-                            .left_content {
-                                color: #dd7d18;
-                            }
-                        }
-
-                        .part1_left_photo11:first-child {
-                            margin-right: 20px;
-                        }
-                    }
-
-
-                    .part1_left_context {
-                        float: left;
-                        width: 410px;
-                        height: 160px;
-                        margin-top: 20px;
-
-                        .part1_left_contextList {
-                            width: 410px;
-                            white-space: nowrap;
-                            overflow: hidden;
-                            text-overflow: ellipsis;
-                            font-size: 18px;
-                            color: #333333;
-                            margin-bottom: 22px;
-
-                            a {
-                                color: #333333;
-                            }
-                        }
-
-
-                        .part1_left_contextList:first-child {
-                            width: 410px;
-                            white-space: nowrap;
-                            overflow: hidden;
-                            text-overflow: ellipsis;
-                            font-weight: bold;
-                            font-size: 18px;
-                            color: #333333;
-
-                            a {
-                                color: #333333;
-                            }
-
-                        }
-
-                        .part1_left_contextList:hover a {
-                            color: #dd7d18;
-                        }
-
-                    }
-
-                    .part1_left_content2 {
-                        float: right;
-                        width: 450px;
-                        height: 300px;
-                        margin-top: 40px;
-                        background-color: #333333;
-
-                    }
-
-                }
-
-                .part1_left_content2 {
-                    float: left;
-                    width: 450px;
-                    margin-left: 30px;
-
-                    .part1_left_context222 {
-                        width: 450px;
-
-                        .part1_left_contextList222 {
-                            width: 450px;
-                            white-space: nowrap;
-                            overflow: hidden;
-                            text-overflow: ellipsis;
-                            font-size: 18px;
-                            color: #333333;
-                            margin-bottom: 20px;
-
-                            a {
-                                color: #333333;
-                            }
-                        }
-
-                        .part1_left_contextList222:hover a {
-                            color: #dd7d18;
-                        }
-
-                        .part1_left_contextList222:first-child {
-                            font-weight: bold;
-                        }
-                    }
-
-                    .part1_left_context222:last-child {
-                        margin-top: 30px;
-                    }
-                }
-
-            }
+.clearfix_2::after {
+    content: '';
+    display: block;
+    height: 0;
+    visibility: hidden;
+    clear: both;
+}
 
+.hiddenColor {
+    visibility: hidden;
+}
 
+.hand {
+    cursor: pointer;
+}
 
-        }
+.dot1 {
+    display: block;
+    word-break: keep-all;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
 
-        //右侧
-        .part1_right {
-            float: right;
-            width: 270px;
-
-            .part1_right_title {
-                font-size: 22px;
-                .part1_right_titlelist {
-                    color: #999999;
-                    margin-right: 20px;
-                }
-
-                .part1_right_titlelist1 {
-                    color: #999999;
-                }
-
-                .active {
-                    font-weight: bold;
-                    color: #333333;
-                }
-
-            }
-
-            .part1_right_photo_text {
-                width: 270px;
-                margin-top: 20px;
-
-                img {
-                    width: 270px;
-                    height: 170px;
-                }
-
-                .part1_right_text {
-                    margin-top: 10px;
-                    width: 270px;
-                    height: 50px;
-                    display: -webkit-box;
-                    -webkit-box-orient: vertical;
-                    -webkit-line-clamp: 2;
-                    overflow: hidden;
-                    text-overflow: ellipsis;
-                    word-break: break-all;
-                    overflow: hidden;
-                    font-size: 18px;
-                    color: #333333;
-                }
-            }
-
-            .part1_right_photo_text:hover {
-                .part1_right_text {
-                    color: #dd7d18;
-                }
-            }
-
-            .part1_right_content {
-                width: 270px;
-                margin-top: 26px;
-
-                .part1_right_contentList {
-                    width: 275px;
-                    white-space: nowrap;
-                    overflow: hidden;
-                    text-overflow: ellipsis;
-                    font-size: 18px;
-                    color: #333333;
-                    margin-bottom: 20px;
-
-                    a {
-                        color: #333333;
-                    }
-
-                    em {
-                        display: inline-block;
-                        width: 8px;
-                        height: 8px;
-                        background-color: #ccc;
-                        border-radius: 4px;
-                        margin-right: 10px;
-                    }
-                }
-
-                .part1_right_contentList:hover {
-                    a {
-                        color: #dd7d18;
-                    }
-                }
-            }
+.dot2 {
+    overflow: hidden;
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2;
+}
 
-        }
-    }
+input,
+img {
+    border: none;
 }
 
-//第二部分
-.part2 {
+.cover100 img {
+    display: block;
     width: 100%;
-    height: 525px;
+    height: 100%;
+    object-fit: cover;
+}
+
+.back100 {
+    background-size: 100% 100%;
+    background-repeat: no-repeat;
+}
+
+article,
+aside,
+footer,
+header,
+time,
+video,
+main,
+nav,
+h4,
+h3,
+section {
+    display: block;
+}
+
+.index_main {
+    margin: 0 auto;
+    width: 1200px;
     margin-bottom: 30px;
+}
+
+.head_h3 {
+    width: 1100px;
+    height: 70px;
+    margin: 30px auto 0;
+    background: url(@/public/img/2.png) no-repeat left top #EDF4FF;
+    background-size: auto auto;
+
+    .head_h3_a {
+        display: block;
+        width: 1000px;
+        height: 70px;
+        text-align: center;
+        color: #255590;
+        font-size: 30px;
+        line-height: 70px;
+        margin: 0px auto;
+    }
+}
+
+.index_1 {
     margin-top: 30px;
+}
 
-    .inner {
-        width: 1200px;
-        margin: 0 auto;
-
-        .part2_left {
-            float: left;
-            width: 900px;
-            position: relative;
-
-            .part2_hengxian {
-                width: 900px;
-                height: 2px;
-                background: #DD7D18;
-                margin-top: 10px;
-
-                em {
-                    display: inline-block;
-                    width: 100px;
-                    height: 6px;
-                    background: #DD7D18;
-                    position: absolute;
-                    top: 10px;
-                    left: 46px;
-                }
-            }
-
-
-            .part2_left_title {
-                font-family: Microsoft YaHei, Microsoft YaHei;
-                font-weight: bold;
-                font-size: 24px;
-                color: #333333;
-                margin-top: 20px;
-
-                a {
-                    color: #333333;
-                }
-
-                img {
-                    width: 30px;
-                    height: 30px;
-                    vertical-align: middle;
-                    margin-right: 10px;
-                }
-            }
-
-            .part2_left_content1 {
-                float: left;
-                width: 420px;
-                margin-top: 25px;
-                margin-right: 30px;
-
-                .part2_left_content111 {
-                    // margin-top: 30px;
-
-                    .part2_left_content1_list {
-                        width: 420px;
-                        white-space: nowrap;
-                        overflow: hidden;
-                        text-overflow: ellipsis;
-                        font-size: 18px;
-                        color: #333333;
-                        margin-bottom: 20px;
-
-                        a {
-                            color: #333333;
-                        }
-
-                        a .nav2_title {
-                            color: #999999;
-                            padding-right: 10px;
-                            border-right: 1px solid #dd7d18;
-                        }
-
-                        .nav2_title:hover {
-                            color: #dd7d18;
-                        }
-
-                        a .nav2_title_content {
-                            color: #333333;
-                            margin-left: 10px;
-                        }
-
-                        .nav2_title_content:hover {
-                            color: #dd7d18;
-                        }
-                    }
-
-                    .part2_left_content1_list:nth-child(5n+1) {
-                        .nav2_title_content {
-                            font-weight: bold;
-                        }
-                    }
-                    .part2_left_content1_list:last-child{
-                        margin-bottom: 0;
-                    }
-                }
-            }
-
-            .part2_left_content2 {
-                float: right;
-                width: 450px;
-                height: 430px;
-                margin-top: 25px;
-
-                .part2_left_content2list {
-                    display: flex;
-                    width: 450px;
-                    margin-bottom: 30px;
-
-                    img {
-                        float: left;
-                        width: 180px;
-                        height: 120px;
-                    }
-
-                    .content2_text {
-                        float: right;
-                        width: 252px;
-                        height: 120px;
-                        padding-left: 15px;
-                        position: relative;
-
-                        .content2_text_content {
-                            width: 252px;
-                            display: -webkit-box;
-                            -webkit-box-orient: vertical;
-                            -webkit-line-clamp: 3;
-                            overflow: hidden;
-                            text-overflow: ellipsis;
-                            word-break: break-all;
-                            // display: block;
-                            font-weight: bold;
-                            font-size: 18px;
-                            color: #333333;
-
-                        }
-
-                        .content2_text_title {
-                            display: block;
-                            width: 66px;
-                            height: 28px;
-                            line-height: 28px;
-                            text-align: center;
-                            font-size: 14px;
-                            color: #999999;
-                            background-color: #f5f5f7;
-                            position: absolute;
-                            left: 15px;
-                            bottom: 0;
-                        }
-                    }
-
-                    .content2_text:hover {
-                        .content2_text_content {
-                            color: #dd7d18;
-                        }
-                    }
-                }
-            }
-        }
+.roll_1_box {
+    width: 720px;
+    height: 405px;
+}
 
-        .part2_right {
-            float: right;
-            width: 270px;
-            // height: 1000px;
-
-            .part2_right_title {
-                font-weight: bold;
-                font-size: 22px;
-                color: #333333;
-
-                a {
-                    color: #333333;
-                }
-            }
-
-            .part2_right_content {
-                width: 270px;
-                margin-top: 15px;
-
-                .part2_right_contentList {
-                    width: 270px;
-                    white-space: nowrap;
-                    overflow: hidden;
-                    text-overflow: ellipsis;
-                    font-size: 18px;
-                    color: #333333;
-                    padding-top: 17px;
-                    padding-bottom: 16px;
-                    box-sizing: border-box;
-                    border-bottom: 1px solid #DDDDDD;
-
-                    a {
-                        color: #333333;
-                    }
-
-                    .listNumber {
-                        font-family: DingTalk JinBuTi, DingTalk JinBuTi;
-                        font-weight: 400;
-                        font-size: 20px;
-                        color: #D9D9D9;
-                        margin-right: 15px;
-                    }
-
-                }
-
-                .part2_right_contentList:hover {
-                    a {
-                        color: #dd7d18;
-                    }
-                }
-
-                .part2_right_contentList:nth-child(1) {
-                    .listNumber {
-                        color: #DD7D18;
-                    }
-                }
-
-                .part2_right_contentList:nth-child(2) {
-                    .listNumber {
-                        color: #DD7D18;
-                    }
-                }
-
-                .part2_right_contentList:nth-child(3) {
-                    .listNumber {
-                        color: #DD7D18;
-                    }
-                }
-            }
-        }
+.index_1_left {
+    float: left;
+    width: 720px;
+}
+
+.index_1_right {
+    float: right;
+    width: 450px;
+}
+
+.index_1_box_1 {
+    float: left;
+    width: 350px;
+    margin-right: 20px;
+}
+
+.index_1_box_2 {
+    float: left;
+    width: 350px;
+}
+
+.index_2_box_1 {
+    float: left;
+    width: 170px;
+}
+
+.index_2_box_2 {
+    float: right;
+    width: 265px;
+}
+
+.index_1_ul {}
+
+.index_1_ul_a {
+    height: 42px;
+    line-height: 42px;
+    color: #333;
+    font-size: 18px;
+    position: relative;
+    text-indent: 16px;
+
+    &:hover {
+        color: #255590;
     }
 }
 
-//第三部分
-.part3 {
-    width: 100%;
-    height: 575px;
-    overflow: hidden;
-    margin-bottom: 30px;
+.index_1_ul_a::after {
+    content: '';
+    display: block;
+    width: 6px;
+    height: 6px;
+    position: absolute;
+    left: 0px;
+    top: 20px;
+    background: #255590;
+    border-radius: 50%;
+}
+
+.index_1_ul_a:nth-of-type(1) {
+    font-weight: bold;
+    font-size: 20px;
+    text-indent: 0;
+    margin-top: -4px;
+}
+
+.index_1_ul_a:nth-of-type(1)::after {
+    content: '';
+    display: none;
+}
+
+.banner {
     margin-top: 30px;
+    width: 1200px;
 
-    .inner {
+    .banner_a {
+        display: block;
         width: 1200px;
-        overflow: hidden;
-        margin: 0 auto;
-        background-color: #fff;
-
-        .part3_left {
-            float: left;
-            width: 900px;
-            background-color: #fff;
-            position: relative;
-
-            .part3_hengxian {
-                width: 900px;
-                height: 2px;
-                background: #DD7D18;
-                margin-top: 10px;
-
-                em {
-                    display: inline-block;
-                    width: 100px;
-                    height: 6px;
-                    background: #DD7D18;
-                    position: absolute;
-                    top: 10px;
-                    left: 46px;
-                }
-            }
-
-
-            .part3_left_title {
-                font-family: Microsoft YaHei, Microsoft YaHei;
-                font-weight: bold;
-                font-size: 24px;
-                color: #333333;
-                margin-top: 20px;
-
-                a {
-                    color: #333333;
-                }
-
-                img {
-                    width: 30px;
-                    height: 30px;
-                    vertical-align: middle;
-                    margin-right: 10px;
-                }
-            }
-
-            .part3_left_content {
-                width: 900px;
-                margin-top: 20px;
-
-                .part3_left_content1 {
-                    float: left;
-                    width: 410px;
-                    margin-right: 30px;
-
-                    .part3_left_content1_photo1 {
-                        font-size: 18px;
-
-                        a img {
-                            width: 410px;
-                            height: 260px;
-                        }
-
-                        .part3_left_content1_text {
-                            width: 410px;
-                            white-space: nowrap;
-                            overflow: hidden;
-                            text-overflow: ellipsis;
-                            font-size: 18px;
-                            color: #333333;
-                            margin-top: 15px;
-                        }
-                    }
-
-                    .part3_left_content1_photo1:hover {
-                        .part3_left_content1_text {
-                            color: #dd7d18;
-                        }
-                    }
-
-                    .part3_left_content1_photo2 {
-                        width: 410px;
-                        margin-top: 30px;
-                        display: flex;
-                        justify-content: space-between;
-
-                        .part3_left_content1_photo2list {
-                            width: 195px;
-
-                            a img {
-                                width: 195px;
-                                height: 117px;
-                            }
-
-                            .part3_left_content1_text {
-                                width: 195px;
-                                white-space: nowrap;
-                                overflow: hidden;
-                                text-overflow: ellipsis;
-                                font-size: 18px;
-                                color: #333333;
-                                margin-top: 10px;
-                            }
-                        }
-
-                        .part3_left_content1_photo2list:hover {
-                            .part3_left_content1_text {
-                                color: #dd7d18;
-                            }
-                        }
-                    }
-
-                }
-
-                .part3_left_content2 {
-                    float: right;
-
-                    .part3_left_content2_text {
-                        width: 460px;
-
-                        .part3_left_content2_list {
-                            margin-bottom: 20px;
-
-                            .nav3_title {
-                                font-size: 18px;
-                                color: #999;
-                                padding-right: 10px;
-                                border-right: 1px solid #dd7d18;
-                            }
-
-                            .nav3_title:hover {
-                                color: #dd7d18;
-                            }
-
-                            .nav3_title_content {
-                                display: inline-block;
-                                width: 366px;
-                                white-space: nowrap;
-                                overflow: hidden;
-                                text-overflow: ellipsis;
-                                padding-left: 10px;
-                                font-size: 18px;
-                                color: #333333;
-                                vertical-align: -4px;
-                            }
-
-                            .nav3_title_content:hover {
-                                color: #dd7d18;
-                            }
-                        }
-
-                        .part3_left_content2_list:first-child {
-                            .nav3_title_content {
-                                font-weight: bold;
-                            }
-                        }
-                    }
-
-                    .part3_left_content2_text:last-child {
-                        margin-top: 30px;
-                    }
-                }
-
-            }
+    }
 
-        }
+    .banner_img {
+        display: block;
+        width: 1200px;
+    }
+}
+
+.index_2 {
+    margin-top: 30px;
+}
 
-        .part3_right {
-            float: right;
-            width: 270px;
-            height: 430px;
-
-            .part3_right_title {
-                font-weight: bold;
-                font-size: 22px;
-                color: #333333;
-
-                a {
-                    color: #333333;
-                }
-            }
-
-            .part3_right_content {
-                .right_photo_text {
-                    width: 270px;
-                    height: 80px;
-                    margin-top: 15px;
-
-                    a img {
-                        float: left;
-                        width: 120px;
-                        height: 80px;
-                        margin-right: 10px;
-                    }
-
-                    .right_text {
-                        float: right;
-                        width: 135px;
-                        height: 75px;
-                        display: -webkit-box;
-                        -webkit-box-orient: vertical;
-                        -webkit-line-clamp: 3;
-                        overflow: hidden;
-                        text-overflow: ellipsis;
-                        word-break: break-all;
-                        font-size: 18px;
-                        color: #333333;
-                    }
-                }
-
-                .right_photo_text:hover {
-                    .right_text {
-                        color: #dd7d18;
-                    }
-                }
-
-                .rightcontent_text {
-                    width: 270px;
-                    margin-top: 15px;
-
-                    .rightcontent_textlist {
-                        width: 270px;
-                        white-space: nowrap;
-                        overflow: hidden;
-                        text-overflow: ellipsis;
-                        font-size: 18px;
-                        color: #333333;
-                        margin-bottom: 15px;
-
-                        a {
-                            color: #333333;
-                        }
-
-                        em {
-                            display: inline-block;
-                            width: 8px;
-                            height: 8px;
-                            background-color: #ccc;
-                            border-radius: 4px;
-                            margin-right: 5px;
-                        }
-                    }
-
-                    .rightcontent_textlist:hover {
-                        a {
-                            color: #dd7d18;
-                        }
-                    }
-                }
-            }
+.index_2_head {
+    height: 30px;
+    position: relative;
+    margin-bottom: 28px;
+
+    .index_2_head_name {
+        float: left;
+        height: 30px;
+        line-height: 30px;
+        color: #255590;
+        font-size: 22px;
+        text-indent: 22px;
+        font-weight: bold;
+    }
 
+    .index_2_head_name_a {
+        display: block;
+        height: 30px;
+        line-height: 30px;
+        color: #255590;
+        font-size: 22px;
+        font-weight: bold;
+    }
+
+    .index_2_head_name::after {
+        content: '';
+        display: block;
+        width: 3px;
+        height: 18px;
+        background: #255590;
+        position: absolute;
+        left: 0px;
+        top: 6px;
+        z-index: 11;
+    }
+
+    .index_2_head_more {
+        float: right;
+        height: 30px;
+        line-height: 30px;
+        color: #999;
+        font-size: 16px;
+    }
+
+    // .index_2_head_more::after {
+    //     content: '';
+    //     display: block;
+    //     width: 100%;
+    //     height: 100%;
+    //     position: absolute;
+    //     left: 0px;
+    //     top: 0px;
+    //     z-index: 22;
+    // }
+}
+
+.index_2_head:hover .index_2_head_more {
+    color: #255590;
+}
+
+.index_img_big_2_ul {}
+
+.index_img_big_2_li {
+    width: 350px;
+    height: 230px;
+    margin-bottom: 20px;
+    position: relative;
+
+    .index_img_big_2_li_a {}
+
+    .index_img_big_2_li_img {
+        display: block;
+        width: 350px;
+        height: 230px;
+    }
+
+    .index_img_big_2_li_dot1 {
+        width: 350px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.index_2_img_li {
+    width: 165px;
+    height: 96px;
+    margin-bottom: 8px;
+    position: relative;
+
+    .index_2_img_li_a {}
+
+    .index_2_img_li_img {
+        width: 165px;
+        height: 96px;
+    }
+
+    .index_2_img_li_dot1 {
+        width: 165px;
+        height: 28px;
+        line-height: 28px;
+        color: #fff;
+        font-size: 14px;
+        box-sizing: border-box;
+        position: absolute;
+        padding: 0px 10px;
+        left: 0px;
+        bottom: 0px;
+        z-index: 11;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
 
+.index_2_img_li:nth-of-type(odd) {
+    float: left;
+}
+
+.index_2_img_li:nth-of-type(even) {
+    float: right;
+}
+
+.index_ul_2_a {
+    height: 24px;
+    line-height: 24px;
+    color: #333;
+    font-size: 18px;
+    margin-bottom: 17px;
+    box-sizing: border-box;
+    text-indent: 16px;
+    position: relative;
+
+    &:hover {
+        color: #255590;
+    }
+
+    &:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+}
+
+.index_ul_2_a::after {
+    content: '';
+    display: block;
+    width: 6px;
+    height: 6px;
+    background: #ddd;
+    border-radius: 50%;
+    position: absolute;
+    left: 0px;
+    top: 8px;
+    z-index: 11;
+}
+
+.index_ul_2_a:nth-of-type(3n-2) {
+    font-weight: bold;
+}
+
+.index_img_big_1_ul {
+    .index_img_big_1_li {
+        height: 267px;
+        position: relative;
+        width: 450px;
+        margin-bottom: 22px;
+    }
+
+    .index_img_big_1_li_a {}
+
+    .index_img_big_1_li_img {
+        display: block;
+        height: 267px;
+        width: 450px;
+    }
+
+    .index_img_big_1_li_dot1 {
+        width: 450px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        box-sizing: border-box;
+        position: absolute;
+        padding: 0px 10px;
+        left: 0px;
+        bottom: 0px;
+        z-index: 11;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.index_ul_3_a {
+    height: 24px;
+    line-height: 24px;
+    color: #333;
+    font-size: 18px;
+    margin-bottom: 17px;
+    box-sizing: border-box;
+    text-indent: 16px;
+    position: relative;
+
+    &:hover {
+        color: #255590;
+    }
+}
+
+.index_ul_3_a::after {
+    content: '';
+    display: block;
+    width: 6px;
+    height: 6px;
+    background: #ddd;
+    border-radius: 50%;
+    position: absolute;
+    left: 0px;
+    top: 8px;
+    z-index: 11;
+}
+
+.index_ul_3_a:hover::after {
+    content: '';
+    display: block;
+    background: #255590;
+}
+
+.index_3 {
+    margin-top: 12px;
+}
+
+.index_img_big_3_ul {}
+
+.index_img_big_3_li {
+    width: 350px;
+    height: 230px;
+    margin-bottom: 20px;
+    position: relative;
+}
+
+.index_img_big_3_li_a {}
+
+.index_img_big_3_li_img {
+    display: block;
+    width: 350px;
+    height: 230px;
+}
+
+.index_img_big_3_li_dot1 {
+    width: 350px;
+    height: 44px;
+    line-height: 44px;
+    color: #fff;
+    font-size: 18px;
+    padding: 0px 10px;
+    box-sizing: border-box;
+    position: absolute;
+    z-index: 11;
+    left: 0px;
+    bottom: 0px;
+    background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+}
+
+.index_ul_3_a {
+    height: 24px;
+    line-height: 24px;
+    color: #333;
+    font-size: 18px;
+    margin-bottom: 17px;
+    box-sizing: border-box;
+    text-indent: 16px;
+    position: relative;
+}
+
+.index_ul_3_a::after {
+    content: '';
+    display: block;
+    width: 6px;
+    height: 6px;
+    background: #ddd;
+    border-radius: 50%;
+    position: absolute;
+    left: 0px;
+    top: 8px;
+    z-index: 11;
+}
+
+.index_ul_3_a:nth-of-type(3n-2) {
+    font-weight: bold;
+}
+
+.index_ul_5_a {
+    height: 24px;
+    line-height: 24px;
+    color: #333;
+    font-size: 18px;
+    margin-bottom: 17px;
+    box-sizing: border-box;
+    text-indent: 16px;
+    position: relative;
+
+    &:hover {
+        color: #255590;
+    }
+}
+
+.index_ul_5_a::after {
+    content: '';
+    display: block;
+    width: 6px;
+    height: 6px;
+    background: #ddd;
+    border-radius: 50%;
+    position: absolute;
+    left: 0px;
+    top: 8px;
+    z-index: 11;
+}
+
+.index_ul_5_a:hover::after {
+    content: '';
+    display: block;
+    background: #255590;
+}
+
+.index_img_ul_2 {
+    .index_img_ul_2_li {
+        width: 170px;
+        height: 110px;
+        margin-bottom: 10px;
+        position: relative;
+    }
+
+    .index_img_ul_2_li_a {}
+
+    .index_img_ul_2_li_img {
+        width: 170px;
+        height: 110px;
+    }
+
+    .index_img_ul_2_li_dot1 {
+        width: 170px;
+        height: 28px;
+        line-height: 28px;
+        color: #fff;
+        font-size: 14px;
+        box-sizing: border-box;
+        position: absolute;
+        padding: 0px 10px;
+        left: 0px;
+        bottom: 0px;
+        z-index: 11;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.index_ul_4_li_box {
+    height: 48px;
+    margin-bottom: 11px;
+    width: 265px;
+
+    .index_ul_4_li {
+        height: 48px;
+        width: 265px;
+        display: table-cell;
+        vertical-align: middle;
+    }
+
+    .index_ul_4_a {
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        box-sizing: border-box;
+        position: relative;
+        width: 265px;
+        box-sizing: border-box;
+        padding-left: 16px;
+
+        &:hover {
+            color: #255590;
         }
     }
+
+    .index_ul_4_a::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 44%;
+        z-index: 11;
+    }
+
+    .index_ul_4_a:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
 }
 
-//第四部分
-.part4 {
-    width: 100%;
-    overflow: hidden;
-    margin-bottom: 30px;
-    margin-top: 30px;
+.index_4 {
+    margin-top: 11px;
+}
+
+.index_img_big_4_ul {}
+
+.index_img_big_4_li {
+    width: 350px;
+    height: 230px;
+    margin-bottom: 20px;
+    position: relative;
+
+    .index_img_big_4_li_a {}
+
+    .index_img_big_4_li_img {
+        display: block;
+        width: 350px;
+        height: 230px;
+    }
+
+    .index_img_big_4_li_dot1 {
+        width: 350px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.index_ul_6_a {
+    height: 24px;
+    line-height: 24px;
+    color: #333;
+    font-size: 18px;
+    margin-bottom: 17px;
+    box-sizing: border-box;
+    text-indent: 16px;
+    position: relative;
+
+    &:hover {
+        color: #255590;
+    }
+}
+
+.index_ul_6_a::after {
+    content: '';
+    display: block;
+    width: 6px;
+    height: 6px;
+    background: #ddd;
+    border-radius: 50%;
+    position: absolute;
+    left: 0px;
+    top: 8px;
+    z-index: 11;
+}
+
+.index_ul_6_a:hover::after {
+    content: '';
+    display: block;
+    background: #255590;
+}
+
+.index_ul_7 {
+    margin-top: 12px;
+}
+
+.index_ul_7_a {
+    height: 24px;
+    line-height: 24px;
+    color: #333;
+    font-size: 18px;
+    margin-bottom: 17px;
+    box-sizing: border-box;
+    text-indent: 16px;
+    position: relative;
+
+    &:hover {
+        color: #255590;
+    }
+}
+
+.index_ul_7_a::after {
+    content: '';
+    display: block;
+    width: 6px;
+    height: 6px;
+    background: #ddd;
+    border-radius: 50%;
+    position: absolute;
+    left: 0px;
+    top: 8px;
+    z-index: 11;
+}
+
+.index_ul_7_a:nth-of-type(3n-2) {
+    font-weight: bold;
+}
+
+.index_ul_7_a:hover::after {
+    content: '';
+    display: block;
+    background: #255590;
+}
 
-    .inner {
+.index_ul_8 {}
+
+.index_ul_8_a {
+    width: 170px;
+    height: 48px;
+    color: #255590;
+    font-size: 14px;
+    box-sizing: border-box;
+    padding: 0px 6px;
+    line-height: 48px;
+    background: #F7FBFE;
+    margin-bottom: 10px;
+
+    &:hover {
+        font-weight: bold;
+    }
+}
+
+.index_ul_8_a:nth-of-type(odd) {
+    float: left;
+}
+
+.index_ul_8_a:nth-of-type(even) {
+    float: right;
+}
+
+.index_img_big_5_ul {}
+
+.index_img_big_5_li {
+    height: 267px;
+    position: relative;
+    width: 450px;
+    margin-bottom: 22px;
+
+    .index_img_big_5_li_a {}
+
+    .index_img_big_5_li_img {
+        display: block;
+        height: 267px;
+        width: 450px;
+    }
+
+    .index_img_big_5_li_dot1 {
+        width: 450px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        box-sizing: border-box;
+        position: absolute;
+        padding: 0px 10px;
+        left: 0px;
+        bottom: 0px;
+        z-index: 11;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.index_ul_9_a {
+    height: 24px;
+    line-height: 24px;
+    color: #333;
+    font-size: 18px;
+    margin-bottom: 17px;
+    box-sizing: border-box;
+    text-indent: 16px;
+    position: relative;
+
+    &:hover {
+        color: #255590;
+    }
+}
+
+.index_ul_9_a::after {
+    content: '';
+    display: block;
+    width: 6px;
+    height: 6px;
+    background: #ddd;
+    border-radius: 50%;
+    position: absolute;
+    left: 0px;
+    top: 8px;
+    z-index: 11;
+}
+
+.index_ul_9_a:hover::after {
+    content: '';
+    display: block;
+    background: #255590;
+}
+
+.banner_3 {
+    width: 1200px;
+    margin-top: 12px;
+}
+
+.index_img_ul_3_li {
+    width: 350px;
+    margin-bottom: 20px;
+
+    .index_img_ul_3_a {
+        width: 350px;
         display: flex;
-        justify-content: space-between;
-        width: 1200px;
-        overflow: hidden;
-        background-color: #fff;
-
-        .part4_one {
-            width: 380px;
-            float: left;
-
-            .part4_title {
-                width: 380px;
-                position: relative;
-
-                .part4_hengxian {
-                    width: 380px;
-                    height: 2px;
-                    background: #DD7D18;
-                    margin-top: 10px;
-
-                    em {
-                        display: inline-block;
-                        width: 130px;
-                        height: 6px;
-                        background: #DD7D18;
-                        position: absolute;
-                        top: 0px;
-                        left: 46px;
-                    }
-                }
-
-
-                .part4_left_title {
-                    font-family: Microsoft YaHei, Microsoft YaHei;
-                    font-weight: bold;
-                    font-size: 24px;
-                    color: #333333;
-                    margin-top: 20px;
-
-                    a {
-                        color: #333333;
-                    }
-
-                    img {
-                        width: 30px;
-                        height: 30px;
-                        vertical-align: middle;
-                        margin-right: 10px;
-                    }
-                }
-
-
-            }
-
-            .part4_photo_text {
-                position: relative;
-                margin-top: 20px;
-
-                a img {
-                    width: 380px;
-                    height: 249px;
-                }
-
-                .text {
-                    position: absolute;
-                    bottom: 0;
-                    left: 0;
-                    width: 380px;
-                    height: 54px;
-                    line-height: 54px;
-                    white-space: nowrap;
-                    overflow: hidden;
-                    text-overflow: ellipsis;
-                    color: #fff;
-                    font-size: 18px;
-                    padding-left: 20px;
-                    padding-right: 20px;
-                    box-sizing: border-box;
-                    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000000 100%);
-                }
-            }
-
-            .part4_photo_content {
-                margin-top: 30px;
-                width: 380px;
-                // height: 150px;
-
-                .part4_photo_contentlist {
-                    // display: flex;
-                    width: 380px;
-                    white-space: nowrap;
-                    overflow: hidden;
-                    text-overflow: ellipsis;
-                    font-size: 18px;
-                    color: #333333;
-                    margin-bottom: 20px;
-
-                    a {
-                        color: #333333;
-                    }
-
-                    .nav11_title {
-                        font-size: 18px;
-                        color: #999;
-                        padding-right: 10px;
-                        box-sizing: border-box;
-                        border-right: 1px solid #dd7d18
-                    }
-
-                    .nav11_title:hover {
-                        color: #dd7d18;
-                    }
-
-                    .nav11_title_content {
-                        display: inline-block;
-                        width: 290px;
-                        white-space: nowrap;
-                        overflow: hidden;
-                        text-overflow: ellipsis;
-                        padding-left: 10px;
-                        box-sizing: border-box;
-                        font-size: 18px;
-                        color: #333333;
-                        vertical-align: -4px;
-                    }
-
-                    .nav11_title_content:hover {
-                        color: #dd7d18;
-                    }
-
-                    .nav11_title_content2 {
-                        display: inline-block;
-                        width: 370px;
-                        white-space: nowrap;
-                        overflow: hidden;
-                        text-overflow: ellipsis;
-                        padding-left: 10px;
-                        box-sizing: border-box;
-                        font-size: 18px;
-                        color: #333333;
-                        vertical-align: -4px;
-                    }
-
-                    .nav11_title_content2:hover {
-                        color: #dd7d18;
-                    }
-
-
-                }
-
-                .part4_photo_contentlist:hover {
-                    a {
-                        color: #dd7d18;
-                    }
-                }
-
-                .part4_photo_contentlist:first-child {
-                    font-weight: bold;
-
-                    .nav11_title_content {
-                        font-weight: bold;
-                    }
-
-                    .nav11_title {
-                        font-weight: 400;
-                    }
-                }
-                .part4_photo_contentlist:last-child {
-                    margin-bottom: 0px; 
-                }
-            }
+    }
+
+    .index_img_ul_3_img_box {
+        width: 165px;
+        height: 96px;
+        margin-right: 20px;
+    }
+
+    .index_img_ul_3_img {
+        display: block;
+        width: 165px;
+        height: 96px;
+    }
+
+    .index_img_ul_3_dot2 {
+        height: 48px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-top: 24px;
+    }
+}
+
+.index_img_ul_3_a:hover .index_img_ul_3_dot2 {
+    color: #255590;
+}
+
+.index_ul_10 {
+    margin-top: 12px;
+
+    .index_ul_10_a {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+
+    .index_ul_10_a::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+
+    .index_ul_10_a:nth-of-type(3n-2) {
+        font-weight: bold;
+    }
+}
+
+.index_ul_10_a:hover {
+    color: #255590;
+}
+
+.index_ul_10_a:hover::after {
+    content: '';
+    display: block;
+    background: #255590;
+}
+
+.index_img_ul_4_li {
+    width: 350px;
+    margin-bottom: 20px;
+
+    .index_img_ul_4_a {
+        width: 350px;
+        display: flex;
+    }
+
+    .index_img_ul_4_img_box {
+        width: 165px;
+        height: 96px;
+        margin-right: 20px;
+    }
+
+    .index_img_ul_4_img {
+        display: block;
+        width: 165px;
+        height: 96px;
+    }
+
+    .index_img_ul_4_dot2 {
+        height: 48px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-top: 24px;
+    }
+}
+
+.index_img_ul_4_a:hover .index_img_ul_4_dot2 {
+    color: #255590;
+}
+
+.index_ul_11 {
+    margin-top: 12px;
+
+    .index_ul_11_a {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        margin-bottom: 17px;
+        box-sizing: border-box;
+        text-indent: 16px;
+        position: relative;
+    }
+
+    .index_ul_11_a::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 8px;
+        z-index: 11;
+    }
+}
+
+.index_ul_11_a:nth-of-type(3n-2) {
+    font-weight: bold;
+}
+
+.index_ul_11_a:hover {
+    color: #255590;
+}
+
+.index_ul_11_a:hover::after {
+    content: '';
+    display: block;
+    background: #255590;
+}
+
+.index_ul_12 {
+    width: 450px;
+
+    .index_ul_12_li {
+        width: 450px;
+        display: flex;
+        height: 24px;
+        margin-bottom: 29px;
+    }
+
+    .index_ul_12_li_num {
+        height: 24px;
+        line-height: 24px;
+        color: #ccc;
+        font-size: 18px;
+        width: 24px;
+        text-align: center;
+        font-style: italic;
+        margin-right: 20px;
+    }
+
+    .index_ul_12_a {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+    }
+}
+
+.index_ul_12_li:nth-of-type(-n+3) .index_ul_12_li_num {
+    color: #255590;
+}
+
+.index_ul_12_a:hover {
+    color: #255590;
+}
+
+.index_5 {
+    margin-top: 30px;
+}
+
+.index_6 {
+    margin-top: 30px;
+}
+
+.index_img_big_6_ul {}
+
+.index_img_big_6_li {
+    width: 350px;
+    height: 230px;
+    margin-bottom: 20px;
+    position: relative;
+
+    .index_img_big_6_li_a {}
+
+    .index_img_big_6_li_img {
+        display: block;
+        width: 350px;
+        height: 230px;
+    }
+
+    .index_img_big_6_li_dot1 {
+        width: 350px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
 
+.index_ul_13 {}
+
+.index_ul_13_a {
+    height: 24px;
+    line-height: 24px;
+    color: #333;
+    font-size: 18px;
+    margin-bottom: 17px;
+    box-sizing: border-box;
+    text-indent: 16px;
+    position: relative;
+
+    &:hover {
+        color: #255590;
+    }
+}
+
+.index_ul_13_a::after {
+    content: '';
+    display: block;
+    width: 6px;
+    height: 6px;
+    background: #ddd;
+    border-radius: 50%;
+    position: absolute;
+    left: 0px;
+    top: 8px;
+    z-index: 11;
+}
+
+.index_ul_13_a:nth-of-type(3n-2) {
+    font-weight: bold;
+}
+
+.index_ul_13_a:hover::after {
+    content: '';
+    display: block;
+    background: #255590;
+}
+
+.index_img_ul_5 {}
+
+.index_img_ul_5_li {
+    width: 170px;
+    height: 110px;
+    margin-bottom: 10px;
+    position: relative;
+
+    .index_img_ul_5_li_a {}
+
+    .index_img_ul_5_li_img {
+        width: 170px;
+        height: 110px;
+    }
+
+    .index_img_ul_5_li_dot1 {
+        width: 170px;
+        height: 28px;
+        line-height: 28px;
+        color: #fff;
+        font-size: 14px;
+        box-sizing: border-box;
+        position: absolute;
+        padding: 0px 10px;
+        left: 0px;
+        bottom: 0px;
+        z-index: 11;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.index_ul_14_li_box {
+    height: 48px;
+    margin-bottom: 11px;
+    width: 265px;
+
+    .index_ul_14_li {
+        height: 48px;
+        width: 265px;
+        display: table-cell;
+        vertical-align: middle;
+    }
+
+    .index_ul_14_a {
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        box-sizing: border-box;
+        position: relative;
+        width: 265px;
+        box-sizing: border-box;
+        padding-left: 16px;
+
+        &:hover {
+            color: #255590;
         }
+    }
+
+    .index_ul_14_a::after {
+        content: '';
+        display: block;
+        width: 6px;
+        height: 6px;
+        background: #ddd;
+        border-radius: 50%;
+        position: absolute;
+        left: 0px;
+        top: 44%;
+        z-index: 11;
+    }
+
+    .index_ul_14_a:hover::after {
+        content: '';
+        display: block;
+        background: #255590;
+    }
+}
+
+.index_2_head_right {
+    float: right;
+    margin-top: 3px;
+}
+
+.index_2_head_right_a {
+    height: 30px;
+    line-height: 30px;
+    color: #999;
+    font-size: 16px;
+    float: left;
+
+    &:hover {
+        color: #489D97;
+    }
+}
+
+.index_2_head_right .index_6_head_right_a {
+    padding: 0px 10px 0px 16px;
+    position: relative;
+    float: left;
+    color: #999;
+    font-size: 16px;
+}
+
+.index_2_head_right .index_6_head_right_a::after {
+    font-size: 12px;
+    content: '/';
+    display: block;
+    height: 6px;
+    line-height: 6px;
+    position: absolute;
+    left: 0px;
+    top: 8px;
+}
+
+.index_2_head_right .index_6_head_right_a:nth-of-type(1)::after {
+    content: '';
+    display: none;
+}
+
+.index_6_head_right_a:hover {
+    color: #255590;
+}
+
+.index_7 {
+    margin-top: 11px;
+}
+
+.index_img_big_7_ul {}
+
+.index_img_big_7_li {
+    width: 350px;
+    height: 230px;
+    margin-bottom: 20px;
+    position: relative;
+
+    .index_img_big_7_li_a {}
+
+    .index_img_big_7_li_img {
+        display: block;
+        width: 350px;
+        height: 230px;
+    }
 
+    .index_img_big_7_li_dot1 {
+        width: 350px;
+        height: 44px;
+        line-height: 44px;
+        color: #fff;
+        font-size: 18px;
+        padding: 0px 10px;
+        box-sizing: border-box;
+        position: absolute;
+        z-index: 11;
+        left: 0px;
+        bottom: 0px;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
     }
+}
+
+.index_img_ul_6_li {
+    width: 165px;
+    height: 96px;
+    margin-bottom: 8px;
+    position: relative;
+
+    .index_img_ul_6_li_a {}
+
+    .index_img_ul_6_li_img {
+        width: 165px;
+        height: 96px;
+    }
+
+    .index_img_ul_6_li_dot1 {
+        width: 165px;
+        height: 28px;
+        line-height: 28px;
+        color: #fff;
+        font-size: 14px;
+        box-sizing: border-box;
+        position: absolute;
+        padding: 0px 10px;
+        left: 0px;
+        bottom: 0px;
+        z-index: 11;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.index_img_ul_6_li:nth-of-type(odd) {
+    float: left;
+}
+
+.index_img_ul_6_li:nth-of-type(even) {
+    float: right;
+}
+
+.index_ul_15 {}
+
+.index_ul_15_a {
+    height: 24px;
+    line-height: 24px;
+    color: #333;
+    font-size: 18px;
+    margin-bottom: 17px;
+    box-sizing: border-box;
+    text-indent: 16px;
+    position: relative;
+
+    &:hover {
+        color: #255590;
+    }
+}
+
+.index_ul_15_a::after {
+    content: '';
+    display: block;
+    width: 6px;
+    height: 6px;
+    background: #ddd;
+    border-radius: 50%;
+    position: absolute;
+    left: 0px;
+    top: 8px;
+    z-index: 11;
+}
+
+.index_ul_15_a:nth-of-type(3n-2) {
+    font-weight: bold;
+}
+
+.index_ul_15_a:hover::after {
+    content: '';
+    display: block;
+    background: #255590;
+}
+
+.index_img_ul_7_li {
+    width: 220px;
+    height: 130px;
+    margin-bottom: 8px;
+    position: relative;
+
+    .index_img_ul_7_li_a {}
+
+    .index_img_ul_7_li_img {
+        width: 220px;
+        height: 130px;
+    }
+
+    .index_img_ul_7_li_dot1 {
+        width: 220px;
+        height: 28px;
+        line-height: 28px;
+        color: #fff;
+        font-size: 14px;
+        box-sizing: border-box;
+        position: absolute;
+        padding: 0px 10px;
+        left: 0px;
+        bottom: 0px;
+        z-index: 11;
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+}
+
+.index_img_ul_7_li:nth-of-type(odd) {
+    float: left;
+}
+
+.index_img_ul_7_li:nth-of-type(even) {
+    float: right;
+}
+
+.index_name_ul {
+    margin-top: 13px;
+
+    .index_name_ul_li {
+        height: 24px;
+        margin-bottom: 20px;
+        display: flex;
+    }
+
+    .index_name_ul_li_tag {
+        height: 24px;
+        line-height: 24px;
+        color: #0046AE;
+        font-size: 18px;
+        position: relative;
+        padding-right: 15px;
+        margin-right: 15px;
+        word-break: keep-all;
+        white-space: nowrap;
+    }
+
+    .index_name_ul_li_tag::after {
+        content: '';
+        display: block;
+        height: 14px;
+        background: #D3D5D8;
+        width: 1px;
+        position: absolute;
+        right: 0px;
+        top: 5px;
+    }
+
+    .index_name_ul_li_dot1 {
+        height: 24px;
+        line-height: 24px;
+        color: #333;
+        font-size: 18px;
+        width: 100%;
+    }
+
+    .index_name_ul_li_dot1:hover {
+        color: #255590;
+    }
+}
+
+.banner_4 {
+    width: 1200px;
+    margin-top: 11px;
 }

+ 12 - 130
assets/css/list.less

@@ -1,127 +1,10 @@
-//二级栏目
-.sannongzhichuang {
-    margin: 30px 0 40px;
-
-    .inner {
-        width: 1200px;
-        height: 67px;
-        position: relative;
-    }
-
-    h2 {
-        display: inline-block;
-        //background-image: url("../../public/image/bg1.png");
-        background: #139602;
-        width: 156px;
-        height: 43px;
-        padding: 14px 31px 10px 25px;
-        font-family: STXingkai, STXingkai;
-        font-weight: 400;
-        font-size: 39px;
-        color: #FFFFFF;
-        line-height: 46px;
-        text-align: center;
-        font-style: normal;
-        text-transform: none;
-        -webkit-text-stroke: 0.3px #3C6C47;
-        position: absolute;
-        top: 0;
-        left: 0;
-        z-index: 99;
-
-        em {
-            position: absolute;
-            top: -16px;
-            right: -12px;
-            color: #185410;
-            display: inline-block;
-            width: 13px;
-            height: 13px;
-        }
-
-        a {
-            font-family: STXingkai, STXingkai;
-            font-weight: 400;
-            font-size: 39px;
-            color: #FFFFFF;
-            line-height: 46px;
-            text-align: center;
-            -webkit-text-stroke: 0.3px #3C6C47;
-        }
-    }
-
-    p.introduction {
-        display: inline-block;
-        width: 1003px;
-        height: 56px;
-        line-height: 56px;
-        background-color: #fafafa;
-        position: absolute;
-        bottom: 0;
-        right: 0;
-        display: flex;
-
-        >strong:first-child {
-            margin-left: 40px;
-            display: inline-block;
-            vertical-align: middle;
-            width: 32px;
-            height: 36px;
-            padding: 3px 7px;
-            border: 0.5px solid #129502;
-            font-family: Microsoft YaHei, Microsoft YaHei;
-            font-weight: bold;
-            font-size: 14px;
-            color: #139602;
-            line-height: 18px;
-            text-align: center;
-            font-style: normal;
-            text-transform: none;
-
-        }
-
-        div {
-            overflow: hidden;
-            text-overflow: ellipsis;
-            white-space: nowrap;
-
-            >span {
-                width: 64px;
-                height: 21px;
-                font-family: Microsoft YaHei, Microsoft YaHei;
-                font-weight: 400;
-                font-size: 16px;
-                color: #000000;
-                line-height: 21px;
-                text-align: left;
-                font-style: normal;
-                text-transform: none;
-                margin-top: 17px;
-                padding: 0 24px;
-                border-right: 1px solid #ccc;
-
-                a {
-                    color: #000;
-                }
-            }
-
-            >span:hover a {
-                color: #139602;
-            }
-
-            >span:last-child {
-                border: none;
-            }
-        }
-
-    }
-}
-
 #newsList {
     width: 100%;
     overflow: hidden;
 }
 
+
+
 // 资讯列表
 .newsList {
     width: 100%;
@@ -200,7 +83,7 @@
 
                 li {
                     width: 100%;
-                    padding: 15px 0;
+                    padding: 10px 0;
 
                     a {
                         display: flex;
@@ -234,7 +117,7 @@
                 }
 
                 >li:hover .listTitle {
-                    color: #dd7d18;
+                    color: #255590;
                 }
 
                 // >li:nth-child(1)::after,
@@ -273,7 +156,7 @@
 
                 // 鼠标移入后字体颜色
                 .el-pagination::v-deep :hover {
-                    color: #dd7d18;
+                    color: #255590;
                 }
 
                 .el-pagination.is-background::v-deep .btn-next,
@@ -294,7 +177,7 @@
                 .el-pagination.is-background::v-deep .btn-next.is-active,
                 .el-pagination.is-background::v-deep .btn-prev.is-active,
                 .el-pagination.is-background::v-deep .el-pager li.is-active {
-                    background-color: #dd7d18;
+                    background-color: #255590;
                     color: #fff;
                 }
 
@@ -304,7 +187,7 @@
 
         .innerRight {
             width: 270px;
-            margin-top: 60px;
+            margin-top: 50px;
         }
     }
 }
@@ -343,7 +226,7 @@
                 text-align: left;
                 font-style: normal;
                 text-transform: none;
-                border-bottom: 1px solid #dd7d18;
+                border-bottom: 1px solid #255590;
 
             }
 
@@ -462,11 +345,11 @@
                 }
 
                 >li:hover {
-                    color: #dd7d18;
+                    color: #255590;
                 }
 
                 >li:hover em {
-                    background-color: #dd7d18;
+                    background-color: #255590;
                 }
             }
         }
@@ -481,7 +364,7 @@
             width: 380px;
             height: 40px;
             line-height: 40px;
-            border-top: 1px solid #dd7d18;
+            border-top: 1px solid #255590;
             border-bottom: 1px solid #e7e7e7;
 
             >h4 {
@@ -544,5 +427,4 @@
         }
 
     }
-}
-
+}

+ 2 - 2
assets/css/public/footer.less

@@ -97,7 +97,7 @@
     overflow: hidden;
     text-align: center;
     font-size: 0px;
-    background: #dd7d18;
+    background: #255590;
 
     a {
         color: #fff;
@@ -118,7 +118,7 @@
     box-sizing: border-box;
     padding: 0 19px;
     font-weight: bold;
-    border-left: solid 1px #CB7113;
+    border-left: solid 1px #1F497B;
     margin: 18px 0;
 }
 

+ 150 - 171
assets/css/public/nav.less

@@ -1,230 +1,209 @@
-// 导航部分
 .partOne {
     width: 100%;
-    height: 60px;
-    line-height: 60px;
-    background-color: #dd7d18;
-    font-size: 20px;
-    font-family: PingFang SC-Semibold;
+    height: 70px;
+    background-color: #489d97;
 
     .inner {
         width: 1200px;
-        height: 60px;
         margin: 0 auto;
-        position: relative;
+    }
 
-        .home {
-            width: 120px;
-            height: 68px;
-            line-height: 68px;
-            font-family: Microsoft YaHei, Microsoft YaHei;
-            font-weight: bold;
-            font-size: 20px;
-            letter-spacing: 2px;
-            text-align: center;
-            color: #fff;
-            background-color: #d2600f;
-            position: absolute;
-            top: -8px;
-            left: 0;
-            z-index: 100;
+    .navigationOne {
+        width: 1200px;
+        color: #333;
+        display: flex;
+        flex-wrap: wrap;
 
-            em {
-                display: inline-block;
-                width: 0;
-                height: 0;
-                border-top: 4px solid transparent;
-                border-left: 8px solid transparent;
-                border-bottom: 4px solid #803804;
-                border-right: 8px solid #803804;
-                position: absolute;
-                top: 0px;
-                left: -16px;
+        li:first-child {
+            color: #fff59d;
+            padding: 0 50px;
+        }
 
-            }
+        li {
+            font-family: PingFang SC;
+            height: 70px;
+            line-height: 70px;
+            font-weight: bold;
+            font-size: 16px;
+            text-align: left;
+            font-style: normal;
+            text-transform: none;
+            margin: 0 12px;
+            text-align: center;
+            width: 76px;
 
             a {
                 color: #fff;
+                display: block;
             }
+        }
 
+        >li:hover a {
+            color: #fff59d;
         }
 
-        .partOneTitle {
-            width: 1050px;
-            height: 60px;
-            position: absolute;
-            top: 0;
-            left: 150px;
-            display: flex;
-            justify-content: space-between;
+        // .active {
+        //     color: #ABE874;
+        // }
+    }
+}
 
-            .titleList1 {
-                font-family: Microsoft YaHei, Microsoft YaHei;
-                font-weight: bold;
-                font-size: 16px;
-                color: #FFFFFF;
+.partTwo {
+    width: 100%;
+    height: 50px;
+    background-color: #fff6e2;
 
-                a {
-                    color: #fff;
-                }
+    .inner {
+        width: 1200px;
+        margin: 0 auto;
+
+        .partTwoNav {
+            width: 1200px;
+            color: #333;
+            display: flex;
+            flex-wrap: wrap;
+            // justify-content: space-between;
+
+            .navList:first-child {
+                padding-left: 40px;
+                // padding-right: 20px;
             }
 
-            .titleList111 {
-                font-family: Microsoft YaHei, Microsoft YaHei;
+            .navList {
+                font-family: PingFang SC;
+                height: 50px;
+                line-height: 50px;
                 font-weight: 400;
                 font-size: 16px;
-                color: #FFFFFF;
+                color: #333333;
+                margin: 0 20px;
 
                 a {
-                    color: #fff;
+                    color: #333;
+                    display: block;
                 }
             }
 
-            .titleList111:hover {
-                font-weight: 600;
+
+            .navList:last-child {
+                margin-right: 0;
+                // padding-right: 20px;
+            }
+
+            .navList:hover a {
+                color: #489d97;
             }
         }
     }
-
-
-
 }
 
-.partTwo {
+.partThree {
+    margin-top: 15px;
     width: 100%;
-    height: 133px;
-    box-shadow: 0px 7px 14px 0px rgba(0, 0, 0, 0.1);
-    // margin-bottom: 50px;
+    height: 50px;
+    background-color: #f5f5f5;
 
     .inner {
         width: 1200px;
-        height: 133px;
-        line-height: 60px;
-        padding-top: 5px;
+        margin: 0 auto;
         display: flex;
-        justify-content: space-between;
 
-        .navleft {
-            width: 100px;
-            text-align: center;
-            font-family: Microsoft YaHei, Microsoft YaHei;
-            font-weight: bold;
+        .title {
+            font-family: PingFang SC;
+            font-weight: 400;
             font-size: 16px;
-            color: #333333;
+            color: #666666;
+            line-height: 50px;
+            padding-left: 35px;
         }
-
-        .navlist {
-            width: 1000px;
-            height: 65px;
-            font-family: Microsoft YaHei, Microsoft YaHei;
+        .title1 {
+            font-family: PingFang SC;
             font-weight: 400;
             font-size: 16px;
-            color: #333333;
-                        /*display: flex;
-            justify-content: space-between;
-            flex-wrap: wrap;*/
-
-            .navListItem {
-            float: left;
-                width: 97px;
-                text-align: center;
-                font-family: Microsoft YaHei, Microsoft YaHei;
-                font-weight: 400;
-                font-size: 16px;
-                color: #333333;
-
-                a {
-                    color: #333333;
-                }
-            }
-
-            .navListItem:hover {
-                a {
-                    color: #e39543;
-                }
-            }
+            color: #666666;
+            line-height: 50px;
+            padding-left: 35px;
         }
 
-        .navright {
+        .searchRole {
+            width: 440px;
+            height: 40px;
+            line-height: 35px;
+            background-color: #fff;
+            border: 1px solid #ededed;
+            margin-top: 5px;
             margin-left: 20px;
-            width: 115px;
-            height: 75px;
-            font-size: 16px;
-            margin-top: 25px;
-            background: url(/_nuxt/public/index/nav_bg.png) no-repeat;
-
-            .nav111 {
-                width: 98px;
-                height: 30px;
-                line-height: 44px;
-                text-align: center;
-                font-family: Microsoft YaHei, Microsoft YaHei;
-                font-weight: bold;
-                font-size: 16px;
+            border-radius: 25px;
+            padding-left: 20px;
+            box-sizing: border-box;
 
-                a {
-                    font-weight: bold;
-                    background: linear-gradient(to bottom, #FFF6B1 0%, #F5BC38 100%);
-                    -webkit-background-clip: text;
-                    color: transparent;
-                }
+            i {
+                display: inline-block;
+                width: 1px;
+                height: 12px;
+                background-color: #d9d9d9;
+                margin: 0 10px;
+                vertical-align: middle;
+            }
 
+            em {
+                display: inline-block;
+                width: 29px;
+                height: 29px;
+                margin: 4px;
+                margin-right: 25px;
+                vertical-align: -13px;
+                background: url('@/public/image/Iconly/Broken/Search.png');
+                cursor: pointer;
+            }
+            .search{
+                margin-left: 20px;
+            }
+            .search1{
+                margin-left: 160px;
             }
-        }
-    }
-}
 
-//小导航
-.littleNav {
-    width: 100%;
-    height: 88px;
-    margin-top: 30px;
+            >.ipt {
+                width: 245px;
+                font-family: PingFang SC, PingFang SC;
+                font-weight: 600;
+                font-size: 14px;
+                color: #666;
+                line-height: 16px;
+                padding-left: 22px;
+                box-sizing: border-box;
+                text-align: left;
+                font-style: normal;
+                text-transform: none;
+                border: none;
+                outline: none;
+            }
 
-    .inner {
-        width: 1200px;
-        height: 88px;
-        line-height: 88px;
-        margin: 0 auto;
-        display: flex;
-        border: 1px solid #D3D5D8;
-        background-color: #fafafa;
-
-        img {
-            width: 138px;
-            height: 38px;
-            margin-top: 22px;
-            margin-left: 25px;
-        }
+            >.ipt::placeholder {
+                color: #cccccc;
+            }
 
-        .leftPart {
-            margin-left: 40px;
-            margin-right: 10px;
-        }
 
-        .leftPart,
-        .rightPart {
-            width: 470px;
-            height: 78px;
-            margin-top: 5px;
-            display: flex;
-            align-items: center;
-            justify-content: space-between;
-            padding: 0 10px;
-            border-bottom: 3px solid #A01C0E;
 
-            .navList {
-                a {
-                    font-family: Microsoft YaHei, Microsoft YaHei;
-                    font-weight: bold;
-                    font-size: 16px;
-                    color: #333333;
-                    line-height: 19px;
-                }
+            span {
+                color: #999999;
             }
 
-            .navList:hover a {
-                color: #A01C0E;
+            .el-select--large::v-deep .el-select__wrapper {
+                font-size: 14px;
+                gap: 6px;
+                line-height: 24px;
+                min-height: 35px;
+                padding: 0;
+                border: none;
+                box-shadow: none;
+            }
+
+            .el-select__placeholder::v-deep.is-transparent {
+                color: #999999;
+                font-weight: 600;
             }
         }
+
     }
 }

+ 34 - 14
assets/css/search.less

@@ -89,7 +89,7 @@
 
         .innerLeft,
         .innerRight {
-            border-top: 1px solid #D9D9D9;
+            border-top: 1px solid #CCCCCC;
             clear: both;
             float: none;
         }
@@ -103,11 +103,12 @@
 
                 >li {
                     width: 100%;
-                    height: 56px;
+                    padding: 10px 0;
+                    // height: 56px;
+                    // line-height: 56px;
                     white-space: nowrap;
                     overflow: hidden;
                     text-overflow: ellipsis;
-                    line-height: 56px;
 
 
                     >a {
@@ -123,17 +124,24 @@
                         text-transform: none;
                     }
 
+                    .time {
+                        font-family: Microsoft YaHei, Microsoft YaHei;
+                        font-weight: 400;
+                        font-size: 18px;
+                        color: #333333;
+                    }
+
                 }
 
                 >li:hover>a {
-                    color: #DD7D18;
+                    color: #255590;
                 }
 
                 >li:nth-child(1)::after,
                 >li:nth-child(2)::after {
                     content: "热";
                     margin-left: 13px;
-                    background: #DD7D18;
+                    background: #ffb70f;
                     color: #fff;
                     font-size: 14px;
                     padding: 0px 2px;
@@ -141,6 +149,17 @@
 
                 >li:nth-child(5n) {
                     border-bottom: 1px solid #D9D9D9;
+                    padding-bottom: 30px;
+                }
+
+                >li:nth-child(5n+1) {
+                    span {
+                        font-weight: bold;
+                    }
+
+                    font-weight: bold;
+                    padding-top: 30px;
+
                 }
             }
 
@@ -154,7 +173,7 @@
 
                 // 鼠标移入后字体颜色
                 .el-pagination::v-deep :hover {
-                    color: #DD7D18;
+                    color: #255590;
                 }
 
                 .el-pagination.is-background::v-deep .btn-next,
@@ -175,7 +194,7 @@
                 .el-pagination.is-background::v-deep .btn-next.is-active,
                 .el-pagination.is-background::v-deep .btn-prev.is-active,
                 .el-pagination.is-background::v-deep .el-pager li.is-active {
-                    background-color: #DD7D18;
+                    background-color: #255590;
                     color: #fff;
                 }
 
@@ -226,7 +245,7 @@
                 text-align: left;
                 font-style: normal;
                 text-transform: none;
-                border-bottom: 1px solid #DD7D18;
+                border-bottom: 1px solid #255590;
 
             }
 
@@ -345,11 +364,11 @@
                 }
 
                 >li:hover {
-                    color: #139602;
+                    color: #255590;
                 }
 
                 >li:hover em {
-                    background-color: #139602;
+                    background-color: #255590;
                 }
             }
         }
@@ -364,7 +383,7 @@
             width: 380px;
             height: 40px;
             line-height: 40px;
-            border-top: 1px solid #139602;
+            border-top: 1px solid #255590;
             border-bottom: 1px solid #e7e7e7;
 
             >h4 {
@@ -437,12 +456,11 @@
 .search {
     width: 100%;
     height: 100px;
-    // background-color: #f5f5f5;
+    margin-top: 40px;
 
     .inner {
         width: 1200px;
         height: 100px;
-        // line-height: 100px;
         padding-top: 10px;
         text-align: center;
 
@@ -461,7 +479,9 @@
         button {
             width: 120px;
             height: 48px;
-            background-color: #DD7D18;
+            background-color: #255590;
+            font-size: 16px;
+            letter-spacing: 4px;
             color: #fff;
             border: none;
             border-radius: 0;

+ 30 - 57
components/detail/HotNews.vue

@@ -29,32 +29,6 @@
                 </NuxtLink>
             </li>
         </ul>
-        <div class="hotList_photo_text">
-            <div class="hotList_photo_text1"  v-for="(item, index) in hotNewsListdata3" :key="index">
-                <NuxtLink
-                    :href="getLinkPathDetail(item)"
-                    :title="item.title"
-                    :key="item.id"
-                    :target="item.islink == 1 ? '_blank' : '_self'"
-                >
-                    <img :src="item.imgurl" :alt="item.title">
-                    <span class="hotlist_text">{{ item.title }}</span>
-                </NuxtLink>
-            </div>
-        </div>
-        <ul class="message">
-            <li class="messageList" v-for="(item, index) in hotNewsListdata4" :key="index">
-                <em></em>
-                <NuxtLink
-                    :href="getLinkPathDetail(item)"
-                    :title="item.title"
-                    :key="item.id"
-                    :target="item.islink == 1 ? '_blank' : '_self'"
-                >
-                    {{ item.title }}
-                </NuxtLink>
-            </li>
-        </ul>
     </div>
 </template>
 
@@ -71,53 +45,40 @@ const getLinkPathDetail = (item) => {
 
 const hotNewsListdata1 = ref([])
 const hotNewsListdata2 = ref([])
-const hotNewsListdata3 = ref([])
-const hotNewsListdata4 = ref([])
 
 async function getPageData() {
     const mkdata =  await requestDataPromise('/web/getWebsiteArticlett', {
         method: 'GET',
         query: {
-            'pageSize':8,
+            'pageSize':6,
             'level': 4,
             'id': 0,
         },
     });
     if(mkdata.code == 200){
         hotNewsListdata1.value = mkdata.data.slice(0, 2);
-        hotNewsListdata2.value = mkdata.data.slice(2, 4);
-        hotNewsListdata3.value = mkdata.data.slice(4, 6);
-        hotNewsListdata4.value = mkdata.data.slice(6, 8);
+        hotNewsListdata2.value = mkdata.data.slice(2, 6);
     }else{
-        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
         console.log("错误位置:获取最新资讯")
-        console.log("后端错误反馈:",mkdata.message)
-        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
     }
 }
 getPageData();
 </script>
 
 <style lang="less" scoped>
-//标题
-.hotList {
-    width: 270px;
-    border-top: 2px solid #dd7d18;
+.title {
+    width: 100px;
+    font-family: Microsoft YaHei, Microsoft YaHei;
+    font-weight: bold;
+    font-size: 22px;
+    color: #255590;
+    margin: 10px 0 20px;
+    position: relative;
+    border-left: #255590 5px solid;
+    padding-left: 15px;
 
-    .title {
-        width: 100px;
-        height: 40px;
-        line-height: 40px;
-        font-family: Microsoft YaHei, Microsoft YaHei;
-        font-weight: bold;
-        margin: 10px 0;
-        font-size: 20px;
-        color: #333333;
-        position: relative;
-    }
 }
-//今日热点
-// 图文
+
 .hotList_photo_text {
     width: 270px;
 
@@ -134,7 +95,7 @@ getPageData();
         .hotlist_text {
             float: left;
             width: 126px;
-            height: 74px;
+            height: 72px;
             display: -webkit-box;
             -webkit-box-orient: vertical;
             -webkit-line-clamp: 3;
@@ -147,15 +108,18 @@ getPageData();
             padding-top: 3px;
         }
     }
+
     .hotList_photo_text1:first-child {
         margin-bottom: 20px;
     }
-    .hotList_photo_text1:hover{
-        .hotlist_text{
-            color: #dd7d18;
+
+    .hotList_photo_text1:hover {
+        .hotlist_text {
+            color: #255590;
         }
     }
 }
+
 // 文字
 .message {
     width: 270px;
@@ -178,10 +142,19 @@ getPageData();
         a {
             color: #333333;
         }
+        em{
+            display: inline-block;
+            width: 8px;
+            height: 8px;
+            background-color: #D9D9D9 ;
+            border-radius: 50%;
+            vertical-align: middle;
+            margin-right: 10px;
+        }
     }
 
     >li:hover>a {
-        color: #dd7d18;
+        color: #255590;
     }
 
 }

+ 10 - 29
components/detail/HotNews2.vue

@@ -1,22 +1,4 @@
 <template>
-    <!-- <div class="title">
-        <h4>
-            热点精选
-        </h4>
-    </div> -->
-    <!-- 列表 -->
-    <!-- <ul class="rightList">
-        <li v-for="item in hotNewsList">
-            <NuxtLink :to="item.linkurl" v-show="item.islink == 1" :title="item.title">
-                <img class="hotNewsImg" :src="item.imgurl">
-                <p>{{ item.title }}</p>
-            </NuxtLink>
-            <NuxtLink :to="`/${item.pinyin}/${item.id}.html`" v-if="item.islink == 0" :title="item.title">
-                <img class="hotNewsImg" :src="item.imgurl">
-                <p>{{ item.title }}</p>
-            </NuxtLink>
-        </li>
-    </ul> -->
     <div class="hotNews">
         <div class="hotNews_title">
             热点精选
@@ -73,19 +55,18 @@ getPageData();
 <style lang="less" scoped>
 .hotNews {
     width: 270px;
-    border-top: 2px solid #dd7d18;
-    margin-top: 40px;
+    margin-top: 20px;
 
     //标题
     .hotNews_title {
         width: 100px;
-        height: 40px;
-        line-height: 40px;
         font-family: Microsoft YaHei, Microsoft YaHei;
         font-weight: bold;
-        margin: 20px 0 15px;
+        margin: 30px 0 10px;
         font-size: 20px;
-        color: #333333;
+        color: #255590;
+        border-left: #255590 5px solid;
+        padding-left: 17px;
     }
 
     //新闻列表
@@ -118,27 +99,27 @@ getPageData();
 
         .hotNews_messageList:nth-child(1) {
             .number {
-                color: #dd7d18;
+                color: #255590;
             }
         }
 
         .hotNews_messageList:nth-child(2) {
             .number {
-                color: #dd7d18;
+                color: #255590;
             }
         }
 
         .hotNews_messageList:nth-child(3) {
             .number {
-                color: #dd7d18;
+                color: #255590;
             }
         }
 
         .hotNews_messageList:hover {
-            color: #dd7d18;
+            color: #255590;
 
             a {
-                color: #dd7d18;
+                color: #255590;
             }
         }
     }

+ 28 - 87
components/home/ListSecondaryHeading.vue

@@ -1,14 +1,10 @@
 <template>
-    <div class="index_main">
-        <nav class="index_nav clearfix">
-            <span class="index_nav_a_one" href="javascript:(void)">{{ name }}</span>
-            <span v-for="(item,index) in nav" :class="['index_nav_a', { 'index_nav_a_only': targetSegment === item.aLIas_pinyin }]">
-                <span v-if="index<=7">
-                    <NuxtLink :to="{ path: `/${targetRoute}/${item.aLIas_pinyin}/list-1.html`}">{{ item.alias }}</NuxtLink>
-                </span>
-            </span>
-        </nav>
-    </div>
+    <nav class="channel_nav back100">
+        <a class="channel_nav_a" href="javascript:(void)" title="name">{{ name }}</a>
+        <span v-for="(item,index) in nav">
+            <NuxtLink :to="{ path: `/${targetRoute}/${item.aLIas_pinyin}/list-1.html`}" class="channel_nav_a" v-if="index<=7">{{ item.alias }}</NuxtLink>
+        </span>
+    </nav>
 </template>
 
 <script setup>
@@ -30,89 +26,34 @@ const targetRoute = segments[1];
 </script>
 
 <style lang="less" scoped>
-.index_main {
+.channel_nav {
+    height: 60px;
     width: 1200px;
     margin: 0 auto;
-}
-.index_nav {
-    width: 1200px;
-    margin: 0 auto;
-    margin-top: 20px;
-    border-bottom: solid 1px #D9D9D9;
-    height: 88px;
-    .index_nav_a_one {
+    background-image: url(@/public/img/5.png);
+    margin-top: 40px;
+
+    .channel_nav_a {
         float: left;
-        color: #333;
-        font-size: 16px;
-        margin: 0px 30px;
-        height: 88px;
-        line-height: 88px;
-        font-weight: bold;
-        border-bottom: solid 3px #fff;
-        box-sizing: border-box;
-        position: relative;
-        overflow: hidden;
-        height: 56px;
-        line-height: 56px;
-        color: #fff;
-        font-size: 18px;
+        height: 60px;
+        line-height: 60px;
+        color: #255590;
+        font-size: 20px;
+        margin: 0px 19px;
         font-weight: bold;
-        width: 153px;
-        margin: 14px 30px 0px 0px;
-        text-indent: 46px;
-        background: url(@/public/img/3.png) no-repeat left top;
-        background-size: 100% 100%;
     }
-    .index_nav_a {
-        float: left;
-        color: #333;
-        font-size: 16px;
-        margin: 0px 30px;
-        height: 88px;
-        line-height: 88px;
-        font-weight: bold;
-        border-bottom: solid 3px #fff;
-        box-sizing: border-box;
-        position: relative;
-        a {
-            color:#333333
-        }
-        &:hover{
-            border-bottom: solid 3px #D2600F;
-        }
-    }
-    .index_nav_a a:hover{
-        color: #D2600F;
-        // border-bottom: solid 3px #D2600F;
-    }
-    .index_nav_a_only {
-        border-bottom: solid 3px #D2600F;
-    }
-    .index_nav_a::after {
-        content: '';
-        display: block;
-        position: absolute;
-        width: 2px;
-        height: 12px;
-        background: #DBDBDB;
-        right: -38px;
-        top: 39px;
-    }
-    .index_nav_a:nth-last-of-type(1) {
-        overflow: hidden;
-    }
-    a.index_nav_a:nth-of-type(1) {
-        overflow: hidden;
-        height: 56px;
-        line-height: 56px;
+
+    >.channel_nav_a:nth-of-type(1) {
         color: #fff;
-        font-size: 18px;
-        font-weight: bold;
-        width: 153px;
-        margin: 14px 30px 0px 0px;
-        text-indent: 46px;
-        background: url(@/public/img/3.png) no-repeat left top;
-        background-size: 100% 100%;
+        width: 230px;
+        padding-left: 50px;
+        box-sizing: border-box;
+        margin-left:0;
+        margin-right: 0;
     }
 }
+.back100 {
+    background-size: 100% 100%;
+    background-repeat: no-repeat;
+}
 </style>

+ 28 - 88
components/home/SecondaryHeading.vue

@@ -1,14 +1,10 @@
 <template>
-    <div class="index_main">
-        <nav class="index_nav clearfix">
-            <span class="index_nav_a_one" href="javascript:(void)" title="">{{ title }}</span>
-            <span v-for="(item,index) in titleData" :class="['index_nav_a', { 'index_nav_a_only': targetSegment === item.aLIas_pinyin }]">
-                <span v-if="index<=7">
-                    <NuxtLink :to="{ path: `/${item.aLIas_pinyin}/list-1.html`}" >{{ item.alias }}</NuxtLink>
-                </span>
-            </span>
-        </nav>
-    </div>
+    <nav class="channel_nav back100">
+        <a class="channel_nav_a" href="javascript:(void)" title="title">{{ title }}</a>
+        <span v-for="(item,index) in titleData">
+            <NuxtLink :to="{ path: `/${item.aLIas_pinyin}/list-1.html`}" class="channel_nav_a" v-if="index<=7">{{ item.alias }}</NuxtLink>
+        </span>
+    </nav>
 </template>
 
 <script setup>
@@ -50,90 +46,34 @@ getPageData();
 </script>
 
 <style lang="less" scoped>
-.index_main {
+.channel_nav {
+    height: 60px;
     width: 1200px;
     margin: 0 auto;
-    margin-bottom: 40px;
-}
-.index_nav {
-    width: 1200px;
-    margin: 0 auto;
-    margin-top: 20px;
-    border-bottom: solid 1px #D9D9D9;
-    height: 88px;
-    .index_nav_a_one {
+    background-image: url(@/public/img/5.png);
+    margin-top: 40px;
+
+    .channel_nav_a {
         float: left;
-        color: #333;
-        font-size: 16px;
-        margin: 0px 30px;
-        height: 88px;
-        line-height: 88px;
-        font-weight: bold;
-        border-bottom: solid 3px #fff;
-        box-sizing: border-box;
-        position: relative;
-        overflow: hidden;
-        height: 56px;
-        line-height: 56px;
-        color: #fff;
-        font-size: 18px;
+        height: 60px;
+        line-height: 60px;
+        color: #255590;
+        font-size: 20px;
+        margin: 0px 19px;
         font-weight: bold;
-        width: 153px;
-        margin: 14px 30px 0px 0px;
-        text-indent: 46px;
-        background: url(@/public/img/3.png) no-repeat left top;
-        background-size: 100% 100%;
     }
-    .index_nav_a {
-        float: left;
-        color: #333;
-        font-size: 16px;
-        margin: 0px 30px;
-        height: 88px;
-        line-height: 88px;
-        font-weight: bold;
-        border-bottom: solid 3px #fff;
-        box-sizing: border-box;
-        position: relative;
-        a {
-            color:#333333
-        }
-        &:hover{
-            border-bottom: solid 3px #D2600F;
-        }
-    }
-    .index_nav_a a:hover{
-        color: #D2600F;
-        // border-bottom: solid 3px #D2600F;
-    }
-    .index_nav_a_only {
-        border-bottom: solid 3px #D2600F;
-    }
-    .index_nav_a::after {
-        content: '';
-        display: block;
-        position: absolute;
-        width: 2px;
-        height: 12px;
-        background: #DBDBDB;
-        right: -38px;
-        top: 39px;
-    }
-    .index_nav_a:nth-last-of-type(1) {
-        overflow: hidden;
-    }
-    a.index_nav_a:nth-of-type(1) {
-        overflow: hidden;
-        height: 56px;
-        line-height: 56px;
+
+    >.channel_nav_a:nth-of-type(1) {
         color: #fff;
-        font-size: 18px;
-        font-weight: bold;
-        width: 153px;
-        margin: 14px 30px 0px 0px;
-        text-indent: 46px;
-        background: url(@/public/img/3.png) no-repeat left top;
-        background-size: 100% 100%;
+        width: 230px;
+        padding-left: 50px;
+        box-sizing: border-box;
+        margin-left:0;
+        margin-right: 0;
     }
 }
+.back100 {
+    background-size: 100% 100%;
+    background-repeat: no-repeat;
+}
 </style>

+ 554 - 0
components/home/Surveyvote.vue

@@ -0,0 +1,554 @@
+<template>
+    <!-- 投票 start ---------------------------------------->
+    <div class="index_3_box_vote">
+        <div class="voteTitle">投票区</div>
+        <div class="inquire">
+            <p v-if="voteList.length>0">{{voteList[0].survey_name}}</p>
+            <div class="radioBox">
+            <!--投票选项-->
+            <div v-if="!isDisabled">
+                <div class="radio" v-if="isRadio">
+                    <el-radio-group v-model="radio1" @change="handleRadioChange">
+                        <el-radio v-for="item in voteList" :key="item.id" :value="item.id" size="large">
+                            <span v-if="item.is_other == 0">{{item.choice_name}}</span>
+                            <span v-else>其他</span>
+                        </el-radio>
+                    </el-radio-group>
+                    <el-input
+                        v-if="showUserChoice"
+                        v-model="userChoice"
+                        :rows="2"
+                        type="textarea"
+                        resize="none"
+                        placeholder="请输入.."
+                    />
+                </div>
+                <div class="checkInputBox" v-else>
+                    <el-checkbox-group v-model="check1" @change="handleCheckboxChange">
+                        <span v-for="item in voteList" :key="item.id">
+                            <span v-if="item.is_other == 0">
+                                <el-checkbox size="large" :label="item.choice_name" :value="item.id"/>
+                            </span>
+                            <span v-else>
+                                <el-checkbox size="large" label="其他" :value="item.id"/>
+                            </span>
+                        </span>
+                    </el-checkbox-group>
+                    <el-input
+                        v-if="showUserChoice"
+                        v-model="userChoice"
+                        :rows="2"
+                        type="textarea"
+                        resize="none"
+                        placeholder="请输入.."
+                    />
+                </div>
+            </div>
+            <!--投票结果-->
+            <div class="inquireData" v-else>
+                <div v-for="item in websiteSurveyData.data" :key="item.id">
+                    <div class="inquireDataItem active" v-if="item.status == 1">
+                        <div class="inquireDataItemTitle">
+                            <span v-if="item.choice_name == ''">其他</span>
+                            <span v-else>{{item.choice_name}}</span>
+                        </div>
+                        <div class="inquireDataItemNum">{{item.results}}票</div>
+                    </div>
+                    <div class="inquireDataItem" v-else>
+                        <div class="inquireDataItemTitle">
+                            <span v-if="item.choice_name == ''">其他</span>
+                            <span v-else>{{item.choice_name}}</span>
+                        </div>
+                        <div class="inquireDataItemNum">{{item.results}}票</div>
+                    </div>
+                </div>
+            </div>
+            </div>
+            <div class="btn">
+                <button class="voting" @click="addWebsiteSurvey" :disabled="isDisabled" v-if="!isDisabled">投票</button>
+            </div>
+        </div>
+    </div>
+    <!-- 投票 end ---------------------------------------->
+</template>
+
+<script setup>
+//1.页面依赖 start ---------------------------------------->
+const route = useRoute();
+const articleId = parseInt(route.params.id); //获得该页面的id
+
+import { ElRadio, ElRadioGroup,ElCheckbox,ElCheckboxGroup,ElMessage,ElInput } from 'element-plus'
+//1.页面依赖 start ---------------------------------------->
+
+//2.投票 start---------------------------------------->
+const radio1 = ref(''); //单选
+const check1 = ref([]); //多选
+const isDisabled = ref(false);//是否禁用提交按钮
+const isRadio = ref(true);//是否渲染单选
+
+const userSurId = ref('');//投票属于哪一篇文章
+const userChoice = ref('');//用于判断用户选择了其他选项以后,输入的值
+const userIsChoice = ref('');//用于判断其他选项目前是什么值
+const showUserChoice = ref(false);//是否显示其他输入框
+const websiteSurveyData = ref([]);//投票结果
+
+//7.2获得投票列表
+let voteList = ref([]);
+async function getVoteList(){
+    const voteData = await requestDataPromise('/web/getWebsiteSurvey',{method:'GET',query:{'art_id':articleId}});
+    console.log(778899)
+    console.log(voteData)
+    if(voteData.code == 200){
+        voteList.value = voteData.data;
+        console.log(voteList.value)
+        //判断显示单选还是多选
+        //survey_type 0是单选 1是多选
+        if(voteData.data[0].survey_type == 0){
+            isRadio.value = true;
+            console.log("1111")
+        }else{
+            isRadio.value = false;
+        }
+        //把最后一个的值拿出来 用于判断用户是否选择了其他
+        for(let item of voteData.data){
+            //如果含有其他
+            if(item.is_other==1){
+                userIsChoice.value = item.id;
+            }
+        }
+        //用户投票属于哪一篇文章
+        userSurId.value = voteData.data[0].sur_id;
+
+    }else{
+        console.log("投票错误:",voteData.message)
+    }
+}
+getVoteList()
+
+//7.3当用户选择了选项,判断是否展示其他输入框
+const handleRadioChange = (value) => {
+    if(value == userIsChoice.value){
+        showUserChoice.value = true;
+    }else{
+        showUserChoice.value = false;
+    }
+}
+
+const handleCheckboxChange = (value) => {
+    if (value.includes(userIsChoice.value)) {
+        showUserChoice.value = true;
+    } else {
+        showUserChoice.value = false;
+    }
+}
+
+//7.4发起投票
+async function addWebsiteSurvey(){
+    //判断当前是单选还是多选
+    console.log(isRadio.value)
+    if(isRadio.value){
+        console.log("用户单选!")
+        if(radio1.value!=''){
+            //先判断一下是否使用了其他选项
+            if(showUserChoice.value){
+                if(userChoice.value!=''){
+                    //文章id
+                    // console.log(userSurId.value)
+                    // 用户输入的值
+                    // console.log(userChoice.value)
+                    //如果使用了其他,其他的选项需要增加进去
+                    const ChoiceData = await requestHome('/web/addWebsiteSurveyOption',{
+                        method:'GET',
+                        query:{
+                            'sur_id':userSurId.value,//投票的新闻id
+                            'choice_name':userChoice.value,//投票的选项id
+                        }
+                    });
+                    if(ChoiceData.code == 200){
+                        //提交完其他选项以后,再正式发起投票
+                        const mkData = await requestHome('/web/addWebsiteSurveyVote',{
+                            method:'GET',
+                            query:{
+                                'sur_id':userSurId.value,
+                                'choice_id':ChoiceData.data
+                            }
+                        });
+                        if(mkData.code == 200){
+                            ElMessage.success('投票成功!')
+                            //把投票结果显示到页面上 禁用投票按钮
+                            isDisabled.value = true;
+                            websiteSurveyData.value = mkData.data;
+                            //遍历一下,把用户选中的那个设置status为1
+                            let data = mkData.data;
+                            //遍历一下,把用户选中的那个设置status为1
+                            for(let item of data.data){
+                                for(let i of data.choice){
+                                    if(item.id == i){
+                                        console.log(item.id)
+                                        item.status = 1;
+                                    }
+                                }
+                            }
+                            websiteSurveyData.value = data;
+                        }else{
+                            ElMessage.error(mkData.message)
+                        }
+                    }else{
+                        ElMessage.error('其他投票失败!')
+                    }
+                }else{
+                    ElMessage.error('请输入选项内容!')
+                }
+            }else{
+                //如果没选择其他,直接提交选择的内容
+                const mkData = await requestHome('/web/addWebsiteSurveyVote',{
+                    method:'GET',
+                    query:{
+                        'sur_id':userSurId.value,
+                        'choice_id':radio1.value
+                    }
+                });
+                if(mkData.code == 200){
+                    ElMessage.success('投票成功!')
+                    //把投票结果显示到页面上 禁用投票按钮
+                    isDisabled.value = true;
+                    let data = mkData.data;
+                    //遍历一下,把用户选中的那个设置status为1
+                    for(let item of data.data){
+                        for(let i of data.choice){
+                            if(item.id == i){
+                                item.status = 1;
+                            }
+                        }
+                    }
+                    websiteSurveyData.value = data;
+                }else{
+                    ElMessage.error('投票失败!')
+                }
+            }
+        }else{
+            ElMessage.error('请选择一个选项')
+        }
+    }else{
+        console.log("多选!")
+        //多选
+        if(check1.value!=[]){
+             //先判断一下是否使用了其他选项
+            if(showUserChoice.value){
+                if(userChoice.value!=''){
+                    //判断用户是否只选择了一个其他
+                    if(check1.value.length == 1){
+                        const ChoiceData = await requestDataPromise('/web/addWebsiteSurveyOption',{
+                            method:'GET',
+                            query:{
+                                'sur_id':userSurId.value,//投票的新闻id
+                                'choice_name':userChoice.value,//用户输入的其他选项文字
+                            }
+                        });
+                        if(ChoiceData.code == 200){
+                            //提交完其他选项以后,再正式发起投票
+                            const mkData = await requestDataPromise('/web/addWebsiteSurveyVote',{
+                                method:'GET',
+                                query:{
+                                    'sur_id':userSurId.value,
+                                    'choice_id':ChoiceData.data
+                                }
+                            });
+                            if(mkData.code == 200){
+                                ElMessage.success('投票成功!')
+                                //把投票结果显示到页面上 禁用投票按钮
+                                isDisabled.value = true;
+                                websiteSurveyData.value = mkData.data;
+                                //遍历一下,把用户选中的那个设置status为1
+                                let data = mkData.data;
+                                //遍历一下,把用户选中的那个设置status为1
+                                for(let item of data.data){
+                                    for(let i of data.choice){
+                                        if(item.id == i){
+                                            console.log(item.id)
+                                            item.status = 1;
+                                        }
+                                    }
+                                }
+                                websiteSurveyData.value = data;
+                            }else{
+                                ElMessage.error(mkData.message)
+                            }
+                        }else{
+                            ElMessage.error('其他投票失败!')
+                        }
+
+                    }else{
+                        //用户选择了除了其他以外,还包括别的选项
+                        const ChoiceData = await requestDataPromise('/web/addWebsiteSurveyOption',{
+                            method:'GET',
+                            query:{
+                                'sur_id':userSurId.value,//投票的新闻id
+                                'choice_name':userChoice.value,//用户输入的其他选项文字
+                            }
+                        });
+                        if(ChoiceData.code == 200){
+                            let data = check1.value;
+                            //找到多选的数组,把其他默认值给替换掉
+                            for (let i = 0; i < data.length; i++) {
+                                if (data[i] == userIsChoice.value) {
+                                    data[i] = ChoiceData.data;
+                                }
+                            }
+                            let jsonArray = JSON.stringify(data);
+                            //提交完其他选项以后,再正式发起投票
+                            const mkData = await requestDataPromise('/web/addWebsiteSurveyVote',{
+                                method:'GET',
+                                query:{
+                                    'sur_id':userSurId.value,
+                                    'choice_id':jsonArray
+                                }
+                            });
+                            
+                            if(mkData.code == 200){
+                                ElMessage.success('投票成功!')
+                                //把投票结果显示到页面上 禁用投票按钮
+                                isDisabled.value = true;
+                                websiteSurveyData.value = mkData.data;
+                                //遍历一下,把用户选中的那个设置status为1
+                                let data = mkData.data;
+                                //遍历一下,把用户选中的那个设置status为1
+                                for(let item of data.data){
+                                    for(let i of data.choice){
+                                        if(item.id == i){
+                                            //console.log(item.id)
+                                            item.status = 1;
+                                        }
+                                    }
+                                }
+                                websiteSurveyData.value = data;
+                            }else{
+                                ElMessage.error(mkData.message)
+                            }
+                        }else{
+                            ElMessage.error('其他投票失败!')
+                        }
+
+                    }
+                }else{
+                    ElMessage.error('请输入选项内容!')
+                }
+            }else{
+                let jsonArray = JSON.stringify(check1.value);
+                //如果没选择其他,直接提交选择的内容
+                const mkData = await requestDataPromise('/web/addWebsiteSurveyVote',{
+                    method:'GET',
+                    query:{
+                        'sur_id':userSurId.value,
+                        'choice_id':jsonArray
+                    }
+                });
+                if(mkData.code == 200){
+                    ElMessage.success('投票成功!')
+                    //把投票结果显示到页面上 禁用投票按钮
+                    isDisabled.value = true;
+                    websiteSurveyData.value = mkData.data;
+                    //遍历一下,把用户选中的那个设置status为1
+                    let data = mkData.data;
+                    //遍历一下,把用户选中的那个设置status为1
+                    for(let item of data.data){
+                        for(let i of data.choice){
+                            if(item.id == i){
+                                console.log(item.id)
+                                item.status = 1;
+                            }
+                        }
+                    }
+                    websiteSurveyData.value = data;
+                }else{
+                    ElMessage.error('投票失败!')
+                }
+            }
+        }else{
+            ElMessage.error('请选择一个选项')
+        }
+    }
+}
+//2.投票 end---------------------------------------->
+</script>
+
+<style lang="less" scoped>
+//投票
+.index_3_box_vote{
+    .voteTitle {
+        font-size: 20px;
+        height: 40px;
+        line-height: 40px;
+        color: #333333;
+        padding-left: 20px;
+        width: 100%;
+        border-bottom: 1px solid #E7E7E7;
+        border-top: 1px solid #255590;
+        box-sizing: border-box;
+    }
+    width:100%;
+    box-sizing:border-box;
+    border:solid 1px #FBFBFB;
+    background: #FBFBFB;
+    .inquire {
+        height: 394px;
+        margin-top: 20px;
+        border-radius: 6px 6px 6px 6px;
+        padding: 4px 40px 4px 6px;
+        box-sizing: border-box;
+        p {
+            font-weight: bold;
+            height: 69px;
+            font-family: PingFang SC, PingFang SC;
+            font-size:20px;
+            color: #333333;
+            line-height: 21px;
+            text-align: left;
+            font-style: normal;
+            text-transform: none;
+            padding: 12px 20px 0 32px;
+        }
+        .radioBox {
+            height: 250px;
+            padding-left: 30px;
+            overflow-y: auto;
+            box-sizing: border-box;
+            padding-bottom: 20px;
+        }
+        .radio {
+            /deep/.el-radio {
+                --el-radio-input-border-color-hover: #27881a;
+            }
+            /deep/.el-radio-group {
+                align-items: center;
+                display: inline-flex;
+                flex-wrap: wrap;
+                font-size: 0;
+                //padding-left: 35px;
+            }
+            /deep/.el-radio.el-radio--large {
+                width: 100%;
+                height: 29px;
+                margin-bottom: 15px;
+            }
+            /deep/.el-radio.el-radio--large .el-radio__label {
+                font-family: PingFang SC, PingFang SC;
+                font-weight: 400;
+                font-size: 16px;
+                color: #333333;
+                white-space: nowrap;
+                overflow: hidden;
+                text-overflow: ellipsis;
+                width: 300px;
+            }
+            /deep/.el-radio.el-radio--large .el-radio__inner {
+                height: 16px;
+                width: 16px;
+            }
+            /deep/.el-radio__input.is-checked+.el-radio__label {
+                color: #27881a;
+            }
+            /deep/.el-radio__input.is-checked .el-radio__inner {
+                background: #33b023;
+                border-color: #27881a;
+            }
+        }
+
+        .checkInputBox {
+            /deep/.el-checkbox {
+                --el-radio-input-border-color-hover: #27881a;
+            }
+            /deep/.el-checkbox-group {
+                align-items: center;
+                display: inline-flex;
+                flex-wrap: wrap;
+                font-size: 0;
+                //padding-left: 35px;
+            }
+            /deep/.el-checkbox.el-checkbox--large {
+                width: 330px;
+                height: 29px;
+                margin-bottom: 15px;
+            }
+            /deep/.el-checkbox.el-checkbox--large .el-checkbox__label {
+                font-family: PingFang SC, PingFang SC;
+                font-weight: 400;
+                font-size: 16px;
+                color: #333333;
+                white-space: nowrap;
+                overflow: hidden;
+                text-overflow: ellipsis;
+                width: 300px;
+            }
+            /deep/.el-checkbox.el-checkbox--large .el-checkbox__inner {
+                height: 16px;
+                width: 16px;
+            }
+            /deep/.el-checkbox__input.is-checked+.el-checkbox__label {
+                color: #27881a;
+            }
+            /deep/.el-checkbox__input.is-checked .el-checkbox__inner {
+                background: #33b023;
+                border-color: #27881a;
+            }
+        }
+
+        .btn {
+            padding-left: 30px;
+            button {
+                width: 78px;
+                height: 37px;
+                line-height: 37px;
+                border-radius: 6px;
+                border: none;
+                font-family: PingFang SC, PingFang SC;
+                font-weight: 400;
+                font-size: 16px;
+                color: #999999;
+            }
+            .voting {
+                background-color: #255590;
+                color: #fff;
+                margin-right: 44px;
+                cursor: pointer;
+            }
+            .look {
+                cursor: pointer;
+            }
+        }
+    }
+    .inquireData {
+        .inquireDataItem {
+            width: 100%;
+            height: 38px;
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            background: #F3F3F3;
+            border: 1px solid #D2D2D2;
+            margin-bottom: 10px;
+            border-radius: 6px;
+            padding: 0 15px;
+            box-sizing: border-box;
+            color: #999999;
+            .inquireDataItemTitle {
+                width: 290px;
+                height: 38px;
+                font-size: 16px;
+                line-height: 38px;
+                white-space: nowrap;
+                overflow: hidden;
+                text-overflow: ellipsis;
+            }
+            .inquireDataItemNum {
+                font-size: 16px;
+            }
+        }
+        .active {
+            color:#49A769;
+            background: #dff7e8;
+            border: 1px solid #49A769;
+        }
+    }
+}
+</style>

+ 154 - 0
components/home/SwiperSnsc.vue

@@ -0,0 +1,154 @@
+<template>
+      <div class="swiper">
+            <el-carousel :interval="5000" height="405px" indicator-class="custom-indicator" @change="handleIndicatorChange">
+                  <el-carousel-item v-for="item in imagelist" :key="item">
+                        <NuxtLink 
+                              :to="`/${item.pinyin}/${item.id}.html`"
+                              :title="item.title">
+                              <img :src="item.imgurl" :alt="item.title">
+                              <span class="swiper_dot1 dot1">{{ item.title }}</span>
+                        </NuxtLink>
+                  </el-carousel-item>
+            </el-carousel>
+      </div>
+
+</template>
+
+<script setup>
+import { ElCarousel, ElCarouselItem } from 'element-plus'
+//获取焦点图数据 start---------------------------------------->
+const imagelist = ref("")
+async function getModelData1() {
+    const mkdata =  await requestDataPromise('/web/getWebsiteArticlett', {
+        method: 'GET',
+        query: {
+            'pageSize': 5,
+            'level': 2,
+            'placeid': 0,
+            'id':''
+        },
+    });
+    if(mkdata.code == 200){
+      imagelist.value = mkdata.data;
+    }else{
+      console.log("错误位置错误:获取首页轮播图",mkdata.message)
+    }
+}
+getModelData1()
+
+let currentIndex = ref(0)
+let handleIndicatorChange = (val) => {
+    currentIndex.value = val
+}
+//获取焦点图数据 end---------------------------------------->
+</script>
+
+<style lang="less" scoped>
+.dot1 {
+      display: block;
+      word-break: keep-all;
+      white-space: nowrap;
+      overflow: hidden;
+      text-overflow: ellipsis;
+}
+.swiper {
+      width: 100%;
+      height: 405px;
+      position: relative;
+      img {
+            width: 100%;
+            height: 405px;
+      }
+      .swiper_dot1 {
+            display: block;
+            width: 100%;
+            line-height: 60px;
+            height: 60px;
+            color: #fff;
+            font-size: 24px;
+            text-indent: 20px;
+            position: absolute;
+            bottom: 0;
+            left: 0;
+            z-index: 10;
+            box-sizing: border-box;
+            padding-right: 244px;
+            background:linear-gradient(0deg,rgba(0,0,0,0.5) 33%,rgba(0,0,0,0) 100%);
+      }
+}
+
+.el-carousel {
+      /deep/.el-carousel__arrow i {
+            font-size: 30px !important;
+      }
+
+      /deep/.el-carousel__arrow--left {
+            left: 16px;
+            width: 35px;
+            height: 57px;
+            color: #616358;
+            background: #dcdedc;
+            position: absolute;
+            left: 0px;
+            border: none;
+            border-radius: 0;
+      }
+
+      /deep/.el-carousel__arrow--right {
+            right: 16px;
+            width: 35px;
+            height: 57px;
+            color: #616358;
+            background: #dcdedc;
+            position: absolute;
+            right: 0;
+            border: none;
+            border-radius: 0;
+      }
+
+      /deep/ .el-carousel__indicators {
+            // 指示器
+            left: unset;
+            transform: unset;
+            right: 10px;
+            bottom: 11px;
+      }
+
+      /deep/ .el-carousel__button {
+            // 指示器按钮
+            width: 10px;
+            height: 10px;
+            border: none;
+            border-radius: 5px;
+            background: #fff;
+            opacity: 1;
+      }
+
+      /deep/ .is-active .el-carousel__button {
+            // 指示器激活按钮
+            background: #255590;
+            width: 25px;
+            opacity: 1;
+
+      }
+
+      /deep/ .el-carousel__container {
+            height: 100%;
+      }
+}
+
+.custom-indicator button {
+      background-color: #fff;
+
+      opacity: 1;
+      width: 8px;
+      height: 8px;
+}
+
+.custom-indicator button.is-active {
+      background-color: #DD7D18;
+      width: 58px;
+
+      opacity: 1;
+}
+</style>

+ 147 - 0
components/home/SwiperSnscChannel.vue

@@ -0,0 +1,147 @@
+<template>
+    <div class="swiper">
+        <el-carousel :interval="5000" height="405px" indicator-class="custom-indicator">
+            <el-carousel-item v-for="(item, index) in data" :key="item">
+                <NuxtLink class="index_2_left_ul_li_a_text"
+                    :href="getLinkPathDetail(item)"
+                    :title="item.title"
+                    :key="item.id"
+                    :target="item.islink == 1 ? '_blank' : '_self'"
+                >
+                    <img :src="item.imgurl" title="" alt="item.title">
+                    <span class="swiper_dot1 dot1">
+                        {{index}}{{item.title}}
+                    </span>
+                </NuxtLink>
+
+            </el-carousel-item>
+        </el-carousel>
+    </div>
+
+</template>
+
+<script setup>
+import { ElCarousel, ElCarouselItem } from 'element-plus'
+
+const props = defineProps({
+    data: {
+        type: Array
+    }
+})
+
+</script>
+
+<style lang="less" scoped>
+.dot1 {
+    display: block;
+    word-break: keep-all;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.swiper {
+    width: 100%;
+    height: 405px;
+    position: relative;
+
+    img {
+        width: 100%;
+        height: 405px;
+    }
+
+    .swiper_dot1 {
+        display: block;
+        width: 100%;
+        line-height: 60px;
+        height: 60px;
+        color: #fff;
+        font-size: 24px;
+        text-indent: 20px;
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        z-index: 10;
+        box-sizing: border-box;
+        padding-right: 244px;
+
+        background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 33%, rgba(0, 0, 0, 0) 100%);
+    }
+
+}
+
+.el-carousel {
+    /deep/.el-carousel__arrow i {
+        font-size: 30px !important;
+    }
+
+    /deep/.el-carousel__arrow--left {
+        left: 16px;
+        width: 35px;
+        height: 57px;
+        color: #616358;
+        background: #dcdedc;
+        position: absolute;
+        left: 0px;
+        border: none;
+        border-radius: 0;
+    }
+
+    /deep/.el-carousel__arrow--right {
+        right: 16px;
+        width: 35px;
+        height: 57px;
+        color: #616358;
+        background: #dcdedc;
+        position: absolute;
+        right: 0;
+        border: none;
+        border-radius: 0;
+    }
+
+    /deep/ .el-carousel__indicators {
+        // 指示器
+        left: unset;
+        transform: unset;
+        right: 10px;
+        bottom: 11px;
+    }
+
+    /deep/ .el-carousel__button {
+        // 指示器按钮
+        width: 10px;
+        height: 10px;
+        border: none;
+        border-radius: 5px;
+        background: #fff;
+        opacity: 1;
+    }
+
+    /deep/ .is-active .el-carousel__button {
+        // 指示器激活按钮
+        background: #255590;
+        width: 25px;
+        opacity: 1;
+
+    }
+
+    /deep/ .el-carousel__container {
+        height: 100%;
+    }
+}
+
+.custom-indicator button {
+    background-color: #fff;
+
+    opacity: 1;
+    width: 8px;
+    height: 8px;
+}
+
+.custom-indicator button.is-active {
+    background-color: #DD7D18;
+    width: 58px;
+
+    opacity: 1;
+}
+</style>

+ 29 - 0
components/home/ad/Adindexmain.vue

@@ -0,0 +1,29 @@
+<template>
+    <div class="banner_2">
+        <a class="banner_2_a" href="http://nzgxw.org.cn/" v-if="imgurl.image_url == null" target="_blank" :title="imgurl.introduce">
+            <img class="banner_2_img" :src="imgurl.thumb" :alt="imgurl.introduce" :id="imgurl.ad_tag" data-tag="imgurl.ad_tag">
+        </a>
+        <a class="banner_2_a" :href="imgurl.image_url" v-else :title="imgurl.introduce">
+            <img class="banner_2_img" :src="imgurl.image_src" :alt="imgurl.introduce" :id="imgurl.ad_tag" data-tag="imgurl.ad_tag">
+        </a>
+    </div>
+</template>
+
+<script setup>
+//import {onMounted } from 'vue';
+const props = defineProps({
+    imgurl: Array
+});
+//广告移动至客户端获取,并且按照标识单独获取
+</script>
+
+<style lang="less" scoped>
+    .banner_2 {
+        width: 350px;
+        height: 139px;
+        .banner_2_img {
+            width: 350px;
+            height: 139px;
+        }
+    }
+</style>

+ 4 - 1
components/home/pageHead.vue

@@ -5,7 +5,10 @@
         <nav class="headerNav">
             <div class="inner">
                 <div class="left">
-                    <span>中农兴业网团旗下网站 · 农业百强网站(科教文化类十强)</span> 
+                    <span>中农兴业网团</span>
+                    <span>
+                        农业百强网站(科技文化类10强)
+                    </span>
                 </div>
                 <div class="right">
                     <div class="menu">

+ 136 - 45
components/home/pageNavigation.vue

@@ -1,17 +1,10 @@
 <template>
-    <!-- 导航 -->
     <div class="navigate">
         <div class="partOne">
             <div class="inner">
-                <div class="home">
-                    <em></em>
-                    <NuxtLink :to="'/'">首页</NuxtLink> 
-                </div>
-                <ul class="partOneTitle">
-                    <li class="titleList1">
-                        深度服务
-                    </li>
-                    <li class="titleList111" v-for="(item, index) in navigation1" :key="index">
+                <ul class="navigationOne">
+                    <li>首页</li>
+                    <li v-for="(item, index) in navigation1" :key="index">
                         <NuxtLink :href="getLinkPath(item)" :title="item.alias" :target="item.is_url == 1 ? '_blank' : '_self'">
                             {{ item.alias }}
                         </NuxtLink>
@@ -21,25 +14,105 @@
         </div>
         <div class="partTwo">
             <div class="inner">
-                <div class="navleft">
-                    <div> 互动版块 </div>
-                    <div> 推荐版块 </div>
-                </div>
-                <ul class="navlist">
-                    <li class="navListItem" v-for="(item,index) in navigation2" :key="index">
+                <ul class="partTwoNav">
+                    <li class="navList">农民工资讯</li>
+                    <li class="navList" v-for="(item, index) in navigation2" :key="index">
                         <NuxtLink :href="getLinkPath(item)" :title="item.alias" :target="item.is_url == 1 ? '_blank' : '_self'">
                             {{ item.alias }}
                         </NuxtLink>
                     </li>
                 </ul>
-                <div class="navright">
-                    <div class="nav111" v-for="(item, index) in 2" :key="index">
-                        <a href="#">信访投诉</a>
-                    </div>
+            </div>
+        </div>
+        <div class="partThree">
+            <div class="inner">
+                <div class="title">
+                    搜索职位 : 
+                </div>
+                <div class="searchRole">
+                    <el-select v-model="depValue" placeholder="招聘" size="large" style="width: 75px">
+                        <el-option v-for="(item, index) in department" :key="index" :label="item.name"
+                            :value="item.id" />
+                    </el-select>
+                    <i></i>
+                    <input type="text" v-model="typeValue" placeholder="输入关键词" class="ipt">
+                    <em class="search" @click="searchDepartment"></em>
+                </div>
+                <div class="searchRole">
+                    <el-select v-model="province" placeholder="选择职业" size="large" style="width: 80px">
+                        <el-option v-for="item in provinceList" :key="item.id" :label="item.name"
+                            @click="change(item.id)" :value="item.id" />
+                    </el-select>
+                    <i></i>
+                    <el-select v-model="city" placeholder="选择地区" no-data-text="请先选择省份" size="large" style="width: 80px">
+                        <el-option v-for="(item, index) in cityList" :key="item.id" :label="item.name"
+                            @click="change1(item.id)" :value="item.id" />
+                    </el-select>
+                    <i></i>
+                    <em class="search1" @click="goToPrimary"></em>
+                </div>
+                <div class="title1">
+                    更多搜索条件>>
                 </div>
             </div>
         </div>
     </div>
+    <!-- <div class="navigate">
+        <div class="partOne">
+            <div class="inner">
+                <div class="navLeft">
+                    <div class="navIndex">
+                        <NuxtLink :to="'/'" title="首页">首页</NuxtLink> 
+                    </div>
+                    <div class="navClass">
+                        <div>
+                            商城类
+                        </div>
+                        <div>
+                            资讯类
+                        </div>
+                    </div>
+                </div>
+                <ul class="navigationOne">
+                    <li v-for="(item, index) in navigation1" :key="index">
+                        <NuxtLink :href="getLinkPath(item)" :title="item.alias" v-if="index<=23" :target="item.is_url == 1 ? '_blank' : '_self'">
+                            {{ item.alias }}
+                        </NuxtLink>
+                    </li>
+                </ul>
+            </div>
+        </div>
+        <div class="deepServer">
+            <div class="inner">
+                <div class="deepServer_left">
+                    <div class="serverTitle">
+                        深度服务
+                    </div>
+                    <ul class="contentList">
+                        <li v-for="(item, index) in navigation2" :key="index">
+                            <NuxtLink :href="getLinkPath(item)" :title="item.alias" :target="item.is_url == 1 ? '_blank' : '_self'">
+                                {{ item.alias }}
+                            </NuxtLink>
+                        </li>
+                    </ul>
+                </div>
+                <div class="deepServer_right">
+                    <div class="serverTitle_right">
+                        站内搜索:
+                    </div>
+                    <div class="searchRole">
+                        <el-select v-model="selectValue" placeholder="请选择.." size="large" style="width: 100px">
+                            <el-option v-for="(item, index) in selectOptions" :key="index" :label="item.name"
+                                :value="item.id" />
+                        </el-select>
+                        <i></i>
+                        <input type="text" v-model="inputValue" placeholder="输入关键词" class="ipt">
+                        <em @click="goToPrimary"></em>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div> -->
 </template>
 
 <script setup>
@@ -48,8 +121,6 @@
 const navigation1 = ref([]);
 //两行的导航菜单 20个 
 const navigation2 = ref([]);
-//边边上的导航菜单 2个
-const navigation3 = ref([]);
 //获取导航菜单1 
 async function getNavigation1() {
     const mkdata = await requestDataPromise('/web/getWebsiteModelCategory', {
@@ -69,40 +140,60 @@ async function getNavigation2() {
         method: 'GET',
         query: {
             'pid': 0,
-            'num': 20,
+            'num': 10,
             'placeid': 11
         },
     });
     navigation2.value = mkdata.data;
 }
 getNavigation2();
-//获取导航菜单3
-async function getNavigation3() {
-    const mkdata = await requestDataPromise('/web/getWebsiteModelCategory', {
-        method: 'GET',
-        query: {
-            'pid': 0,
-            'num': 2,
-            'placeid': 31
-        },
-    });
-    navigation3.value = mkdata.data;
-}
-getNavigation3();
 //1.获取导航菜单 end ---------------------------------------->
 
-//格式化跳转路径
-const getLinkPath = (item) => {
-    if(item.is_url==1){
-        return `${item.web_url}`;
-    }else if(item.children_count == 0){
-        //return `/newsList/${item.category_id}?page=1`;
-        return `/${item.aLIas_pinyin}/list-1.html`;
+//2.搜索 start ---------------------------------------->
+import { ElSelect, ElOption, ElMessage } from 'element-plus'
+let selectOptions = [ //下拉框选项
+    {name:'资讯',id:1},
+    {name:'商城',id:2},
+    {name:'招工招聘',id:3},
+]
+const selectValue = ref("") //搜索左侧下拉选择的值
+const inputValue = ref("") //搜索右侧框输入的值
+
+//2.1跳转到搜索页面
+let goToPrimary = async () => {
+    if (inputValue.value==""||selectValue.value=="") {
+        ElMessage.error('搜索项不能为空!')
     }else{
-        //return `/primaryNavigation/${item.aLIas_pinyin}/`;
-        return `/${item.aLIas_pinyin}/index.html`;
+        if(selectValue.value == 2||selectValue.value == 3){
+            ElMessage.error('所选分类暂不支持检索!')
+        }else{
+            const route = `/search/search?type=${selectValue.value}&keyword=${inputValue.value}`;
+            window.location.href = route;
+        }
     }
 }
+
+onMounted(async ()  => {
+    //2.2 获得搜索选项
+    //暂时为固定
+    //商城、招工招聘 都不能跳转
+    // try {
+    //     const { $webUrl, $CwebUrl } = useNuxtApp();
+    //     const response = await fetch($webUrl + '/web/selectWebsiteDepartment', {
+    //         headers: {
+    //             'Content-Type': 'application/json',
+    //             'Userurl': $CwebUrl,
+    //             'Origin': $CwebUrl
+    //         }
+    //     });
+    //     const result = await response.json();
+    //     department.value = result.data;
+    // } catch (error) {
+    //     console.error('获取部门数据失败:', error);
+    // }
+})
+//2.搜索 end ---------------------------------------->
+
 </script>
 
 <style lang="less" scoped>

+ 77 - 51
components/home/pageNavigation1.vue

@@ -1,42 +1,59 @@
 <template>
-    <!-- 导航 -->
     <div class="navigate">
         <div class="partOne">
             <div class="inner">
-                <div class="home">
-                    <em></em>
-                    <NuxtLink :to="'/'">首页</NuxtLink> 
+                <div class="navLeft">
+                    <div class="navIndex">
+                        <NuxtLink :to="'/'" title="首页">首页</NuxtLink> 
+                    </div>
+                    <div class="navClass">
+                        <div>
+                            商城类
+                        </div>
+                        <div>
+                            资讯类
+                        </div>
+                    </div>
                 </div>
-                <ul class="partOneTitle">
-                    <li class="titleList1">
-                        <NuxtLink to="/">深度服务</NuxtLink>
-                    </li>
-                    <li class="titleList111" v-for="(item, index) in navigation1" :key="index">
-                        <NuxtLink :href="getLinkPath(item)" :title="item.alias" :target="item.is_url == 1 ? '_blank' : '_self'">
+                <ul class="navigationOne">
+                    <li v-for="(item, index) in navigation1" :key="index">
+                        <NuxtLink :href="getLinkPath(item)" :title="item.alias" v-if="index<=23" :target="item.is_url == 1 ? '_blank' : '_self'">
                             {{ item.alias }}
                         </NuxtLink>
                     </li>
                 </ul>
             </div>
         </div>
-        <div class="partTwo">
+
+        <!-- 深度服务 -->
+        <div class="deepServer">
             <div class="inner">
-                <div class="navleft">
-                    <div> 互动版块 </div>
-                    <div> 推荐版块 </div>
-                </div>
-                <ul class="navlist">
-                    <li class="navListItem" v-for="(item,index) in navigation2" :key="index">
-                        <NuxtLink :href="getLinkPath(item)" :title="item.alias" :target="item.is_url == 1 ? '_blank' : '_self'">
-                            {{ item.alias }}
-                        </NuxtLink>
-                    </li>
-                </ul>
-                <div class="navright">
-                    <div class="nav111" v-for="(item, index) in 2" :key="index">
-                        <a href="#">信访投诉</a>
+                <div class="deepServer_left">
+                    <div class="serverTitle">
+                        深度服务
                     </div>
+                    <ul class="contentList">
+                        <li v-for="(item, index) in navigation2" :key="index">
+                            <NuxtLink :href="getLinkPath(item)" :title="item.alias" :target="item.is_url == 1 ? '_blank' : '_self'">
+                                {{ item.alias }}
+                            </NuxtLink>
+                        </li>
+                    </ul>
                 </div>
+                <!-- <div class="deepServer_right">
+                    <div class="serverTitle_right">
+                        站内搜索:
+                    </div>
+                    <div class="searchRole">
+                        <el-select v-model="depValue" placeholder="资讯" size="large" style="width: 100px">
+                            <el-option v-for="(item, index) in department" :key="index" :label="item.name"
+                                :value="item.id" />
+                        </el-select>
+                        <i></i>
+                        <input type="text" v-model="typeValue" placeholder="输入关键词" class="ipt">
+                        <em @click="goToPrimary"></em>
+                    </div>
+                </div> -->
             </div>
         </div>
     </div>
@@ -48,15 +65,13 @@
 const navigation1 = ref([]);
 //两行的导航菜单 20个 
 const navigation2 = ref([]);
-//边边上的导航菜单 2个
-const navigation3 = ref([]);
 //获取导航菜单1 
 async function getNavigation1() {
     const mkdata = await requestDataPromise('/web/getWebsiteModelCategory', {
         method: 'GET',
         query: {
             'pid': 0,
-            'num': 10,
+            'num': 20,
             'placeid': 1
         },
     });
@@ -69,40 +84,51 @@ async function getNavigation2() {
         method: 'GET',
         query: {
             'pid': 0,
-            'num': 20,
+            'num': 3,
             'placeid': 11
         },
     });
     navigation2.value = mkdata.data;
 }
 getNavigation2();
-//获取导航菜单3
-async function getNavigation3() {
-    const mkdata = await requestDataPromise('/web/getWebsiteModelCategory', {
-        method: 'GET',
-        query: {
-            'pid': 0,
-            'num': 2,
-            'placeid': 31
-        },
-    });
-    navigation3.value = mkdata.data;
-}
-getNavigation3();
 //1.获取导航菜单 end ---------------------------------------->
 
-//格式化跳转路径
-const getLinkPath = (item) => {
-    if(item.is_url==1){
-        return `${item.web_url}`;
-    }else if(item.children_count == 0){
-        //return `/newsList/${item.category_id}?page=1`;
-        return `/${item.aLIas_pinyin}/list-1.html`;
+//2.搜索 start ---------------------------------------->
+import { ElSelect, ElOption, ElMessage } from 'element-plus'
+let department = ref("") //下拉框选项
+const depValue = ref("") //搜索左侧下拉选择的值
+const typeValue = ref("") //搜索右侧框输入的值
+
+//2.1跳转到搜索页面
+let goToPrimary = async () => {
+    
+    if (depValue.value == "" || typeValue.value=="") {
+        ElMessage.error('搜索项不能为空!')
     }else{
-        //return `/primaryNavigation/${item.aLIas_pinyin}/`;
-        return `/${item.aLIas_pinyin}/index.html`;
+        const route = `/search/search?depValue=${depValue.value}&typeValue=${typeValue.value}`;
+        window.location.href = route;
     }
 }
+
+onMounted(async ()  => {
+    //2.2 获得搜索选项
+    try {
+        const { $webUrl, $CwebUrl } = useNuxtApp();
+        const response = await fetch($webUrl + '/web/selectWebsiteDepartment', {
+            headers: {
+                'Content-Type': 'application/json',
+                'Userurl': $CwebUrl,
+                'Origin': $CwebUrl
+            }
+        });
+        const result = await response.json();
+        department.value = result.data;
+    } catch (error) {
+        console.error('获取部门数据失败:', error);
+    }
+})
+//2.搜索 end ---------------------------------------->
+
 </script>
 
 <style lang="less" scoped>

+ 0 - 0
middleware/auth.js → middleware/auth.ts


+ 2 - 367
pages/[dir]/[dir]/[id].vue

@@ -2,7 +2,7 @@
     <!-- 页面头部 -->
     <HomePageHead></HomePageHead>
     <!-- 导航栏 -->
-    <HomePageNavigation1></HomePageNavigation1>
+    <HomePageNavigation></HomePageNavigation>
     <!-- 列表页广告一 -->
     <HomeTopTen :imgurl="adImg1" v-if="adImg1"></HomeTopTen>
     <!-- 资讯列表 -->
@@ -53,77 +53,7 @@
                     <p>[免责声明]本文来源于网络转载,仅供学习交流使用,不构成商业目的。 版权归原作者所有,如涉及作品内容,版权和其他问题,请在30日与本网联系,我们将第一时间处理。</p>
                 </div>
                 <div v-if="articleChoice">
-                    <!-- 投票 start ---------------------------------------->
-                    <div class="index_3_box_vote" v-if="articleChoice">
-                        <div class="voteTitle">投票区</div>
-                        <div class="inquire">
-                            <p v-if="voteList.length>0">{{voteList[0].survey_name}}</p>
-                            <div class="radioBox">
-                            <!--投票选项-->
-                            <div v-if="!isDisabled">
-                                <div class="radio" v-if="isRadio">
-                                    <el-radio-group v-model="radio1" @change="handleRadioChange">
-                                        <el-radio v-for="item in voteList" :key="item.id" :value="item.id" size="large">
-                                            <span v-if="item.is_other == 0">{{item.choice_name}}</span>
-                                            <span v-else>其他</span>
-                                        </el-radio>
-                                    </el-radio-group>
-                                    <el-input
-                                        v-if="showUserChoice"
-                                        v-model="userChoice"
-                                        :rows="2"
-                                        type="textarea"
-                                        resize="none"
-                                        placeholder="请输入.."
-                                    />
-                                </div>
-                                <div class="checkInputBox" v-else>
-                                    <el-checkbox-group v-model="check1" @change="handleCheckboxChange">
-                                        <span v-for="item in voteList" :key="item.id">
-                                            <span v-if="item.is_other == 0">
-                                                <el-checkbox size="large" :label="item.choice_name" :value="item.id"/>
-                                            </span>
-                                            <span v-else>
-                                                <el-checkbox size="large" label="其他" :value="item.id"/>
-                                            </span>
-                                        </span>
-                                    </el-checkbox-group>
-                                    <el-input
-                                        v-if="showUserChoice"
-                                        v-model="userChoice"
-                                        :rows="2"
-                                        type="textarea"
-                                        resize="none"
-                                        placeholder="请输入.."
-                                    />
-                                </div>
-                            </div>
-                            <!--投票结果-->
-                            <div class="inquireData" v-else>
-                                <div v-for="item in websiteSurveyData.data" :key="item.id">
-                                    <div class="inquireDataItem active" v-if="item.status == 1">
-                                        <div class="inquireDataItemTitle">
-                                            <span v-if="item.choice_name == ''">其他</span>
-                                            <span v-else>{{item.choice_name}}</span>
-                                        </div>
-                                        <div class="inquireDataItemNum">{{item.results}}票</div>
-                                    </div>
-                                    <div class="inquireDataItem" v-else>
-                                        <div class="inquireDataItemTitle">
-                                            <span v-if="item.choice_name == ''">其他</span>
-                                            <span v-else>{{item.choice_name}}</span>
-                                        </div>
-                                        <div class="inquireDataItemNum">{{item.results}}票</div>
-                                    </div>
-                                </div>
-                            </div>
-                            </div>
-                            <div class="btn">
-                                <button class="voting" @click="addWebsiteSurvey" :disabled="isDisabled" v-if="!isDisabled">投票</button>
-                            </div>
-                        </div>
-                    </div>
-                    <!-- 投票 end ---------------------------------------->
+                    <HomeSurveyvote></HomeSurveyvote>
                 </div>
             </div>
             <div class="innerRight">
@@ -225,7 +155,6 @@ async function getPageData() {
         if(mkdata.data.is_survey==1){
             console.log("本篇文章含有投票!")
             articleChoice.value = true;
-            getVoteList();
         }
         //获取内容
         newsDetail.value = mkdata.data;
@@ -295,300 +224,6 @@ if(setData.code==200){
 }
 //6.设置seo信息 end---------------------------------------->
 
-//7.投票 start---------------------------------------->
-const radio1 = ref(''); //单选
-const check1 = ref([]); //多选
-const isDisabled = ref(false);//是否禁用提交按钮
-const isRadio = ref(true);//是否渲染单选
-
-const userSurId = ref('');//投票属于哪一篇文章
-const userChoice = ref('');//用于判断用户选择了其他选项以后,输入的值
-const userIsChoice = ref('');//用于判断其他选项目前是什么值
-const showUserChoice = ref(false);//是否显示其他输入框
-const websiteSurveyData = ref([]);//投票结果
-
-//7.1获得投票列表
-let voteList = ref([]);
-async function getVoteList(){
-    const voteData = await requestHome('/web/getWebsiteSurvey',{method:'GET',query:{'art_id':articleId}});
-    console.log(778899)
-    console.log(voteData)
-    if(voteData.code == 200){
-        voteList.value = voteData.data;
-        console.log(voteList.value)
-        //判断显示单选还是多选
-        //survey_type 0是单选 1是多选
-        if(voteData.data[0].survey_type == 0){
-            isRadio.value = true;
-            console.log("1111")
-        }else{
-            isRadio.value = false;
-        }
-        //把最后一个的值拿出来 用于判断用户是否选择了其他
-        for(let item of voteData.data){
-            //如果含有其他
-            if(item.is_other==1){
-                userIsChoice.value = item.id;
-            }
-        }
-        //用户投票属于哪一篇文章
-        userSurId.value = voteData.data[0].sur_id;
-
-    }else{
-        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
-        console.log("错误位置:首页投票")
-        console.log("后端错误反馈:",voteData.message)
-        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->") 
-    }
-}
-
-
-//7.2当用户选择了选项,判断是否展示其他输入框
-const handleRadioChange = (value) => {
-    if(value == userIsChoice.value){
-        showUserChoice.value = true;
-    }else{
-        showUserChoice.value = false;
-    }
-}
-
-const handleCheckboxChange = (value) => {
-    if (value.includes(userIsChoice.value)) {
-        showUserChoice.value = true;
-    } else {
-        showUserChoice.value = false;
-    }
-}
-
-//7.3发起投票
-async function addWebsiteSurvey(){
-    //判断当前是单选还是多选
-    console.log(isRadio.value)
-    if(isRadio.value){
-        console.log("用户单选!")
-        if(radio1.value!=''){
-            //先判断一下是否使用了其他选项
-            if(showUserChoice.value){
-                if(userChoice.value!=''){
-                    //文章id
-                    // console.log(userSurId.value)
-                    // 用户输入的值
-                    // console.log(userChoice.value)
-                    //如果使用了其他,其他的选项需要增加进去
-                    const ChoiceData = await requestHome('/web/addWebsiteSurveyOption',{
-                        method:'GET',
-                        query:{
-                            'sur_id':userSurId.value,//投票的新闻id
-                            'choice_name':userChoice.value,//投票的选项id
-                        }
-                    });
-                    if(ChoiceData.code == 200){
-                        //提交完其他选项以后,再正式发起投票
-                        const mkData = await requestHome('/web/addWebsiteSurveyVote',{
-                            method:'GET',
-                            query:{
-                                'sur_id':userSurId.value,
-                                'choice_id':ChoiceData.data
-                            }
-                        });
-                        if(mkData.code == 200){
-                            ElMessage.success('投票成功!')
-                            //把投票结果显示到页面上 禁用投票按钮
-                            isDisabled.value = true;
-                            websiteSurveyData.value = mkData.data;
-                            //遍历一下,把用户选中的那个设置status为1
-                            let data = mkData.data;
-                            //遍历一下,把用户选中的那个设置status为1
-                            for(let item of data.data){
-                                for(let i of data.choice){
-                                    if(item.id == i){
-                                        console.log(item.id)
-                                        item.status = 1;
-                                    }
-                                }
-                            }
-                            websiteSurveyData.value = data;
-                        }else{
-                            ElMessage.error(mkData.message)
-                        }
-                    }else{
-                        ElMessage.error('其他投票失败!')
-                    }
-                }else{
-                    ElMessage.error('请输入选项内容!')
-                }
-            }else{
-                //如果没选择其他,直接提交选择的内容
-                const mkData = await requestHome('/web/addWebsiteSurveyVote',{
-                    method:'GET',
-                    query:{
-                        'sur_id':userSurId.value,
-                        'choice_id':radio1.value
-                    }
-                });
-                if(mkData.code == 200){
-                    ElMessage.success('投票成功!')
-                    //把投票结果显示到页面上 禁用投票按钮
-                    isDisabled.value = true;
-                    let data = mkData.data;
-                    //遍历一下,把用户选中的那个设置status为1
-                    for(let item of data.data){
-                        for(let i of data.choice){
-                            if(item.id == i){
-                                item.status = 1;
-                            }
-                        }
-                    }
-                    websiteSurveyData.value = data;
-                }else{
-                    ElMessage.error('投票失败!')
-                }
-            }
-        }else{
-            ElMessage.error('请选择一个选项')
-        }
-    }else{
-        console.log("多选!")
-        //多选
-        if(check1.value!=[]){
-             //先判断一下是否使用了其他选项
-            if(showUserChoice.value){
-                if(userChoice.value!=''){
-                    //判断用户是否只选择了一个其他
-                    if(check1.value.length == 1){
-                        const ChoiceData = await requestDataPromise('/web/addWebsiteSurveyOption',{
-                            method:'GET',
-                            query:{
-                                'sur_id':userSurId.value,//投票的新闻id
-                                'choice_name':userChoice.value,//用户输入的其他选项文字
-                            }
-                        });
-                        if(ChoiceData.code == 200){
-                            //提交完其他选项以后,再正式发起投票
-                            const mkData = await requestDataPromise('/web/addWebsiteSurveyVote',{
-                                method:'GET',
-                                query:{
-                                    'sur_id':userSurId.value,
-                                    'choice_id':ChoiceData.data
-                                }
-                            });
-                            if(mkData.code == 200){
-                                ElMessage.success('投票成功!')
-                                //把投票结果显示到页面上 禁用投票按钮
-                                isDisabled.value = true;
-                                websiteSurveyData.value = mkData.data;
-                                //遍历一下,把用户选中的那个设置status为1
-                                let data = mkData.data;
-                                //遍历一下,把用户选中的那个设置status为1
-                                for(let item of data.data){
-                                    for(let i of data.choice){
-                                        if(item.id == i){
-                                            console.log(item.id)
-                                            item.status = 1;
-                                        }
-                                    }
-                                }
-                                websiteSurveyData.value = data;
-                            }else{
-                                ElMessage.error(mkData.message)
-                            }
-                        }else{
-                            ElMessage.error('其他投票失败!')
-                        }
-
-                    }else{
-                        //用户选择了除了其他以外,还包括别的选项
-                        const ChoiceData = await requestDataPromise('/web/addWebsiteSurveyOption',{
-                            method:'GET',
-                            query:{
-                                'sur_id':userSurId.value,//投票的新闻id
-                                'choice_name':userChoice.value,//用户输入的其他选项文字
-                            }
-                        });
-                        if(ChoiceData.code == 200){
-                            let data = check1.value;
-                            //找到多选的数组,把其他默认值给替换掉
-                            for (let i = 0; i < data.length; i++) {
-                                if (data[i] == userIsChoice.value) {
-                                    data[i] = ChoiceData.data;
-                                }
-                            }
-                            let jsonArray = JSON.stringify(data);
-                            //提交完其他选项以后,再正式发起投票
-                            const mkData = await requestDataPromise('/web/addWebsiteSurveyVote',{
-                                method:'GET',
-                                query:{
-                                    'sur_id':userSurId.value,
-                                    'choice_id':jsonArray
-                                }
-                            });
-                            
-                            if(mkData.code == 200){
-                                ElMessage.success('投票成功!')
-                                //把投票结果显示到页面上 禁用投票按钮
-                                isDisabled.value = true;
-                                websiteSurveyData.value = mkData.data;
-                                //遍历一下,把用户选中的那个设置status为1
-                                let data = mkData.data;
-                                //遍历一下,把用户选中的那个设置status为1
-                                for(let item of data.data){
-                                    for(let i of data.choice){
-                                        if(item.id == i){
-                                            //console.log(item.id)
-                                            item.status = 1;
-                                        }
-                                    }
-                                }
-                                websiteSurveyData.value = data;
-                            }else{
-                                ElMessage.error(mkData.message)
-                            }
-                        }else{
-                            ElMessage.error('其他投票失败!')
-                        }
-
-                    }
-                }else{
-                    ElMessage.error('请输入选项内容!')
-                }
-            }else{
-                let jsonArray = JSON.stringify(check1.value);
-                //如果没选择其他,直接提交选择的内容
-                const mkData = await requestDataPromise('/web/addWebsiteSurveyVote',{
-                    method:'GET',
-                    query:{
-                        'sur_id':userSurId.value,
-                        'choice_id':jsonArray
-                    }
-                });
-                if(mkData.code == 200){
-                    ElMessage.success('投票成功!')
-                    //把投票结果显示到页面上 禁用投票按钮
-                    isDisabled.value = true;
-                    websiteSurveyData.value = mkData.data;
-                    //遍历一下,把用户选中的那个设置status为1
-                    let data = mkData.data;
-                    //遍历一下,把用户选中的那个设置status为1
-                    for(let item of data.data){
-                        for(let i of data.choice){
-                            if(item.id == i){
-                                console.log(item.id)
-                                item.status = 1;
-                            }
-                        }
-                    }
-                    websiteSurveyData.value = data;
-                }else{
-                    ElMessage.error('投票失败!')
-                }
-            }
-        }else{
-            ElMessage.error('请选择一个选项')
-        }
-    }
-}
-//7.投票 end---------------------------------------->
-
 //8.页面图片放大 start---------------------------------------->
 const previewVisible = ref(false)
 const selectedImage = ref(' ')

+ 1 - 1
pages/[dir]/[dir]/list-[id].vue

@@ -3,7 +3,7 @@
         <!-- 页面头部 -->
         <HomePageHead></HomePageHead>
         <!-- 导航栏 -->
-        <HomePageNavigation1></HomePageNavigation1>
+        <HomePageNavigation></HomePageNavigation>
         <!-- 列表页广告一 -->
         <HomeTopTen :imgurl="adImg1" v-if="adImg1"></HomeTopTen>
         <!-- 二级标题-->

+ 4 - 366
pages/[dir]/[id].vue

@@ -2,7 +2,7 @@
     <!-- 页面头部 -->
     <HomePageHead></HomePageHead>
     <!-- 导航栏 -->
-    <HomePageNavigation1></HomePageNavigation1>
+    <HomePageNavigation></HomePageNavigation>
     <!-- 列表页广告一 -->
     <HomeTopTen :imgurl="adImg1" v-if="adImg1"></HomeTopTen>
     
@@ -51,77 +51,7 @@
                     <p>[免责声明]本文来源于网络转载,仅供学习交流使用,不构成商业目的。 版权归原作者所有,如涉及作品内容,版权和其他问题,请在30日与本网联系,我们将第一时间处理。</p>
                 </div>
                 <div v-if="articleChoice">
-                    <!-- 投票 start ---------------------------------------->
-                    <div class="index_3_box_vote" v-if="articleChoice">
-                        <div class="voteTitle">投票区</div>
-                        <div class="inquire">
-                            <p v-if="voteList.length>0">{{voteList[0].survey_name}}</p>
-                            <div class="radioBox">
-                            <!--投票选项-->
-                            <div v-if="!isDisabled">
-                                <div class="radio" v-if="isRadio">
-                                    <el-radio-group v-model="radio1" @change="handleRadioChange">
-                                        <el-radio v-for="item in voteList" :key="item.id" :value="item.id" size="large">
-                                            <span v-if="item.is_other == 0">{{item.choice_name}}</span>
-                                            <span v-else>其他</span>
-                                        </el-radio>
-                                    </el-radio-group>
-                                    <el-input
-                                        v-if="showUserChoice"
-                                        v-model="userChoice"
-                                        :rows="2"
-                                        type="textarea"
-                                        resize="none"
-                                        placeholder="请输入.."
-                                    />
-                                </div>
-                                <div class="checkInputBox" v-else>
-                                    <el-checkbox-group v-model="check1" @change="handleCheckboxChange">
-                                        <span v-for="item in voteList" :key="item.id">
-                                            <span v-if="item.is_other == 0">
-                                                <el-checkbox size="large" :label="item.choice_name" :value="item.id"/>
-                                            </span>
-                                            <span v-else>
-                                                <el-checkbox size="large" label="其他" :value="item.id"/>
-                                            </span>
-                                        </span>
-                                    </el-checkbox-group>
-                                    <el-input
-                                        v-if="showUserChoice"
-                                        v-model="userChoice"
-                                        :rows="2"
-                                        type="textarea"
-                                        resize="none"
-                                        placeholder="请输入.."
-                                    />
-                                </div>
-                            </div>
-                            <!--投票结果-->
-                            <div class="inquireData" v-else>
-                                <div v-for="item in websiteSurveyData.data" :key="item.id">
-                                    <div class="inquireDataItem active" v-if="item.status == 1">
-                                        <div class="inquireDataItemTitle">
-                                            <span v-if="item.choice_name == ''">其他</span>
-                                            <span v-else>{{item.choice_name}}</span>
-                                        </div>
-                                        <div class="inquireDataItemNum">{{item.results}}票</div>
-                                    </div>
-                                    <div class="inquireDataItem" v-else>
-                                        <div class="inquireDataItemTitle">
-                                            <span v-if="item.choice_name == ''">其他</span>
-                                            <span v-else>{{item.choice_name}}</span>
-                                        </div>
-                                        <div class="inquireDataItemNum">{{item.results}}票</div>
-                                    </div>
-                                </div>
-                            </div>
-                            </div>
-                            <div class="btn">
-                                <button class="voting" @click="addWebsiteSurvey" :disabled="isDisabled" v-if="!isDisabled">投票</button>
-                            </div>
-                        </div>
-                    </div>
-                    <!-- 投票 end ---------------------------------------->
+                    <HomeSurveyvote></HomeSurveyvote>
                 </div>
             </div>
             <div class="innerRight">
@@ -143,7 +73,7 @@
 <script setup>
 //1.页面依赖 start ---------------------------------------->
 import { onMounted } from 'vue'
-import { ElBreadcrumb, ElBreadcrumbItem,ElRadio, ElRadioGroup,ElCheckbox,ElCheckboxGroup,ElMessage,ElInput } from 'element-plus'
+import { ElBreadcrumb, ElBreadcrumbItem} from 'element-plus'
 import { ArrowRight } from '@element-plus/icons-vue'
 //1.页面依赖 end ---------------------------------------->
 
@@ -216,7 +146,7 @@ async function getPageData() {
         if(mkdata.data.is_survey==1){
             console.log("本篇文章含有投票!")
             articleChoice.value = true;
-            getVoteList();
+            
         }
         //获取内容
         newsDetail.value = mkdata.data;
@@ -286,299 +216,7 @@ if(setData.code==200){
 }
 //6.设置seo信息 end---------------------------------------->
 
-//7.投票 start---------------------------------------->
-const radio1 = ref(''); //单选
-const check1 = ref([]); //多选
-const isDisabled = ref(false);//是否禁用提交按钮
-const isRadio = ref(true);//是否渲染单选
-
-const userSurId = ref('');//投票属于哪一篇文章
-const userChoice = ref('');//用于判断用户选择了其他选项以后,输入的值
-const userIsChoice = ref('');//用于判断其他选项目前是什么值
-const showUserChoice = ref(false);//是否显示其他输入框
-const websiteSurveyData = ref([]);//投票结果
 
-//7.2获得投票列表
-let voteList = ref([]);
-async function getVoteList(){
-    const voteData = await requestHome('/web/getWebsiteSurvey',{method:'GET',query:{'art_id':articleId}});
-    console.log(778899)
-    console.log(voteData)
-    if(voteData.code == 200){
-        voteList.value = voteData.data;
-        console.log(voteList.value)
-        //判断显示单选还是多选
-        //survey_type 0是单选 1是多选
-        if(voteData.data[0].survey_type == 0){
-            isRadio.value = true;
-            console.log("1111")
-        }else{
-            isRadio.value = false;
-        }
-        //把最后一个的值拿出来 用于判断用户是否选择了其他
-        for(let item of voteData.data){
-            //如果含有其他
-            if(item.is_other==1){
-                userIsChoice.value = item.id;
-            }
-        }
-        //用户投票属于哪一篇文章
-        userSurId.value = voteData.data[0].sur_id;
-
-    }else{
-        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
-        console.log("错误位置:首页投票")
-        console.log("后端错误反馈:",voteData.message)
-        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->") 
-    }
-}
-
-
-//7.3当用户选择了选项,判断是否展示其他输入框
-const handleRadioChange = (value) => {
-    if(value == userIsChoice.value){
-        showUserChoice.value = true;
-    }else{
-        showUserChoice.value = false;
-    }
-}
-
-const handleCheckboxChange = (value) => {
-    if (value.includes(userIsChoice.value)) {
-        showUserChoice.value = true;
-    } else {
-        showUserChoice.value = false;
-    }
-}
-
-//7.4发起投票
-async function addWebsiteSurvey(){
-    //判断当前是单选还是多选
-    console.log(isRadio.value)
-    if(isRadio.value){
-        console.log("用户单选!")
-        if(radio1.value!=''){
-            //先判断一下是否使用了其他选项
-            if(showUserChoice.value){
-                if(userChoice.value!=''){
-                    //文章id
-                    // console.log(userSurId.value)
-                    // 用户输入的值
-                    // console.log(userChoice.value)
-                    //如果使用了其他,其他的选项需要增加进去
-                    const ChoiceData = await requestHome('/web/addWebsiteSurveyOption',{
-                        method:'GET',
-                        query:{
-                            'sur_id':userSurId.value,//投票的新闻id
-                            'choice_name':userChoice.value,//投票的选项id
-                        }
-                    });
-                    if(ChoiceData.code == 200){
-                        //提交完其他选项以后,再正式发起投票
-                        const mkData = await requestHome('/web/addWebsiteSurveyVote',{
-                            method:'GET',
-                            query:{
-                                'sur_id':userSurId.value,
-                                'choice_id':ChoiceData.data
-                            }
-                        });
-                        if(mkData.code == 200){
-                            ElMessage.success('投票成功!')
-                            //把投票结果显示到页面上 禁用投票按钮
-                            isDisabled.value = true;
-                            websiteSurveyData.value = mkData.data;
-                            //遍历一下,把用户选中的那个设置status为1
-                            let data = mkData.data;
-                            //遍历一下,把用户选中的那个设置status为1
-                            for(let item of data.data){
-                                for(let i of data.choice){
-                                    if(item.id == i){
-                                        console.log(item.id)
-                                        item.status = 1;
-                                    }
-                                }
-                            }
-                            websiteSurveyData.value = data;
-                        }else{
-                            ElMessage.error(mkData.message)
-                        }
-                    }else{
-                        ElMessage.error('其他投票失败!')
-                    }
-                }else{
-                    ElMessage.error('请输入选项内容!')
-                }
-            }else{
-                //如果没选择其他,直接提交选择的内容
-                const mkData = await requestHome('/web/addWebsiteSurveyVote',{
-                    method:'GET',
-                    query:{
-                        'sur_id':userSurId.value,
-                        'choice_id':radio1.value
-                    }
-                });
-                if(mkData.code == 200){
-                    ElMessage.success('投票成功!')
-                    //把投票结果显示到页面上 禁用投票按钮
-                    isDisabled.value = true;
-                    let data = mkData.data;
-                    //遍历一下,把用户选中的那个设置status为1
-                    for(let item of data.data){
-                        for(let i of data.choice){
-                            if(item.id == i){
-                                item.status = 1;
-                            }
-                        }
-                    }
-                    websiteSurveyData.value = data;
-                }else{
-                    ElMessage.error('投票失败!')
-                }
-            }
-        }else{
-            ElMessage.error('请选择一个选项')
-        }
-    }else{
-        console.log("多选!")
-        //多选
-        if(check1.value!=[]){
-             //先判断一下是否使用了其他选项
-            if(showUserChoice.value){
-                if(userChoice.value!=''){
-                    //判断用户是否只选择了一个其他
-                    if(check1.value.length == 1){
-                        const ChoiceData = await requestDataPromise('/web/addWebsiteSurveyOption',{
-                            method:'GET',
-                            query:{
-                                'sur_id':userSurId.value,//投票的新闻id
-                                'choice_name':userChoice.value,//用户输入的其他选项文字
-                            }
-                        });
-                        if(ChoiceData.code == 200){
-                            //提交完其他选项以后,再正式发起投票
-                            const mkData = await requestDataPromise('/web/addWebsiteSurveyVote',{
-                                method:'GET',
-                                query:{
-                                    'sur_id':userSurId.value,
-                                    'choice_id':ChoiceData.data
-                                }
-                            });
-                            if(mkData.code == 200){
-                                ElMessage.success('投票成功!')
-                                //把投票结果显示到页面上 禁用投票按钮
-                                isDisabled.value = true;
-                                websiteSurveyData.value = mkData.data;
-                                //遍历一下,把用户选中的那个设置status为1
-                                let data = mkData.data;
-                                //遍历一下,把用户选中的那个设置status为1
-                                for(let item of data.data){
-                                    for(let i of data.choice){
-                                        if(item.id == i){
-                                            console.log(item.id)
-                                            item.status = 1;
-                                        }
-                                    }
-                                }
-                                websiteSurveyData.value = data;
-                            }else{
-                                ElMessage.error(mkData.message)
-                            }
-                        }else{
-                            ElMessage.error('其他投票失败!')
-                        }
-
-                    }else{
-                        //用户选择了除了其他以外,还包括别的选项
-                        const ChoiceData = await requestDataPromise('/web/addWebsiteSurveyOption',{
-                            method:'GET',
-                            query:{
-                                'sur_id':userSurId.value,//投票的新闻id
-                                'choice_name':userChoice.value,//用户输入的其他选项文字
-                            }
-                        });
-                        if(ChoiceData.code == 200){
-                            let data = check1.value;
-                            //找到多选的数组,把其他默认值给替换掉
-                            for (let i = 0; i < data.length; i++) {
-                                if (data[i] == userIsChoice.value) {
-                                    data[i] = ChoiceData.data;
-                                }
-                            }
-                            let jsonArray = JSON.stringify(data);
-                            //提交完其他选项以后,再正式发起投票
-                            const mkData = await requestDataPromise('/web/addWebsiteSurveyVote',{
-                                method:'GET',
-                                query:{
-                                    'sur_id':userSurId.value,
-                                    'choice_id':jsonArray
-                                }
-                            });
-                            
-                            if(mkData.code == 200){
-                                ElMessage.success('投票成功!')
-                                //把投票结果显示到页面上 禁用投票按钮
-                                isDisabled.value = true;
-                                websiteSurveyData.value = mkData.data;
-                                //遍历一下,把用户选中的那个设置status为1
-                                let data = mkData.data;
-                                //遍历一下,把用户选中的那个设置status为1
-                                for(let item of data.data){
-                                    for(let i of data.choice){
-                                        if(item.id == i){
-                                            //console.log(item.id)
-                                            item.status = 1;
-                                        }
-                                    }
-                                }
-                                websiteSurveyData.value = data;
-                            }else{
-                                ElMessage.error(mkData.message)
-                            }
-                        }else{
-                            ElMessage.error('其他投票失败!')
-                        }
-
-                    }
-                }else{
-                    ElMessage.error('请输入选项内容!')
-                }
-            }else{
-                let jsonArray = JSON.stringify(check1.value);
-                //如果没选择其他,直接提交选择的内容
-                const mkData = await requestDataPromise('/web/addWebsiteSurveyVote',{
-                    method:'GET',
-                    query:{
-                        'sur_id':userSurId.value,
-                        'choice_id':jsonArray
-                    }
-                });
-                if(mkData.code == 200){
-                    ElMessage.success('投票成功!')
-                    //把投票结果显示到页面上 禁用投票按钮
-                    isDisabled.value = true;
-                    websiteSurveyData.value = mkData.data;
-                    //遍历一下,把用户选中的那个设置status为1
-                    let data = mkData.data;
-                    //遍历一下,把用户选中的那个设置status为1
-                    for(let item of data.data){
-                        for(let i of data.choice){
-                            if(item.id == i){
-                                console.log(item.id)
-                                item.status = 1;
-                            }
-                        }
-                    }
-                    websiteSurveyData.value = data;
-                }else{
-                    ElMessage.error('投票失败!')
-                }
-            }
-        }else{
-            ElMessage.error('请选择一个选项')
-        }
-    }
-}
-//7.投票 end---------------------------------------->
 
 //8.页面图片放大 start---------------------------------------->
 const previewVisible = ref(false)

+ 305 - 214
pages/[dir]/index.html.vue

@@ -3,281 +3,376 @@
         <HomePageHead></HomePageHead>
         <HomePageNavigation></HomePageNavigation>
         <HomeSecondaryHeading :titleData="pageData" :pinyinid="routeId"></HomeSecondaryHeading>
+        <!-- 频道页 -->
         <main class="index_main">
-            <section class="index_1 clearfix">
-                <div class="index_1_left">
-                    <div class="roll_1_box">
-                        <HomeSmallSwiper1 :data="pageData[0].data"></HomeSmallSwiper1>
+            <!--板块1-->
+            <section class="channel_1 clearfix">
+                <div class="channel_1_left">
+                    <div class="channel_1_box">
+                        <HomeSwiperSnscChannel :data="pageData[0].data"></HomeSwiperSnscChannel>
                     </div>
                 </div>
-                <div class="index_1_right">
-                    <div class="index_1_color_box">
-                        <h3 class="index_1_head_h3 clearfix">
-                            <NuxtLink class="index_1_head_a" :href="getLinkPath(pageData[0])" v-if="pageData[0]" :title="pageData[0].alias">
-                                {{ pageData[0].alias }}
+                <div class="channel_1_right">
+                    <div class="channel_name_ul">
+                        <div class="channel_name_ul_li" v-for="item in pageData[0].data2">
+                            <NuxtLink class="channel_name_ul_li_tag"
+                                :href="getLinkPathDetail(item)"
+                                :title="item.title"
+                                :key="item.id"
+                                :target="item.islink == 1 ? '_blank' : '_self'"
+                            >
+                                民工动态
                             </NuxtLink>
-                        </h3>
-                        <div class="index_1_ul">
-                            <NuxtLink class="index_1_ul_a dot1" 
-                                :href="getLinkPathDetail(item)" 
-                                :title="item.title" 
-                                v-for="item in pageData[0].data2" 
+                            <NuxtLink class="channel_name_ul_li_dot1 dot1"
+                                :href="getLinkPathDetail(item)"
+                                :title="item.title"
                                 :key="item.id"
                                 :target="item.islink == 1 ? '_blank' : '_self'"
                             >
-                                {{ item.title }}
+                                {{item.title}}
                             </NuxtLink>
                         </div>
                     </div>
                 </div>
             </section>
-            <HomeAdvertisingClass :adData1="adImg1" :adData2="adImg2"></HomeAdvertisingClass>
-            <section class="index_2 clearfix">
-                <div class="index_2_left">
-                    <h3 class="index_2_left_h3 clearfix">
-                        <NuxtLink class="index_2_left_h3_a index_2_left_h3_a_only" :href="getLinkPath(pageData[1])" v-if="pageData[1]" :title="pageData[1].alias">
+            <!--板块2-->
+            <section class="channel_2 clearfix">
+                <div class="channel_1_left clearfix">
+                    <!--open 商贸活动-->
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" 
+                            :href="getLinkPath(pageData[1])" 
+                            v-if="pageData[1]" 
+                            :title="pageData[1].alias"
+                        >
                             {{ pageData[1].alias }}
                         </NuxtLink>
-                    </h3>
-                    <div class="index_2_left_img_out">
-                        <div class="index_2_big_img_ul clearfix">
-                            <div class="index_2_big_img_li">
-                                <NuxtLink class="index_2_big_img_li_a"
-                                    :href="getLinkPathDetail(item)"
-                                    :title="item.title"
-                                    v-for="item in pageData[1].data"
-                                    :key="item.id"
-                                    :target="item.islink == 1 ? '_blank' : '_self'"
-                                >
-                                    <img :src="item.imgurl" title="item.title" alt="item.title">
-                                    <div class="index_2_img_li_dot1 dot1">{{item.title}}</div>
-                                </NuxtLink>
+                        <NuxtLink class="channel_head_more" 
+                            :href="getLinkPath(pageData[1])" 
+                            v-if="pageData[1]" 
+                            :title="pageData[1].alias"
+                        >
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class=" clearfix">
+                        <div class="channel_1_box_1 clearfix">
+                            <div class="channel_img_big_1_ul">
+                                <div class="channel_img_big_1_li" v-for="item in pageData[1].data">
+                                    <NuxtLink class="channel_img_big_1_li_a"
+                                        :href="getLinkPathDetail(item)"
+                                        :title="item.title"
+                                        :key="item.id"
+                                        :target="item.islink == 1 ? '_blank' : '_self'"
+                                    >
+                                        <img class="channel_img_big_1_li_img" :src="item.imgurl" alt="item.title">
+                                        <div class="channel_img_big_1_li_dot1 dot1">
+                                            {{ item.title }}
+                                        </div>
+                                    </NuxtLink>
+                                </div>
                             </div>
                         </div>
-                        <div class="index_2_img_ul clearfix">
-                            <div class="index_2_img_li" v-for="item in pageData[1].data2" :key="item.id">
-                                <NuxtLink class="index_2_img_li_a"
+                        <div class="channel_1_box_2 clearfix">
+                            <div class="channel_ul_2">
+                                <NuxtLink class="channel_ul_2_a dot1"
                                     :href="getLinkPathDetail(item)"
                                     :title="item.title"
+                                    v-for="item in pageData[1].data2"
+                                    :key="item.id"
                                     :target="item.islink == 1 ? '_blank' : '_self'"
                                 >
-                                    <img :src="item.imgurl" title="item.title" alt="item.title">
-                                    <div class="index_2_img_li_dot1 dot1">{{item.title}}</div>
+                                    {{ item.title }}
                                 </NuxtLink>
                             </div>
                         </div>
                     </div>
-
-                    <div class="index_2_left_ul_box">
-                        <div class="index_2_left_ul index_2_left_ul_group_6">
-                            <div class="index_2_left_ul_li dot1" v-for="item in pageData[1].data3" :key="item.id">
-                                    <NuxtLink class="index_2_left_ul_li_a_name"
-                                        :href="getLinkPathDetail(item)"
-                                        :title="item.title"
-                                        :key="item.id"
-                                        :target="item.islink == 1 ? '_blank' : '_self'"
-                                    >
-                                        资讯关注
-                                    </NuxtLink>
-                                    <NuxtLink class="index_2_left_ul_li_a_text"
+                    <!--end 商贸活动-->
+                    <!--open 科教活动-->
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" 
+                            :href="getLinkPath(pageData[2])" 
+                            v-if="pageData[2]" 
+                            :title="pageData[2].alias"
+                        >
+                            {{ pageData[2].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" 
+                            :href="getLinkPath(pageData[2])" 
+                            v-if="pageData[2]" 
+                            :title="pageData[2].alias"
+                        >
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class=" clearfix">
+                        <div class="channel_1_box_1 clearfix">
+                            <div class="channel_img_big_2_ul">
+                                <div class="channel_img_big_2_li" v-for="item in pageData[2].data">
+                                    <NuxtLink class="channel_img_big_2_li_a"
                                         :href="getLinkPathDetail(item)"
                                         :title="item.title"
                                         :key="item.id"
                                         :target="item.islink == 1 ? '_blank' : '_self'"
                                     >
-                                        {{item.title}}
+                                        <img class="channel_img_big_2_li_img" :src="item.imgurl" alt="item.title">
+                                        <div class="channel_img_big_2_li_dot1 dot1">
+                                            {{ item.title }}
+                                        </div>
                                     </NuxtLink>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="channel_1_box_2 clearfix">
+                            <div class="channel_ul_3">
+                                <NuxtLink class="channel_ul_3_a dot1"
+                                    :href="getLinkPathDetail(item)"
+                                    :title="item.title"
+                                    v-for="item in pageData[2].data2"
+                                    :key="item.id"
+                                    :target="item.islink == 1 ? '_blank' : '_self'"
+                                >
+                                    {{ item.title }}
+                                </NuxtLink>
                             </div>
                         </div>
                     </div>
+                    <!--end 科教活动-->
                 </div>
-                <div class="index_2_right">
-                    <h3 class="index_2_right_head">
-                        <NuxtLink class="index_2_right_head_a" :href="getLinkPath(pageData[2])" v-if="pageData[2]" :title="pageData[2].alias">
-                            {{ pageData[2].alias }}
+                <div class="channel_1_right clearfix">
+                    <!--open 产业动态-->
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" 
+                            :href="getLinkPath(pageData[3])" 
+                            v-if="pageData[3]" 
+                            :title="pageData[3].alias"
+                        >
+                            {{ pageData[3].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" 
+                            :href="getLinkPath(pageData[3])" 
+                            v-if="pageData[3]" 
+                            :title="pageData[3].alias"
+                        >
+                            栏目简介
                         </NuxtLink>
-                    </h3>
-                    <div class="index_2_right_img_ul">
-                        <div class="index_2_right_img_li clearfix" v-for="item in pageData[2].data" :key="item.id">
-                            <NuxtLink class="index_2_right_img_li_a"
+                    </div>
+                    <div class="channel_img_big_3_ul clearfix">
+                        <div class="channel_img_big_3_li" v-for="item in pageData[3].data">
+                            <NuxtLink class="channel_img_big_3_li_a"
                                 :href="getLinkPathDetail(item)"
                                 :title="item.title"
                                 :key="item.id"
                                 :target="item.islink == 1 ? '_blank' : '_self'"
                             >
-                                <div class="index_2_right_img_li_a_img_box">
-                                    <img class="" :src="item.imgurl" title="" alt="">
-                                </div>
-                                <div class="index_2_right_img_li_dot3 dot3">
-                                    {{item.title}}
+                                <img class="channel_img_big_3_li_img" :src="item.imgurl" alt="item.title">
+                                <div class="channel_img_big_3_li_dot1 dot1">
+                                    {{ item.title }}
                                 </div>
                             </NuxtLink>
                         </div>
                     </div>
-                    <div class="index_1_ul index_1_ul_2">
-                        <NuxtLink class="index_1_ul_a dot1"
-                            :href="getLinkPathDetail(item)"
-                            :title="item.title"
-                            v-for="item in pageData[2].data3"
-                            :key="item.id"
-                            :target="item.islink == 1 ? '_blank' : '_self'"
-                        >
-                            {{ item.title }}
-                        </NuxtLink>
-                    </div>
-                    <div class="index_2_right_img_ul">
-                        <div class="index_2_right_img_li clearfix" v-for="item in pageData[2].data2" :key="item.id">
-                            <NuxtLink class="index_2_right_img_li_a"
+                    <div class="channel_ul_4">
+                        <div class="channel_ul_4_li dot1" v-for="(item, index) in pageData[3].data2">
+                            <div class="channel_ul_4_li_num">{{ index + 1 }}</div>
+                            <NuxtLink class="channel_img_big_3_li_a"
                                 :href="getLinkPathDetail(item)"
                                 :title="item.title"
                                 :key="item.id"
                                 :target="item.islink == 1 ? '_blank' : '_self'"
                             >
-                                <div class="index_2_right_img_li_a_img_box">
-                                    <img class="" :src="item.imgurl" title="" alt="">
-                                </div>
-                                <div class="index_2_right_img_li_dot3 dot3">
-                                    {{item.title}}
+                                <div class="channel_ul_4_a dot1">
+                                    {{ item.title }}
                                 </div>
                             </NuxtLink>
                         </div>
                     </div>
+                    <!--end 产业动态-->
                 </div>
             </section>
-
-            <section class="index_3 clearfix">
-                <div class="index_2_left">
-                    <h3 class="index_2_left_h3 clearfix">
-                        <NuxtLink 
-                            :class="{'index_2_left_h3_a': true, 'index_2_left_h3_a_only': showTabs == 1}"
-                            :href="getLinkPath(pageData[3])" 
-                            v-if="pageData[3]" 
-                            :title="pageData[3].alias"
-                            @mouseenter="qhtabs(1)"
+            <!--广告1-->
+            <HomeAdvertising :data="adImg1"></HomeAdvertising>
+            
+            <section class="channel_3 clearfix">
+                <!--open 农贸节庆-->
+                <div class="channel_1_left clearfix">
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" 
+                            :href="getLinkPath(pageData[4])" 
+                            v-if="pageData[4]" 
+                            :title="pageData[4].alias"
                         >
-                            {{ pageData[3].alias }}
+                            {{ pageData[4].alias }}
                         </NuxtLink>
-                        <NuxtLink 
-                            :class="{'index_2_left_h3_a': true, 'index_2_left_h3_a_only': showTabs == 2}"
-                            :href="getLinkPath(pageData[4])"
+                        <NuxtLink class="channel_head_more" 
+                            :href="getLinkPath(pageData[4])" 
                             v-if="pageData[4]" 
                             :title="pageData[4].alias"
-                            @mouseenter="qhtabs(2)"
                         >
-                            {{ pageData[4].alias }}
+                            栏目简介
                         </NuxtLink>
-                    </h3>
-                    <div v-if="showTabs == 1">
-                        <div class="index_2_left_img_out">
-                            <div class="index_2_left_ul index_2_left_ul_group_5">
-                                <div class="index_2_left_ul_li dot1" v-for="item in pageData[3].data" :key="item.id">
-                                    <NuxtLink class="index_2_left_ul_li_a_name"
-                                        :href="getLinkPathDetail(item)"
-                                        :title="item.title"
-                                        :key="item.id"
-                                        :target="item.islink == 1 ? '_blank' : '_self'"
-                                    >
-                                        资讯关注
-                                    </NuxtLink>
-                                    <NuxtLink class="index_2_left_ul_li_a_text"
+                    </div>
+                    <div class=" clearfix">
+                        <div class="channel_1_box_1 clearfix">
+                            <div class="channel_img_big_4_ul">
+                                <div class="channel_img_big_4_li" v-for="item in pageData[4].data">
+                                    <NuxtLink class="channel_img_big_4_li"
                                         :href="getLinkPathDetail(item)"
                                         :title="item.title"
                                         :key="item.id"
                                         :target="item.islink == 1 ? '_blank' : '_self'"
                                     >
-                                        {{item.title}}
+                                        <img class="channel_img_big_4_li_img" :src="item.imgurl" alt="item.title">
+                                        <div class="channel_img_big_4_li_dot2 dot2">
+                                            {{ item.title }}
+                                        </div>
                                     </NuxtLink>
                                 </div>
                             </div>
-                        </div>
-                        <div class="index_2_left_ul_box">
-                            <div class="index_3_img_ul">
-                                <div class="index_3_img_li clearfix" v-for="item in pageData[3].data2" :key="item.id">
-                                    <NuxtLink class="index_3_img_li_a"
+                            <div class="channel_img_ul_1 clearfix">
+                                <div class="channel_img_ul_1_li" v-for="item in pageData[4].data2">
+                                    <NuxtLink class="channel_img_ul_1_li_a"
                                         :href="getLinkPathDetail(item)"
                                         :title="item.title"
                                         :key="item.id"
                                         :target="item.islink == 1 ? '_blank' : '_self'"
                                     >
-                                        <div class="index_3_img_li_img_box">
-                                            <img :src="item.imgurl" title="item.title" alt="item.title">
-                                        </div>
-                                        <div class="index_3_img_li_in">
-                                            <div class="index_3_img_li_dot3 dot3">
-                                                {{ item.title }}
-                                            </div>
-                                            <span class="index_3_img_li_tag">资讯关注</span>
+                                        <img class="channel_img_ul_1_li_img" :src="item.imgurl" alt="item.title">
+                                        <div class="channel_img_ul_1_li_dot2 dot2">
+                                            {{ item.title }}
                                         </div>
                                     </NuxtLink>
                                 </div>
                             </div>
                         </div>
-                    </div>
-                    <div v-if="showTabs == 2">
-                        <div class="index_2_left_img_out">
-                            <div class="index_2_left_ul index_2_left_ul_group_5">
-                                <div class="index_2_left_ul_li dot1" v-for="item in pageData[4].data" :key="item.id">
-                                    <NuxtLink class="index_2_left_ul_li_a_name"
-                                        :href="getLinkPathDetail(item)"
-                                        :title="item.title"
-                                        :key="item.id"
-                                        :target="item.islink == 1 ? '_blank' : '_self'"
-                                    >
-                                        资讯关注
-                                    </NuxtLink>
-                                    <NuxtLink class="index_2_left_ul_li_a_text"
-                                        :href="getLinkPathDetail(item)"
-                                        :title="item.title"
-                                        :key="item.id"
-                                        :target="item.islink == 1 ? '_blank' : '_self'"
-                                    >
-                                        {{item.title}}
-                                    </NuxtLink>
-                                </div>
+                        <div class="channel_1_box_2 clearfix">
+                            <div class="channel_ul_5">
+                                <NuxtLink class="channel_ul_5_a dot1"
+                                    :href="getLinkPathDetail(item)"
+                                    v-for="item in pageData[4].data3"
+                                    :title="item.title"
+                                    :key="item.id"
+                                    :target="item.islink == 1 ? '_blank' : '_self'"
+                                >
+                                    {{ item.title }}
+                                </NuxtLink>
                             </div>
                         </div>
-                        <div class="index_2_left_ul_box">
-                            <div class="index_3_img_ul">
-                                <div class="index_3_img_li clearfix" v-for="item in pageData[4].data2" :key="item.id">
-                                    <NuxtLink class="index_3_img_li_a"
-                                        :href="getLinkPathDetail(item)"
-                                        :title="item.title"
-                                        :key="item.id"
-                                        :target="item.islink == 1 ? '_blank' : '_self'"
-                                    >
-                                        <div class="index_3_img_li_img_box">
-                                            <img :src="item.imgurl" title="item.title" alt="item.title">
-                                        </div>
-                                        <div class="index_3_img_li_in">
-                                            <div class="index_3_img_li_dot3 dot3">
-                                                {{ item.title }}
-                                            </div>
-                                            <span class="index_3_img_li_tag">资讯关注</span>
-                                        </div>
-                                    </NuxtLink>
+                    </div>
+                </div>
+                <!--end 农贸节庆-->
+                <!--open 市场行情-->
+                <div class="channel_1_right clearfix">
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" 
+                            :href="getLinkPath(pageData[5])" 
+                            v-if="pageData[5]" 
+                            :title="pageData[5].alias"
+                        >
+                            {{ pageData[5].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" 
+                            :href="getLinkPath(pageData[5])" 
+                            v-if="pageData[5]" 
+                            :title="pageData[5].alias"
+                        >
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="channel_img_ul_2 clearfix">
+                        <div class="channel_img_ul_2_li" v-for="item in pageData[5].data">
+                            <NuxtLink class="channel_img_ul_2_li"
+                                :href="getLinkPathDetail(item)"
+                                :title="item.title"
+                                :key="item.id"
+                                :target="item.islink == 1 ? '_blank' : '_self'"
+                            >
+                                <img class="channel_img_ul_2_li_img" :src="item.imgurl" alt="item.title">
+                                <div class="channel_img_ul_2_li_dot1 dot1">
+                                    {{ item.title }}
                                 </div>
-                            </div>
+                            </NuxtLink>
                         </div>
                     </div>
+                    <div class="channel_ul_6">
+                        <NuxtLink class="channel_ul_6_a dot1"
+                            :href="getLinkPathDetail(item)"
+                            :title="item.title"
+                            v-for="item in pageData[5].data2"
+                            :key="item.id"
+                            :target="item.islink == 1 ? '_blank' : '_self'"
+                        >
+                            {{ item.title }}
+                        </NuxtLink>
+                    </div>
+                    <!--end 市场行情-->
                 </div>
-
-                <div class="index_2_right">
-                    <h3 class="index_2_right_head">
-                        <NuxtLink class="index_2_right_head_a" :href="getLinkPath(pageData[5])" v-if="pageData[5]" :title="pageData[5].alias">
-                            {{ pageData[5].alias }}
+            </section>
+            <section class="channel_4 clearfix">
+                <div class="channel_1_left clearfix">
+                    <!--open 业界交流-->
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" 
+                            :href="getLinkPath(pageData[6])" 
+                            v-if="pageData[6]" 
+                            :title="pageData[6].alias"
+                        >
+                            {{ pageData[6].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" 
+                            :href="getLinkPath(pageData[6])" 
+                            v-if="pageData[6]" 
+                            :title="pageData[6].alias"
+                        >
+                            栏目简介
                         </NuxtLink>
-                    </h3>
-                    <div class="index_3_num_ul">
-                        <NuxtLink class="index_1_ul_a dot1"
+                    </div>
+                    <div class="channel_ul_7">
+                        <NuxtLink class="channel_ul_7_a dot1"
                             :href="getLinkPathDetail(item)"
                             :title="item.title"
-                            v-for="item in pageData[5].data"
+                            v-for="item in pageData[6].data"
                             :key="item.id"
                             :target="item.islink == 1 ? '_blank' : '_self'"
                         >
                             {{ item.title }}
                         </NuxtLink>
                     </div>
+                    <!--end 业界交流-->
+                </div>
+                <!--open 主题活动-->
+                <div class="channel_1_right clearfix">
+                    <div class="channel_head">
+                        <NuxtLink class="channel_head_name" 
+                            :href="getLinkPath(pageData[7])" 
+                            v-if="pageData[7]" 
+                            :title="pageData[7].alias"
+                        >
+                            {{ pageData[7].alias }}
+                        </NuxtLink>
+                        <NuxtLink class="channel_head_more" 
+                            :href="getLinkPath(pageData[7])" 
+                            v-if="pageData[7]" 
+                            :title="pageData[7].alias"
+                        >
+                            栏目简介
+                        </NuxtLink>
+                    </div>
+                    <div class="channel_img_big_5_ul">
+                        <div class="channel_img_big_5_li" v-for="item in pageData[7].data">
+                            <NuxtLink class="channel_img_big_5_li_a"
+                                :href="getLinkPathDetail(item)"
+                                :title="item.title"
+                                v-for="item in pageData[7].data"
+                                :key="item.id"
+                                :target="item.islink == 1 ? '_blank' : '_self'"
+                            > 
+                                <img class="channel_img_big_5_li_img" :src="item.imgurl" alt="item.title">
+                                <div class="channel_img_big_5_li_dot2 dot2">{{ item.title }}</div>
+                            </NuxtLink>
+                        </div>
+                    </div>
+                    <!--end 主题活动-->
                 </div>
             </section>
         </main>
@@ -441,23 +536,20 @@ try {
         }
         //导航池加载完毕,开始申请模块数据
         let getJson = [
-            { "parent": routeId + ",0,0", "child": pageData.value[0].cid + ",5,7" },//模块1理论前沿
-            { "parent": routeId + ",0,0", "child": pageData.value[1].cid + ",3,11" },//模块2典型经验
-            { "parent": routeId + ",0,0", "child": pageData.value[2].cid + ",4,2" },//模块3农业天地
-            { "parent": routeId + ",0,0", "child": pageData.value[3].cid + ",3,10" },//模块4美丽乡村
-            { "parent": routeId + ",0,0", "child": pageData.value[4].cid + ",3,10" },//模块5农民之家
-            { "parent": routeId + ",0,0", "child": pageData.value[5].cid + ",0,7" },//模块6农业天地
-            //{ "parent": routeId + ",0,0", "child": pageData.value[6].cid + ",2,3" },//模块7农村建设
-            //{ "parent": routeId + ",0,0", "child": pageData.value[7].cid + ",4,0" },//模块8高端资讯
+            { "parent": routeId + ",0,0", "child": pageData.value[0].cid + ",5,10" },//模块1 顶部没有标题的那个
+            { "parent": routeId + ",0,0", "child": pageData.value[1].cid + ",1,6" },//模块2
+            { "parent": routeId + ",0,0", "child": pageData.value[2].cid + ",1,6" },//模块3
+            { "parent": routeId + ",0,0", "child": pageData.value[3].cid + ",1,6" },//模块4
+            { "parent": routeId + ",0,0", "child": pageData.value[4].cid + ",3,10" },//模块5
+            { "parent": routeId + ",0,0", "child": pageData.value[5].cid + ",2,6" },//模块6
+            { "parent": routeId + ",0,0", "child": pageData.value[6].cid + ",0,6" },//模块7
+            { "parent": routeId + ",0,0", "child": pageData.value[7].cid + ",1,0" },//模块8
         ]
         let jsonString = JSON.stringify(getJson);
         getPageAllData(jsonString);
 
     } else {
-        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
-        console.log("错误位置:分类页导航池")
-        console.log("后端错误反馈:", navigateData.message)
-        console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
+        console.log("错误:渲染8个模块环节出错,请检查是否存在没有数据的模块!")
     }
 } catch (error) {
     console.log("错误:导航池渲染执行接口出错!请检查频道页渲染的模块数据是否完整!")
@@ -473,35 +565,34 @@ async function getPageAllData(jsonString) {
     });
 
     if (mkdata.code == 200) {
-        //模块1
+        //模块1 顶部大图和列表
         pageData.value[0].data = mkdata.data[0].child.imgnum;
         pageData.value[0].data2 = mkdata.data[0].child.textnum;
         //模块2
-        for(let index in mkdata.data[1].child.imgnum){
-            if(index==0){
-                pageData.value[1].data.push(mkdata.data[1].child.imgnum[index]);
-            }else{
-                pageData.value[1].data2.push(mkdata.data[1].child.imgnum[index]);
-            }
-        }
-        pageData.value[1].data3 = mkdata.data[1].child.textnum;
+        pageData.value[1].data = mkdata.data[1].child.imgnum;
+        pageData.value[1].data2 = mkdata.data[1].child.textnum;
         //模块3
-        for(let index in mkdata.data[2].child.imgnum){
-            if(index<=1){
-                pageData.value[2].data.push(mkdata.data[2].child.imgnum[index]);
+        pageData.value[2].data = mkdata.data[2].child.imgnum;
+        pageData.value[2].data2 = mkdata.data[2].child.textnum;
+        //模块4
+        pageData.value[3].data = mkdata.data[3].child.imgnum;
+        pageData.value[3].data2 = mkdata.data[3].child.textnum;
+        //模块5
+        for(let index in mkdata.data[4].child.imgnum){
+            if(index<1){
+                pageData.value[4].data.push(mkdata.data[4].child.imgnum[index]);
             }else{
-                pageData.value[2].data2.push(mkdata.data[2].child.imgnum[index]);
+                pageData.value[4].data2.push(mkdata.data[4].child.imgnum[index]);
             }
         }
-        pageData.value[2].data3 = mkdata.data[2].child.textnum;
-        //模块4
-        pageData.value[3].data = mkdata.data[3].child.textnum;
-        pageData.value[3].data2 = mkdata.data[3].child.imgnum;
-        //模块5
-        pageData.value[4].data = mkdata.data[4].child.textnum;
-        pageData.value[4].data2 = mkdata.data[4].child.imgnum;
+        pageData.value[4].data3 = mkdata.data[4].child.textnum;
         //模块6
-        pageData.value[5].data = mkdata.data[5].child.textnum;
+        pageData.value[5].data = mkdata.data[5].child.imgnum;
+        pageData.value[5].data2 = mkdata.data[5].child.textnum;
+        //模块7
+        pageData.value[6].data = mkdata.data[6].child.textnum;
+        //模块8
+        pageData.value[7].data = mkdata.data[7].child.imgnum;
 
     } else {
         ElMessage.error(mkdata.message)

+ 2 - 2
pages/[dir]/list-[id].vue

@@ -3,7 +3,7 @@
         <!-- 页面头部 -->
         <HomePageHead></HomePageHead>
         <!-- 导航栏 -->
-        <HomePageNavigation1></HomePageNavigation1>
+        <HomePageNavigation></HomePageNavigation>
         <!-- 列表页广告一 -->
         <HomeTopTen :imgurl="adImg1" v-if="adImg1"></HomeTopTen>
         <!-- 资讯列表 -->
@@ -21,7 +21,7 @@
                                 <el-breadcrumb-item v-if="parent_name !=''">
                                     <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
                                 </el-breadcrumb-item>
-                                <el-breadcrumb-item>{{ name }}</el-breadcrumb-item>
+                                <el-breadcrumb-item class="nameBox">{{ name }}</el-breadcrumb-item>
                             </el-breadcrumb>
                         </div>
                     </div>

File diff suppressed because it is too large
+ 692 - 313
pages/index.vue


+ 59 - 181
pages/search/[id].vue

@@ -29,10 +29,10 @@
                 <div class="innerLeft">
                     <ul class="list" v-if="newsList.length >= 0">
                         <li v-for="(item, index) in newsList" :key="index">
-                            
                             <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'">
                                 {{ item.title }}
                             </NuxtLink>
+                            <span class="time right">{{getTime(item.updated_at,'month',1)}}</span>
                         </li>
                     </ul>
                     <div v-if="newsList.length == 0" class="empty">
@@ -70,99 +70,42 @@
 import { ElBreadcrumb, ElBreadcrumbItem, ElPagination } from 'element-plus'
 import { ArrowRight } from '@element-plus/icons-vue'
 import { ref, onMounted } from 'vue';
+//1.页面依赖 end ---------------------------------------->
+
 
+//2.获取url中的参数 start ---------------------------------------->
 const route = useRoute();
-//const pageCatids = route.query.catids;
 const pageCatids = ""
+let keywordInput = ref("");
+
 if(route.params.id=='search'){
+    //该处用于带有文字出入的搜索栏跳转
+    console.log("检测到从搜索栏跳转的搜索!")
+    console.log(route.query.type)//左侧搜索下拉框的值
+    console.log(route.query.keyword)//右侧输入框的值
+
+    //目前route.query.type 1=资讯 2=商城 3=招工招聘
+    //但是商城和招工招聘暂没有开发完,所以这里不需要考虑 只给keyword赋值即可
+    keywordInput.value = route.query.keyword;
     
 }else{
+    //该处用于搜索栏中含有地区的跳转
     const pageCatids = route.params.id
 }
-
 const pageDepartment_id = route.query.department_id;
+//2.获取url中的参数 end ---------------------------------------->
 
-//const category_id = route.query.category_id; //获得该页面的id
-// const searchKey = route.query.keyword
-// const catids = ref([]);
-
-//关键词
+//3.在该页进行搜索 start ---------------------------------------->
+//3.1 分页
 let total = useState("total", () => 0)
 let page = useState("page", () => 1)
 let pageSize = useState("pageSize", () => 20)
 
-//格式化跳转链接
-const getLinkPathDetail = (item) => {
-    if (item.islink == 1) {
-        return `${item.linkurl}`;
-    } else {
-        return `/${item.pinyin}/${item.id}.html`;
-    }
-}
-//1.页面依赖 end ---------------------------------------->
-
-//2.页面数据 start ---------------------------------------->
-//2.1 广告
-let adImg1 = ref([]);
-let adImg2 = ref([]);
-// async function getAdData(){
-//     const mkdata = await requestDataPromise('/web/getWebsiteAdvertisement',{
-//         method:'GET',
-//         query:{
-//             'ad_tag':'SEARCH'
-//         }
-//     });
-//     if(adData.code==200){
-//         for(let item of adData.data){
-//             if(item.ad_tag == 'SEARCH_0001'){
-//                 adImg1.value = item;
-//             }
-//             if(item.ad_tag == 'SEARCH_0002'){
-//                 adImg2.value = item;
-//             }
-//         }
-//     }else{
-//         console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
-//         console.log("错误位置:获取搜索页广告列表")
-//         console.log("后端错误反馈:",adData.message)
-//         console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
-//     }
-// }
-// getAdData();
-onMounted(async ()  => {
-    //从客户端获取行政职能部门 加快打开速度
-    const { $webUrl, $CwebUrl } = useNuxtApp();
-    //广告1
-    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_search_0001`
-    const responseAd1 = await fetch(url, {
-        headers: {
-            'Content-Type': 'application/json',
-            'Userurl': $CwebUrl,
-            'Origin': $CwebUrl
-        }
-    });
-    const resultAd1 = await responseAd1.json();
-    adImg1.value = resultAd1.data[0];
-    
-    //广告2
-    let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_search_0002`
-    const responseAd2 = await fetch(url2, {
-        headers: {
-            'Content-Type': 'application/json',
-            'Userurl': $CwebUrl,
-            'Origin': $CwebUrl
-        }
-    });
-    const resultAd2 = await responseAd2.json();
-    adImg2.value = resultAd2.data[0];
-})
-
-
-// 新闻列表
+//3.2 获得新闻列表
 const newsList = ref([]);
-let keywordInput = ref("");
 
-//搜索
+
+//3.3 在本页进行搜索的方法
 let goSearch = async () => {
     console.log(page.value)
     console.log(pageSize.value)
@@ -188,120 +131,55 @@ let goSearch = async () => {
         newsList.value = [];
         total.value = 0;
     }
-   
 }
 
 goSearch();
-//基于导航池搜索
-// let goSearchFont = async (font) => {
-//     const listData =  await requestDataPromise('/web/getWebsiteArticleList', {
-//         method: 'GET',
-//         query: {
-//             'page': page.value,
-//             'pageSize': pageSize.value,
-//             'catid': font
-//         },
-//     });
-//     newsList.value = listData.data.rows;
-//     total.value = listData.data.count;
-// }
 
-// //基于导航池与关键词搜索
-// let goSearchFontandCid = async (font) => {
-//     const listData =  await requestDataPromise('/web/getWebsiteArticleList', {
-//         method: 'GET',
-//         query: {
-//             'page': page.value,
-//             'pageSize': pageSize.value,
-//             'catid': category_id,
-//             'keyword':searchKey
-//         },
-//     });
-//     newsList.value = listData.data.rows;
-//     total.value = listData.data.count;
-// }
-
-
-//直接查新闻
-// const newslists = async () => {
-//     try {
-//         // 从地区跳转
-//         if (route.query.catids && route.query.catids.length > 0) {
-//             // 将字符串转换回数组,并过滤掉可能的空值
-//             catids.value = route.query.catids.split(',').filter(id => id);
-
-//             if (catids.value.length > 0) {
-//                 // 有效的 catids 数组,可以进行后续操作
-//                 console.log('接收到的分类ID数组:', catids.value);
-//                 let font = catids.value.join(",")
-//                 font = "[" + font + "]"
-
-//                 goSearchFont(font);
-//             } else {
-//                 // 处理空数组情况
-//                 console.log('未接收到有效的分类ID');
-//             }
-//         } else {
-//             if (category_id == undefined) {
-//                 //直接搜索 默认进来没有导航池的话 不执行搜索
-//                 goSearch();
-//             } else {
-//                 goSearchFontandCid();
-//             }
-//         }
-//     } catch (error) {
-//         console.error(error);
-//     }
-// }
-// newslists();
-
-
-// 查询导航池的方法
-// const newslists = async () => {
-//     try {
-//         // 从地区跳转
-//         if (route.query.catids && route.query.catids.length > 0) {
-//             // 将字符串转换回数组,并过滤掉可能的空值
-//             catids.value = route.query.catids.split(',').filter(id => id);
-
-//             if (catids.value.length > 0) {
-//                 // 有效的 catids 数组,可以进行后续操作
-//                 console.log('接收到的分类ID数组:', catids.value);
-//                 let font = catids.value.join(",")
-//                 font = "[" + font + "]"
-
-//                 goSearchFont(font);
-//             } else {
-//                 // 处理空数组情况
-//                 console.log('未接收到有效的分类ID');
-//             }
-//         } else {
-//             if (category_id == undefined) {
-//                 //直接搜索 默认进来没有导航池的话 不执行搜索
-//                 goSearch();
-//             } else {
-//                 goSearchFontandCid();
-//             }
-//         }
-//     } catch (error) {
-//         console.error(error);
-//     }
-// }
-
-// newslists();
-
-//分页事件
+//3.4 分页事件
 let changePage = (value) => {
     console.log("当前页码", value);
     page.value = value
     console.log(page.value);
     goSearch()
 }
-//2.页面数据 end ---------------------------------------->
+//3.在该页进行搜索 end ---------------------------------------->
+
+
+//4.广告 start ---------------------------------------->
+let adImg1 = ref([]);
+let adImg2 = ref([]);
+
+onMounted(async ()  => {
+    //从客户端获取行政职能部门 加快打开速度
+    const { $webUrl, $CwebUrl } = useNuxtApp();
+    //广告1
+    let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_search_0001`
+    const responseAd1 = await fetch(url, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd1 = await responseAd1.json();
+    adImg1.value = resultAd1.data[0];
+    
+    //广告2
+    let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_search_0002`
+    const responseAd2 = await fetch(url2, {
+        headers: {
+            'Content-Type': 'application/json',
+            'Userurl': $CwebUrl,
+            'Origin': $CwebUrl
+        }
+    });
+    const resultAd2 = await responseAd2.json();
+    adImg2.value = resultAd2.data[0];
+})
+//4.页面数据 end ---------------------------------------->
 
 
-//4.设置seo信息 start---------------------------------------->
-//4.1 设置seo信息
+//5.设置seo信息 start---------------------------------------->
 const setData =  await requestDataPromise('/web/getWebsiteFootInfo', {
     method: 'GET',
     query: {},
@@ -320,7 +198,7 @@ useSeoMeta({
         { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix , tagPriority: 10 }
     ]
 });
-//4.设置seo信息 end---------------------------------------->
+//5.设置seo信息 end---------------------------------------->
 </script>
 
 <style lang="less" scoped>

+ 0 - 0
plugins/element-plus.js → plugins/element-plus.ts


+ 10 - 10
plugins/globals.js → plugins/globals.ts

@@ -1,17 +1,17 @@
 export default defineNuxtPlugin((nuxtApp) => {
   //Pre环境
-  // nuxtApp.provide('webUrl', 'http://apipre1.bjzxtw.org.cn:29501')
-  // nuxtApp.provide('CwebUrl', 'http://nwpre.bjzxtw.org.cn')
-  // nuxtApp.provide('BwebUrl', 'http://adminpre.bjzxtw.org.cn')
-  // nuxtApp.provide('LoginWebUrl', 'http://adminpre.bjzxtw.org.cn/adminapi')
-  // nuxtApp.provide('userUrl', 'http://localhost:3000')
+  nuxtApp.provide('webUrl', 'http://apipre1.bjzxtw.org.cn:29501')
+  nuxtApp.provide('CwebUrl', 'http://nwpre.bjzxtw.org.cn')
+  nuxtApp.provide('BwebUrl', 'http://adminpre.bjzxtw.org.cn')
+  nuxtApp.provide('LoginWebUrl', 'http://adminpre.bjzxtw.org.cn/adminapi')
+  nuxtApp.provide('userUrl', 'http://localhost:3000')
 
   //正式环境
-  nuxtApp.provide('webUrl', 'https://flzxw.bjzxtw.org.cn')
-  nuxtApp.provide('CwebUrl', 'http://nw.bjzxtw.org.cn')
-  nuxtApp.provide('BwebUrl', 'https://admin.bjzxtw.org.cn')
-  nuxtApp.provide('LoginWebUrl', 'http://admin.bjzxtw.org.cn/adminapi')
-  nuxtApp.provide('userUrl', 'http://localhost:3000')
+//   nuxtApp.provide('webUrl', 'https://flzxw.bjzxtw.org.cn')
+//   nuxtApp.provide('CwebUrl', 'http://nw.bjzxtw.org.cn')
+//   nuxtApp.provide('BwebUrl', 'https://admin.bjzxtw.org.cn')
+//   nuxtApp.provide('LoginWebUrl', 'http://admin.bjzxtw.org.cn/adminapi')
+//   nuxtApp.provide('userUrl', 'http://localhost:3000')
   
   //乡村网
   // nuxtApp.provide('webUrl', 'http://apipre1.bjzxtw.org.cn:29501')

+ 0 - 0
plugins/pinia.js → plugins/pinia.ts


+ 5 - 6
plugins/request.js → plugins/request.ts

@@ -2,15 +2,15 @@ import { defineNuxtPlugin } from '#app'
 import axios from 'axios'
 import { getToken } from '@/store/useCookieStore'
 
-export default defineNuxtPlugin(nuxtApp => {
+export default defineNuxtPlugin(() => {
 
     let Url = {
         //正式环境
-        webUrl: 'https://flzxw.bjzxtw.org.cn', //接口地址
-        CwebUrl: 'nw.bjzxtw.org.cn' //页面地址
+        // webUrl: 'https://flzxw.bjzxtw.org.cn', //接口地址
+        // CwebUrl: 'nw.bjzxtw.org.cn' //页面地址
         //pre环境
-        // webUrl: 'http://apipre1.bjzxtw.org.cn:29501', //pre接口地址
-        // CwebUrl: 'nwpre.bjzxtw.org.cn' //页面地址
+        webUrl: 'http://apipre1.bjzxtw.org.cn:29501', //pre接口地址
+        CwebUrl: 'nwpre.bjzxtw.org.cn' //页面地址
     }
 
     const service = axios.create({
@@ -45,7 +45,6 @@ export default defineNuxtPlugin(nuxtApp => {
         }
     },
         error => {
-            // console.log(1);
             console.log('err' + error);
         })
 

BIN
public/error/404.png


BIN
public/favicon.ico


BIN
public/images/Iconly/Broken/Search.png


BIN
public/images/Iconly/Two-tone/Arrow - Down 3.png


BIN
public/images/dianhua 1.png


BIN
public/images/guanbi 1.png


BIN
public/images/qq 1.png


BIN
public/images/weixin 1.png


BIN
public/img/10.png


BIN
public/img/11.png


BIN
public/img/12.png


BIN
public/img/13.png


BIN
public/img/14.png


BIN
public/img/15.png


BIN
public/img/16.png


BIN
public/img/17.png


BIN
public/img/18.png


BIN
public/img/19.png


BIN
public/img/2.png


BIN
public/img/20.png


BIN
public/img/21.png


BIN
public/img/22.png


BIN
public/img/23.png


BIN
public/img/24.png


BIN
public/img/3.png


BIN
public/img/4.png


BIN
public/img/5.png


BIN
public/img/6.png


BIN
public/img/7.png


BIN
public/img/8.png


BIN
public/img/9.png


BIN
public/index/ad1.png


BIN
public/index/banner.png


BIN
public/index/logo1.png


BIN
public/special/1.png


BIN
public/special/2.png


BIN
public/special/3.png


BIN
public/special/foot01.png


BIN
public/special/head01.png


BIN
public/special/mid01.png


+ 0 - 0
server/api/index.js → server/api/index.ts


+ 0 - 115
utils/request.js

@@ -1,115 +0,0 @@
-// /**
-//  * @description 同步请求封装
-//  * @param {String} method 请求类型:get,post,delete,put...
-//  * @param {String} url  请求地址,不包含请求域名,如:/api/test
-//  * @param {Object} options  请求参数
-//  * @returns data or error
-//  */
-export const apiUse = async (url, method, options) => {
-	// 当前locale将被存储在locale变量中
-	const nuxtApp = useNuxtApp(); // 获取引入nuxt的第三方模块对象
-	const runConfig = useRuntimeConfig(); // 获取环境变量
-	const baseUrl = runConfig.public.baseUrl;
-	const reqUrl = baseUrl + url;
-	options = {
-		method,
-		headers: {
-			"Content-Type": "application/json",
-		},
-		body: { // post 请求参数存放在body内,get请求参数放到params内
-			...options,
-			token: "",
-			platform: "h5",
-			language: nuxtApp.$i18n.locale.value,
-		},
-	};
-	const {
-		data,
-		error
-	} = await useFetch(reqUrl, options);
-
-	if (error.value) {
-		return error.value;
-	} else {
-		return data.value;
-	}
-};
-
-// /**
-//  * @description 异步请求封装
-//  * @param {String} method 请求类型:get,post,delete,put...
-//  * @param {String} url  请求地址,不包含请求域名,如:/api/test
-//  * @param {Object} options  请求参数
-//  * @description key 一定要有,否则刷新会造成接口错误
-//  */
-export const asyncFetchData = async (url, method, options) => {
-	const nuxtApp = useNuxtApp();
-	const runConfig = useRuntimeConfig();
-	const baseUrl = runConfig.public.baseUrl;
-	const reqUrl = baseUrl + url;
-	const key = url.split('/')[url.split('/').length - 1] //这里取接口最后的名称做key
-	const {
-		data,
-		pending,
-		error,
-		refresh
-	} = await useAsyncData(key, () => $fetch(reqUrl, { 
-		// useAsyncData也可以用useLazyAsyncData,区别就是useLazyAsyncData会等待SSR渲染完成在执行接口,而useLazyAsyncData是接口执行完成执行SSR渲染
-		method,
-		headers: {
-			"Content-Type": "application/json",
-		},
-		body: {
-			...options,
-			token: "",
-			platform: "h5",
-			language: nuxtApp.$i18n.locale.value,
-		},
-	}));
-	return {
-		data,
-		pending,
-		error,
-		refresh
-	};
-}
-
-// /**
-//  * @description 此为apiUse的封装调用实例
-//  */
-
-export const fGET = (url, params) => {
-	return apiUse(url, "GET", params);
-};
-
-export const fPOST = (url, params) => {
-	return apiUse(url, "POST", params);
-};
-
-export const fPUT = (url, params) => {
-	return apiUse(url, "put", params);
-};
-
-export const fDELETE = (url, params) => {
-	return apiUse(url, "delete", params);
-};
-
-
-// /**
-//  * @description 此为asyncFetchData的调用实例
-//  */
-export const GET = (url, params) => {
-	return asyncFetchData(url, 'GET', params);
-};
-
-export const POST = (url, params) => {
-	return asyncFetchData(url, "POST", params);
-};
-
-export const PUT = (url, params) => {
-	return asyncFetchData(url, "put", params);
-};
-
-export const DELETE = (url, params) => {
-	return asyncFetchData(url, "delete", params);
-};

Some files were not shown because too many files changed in this diff