Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/feature/v4.8.0' into feature/v4.8.0

renjiaojiao 2 rokov pred
rodič
commit
b3c539423d
46 zmenil súbory, kde vykonal 550 pridanie a 124 odobranie
  1. 3 1
      src/config.json
  2. 3 2
      src/config.yaml
  3. 1 1
      src/go.mod
  4. 2 2
      src/go.sum
  5. 9 1
      src/jfw/front/dataMarket.go
  6. 130 10
      src/jfw/jyutil/classroomiInfo.go
  7. 18 9
      src/jfw/jyutil/jyCms.go
  8. 1 1
      src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info_bank.html
  9. 1 1
      src/jfw/modules/app/src/web/templates/site/page/bankLanding/index.html
  10. 1 1
      src/jfw/site/IndustryInfo/service.go
  11. 7 8
      src/jfw/site/helpCenter/helpCenter.go
  12. 3 2
      src/jfw/site/jySchool/service.go
  13. 11 1
      src/jfw/site/jyblog/entity.go
  14. 3 2
      src/web/staticres/common-module/pc-dialog/js/leave-info-dialog.js
  15. 23 1
      src/web/staticres/css/pc.css
  16. 1 1
      src/web/staticres/frontRouter/pc/customExport/css/index.css
  17. 6 3
      src/web/staticres/frontRouter/pc/dataInterface/css/index.css
  18. 95 4
      src/web/staticres/public-pc/css/header-nav.css
  19. 2 2
      src/web/staticres/public-pc/js/header-nav.js
  20. 15 5
      src/web/staticres/site/common/css/pc-school-head.css
  21. 12 0
      src/web/staticres/site/page/bankLanding/index.js
  22. 3 0
      src/web/staticres/site/page/helpCenter/css/feedback.css
  23. 19 4
      src/web/staticres/site/page/helpCenter/css/index.css
  24. 6 0
      src/web/staticres/site/page/helpCenter/css/summary.css
  25. 7 3
      src/web/staticres/site/page/industryInfo/css/index.css
  26. 11 3
      src/web/staticres/site/page/industryInfo/css/industry_content.css
  27. 12 0
      src/web/staticres/site/page/industryInfo/css/industry_detail.css
  28. 10 0
      src/web/staticres/site/page/jySchool/css/index.css
  29. 4 0
      src/web/staticres/site/page/jySchool/css/introduction.css
  30. 4 0
      src/web/staticres/site/page/jySchool/css/introduction_content.css
  31. 12 0
      src/web/staticres/site/page/jySchool/css/introduction_detail.css
  32. 24 24
      src/web/templates/dataMarket/customExport/index.html
  33. 9 5
      src/web/templates/dataMarket/index.html
  34. 1 1
      src/web/templates/frontRouter/wx/bigmember/free/perfect_info_bank.html
  35. 4 4
      src/web/templates/pc/index.html
  36. 1 1
      src/web/templates/site/page/bankLanding/pc/index.html
  37. 1 1
      src/web/templates/site/page/bankLanding/wx/index.html
  38. 1 0
      src/web/templates/site/page/helpCenter/catalog.html
  39. 1 1
      src/web/templates/site/page/helpCenter/detail.html
  40. 16 2
      src/web/templates/site/page/helpCenter/feedback.html
  41. 11 3
      src/web/templates/site/page/helpCenter/index.html
  42. 4 3
      src/web/templates/site/page/industryInfo/class.html
  43. 2 2
      src/web/templates/site/page/jySchool/class.html
  44. 20 5
      src/web/templates/site/page/jySchool/index.html
  45. 6 0
      src/web/templates/site/page/jySchool/search.html
  46. 14 4
      src/web/templates/site/page/jyblogdetail.html

+ 3 - 1
src/config.json

@@ -409,5 +409,7 @@
   "jySchoolUrl":{
     "homeUrl": "/jySchool/strategy",
     "towUrl": "/jySchool/%s/index.html"
-  }
+  },
+  "dataMarketShowAB": 0,
+  "activityApi": "http://127.0.0.1:8888"
 }

+ 3 - 2
src/config.yaml

@@ -1,7 +1,8 @@
 etcd:
   hosts:
-  - 192.168.3.149:2379
+  - 192.168.3.206:2379
 userCenterKey: "usercenter.rpc" #用户中台rpc
 powerCheckCenterKey: "powercheck.rpc" #权益校验中台
 resourceCenterKey: "resource.rpc" #资源中台
-entManageApplication: "entmanageapplication.rpc" #企业管理中台
+entManageApplication: "entmanageapplication.rpc" #企业管理中台
+activityKey: "activity.rpc" #营销中台rpc

+ 1 - 1
src/go.mod

@@ -3,6 +3,7 @@ module jy/src
 go 1.18
 
 require (
+	app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230307011807-2ef7ef8e0c09
 	app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a
 	app.yhyue.com/moapp/jypkg v0.0.0-20230309102709-f1b34292afaa
 	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.13
@@ -16,7 +17,6 @@ require (
 
 require (
 	app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d // indirect
-	app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230304035551-21bb1eedf547 // 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-20230222052351-9d6fad062447 // indirect

+ 2 - 2
src/go.sum

@@ -1,7 +1,7 @@
 app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d h1:WPsYuuptAd3UEgN+jPzpnsDe/OvcshDUUtOTZPYGSJ8=
 app.yhyue.com/moapp/esv1 v0.0.0-20220414031211-3da4123e648d/go.mod h1:91/lSD/hS+ckMVP3WdidRzDhC60lLMdyce9QHy0cSMA=
-app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230304035551-21bb1eedf547 h1:cCmWQW8DUBD2nuZNDz9aIe6MrlioxTbdaA2YiJhlzjY=
-app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230304035551-21bb1eedf547/go.mod h1:JvIs8uKjdT963+7JnZGIEcL4ctBiBjwkoz0kNyigE78=
+app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230307011807-2ef7ef8e0c09 h1:ckax2O7nHCFa0RD1qM7cUYaPNQQpR9j+kimXdyDOiQk=
+app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230307011807-2ef7ef8e0c09/go.mod h1:JvIs8uKjdT963+7JnZGIEcL4ctBiBjwkoz0kNyigE78=
 app.yhyue.com/moapp/jyPoints v1.1.1/go.mod h1:SvP8p5L3jGrejHiH2LXfgCg/NPlFiKBC5Yd0gsI12FU=
 app.yhyue.com/moapp/jybase v0.0.0-20220427020729-974c1a148186/go.mod h1:qNRA0sHuYqcLoYoP8irpaWnW9YsXixe6obBIkwaXpD0=
 app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a h1:wD4aWPSYdiX1cIP4lzzPD2s7fYhKa3muIf97l9tonJE=

+ 9 - 1
src/jfw/front/dataMarket.go

@@ -1,7 +1,10 @@
 package front
 
 import (
+	"app.yhyue.com/moapp/jybase/common"
 	"app.yhyue.com/moapp/jybase/go-xweb/xweb"
+	"fmt"
+	"jy/src/jfw/config"
 )
 
 // DataMarket 数据市场
@@ -23,7 +26,12 @@ func (this *DataMarket) Index() {
 
 // CustomExport 数据定制导出
 func (this *DataMarket) CustomExport() {
-	this.T["AB"] = len(this.Header("User-Agent"))/2 == 0
+	showA := false
+	if uA := this.Header("User-Agent"); uA != "" {
+		fmt.Println(int(uA[len(uA)-1])/10, "<", common.IntAll(config.Sysconfig["dataMarketShowAB"]), int(uA[len(uA)-1])/10 < common.IntAll(config.Sysconfig["dataMarketShowAB"]))
+		showA = int(uA[len(uA)-1])/10 < common.IntAll(config.Sysconfig["dataMarketShowAB"])
+	}
+	this.T["AB"] = showA
 	this.Render("/dataMarket/customExport/index.html")
 }
 

+ 130 - 10
src/jfw/jyutil/classroomiInfo.go

@@ -1,17 +1,26 @@
 package jyutil
 
 import (
+	"app.yhyue.com/moapp/jyMarketing/rpc/activity"
 	util "app.yhyue.com/moapp/jybase/common"
 	. "app.yhyue.com/moapp/jybase/date"
 	mgo "app.yhyue.com/moapp/jybase/mongodb"
+	"app.yhyue.com/moapp/jybase/redis"
 	"bytes"
+	"context"
 	"encoding/json"
 	"fmt"
+	"github.com/gogf/gf/v2/frame/g"
+	"github.com/gogf/gf/v2/os/gcfg"
+	"github.com/gogf/gf/v2/os/gctx"
+	"github.com/zeromicro/go-zero/core/discov"
+	"github.com/zeromicro/go-zero/zrpc"
 	"go.mongodb.org/mongo-driver/bson/primitive"
 	"html/template"
 	"io/ioutil"
 	"jy/src/jfw/config"
 	"log"
+	"math"
 	"math/rand"
 	"net/http"
 	"sort"
@@ -25,6 +34,7 @@ var (
 
 type Navigation struct {
 	Name string
+	Code string
 	Href string
 	Pid  string
 }
@@ -39,6 +49,7 @@ type HelpColumn struct {
 }
 
 func init() {
+	go ActivityInit()
 	log.Println("开始初始化column")
 	ColumnRelationship = make(map[string]Navigation)
 	industryInfoUrl, _ := config.Sysconfig["industryInfoUrl"].(map[string]interface{})
@@ -70,6 +81,7 @@ func init() {
 				continue
 			}
 			data.Href = href
+			data.Code = code
 			data.Name = util.InterfaceToStr(v["s_columnname"])
 			data.Pid = pid
 			ColumnRelationship[code] = data
@@ -77,6 +89,43 @@ func init() {
 	}
 }
 
+var Activity activity.Activity
+
+// 活动初始化
+func ActivityInit() {
+	log.Println("开始初始化活动rpc")
+	g.Cfg().GetAdapter().(*gcfg.AdapterFile).SetFileName("config.yaml")
+	var ctx = gctx.New()
+	Activity = activity.NewActivity(zrpc.MustNewClient(zrpc.RpcClientConf{
+		Etcd: discov.EtcdConf{
+			Hosts: g.Cfg().MustGet(ctx, "etcd.hosts").Strings(),
+			Key:   g.Cfg().MustGet(ctx, "activityKey").String(),
+		},
+	}))
+}
+
+func ActivityData() map[string][]*activity.LotteryJson {
+	resp, err := Activity.GetAllLottery(context.Background(), &activity.Request{
+		AppId:       "10000",
+		ProductCode: "111",
+	})
+	log.Println(resp, err)
+	if err != nil {
+		log.Println("奖券获取失败")
+		return nil
+	}
+	lotteryMap := map[string][]*activity.LotteryJson{}
+	for _, activityValue := range resp.ActivityJson {
+		for _, lotteryValue := range activityValue.LotteryJson {
+			for _, productValue := range lotteryValue.UseProductList {
+				lotteryValue.UseProductList = []*activity.ProductJson{}
+				lotteryMap[productValue.ProductCode] = append(lotteryMap[productValue.ProductCode], lotteryValue)
+			}
+		}
+	}
+	return lotteryMap
+}
+
 // Course 剑鱼课堂首页课程 & 帮助中心热门视频 classify:0:中标比听课视频 1:帮助中心视频(获取所有)
 func Course(num, iType int) *[]map[string]interface{} {
 	//热门课程
@@ -99,6 +148,7 @@ func Course(num, iType int) *[]map[string]interface{} {
 		num = -1
 	}
 	//最新课程
+	lotteryMap := ActivityData()
 	var LatestCourses *[]map[string]interface{}
 	latestQuery := map[string]interface{}{"i_type": iType, "i_status": 1, "l_endtime": map[string]interface{}{"$gt": time.Now().Unix()}, "l_publishtime": map[string]interface{}{"$lt": time.Now().Unix()}}
 	LatestCourses, _ = mongodb.Find("jy_course", latestQuery, `{"l_publishtime":-1}`, "", false, page, num)
@@ -111,6 +161,12 @@ func Course(num, iType int) *[]map[string]interface{} {
 			} else {
 				(*LatestCourses)[key]["isExpired"] = false
 			}
+			productPrice := util.Float64All(value["i_price"])
+			fool, discountPrice := OptimalSelection(util.InterfaceToStr(value["_id"]), productPrice, lotteryMap)
+			(*LatestCourses)[key]["isDiscount"] = fool
+			if fool {
+				(*LatestCourses)[key]["discountPrice"] = productPrice - discountPrice
+			}
 		}
 	}
 
@@ -137,8 +193,75 @@ func Course(num, iType int) *[]map[string]interface{} {
 	return LatestCourses
 }
 
+// 奖券详情
+func OptimalSelection(id string, price float64, lotteryMap map[string][]*activity.LotteryJson) (bool, float64) {
+	if price == 0 {
+		return false, 0
+	}
+	discountPrice := float64(0)
+
+	lotteryStr := lotteryMap[id]
+	if lotteryStr == nil {
+		return false, discountPrice
+	}
+	for _, lottery := range lotteryStr {
+		lotteryType := lottery.LotteryType
+		full := util.Float64All(lottery.Full)
+		full *= 100
+		//类型:0满减、1折扣券、2满赠、3促销、4限时折扣、5限时减免
+		switch lotteryType {
+		case 1: //满折
+			if full <= price {
+				discount := util.Float64All(lottery.Discount)
+				preferential := (1 - discount/10) * price
+				preferential = math.Trunc(preferential*1e0 + 0.5)
+				if preferential > discountPrice {
+					discountPrice = preferential
+				}
+			}
+			break
+		case 3: //3促销
+			promotionalPrice := util.Float64All(lottery.PromotionalPrice)
+			if util.Float64All(price-promotionalPrice) > discountPrice {
+				discountPrice = util.Float64All(price - promotionalPrice)
+			}
+			break
+		case 4: //4限时折扣
+			discount := util.Float64All(lottery.Discount)
+			preferential := (1 - discount/10) * price
+			preferential = math.Trunc(preferential*1e0 + 0.5)
+			if preferential > discountPrice {
+				discountPrice = preferential
+			}
+			break
+		case 5: //5限时减免
+			reduce := util.Float64All(lottery.Reduce)
+			if reduce > discountPrice {
+				discountPrice = reduce
+			}
+			break
+		default:
+			if full <= price {
+				reduce := util.Float64All(lottery.Reduce) * 100
+				if reduce > discountPrice {
+					discountPrice = reduce
+				}
+			}
+			break
+		}
+	}
+	if discountPrice > 0 {
+		return true, discountPrice
+	}
+	return false, discountPrice
+}
+
 // Library 文库
 func Library(num int) (map[string]interface{}, error) {
+	if data := redis.Get("other", fmt.Sprintf("library_%d", num)); data != nil {
+		dataMap, _ := data.(map[string]interface{})
+		return dataMap, nil
+	}
 	b, _ := json.Marshal(map[string]interface{}{
 		"sign": "new",
 		"num":  num,
@@ -165,6 +288,7 @@ func Library(num int) (map[string]interface{}, error) {
 		v["docFileSize"] = FormatSize(util.Float64All(v["docFileSize"]), "B")
 	}
 	m["data"] = data
+	redis.Put("other", fmt.Sprintf("library_%d", num), m, 5*60)
 	return m, nil
 }
 
@@ -216,7 +340,6 @@ func GuidelineAndInformation(t, s string, num int) *[]map[string]interface{} {
 			v["s_pic1"] = SPic(util.InterfaceToStr(v["s_pic1"]))
 		}
 	}
-
 	//IdFormat(data)
 	return data
 }
@@ -330,7 +453,7 @@ func GetNextInfo(_id string, keyWord ...string) (lastId, nextId string) {
 			"$lt": time.Now().Unix(),
 		},
 	}
-	for _, t := range []string{"s_contenttype"} {
+	for _, t := range []string{"s_contenttype", "s_secondclassifytype", "s_threeclassifytype"} {
 		if tv, _ := (*doc)[t].(string); tv != "" {
 			commonQuery[t] = tv
 		}
@@ -379,17 +502,14 @@ func GuidelineDetails(id string, keyWord ...string) []map[string]interface{} {
 			"$regex": keyWord[0],
 		}
 	}
-
 	//相关内容推荐
-	recommendQuery := map[string]interface{}{
-		"_id": map[string]interface{}{
-			"$ne": []primitive.ObjectID{_id},
-		},
-		"i_status":    1,
-		"releasetime": map[string]interface{}{"$lt": time.Now().Unix()},
+	query["_id"] = map[string]interface{}{
+		"$ne": []primitive.ObjectID{_id},
 	}
+
+	log.Println(" 详情页 推荐3", query)
 	var recommend []map[string]interface{}
-	dataRe, ok := mongodb.Find("content", recommendQuery, `{"releasetime":-1,"l_createdate":-1}`, `{"_id":1,"i_viewnum":1,"s_title":1,"s_pic1":1,"s_pic":1,"releasetime":1,"s_description":1,"l_createdate":1,"s_contenttype":1,"s_secondclassifytype":1}`, false, 0, 500)
+	dataRe, ok := mongodb.Find("content", query, `{"releasetime":-1,"l_createdate":-1}`, `{"_id":1,"i_viewnum":1,"s_title":1,"s_pic1":1,"s_pic":1,"releasetime":1,"s_description":1,"l_createdate":1,"s_contenttype":1,"s_secondclassifytype":1}`, false, 0, 500)
 	if ok && dataRe != nil && len(*dataRe) > 0 {
 		if len(*dataRe) > 3 {
 			for _, key := range GenerateRandomNumber(0, len(*dataRe), 3) {

+ 18 - 9
src/jfw/jyutil/jyCms.go

@@ -37,7 +37,7 @@ func GetFirstJyCms(contentType string, size int) (r []map[string]interface{}) {
 		rs, _, _ := JyCmsSearch(map[string]string{
 			"s_contenttype": contentType,
 			"perPage":       fmt.Sprintf("%d", size),
-		}, "/jyblog/index_%s.html")
+		}, "")
 		if rs != nil {
 			for _, v := range *rs {
 				delete(v, "praise")
@@ -71,15 +71,24 @@ func JyCmsSearch(query map[string]string, makePageFormat string) (*[]map[string]
 			queryMap[v] = query[v]
 		}
 	}
-
+	queryStrType := query["queryType"]
 	if queryStr != "" {
-		queryMap["$or"] = []interface{}{
-			map[string]interface{}{
-				"s_title": map[string]interface{}{"$regex": queryStr},
-			},
-			map[string]interface{}{
-				"s_content": map[string]interface{}{"$regex": queryStr},
-			},
+		//攻略搜索只搜索标题
+		if queryStrType == "" {
+			queryMap["$or"] = []interface{}{
+				map[string]interface{}{
+					"s_title": map[string]interface{}{"$regex": queryStr},
+				},
+				map[string]interface{}{
+					"s_content": map[string]interface{}{"$regex": queryStr},
+				},
+			}
+		} else {
+			queryMap["$or"] = []interface{}{
+				map[string]interface{}{
+					"s_title": map[string]interface{}{"$regex": queryStr},
+				},
+			}
 		}
 	}
 

+ 1 - 1
src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info_bank.html

@@ -504,7 +504,7 @@
         console.log(this.ajaxParams)
         var _this = this
         var loading = _this.showLoading()
-        var ajax_url= this.ajaxParams.source.indexOf('bankLanding') !== -1 ? '/salesLeads/officialNotLogin' : '/salesLeads/collectInfo'
+        var ajax_url= this.ajaxParams.source.indexOf('bankLanding') !== -1 ? '/salesLeads/official/notLogin' : '/salesLeads/collectInfo'
         this.ajaxFn(ajax_url, this.ajaxParams, function (r) {
           if (r) {
             loading.clear()

+ 1 - 1
src/jfw/modules/app/src/web/templates/site/page/bankLanding/index.html

@@ -92,7 +92,7 @@
       </div>
       <div class="item">
         <p class="title">售后维护</p>
-        <p class="text">根据业务单位的实际需求,经验丰富的数据团队可对数据进行深度加工分析,有针对性的解决企业获客及风险评估个性化问题。</p>
+        <p class="text">根据业务单位的实际需求,经验丰富的数据团队可对数据进行深度加工分析,有针对性的解决企业获客及风险评估版块个性化问题。</p>
         <img class="p_right" src="{{Cdns .Host " seo" "cdn" |SafeUrl}}/common-module/site/page/bankLanding/images/img-2.png?v={{Msg "seo" "version" }}" alt="">
       </div>
     </div>

+ 1 - 1
src/jfw/site/IndustryInfo/service.go

@@ -8,7 +8,7 @@ import (
 	"jy/src/jfw/paging"
 )
 
-const pageSize = 8
+const pageSize = 20
 
 // IndustryInfoService 行业资讯
 type IndustryInfoService struct {

+ 7 - 8
src/jfw/site/helpCenter/helpCenter.go

@@ -7,6 +7,7 @@ import (
 	"fmt"
 	"jy/src/jfw/config"
 	"jy/src/jfw/jyutil"
+	"log"
 	"time"
 )
 
@@ -18,17 +19,12 @@ var (
 // HelpHome 帮助中心 栏目
 // helpId栏目id isHome 是否帮助中心首页请求 num 获取数量
 func HelpHome(helpCode string, isHome bool, num int) []jyutil.HelpColumn {
+	log.Printf("帮助中心参数helpCode:%s,isHome:%v,num:%d", helpCode, isHome, num)
 	//获取帮助中心所有栏目
 	if helpCode == "" {
-		columnCode, _ := config.Sysconfig["columnCode"].(map[string]interface{})
 		//获取帮助中心栏目id
-		query := map[string]interface{}{
-			"s_columncode": columnCode["帮助中心"],
-		}
-		dataHelpId, ok := mongodb.FindOne("column", query)
-		if ok && dataHelpId != nil && len(*dataHelpId) > 0 {
-			helpCode = util.InterfaceToStr((*dataHelpId)["s_columncode"])
-		}
+		columnCode, _ := config.Sysconfig["columnCode"].(map[string]interface{})
+		helpCode = util.InterfaceToStr(columnCode["帮助中心"])
 	} else {
 		var ss jyutil.HelpColumn
 		data, ok := mongodb.FindOne("column", map[string]interface{}{
@@ -69,6 +65,9 @@ func HelpHome(helpCode string, isHome bool, num int) []jyutil.HelpColumn {
 
 // RecursiveQuery pid:父级id isHome 是否首页展示(首页展示只获取一层子集) num 栏目&文章获取数量限制
 func RecursiveQuery(pid string, isHome bool, num int) []jyutil.HelpColumn {
+	if pid == "" {
+		return nil
+	}
 	start, end := -1, -1
 	if num != 0 {
 		start, end = 0, num

+ 3 - 2
src/jfw/site/jySchool/service.go

@@ -9,7 +9,7 @@ import (
 	"log"
 )
 
-const pageSize = 8
+const pageSize = 20
 
 // JySchoolService 剑鱼学堂
 type JySchoolService struct {
@@ -72,6 +72,7 @@ func (this *JySchoolService) Search(pageNumStr string) {
 		"perPage":       fmt.Sprint(pageSize),
 		"currentPage":   pageNum,
 		"s_contenttype": "ztbgl",
+		"queryType":     "1",
 		"query":         query,
 	}, "")
 	// 分页
@@ -111,7 +112,7 @@ func (this *JySchoolService) Class(thisCode string, pageNumStr string) {
 	}, "")
 	// 分页
 	if total > 0 {
-		this.T["pagingMap"] = paging.GetLetterPaging(common.IntAll(pageNum), pageSize, total, fmt.Sprintf("/industryInfo/%s/index_%s.html", thisCode, "%d"))
+		this.T["pagingMap"] = paging.GetLetterPaging(common.IntAll(pageNum), pageSize, total, fmt.Sprintf("/jySchool/%s/index_%s.html", thisCode, "%d"))
 	}
 	this.T["list"] = data
 	this.T["total"] = total

+ 11 - 1
src/jfw/site/jyblog/entity.go

@@ -6,8 +6,10 @@ import (
 	"app.yhyue.com/moapp/jybase/redis"
 	"app.yhyue.com/moapp/jypkg/public"
 	"encoding/json"
+	"fmt"
 	"html/template"
 	"jy/src/jfw/config"
+	"strings"
 	"time"
 )
 
@@ -26,7 +28,15 @@ func GetBlogDetail(_id string) (data *map[string]interface{}) {
 			(*r)["l_createdate"] = util.TimeDiff(time.Unix(util.Int64All(tmpdate1), 0))
 			tmpdate2, _ := (*r)["releasetime"]
 			(*r)["releasetime"] = util.TimeDiff(time.Unix(util.Int64All(tmpdate2), 0))
-			(*r)["s_content"] = template.HTML(util.ObjToString((*r)["s_content"]))
+			content := util.ObjToString((*r)["s_content"])
+			columnCode, _ := config.Sysconfig["columnCode"].(map[string]interface{})
+			helpCode := util.InterfaceToStr(columnCode["帮助中心"])
+			//帮助中心单独处理 需要对内容图片加域名
+			if util.ObjToString((*r)["s_contenttype"]) == helpCode {
+				newImg := fmt.Sprintf(`<img src="%simgFile`, util.InterfaceToStr(config.Seoconfig["jyadd"]))
+				content = strings.ReplaceAll(content, `<img src="/imgFile`, newImg)
+			}
+			(*r)["s_content"] = template.HTML(content)
 			(*r)["_id"] = se.EncodeString(BsonIdToSId((*r)["_id"]))
 			s_pic, _ := (*r)["s_pic"].(string)
 			if s_pic != "" {

+ 3 - 2
src/web/staticres/common-module/pc-dialog/js/leave-info-dialog.js

@@ -335,7 +335,8 @@ var vm = new Vue({
     },
     defaultSource: function() {
       // 默认提交成功不显示广告图和邮箱文案 如果是结构化数据则显示
-      return this.source.indexOf('structed') === -1
+      var noEmailSource = ['structedData', 'pc_data_custom_export']
+      return noEmailSource.indexOf(this.source) === -1
     },
     showBranch: function () {
       // 切换到总裁或总经理之后 把之前选择的部门清空
@@ -555,7 +556,7 @@ var vm = new Vue({
       var _this = this
       $.ajax({
         type:'POST',
-        url: source.indexOf('structedData') > -1 ? '/salesLeads/collectInfo' : '/salesLeads/official/notLogin',
+        url: '/salesLeads/collectInfo',
         contentType: "application/json;charset=utf-8",
         data: JSON.stringify(params),
         success:function (res) {

+ 23 - 1
src/web/staticres/css/pc.css

@@ -4633,7 +4633,7 @@ h6 {
   overflow: hidden;
   margin-top: -282px;
   /* left: calc(50vw - 360px); */
-  left: calc((100vw - 360px) / 2);
+  left: 50%;
   box-sizing: border-box;
   border-radius: 16px;
   font-family: Microsoft YaHei,sans-serif;
@@ -4643,6 +4643,23 @@ h6 {
   display: block;
 }
 
+/* 此处代码处理登录注册弹框居在宽度未知情况居中问题,且保证bootstrap动画效果(淡入淡出) */
+.modal.fade .modal-dialog{
+  -webkit-transform: translate(-50%,-25%);
+  -ms-transform: translate(-50%,-25%);
+  -o-transform: translate(-50%,-25%);
+  transform: translate(-50%,-25%);
+  -webkit-transition: -webkit-transform .3s ease-out;
+  -o-transition: -o-transform .3s ease-out;
+  transition: transform .3s ease-out;
+}
+.modal.in .modal-dialog {
+  -webkit-transform: translate(-50%,0);
+  -ms-transform: translate(-50%,0);
+  -o-transform: translate(-50%,0);
+  transform: translate(-50%,0);
+}
+
 .login-dig-box .logo {
   width: 96px;
   height: 25px;
@@ -5144,3 +5161,8 @@ h6 {
 .login-dig-footer-box p.passTip{
   margin-top: 100px;
 }
+
+.guide-intro-dialog{
+  left: 50%;
+  margin: 120px 0;
+}

+ 1 - 1
src/web/staticres/frontRouter/pc/customExport/css/index.css

@@ -389,7 +389,7 @@ h2.title{
   text-align: center;
 }
 .custom-process-box{
-  height:588px;
+  height:676px;
   padding-top:68px;
   background-image: url(/frontRouter/pc/customExport/image/process-bg.png);
   color:#fff;

+ 6 - 3
src/web/staticres/frontRouter/pc/dataInterface/css/index.css

@@ -71,18 +71,21 @@
 }
 .api-scheme .card-sub-title{
   margin: 20px 0;
+  font-size:20px;
+  line-height: 26px;
+  color: #171826;
 }
-.api-scheme .card-sub-title::before{
+.api-scheme .card-sub-title::before, .api-scheme .card-sub-title::after{
   content: '';
   display: inline-block;
   width: 8px;
-  height: 22px;
+  height: 26px;
   margin-right:8px;
   vertical-align: middle;
   background: url('/frontRouter/pc/dataMarket/images/line.png') no-repeat 45%;
   background-size:contain;
 }
-.api-scheme .card-sub-title::after{
+.api-scheme .card-sub-title:after{
   margin-left:8px;
 }
 .api-scheme .content{

+ 95 - 4
src/web/staticres/public-pc/css/header-nav.css

@@ -838,12 +838,12 @@
   opacity: 0!important;
 }
 .public-nav.light-bg-dark-color .loginBtn{
-  color: #1D1D1D!important;
-  border: 1px solid rgb(224, 224, 224)!important;
+  /* color: #1D1D1D!important; */
+  /* border: 1px solid rgb(224, 224, 224)!important; */
 }
 .public-nav.light-bg-dark-color .loginBtn:hover{
-  color: #2CB7CA!important;
-  border: 1px solid #2CB7CA!important;
+  /* color: #2CB7CA!important;
+  border: 1px solid #2CB7CA!important; */
 }
 
 /* 透明背景白色字体 */
@@ -869,3 +869,94 @@
   position: relative;
   z-index: 9;
 }
+
+.head-search{
+  position: relative;
+  display: flex;
+  align-items: center;
+  margin-top: 14px;
+  width: 360px;
+  height: 36px;
+  padding: 0 8px 0 16px;
+  background: #F5F6F7;
+  border-radius: 8px;
+  border: 1px solid #F5F6F7;
+}
+.head-search >input{
+  flex: 1;
+  height: 100%;
+  padding: 0;
+  font-size: 14px;
+  border: 0;
+  background: transparent;
+}
+.head-search .head-search-icon{
+  flex-shrink: 0;
+  width: 20px;
+  height: 20px;
+  background-position: center;
+  background-repeat: no-repeat;
+  background-size: contain;
+  background-image: url(/site/common/image/head-search-default.png);
+  cursor: pointer;
+}
+.head-search >input::placeholder{
+  color: #999999;
+}
+.head-search.focus {
+  border: 1px solid#2CB7CA;
+  background-color: #fff;
+}
+.head-search.focus .head-search-icon{
+  background-image: url(/site/common/image/head-search-active.png);
+}
+.search-nav-tab{
+  display: none;
+  position: absolute;
+  left: 0;
+  top: 58px;
+  background: #FFFFFF;
+  box-shadow: 0px 2px 12px rgba(0, 0, 0, 0.1);
+  border-radius: 8px;
+  width: 212px;
+  height: 54px;
+  line-height: 54px;
+}
+.search-nav-tab span{
+  position: relative;
+  display: inline-block;
+  padding: 0 16px;
+  font-size: 14px;
+  color: #686868;
+  cursor: pointer;
+  transition: all 0.6s;
+}
+.search-nav-tab span.tab-active{
+  color: #2CB7CA;
+  transition: all 0.6s;
+}
+.search-nav-tab span.tab-active::after{
+  position: absolute;
+  content: '';
+  bottom: 0;
+  left: 50%;
+  width: 28px;
+  height: 2px;
+  transform: translateX(-50%);
+  background: #2CB7CA;
+}
+.useronline{
+  height: 100%!important;
+  margin-top: 0;
+}
+.useronline .user-avatar{
+  margin-top: 14px!important;
+}
+.useronline > button{
+  height: 100%!important;
+  background: #2ABED1!important;
+  margin: unset!important;
+  border: 0;
+  color: #fff!important;
+  border-radius: 0;
+}

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

@@ -83,7 +83,7 @@ function trySelectNav (name) {
         'list', 'article/content', 'article/bdprivate', 'article/mailprivate',
         'article/bdcontent', '/jypc/toPushView', '/jyblog', '/dataExport',
         '/front/dataService.html', '/front/course', '/front/dataexport', '/orderPay',
-        '/big/page/', '/big/pc/page/', '/proposedProject', '/jyxspc',
+        '/big/page/', '/big/pc/page/', '/proposedProject', '/jyxspc'
       ]
       var isLightTheme = lightThemeRegs.some(function (v) {
         return $href.indexOf(v) !== -1
@@ -171,7 +171,7 @@ $(function(){
   var curTheme = getNavTheme()
   $("#public-nav .iner .jynav li").bind("mouseenter",function(){
     var l = $(this).find('.jynav-list').length;
-    if(l > 0){
+    if(l >= 0){
       //  隐藏消息悬浮窗
       $('#public-nav .iner .jynav li').find('.jy-list-msg').hide()
       $(this).find('.jynav-list').toggle()

+ 15 - 5
src/web/staticres/site/common/css/pc-school-head.css

@@ -949,11 +949,21 @@ right: -14px;
   transform: translateX(-50%);
   background: #2CB7CA;
 }
-
-
-
-
-
+.useronline{
+  height: 100%!important;
+  margin-top: 0;
+}
+.useronline .user-avatar{
+  margin-top: 14px!important;
+}
+.useronline > button{
+  height: 100%!important;
+  background: #2ABED1!important;
+  margin: unset!important;
+  border: 0;
+  color: #fff!important;
+  border-radius: 0;
+}
 .tips_none{
   display: none!important;
 }

+ 12 - 0
src/web/staticres/site/page/bankLanding/index.js

@@ -44,5 +44,17 @@ $(function () {
 $('.btn_').click(function(){
   consultDialog.isshow=true // 咨询弹窗
 })
+$('.public-nav .jynav li').hover(function(){
+  setNavTheme('light')
+  $('.loginBtn').css({'color': '#1d1d1d', 'border-color': 'rgb(224, 224, 224)'})
+  $('.public-nav').removeClass('light-bg-light-color').removeClass('light-bg-dark-color')
+}, function() {
+  if($(window).scrollTop() > 120){
+    return
+  }
+  setNavTheme('dark')
+  $('.loginBtn').css({'color': '#fff', 'border-color': '#fff'})
+
+})
 
 })

+ 3 - 0
src/web/staticres/site/page/helpCenter/css/feedback.css

@@ -94,4 +94,7 @@
   text-align: center;
   font-size: 16px;
   color: #fff;
+}
+.f-btn[disabled]{
+  cursor: not-allowed;
 }

+ 19 - 4
src/web/staticres/site/page/helpCenter/css/index.css

@@ -88,6 +88,9 @@
   font-size: 16px;
   line-height: 24px;
   color: #1D1D1D;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
 }
 .card .list-middle > a:hover{
   color: #2ABED1;
@@ -142,12 +145,26 @@
   margin-top: 8px;
   font-size: 16px;
   line-height: 24px;
+  display: flex;
+  align-items: center;
+  
 }
 .faq-feedback .f-content li > a{
   color: #1D1D1D;
+  text-decoration: none;
+}
+
+.faq-feedback .f-content li > a:nth-child(1) {
+  max-width: 264px;
+  display: inline-block;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  overflow: hidden;
 }
+
 .faq-feedback .f-content li > a:hover{
   color: #2ABED1;
+  text-decoration: none;
 }
 .faq-more{
   padding-left: 32px;
@@ -175,11 +192,9 @@
   font-size: 16px;
   color: #fff;
   text-align: center;
+  cursor: pointer;
 }
-.feedback .feedback-btn:hover,
-.feedback .feedback-btn:active{
-  color: #fff;
-}
+
 .hot-handel{
   padding: 80px 0;
 }

+ 6 - 0
src/web/staticres/site/page/helpCenter/css/summary.css

@@ -33,6 +33,7 @@ body{
   line-height: 22px;
   color: #686868;
   cursor: pointer;
+  word-break: break-all;
 }
 .s-tree .tree-item:hover{
   color:#2ABED1;
@@ -169,4 +170,9 @@ summary.active a{
 
 .catalogue .detail li:hover,.catalogue .detail a:hover{
   color: #2ABED1;
+}
+.detail-title{
+  font-size: 24px;
+  line-height: 36px;
+  color: #1D1D1D;
 }

+ 7 - 3
src/web/staticres/site/page/industryInfo/css/index.css

@@ -96,7 +96,7 @@
   border-radius: 8px;;
 }
 .page-industry-introduct .msg-container.light{
-  background: rgba(42, 190, 209, 0.05);
+  background: rgba(42, 190, 209, 0.08);
 }
 .page-industry-introduct .msg-container.dark{
   background: rgba(29, 29, 29, 0.15);
@@ -108,11 +108,11 @@
   color: #fff;
 }
 .page-industry-introduct .msg-container.light .msg-list > a:hover{
-  background: rgba(42, 190, 209, 0.1);
+  background: rgba(0, 152, 172, 0.1);
   border-radius: 8px;;
 }
 .page-industry-introduct .msg-container.dark .msg-list > a:hover{
-  background: rgba(29, 29, 29, 0.15);;
+  background: rgba(29, 29, 29, 0.15);
   border-radius: 8px;;
 }
 /*E-- banner--E */
@@ -204,6 +204,10 @@
   width: 370px;
 }
 .strate_c_list .strate_l_right .strate_l_r_title{
+  width: 100%;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
   font-weight: 400;
   font-size: 15px;
   line-height: 24px;

+ 11 - 3
src/web/staticres/site/page/industryInfo/css/industry_content.css

@@ -42,11 +42,14 @@
 }
 .school_tabs .industry_info {
   position: relative;
-  height: 923px;
+  min-height: 923px;
   margin-bottom: 40px;
-  padding: 40px;
+  padding: 40px 40px 126px;
   background: #fff;
 }
+.industry_info .jyb_ddetail {
+  margin: 0 auto;
+}
 .industry_info .scroll_main{
   margin-top: 20px;
   height: 576px;
@@ -178,9 +181,10 @@
 .industry_info .btn_next{
   position: absolute;
   bottom: 40px;
+  height: 86px;
   display: flex;
   justify-content: center;
-  align-items: flex-start;
+  align-items: flex-end;
   margin-top: 50px;
   width: calc(100% - 40px); ;
   background: #fff;
@@ -279,6 +283,9 @@
   background-clip: text;
   text-fill-color: transparent;
 }
+.data_date{
+  padding-right: 4px;
+}
 .viewnum{
   margin-left: 36px;
 }
@@ -401,6 +408,7 @@
   font-size: 13px;
   line-height: 24px;
   color: #2CB7CA;
+  cursor: pointer;
 }
 .strate_module .strate_content{
   display: flex;

+ 12 - 0
src/web/staticres/site/page/industryInfo/css/industry_detail.css

@@ -2,6 +2,11 @@
   width: 1200px;
   margin: 0 auto;
 }
+.ellipsis {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
 .ellipsis-2 {
   overflow: hidden;
   text-overflow: ellipsis;
@@ -176,6 +181,7 @@
   /* width: 530px; */
 }
 .school_tabs .art_list .art_l_left .art_l_l_title{
+  width: 530px;
   font-weight: 400;
   font-size: 20px;
   line-height: 30px;
@@ -242,6 +248,11 @@
   position: relative;
   width: 100%;
   height: 100%;
+  cursor: pointer;
+}
+.mySwiper .swiper-wrapper .swiper-slide img{
+  width: 100%;
+  height: 240px;
 }
 .mySwiper .swiper-pagination{
   display: flex;
@@ -438,6 +449,7 @@
   font-size: 13px;
   line-height: 24px;
   color: #2CB7CA;
+  cursor: pointer;
 }
 .strate_module .strate_content{
   display: flex;

+ 10 - 0
src/web/staticres/site/page/jySchool/css/index.css

@@ -226,6 +226,16 @@
   line-height: 22px;
   color: #FF3A20;
 }
+.card-main .init-price{
+  font-size: 14px;
+  color: #9b9ba3;
+  line-height: 18px;
+  text-decoration: line-through;
+}
+.card-main .expired{
+  color: #686868;
+  font-size: 14px;
+}
 .course-card:hover .card-main .c-m-title{
   color: #2ABED1;
 }

+ 4 - 0
src/web/staticres/site/page/jySchool/css/introduction.css

@@ -94,6 +94,10 @@
   width: 370px;
 }
 .strate_c_list .strate_l_right .strate_l_r_title{
+  width: 100%;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
   font-weight: 400;
   font-size: 15px;
   line-height: 24px;

+ 4 - 0
src/web/staticres/site/page/jySchool/css/introduction_content.css

@@ -228,6 +228,9 @@
   background-clip: text;
   text-fill-color: transparent;
 }
+.data_date {
+  padding-right: 4px;
+}
 .viewnum{
   margin-left: 36px;
 }
@@ -350,6 +353,7 @@
   font-size: 13px;
   line-height: 24px;
   color: #2CB7CA;
+  cursor: pointer;
 }
 .strate_module .strate_content{
   display: flex;

+ 12 - 0
src/web/staticres/site/page/jySchool/css/introduction_detail.css

@@ -199,6 +199,9 @@
   background-clip: text;
   text-fill-color: transparent;
 }
+.data_date {
+  padding-right: 4px;
+}
 .viewnum{
   margin-left: 36px;
 }
@@ -321,6 +324,7 @@
   font-size: 13px;
   line-height: 24px;
   color: #2CB7CA;
+  cursor: pointer;
 }
 .strate_module .strate_content{
   display: flex;
@@ -354,6 +358,10 @@
   min-width: 370px;
 }
 .strate_c_list .strate_l_right .strate_l_r_title{
+  width: 370px;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
   font-weight: 400;
   font-size: 15px;
   line-height: 24px;
@@ -380,3 +388,7 @@
   line-height: 24px;
   color: #999999;
 }
+
+.com-highlight{
+	color: #2ABED1;
+}

+ 24 - 24
src/web/templates/dataMarket/customExport/index.html

@@ -102,37 +102,37 @@
         <div class="content f-space-between">
           <div class="con-row">
             <div class="row-text">
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-icon1.png?v={{Msg "seo" "version"}}' alt="">
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-icon1.png?v={{Msg "seo" "version"}}' alt="数据定制导出">
             </div>
             <div class="con-info">
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-text1.png?v={{Msg "seo" "version"}}' alt="">
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-text1.png?v={{Msg "seo" "version"}}' alt="精准需求匹配">
               <p>多达50+可筛选关键信息,确保得到的都是自己想要的数据,不再受垃圾信息的袭扰,工作更高效。</p>
             </div>
           </div>
           <div class="con-row">
             <div class="row-text">
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-icon2.png?v={{Msg "seo" "version"}}' alt="">
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-icon2.png?v={{Msg "seo" "version"}}' alt="多重人机校验">
             </div>
             <div class="con-info">
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-text2.png?v={{Msg "seo" "version"}}' alt="">
-              <p>有多年经验的专业数据团队+人工智能,通过人机结合的方式,把数据的误差控制在1的范围内。</p>
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-text2.png?v={{Msg "seo" "version"}}' alt="多重人机校验">
+              <p>有多年经验的专业数据团队+人工智能,通过人机结合的方式,把数据的误差控制在1%的范围内。</p>
             </div>
           </div>
           <div class="con-row">
             <div class="row-text">
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-icon3.png?v={{Msg "seo" "version"}}' alt="">
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-icon3.png?v={{Msg "seo" "version"}}' alt="全量数据开放">
             </div>
             <div class="con-info">
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-text3.png?v={{Msg "seo" "version"}}' alt="">
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-text3.png?v={{Msg "seo" "version"}}' alt="全量数据开放">
               <p>数据涵盖所有信息内容均可搜索查询,数据内容全面向用户开放,导出数据更全量。</p>
             </div>
           </div>
           <div class="con-row">
             <div class="row-text">
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-icon4.png?v={{Msg "seo" "version"}}' alt="">
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-icon4.png?v={{Msg "seo" "version"}}' alt="全天服务响应">
             </div>
             <div class="con-info">
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-text4.png?v={{Msg "seo" "version"}}' alt="">
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/export-b-text4.png?v={{Msg "seo" "version"}}' alt="全天服务响应">
               <p>专属数据顾问根据您的需求细节为您提供专业服务,数据定制、数据导出全流程跟踪,服务更贴心。</p>
             </div>
           </div>
@@ -149,23 +149,23 @@
         <h2 class="title bg-contain"></h2>
         <div class="content f-space-between">
          <div class="con-row">
-           <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/core-icon1.png?v={{Msg "seo" "version"}}'>
+           <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/core-icon1.png?v={{Msg "seo" "version"}}' alt="海量数据资源">
            <div class="info">千亿级招投标数据库,招标信息实时更新,100%行业和地区覆盖;大力建设自有数据库,拥有30+个医疗、建筑、ICT等多行业数据库,产品市场占有率,市场价格和竞争对手情况了然于胸。</div>
          </div>
           <div class="con-row">
-            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/core-icon2.png?v={{Msg "seo" "version"}}'>
+            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/core-icon2.png?v={{Msg "seo" "version"}}' alt="快速交付机制">
             <div class="info">八年专注招标数据服务,在网络安全、通讯、信息化、设备类等20+领域拥有成熟的数据模型,最快可24小时交付,相比同行交付周期快2-3倍。</div>
           </div>
           <div class="con-row">
-            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/core-icon3.png?v={{Msg "seo" "version"}}'>
+            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/core-icon3.png?v={{Msg "seo" "version"}}' alt="专业服务团队">
             <div class="info">已合作5000+企业,拥有专业资深的数据服务团队,可根据企业需求,定制专属数据方案,数据利用率可提高至90%。减少大量无效数据损耗。</div>
           </div>
           <div class="con-row">
-            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/core-icon4.png?v={{Msg "seo" "version"}}'>
+            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/core-icon4.png?v={{Msg "seo" "version"}}' alt="全面售后保障">
             <div class="info">7×24小时服务支持,承诺售后问题2小时内做出响应和安排。服务期间,数据交付内容可根据业务需求灵活调整,提供企业服务咨询和专业技术指导。</div>
           </div>
         </div>
-        <div class="common-custom-btn btn-cell btn-light">定制数据方案</div>
+        <div class="common-custom-btn btn-cell btn-light" onClick="needSubmitHandle()">定制数据方案</div>
       </div>
     </section>
     <!--行业解决方案-->
@@ -270,23 +270,23 @@
         <h2 class="title bg-contain"></h2>
         <div class="content f-space-between">
           <div class="con-row">
-            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/way-icon1.png?v={{Msg "seo" "version"}}'>
+            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/way-icon1.png?v={{Msg "seo" "version"}}' alt="数据定制导出">
             <p>
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/way-text1.png?v={{Msg "seo" "version"}}'>
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/way-text1.png?v={{Msg "seo" "version"}}' alt="数据定制导出">
             </p>
             <div class="info">根据业务需要,提供数据定制导出服务,用户可指定关键词、发布时间、地区或行业等条件,以Excel表格形式导出数据,按条计费,成本低。</div>
           </div>
           <div class="con-row">
-            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/way-icon2.png?v={{Msg "seo" "version"}}'>
+            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/way-icon2.png?v={{Msg "seo" "version"}}' alt="数据API接口">
             <p>
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/way-text2.png?v={{Msg "seo" "version"}}'>
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/way-text2.png?v={{Msg "seo" "version"}}' alt="数据API接口">
             </p>
             <div class="info">企业可按需将招标数据导入到自有平台,快速搭建自己的招标数据库,低成本、高效调用数据分析友商、市场体量、挖掘渠道商。</div>
           </div>
           <div class="con-row">
-            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/way-icon3.png?v={{Msg "seo" "version"}}'>
+            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/way-icon3.png?v={{Msg "seo" "version"}}' alt="数据流量预充值">
             <p>
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/way-text3.png?v={{Msg "seo" "version"}}'>
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/way-text3.png?v={{Msg "seo" "version"}}' alt="数据流量预充值">
             </p>
             <div class="info">企业可按需预充值数据量,根据业务需求以excel格式导出数据,最低1.5折,价格低至0.075元/条,数据有效期长达3年。</div>
           </div>
@@ -302,7 +302,7 @@
         <div class="content f-space-between">
           <div class="con-row">
             <div>
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/process-icon1.png?v={{Msg "seo" "version"}}'>
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/process-icon1.png?v={{Msg "seo" "version"}}' alt="用户需求">
             </div>
             <div class="con-info">
               <p>1.用户需求</p>
@@ -311,7 +311,7 @@
           </div>
           <div class="con-row">
             <div>
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/process-icon2.png?v={{Msg "seo" "version"}}'>
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/process-icon2.png?v={{Msg "seo" "version"}}' alt="数据规则确认">
             </div>
             <div class="con-info">
               <p>2.数据规则确认</p>
@@ -320,7 +320,7 @@
           </div>
           <div class="con-row">
             <div>
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/process-icon3.png?v={{Msg "seo" "version"}}'>
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/process-icon3.png?v={{Msg "seo" "version"}}' alt="样例数据输出">
             </div>
             <div class="con-info">
               <p>3.样例数据输出</p>
@@ -329,7 +329,7 @@
           </div>
           <div class="con-row">
             <div>
-              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/process-icon4.png?v={{Msg "seo" "version"}}'>
+              <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/customExport/image/process-icon4.png?v={{Msg "seo" "version"}}' alt="数据交付">
             </div>
             <div class="con-info">
               <p>4.数据交付</p>

+ 9 - 5
src/web/templates/dataMarket/index.html

@@ -29,19 +29,19 @@
       <p class="self-sub-title">数据开放共享与交易流通平台,为企业提供全面数据支持!</p>
       <div class="content">
         <div class="con-row">
-          <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/dataMarket/images/banner-icon1.png?v={{Msg "seo" "version"}}' alt="">
+          <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/dataMarket/images/banner-icon1.png?v={{Msg "seo" "version"}}' alt="海量数据">
           <p>海量数据</p>
         </div>
         <div class="con-row">
-          <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/dataMarket/images/banner-icon2.png?v={{Msg "seo" "version"}}' alt="">
+          <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/dataMarket/images/banner-icon2.png?v={{Msg "seo" "version"}}' alt="数据安全合规">
           <p>数据安全合规</p>
         </div>
         <div class="con-row">
-          <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/dataMarket/images/banner-icon3.png?v={{Msg "seo" "version"}}' alt="">
+          <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/dataMarket/images/banner-icon3.png?v={{Msg "seo" "version"}}' alt="多样化交易模式">
           <p>多样化交易模式</p>
         </div>
         <div class="con-row">
-          <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/dataMarket/images/banner-icon4.png?v={{Msg "seo" "version"}}' alt="">
+          <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/dataMarket/images/banner-icon4.png?v={{Msg "seo" "version"}}' alt="成熟的数据产品和服务">
           <p>成熟的数据产品和服务</p>
         </div>
       </div>
@@ -192,7 +192,9 @@
   // 数据导出
   function dataExport () {
     checkLogin()
-    location.href = "/front/dataExport/toSieve"
+    if(loginflag){
+      location.href = "/front/dataExport/toSieve"
+    }
   }
   function checkLogin () {
     var moduleOpen = $('body').hasClass('modal-open')
@@ -206,5 +208,7 @@
     location.href = "/front/dataMarket/customExport"
   }
 </script>
+<!--百度统计-->
+{{include "/common/baiducc.html"}}
 </body>
 </html>

+ 1 - 1
src/web/templates/frontRouter/wx/bigmember/free/perfect_info_bank.html

@@ -591,7 +591,7 @@
           this.ajaxParams.branch = this.infoMap.branch.indexOf('总裁') > -1 || this.infoMap.branch.indexOf('总经理') > -1 ? '' : this.infoMap.branch
           var _this = this
           var loading = _this.showLoading()
-          var ajax_url= this.ajaxParams.source.indexOf('bankLanding') !== -1 ? '/salesLeads/officialNotLogin' : '/salesLeads/collectInfo'
+          var ajax_url= this.ajaxParams.source.indexOf('bankLanding') !== -1 ? '/salesLeads/official/notLogin' : '/salesLeads/collectInfo'
           $.ajax({
             type: 'POST',
             url: ajax_url,

+ 4 - 4
src/web/templates/pc/index.html

@@ -212,9 +212,9 @@
 		  <div class="jy-index-news CfadeInUp">
         <h3 class="module-title">最新资讯</h3>
         <div class="w1200 news-container">
-        {{range $i, $v := JyCms "hyzc" 12}}
+        {{range $i, $v := JyCms "hyzx" 12}}
           {{if eq $i 0}}
-          <div class="news-card" onclick="window.open('/jyblog/{{$v._id}}.html')">
+          <div class="news-card" onclick="window.open('/jySite/{{$v._id}}.html')">
             <div class="card-img">
               <img src="{{$v.s_pic}}" alt="{{$v.s_title}}">
             </div>
@@ -228,9 +228,9 @@
         {{end}}
 
         <div class="news-list">
-          {{range $i, $v := JyCms "hyzc" 12}}
+          {{range $i, $v := JyCms "hyzx" 12}}
             {{if gt $i 0}}
-              <a class="news-item" href="/jyblog/{{$v._id}}.html" target="_blank">
+              <a class="news-item" href="/jySite/{{$v._id}}.html" target="_blank">
                 <span class="news-item-text">{{$v.s_title}}</span>
                 <span class="news-item-date">{{$v.time}}</span>
               </a>

+ 1 - 1
src/web/templates/site/page/bankLanding/pc/index.html

@@ -81,7 +81,7 @@
       <div class="item ml-20">
         <img src="{{Msg "seo" "cdn"}}/site/page/bankLanding/images/after.png?v={{Msg "seo" "version"}}" alt="">
         <p class="title">售后维护</p>
-        <p class="text_">根据业务单位的实际需求,经验丰富的数据团队可对数据进行深度加工分析,有针对性的解决企业获客及风险评估个性化问题。</p>
+        <p class="text_">根据业务单位的实际需求,经验丰富的数据团队可对数据进行深度加工分析,有针对性的解决企业获客及风险评估版块个性化问题。</p>
       </div>
     </div>
     <div class="btn_">点击了解更多</div>

+ 1 - 1
src/web/templates/site/page/bankLanding/wx/index.html

@@ -76,7 +76,7 @@
       </div>
       <div class="item">
         <p class="title">售后维护</p>
-        <p class="text">根据业务单位的实际需求,经验丰富的数据团队可对数据进行深度加工分析,有针对性的解决企业获客及风险评估个性化问题。</p>
+        <p class="text">根据业务单位的实际需求,经验丰富的数据团队可对数据进行深度加工分析,有针对性的解决企业获客及风险评估版块个性化问题。</p>
         <img class="p_right" src="{{Msg " seo" "cdn" }}/common-module/site/page/bankLanding/images/img-2.png?v={{Msg "seo" "version" }}" alt="">
       </div>
     </div>

+ 1 - 0
src/web/templates/site/page/helpCenter/catalog.html

@@ -44,6 +44,7 @@
   let data = {{.T.catalog}}
 
   $(function () {
+    haslogin({{.T.logid}});
     $('.s-tree').html(getTree(data))
   })
 

+ 1 - 1
src/web/templates/site/page/helpCenter/detail.html

@@ -21,7 +21,7 @@
 <section class="page-summary">
   <div class="s-tree"></div>
   <div class="s-content">
-    <div>
+    <div class="detail-title">
       {{.T.detail.s_title}}
     </div>
     <div>

+ 16 - 2
src/web/templates/site/page/helpCenter/feedback.html

@@ -72,6 +72,14 @@
         $('.entered-count').text($(this).val().length)
       })
       $('#submit').on('click',function (){
+        if ($('#textarea').val().length < 10) {
+          showToast('请至少填写10个字的反馈,谢谢')
+          $(this).attr("disabled","disabled")
+          setTimeout(function() {
+            $('#submit').removeAttr('disabled')
+          }, 2000)
+          return
+        }
         $(this).attr("disabled","disabled")
         let content=$("textarea").val()
         let mold=$("[name='type']:checked").val()
@@ -79,9 +87,15 @@
           {mold:mold,content:content},
           function (res){
             if(res.data){
-              window.history.go(-1)
+              showToast('提交成功')
+              setTimeout(function() {
+                $('#submit').removeAttr('disabled')
+                $('#textarea').val('')
+                $('#account').prop('checked', 'checked')
+                $('.entered-count').text(0)
+              }, 2000)
             }else {
-              alert(res.error_msg)
+              showToast(res.error_msg)
             }
         })
       })

+ 11 - 3
src/web/templates/site/page/helpCenter/index.html

@@ -56,9 +56,9 @@
             <ul class="f-content">
               {{range $kk,$vv:=$v.SeedData}}
               <li>
-                <a href="{{$vv.Href}}" title="{{$vv.Name}}">•  {{$vv.Name}}</a>
+                <a href="{{$vv.Href}}" title="{{$vv.Name}}" target="_blank">•  {{$vv.Name}}</a>
                 {{if eq (Add $kk 1) (len $v.SeedData)}}
-                <a class="faq-more" href="{{$v.Href}}">更多</a>
+                <a class="faq-more" href="{{$v.Href}}" target="_blank">更多</a>
                 {{end}}
               </li>
               {{end}}
@@ -69,7 +69,7 @@
           <div class="feedback">
             <h3 class="f-title">意见反馈</h3>
             <div class="f-content">请把您的意见与建议反馈给我们</div>
-            <a class="feedback-btn" href="/helpCenter/feedback">立即反馈</a>
+            <span class="feedback-btn" data-href="/helpCenter/feedback">立即反馈</span>
           </div>
         </div>
         <div class="hot-handel">
@@ -114,6 +114,14 @@
           }
         }
       })
+      $('.feedback-btn').on('click', function() {
+        if (!loginflag){
+          openLoginDig()
+        } else {
+          var url = $(this).attr('data-href')
+          window.open(url)
+        }
+      })
     })
   </script>
   {{include "/common/baiducc.html"}}

+ 4 - 3
src/web/templates/site/page/industryInfo/class.html

@@ -83,13 +83,13 @@
             </div>
             <ul class="module_content">
               <!-- 轮播 -->
-              <div class="swiper mySwiper swiper-initialized swiper-horizontal swiper-pointer-events swiper-backface-hidden" >
+              <div class="swiper mySwiper" >
                 <div class="swiper-wrapper" id="swiper-wrapper" aria-live="polite" style="transition-duration: 0ms; transform: translate3d(-3072px, 0px, 0px);">
                   {{range $k,$v :=  .T.rightData.course}}
-                    <div class="swiper-slide" role="group" style="width: 1536px;" aria-label="1">
+                    <div class="swiper-slide" onclick="window.open('/jyxspc/courser-details?id={{$v._id}}')" role="group" style="width: 1536px;" aria-label="1">
                       <img src="{{$v.s_picUrl2}}" alt="">
                       <div class="swiper_title">
-                        <span onclick="window.open('/jyxspc/courser-details?id={{$v._id}}')">{{$v.s_name}}</span>
+                        <span>{{$v.s_name}}</span>
                       </div>
                     </div>
                   {{end}}
@@ -174,6 +174,7 @@
     }
   }
   pageIndustry.init()
+  $('.mySwiper').removeClass('swiper-container-horizontal swiper-container-initialized')
 </script>
 
 {{include "/common/baiducc.html"}}

+ 2 - 2
src/web/templates/site/page/jySchool/class.html

@@ -14,7 +14,7 @@
   <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">
   <link rel="stylesheet" href='{{Msg "seo" "cdn"}}/css/swiper.min.css?v={{Msg "seo" "version"}}'>
-  <link href='{{Msg "seo" "cdn"}}/frontRouter/pc/industryInfo/css/industry_detail.css?v={{Msg "seo" "version"}}' rel="stylesheet">
+  <link href='{{Msg "seo" "cdn"}}/site/page/industryInfo/css/industry_detail.css?v={{Msg "seo" "version"}}' rel="stylesheet">
   <link href="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.7/lib/theme-chalk/index.css" rel="stylesheet" />
   <link href='{{Msg "seo" "cdn"}}/site/common/css/paging.css?v={{Msg "seo" "version"}}' rel="stylesheet">
   </head>
@@ -55,7 +55,7 @@
               {{range $k,$v := .T.list}}
               <div class="art_list">
                 <div class="art_l_left">
-                  <div class="art_l_l_title" onclick="window.location.href='/jySite/{{$v._id}}.html'">
+                  <div class="art_l_l_title ellipsis" onclick="window.location.href='/jySite/{{$v._id}}.html'">
                     {{$v.s_title}}
                   </div>
                   <div class="art_l_l_content">

+ 20 - 5
src/web/templates/site/page/jySchool/index.html

@@ -68,10 +68,23 @@
               </p>
               <p class="c-m-cp">
                 <span class="hot-count">{{$v.i_clickRate}}</span>
-                {{if eq $v.i_price 0}}
-                <span class="hot-price">免费</span>
+                {{if $v.isExpired}}
+                <span class="expired">已过期</span>
                 {{else}}
-                <span class="hot-price" style="font-size:18px;line-height: 28px;"><em style="font-size:12px;line-height: 18px;">¥</em>{{Division $v.i_price 100}}</span>
+                  {{if $v.isDiscount}}
+                    {{if eq $v.discountPrice 0.0}}
+                    <span class="hot-price">免费</span>
+                    {{else}}
+                    <span class="hot-price" style="font-size:18px;line-height: 28px;"><em style="font-size:12px;line-height: 18px;">¥</em>{{Division $v.discountPrice 100}}</span>
+                    {{end}}
+                    <span class="init-price">¥{{Division $v.i_price 100}}</span>
+                  {{else}}
+                    {{if eq $v.i_price 0}}
+                    <span class="hot-price">免费</span>
+                    {{else}}
+                    <span class="hot-price" style="font-size:18px;line-height: 28px;"><em style="font-size:12px;line-height: 18px;">¥</em>{{Division $v.i_price 100}}</span>
+                    {{end}}
+                  {{end}}
                 {{end}}
               </p>
             </div>
@@ -88,7 +101,7 @@
         </div>
         <div class="f-doc-container">
           {{range $k,$v := .T.newJyDoc }}
-          <div class="doc-card">
+          <div class="doc-card" onclick="window.location.href='/swordfish/docs/content/{{$v.docId}}'">
             <div class="doc-img">
               <img  class="img-bg" src='{{Msg "seo" "cdn"}}{{$v.previewImgId}}?v={{Msg "seo" "version"}}' alt="">
               <!-- 图片类型 doc@2x、excel@2x、pdf@2x、ppt@2x-->
@@ -128,7 +141,9 @@
                 <div class="s-b-item" onclick="window.location.href='/jySite/{{$n._id}}.html'">
                   {{$n.s_pic1}}
                   <img class="s-b-item-bg" src='{{Msg "seo" "cdn"}}{{$n.s_pic1}}?v={{Msg "seo" "version"}}' alt="{{$n.s_title}}">
-                  <p class="s-b-item-bar">{{$n.s_title}}</p>
+                  <div class="s-b-item-bar">
+                    <p class="ellipsis-2">{{$n.s_title}}</p>
+                  </div>
                   <div class="shade-bg">
                     <img class="shade-more" src='{{Msg "seo" "cdn"}}/site/page/jySchool/image/more.png?v={{Msg "seo" "version"}}' alt="">
                   </div>

+ 6 - 0
src/web/templates/site/page/jySchool/search.html

@@ -175,6 +175,12 @@
   <script type="text/javascript" src='{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}'></script>
   <script>
     haslogin({{.T.logid}})
+    var titleArr = $('.art_l_l_title')
+    titleArr.each(function(v, el) {
+      let title = $(el).html()
+      let result = keyWordHighlight(title, [{{.T.query}}], "<font class='com-highlight'>$1</font>")
+      $(el).html(result)
+    })
   </script>
 
   {{include "/common/baiducc.html"}}

+ 14 - 4
src/web/templates/site/page/jyblogdetail.html

@@ -98,7 +98,7 @@
           相关内容推荐
         </div>
         {{range $k,$v:= .T.bottomInfo}}
-        <div class="art_list">
+        <div class="art_list" onclick="window.location.href='/jySite/{{$v._id}}.html'">
           <div class="art_l_left">
             <div class="art_l_l_title">
               {{$v.s_title}}
@@ -121,8 +121,13 @@
         {{include "/site/common/slide-leave-info.html"}}
         <div class="real_time_info_module" style="margin-top:40px;">
           <div class="module_title">
-            <span>热点资讯</span>
-            <span>MORE</span>
+            {{if eq .T.pCode "hyzx"}}
+              <span>最新文章</span>
+              <span onclick="window.location.href='/industryInfo/index'">MORE</span>
+            {{else}}
+              <span>内容推荐</span>
+              <span onclick="window.location.href='/jySchool/strategy'">MORE</span>
+            {{end}}
           </div>
           <ul class="module_content">
           {{range $k,$v := .T.rightInfo.latestPush}}
@@ -136,8 +141,13 @@
 
         <div class="real_time_info_module">
           <div class="module_title">
+            {{if eq .T.pCode "hyzx"}}
             <span>热门文章</span>
-            <span>MORE</span>
+            <span onclick="window.location.href='/industryInfo/index'">MORE</span>
+            {{else}}
+            <span>重要资讯</span>
+            <span onclick="window.location.href='/jySchool/strategy'">MORE</span>
+            {{end}}
           </div>
           <ul class="module_content">
             {{range $k,$v := .T.rightInfo.randomExtraction}}