瀏覽代碼

Merge branch 'feature/v4.8.83' of https://jygit.jydev.jianyu360.cn/qmx/jy into dev/v4.8.83_wmh

wenmenghao321 1 年之前
父節點
當前提交
b07f01c007
共有 54 個文件被更改,包括 3510 次插入2163 次删除
  1. 2 2
      src/go.mod
  2. 4 4
      src/go.sum
  3. 1054 420
      src/index.yaml
  4. 3 4
      src/jfw/config/config.go
  5. 116 90
      src/jfw/front/index.go
  6. 22 12
      src/jfw/front/nzjProject.go
  7. 12 10
      src/jfw/front/supsearch.go
  8. 1201 1199
      src/jfw/front/swordfish.go
  9. 1 0
      src/jfw/modules/bigmember/src/config.yaml
  10. 2 1
      src/jfw/modules/bigmember/src/config/config.go
  11. 17 3
      src/jfw/modules/bigmember/src/service/use/use.go
  12. 35 0
      src/jfw/modules/subscribepay/src/entity/basePack.go
  13. 9 3
      src/jfw/modules/subscribepay/src/service/basePack.go
  14. 17 12
      src/jfw/modules/subscribepay/src/service/resourcePack.go
  15. 0 1
      src/jfw/tag/a_init.go
  16. 1 1
      src/jfw/tag/menu.go
  17. 1 9
      src/jfw/tag/util.go
  18. 3 2
      src/web/staticres/brand/css/brand.css
  19. 0 0
      src/web/staticres/common-module/login-js/jy-login-mini.umd.js
  20. 0 0
      src/web/staticres/common-module/login-js/jy-login.umd.js
  21. 1 1
      src/web/staticres/css/dev2/biddingSearch.css
  22. 39 11
      src/web/staticres/css/pc.css
  23. 0 4
      src/web/staticres/css/pc/index.css
  24. 0 3
      src/web/staticres/dataSmt/css/index.css
  25. 41 0
      src/web/staticres/js/header-message.js
  26. 194 3
      src/web/staticres/js/index/index_2023.12.js
  27. 186 0
      src/web/staticres/js/index/index_charts.js
  28. 1 0
      src/web/staticres/js/index/index_swiper.js
  29. 2 4
      src/web/staticres/js/login.js
  30. 0 143
      src/web/staticres/js/pc-collect-user-info.js
  31. 137 24
      src/web/staticres/pccss/index_pc.css
  32. 5 2
      src/web/staticres/public-pc/css/header-nav-mini.css
  33. 82 65
      src/web/staticres/public-pc/js/article-content.js
  34. 0 42
      src/web/staticres/public-pc/js/header-nav-mini.js
  35. 2 1
      src/web/staticres/public-pc/js/header-nav.js
  36. 23 0
      src/web/staticres/public-pc/js/pc-bottom.js
  37. 9 1
      src/web/templates/common/include-head.html
  38. 148 0
      src/web/templates/common/pc-header-nav-brand.html
  39. 3 2
      src/web/templates/common/pc-header-nav-mini.html
  40. 2 2
      src/web/templates/common/pc-header-nav-second.html
  41. 2 1
      src/web/templates/common/pcbottom.html
  42. 15 46
      src/web/templates/common/pchead.html
  43. 23 9
      src/web/templates/frontRouter/pc/brand/free/index.html
  44. 4 0
      src/web/templates/pc/biddetail_rec.html
  45. 12 2
      src/web/templates/pc/newIndex.html
  46. 23 11
      src/web/templates/pc/supsearch.html
  47. 1 1
      src/web/templates/pc/template/index/bidding-desc-module.html
  48. 1 1
      src/web/templates/pc/template/index/bidding-good-news-card.html
  49. 38 2
      src/web/templates/pc/template/index/data-service-module.html
  50. 9 3
      src/web/templates/pc/template/index/ent-service-module.html
  51. 1 1
      src/web/templates/pc/template/index/hot-industry-card.html
  52. 1 1
      src/web/templates/pc/template/index/module-card-list-container.html
  53. 4 3
      src/web/templates/pc/template/index/search-module.html
  54. 1 1
      src/web/templates/pc/template/index/zb-aside-card.html

+ 2 - 2
src/go.mod

@@ -6,7 +6,7 @@ require (
 	app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230308011651-df591d32df88
 	app.yhyue.com/moapp/jybase v0.0.0-20231116061739-cd852201a8f4
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
-	app.yhyue.com/moapp/jypkg v1.1.3
+	app.yhyue.com/moapp/jypkg v1.1.8
 	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15-0.20230925060020-8e4db0f1e13e
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/bwmarrin/snowflake v0.3.0
@@ -23,7 +23,7 @@ require (
 	app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d // indirect
 	app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae // indirect
 	bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e // indirect
-	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20231213051710-2ef9bdb50e79 // indirect
+	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20231219101235-04145dbf45f4 // indirect
 	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8 // indirect
 	github.com/BurntSushi/toml v1.2.0 // indirect
 	github.com/ClickHouse/clickhouse-go/v2 v2.2.0 // indirect

+ 4 - 4
src/go.sum

@@ -9,14 +9,14 @@ app.yhyue.com/moapp/jybase v0.0.0-20231116061739-cd852201a8f4 h1:qfqQL2GJV3N31DF
 app.yhyue.com/moapp/jybase v0.0.0-20231116061739-cd852201a8f4/go.mod h1:Hv9U/7oHRucqH315Tr1+d03NCvS9mOKPfk8pwwlOIwQ=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545 h1:+Lak4m1zgsigQloOsvp8AJ+0XeX/+PGp9QP550xlbBQ=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545/go.mod h1:uFrsdUBFbETiJlEmr4PtJWPsZlUpPj2bHQRhryu6ggk=
-app.yhyue.com/moapp/jypkg v1.1.3 h1:py1imaq0SQvoU77zKhUJp4CC9oOg2Cb+EAHfY9Ylek0=
-app.yhyue.com/moapp/jypkg v1.1.3/go.mod h1:sMZxJOsD3STWGY04aDhUtRD+1u5nqhQpdDdpSW3JC1Y=
+app.yhyue.com/moapp/jypkg v1.1.8 h1:4DtQf0UkNU+XzEDU3WmqakvAzKATP+CjY1J5J6NosNo=
+app.yhyue.com/moapp/jypkg v1.1.8/go.mod h1:j8v5+elGJ14UxJvofhqa+XLy6Ppb3hkLHdDcMsAmWEU=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae h1:6rDDaz6yxvE8viTSzEBwKYOFWq14TMfuBivSazUZMz4=
 app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae/go.mod h1:b0zZHev3gmJao1Fo+2Z2KPVjsuLOJVvVxf+kCnu9WkA=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e h1:h+VEI3o1qC0jeCzkFGTrLI4f27cfa/W/y+0sXokWMgE=
 bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20230214091519-89a98c01ab0e/go.mod h1:7Xhygw0KBuL4h0G76FnFg4otQcA9bmOO0c8M0FCjAyQ=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20231213051710-2ef9bdb50e79 h1:oG+ehJ1jPezZZUE9dEdCBTlmbr5Ckyquo5Iu3JzWelM=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20231213051710-2ef9bdb50e79/go.mod h1:rCCaOSWBYfQabf/yIvSVheSPtN2THnHeTl2J5/RrcuU=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20231219101235-04145dbf45f4 h1:CZ0vzU5DfWlhuOchC2AxvyE10f0gGwFZgZAkj2JZhJk=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20231219101235-04145dbf45f4/go.mod h1:rCCaOSWBYfQabf/yIvSVheSPtN2THnHeTl2J5/RrcuU=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8 h1:14Yxzutsej7LQe3jnN61wuRX9qjAZ4FtdWMA27ewQ3w=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.8/go.mod h1:rRiGzKG4F/fmkNxXQCxrkxNWc8yf1SmW8qWCKfGIQSM=
 bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.15-0.20230925060020-8e4db0f1e13e h1:bncHHkJLqiDW1ZN6MVe+3bj3i0LxWgFkfqge6Gk7lB4=

+ 1054 - 420
src/index.yaml

@@ -6,9 +6,9 @@ topMenu:
       - name: 招标预告
         href: /list/stype/ZBYG.html
       - name: 招标结果
-        href: /list/stype/ZBGG.html
+        href: /list/stype/ZBJG.html
       - name: 招标信用
-        href: /list/stype/ZBYG.html
+        href: /list/stype/ZBXYXX.html
       - name: 采购意向
         href: /list/stype/CGYX.html
         class: red
@@ -50,21 +50,21 @@ topMenu:
       - name: 企业数据
         href: /datasmt/qygssj_1
       - name: 业主数据
-        href: /datasmt/qygssj_1
+        href: /datasmt/cgdwsj_1
   - title: 营销分析
     child:
       - name: 企业分析
         href: /jylab/entSearch/index.html?searchvalue=&searchvalue=&selectType=title%2Ccontent
       - name: 市场分析
-        href: /big/page/sc
+        href: /front/routerRelay/scfx
         class: red
       - name: 业主分析
         href: /jylab/purSearch/index.html
       - name: 渠道扩展
-        href: /big/page/yw
+        href: /front/routerRelay/qdkz
         class: red
       - name: 投标决策分析
-        href: /big/page/tb
+        href: /front/routerRelay/tbjc
   - title: 专属服务
     child:
       - name: 标书代写
@@ -79,37 +79,23 @@ topMenu:
         href: /swordfish/frontPage/cooperation/free/index
         class: red
       - name: 合作招募
-        href: /swordfish/frontPage/recruitment/free/index
+        href: /swordfish/frontPage/partner/free/index
       - name: 发布供需信息
-        href:  /swordfish/frontPage/InformationDistribution/free/index
+        href: /swordfish/frontPage/InformationDistribution/free/index
         class: red
   - title: 企业服务
     child:
       - name: 数字化营销
-        href: /front/entServerTransfer/yxgl
+        href: /front/routerRelay/yxgl
         class: red
       - name: 医械通
-        href: /front/entServerTransfer/yxt
+        href: /front/routerRelay/yxt
       - name: 客户管理
-        href: /front/entServerTransfer/khgl
+        href: /front/routerRelay/khgl
       - name: 年终报告
-        href: /front/entServerTransfer/nzbg
-      - name: 招标项目管理
-        href: /front/entServerTransfer/tbxmgl
-
-topMenuSpecial:
-  - name: 招标公告
-    href: /list/stype/ZBGG.html
-  - name: 招标结果
-    href: /list/stype/ZBGG.html
-  - name: 采购意向
-    href: /list/stype/CGYX.html
-  - name: 企业直采
-    href: /list/stype/QYZC.html
-  - name: 热门项目
-    href: /list/rmxm/
-  - name: 市场分析
-    href: /big/page/sc
+        href: /front/routerRelay/nzbg
+      - name: 投标项目管理
+        href: /front/routerRelay/tbxmgl
 
 # 区位配置
 areaLocation:
@@ -197,504 +183,1152 @@ industryArr:
   - areaArr:
       - area: 广东
         quarterArr:
-          - firstQuarter: 37588
-            secondQuarter: 47537
-            thirdQuarter: 44969
-            fourthQuarter: 38246
+          - quarterCount: 37588
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 47537
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 44969
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 38246
       - area: 河南
         quarterArr:
-          - firstQuarter: 5107
-            secondQuarter: 7002
-            thirdQuarter: 9423
-            fourthQuarter: 9289
+          - quarterCount: 5107
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 7002
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 9423
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 9289
       - area: 北京
         quarterArr:
-          - firstQuarter: 8591
-            secondQuarter: 12634
-            thirdQuarter: 14005
-            fourthQuarter: 12150
+          - quarterCount: 8591
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 12634
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 14005
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 12150
       - area: 江苏
         quarterArr:
-          - firstQuarter: 11404
-            secondQuarter: 15346
-            thirdQuarter: 16518
-            fourthQuarter: 14523
+          - quarterCount: 11404
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 15346
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 16518
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 14523
       - area: 湖北
         quarterArr:
-          - firstQuarter: 9211
-            secondQuarter: 13292
-            thirdQuarter: 13539
-            fourthQuarter: 13637
+          - quarterCount: 9211
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 13292
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 13539
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 13637
       - area: 山东
         quarterArr:
-          - firstQuarter: 10696
-            secondQuarter: 18387
-            thirdQuarter: 16995
-            fourthQuarter: 16732
+          - quarterCount: 10696
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 18387
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 16995
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 16732
       - area: 河北
         quarterArr:
-          - firstQuarter: 4713
-            secondQuarter: 5844
-            thirdQuarter: 5807
-            fourthQuarter: 4732
-      - area: 四川
-        quarterArr:
-          - firstQuarter: 7101
-            secondQuarter: 11730
-            thirdQuarter: 12218
-            fourthQuarter: 10853
-      - area: 陕西
-        quarterArr:
-          - firstQuarter: 3950
-            secondQuarter: 6025
-            thirdQuarter: 6928
-            fourthQuarter: 6849
+          - quarterCount: 4713
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 5844
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 5807
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 4732
+#      - area: 四川
+#        quarterArr:
+#          - quarterCount: 7101
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 11730
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 12218
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 10853
+#      - area: 陕西
+#        quarterArr:
+#          - quarterCount: 3950
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 6025
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 6928
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 6849
     industry: 信息技术
   - areaArr:
       - area: 广东
         quarterArr:
-          - firstQuarter: 60029
-            secondQuarter: 72589
-            thirdQuarter: 62958
-            fourthQuarter: 49048
+          - quarterCount: 60029
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 72589
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 62958
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 49048
       - area: 河南
         quarterArr:
-          - firstQuarter: 5341
-            secondQuarter: 7035
-            thirdQuarter: 6622
-            fourthQuarter: 5549
+          - quarterCount: 5341
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 7035
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 6622
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 5549
       - area: 北京
         quarterArr:
-          - firstQuarter: 6352
-            secondQuarter: 8897
-            thirdQuarter: 9414
-            fourthQuarter: 6977
+          - quarterCount: 6352
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 8897
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 9414
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 6977
       - area: 江苏
         quarterArr:
-          - firstQuarter: 11857
-            secondQuarter: 14898
-            thirdQuarter: 15141
-            fourthQuarter: 13500
+          - quarterCount: 11857
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 14898
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 15141
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 13500
       - area: 湖北
         quarterArr:
-          - firstQuarter: 14518
-            secondQuarter: 20741
-            thirdQuarter: 20124
-            fourthQuarter: 19911
+          - quarterCount: 14518
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 20741
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 20124
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 19911
       - area: 山东
         quarterArr:
-          - firstQuarter: 133107
-            secondQuarter: 124809
-            thirdQuarter: 46409
-            fourthQuarter: 53874
+          - quarterCount: 133107
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 124809
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 46409
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 53874
       - area: 河北
         quarterArr:
-          - firstQuarter: 5680
-            secondQuarter: 6376
-            thirdQuarter: 5744
-            fourthQuarter: 4618
-      - area: 四川
-        quarterArr:
-          - firstQuarter: 9328
-            secondQuarter: 12639
-            thirdQuarter: 12146
-            fourthQuarter: 9450
-      - area: 陕西
-        quarterArr:
-          - firstQuarter: 3862
-            secondQuarter: 6642
-            thirdQuarter: 6799
-            fourthQuarter: 5968
+          - quarterCount: 5680
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 6376
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 5744
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 4618
+#      - area: 四川
+#        quarterArr:
+#          - quarterCount: 9328
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 12639
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 12146
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 9450
+#      - area: 陕西
+#        quarterArr:
+#          - quarterCount: 3862
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 6642
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 6799
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 5968
     industry: 服务采购
   - areaArr:
       - area: 广东
         quarterArr:
-          - firstQuarter: 69553
-            secondQuarter: 96976
-            thirdQuarter: 82592
-            fourthQuarter: 68195
+          - quarterCount: 69553
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 96976
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 82592
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 68195
       - area: 河南
         quarterArr:
-          - firstQuarter: 7809
-            secondQuarter: 12327
-            thirdQuarter: 14705
-            fourthQuarter: 14721
+          - quarterCount: 7809
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 12327
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 14705
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 14721
       - area: 北京
         quarterArr:
-          - firstQuarter: 3679
-            secondQuarter: 6218
-            thirdQuarter: 7792
-            fourthQuarter: 6304
+          - quarterCount: 3679
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 6218
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 7792
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 6304
       - area: 江苏
         quarterArr:
-          - firstQuarter: 8911
-            secondQuarter: 12066
-            thirdQuarter: 12907
-            fourthQuarter: 10532
+          - quarterCount: 8911
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 12066
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 12907
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 10532
       - area: 湖北
         quarterArr:
-          - firstQuarter: 15318
-            secondQuarter: 23237
-            thirdQuarter: 25002
-            fourthQuarter: 27866
+          - quarterCount: 15318
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 23237
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 25002
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 27866
       - area: 山东
         quarterArr:
-          - firstQuarter: 22094
-            secondQuarter: 51520
-            thirdQuarter: 36310
-            fourthQuarter: 40360
+          - quarterCount: 22094
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 51520
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 36310
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 40360
       - area: 河北
         quarterArr:
-          - firstQuarter: 5923
-            secondQuarter: 8513
-            thirdQuarter: 7514
-            fourthQuarter: 7097
-      - area: 四川
-        quarterArr:
-          - firstQuarter: 8246
-            secondQuarter: 14750
-            thirdQuarter: 15428
-            fourthQuarter: 13677
-      - area: 陕西
-        quarterArr:
-          - firstQuarter: 4375
-            secondQuarter: 7868
-            thirdQuarter: 8601
-            fourthQuarter: 8258
+          - quarterCount: 5923
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 8513
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 7514
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 7097
+#      - area: 四川
+#        quarterArr:
+#          - quarterCount: 8246
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 14750
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 15428
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 13677
+#      - area: 陕西
+#        quarterArr:
+#          - quarterCount: 4375
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 7868
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 8601
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 8258
     industry: 行政办公
   - areaArr:
       - area: 广东
         quarterArr:
-          - firstQuarter: 1137
-            secondQuarter: 1457
-            thirdQuarter: 1334
-            fourthQuarter: 1158
+          - quarterCount: 1137
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 1457
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 1334
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 1158
       - area: 河南
         quarterArr:
-          - firstQuarter: 347
-            secondQuarter: 461
-            thirdQuarter: 574
-            fourthQuarter: 431
+          - quarterCount: 347
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 461
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 574
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 431
       - area: 北京
         quarterArr:
-          - firstQuarter: 527
-            secondQuarter: 809
-            thirdQuarter: 956
-            fourthQuarter: 801
+          - quarterCount: 527
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 809
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 956
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 801
       - area: 江苏
         quarterArr:
-          - firstQuarter: 853
-            secondQuarter: 1150
-            thirdQuarter: 1236
-            fourthQuarter: 964
+          - quarterCount: 853
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 1150
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 1236
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 964
       - area: 湖北
         quarterArr:
-          - firstQuarter: 459
-            secondQuarter: 586
-            thirdQuarter: 652
-            fourthQuarter: 547
+          - quarterCount: 459
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 586
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 652
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 547
       - area: 山东
         quarterArr:
-          - firstQuarter: 648
-            secondQuarter: 1142
-            thirdQuarter: 1125
-            fourthQuarter: 1102
+          - quarterCount: 648
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 1142
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 1125
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 1102
       - area: 河北
         quarterArr:
-          - firstQuarter: 308
-            secondQuarter: 422
-            thirdQuarter: 407
-            fourthQuarter: 329
-      - area: 四川
-        quarterArr:
-          - firstQuarter: 433
-            secondQuarter: 698
-            thirdQuarter: 692
-            fourthQuarter: 593
-      - area: 陕西
-        quarterArr:
-          - firstQuarter: 252
-            secondQuarter: 375
-            thirdQuarter: 516
-            fourthQuarter: 438
+          - quarterCount: 308
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 422
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 407
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 329
+#      - area: 四川
+#        quarterArr:
+#          - quarterCount: 433
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 698
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 692
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 593
+#      - area: 陕西
+#        quarterArr:
+#          - quarterCount: 252
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 375
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 516
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 438
     industry: 弱电安防
   - areaArr:
       - area: 广东
         quarterArr:
-          - firstQuarter: 77910
-            secondQuarter: 102403
-            thirdQuarter: 100886
-            fourthQuarter: 76437
+          - quarterCount: 77910
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 102403
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 100886
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 76437
       - area: 河南
         quarterArr:
-          - firstQuarter: 15269
-            secondQuarter: 20334
-            thirdQuarter: 21529
-            fourthQuarter: 16354
+          - quarterCount: 15269
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 20334
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 21529
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 16354
       - area: 北京
         quarterArr:
-          - firstQuarter: 10557
-            secondQuarter: 20155
-            thirdQuarter: 28390
-            fourthQuarter: 17564
+          - quarterCount: 10557
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 20155
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 28390
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 17564
       - area: 江苏
         quarterArr:
-          - firstQuarter: 28858
-            secondQuarter: 37495
-            thirdQuarter: 37819
-            fourthQuarter: 30337
+          - quarterCount: 28858
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 37495
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 37819
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 30337
       - area: 湖北
         quarterArr:
-          - firstQuarter: 20369
-            secondQuarter: 27262
-            thirdQuarter: 29323
-            fourthQuarter: 21413
+          - quarterCount: 20369
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 27262
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 29323
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 21413
       - area: 山东
         quarterArr:
-          - firstQuarter: 31881
-            secondQuarter: 41197
-            thirdQuarter: 34228
-            fourthQuarter: 26156
+          - quarterCount: 31881
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 41197
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 34228
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 26156
       - area: 河北
         quarterArr:
-          - firstQuarter: 66598
-            secondQuarter: 42512
-            thirdQuarter: 22753
-            fourthQuarter: 15983
-      - area: 四川
-        quarterArr:
-          - firstQuarter: 21925
-            secondQuarter: 29653
-            thirdQuarter: 30201
-            fourthQuarter: 22670
-      - area: 陕西
-        quarterArr:
-          - firstQuarter: 10028
-            secondQuarter: 15798
-            thirdQuarter: 20436
-            fourthQuarter: 15296
+          - quarterCount: 66598
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 42512
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 22753
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 15983
+#      - area: 四川
+#        quarterArr:
+#          - quarterCount: 21925
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 29653
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 30201
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 22670
+#      - area: 陕西
+#        quarterArr:
+#          - quarterCount: 10028
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 15798
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 20436
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 15296
     industry: 建筑工程
+#  - areaArr:
+#      - area: 广东
+#        quarterArr:
+#          - quarterCount: 10680
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 13009
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 12454
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 9943
+#      - area: 河南
+#        quarterArr:
+#          - quarterCount: 3632
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 4388
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 4342
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 3331
+#      - area: 北京
+#        quarterArr:
+#          - quarterCount: 3443
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 5079
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 5804
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 4468
+#      - area: 江苏
+#        quarterArr:
+#          - quarterCount: 7049
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 8339
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 7610
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 6650
+#      - area: 湖北
+#        quarterArr:
+#          - quarterCount: 5261
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 6425
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 6259
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 4801
+#      - area: 山东
+#        quarterArr:
+#          - quarterCount: 5960
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 8703
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 8462
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 7197
+#      - area: 河北
+#        quarterArr:
+#          - quarterCount: 11906
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 8907
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 5471
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 3921
+#      - area: 四川
+#        quarterArr:
+#          - quarterCount: 4600
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 6305
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 6138
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 4879
+#      - area: 陕西
+#        quarterArr:
+#          - quarterCount: 2638
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 3685
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 4174
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 3203
+#    industry: 水利水电
   - areaArr:
       - area: 广东
         quarterArr:
-          - firstQuarter: 10680
-            secondQuarter: 13009
-            thirdQuarter: 12454
-            fourthQuarter: 9943
-      - area: 河南
-        quarterArr:
-          - firstQuarter: 3632
-            secondQuarter: 4388
-            thirdQuarter: 4342
-            fourthQuarter: 3331
-      - area: 北京
-        quarterArr:
-          - firstQuarter: 3443
-            secondQuarter: 5079
-            thirdQuarter: 5804
-            fourthQuarter: 4468
-      - area: 江苏
-        quarterArr:
-          - firstQuarter: 7049
-            secondQuarter: 8339
-            thirdQuarter: 7610
-            fourthQuarter: 6650
-      - area: 湖北
-        quarterArr:
-          - firstQuarter: 5261
-            secondQuarter: 6425
-            thirdQuarter: 6259
-            fourthQuarter: 4801
-      - area: 山东
-        quarterArr:
-          - firstQuarter: 5960
-            secondQuarter: 8703
-            thirdQuarter: 8462
-            fourthQuarter: 7197
-      - area: 河北
-        quarterArr:
-          - firstQuarter: 11906
-            secondQuarter: 8907
-            thirdQuarter: 5471
-            fourthQuarter: 3921
-      - area: 四川
-        quarterArr:
-          - firstQuarter: 4600
-            secondQuarter: 6305
-            thirdQuarter: 6138
-            fourthQuarter: 4879
-      - area: 陕西
-        quarterArr:
-          - firstQuarter: 2638
-            secondQuarter: 3685
-            thirdQuarter: 4174
-            fourthQuarter: 3203
-    industry: 水利水电
-  - areaArr:
-      - area: 广东
-        quarterArr:
-          - firstQuarter: 6165
-            secondQuarter: 7124
-            thirdQuarter: 6342
-            fourthQuarter: 5190
+          - quarterCount: 6165
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 7124
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 6342
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 5190
       - area: 河南
         quarterArr:
-          - firstQuarter: 1826
-            secondQuarter: 2117
-            thirdQuarter: 2119
-            fourthQuarter: 1401
+          - quarterCount: 1826
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 2117
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 2119
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 1401
       - area: 北京
         quarterArr:
-          - firstQuarter: 1233
-            secondQuarter: 1476
-            thirdQuarter: 1694
-            fourthQuarter: 1608
+          - quarterCount: 1233
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 1476
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 1694
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 1608
       - area: 江苏
         quarterArr:
-          - firstQuarter: 2582
-            secondQuarter: 3053
-            thirdQuarter: 3107
-            fourthQuarter: 2790
+          - quarterCount: 2582
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 3053
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 3107
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 2790
       - area: 湖北
         quarterArr:
-          - firstQuarter: 1995
-            secondQuarter: 2394
-            thirdQuarter: 2238
-            fourthQuarter: 1879
+          - quarterCount: 1995
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 2394
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 2238
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 1879
       - area: 山东
         quarterArr:
-          - firstQuarter: 2493
-            secondQuarter: 3384
-            thirdQuarter: 3346
-            fourthQuarter: 2966
+          - quarterCount: 2493
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 3384
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 3346
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 2966
       - area: 河北
         quarterArr:
-          - firstQuarter: 2174
-            secondQuarter: 1955
-            thirdQuarter: 1886
-            fourthQuarter: 1459
-      - area: 四川
-        quarterArr:
-          - firstQuarter: 2490
-            secondQuarter: 2686
-            thirdQuarter: 2871
-            fourthQuarter: 2782
-      - area: 陕西
-        quarterArr:
-          - firstQuarter: 1225
-            secondQuarter: 1188
-            thirdQuarter: 1332
-            fourthQuarter: 1162
+          - quarterCount: 2174
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 1955
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 1886
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 1459
+#      - area: 四川
+#        quarterArr:
+#          - quarterCount: 2490
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 2686
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 2871
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 2782
+#      - area: 陕西
+#        quarterArr:
+#          - quarterCount: 1225
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 1188
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 1332
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 1162
     industry: 医疗卫生
+#  - areaArr:
+#      - area: 广东
+#        quarterArr:
+#          - quarterCount: 6269
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 8241
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 7401
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 6372
+#      - area: 河南
+#        quarterArr:
+#          - quarterCount: 1905
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 2753
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 2761
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 2249
+#      - area: 北京
+#        quarterArr:
+#          - quarterCount: 1113
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 1968
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 2667
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 2071
+#      - area: 江苏
+#        quarterArr:
+#          - quarterCount: 3034
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 4147
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 4236
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 3413
+#      - area: 湖北
+#        quarterArr:
+#          - quarterCount: 2640
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 3669
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 3808
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 3258
+#      - area: 山东
+#        quarterArr:
+#          - quarterCount: 51928
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 35797
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 5690
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 5180
+#      - area: 河北
+#        quarterArr:
+#          - quarterCount: 5180
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 2670
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 2101
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 1693
+#      - area: 四川
+#        quarterArr:
+#          - quarterCount: 2361
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 3202
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 3077
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 2689
+#      - area: 陕西
+#        quarterArr:
+#          - quarterCount: 1110
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 1824
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 2428
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 1833
+#    industry: 交通工程
   - areaArr:
       - area: 广东
         quarterArr:
-          - firstQuarter: 6269
-            secondQuarter: 8241
-            thirdQuarter: 7401
-            fourthQuarter: 6372
-      - area: 河南
-        quarterArr:
-          - firstQuarter: 1905
-            secondQuarter: 2753
-            thirdQuarter: 2761
-            fourthQuarter: 2249
-      - area: 北京
-        quarterArr:
-          - firstQuarter: 1113
-            secondQuarter: 1968
-            thirdQuarter: 2667
-            fourthQuarter: 2071
-      - area: 江苏
-        quarterArr:
-          - firstQuarter: 3034
-            secondQuarter: 4147
-            thirdQuarter: 4236
-            fourthQuarter: 3413
-      - area: 湖北
-        quarterArr:
-          - firstQuarter: 2640
-            secondQuarter: 3669
-            thirdQuarter: 3808
-            fourthQuarter: 3258
-      - area: 山东
-        quarterArr:
-          - firstQuarter: 51928
-            secondQuarter: 35797
-            thirdQuarter: 5690
-            fourthQuarter: 5180
-      - area: 河北
-        quarterArr:
-          - firstQuarter: 5180
-            secondQuarter: 2670
-            thirdQuarter: 2101
-            fourthQuarter: 1693
-      - area: 四川
-        quarterArr:
-          - firstQuarter: 2361
-            secondQuarter: 3202
-            thirdQuarter: 3077
-            fourthQuarter: 2689
-      - area: 陕西
-        quarterArr:
-          - firstQuarter: 1110
-            secondQuarter: 1824
-            thirdQuarter: 2428
-            fourthQuarter: 1833
-    industry: 交通工程
-  - areaArr:
-      - area: 广东
-        quarterArr:
-          - firstQuarter: 12523
-            secondQuarter: 13059
-            thirdQuarter: 11343
-            fourthQuarter: 9738
+          - quarterCount: 12523
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 13059
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 11343
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 9738
       - area: 河南
         quarterArr:
-          - firstQuarter: 3748
-            secondQuarter: 4367
-            thirdQuarter: 4587
-            fourthQuarter: 4053
+          - quarterCount: 3748
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 4367
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 4587
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 4053
       - area: 北京
         quarterArr:
-          - firstQuarter: 2867
-            secondQuarter: 4688
-            thirdQuarter: 5616
-            fourthQuarter: 3975
+          - quarterCount: 2867
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 4688
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 5616
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 3975
       - area: 江苏
         quarterArr:
-          - firstQuarter: 5994
-            secondQuarter: 7676
-            thirdQuarter: 6863
-            fourthQuarter: 6163
+          - quarterCount: 5994
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 7676
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 6863
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 6163
       - area: 湖北
         quarterArr:
-          - firstQuarter: 6662
-            secondQuarter: 8626
-            thirdQuarter: 8208
-            fourthQuarter: 7651
+          - quarterCount: 6662
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 8626
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 8208
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 7651
       - area: 山东
         quarterArr:
-          - firstQuarter: 41221
-            secondQuarter: 35429
-            thirdQuarter: 25850
-            fourthQuarter: 30742
+          - quarterCount: 41221
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 35429
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 25850
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 30742
       - area: 河北
         quarterArr:
-          - firstQuarter: 5040
-            secondQuarter: 5394
-            thirdQuarter: 4712
-            fourthQuarter: 4005
-      - area: 四川
-        quarterArr:
-          - firstQuarter: 6333
-            secondQuarter: 7427
-            thirdQuarter: 6764
-            fourthQuarter: 6057
-      - area: 陕西
-        quarterArr:
-          - firstQuarter: 2993
-            secondQuarter: 4192
-            thirdQuarter: 4749
-            fourthQuarter: 3959
+          - quarterCount: 5040
+            year: 2023
+            quarter: 第一季度
+          - quarterCount: 5394
+            year: 2023
+            quarter: 第二季度
+          - quarterCount: 4712
+            year: 2023
+            quarter: 第三季度
+          - year: 2023
+            quarter: 第四季度
+            quarterCount: 4005
+#      - area: 四川
+#        quarterArr:
+#          - quarterCount: 6333
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 7427
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 6764
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 6057
+#      - area: 陕西
+#        quarterArr:
+#          - quarterCount: 2993
+#            year: 2023
+#            quarter: 第一季度
+#          - quarterCount: 4192
+#            year: 2023
+#            quarter: 第二季度
+#          - quarterCount: 4749
+#            year: 2023
+#            quarter: 第三季度
+#          - year: 2023
+#            quarter: 第四季度
+#            quarterCount: 3959
     industry: 机械设备

+ 3 - 4
src/jfw/config/config.go

@@ -38,10 +38,9 @@ type IndustryTrend struct {
 	AreaArr []struct {
 		Area       string `json:"area"`
 		QuarterArr []struct {
-			FirstQuarter  int `json:"firstQuarter,omitempty"`
-			SecondQuarter int `json:"secondQuarter,omitempty"`
-			ThirdQuarter  int `json:"thirdQuarter,omitempty"`
-			FourthQuarter int `json:"fourthQuarter,omitempty"`
+			QuarterCount int    `json:"quarterCount,omitempty"`
+			Quarter      string `json:"quarter,omitempty"`
+			Year         string `json:"year,omitempty"`
 		} `json:"quarterArr"`
 	} `json:"areaArr"`
 	Industry string `json:"industry"`

+ 116 - 90
src/jfw/front/index.go

@@ -6,7 +6,6 @@ import (
 	"app.yhyue.com/moapp/jybase/encrypt"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
 	"app.yhyue.com/moapp/jybase/redis"
-	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/bidsearch"
 	"app.yhyue.com/moapp/jypkg/public"
 	"context"
 	"encoding/json"
@@ -18,19 +17,20 @@ import (
 	"jy/src/jfw/jyutil"
 	"jy/src/jfw/site/jySchool"
 	"math/rand"
+	"regexp"
 	"time"
 )
 
 type NewIndex struct {
 	*xweb.Action
-	newIndex          xweb.Mapper `xweb:"/"`                             //首页改版
-	entServerTransfer xweb.Mapper `xweb:"/front/entServerTransfer/(.*)"` //企业服务中转
-	appDownload       xweb.Mapper `xweb:"/front/appDownload"`            //新app下载页面
+	newIndex    xweb.Mapper `xweb:"/"`                       //首页改版
+	routerRelay xweb.Mapper `xweb:"/front/routerRelay/(.*)"` //企业服务中转
+	appDownload xweb.Mapper `xweb:"/front/appDownload"`      //新app下载页面
 }
 
 var (
-	entServerTransferMap map[string]map[bool]string
-	BiddingTypeUrl       = map[int]string{
+	routerRelayMap map[string]map[bool]string
+	BiddingTypeUrl = map[int]string{
 		1:  "/list/stype/ZBYG.html",
 		2:  "/list/stype/ZBJG.html",
 		3:  "/list/stype/CGYX.html",
@@ -44,29 +44,100 @@ var (
 
 func init() {
 	xweb.AddAction(&NewIndex{})
-	entServerTransferMap = map[string]map[bool]string{
-		"yxgl": map[bool]string{ //【营销管理】根据code判断是否有权限 bi_yx
+	routerRelayMap = map[string]map[bool]string{
+		"yxgl": { //【营销管理】根据code判断是否有权限 bi_yx
 			true:  fmt.Sprintf("/page_workDesktop/work-bench/page?link=%s/succbi/crm_system/app/crm.app/sales_clues.spg", config.Sysconfig["webdomain"].(string)),
 			false: "/swordfish/frontPage/digitalMarketing/free/index",
 		},
-		"yxt": map[bool]string{ //【医械通】根据code判断是否有权限  lyh_yl_yldy
+		"yxt": { //【医械通】根据code判断是否有权限  lyh_yl_yldy
 			true:  "/page_workDesktop/work-bench/app/big/medical/Credentials",
 			false: "http://clpages.cn/yxtsjgwyxy",
 		},
-		"khgl": map[bool]string{ //【客户管理】根据code判断是否有权限 bi_yx
+		"khgl": { //【客户管理】根据code判断是否有权限 bi_yx
 			true:  fmt.Sprintf("/page_workDesktop/work-bench/page?link=%s/succbi/crm_system/app/crm.app/sales_clues.spg", config.Sysconfig["webdomain"].(string)),
 			false: "/swordfish/frontPage/customanage/free/index",
 		},
-		"tbxmgl": map[bool]string{ //【投标项目管理】根据code判断是否有权限 cb_zy_code
-			true:  "/big/attend_bidding/mine",
+		"tbxmgl": { //【投标项目管理】根据code判断是否有权限 cb_zy_code
+			true:  "/page_workDesktop/work-bench/app/big/attend_bidding/mine",
 			false: "/swordfish/frontPage/biddingProject/free/index",
 		},
-		"nzbg": map[bool]string{ //【年终报告】根据code判断是否有权限
+		"nzbg": { //【年终报告】根据code判断是否有权限
 			true:  fmt.Sprintf("/page_workDesktop/work-bench/page?link=%s/succbi/nzbg/app/nzbg.app/nzbg_entrance_pc.spg", config.Sysconfig["webdomain"].(string)),
-			false: "/swordfish/frontPage/AnnualReport/free/index",
+			false: "http://clpages.cn/nzbg",
+		},
+		"xxfb": { //【信息发布】根据登录否判断
+			true:  fmt.Sprintf("/page_workDesktop/work-bench/page?link=%s/swordfish/page_web_pc/issued/info", config.Sysconfig["webdomain"].(string)),
+			false: "/swordfish/frontPage/InformationDistribution/free/index",
+		},
+		"scfx": { //【市场分析报告】 根据登录否判断
+			true:  "/page_workDesktop/work-bench/app/big/desktop/report_analysis",
+			false: "/big/page/sc",
+		},
+		"qdkz": { //【渠道扩展】 根据大会员权益7判断
+			true:  "/swordfish/page_big_pc/potential_cor_list/c",
+			false: "/big/page/yw",
+		},
+		"tbjc": { //【投标决策分析】 根据大会员权益6判断
+			true:  "/page_workDesktop/work-bench/app/big/analysis_result",
+			false: "/big/page/tb",
 		},
 	}
 }
+func (nIndex *NewIndex) RouterRelay(code string) {
+	toUrl := func() string {
+		sessVal := nIndex.Session().GetMultiple()
+		accountId := common.Int64All(sessVal["accountId"])
+		if accountId <= 0 { //未登录
+			return routerRelayMap[code][false]
+		}
+		if code == "nzbg" || code == "xxfb" || code == "scfx" {
+			return routerRelayMap[code][true]
+		}
+		entAccountId := common.Int64All(sessVal["entAccountId"])
+		entId := common.Int64All(sessVal["entId"])
+		entUserId := common.Int64All(sessVal["entUserId"])
+		res := config.Middleground.ResourceCenter.Haspowers(accountId, entAccountId, entId, entUserId)
+
+		powerPass := false
+		switch code {
+		case "yxgl", "khgl":
+			for _, pCode := range res.Powers {
+				if pCode == "bi_yx" {
+					powerPass = true
+					break
+				}
+			}
+		case "yxt":
+			for _, pCode := range res.Powers {
+				if pCode == "lyh_yl_yldy" {
+					powerPass = true
+					break
+				}
+			}
+		case "tbxmgl":
+			for _, pCode := range res.Powers {
+				if pCode == "cb_zy_code" {
+					powerPass = true
+					break
+				}
+			}
+		case "tbjc", "qdkz": //大会员权益判断
+			powerRes := config.Middleground.PowerCheckCenter.Check("10000", gconv.String(sessVal["mgoUserId"]), gconv.Int64(sessVal["base_user_id"]), gconv.Int64(sessVal["accountId"]), gconv.Int64(sessVal["entId"]), gconv.Int64(sessVal["positionType"]), gconv.Int64(sessVal["positionId"]))
+			for _, pInt := range powerRes.Member.MemberPowerList {
+				if code == "tbjc" && pInt == 6 {
+					powerPass = true
+					break
+				}
+				if code == "qdkz" && pInt == 7 {
+					powerPass = true
+					break
+				}
+			}
+		}
+		return routerRelayMap[code][powerPass]
+	}()
+	_ = nIndex.Redirect(toUrl)
+}
 
 // NewIndex 新版首页改版
 func (nIndex *NewIndex) NewIndex() error {
@@ -79,14 +150,14 @@ func (nIndex *NewIndex) NewIndex() error {
 	if userId != "" {
 		nickname, vipType := gconv.String(sessVal["userName"]), "注册用户"
 		var endTime int64
+		//来源于接口/user/getSimpleData
+		phone, _ := sessVal["phone"].(string)
+		nickname, _ = common.If(sessVal["s_nickname"] != nil, sessVal["s_nickname"], sessVal["app_name"]).(string)
 		if nickname == "" {
-			nickname = gconv.String(sessVal["s_nickname"])
-		}
-		if nickname == "" {
-			nickname = gconv.String(sessVal["s_jyname"])
-		}
-		if nickname == "" {
-			nickname = gconv.String(sessVal["phone"])
+			var PhoneReg = regexp.MustCompile(`^(100\d{8}|1[3-9]\d{9})$`)
+			if PhoneReg.MatchString(phone) {
+				nickname = string(phone[0:3]) + "****" + string(phone[(len(phone)-4):])
+			}
 		}
 
 		powerRes := config.Middleground.PowerCheckCenter.Check("10000", gconv.String(sessVal["mgoUserId"]), gconv.Int64(sessVal["base_user_id"]), gconv.Int64(sessVal["accountId"]), gconv.Int64(sessVal["entId"]), gconv.Int64(sessVal["positionType"]), gconv.Int64(sessVal["positionId"]))
@@ -113,8 +184,9 @@ func (nIndex *NewIndex) NewIndex() error {
 	//顶部菜单
 	nIndex.T["topMenu"] = g.Cfg("index").MustGet(context.Background(), "topMenu").Maps()
 	//招标公告
+	biddingList, _ := GetRecommendBidZone(5, 8)
 	nIndex.T["newbids"] = map[string]interface{}{
-		"biddingList": NewIndexbids(nIndex.Session(), nIndex.Request),
+		"biddingList": biddingList,
 		"more":        fmt.Sprintf("%s", "/list/stype/ZBGG.html"),
 	}
 	//推荐标讯专区
@@ -172,49 +244,6 @@ func (nIndex *NewIndex) NewIndex() error {
 	return nIndex.Render("/pc/newIndex.html", &nIndex.T)
 }
 
-func (nIndex *NewIndex) EntServerTransfer(code string) {
-	toUrl := func() string {
-		sessVal := nIndex.Session().GetMultiple()
-		accountId := common.Int64All(sessVal["accountId"])
-		if accountId <= 0 { //未登录
-			return entServerTransferMap[code][false]
-		}
-		if code == "nzbg" {
-			return entServerTransferMap[code][true]
-		}
-		entAccountId := common.Int64All(sessVal["entAccountId"])
-		entId := common.Int64All(sessVal["entId"])
-		entUserId := common.Int64All(sessVal["entUserId"])
-		res := config.Middleground.ResourceCenter.Haspowers(accountId, entAccountId, entId, entUserId)
-		powerPass := false
-		switch code {
-		case "yxgl", "khgl":
-			for _, pCode := range res.Powers {
-				if pCode == "bi_yx" {
-					powerPass = true
-					break
-				}
-			}
-		case "yxt":
-			for _, pCode := range res.Powers {
-				if pCode == "lyh_yl_yldy" {
-					powerPass = true
-					break
-				}
-			}
-		case "tbxmgl":
-			for _, pCode := range res.Powers {
-				if pCode == "cb_zy_code" {
-					powerPass = true
-					break
-				}
-			}
-		}
-		return entServerTransferMap[code][powerPass]
-	}()
-	_ = nIndex.Redirect(toUrl)
-}
-
 func (nIndex *NewIndex) AppDownload() {
 	nIndex.T["includedInfo"] = GetIncludedInfo()
 	nIndex.Render("/frontRouter/pc/AppDownload/free/index.html", &nIndex.T)
@@ -226,49 +255,46 @@ func GetRecommendBidZone(typ int, pageSize int) (list []map[string]interface{},
 		typ = 1
 	}
 	rediskey := fmt.Sprintf("pcIndexRecommendBidZone_%d", typ)
-	subtype := ""
+	sql := ""
 	switch typ {
 	case 1:
 		//招标预告
-		subtype = "预告"
 		typs = "招标预告"
+		sql = fmt.Sprintf(" toptype = '%s' ", "预告")
 	case 2:
 		//招标中标成交
-		subtype = "中标,成交"
 		typs = "中标成交"
+		sql = fmt.Sprintf(" subtype = '%s' or subtype = '%s' ", "中标", "成交")
 	case 3:
 		//采购意向
-		subtype = "采购意向"
 		typs = "采购意向"
+		sql = fmt.Sprintf(" toptype = '%s' ", "采购意向")
 	case 4:
 		//拟建
-		subtype = "拟建"
 		typs = "拟建项目"
+		sql = fmt.Sprintf(" toptype = '%s' ", "拟建")
+	case 5:
+		typs = "招标公告"
+		sql = fmt.Sprintf(" toptype = '%s' ", "招标")
 	}
-	if l, ok := redis.Get("newother", rediskey).([]interface{}); ok && l != nil && len(l) > 0 {
+	if l, ok := redis.Get(RedisNameNew, rediskey).([]interface{}); ok && l != nil && len(l) > 0 {
 		list = common.ObjArrToMapArr(l)
+		return list, typs
 	} else {
-		_, _, lists := bidsearch.GetPcBidSearchData("", "", "", "", subtype, "", "", "", "", "", "", "", "", 1, false, nil, bidSearch_field_1, "", false, false, "", pageSize, "")
-		if lists != nil && len(*lists) >= 5 {
-			*lists = (*lists)[0:5]
-			for _, v := range *lists {
-				v["_id"] = encrypt.CommonEncodeArticle("indexcontent", v["_id"].(string))
-				delete(v, "toptype")
-				delete(v, "s_subscopeclass")
-				tmpdate := v["publishtime"]
-				v["publish_time"] = time.Unix(common.Int64All(tmpdate.(float64)), 0).Format("2006-01-02")
-				/*if v["budget"] != nil {
-				  	v["budget"] = ConversionMoeny(v["budget"])
-				  } else if v["bidamount"] != nil {
-				  	v["budget"] = ConversionMoeny(v["bidamount"])
-				  }*/
-			}
+		bidRes, _ := g.DB().Query(gctx.New(), fmt.Sprintf(`SELECT bid_id,title,publish_time FROM new_bidList WHERE %s ORDER BY publish_time DESC limit %d`, sql, pageSize))
+		if bidRes.IsEmpty() {
+			return nil, typs
+		}
+		var finalArr []map[string]interface{}
+		for _, m := range bidRes.List() {
+			m["_id"] = encrypt.EncodeArticleId2ByCheck(common.ObjToString(m["bid_id"]))
+			m["publish_time"] = time.Unix(common.Int64All(m["publish_time"]), 0).Format("2006-01-02")
+			finalArr = append(finalArr, m)
 
-			list = *lists
-			redis.Put("other", rediskey, list, 2*60*60)
 		}
+		redis.Put(RedisNameNew, rediskey, finalArr, 24*3600)
+		return finalArr, typs
 	}
-	return list, typs
 }
 
 // GetStrategyList 招投标攻略
@@ -308,7 +334,7 @@ func GetIndexProjectList(typ, pageSize int) (data []map[string]interface{}, type
 		data = common.ObjArrToMapArr(redisArr)
 		return
 	}
-	res, err := g.DB().Query(gctx.New(), fmt.Sprintf(`SELECT nbl.bid_id as bid_id,nbl.title as title,nbl.publish_time as publish_time FROM jyseo_test.new_bid_sign nbs  LEFT JOIN jyseo_test.new_bidList nbl ON nbs.bid_id = nbl.bid_id  WHERE bitmapContains(sign, %d) ORDER BY publish_time DESC LIMIT %d `, typ, pageSize))
+	res, err := g.DB().Query(gctx.New(), fmt.Sprintf(`SELECT nbl.bid_id as bid_id,nbl.title as title,nbl.publish_time as publish_time FROM new_bid_sign nbs  LEFT JOIN new_bidList nbl ON nbs.bid_id = nbl.bid_id  WHERE bitmapContains(sign, %d) ORDER BY publish_time DESC LIMIT %d `, typ, pageSize))
 	if err != nil || res.IsEmpty() {
 		return nil, types
 	}

+ 22 - 12
src/jfw/front/nzjProject.go

@@ -31,6 +31,10 @@ type ClaimProject struct {
 	analyzeWord xweb.Mapper `xweb:"/homePage/analyzeWord"` //首页定制化分析报告词收集
 }
 
+func init() {
+	xweb.AddAction(&ClaimProject{})
+}
+
 func (l *ClaimProject) AnalyzeWord() {
 	userId := l.GetSession("userId")
 	analyzeWord := l.GetString("analyzeWord")
@@ -44,6 +48,7 @@ func (l *ClaimProject) AnalyzeWord() {
 }
 
 func (l *ClaimProject) NzjSearch() {
+	//userId, _ := l.GetSession("user_id").(string)
 	infoMap := map[string]interface{}{}
 	body := xweb.FilterXSS(string(l.Body()))
 	json.Unmarshal([]byte(body), &infoMap)
@@ -242,17 +247,19 @@ func timeFmt(tm string) string {
 func getNzjList(infoMap map[string]interface{}) (count int64, list *[]map[string]interface{}) {
 	pageNum := common.If(common.IntAll(infoMap["pageNum"]) <= 0, 1, common.IntAll(infoMap["pageNum"])).(int)
 	pageSize := common.IntAll(infoMap["pageSize"])
+	if pageNum*pageSize > common.IntAll(config.Sysconfig["nzjLimit"]) { //工作台外 默认只能搜索搜索100
+		pageNum = 1
+		pageSize = 50
+	}
 	if isEmpty(infoMap) {
 		return nzjEmptySearch(pageNum, pageSize)
 	}
+
 	musts := esQuery(infoMap)
 	if pageNum == 1 {
 		count = elastic.Count(proposed, proposed, fmt.Sprintf(`{"query": {"bool": {"must": [%s]}}`, strings.Join(musts, ",")))
-		if count > common.Int64All(config.Sysconfig["nzjLimit"]) {
-			count = common.Int64All(config.Sysconfig["nzjLimit"])
-		}
 	}
-	list = elastic.Get(proposed, proposed, fmt.Sprintf(`{"query": {"bool": {"must": [%s]}},"_source":["projectname","area_city","lasttime","project_stage","ownerclass","proposed_id","category","project_stage"],"sort":[{"lasttime":{"order":"desc"}}],"from":%d,"size":%d`, strings.Join(musts, ","), pageNum*pageSize, pageSize))
+	list = elastic.Get(proposed, proposed, fmt.Sprintf(`{"query": {"bool": {"must": [%s]}},"_source":["projectname","area_city","lasttime","project_stage","ownerclass","proposed_id","category","project_stage"],"sort":[{"lasttime":{"order":"desc"}}],"from":%d,"size":%d`, strings.Join(musts, ","), (pageNum-1)*pageSize, pageSize))
 	return
 }
 
@@ -330,16 +337,19 @@ func esQuery(infoMap map[string]interface{}) []string {
 }
 
 func nzjEmptySearch(pageNum, pageSize int) (int64, *[]map[string]interface{}) {
+	var ds []map[string]interface{}
 	data, _ := redis.Get("newother", nzjRedisKey).([]interface{})
 	if len(data) > 0 {
-		ds := common.ObjArrToMapArr(data)[(pageNum-1)*pageSize : pageNum*pageSize]
-		return common.Int64All(len(ds)), &ds
-	} //获取
-	dataArr := public.BaseMysql.SelectBySql(fmt.Sprintf(`SELECT * FROM Jianyu_subjectdb.dwd_f_nzj_baseinfo ORDER BY lasttime DESC LIMIT %v`, config.Sysconfig["nzjLimit"]))
-	if dataArr != nil && len(*dataArr) > 0 {
-		redis.Put("newother", nzjRedisKey, *dataArr, 3600*24)
+		ds = common.ObjArrToMapArr(data)[(pageNum-1)*pageSize : pageNum*pageSize]
+	} else {
+		dataArr := public.BaseMysql.SelectBySql(fmt.Sprintf(`SELECT * FROM Jianyu_subjectdb.dwd_f_nzj_baseinfo ORDER BY lasttime DESC LIMIT %v`, config.Sysconfig["nzjLimit"]))
+		if dataArr != nil && len(*dataArr) > 0 {
+			redis.Put("newother", nzjRedisKey, *dataArr, 3600*24)
+			ds = (*dataArr)[(pageNum-1)*pageSize : pageNum*pageSize]
+		}
 	}
-	return 0, dataArr
+	return common.Int64All(len(ds)), &ds
+
 }
 
 func isEmpty(infoMap map[string]interface{}) bool {
@@ -347,7 +357,7 @@ func isEmpty(infoMap map[string]interface{}) bool {
 		if k == "pageNum" || k == "pageSize" {
 			continue
 		}
-		if v != nil || v != "" {
+		if v != nil && v != "" {
 			return false
 		}
 	}

+ 12 - 10
src/jfw/front/supsearch.go

@@ -359,18 +359,20 @@ func (p *Pcsearch) PcSearchIndex(module string) error {
 	if userId == "" {
 		//未登录用户访问全部信息类型 需要过滤掉 拟建
 		// p397 未登录用户收回查看拟建权限
-		if strings.Contains(subtype, "采购意向") || strings.Contains(subtype, "拟建") {
-			var ss []string
-			for _, v := range strings.Split(subtype, ",") {
-				if v != "采购意向" && !strings.Contains(v, "拟建") {
-					ss = append(ss, v)
+		if searchGroup < 2 {
+			if strings.Contains(subtype, "采购意向") || strings.Contains(subtype, "拟建") {
+				var ss []string
+				for _, v := range strings.Split(subtype, ",") {
+					if v != "采购意向" && !strings.Contains(v, "拟建") {
+						ss = append(ss, v)
+					}
 				}
+				subtype = strings.Join(ss, ",")
+			}
+			if subtype == "" {
+				subtype = "招标预告,招标公告,招标结果,招标信用信息"
+				noLoginBl = true
 			}
-			subtype = strings.Join(ss, ",")
-		}
-		if subtype == "" {
-			subtype = "招标预告,招标公告,招标结果,招标信用信息"
-			noLoginBl = true
 		}
 		//未登录用户搜索范围 标题和 正文
 		var selectTypeArr []string

File diff suppressed because it is too large
+ 1201 - 1199
src/jfw/front/swordfish.go


+ 1 - 0
src/jfw/modules/bigmember/src/config.yaml

@@ -3,3 +3,4 @@ etcd:
   - 192.168.3.149:2379
 powerCheckCenterKey: "powercheck.rpc" #权益校验中台
 userCenterKey: "usercenter.rpc" #用户中台rpc
+resourceCenterKey: "resource.rpc" #资源中台

+ 2 - 1
src/jfw/modules/bigmember/src/config/config.go

@@ -109,5 +109,6 @@ func init() {
 	var ctx = gctx.New()
 	Middleground = middleground.NewMiddleground(g.Cfg().MustGet(ctx, "etcd.hosts").Strings()).
 		RegPowerCheckCenter(g.Cfg().MustGet(ctx, "powerCheckCenterKey").String()).
-		RegUserCenter(g.Cfg().MustGet(ctx, "userCenterKey").String())
+		RegUserCenter(g.Cfg().MustGet(ctx, "userCenterKey").String()).
+		RegResourceCenter(g.Cfg().MustGet(ctx, "resourceCenterKey").String())
 }

+ 17 - 3
src/jfw/modules/bigmember/src/service/use/use.go

@@ -445,8 +445,22 @@ func (u *Use) Attachment() {
 		if userid == "" {
 			return Result{Data: nil, Error_msg: "未登录"}
 		}
-		//前端传的是加密的id 需要解密
-		infoId := util.DecodeId(u.GetString("infoId")) //"5ddf222ce9d1f601e469e00c  5f50c37dc0145440737556d0"
+		resHasPower := false
+		infoId := u.GetString("infoId")
+		if u.GetString("source") == "bi" {
+			resResp := config.Middleground.ResourceCenter.Haspowers(qu.Int64All(u.GetSession("accountId")), qu.Int64All(u.GetSession("entAccountId")), qu.Int64All(u.GetSession("entId")), qu.Int64All(u.GetSession("entUserId")))
+			if resResp != nil {
+				for _, v := range resResp.Powers {
+					if v == "bi_sj_sjqk" || v == "bi_sf_sjqd" {
+						resHasPower = true
+						break
+					}
+				}
+			}
+		} else {
+			//前端传的是加密的id 需要解密
+			infoId = util.DecodeId(infoId) //"5ddf222ce9d1f601e469e00c  5f50c37dc0145440737556d0"
+		}
 		// 调用rpc
 		req := util.JyMemberRequest{infoId}
 		rep, err := util.Attachment(&req)
@@ -459,7 +473,7 @@ func (u *Use) Attachment() {
 		m := rep.Rep
 		BaseMsg := jy.GetBigVipUserBaseMsg(u.Session(), *config.Middleground)
 		status := BaseMsg.Status
-		if status <= 0 {
+		if !resHasPower && status <= 0 {
 			for _, v := range m {
 				for k, _ := range v {
 					if k != "filename" && k != "size" {

+ 35 - 0
src/jfw/modules/subscribepay/src/entity/basePack.go

@@ -2,12 +2,14 @@ package entity
 
 import (
 	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
+	"app.yhyue.com/moapp/jybase/redis"
 	"encoding/json"
 	"fmt"
 	"github.com/gogf/gf/v2/util/gconv"
 	"jy/src/jfw/modules/subscribepay/src/config"
 	"jy/src/jfw/modules/subscribepay/src/util"
 	"log"
+	"strconv"
 	"time"
 
 	qutil "app.yhyue.com/moapp/jybase/common"
@@ -26,6 +28,18 @@ func (this *UseBalanceStruct) defaultConsume() (r map[string]interface{}, m stri
 	return
 }
 
+// KeyAccountConsume 大客户平台 无权限限制
+func (this *UseBalanceStruct) KeyAccountConsume() (r map[string]interface{}, m string, c int) {
+	_fileName := this.Remarks["fileName"].(string)
+	_id := this.Remarks["id"].(string)
+	if this.Remarks["infoType"] != nil && this.Remarks["infoType"].(string) == "S" {
+		r = SupplyInfoFile(_fileName, _id)
+	} else {
+		r = fileAttachRpc(_fileName, _id)
+	}
+	return
+}
+
 // 附件下载消费 fui:免费赠送已使用次数;pui:付费权限已使用次数
 func (this *UseBalanceStruct) fileConsume() (r map[string]interface{}, m string, c int) {
 	_fileName := this.Remarks["fileName"].(string)
@@ -33,6 +47,23 @@ func (this *UseBalanceStruct) fileConsume() (r map[string]interface{}, m string,
 	log.Println("附件下载包。。。。。")
 	BaseMsg := jy.GetBigVipUserBaseMsg(this.Session, *config.Middleground)
 	log.Println("---:", this.Remarks)
+	//P450 v4.8.85
+	var freeFileCacheUpdate = func() {
+		//免费用户 更新留资附件缓存
+		if BaseMsg.Status <= 0 && BaseMsg.VipStatus <= 0 && BaseMsg.EntnicheStatus <= 0 {
+			sess := this.Session.GetMultiple()
+			userId := this.UserId
+			if qutil.IntAll(sess["positionId"]) == 1 {
+				userId = strconv.Itoa(qutil.IntAll(sess["positionId"]))
+			}
+			//已留资
+			if c := qutil.Int64All(redis.GetInt("other", fmt.Sprintf("free_article_attach_%s", userId))); c > 0 {
+				if ok := redis.PutKV(fmt.Sprintf("free_article_attach_%s", userId), -1); !ok {
+					log.Println("free user update file  download power  false:", userId)
+				}
+			}
+		}
+	}
 	//获取余额数量
 	dbs := &FindBalanceStruct{
 		AccountId:    this.UserId,
@@ -44,6 +75,7 @@ func (this *UseBalanceStruct) fileConsume() (r map[string]interface{}, m string,
 	if data == nil || err != nil {
 		c = -1
 		m = "余额不足"
+		go freeFileCacheUpdate()
 		return
 	}
 	number := 0
@@ -69,6 +101,7 @@ func (this *UseBalanceStruct) fileConsume() (r map[string]interface{}, m string,
 			isExists = true
 		}
 	}
+	go freeFileCacheUpdate()
 	if BaseMsg.Status > 0 && BaseMsg.PowerMap[3] {
 		if this.Remarks["infoType"] != nil && this.Remarks["infoType"].(string) == "S" {
 			r = SupplyInfoFile(_fileName, _id)
@@ -240,6 +273,8 @@ func JyConsumePack(userId, product, platform string, remarks map[string]interfac
 	switch product {
 	case "附件下载包":
 		r, m, c = CStruct.fileConsume()
+	case "大客户平台":
+		r, m, c = CStruct.KeyAccountConsume()
 	default:
 		r, m, c = CStruct.defaultConsume()
 	}

+ 9 - 3
src/jfw/modules/subscribepay/src/service/basePack.go

@@ -4,6 +4,7 @@ import (
 	"fmt"
 	"jy/src/jfw/modules/subscribepay/src/entity"
 	"log"
+	"strings"
 	"time"
 
 	. "app.yhyue.com/moapp/jybase/api"
@@ -49,11 +50,16 @@ func (this *ResourcePack) ConsumePack() {
 			return nil, "参数有误"
 		}
 		remarks := map[string]interface{}{
-			"title":    this.GetString("title"),                                                                                                                              //详情页标题
-			"fileName": this.GetString("fileName"),                                                                                                                           //附件名称
-			"id":       qutil.If(infoType != "" && infoType == "S", encrypt.SE.DecodeString(this.GetString("id")), encrypt.DecodeArticleId2ByCheck(this.GetString("id"))[0]), //详情页id
+			"title":    this.GetString("title"),                                                                                                            //详情页标题
+			"fileName": this.GetString("fileName"),                                                                                                         //附件名称
+			"id":       qutil.If(infoType == "S", encrypt.SE.DecodeString(this.GetString("id")), encrypt.DecodeArticleId2ByCheck(this.GetString("id"))[0]), //详情页id
 			"infoType": infoType,
 		}
+		//是否是大客户平台的请求  P449
+		log.Println("-----------:", strings.Contains(this.Request.Referer(), "article/entservice"))
+		if strings.Contains(this.Request.Referer(), "article/entservice") {
+			productName = "大客户平台"
+		}
 		log.Println(infoType, "----", remarks)
 		Ret, Msg, Code := entity.JyConsumePack(userId, productName, platform, remarks, this.Session())
 		if Msg != "" && Code == 0 {

+ 17 - 12
src/jfw/modules/subscribepay/src/service/resourcePack.go

@@ -10,6 +10,7 @@ import (
 	"jy/src/jfw/modules/subscribepay/src/util"
 	"log"
 	"strconv"
+	"strings"
 	"time"
 
 	. "app.yhyue.com/moapp/jybase/api"
@@ -167,18 +168,22 @@ func (this *ResourcePack) Account() {
 		this.ServeJson(Result{Error_msg: "参数错误"})
 		return
 	}
-	vipMsg := jy.GetBigVipUserBaseMsg(this.Session(), *config.Middleground)
-	dbs := &entity.FindBalanceStruct{
-		AccountId:    userId,
-		ResourceType: config.ResConf.Product[product],
-		VipState:     vipMsg.VipStatus,
-	}
-	data, err := dbs.FindBalance()
-	if err != nil {
-		this.ServeJson(Result{Error_msg: "获取失败"})
-		return
-	}
-	this.ServeJson(Result{Data: data})
+	//非大客户平台访问 P449
+	if !strings.Contains(this.Request.Referer(), "article/entservice") {
+		vipMsg := jy.GetBigVipUserBaseMsg(this.Session(), *config.Middleground)
+		dbs := &entity.FindBalanceStruct{
+			AccountId:    userId,
+			ResourceType: config.ResConf.Product[product],
+			VipState:     vipMsg.VipStatus,
+		}
+		data, err := dbs.FindBalance()
+		if err != nil {
+			this.ServeJson(Result{Error_msg: "获取失败"})
+			return
+		}
+		this.ServeJson(Result{Data: data})
+	}
+	this.ServeJson(Result{Data: map[string]interface{}{"code": 1}})
 }
 
 func (this *ResourcePack) Price() {

+ 0 - 1
src/jfw/tag/a_init.go

@@ -17,5 +17,4 @@ func init() {
 	xweb.RootApp().AddTmplVar("ParseHtmlAttr", ParseHtmlAttr)
 	xweb.RootApp().AddTmplVar("Export", Export)
 	xweb.RootApp().AddTmplVar("GetAreaLocations", GetAreaLocations)
-	xweb.RootApp().AddTmplVar("GetTopMenuSpecial", GetTopMenuSpecial)
 }

+ 1 - 1
src/jfw/tag/menu.go

@@ -82,7 +82,7 @@ func (mc *MenuCache) GetSite(url string, isTopMenu bool) int {
 	//配置文件
 	if url == "/" {
 		return commonSite
-	} else if url == "/brand" {
+	} else if url == "/brand" || url == "/brand/index" {
 		return brandFlag
 	} else if url == "/industryInfo/index" {
 		return infoFlag

+ 1 - 9
src/jfw/tag/util.go

@@ -41,8 +41,7 @@ type AreaDom struct {
 }
 
 var (
-	JyAreaLocation   []*AreaLocation
-	JyTopMenuSpecial []map[string]interface{}
+	JyAreaLocation []*AreaLocation
 )
 
 var initAreaLocations = func() []*AreaLocation {
@@ -66,10 +65,3 @@ func GetAreaLocations() []*AreaLocation {
 	}
 	return JyAreaLocation
 }
-
-func GetTopMenuSpecial() []map[string]interface{} {
-	if len(JyTopMenuSpecial) == 0 {
-		return g.Cfg("index").MustGet(context.Background(), "topMenuSpecial").Maps()
-	}
-	return JyTopMenuSpecial
-}

+ 3 - 2
src/web/staticres/brand/css/brand.css

@@ -1,6 +1,6 @@
 .brand_box {
     width: 100%;
-    background: #FFF;
+     background: #FFF;
     /* padding-bottom: 438px; */
     padding-bottom: 111px;
     overflow: hidden;
@@ -30,13 +30,14 @@
 }
 
 .tabs_content {
+    display: flex;
     width: 1000px;
     height: 64px;
     margin: auto;
 }
 
 .tabs_item {
-    width: 20%;
+    flex: 1;
     height: 64px;
     cursor: pointer;
 }

File diff suppressed because it is too large
+ 0 - 0
src/web/staticres/common-module/login-js/jy-login-mini.umd.js


File diff suppressed because it is too large
+ 0 - 0
src/web/staticres/common-module/login-js/jy-login.umd.js


+ 1 - 1
src/web/staticres/css/dev2/biddingSearch.css

@@ -746,7 +746,7 @@ border-radius:2px;
 
 #searchInner .searchControl .searchTender .information .info-content .parent-node.secondActice {
   background-color: #ffffff;
-  padding: 3px 6px;
+  padding: 4px 6px;
   border: 1px dashed #2cb7ca;
   color: #2cb7ca;
 }

+ 39 - 11
src/web/staticres/css/pc.css

@@ -1955,9 +1955,15 @@ form{
 	padding: 0 16px;
 }
 .jy_friendlink_title{
+	width: 48px;
+	font-size: 14px;
+	line-height: 22px;
 	margin-right: 40px;
   word-break: keep-all;
 }
+.jy_friendlink_content {
+	flex: 1;
+}
 .jy_friendlink_content ul li img{
 	height: 28px;
 }
@@ -1995,9 +2001,7 @@ form{
 	display: flex;
 	flex-shrink: 0;
 	flex-direction: column;
-	padding: 0 40px;
-	border-right: 1px solid #E0E0E0;
-	/* flex: 1; */
+	margin-right: 40px;
 }
 .jy_classify_l .jy_classify_column .jy_classify_column_header,
 .jy_classify_l .jy_classify_column .jy_classify_column_header > a{
@@ -2015,16 +2019,9 @@ form{
 .jy_classify_l .jy_classify_column_content {
 	display: flex;
 	flex-direction: column;
-	flex-wrap: wrap;
-	max-height: 130px;
 }
 .jy_classify_l .jy_classify_column .jy_classify_column_content_item{
 	position: relative;
-	margin-left: 32px;
-}
-/* 前六个无左边距 */
-.jy_classify_l .jy_classify_column .jy_classify_column_content_item:nth-of-type(-n+6) {
-    margin-left: 0;
 }
 
 .jy_classify_l .jy_classify_column .jy_classify_column_content_item a{
@@ -2171,7 +2168,31 @@ form{
 	left: 13px;
 }
 
-
+.main-station-theme .jy_classify {
+	padding: 0;
+}
+.main-station-theme .jy_classify_l .jy_classify_column{
+	margin-right: 0;
+	padding: 0 40px;
+	border-right: 1px solid #E0E0E0;
+}
+.main-station-theme .jy_classify_l .jy_classify_column:first-of-type {
+	padding-left: 0;
+}
+.main-station-theme .jy_classify_l .jy_classify_column_content {
+	flex-wrap: wrap;
+	max-height: 130px;
+}
+.main-station-theme .jy_classify_l .jy_classify_column .jy_classify_column_content_item{
+	margin-left: 32px;
+}
+/* 前六个无左边距 */
+.main-station-theme .jy_classify_l .jy_classify_column .jy_classify_column_content_item:nth-of-type(-n+6) {
+    margin-left: 0;
+}
+.main-station-theme .jy_classify_column:first-of-type .jy_classify_column_content  {
+    min-width: 180px;
+}
 
 .jy_proandcify{
 	text-align:left;
@@ -2235,6 +2256,7 @@ form{
 	/*height:438px;*/
 	line-height:22px;
 	position: relative;
+	padding-top: 32px;
   padding-bottom: 65px;
 }
 .userstatus{
@@ -5438,3 +5460,9 @@ h6 {
 .j-bottom.theme-light .jy_classify_kefu .logo-main {
 	display: block;
 }
+.theme-light .jy_friendlink_content ul li {
+	margin-bottom: 6px;
+}
+.theme-light .jy_friendlink_content ul li::after {
+	background-color: #E0E0E0;
+}

+ 0 - 4
src/web/staticres/css/pc/index.css

@@ -1894,8 +1894,4 @@ text-align: center;
   overflow: hidden;
   white-space: nowrap;
   text-overflow: ellipsis;
-}
-  /* 首页底部pc-bottom单独设置的样式 */
-.jy_classify{
-  padding-top: 32px!important;
 }

+ 0 - 3
src/web/staticres/dataSmt/css/index.css

@@ -4,9 +4,6 @@ a:active,
 a:focus{
   text-decoration: none;
 }
-.page--datamarket-index{
-  padding-top: 72px;
-}
 .page--datamarket-index .market-banner{
   width: 100%;
   height: 480px;

+ 41 - 0
src/web/staticres/js/header-message.js

@@ -0,0 +1,41 @@
+// 消息列表获取未读消息
+function Message() {
+  // 初始化
+  this.init = function () {
+    if (!loginflag) return
+    $('#noticed').show()
+    this.getMessageList()
+  }
+  // 悬浮窗列表数据请求
+  this.getMessageList = function () {
+    var params =  {
+      isColumn: false, // 是否需要栏目(消息中心需要)
+      isColumnNewMsg: false,
+      isMsgList: false, // 是否需要列表数据
+      isContainLetter: false, // 是否包含私信数
+      msgType: -1, // 消息类型,-1为全部
+      isRead: 0, // 是否已读
+      offset: 1,
+      size: 0
+    }
+    $.ajax({
+      url: '/jyapi/messageCenter/MessageList',
+      type: 'POST',
+      data: JSON.stringify(params),
+      dataType: 'json',
+      headers: {'Content-Type': 'application/json'},
+      success:function (res) {
+        if (res.unread) {
+          var unreadNum = res.unread;
+          $('#tips').show();
+          $('#tips').html(unreadNum > 99 ? '99+' : unreadNum);
+        } else {
+          $('#tips').hide();
+        }
+      },
+      error:function () {}
+    })
+  }
+  this.init()
+}
+

+ 194 - 3
src/web/staticres/js/index/index_2023.12.js

@@ -1,8 +1,142 @@
+var entAssoc = {
+  list: [],
+  preSearch: {
+    hover: false,
+    focus: false
+  },
+  init: function () {
+    this.initDOMEvents()
+  },
+  isEntSearch: function () {
+    return $('.index-search-module .search-type-list .active').text().indexOf('企业搜索') !== -1
+  },
+  isBuyerSearch: function () {
+    return $('.index-search-module .search-type-list .active').text().indexOf('采购单位搜索') !== -1
+  },
+  initDOMEvents: function () {
+    var _this = this
+    $('#keywords').on('input', this.debounce(function () {
+      var isEntSearch = _this.isEntSearch()
+      var isBuyerSearch = _this.isBuyerSearch()
+      if (isEntSearch || isBuyerSearch) {
+        _this.getAssocList()
+        _this.checkListShow()
+      }
+    }, 300))
+    $('.pre-search-list').on('click', '.pre-search-item', function () {
+      var type = $(this).attr('data-type')
+      var id = $(this).attr('data-id')
+      var name = $(this).attr('data-name')
+      if (type === 'ent') {
+        window.open('/swordfish/page_big_pc/svip/ent_ser_portrait/' + id)
+      } else {
+        window.open('/swordfish/page_big_pc/free/loading/buyer/' + name)
+      }
+    })
+    // 控制list显示隐藏
+    $('#keywords').on('focus', function () {
+      _this.preSearch.focus = true
+      _this.checkListShow()
+    }).on('blur', function () {
+      _this.preSearch.focus = false
+      _this.checkListShow()
+    })
+    $('.pre-search-list').on('mouseout', function () {
+      _this.preSearch.hover = false
+      _this.checkListShow()
+    }).on('mouseover', function () {
+      _this.preSearch.hover = true
+      _this.checkListShow()
+    })
+  },
+  checkListShow: function () {
+    var isEntSearch = this.isEntSearch()
+    var isBuyerSearch = this.isBuyerSearch()
+    var show = $('#keywords').val().length >= 2 && this.list.length && (this.preSearch.focus || this.preSearch.hover) && (isEntSearch || isBuyerSearch)
+    this.listShow(show)
+  },
+  getAssocList: function () {
+    var _this = this
+    var url = ''
+    var isEntSearch = this.isEntSearch()
+    var isBuyerSearch = this.isBuyerSearch()
+    if (isEntSearch) {
+      url = '/bigmember/search/ent/association'
+    } else if (isBuyerSearch) {
+      url = '/bigmember/search/buyer/association'
+    } else {
+      return
+    }
+    var data = {
+      name: $('#keywords').val()
+    }
+    if (data.name.length < 2) return
+    $.ajax({
+      url: url,
+      method: 'POST',
+      data: data,
+      success: function (res) {
+        if (res.error_code === 0) {
+          if (res.data) {
+            _this.list = res.data.list || []
+            if (_this.list.length) {
+              _this.render()
+              _this.checkListShow()
+            }
+          }
+        }
+      }
+    })
+  },
+  render: function () {
+    var container = $('.pre-search-list')
+    var html = ''
+    var isEntSearch = this.isEntSearch()
+    this.list.forEach(function (item) {
+      if (isEntSearch) {
+        html += ('<div class="pre-search-item ellipsis" data-type="ent" data-id=' + item.entId + '>' + item.name + '</div>')
+      } else {
+        html += ('<div class="pre-search-item ellipsis" data-type="buyer" data-name=' + item + '>' + item + '</div>')
+      }
+    })
+    container.html(html)
+  },
+  listShow: function (f) {
+    if (f) {
+      $('.pre-search-list').show()
+    } else {
+      $('.pre-search-list').hide()
+    }
+  },
+  debounce: function (func, delay, immediate) {
+    var timer = null;
+    delay = delay || 200
+    return function () {
+      var context = this;
+      var args = arguments;
+      if (timer) clearTimeout(timer);
+      if (immediate) {
+        var doNow = !timer;
+        timer = setTimeout(function () {
+          timer = null;
+        }, delay);
+        if (doNow) {
+          func.apply(context, args);
+        }
+      } else {
+        timer = setTimeout(function () {
+          func.apply(context, args);
+        }, delay);
+      }
+    }
+  }
+}
+
 var _page = {
   searchInput: $('.index-search-container .search-input'),
   searchConfMap: {
     zb: {
-      placeholder: '请输入搜项目名称等关键词,例如:医疗设备',
+      placeholder: '请输入项目名称等关键词,例如:医疗设备',
       target: '/jylab/supsearch/index.html',
     },
     qy: {
@@ -19,14 +153,37 @@ var _page = {
     },
   },
   init: function () {
+    this.initHotSearchKeysCount()
     this.initEvents()
     this.initHotBuyerShortName()
     this.initHotIndustryTwoLine()
+    console.log('页面事件初始化完成...')
   },
   initEvents: function () {
     this.initSearchEvents()
     this.initBiddingDescTab()
     this.initImportantGovTab()
+    this.initHotIndustrySearch()
+  },
+  initHotSearchKeysCount: function () {
+    // 超出盒子的元素隐藏
+    var container = $('.hot-key-list');
+    var childElements = container.find('.hot-key-item');
+    var containerWidth = container.width();
+    var totalWidth = 0;
+    var lastVisibleIndex = -1;
+    childElements.each(function(index) {
+      var elementWidth = $(this).outerWidth(true); // 包括外边距
+      totalWidth += elementWidth;
+      if (totalWidth > containerWidth) {
+        lastVisibleIndex = index - 1;
+        return false; // 结束循环
+      }
+    });
+    if (lastVisibleIndex >= 0) {
+      childElements.eq(lastVisibleIndex).nextAll().attr('data-overflow-hidden', '');
+      container.find('[data-overflow-hidden]').hide()
+    }
   },
   initSearchEvents: function () {
     var _this = this
@@ -40,10 +197,10 @@ var _page = {
         searchInput.attr('placeholder', conf.placeholder)
       } else if (dataId == 'qy') {
         searchInput.attr('placeholder', conf.placeholder)
-        // entAssoc.getAssocList()
+        entAssoc.getAssocList()
       } else if (dataId == 'cg') {
         searchInput.attr('placeholder', conf.placeholder)
-        // entAssoc.getAssocList()
+        entAssoc.getAssocList()
       } else if (dataId == 'gy') {
         searchInput.attr('placeholder', conf.placeholder)
       }
@@ -100,6 +257,36 @@ var _page = {
       }
     })
   },
+  initHotIndustrySearch: function () {
+    var loading = false
+    $('#doAnalysis').on('click', function () {
+      var val = $('.chart-search-container .search-input').val()
+      if (loading) return
+      if (!val) return
+      var loading = true
+      console.log('sending...')
+      $.ajax({
+        url: '/homePage/analyzeWord',
+        method: 'POST',
+        data: {
+          analyzeWord: val
+        },
+        success: function (res) {
+          var url = ''
+          if (loginflag) {
+            // url = '/swordfish/page_big_pc/desktop/report_analysis'
+            url = '/page_workDesktop/work-bench/app/big/desktop/report_analysis'
+          } else {
+            url = '/big/page/sc'
+          }
+          window.open(url)
+        },
+        complete: function () {
+          loading = false
+        }
+      })
+    })
+  },
   initImportantGovTab: function () {
     var tabWrapper = $('.important-gov-card')
     tabWrapper.find('.i-g-card-header-tab').on('click', function () {
@@ -115,6 +302,9 @@ var _page = {
       // 获取第二行最后一个元素
       var $s = _page.getLine2LastDom($(this), $(this).find('li'))
       $s.attr('data-simple-hidden', '')
+      if ($s.find('a').text().length < 2) {
+        $s.prev().attr('data-simple-hidden', '')
+      }
       $s.nextAll(':not(.more)').attr('data-simple-hidden', '')
       $('.hot-industry [data-simple-hidden]').addClass('hidden')
     })
@@ -158,5 +348,6 @@ var _page = {
 }
 
 $(function () {
+  entAssoc.init()
   _page.init()
 })

+ 186 - 0
src/web/staticres/js/index/index_charts.js

@@ -0,0 +1,186 @@
+var __lineChartsOptions = {
+  grid: {
+    top: '20%',
+    left: '14%',
+    bottom: '18%',
+  },
+  xAxis: {
+    type: 'category',
+    axisTick: false,
+    axisLine: {
+      show: true,
+      lineStyle: {
+        color: '#ECECEC'
+      }
+    },
+    axisLabel: {
+      show: true,
+      textStyle: {
+        fontSize: 12,
+        lineHeight: 18,
+        color: '#686868'
+      }
+    },
+    data: ['Mon\n222', 'Tue', 'Wed', 'Thu']
+  },
+  yAxis: {
+    name: '项目数量(个)',
+    nameGap: '20',
+    type: 'value',
+    axisTick: false,
+    axisLine: {
+      show: false
+    },
+    axisLabel: {
+      show: true,
+      textStyle: {
+        fontSize: 12,
+        lineHeight: 18,
+        color: '#686868'
+      }
+    },
+    splitLine: {
+      show: true,
+      lineStyle: {
+        type: 'dashed'
+      }
+    },
+    nameTextStyle: {
+      fontSize: 12,
+      lineHeight: 18,
+      color: '#686868'
+    }
+  },
+  series: [
+    {
+      data: [120, 200, 150, 80],
+      type: 'bar',
+      barWidth: 20,
+      itemStyle: {
+        opacity: 1,
+        color: new echarts.graphic.LinearGradient(0,0,0,1, [
+          {
+            offset: 0,
+            // color: 'rgba(0,253,255,0.6)'
+            color: '#8DE0EB'
+          },
+          {
+            offset: 1,
+            // color: 'rgba(73,201,229,0)'
+            color: '#2ABED1'
+          }
+        ]),
+        barBorderRadius: [4,4,0,0],
+      }
+    }
+  ],
+  tooltip: {
+    trigger: 'axis',
+    showDelay: 0,
+    backgroundColor: '#fff',
+    borderWidth: 0,
+    extraCssText: 'border-radius:6px;box-shadow:0px 0px 28px 0px rgba(0, 0, 0, 0.1);',
+    axisPointer: {
+      type: 'line',
+      lineStyle: {
+        width: 40,
+        color: 'rgba(5,165,242,0.1)'
+      }
+    },
+    formatter: function (params) {
+      var dataStr = '<div style="padding: 12px 20px;font-size:14px;line-height: 22px;"><p style="color:#686868;">'+ params[0].name +'</p>';
+      var num = params[0].data
+      dataStr += '<div style="margin-top: 4px">'
+      dataStr += '<span style="display:inline-block;margin-right:5px;border-radius:8px;width:8px;height:8px;background:linear-gradient(90deg, #7ED9EC 0%, #2ABED1 99.98%);"></span>';
+      dataStr += '<span style="display:inline-block;margin-left:12px;color:#1d1d1d;">项目数量:'+ num +'</span>';
+      dataStr += '</div>'
+      return dataStr + '</div>';
+    }
+  },
+};
+
+var pageChartsConf = {
+  delimiters: ['${', '}'],
+  el: '#hot-industry-chart-content',
+  data: function () {
+    return {
+      // 原始数据
+      biddingTrendList: [],
+      // 一级选中后的二级数据
+      biddingAreaList: [],
+      // 行业一级分类选中
+      tabActiveIndustry: '',
+      // 省份二级分类选中
+      tabActiveArea: '',
+      areaChartData: []
+    }
+  },
+  created: function () {
+    this.initData()
+  },
+  methods: {
+    initData: function () {
+      this.biddingTrendList = pageData.biddingTrend
+      this.changeTab1(0)
+    },
+    changeTab1: function (index) {
+      this.biddingAreaList = this.biddingTrendList[index].areaArr
+      this.tabActiveIndustry = this.biddingTrendList[index].industry
+      this.changeTab2(0)
+    },
+    changeTab2: function (index) {
+      this.tabActiveArea = this.biddingAreaList[index].area
+      this.areaChartData = this.biddingAreaList[index].quarterArr
+      this.setDataToEchartsConf(this.areaChartData)
+    },
+    clickTabs: function (industryInfo, index) {
+      this.changeTab1(index)
+    },
+    clickChildrenTabs: function (areaInfo, index) {
+      this.changeTab2(index)
+    },
+    setDataToEchartsConf: function (data) {
+      if (!$.isArray(data)) {
+        return
+      }
+      var xAxisData = []
+      var seriesData = []
+      data.forEach(function (item) {
+        xAxisData.push(item.year + '年' + '\n' + item.quarter)
+        seriesData.push(item.quarterCount)
+      })
+      // 设置x轴内容
+      __lineChartsOptions.xAxis.data = xAxisData
+      // 设置数据
+      __lineChartsOptions.series[0].data = seriesData
+      // __lineChartsOptions
+      this.refreshEchartsData()
+    },
+    refreshEchartsData: function () {
+      var _this = this
+      if (this.__lineCharts) {
+        this.$nextTick(function(){
+          _this.__lineCharts.setOption(__lineChartsOptions);
+          _this.__lineCharts.resize();
+        })
+      } else {
+        // 初始化
+        console.log('开始初始化echarts')
+        this.$nextTick(function(){
+          var ref = _this.$refs.lineCharts;
+          var lineCharts = echarts.init(ref);
+          lineCharts.setOption(__lineChartsOptions);
+          _this.__lineCharts = lineCharts
+          console.log('echarts初始化完成...')
+        })
+      }
+    },
+  }
+}
+
+$(function () {
+  var pageCharts = new Vue(pageChartsConf)
+  window.pageCharts = pageCharts
+})
+
+

+ 1 - 0
src/web/staticres/js/index/index_swiper.js

@@ -16,6 +16,7 @@ var pageSwiper = {
     this.partnersInit()
     this.initGongYingShangList()
     this.initDataServiceScrollList()
+    console.log('轮播图初始化完成...')
   },
   initSwiper: function (id) {
     // banner广告位轮播

+ 2 - 4
src/web/staticres/js/login.js

@@ -541,9 +541,6 @@ var processpage = function(item,num){
   var backToUrl = getParam('backTo')
   if (backToUrl) {
     return location.replace(decodeURIComponent(backToUrl))
-  }
-  if (document.referrer === location.href) {
-    return location.replace('/')
   }
 	var toHref=$("#bidLogin").attr("data-rec")
 	switch (toHref) {
@@ -557,8 +554,9 @@ var processpage = function(item,num){
   // 未登录标签页注册后重定向首页
   if (location.href.indexOf('/tags/') > -1) {
     window.location.replace('/')
-  } else if (location.href.indexOf('/nologin/content') > -1) {
+  } else if (location.href.indexOf('/nologin/content') > -1 || location.href.indexOf('/demand/detail') > -1) {
     // 未登录三级页注册后刷新(后端重定向到登陆后的三级页)
+    // /demand/detail 供应搜索三级页登录后刷新
     window.location.reload()
   }
 	clearInterval(loginfg);

File diff suppressed because it is too large
+ 0 - 143
src/web/staticres/js/pc-collect-user-info.js


+ 137 - 24
src/web/staticres/pccss/index_pc.css

@@ -37,7 +37,7 @@
 }
 
 .main-module {
-    padding-top: 20px;
+    margin-top: 20px;
     font-size: 14px;
     line-height: 22px;
 }
@@ -151,6 +151,9 @@
     font-size: 12px;
     line-height: 18px;
 }
+.cms-card-header-right a {
+    font-size: 12px;
+}
 .cms-card.border-ec {
     border-color: rgba(0, 0, 0, 0.05);
     border-color: #ececec;
@@ -202,7 +205,7 @@
     line-height: 28px;
 }
 .user-info-card .user-info-main .to-get-paid-service {
-    margin: 12px 0;
+    margin: 11px 0;
     height: 28px;
     width: 100%;
     border: none;
@@ -219,6 +222,10 @@
     margin: 0 auto;
     width: 230px;
 }
+
+.no-login-card .user-info-main {
+    margin-top: 0;
+}
 /* login */
 .user-info-card .user-info-title {
     display: flex;
@@ -354,12 +361,13 @@
     z-index: 2;
 }
 .index-search-container {
+    position: relative;
     display: flex;
 }
 .index-search-input-container {
     display: flex;
     align-items: center;
-    flex: 1;
+    width: 544px;
     padding-left: 40px;
     padding-right: 32px;
     border: 2px solid #2ABED1;
@@ -389,6 +397,36 @@
 .index-search-module .header-top-center-bd {
     margin-top: 10px;
 }
+
+.index-search-container .pre-search-list {
+    position: absolute;
+    padding: 20px 0;
+    z-index: 6;
+    top: 38px;
+    left: 0;
+    width: 544px;
+    background: #fff;
+    box-shadow: 0 0 20px rgb(0, 0, 0, 0.1);
+    border-radius: 8px;
+    overflow: hidden;
+}
+.index-search-container .pre-search-item {
+    padding: 12px 40px;
+    width: 100%;
+    font-size: 16px;
+    line-height: 24px;
+    color: #686868;
+    box-sizing: border-box;
+    transition: all .3s;
+    cursor: pointer;
+}
+.index-search-container .pre-search-item:hover {
+    padding: 12px 30px;
+    color: #1d1d1d;
+    background-color: #ececec;
+}
+
+
 .hot-key-container {
     display: flex;
     align-items: center;
@@ -419,7 +457,8 @@
 }
 .hot-key-list {
     display: flex;
-    max-width: 550px;
+    width: 534px;
+    overflow: hidden;
 }
 .hot-key-list .hot-key-item {
     margin-right: 12px;
@@ -670,7 +709,7 @@
 .swiper-module-27 .banner-module-item-27 {
     width: 386px;
     height: 80px;
-    border-radius: 4px;
+    border-radius: 8px;
     overflow: hidden;
 }
 .swiper-module-27 .banner-module-item-27 {
@@ -778,20 +817,6 @@
     line-height: 24px;
     color: #1D1D1D;
 }
-.industry-aside-item-name::after {
-    content: '';
-    display: inline-block;
-    width: 4px;
-    height: 14px;
-    background-image: url(../img/icon-right-arrow.png);
-    background-repeat: no-repeat;
-    background-size: 4px 6px;
-    vertical-align: middle;
-    background-position: 0px 3px;
-}
-.industry-aside-item-name a {
-    color: inherit;
-}
 .industry-aside-item-content a {
     font-size: 12px;
 }
@@ -948,10 +973,12 @@
     font-size: 12px;
     line-height: 22px;
 }
-
-.ent-service-module .service-desc-list .service-desc-button:not(:first-of-type) {
+.ent-service-module .service-desc-list li:not(:first-of-type) {
     margin-top: 12px;
 }
+.ent-service-module .service-desc-list li {
+    width: 100%;
+}
 .ent-service-module .service-desc-footer {
     margin-top: 24px;
 }
@@ -997,10 +1024,94 @@
     line-height: 22px;
 }
 .hot-industry-chart-content {
-    margin-top: 24px;
-    /* border: 1px solid deeppink; */
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    margin-top: 16px;
+}
+.hot-industry-chart-content .h-tab-container {
+    display: flex;
+    margin-right: 24px;
+}
+.hot-industry-chart-content .h-tab-column {
+    width: 176px;
+}
+.hot-industry-chart-content .h-tab-column.column-left {
+    margin-right: 20px;
+}
+.hot-industry-chart-content .h-tab-column-title {
+    font-size: 16px;
+    line-height: 22px;
+    text-align: center;
+    width: 100%;
+    margin-bottom: 10px;
+}
+.hot-industry-chart-content .h-tab-column-list {
+    font-size: 16px;
+    line-height: 22px;
+    text-align: center;
+    color: #686868;
+    width: 100%;
+}
+.hot-industry-chart-content .h-tab-column-item {
+    width: 100%;
+    padding: 2px 0;
+}
+.hot-industry-chart-content .h-tab-column-item:not(:last-of-type) {
+    margin-bottom: 4px;
+}
+.h-tab-column-list .j-s-button.plain {
+    border-color: #E0E0E0;
+}
+.h-tab-column-list .j-s-button.plain.active {
+    border-color: #2ABED1;
+    background-color: #EAF8FA;
+}
+#hot-industry-chart {
+    width: 435px;
+    height: 232px;
 }
 
+.hot-industry-chart-footer {
+    margin-top: 22px;
+}
+.chart-search-container {
+    display: flex;
+    margin: 0 auto;
+    width: 754px;
+}
+.chart-search-input-container {
+    display: flex;
+    align-items: center;
+    flex: 1;
+    border: 1px solid #e0e0e0;
+    border-right: none;
+    border-top-left-radius: 6px;
+    border-bottom-left-radius: 6px;
+}
+.chart-search-container .search-input {
+    padding: 0 20px;
+    flex: 1;
+    height: 36px;
+    line-height: 36px;
+    border: none;
+}
+.chart-search-container .search-button {
+    margin-left: -8px;
+    height: 38px;
+    padding: 0 18px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    font-size: 16px;
+    color: #fff;
+    background: linear-gradient(90deg, #2ABED1 0%, rgba(27, 143, 250, 0.96) 99.98%);
+    border-top-right-radius: 6px;
+    border-bottom-right-radius: 6px;
+    border-radius: 6px;
+}
+
+
 /* bidding-desc-module */
 .bidding-desc-module {}
 
@@ -1038,7 +1149,7 @@
 
 .partners-project-item {
     width: 184px;
-    height: 60px;
+    height: 80px;
     border-radius: 4px;
     overflow: hidden;
 }
@@ -1142,7 +1253,9 @@
     background-color: #2ABED1;
 }
 .i-g-card-list-item .cms-link {
+    display: inline-block;
     margin-right: 20px;
+    /* margin-bottom未生效 */
     margin-bottom: 10px;
 }
 

+ 5 - 2
src/web/staticres/public-pc/css/header-nav-mini.css

@@ -12,12 +12,15 @@ a {
 }
 
 /* link */
-.cms-link,
-.cms-link:focus {
+.cms-link {
     font-size: 14px;
     color: #686868;
     text-decoration: none;
 }
+.cms-link:focus {
+    color: #686868;
+    text-decoration: none;
+}
 .cms-link.red {
     color: #FF3A20;
 }

+ 82 - 65
src/web/staticres/public-pc/js/article-content.js

@@ -2409,48 +2409,58 @@ function cjdyDownload (fname) {
     title:goTemplateData.params.obj.title
 },
   success:function(data){
+      //P449 大客户附件下载无限制
     if(data){
-      if (data.r&&data.r.code&&data.r.code<0&&window.vipStatus>0){
-        // 次数用完提醒去充值
-        bidVue.$confirm('您本月附件下载机会已消耗完毕,如需下载更多附件,请前往充值。', {
-          showClose:false,
-          center: true,
-          confirmButtonText: '立即充值',
-          customClass: 'custom-alert',
-          showCancelButton: true,
-          confirmButtonClass: 'custom-confirm-btn',
-          cancelButtonClass: 'custom-cancel-btn',
-          cancelButtonText: '取消'
-        }).then(function(data){
-          location.href = '/swordfish/page_big_pc/free/filePack/buy'
-        }).catch(function(){
-          //$('.open-customer').trigger('click')
-          //$('body').trigger('click')
-        });
-      }else if ((data.m && data.m!="")||data.r["downUrl"]==undefined||data.r["downUrl"]==""){
-        bidVue.$confirm('附件下载异常,请前往联系客服。', {
-          showClose:false,
-          center: true,
-          confirmButtonText: '取消',
-          customClass: 'custom-alert',
-          showCancelButton: true,
-          confirmButtonClass: 'custom-cancel-btn',
-          cancelButtonClass: 'custom-confirm-btn',
-          cancelButtonText: '联系客服'
-        }).then(function(data){
+      if (!entService){
+        if (data.r&&data.r.code&&data.r.code<0&&window.vipStatus>0){
+          // 次数用完提醒去充值
+          bidVue.$confirm('您本月附件下载机会已消耗完毕,如需下载更多附件,请前往充值。', {
+            showClose:false,
+            center: true,
+            confirmButtonText: '立即充值',
+            customClass: 'custom-alert',
+            showCancelButton: true,
+            confirmButtonClass: 'custom-confirm-btn',
+            cancelButtonClass: 'custom-cancel-btn',
+            cancelButtonText: '取消'
+          }).then(function(data){
+            location.href = '/swordfish/page_big_pc/free/filePack/buy'
+          }).catch(function(){
+            //$('.open-customer').trigger('click')
+            //$('body').trigger('click')
+          });
+        }else if ((data.m && data.m!=="")||data.r["downUrl"]===undefined||data.r["downUrl"]===""){
+          bidVue.$confirm('附件下载异常,请前往联系客服。', {
+            showClose:false,
+            center: true,
+            confirmButtonText: '取消',
+            customClass: 'custom-alert',
+            showCancelButton: true,
+            confirmButtonClass: 'custom-cancel-btn',
+            cancelButtonClass: 'custom-confirm-btn',
+            cancelButtonText: '联系客服'
+          }).then(function(data){
 
-        }).catch(function(){
-          $('.open-customer').trigger('click')
-          $('body').trigger('click')
-        });
+          }).catch(function(){
+            $('.open-customer').trigger('click')
+            $('body').trigger('click')
+          });
+        }else{
+          if(data.r&&fname == data.r["fileName"]){
+            if (!data.r["isExists"]){
+              $(".file-count").text($(".file-count").text()-1);
+            }
+            getFilePackLastCount()
+            location.href = data.r["downUrl"] + '?response-content-type=application/octet-stream'
+            //goDownload(data.r["downUrl"])
+          }
+        }
       }else{
         if(data.r&&fname == data.r["fileName"]){
           if (!data.r["isExists"]){
             $(".file-count").text($(".file-count").text()-1);
           }
-          getFilePackLastCount()
           location.href = data.r["downUrl"] + '?response-content-type=application/octet-stream'
-          //goDownload(data.r["downUrl"])
         }
       }
     }
@@ -2486,8 +2496,12 @@ function getFileData () {
         $(".downs").click(function (){
           var name = $(this).find('a').text()
           var fname = name.replace(/^\d+./, '')
-          if(window.isFree){
-            if(window.freeFile == 0){
+          //P449
+          if(location.pathname.indexOf('entservice') !== -1){
+            // 大客户来源 进入附件下载页面
+            cjdyDownload(fname)
+          }else if(window.isFree){
+            if(window.freeFile === 0){
               // 判断有无留过资 且未体验过 - 去留资
               // 弹窗留资弹框,第一个参数为source,第二个是留资成功后是否需要刷新页面 可不传,不传即为不刷新
               // 不需要再调是否留资接口 只要isAdd接口里返回得对应参数值为0 即为需要留资 直接调noCallApiFn方法弹出弹框即可
@@ -2614,35 +2628,38 @@ function getFilePackLastCount () {
 
 // 根据isAdd接口 展示附件部分dom
 function showFileSomeDom () {
-  // 免费用户展示可下载一次提示(免费用户且没有体验过附件下载权益的展示)
-  $('.free-download .text').text(window.filePackAccount.number)
-  if (window.isFree) {
-    // 免费用户未留过资。次数为0,则值置为1,点击按钮引导留资
-    if (window.freeFile == 0 && window.filePackAccount.number == 0) {
-      $('.free-download .text').text(1)
-    }
-    if (window.freeFile == 0 || window.filePackAccount.number > 0) {
-      // 展示按钮
-      $('.free-download').css('display', 'inline-block')
-      $('.free-go-open').hide()
-    } else {
-      // 展示引导超级订阅
-      $('.free-go-open').css('display', 'inline-block')
-      $('.free-download').hide()
-    }
-  }
-  // 新超级订阅用户
-  if (window.vipStatus > 0 && window.viper) {
-    $('.super-vip-show').show()
-    $('.super-vip-show .file-count').html(window.filePackAccount.number)
-    $('.recharge-new').unbind("click").bind("click",function(){
-      //超级订阅附件下载立即充值页面
-      window.open("/swordfish/page_big_pc/free/filePack/buy")
-    })
-  }
-  // 大会员隐藏次数
-  if(window.memberStatus >0 && window.memberPower.indexOf(3) >= 0){
-    $('.super-vip-show').hide()
+  //非大客户来源 P449
+  if(location.pathname.indexOf('entservice') <0) {
+    // 免费用户展示可下载一次提示(免费用户且没有体验过附件下载权益的展示)
+    $('.free-download .text').text(window.filePackAccount.number)
+    if (window.isFree) {
+      // 免费用户未留过资。次数为0,则值置为1,点击按钮引导留资
+      if (window.freeFile == 0 && window.filePackAccount.number == 0) {
+        $('.free-download .text').text(1)
+      }
+      if (window.freeFile == 0 || window.filePackAccount.number > 0) {
+        // 展示按钮
+        $('.free-download').css('display', 'inline-block')
+        $('.free-go-open').hide()
+      } else {
+        // 展示引导超级订阅
+        $('.free-go-open').css('display', 'inline-block')
+        $('.free-download').hide()
+      }
+    }
+    // 新超级订阅用户
+    if (window.vipStatus > 0 && window.viper) {
+      $('.super-vip-show').show()
+      $('.super-vip-show .file-count').html(window.filePackAccount.number)
+      $('.recharge-new').unbind("click").bind("click", function () {
+        //超级订阅附件下载立即充值页面
+        window.open("/swordfish/page_big_pc/free/filePack/buy")
+      })
+    }
+    // 大会员隐藏次数
+    if (window.memberStatus > 0 && window.memberPower.indexOf(3) >= 0) {
+      $('.super-vip-show').hide()
+    }
   }
 }
 var isEntnicheNew = goTemplateData.params.isEntnicheNew

+ 0 - 42
src/web/staticres/public-pc/js/header-nav-mini.js

@@ -1,45 +1,3 @@
-// 消息列表获取未读消息
-function Message() {
-  // 初始化
-  this.init = function () {
-    if (!loginflag) return
-    $('#noticed').show()
-    this.getMessageList()
-  }
-  // 悬浮窗列表数据请求
-  this.getMessageList = function () {
-    var params =  {
-      isColumn: false, // 是否需要栏目(消息中心需要)
-      isColumnNewMsg: false,
-      isMsgList: false, // 是否需要列表数据
-      isContainLetter: false, // 是否包含私信数
-      msgType: -1, // 消息类型,-1为全部
-      isRead: 0, // 是否已读
-      offset: 1,
-      size: 0
-    }
-    $.ajax({
-      url: '/jyapi/messageCenter/MessageList',
-      type: 'POST',
-      data: JSON.stringify(params),
-      dataType: 'json',
-      headers: {'Content-Type': 'application/json'},
-      success:function (res) {
-        if (res.unread) {
-          var unreadNum = res.unread;
-          $('#tips').show();
-          $('#tips').html(unreadNum > 99 ? '99+' : unreadNum);
-        } else {
-          $('#tips').hide();
-        }
-      },
-      error:function () {}
-    })
-  }
-  this.init()
-}
-
-
 var headerNavMini = {
   headerNavContainer: $('#header-nav-container'),
   headerNav: $('#public-nav'),

+ 2 - 1
src/web/staticres/public-pc/js/header-nav.js

@@ -44,8 +44,8 @@ function index(el) {
 
 var firstTheme = '',firstPage = true;
 function setNavTheme (type) {
-  type = 'dark'
   var el = document.getElementById("public-nav")
+  if (!el) return
   el.setAttribute('data-theme', type || 'light')
   if(firstPage){
     firstPage = false;
@@ -54,6 +54,7 @@ function setNavTheme (type) {
 }
 function getNavTheme () {
   var el = document.getElementById("public-nav")
+  if (!el) return
   var theme = el.getAttribute('data-theme')
   return theme
 }

+ 23 - 0
src/web/staticres/public-pc/js/pc-bottom.js

@@ -29,8 +29,31 @@ function getNowUserInfo () {
     typeof window.getUserInfoCallback === 'function' ? getUserInfoCallback() : null
   })
 }
+
+// 根据 window.__headerSiteType 判断是否是子站或者资讯站
+// 0:剑鱼标讯官网  1:品牌网站  2:资讯站  3其他(即未定义,此处未定义可以默认看作是主站)
+function calcBottomTheme () {
+  var siteType = window.__headerSiteType
+  if (siteType === 1 || siteType === 2) {
+    changeBottomTheme(true)
+  } else {
+    changeBottomTheme(false)
+  }
+}
+function changeBottomTheme (type) {
+  var $bottom = $('.j-bottom')
+  if (type) {
+    // do something
+    $bottom.removeClass('theme-light').removeClass('main-station-theme')
+  } else {
+    // 默认为主站
+    $bottom.addClass('theme-light').addClass('main-station-theme')
+  }
+}
+
 $(function () {
   getNowUserInfo()
+  calcBottomTheme()
 })
 
 var customerUrl = ''

+ 9 - 1
src/web/templates/common/include-head.html

@@ -19,9 +19,13 @@
     .j-bottom {
       display: none !important;
     }
+    #header-nav-container,
     #public-nav {
       display: block !important;
     }
+    .header-nav-content.w {
+      width: 1200px;
+    }
     body {
       overflow: hidden;
       min-height: 450px;
@@ -55,7 +59,11 @@
   $('a').each(function () {
     $(this).attr('target', '_top')
   })
-  window.top.document.querySelector('.default-iframe.header').classList.add('fix-header')
+
+  var target = window.top.document.querySelector('.default-iframe.header')
+  if (target) {
+    target.classList.add('fix-header')
+  }
 </script>
 </body>
 

+ 148 - 0
src/web/templates/common/pc-header-nav-brand.html

@@ -0,0 +1,148 @@
+<!-- 品牌网站头部 -->
+{{$TopMenu := JyTopMenu .Request.URL.Path}}
+<section class="public-nav" id="public-nav" style="display: none">
+  <div class="advertising_position">
+    {{if eq $TopMenu.Site 1}}
+    <div class="advertising_position_index">
+      <a class="one" href="/" title="标讯主站">
+        <img src="{{Msg "seo" "cdn"}}/images/index/new/index_bg.png?v={{Msg "seo" "version"}}" alt="">
+      </a>
+      <a class="two" href="{{Msg "seo" "sites.cms"}}" title="资讯站群">
+        <img src="{{Msg "seo" "cdn"}}/images/index/new/xyzx_bg.png?v={{Msg "seo" "version"}}" alt="">
+      </a>
+    </div>
+    {{end}}
+    {{if eq $TopMenu.Site 0}}
+    <div class="advertising_position_brand">
+      <a class="one" href="{{Msg "seo" "sites.brand"}}" title="品牌官网">
+        <img src="{{Msg "seo" "cdn"}}/images/index/new/brand_bg.png?v={{Msg "seo" "version"}}" alt="">
+      </a>
+      <a class="two" href="{{Msg "seo" "sites.cms"}}" title="资讯站群">
+        <img src="{{Msg "seo" "cdn"}}/images/index/new/xyzx_bg.png?v={{Msg "seo" "version"}}" alt="">
+      </a>
+    </div>
+    {{end}}
+
+  </div>
+    <div class="iner">
+      <div class="logo_box">
+        {{if eq $TopMenu.Site 2}}
+          <a class="logo" href="{{Msg "seo" "sites.cms"}}" title="资讯站群">
+          {{ else if eq $TopMenu.Site 1 }}
+          <a class="logo" href="{{Msg "seo" "sites.brand"}}" title="品牌官网">
+          {{ else }}
+          <a class="logo" href="/" title="标讯主站">
+        {{end}}
+            <img data-theme="dark" src='{{Msg "seo" "cdn"}}/images/index/logo_white.png?v={{Msg "seo" "version"}}' alt="剑鱼标讯" />
+            <img data-theme="light" src='{{Msg "seo" "cdn"}}/images/index/logo_main.png?v={{Msg "seo" "version"}}' alt="剑鱼标讯" />
+        </a>
+        <div class="logo_desc">
+          <div class="nav-logo-line"></div>
+          {{if eq $TopMenu.Site 0}}
+          <p class="index">标讯主站</p>
+          {{end}}
+          {{if eq $TopMenu.Site 1}}
+          <p class="brand">品牌官网</p>
+          {{end}}
+          {{if eq $TopMenu.Site 2}}
+          <p class="brand">资讯站群</p>
+          {{end}}
+          <div class="nav-logo-line"></div>
+        </div>
+        <div class="btn_box">
+          {{if ne $TopMenu.Site 0}}
+          <a href="/" title="标讯主站" class="nav-badge-box index">
+            <img data-theme="dark" src='{{Msg "seo" "cdn"}}/images/index/new/book.png?v={{Msg "seo" "version"}}' alt="标讯主站" />
+            <img data-theme="light" src='{{Msg "seo" "cdn"}}/images/index/new/book1.png?v={{Msg "seo" "version"}}' alt="标讯主站" />
+            <span>标讯主站</span>
+          </a>
+          {{end}}
+          {{if ne $TopMenu.Site 1}}
+          <a href="{{Msg "seo" "sites.brand"}}" title="品牌官网" class="nav-badge-box brand">
+            <img data-theme="dark" src='{{Msg "seo" "cdn"}}/images/index/new/king.png?v={{Msg "seo" "version"}}' alt="品牌官网" />
+            <img data-theme="light" src='{{Msg "seo" "cdn"}}/images/index/new/king1.png?v={{Msg "seo" "version"}}' alt="品牌官网" />
+            <span>品牌官网</span>
+          </a>
+          {{end}}
+          {{if ne $TopMenu.Site 2}}
+          <a class="nav-badge-box zx" href="{{Msg "seo" "sites.cms"}}" title="资讯站群">
+            <img data-theme="dark" src='{{Msg "seo" "cdn"}}/images/index/new{{Msg "seo" "sites.brand"}}.png?v={{Msg "seo" "version"}}' alt="资讯站群" />
+            <img data-theme="light" src='{{Msg "seo" "cdn"}}/images/index/new/brand1.png?v={{Msg "seo" "version"}}' alt="资讯站群" />
+            <span>资讯站群</span>
+          </a>
+          {{end}}
+        </div>
+      </div>
+        <div class="header-right-box fr">
+          <ul class="jynav">
+          {{range $i, $v := $TopMenu.MenuList }}
+          <li name="{{$v.Title}}">
+              <a class="nav-text" {{ParseHtmlAttr $v.Tag}} {{if $v.Link}} href="{{$v.Link}}"{{else}} href="javascript:;"{{end}}  {{ParseHtmlAttr $v.Attr}}
+                 {{if $v.Style }} style="{{ParseHtmlCss $v.Style}}" {{end}}>{{$v.Title}}</a>
+              {{if $v.Child }}
+                  <!--子菜单竖展示-->
+                  {{if eq $v.Flex "" "column"}}
+                  <div class="jynav-list jy-rember">
+                      {{range $ii,$c := $v.Child }}
+                      <span name="{{$c.Title}}">
+                          <a {{if $v.Link}} href="{{$c.Link}}"{{else}} href="javascript:;"{{end}}  {{ParseHtmlAttr $c.Attr}}
+                             {{if $c.Style }} style="{{ParseHtmlCss $c.Style}}" {{end}}>
+                            {{$c.Title}}
+                            {{if $c.Tag}}
+                              <div class="time-free">{{$c.Tag}}</div>
+                            {{end}}
+                          </a>
+                      </span>
+                      {{end}}
+                  </div>
+                  {{else if eq $v.Flex "row"}}
+                  <!--子菜单横展示-->
+                  <div class="jynav-list jy-rember case-row-group">
+                      {{range $ii,$c := $v.Child }}
+                          <a class="case-item" name="{{$c.Title}}" {{if $v.Link}} href="{{$c.Link}}"{{else}} href="javascript:;"{{end}}  {{ParseHtmlAttr $c.Attr}}
+                            {{if $c.Style }} style="{{ParseHtmlCss $c.Style}}" {{end}}>
+                            <img src='{{$c.Icon}}' alt="{{$c.Title}}">
+                            <strong>{{$c.Title}}</strong>
+                          </a>
+                      {{end}}
+                  </div>
+                  {{end}}
+              {{end}}
+          </li>
+          {{end}}
+          <li name="消息" id="noticed" style="display: none;margin-left: 11px">
+            <a href="/swordfish/frontPage/messageCenter/sess/index">
+              <div class="img-flex">
+                <img data-theme="light"
+                     src='{{Msg "seo" "cdn"}}/images/index/message.png?v={{Msg "seo" "version"}}'
+                     class="jy-nav-msg msg-img1" alt=""/>
+                <img data-theme="dark"
+                     src='{{Msg "seo" "cdn"}}/images/index/message-fff.png?v={{Msg "seo" "version"}}'
+                     class="jy-nav-msg msg-img1" alt=""/>
+              </div>
+              <img src='{{Msg "seo" "cdn"}}/images/index/message-active.png?v={{Msg "seo" "version"}}'
+                   class="jy-nav-msg msg-img2" alt=""/>
+              <span class="tips" id="tips"></span>
+            </a>
+          </li>
+          <li class="slider"></li>
+        </ul>
+            <div class='useronline' id="login" style="float:left;">
+              <button  clle="display: none" class='loginBtn' data-toggle='modal' onclick='openLoginDig(true)'>登录/注册</button>
+              <img style="display: none" class="nav-avatar user-avatar" data-user-avatar alt="头像">
+              <div class="work-user-info" style="display: none">
+                <div class="info-group">
+                  <img  class="user-avatar" data-user-avatar>
+                  <span data-user-name></span>
+                  <span data-user-phone></span>
+                </div>
+                <div class="out-button" onclick='signout()'>退出登录</div>
+              </div>
+            </div>
+            <a href="/page_workDesktop/" class="work-link" style="float:left; display: none;">立即使用</a>
+        </div>
+    </div>
+</section>
+<script>
+  window.message = new Message()
+</script>

+ 3 - 2
src/web/templates/common/pc-header-nav-mini.html

@@ -1,3 +1,4 @@
+<!-- 标讯主站头部 -->
 <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/public-pc/css/page-img-icons.css?v={{Msg "seo" "version"}}' />
 <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/public-pc/css/header-nav-mini.css?v={{Msg "seo" "version"}}' />
 <section class="header-nav-container" id="header-nav-container">
@@ -18,7 +19,7 @@
                                 <strong class="list-label">{{$v.Name}}</strong>
                                 <span class="list-value-flex">
                                 {{range $n:=$v.Child}}
-                                    <a class="list-value" href="{{$n.Url}}">{{$n.Name}}</a>
+                                    <a class="list-value" href="{{$n.Url}}" target="_blank">{{$n.Name}}</a>
                                 {{end}}
                                 </span>
                             </li>
@@ -30,7 +31,7 @@
             <div class="h-nav-c-right flex-row-center">
                 <ul class="menu-list flex-row-center">
                     <li class="menu-item">
-                        <a class="menu-vip-button" href="/product/index?serviceType=0"><i class="j-icon base-icon icon-img-vip-v-deep"></i>服务列表</a>
+                        <a class="menu-vip-button" href="/product/index?serviceType=0" target="_blank"><i class="j-icon base-icon icon-img-vip-v-deep"></i>服务列表</a>
                     </li>
                     {{$TopMenus :=JyTopMenu .Request.URL.Path}}
                     {{range $menu := $TopMenus.MenuList }}

+ 2 - 2
src/web/templates/common/pc-header-nav-second.html

@@ -8,8 +8,8 @@
       <p class="pc-header-nav-second-head-desc">全国招标信息<br>免费看,不遮挡</p>
     </div>
     <div class="pc-header-nav-second-head-right">
-      {{range $menu :=GetTopMenuSpecial}}
-        <a href="{{$menu.href}}" class="pc-header-nav-second-head-right-item">{{$menu.name}}</a>
+      {{range $menu :=(Ad "jy-top-common-second-menu" -1 .Host) }}
+        <a href="{{$menu.S_link}}" class="pc-header-nav-second-head-right-item">{{$menu.S_remark}}</a>
       {{end}}
     </div>
   </div>

+ 2 - 1
src/web/templates/common/pcbottom.html

@@ -1,5 +1,6 @@
 <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/public-pc/css/pc-bottom.css?v={{Msg "seo" "version"}}'>
-<div class="j-bottom theme-light" style="display: none">
+<!-- 亮色主题+主站样式: theme-light main-station-theme -->
+<div class="j-bottom" style="display: none">
 	<div>
 		<div class="jy_proandcify">
       <!-- 友情链接已移到common文件friend-link.html -->

+ 15 - 46
src/web/templates/common/pchead.html

@@ -1,58 +1,27 @@
 <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/public-pc/css/header-nav.css?v={{Msg "seo" "version"}}">
 <link rel="stylesheet" href="{{Msg "seo" "cdn"}}/common-module/message-tip/css/index.css?v={{Msg "seo" "version"}}">
+<script src='{{Msg "seo" "cdn"}}/js/header-message.js?v={{Msg "seo" "version"}}'></script>
+{{$TopMenu := JyTopMenu .Request.URL.Path}}
 
-{{include "/common/pc-header-nav-mini.html"}}
+{{if eq $TopMenu.Site 0}}
+  {{include "/common/pc-header-nav-mini.html"}}
+{{else if eq $TopMenu.Site 1 }}
+  {{include "/common/pc-header-nav-brand.html"}}
+{{else if eq $TopMenu.Site 2 }}
+  {{include "/common/pc-header-nav-brand.html"}}
+{{else}}
+  {{include "/common/pc-header-nav-mini.html"}}
+{{end}}
+<script>
+  // headerSiteType(Number类型) ->  0:剑鱼标讯官网  1:品牌网站  2:资讯站  3其他(即未定义,此处未定义可以默认看作是主站)
+  window.__headerSiteType = {{$TopMenu.Site}}
+</script>
 
 <!-- pc登录弹窗html结构 -->
 {{include "/common/pc-login-dialog.html"}}
 
 <script src='{{Msg "seo" "cdn"}}/js/dateFunc.js?v={{Msg "seo" "version"}}'></script>
 <!--<script src='{{Msg "seo" "cdn"}}/js/message.js?v={{Msg "seo" "version"}}'></script>-->
-<!-- <script>
-  // 消息列表获取未读消息
-  function Message() {
-    // 初始化
-    this.init = function () {
-      if (!loginflag) return
-      $('#noticed').show()
-      this.getMessageList()
-    }
-    // 悬浮窗列表数据请求
-    this.getMessageList = function () {
-
-      var params =  {
-        isColumn: false, // 是否需要栏目(消息中心需要)
-        isColumnNewMsg: false,
-        isMsgList: false, // 是否需要列表数据
-        isContainLetter: false, // 是否包含私信数
-        msgType: -1, // 消息类型,-1为全部
-        isRead: 0, // 是否已读
-        offset: 1,
-        size: 0
-      }
-      $.ajax({
-        url: '/jyapi/messageCenter/MessageList',
-        type: 'POST',
-        data: JSON.stringify(params),
-        dataType: 'json',
-        headers: {'Content-Type': 'application/json'},
-        success:function (res) {
-          if (res.unread) {
-            var unreadNum = res.unread;
-            $('#tips').show();
-            $('#tips').html(unreadNum > 99 ? '99+' : unreadNum);
-          } else {
-            $('#tips').hide();
-          }
-        },
-        error:function () {}
-      })
-    }
-
-    this.init()
-  }
-  var message = new Message()
-</script> -->
 <script src='{{Msg "seo" "cdn"}}/public-pc/js/header-nav.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/message-tip/js/index.js?v={{Msg "seo" "version"}}'></script>
 

+ 23 - 9
src/web/templates/frontRouter/pc/brand/free/index.html

@@ -39,6 +39,9 @@
         <li class="tabs_item">
           <p class="text active">公司介绍</p>
         </li>
+        <li class="tabs_item">
+          <p class="text">企业愿景</p>
+        </li>
         <li class="tabs_item">
           <p class="text">发展历程</p>
         </li>
@@ -156,7 +159,7 @@
       <div class="img_box"><img src="{{Msg "seo" "cdn"}}/brand/img/zzq9.png?v={{Msg "seo" "version"}}" alt=""></div>
     </div>
   </div>
-  <div class="enterprise_culture" >
+  <div class="enterprise_culture" id="ent_culture">
     <p class="title">企业文化</p>
     <div class="middle">
       <div class="item">
@@ -536,21 +539,27 @@
           $('.tabs_box').removeClass('fixed')
           $('#public-nav').show()
         }
-        if($(window).scrollTop()>=0&&$(window).scrollTop()<=$(".history").offset().top-140){
+
+
+        
+        if($(window).scrollTop()>=0&&$(window).scrollTop()<=$("#ent_culture").offset().top-140){
           $('.tabs_item').find('p').removeClass('active')
           $('.tabs_item').eq(0).find('p').addClass('active')
-        }else if($(window).scrollTop()>=$(".history").offset().top-140&&$(window).scrollTop()<=$(".Company_Dynamic").offset().top-140){
+        } else if ($(window).scrollTop()>=$("#ent_culture").offset().top-140&&$(window).scrollTop()<=$(".history").offset().top-140) {
           $('.tabs_item').find('p').removeClass('active')
           $('.tabs_item').eq(1).find('p').addClass('active')
-        }else if($(window).scrollTop()>=$(".Company_Dynamic").offset().top-140&&$(window).scrollTop()<=$(".join_us").offset().top-140){
+        } else if($(window).scrollTop()>=$(".history").offset().top-140&&$(window).scrollTop()<=$(".Company_Dynamic").offset().top-140){
           $('.tabs_item').find('p').removeClass('active')
           $('.tabs_item').eq(2).find('p').addClass('active')
-        }else if($(window).scrollTop()>=$(".join_us").offset().top-140&&$(window).scrollTop()<=$(".contact_us").offset().top-140){
+        }else if($(window).scrollTop()>=$(".Company_Dynamic").offset().top-140&&$(window).scrollTop()<=$(".join_us").offset().top-140){
           $('.tabs_item').find('p').removeClass('active')
           $('.tabs_item').eq(3).find('p').addClass('active')
-        }else if($(window).scrollTop()>=$(".contact_us").offset().top-140){
+        }else if($(window).scrollTop()>=$(".join_us").offset().top-140&&$(window).scrollTop()<=$(".contact_us").offset().top-140){
           $('.tabs_item').find('p').removeClass('active')
           $('.tabs_item').eq(4).find('p').addClass('active')
+        }else if($(window).scrollTop()>=$(".contact_us").offset().top-140){
+          $('.tabs_item').find('p').removeClass('active')
+          $('.tabs_item').eq(5).find('p').addClass('active')
         }
       });
 
@@ -588,20 +597,25 @@
 
       }else if($(this).index()==1){
         $("html,body").stop().animate({
-          scrollTop: $(".history").offset().top-70
+          scrollTop: $("#ent_culture").offset().top-20
         }, 500);
 
       }else if($(this).index()==2){
         $("html,body").stop().animate({
-          scrollTop: $(".Company_Dynamic").offset().top-70
+          scrollTop: $(".history").offset().top-70
         }, 500);
 
       }else if($(this).index()==3){
         $("html,body").stop().animate({
-          scrollTop: $(".join_us").offset().top-70
+          scrollTop: $(".Company_Dynamic").offset().top-70
         }, 500);
 
       }else if($(this).index()==4){
+        $("html,body").stop().animate({
+          scrollTop: $(".join_us").offset().top-70
+        }, 500);
+
+      }else if($(this).index()==5){
         $("html,body").stop().animate({
           scrollTop: $(".contact_us").offset().top-70
         }, 500);

+ 4 - 0
src/web/templates/pc/biddetail_rec.html

@@ -1886,6 +1886,10 @@ var ucbs_source="pc_rec",ucbsId="{{.T.obj.ucbsId}}";
           $('.tabfat').show()
           $(".recoveryfat").show()
           $('.free-download').hide()
+          //P449
+          $(".download-list").show()
+          $('.super-vip-show').hide()
+          $('.free-go-open').hide()
           getFileData()
           return
         }

+ 12 - 2
src/web/templates/pc/newIndex.html

@@ -19,14 +19,16 @@
   <link rel="stylesheet" type="text/css" href='{{Msg "seo" "cdn"}}/pccss/index_swiper.css?v={{Msg "seo" "version"}}' />
   <link rel="stylesheet" type="text/css" href='{{Msg "seo" "cdn"}}/css/pc/index.css?v={{Msg "seo" "version"}}' />
   <link rel="stylesheet" type="text/css" href='{{Msg "seo" "cdn"}}/pccss/index_pc.css?v={{Msg "seo" "version"}}' />
+  <!-- 登陆弹窗依赖 -->
+  <!-- <link rel="stylesheet" type="text/css" href='{{Msg "seo" "cdn"}}/pccss/public-nav-1200.css?v={{Msg "seo" "version"}}' /> -->
+  <link href='{{Msg "seo" "cdn"}}/css/pc.css?v={{Msg "seo" "version"}}' rel="stylesheet">
 </head>
 
-{{include "/common/pc-login.html"}}
 {{$global:=.T}}
 <body>
   <section class="body-section bg-white">
     <header class="body-header">
-      {{include "/common/pc-header-nav-mini.html"}}
+      {{include "/common/pchead.html"}}
     </header>
     <main class="body-main">
       <section class="w">
@@ -216,7 +218,15 @@
   <script type="text/javascript" src='{{Msg "seo" "cdn"}}/common-module/public/js/china-map-data.js?v={{Msg "seo" "version"}}'></script>
   <script type="text/javascript" src='{{Msg "seo" "cdn"}}/js/index/seo_helper.js?v={{Msg "seo" "version"}}'></script>
   <script type="text/javascript" src='{{Msg "seo" "cdn"}}/js/index/index_swiper.js?v={{Msg "seo" "version"}}'></script>
+  <script>
+    var pageData = {
+      biddingTrend: {{ .T.biddingTrend }}
+    }
+  </script>
+  </script>
   <script type="text/javascript" src='{{Msg "seo" "cdn"}}/js/index/index_2023.12.js?v={{Msg "seo" "version"}}'></script>
+  <script defer src=//cdn-common.jianyu360.com/cdn/lib/echarts/4.8.0/echarts.min.js></script>
+  <script defer type="text/javascript" src='{{Msg "seo" "cdn"}}/js/index/index_charts.js?v={{Msg "seo" "version"}}'></script>
   <script>
     haslogin('10')
   </script>

+ 23 - 11
src/web/templates/pc/supsearch.html

@@ -613,6 +613,7 @@
       } else {
         searchInnerVue.searchTab = loginStatusTem ? searchGroup : 1
       }
+      $("#zbSeatchT [name='searchGroup']").val(searchInnerVue.searchTab)
       searchInnerVue.keywordSearchType = searchModel
       if (addKeyTemp) {
         searchInnerVue.keywordTags = addKeyTemp.split(',')
@@ -1152,14 +1153,16 @@
             </div>
             <div class="info-content bi-change-group" style="position: relative;">
               <span id="infoBtn" class="active">全部</span>
-              <i v-show="showCQ" class="diver"></i>
-              <font v-show="showCQ" class="parent-node nologin-hide">拟建项目</font>
-              <font v-show="showCQ" data-value="拟建" class="hidden">拟建</font>
-              <a v-show="showCQ" id="whole"><img class="q-mark nologin-hide" id="q-mark"  src='{{Msg "seo" "cdn"}}/images/biddingSearch/info-icon1.png' alt="" /></a>
-              <i v-show="showCQ" class="diver nologin-hide"></i>
-              <font v-show="showCQ" class="parent-node nologin-hide">采购意向</font>
-              <font v-show="showCQ" data-value="采购意向" class="hidden">采购意向</font>
-              <a v-show="showCQ" id="whole"><img class="q-mark-buyer nologin-hide" id="q-mark-buyer"  src='{{Msg "seo" "cdn"}}/images/biddingSearch/info-icon1.png' alt="" /></a>
+              <i class="show-nj-cg nologin-hide">
+                <i v-show="showCQ" class="diver"></i>
+                <font v-show="showCQ" class="parent-node nologin-hide">拟建项目</font>
+                <font v-show="showCQ" data-value="拟建" class="hidden">拟建</font>
+                <a v-show="showCQ" id="whole"><img class="q-mark nologin-hide" id="q-mark"  src='{{Msg "seo" "cdn"}}/images/biddingSearch/info-icon1.png' alt="" /></a>
+                <i v-show="showCQ" class="diver nologin-hide"></i>
+                <font v-show="showCQ" class="parent-node nologin-hide">采购意向</font>
+                <font v-show="showCQ" data-value="采购意向" class="hidden">采购意向</font>
+                <a v-show="showCQ" id="whole"><img class="q-mark-buyer nologin-hide" id="q-mark-buyer"  src='{{Msg "seo" "cdn"}}/images/biddingSearch/info-icon1.png' alt="" /></a>
+              </i>
               <i v-show="hideCQ" class="diver nologin-hide"></i>
               <font v-show="hideCQ" class="parent-node">招标预告</font>
               <font v-show="hideCQ" data-value="预告">预告</font>
@@ -1960,10 +1963,17 @@
       } else {
         searchInnerVue.searchTab = 1
       }
+      $("#zbSeatchT [name='searchGroup']").val(searchInnerVue.searchTab)
       $('#setInfoBtn').text('免费发布信息')
       if(!goTemplateData.inIframe) {
+        // 超前项目:未登录状态下,隐藏部分内容
         if(!searchInnerVue.hideCQ) {
-          $('.nologin-hide').removeClass('hide')
+          $('.nologin-hide').addClass('hide')
+          const arr = ['.show-nj-cg .parent-node', '.show-nj-cg .diver', '.show-nj-cg', '.show-nj-cg img']
+          for (let i = 0; i < arr.length; i++) {
+            $(arr[i]).removeClass('hide')
+            $(arr[i]).removeClass('nologin-hide')
+          }
           $('.badge-recommend').addClass('hide')
           $('.search-tab-item-0').addClass('hide')
         } else {
@@ -1971,12 +1981,13 @@
         }
         $('.city-list-divide').addClass('hide')
         $('#sideIcon').addClass('hide')
+        $('.search-tab-right').hide()
       }
       try{
         searchInnerVue.$refs.areaRefs.shoWcity=false//隐藏地市
       }catch(e){
       }
-      const searchDoms = ['.tab-item-ent-search', '.tab-item-buyer-search', '.tab-item-supply-search', '.tab-item-recommend-search', '.tab-item-nzj-search', '.search-tab-right']
+      const searchDoms = ['.tab-item-ent-search', '.tab-item-buyer-search', '.tab-item-supply-search', '.tab-item-recommend-search', '.tab-item-nzj-search']
       for (let i = 0; i < searchDoms.length; i++) {
         $(searchDoms[i]).show()
       }
@@ -2018,6 +2029,7 @@
       } else {
         searchInnerVue.searchTab = 1
       }
+      $("#zbSeatchT [name='searchGroup']").val(searchInnerVue.searchTab)
       $('#setInfoBtn').text('信息发布')
       $('.city-list-divide').removeClass('hide')
       $('#sideIcon').removeClass('hide')
@@ -3724,7 +3736,7 @@ function checkTagDisabled () {
       // 跳转信息发布
       goToPublish: function () {
         if(!loginflag){
-          $('#bidLogin').modal("show");
+          location.href = '/swordfish/frontPage/InformationDistribution/free/index'
           return
         }
         if (goTemplateData.inIframe) {

+ 1 - 1
src/web/templates/pc/template/index/bidding-desc-module.html

@@ -18,7 +18,7 @@
           {{range $kk,$vv := $v.list}}
           <li class="cms-card-list-item">
             <a class="cms-card-list-item-left cms-link ellipsis" target="_blank" href="/jySite/{{$vv._id}}.html" title="{{$vv.s_title}}">{{$vv.s_title}}</a>
-            <span class="cms-card-list-item-right">{{$vv.l_createdate}}</span>
+            <span class="cms-card-list-item-right">{{$vv.time}}</span>
           </li>
           {{end}}
         </ul>

+ 1 - 1
src/web/templates/pc/template/index/bidding-good-news-card.html

@@ -8,7 +8,7 @@
       {{range $kk,$vv := $v}}
       <li class="notice-card-list-item">
         <i class="notice-item-prefix-icon j-icon base-icon icon-img-sahua"></i>
-        <p class="notice-card-list-item-content ellipsis"><a href="/nologin/content/{{$vv}}.html">[恭贺]{{$kk}}</a></p>
+        <p class="notice-card-list-item-content ellipsis"><a class="cms-link" href="/nologin/content/{{$vv}}.html">[恭贺]{{$kk}}</a></p>
       </li>
       {{end}}
       {{end}}

+ 38 - 2
src/web/templates/pc/template/index/data-service-module.html

@@ -30,8 +30,44 @@
     </div>
     <div class="service-module-content-right">
       <section class="hot-industry-year-chart">
-        <h3 class="title-left-line">热门行业 / 地区年度招标趋势</h3>
-        <main class="hot-industry-chart-content"></main>
+        <header class="hot-industry-chart-header">
+          <h3 class="title-left-line">热门行业 / 地区年度招标趋势</h3>
+        </header>
+        <main class="hot-industry-chart-content" id="hot-industry-chart-content" v-cloak>
+          <section class="hot-industry-chart-left h-tab-container">
+            <div class="h-tab-column data-service-industry-list column-left">
+              <p class="h-tab-column-title">行业</p>
+              <ul class="h-tab-column-list clearfix">
+                <li class="h-tab-column-item j-s-button plain pointer"
+                  :class="{ active: item.industry === tabActiveIndustry }"
+                  v-for="(item, index) in biddingTrendList"
+                  @click="clickTabs(item, index)"
+                  :key="index">${item.industry}</li>
+              </ul>
+            </div>
+            <div class="h-tab-column data-service-industry-list">
+              <p class="h-tab-column-title">地区</p>
+              <ul class="h-tab-column-list clearfix">
+                <li class="h-tab-column-item j-s-button plain pointer"
+                  v-for="(item, index) in biddingAreaList"
+                  :class="{ active: item.area === tabActiveArea }"
+                  @click="clickChildrenTabs(item, index)"
+                  :key="index">${item.area}</li>
+              </ul>
+            </div>
+          </section>
+          <section class="hot-industry-chart-right chart-container">
+            <div id="hot-industry-chart" ref="lineCharts"></div>
+          </section>
+        </main>
+        <footer class="hot-industry-chart-footer">
+          <div class="chart-search-container">
+            <div class="chart-search-input-container">
+              <input type="text" class="search-input" name="keywords" autocomplete="off" placeholder="请输入定制数据内容">
+            </div>
+            <button class="search-button button-blink blink-fast" type="submit" maxlength="100" id="doAnalysis">定制化分析</button>
+          </div>
+        </footer>
       </section>
     </div>
   </main>

+ 9 - 3
src/web/templates/pc/template/index/ent-service-module.html

@@ -12,9 +12,15 @@
         <main class="service-desc-main">
           <p class="service-desc-text">实现用户在平台上完成资讯、销售线索、销售就会、客户的全线跟踪处理。</p>
           <ul class="service-desc-list clearfix">
-            <li class="service-desc-button s-main">专属情报库</li>
-            <li class="service-desc-button s-main">客户管理</li>
-            <li class="service-desc-button s-main">数字看板</li>
+            <li>
+              <a class="service-desc-button s-main cms-link" href="/swordfish/frontPage/digitalMarketing/free/index" target="_blank">专属情报库</a>
+            </li>
+            <li>
+              <a class="service-desc-button s-main cms-link" href="/swordfish/frontPage/customanage/free/index" target="_blank">客户管理</a>
+            </li>
+            <li>
+              <a class="service-desc-button s-main cms-link" href="/swordfish/frontPage/digitalMarketing/free/index" target="_blank">数字看板</a>
+            </li>
           </ul>
         </main>
         <footer class="service-desc-footer">

+ 1 - 1
src/web/templates/pc/template/index/hot-industry-card.html

@@ -7,7 +7,7 @@
     {{range $ke,$va := $v}}
     <div class="industry-aside-item">
       <div class="industry-aside-item-name">
-        <a class="cms-link" title="{{$ke}}" href="" target="_blank">{{$ke}}</a>
+        <p>{{$ke}}</p>
       </div>
       <ul class="industry-aside-item-content max-line-2 clearfix">
         {{range $kk,$vv := $va}}

+ 1 - 1
src/web/templates/pc/template/index/module-card-list-container.html

@@ -2,7 +2,7 @@
 
 <section class="module-card-container">
   <header class="module-card-header">
-    <h3 class="module-card-title">招标动态</h3>
+    <h3 class="module-card-title">推荐标讯专区</h3>
   </header>
   <main class="module-card-content">
     {{range $v := .T.bidTrends}}

+ 4 - 3
src/web/templates/pc/template/index/search-module.html

@@ -18,8 +18,9 @@
       </ul>
       <div class="index-search-container">
         <div class="index-search-input-container">
-          <input type="text" class="search-input" name="keywords" autocomplete="off" placeholder="请输入项目名称等关键词,例如:医疗设备">
+          <input type="text" class="search-input" id="keywords" name="keywords" autocomplete="off" maxlength="50" placeholder="请输入项目名称等关键词,例如:医疗设备">
         </div>
+        <section class="pre-search-list" style="display: none;"></section>
         <button class="search-button button-blink blink-fast" type="submit" id="doSearch">剑鱼一下</button>
       </div>
     </div>
@@ -59,8 +60,8 @@
         <i class="j-icon base-icon icon-img-huangguan"></i>
         剑鱼官网
       </a>
-      <a class="cms-link mr12" href="/brand/index" target="_blank">企业愿景</a>
-      <a class="cms-link" href="/brand/index#Company_Dynamic" target="_blank">品牌介绍</a>
+      <a class="cms-link mr12" href="/brand/index#ent_culture" target="_blank">企业愿景</a>
+      <a class="cms-link" href="/brand/index" target="_blank">品牌介绍</a>
     </div>
     <div class="flex-row-center mt12">
       <a class="j-s-button plain" href="/jycms">

+ 1 - 1
src/web/templates/pc/template/index/zb-aside-card.html

@@ -10,7 +10,7 @@
       {{range $k,$v := .T.newbids.biddingList}}
       <li class="cms-card-list-item">
         <a class="cms-card-list-item-left cms-link ellipsis" target="_blank" title="{{$v.title}}" href="/nologin/content/{{$v._id}}.html">{{$v.title}}</a>
-        <span class="cms-card-list-item-right">{{$v.publishtime}}</span>
+        <span class="cms-card-list-item-right">{{$v.publish_time}}</span>
       </li>
       {{end}}
     </ul>

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