浏览代码

feat:前端模板

zhangxinlei1996 2 年之前
父节点
当前提交
4654a5bd9f
共有 4 个文件被更改,包括 245 次插入552 次删除
  1. 57 46
      src/go.mod
  2. 97 441
      src/go.sum
  3. 40 28
      src/jfw/front/classificationTag.go
  4. 51 37
      src/web/templates/pc/index.html

+ 57 - 46
src/go.mod

@@ -4,87 +4,94 @@ go 1.18
 
 require (
 	app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230307011807-2ef7ef8e0c09
-<<<<<<< HEAD
-	app.yhyue.com/moapp/jybase v0.0.0-20230517064222-e0bdfc8ee0e8
-=======
 	app.yhyue.com/moapp/jybase v0.0.0-20230614085041-f8f20842d5cb
 	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
->>>>>>> feature/v4.8.31
 	app.yhyue.com/moapp/jypkg v0.0.0-20230530080115-eeb9ad32daf0
 	bp.jydev.jianyu360.cn/BaseService/userCenter v1.2.13
 	github.com/SKatiyar/qr v0.0.0-20151201054752-25b6bdf44e67
 	github.com/fsnotify/fsnotify v1.6.0
-	github.com/gogf/gf v1.16.9
 	github.com/gogf/gf/v2 v2.3.1
 	github.com/robfig/cron v1.2.0
-	github.com/zeromicro/go-zero v1.4.4
-	go.mongodb.org/mongo-driver v1.11.1
+	github.com/zeromicro/go-zero v1.5.2
+	go.mongodb.org/mongo-driver v1.11.4
 )
 
 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-20230222052351-9d6fad062447 // indirect
+	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230225125145-431a4f70093a // indirect
 	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.7 // indirect
 	github.com/BurntSushi/toml v1.1.0 // indirect
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/cenkalti/backoff/v4 v4.2.1 // indirect
 	github.com/cespare/xxhash/v2 v2.2.0 // indirect
-	github.com/clbanning/mxj v1.8.5-0.20200714211355-ff02cfb8ea28 // indirect
 	github.com/clbanning/mxj/v2 v2.5.5 // indirect
-	github.com/coreos/go-semver v0.3.0 // indirect
-	github.com/coreos/go-systemd/v22 v22.3.2 // indirect
+	github.com/coreos/go-semver v0.3.1 // indirect
+	github.com/coreos/go-systemd/v22 v22.5.0 // indirect
 	github.com/davecgh/go-spew v1.1.1 // indirect
 	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
-	github.com/fatih/color v1.13.0 // indirect
+	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
+	github.com/fatih/color v1.15.0 // indirect
 	github.com/felixge/fgprof v0.9.3 // indirect
 	github.com/garyburd/redigo v1.6.2 // indirect
 	github.com/go-logr/logr v1.2.4 // indirect
 	github.com/go-logr/stdr v1.2.2 // indirect
+	github.com/go-openapi/jsonpointer v0.19.6 // indirect
+	github.com/go-openapi/jsonreference v0.20.1 // indirect
+	github.com/go-openapi/swag v0.22.3 // indirect
 	github.com/go-redis/redis/v8 v8.11.5 // indirect
 	github.com/go-sql-driver/mysql v1.7.0 // indirect
 	github.com/gogo/protobuf v1.3.2 // indirect
 	github.com/golang/mock v1.6.0 // indirect
-	github.com/golang/protobuf v1.5.2 // indirect
+	github.com/golang/protobuf v1.5.3 // indirect
 	github.com/golang/snappy v0.0.4 // indirect
 	github.com/gomodule/redigo v2.0.0+incompatible // indirect
+	github.com/google/gnostic v0.5.7-v3refs // indirect
 	github.com/google/go-cmp v0.5.9 // indirect
 	github.com/google/gofuzz v1.2.0 // indirect
 	github.com/google/pprof v0.0.0-20211214055906-6f57359322fd // indirect
-	github.com/googleapis/gnostic v0.5.5 // indirect
 	github.com/gorilla/websocket v1.5.0 // indirect
 	github.com/grokify/html-strip-tags-go v0.0.1 // indirect
-	github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
+	github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.0 // indirect
+	github.com/hashicorp/hcl v1.0.0 // indirect
 	github.com/howeyc/fsnotify v0.9.0 // indirect
 	github.com/jinzhu/inflection v1.0.0 // indirect
 	github.com/jinzhu/now v1.1.1 // indirect
 	github.com/josharian/intern v1.0.0 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect
-	github.com/klauspost/compress v1.15.11 // indirect
-	github.com/kr/pretty v0.3.0 // indirect
+	github.com/klauspost/compress v1.15.15 // indirect
 	github.com/magiconair/properties v1.8.7 // indirect
 	github.com/mailru/easyjson v0.7.7 // indirect
-	github.com/mattn/go-colorable v0.1.12 // indirect
-	github.com/mattn/go-isatty v0.0.14 // indirect
+	github.com/mattn/go-colorable v0.1.13 // indirect
+	github.com/mattn/go-isatty v0.0.17 // indirect
 	github.com/mattn/go-runewidth v0.0.13 // indirect
-	github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
+	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
+	github.com/mitchellh/mapstructure v1.5.0 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
 	github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect
+	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
 	github.com/nsqio/go-nsq v1.1.0 // indirect
 	github.com/olekukonko/tablewriter v0.0.5 // indirect
 	github.com/olivere/elastic v6.2.37+incompatible // indirect
 	github.com/olivere/elastic/v7 v7.0.22 // indirect
 	github.com/openzipkin/zipkin-go v0.4.1 // indirect
-	github.com/pelletier/go-toml/v2 v2.0.6 // indirect
+	github.com/pelletier/go-toml/v2 v2.0.7 // indirect
 	github.com/pkg/errors v0.9.1 // indirect
-	github.com/prometheus/client_golang v1.13.0 // indirect
-	github.com/prometheus/client_model v0.2.0 // indirect
-	github.com/prometheus/common v0.37.0 // indirect
-	github.com/prometheus/procfs v0.8.0 // indirect
+	github.com/prometheus/client_golang v1.15.0 // indirect
+	github.com/prometheus/client_model v0.3.0 // indirect
+	github.com/prometheus/common v0.42.0 // indirect
+	github.com/prometheus/procfs v0.9.0 // indirect
 	github.com/rivo/uniseg v0.2.0 // indirect
+	github.com/sirupsen/logrus v1.8.3 // indirect
 	github.com/spaolacci/murmur3 v1.1.0 // indirect
+	github.com/spf13/afero v1.9.3 // indirect
+	github.com/spf13/cast v1.5.0 // indirect
+	github.com/spf13/jwalterweatherman v1.1.0 // indirect
+	github.com/spf13/pflag v1.0.5 // indirect
+	github.com/spf13/viper v1.15.0 // indirect
+	github.com/subosito/gotenv v1.4.2 // indirect
 	github.com/tealeg/xlsx v1.0.5 // indirect
 	github.com/thinxer/go-word2vec v0.0.0-20150917053916-5c19ec7379ed // indirect
 	github.com/xdg-go/pbkdf2 v1.0.0 // indirect
@@ -92,9 +99,9 @@ require (
 	github.com/xdg-go/stringprep v1.0.3 // indirect
 	github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
 	github.com/ziutek/blas v0.0.0-20190227122918-da4ca23e90bb // indirect
-	go.etcd.io/etcd/api/v3 v3.5.6 // indirect
-	go.etcd.io/etcd/client/pkg/v3 v3.5.6 // indirect
-	go.etcd.io/etcd/client/v3 v3.5.6 // indirect
+	go.etcd.io/etcd/api/v3 v3.5.8 // indirect
+	go.etcd.io/etcd/client/pkg/v3 v3.5.8 // indirect
+	go.etcd.io/etcd/client/v3 v3.5.8 // indirect
 	go.opentelemetry.io/otel v1.15.1 // indirect
 	go.opentelemetry.io/otel/exporters/jaeger v1.15.1 // indirect
 	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.1 // indirect
@@ -105,33 +112,37 @@ require (
 	go.opentelemetry.io/otel/sdk v1.15.1 // indirect
 	go.opentelemetry.io/otel/trace v1.15.1 // indirect
 	go.opentelemetry.io/proto/otlp v0.19.0 // indirect
-	go.uber.org/atomic v1.9.0 // indirect
-	go.uber.org/automaxprocs v1.5.1 // indirect
-	go.uber.org/multierr v1.8.0 // indirect
-	go.uber.org/zap v1.21.0 // indirect
-	golang.org/x/crypto v0.0.0-20221010152910-d6f0a8c073c2 // indirect
-	golang.org/x/net v0.8.0 // indirect
-	golang.org/x/oauth2 v0.4.0 // indirect
+	go.uber.org/atomic v1.10.0 // indirect
+	go.uber.org/automaxprocs v1.5.2 // indirect
+	go.uber.org/multierr v1.9.0 // indirect
+	go.uber.org/zap v1.24.0 // indirect
+	golang.org/x/crypto v0.6.0 // indirect
+	golang.org/x/net v0.9.0 // indirect
+	golang.org/x/oauth2 v0.6.0 // indirect
 	golang.org/x/sync v0.1.0 // indirect
 	golang.org/x/sys v0.7.0 // indirect
-	golang.org/x/term v0.6.0 // indirect
-	golang.org/x/text v0.8.0 // indirect
+	golang.org/x/term v0.7.0 // indirect
+	golang.org/x/text v0.9.0 // indirect
 	golang.org/x/time v0.3.0 // indirect
 	google.golang.org/appengine v1.6.7 // indirect
-	google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect
-	google.golang.org/grpc v1.54.0 // indirect
+	google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect
+	google.golang.org/grpc v1.55.0 // indirect
 	google.golang.org/protobuf v1.30.0 // indirect
 	gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
 	gopkg.in/inf.v0 v0.9.1 // indirect
+	gopkg.in/ini.v1 v1.67.0 // indirect
+	gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 	gorm.io/driver/mysql v1.0.5 // indirect
 	gorm.io/gorm v1.21.3 // indirect
-	k8s.io/api v0.22.9 // indirect
-	k8s.io/apimachinery v0.22.9 // indirect
-	k8s.io/client-go v0.22.9 // indirect
-	k8s.io/klog/v2 v2.80.1 // indirect
-	k8s.io/utils v0.0.0-20221108210102-8e77b1f39fe2 // indirect
-	sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect
-	sigs.k8s.io/yaml v1.2.0 // indirect
+	k8s.io/api v0.26.3 // indirect
+	k8s.io/apimachinery v0.27.0-alpha.3 // indirect
+	k8s.io/client-go v0.26.3 // indirect
+	k8s.io/klog/v2 v2.90.1 // indirect
+	k8s.io/kube-openapi v0.0.0-20230307230338-69ee2d25a840 // indirect
+	k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect
+	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
+	sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
+	sigs.k8s.io/yaml v1.3.0 // indirect
 )

文件差异内容过多而无法显示
+ 97 - 441
src/go.sum


+ 40 - 28
src/jfw/front/classificationTag.go

@@ -16,11 +16,11 @@ import (
 	"net/http"
 
 	qu "app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/date"
 	"app.yhyue.com/moapp/jybase/encrypt"
 	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
 	"app.yhyue.com/moapp/jybase/redis"
 	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/bidsearch"
-	"app.yhyue.com/moapp/jypkg/common/src/qfw/util/jy"
 	"app.yhyue.com/moapp/jypkg/public"
 )
 
@@ -284,10 +284,10 @@ func GetIncludedInfo() map[string]interface{} {
 	if data == nil || len(*data) <= 0 {
 		return nil
 	}
-	//
 	info := (*data)[0]
 	//招标信息的数值
 	bid := qu.Int64All(info["bid"])
+	Bid, BidUnit := formdataNum(bid)
 	//招标采购项目的数值
 	project := qu.Int64All(info["project"])
 	Project, ProjectUnit := formdataNum(project)
@@ -299,12 +299,31 @@ func GetIncludedInfo() map[string]interface{} {
 	Buyer, BuyerUnit := formdataNum(buyer)
 	//每日更新招标信息的数值
 	bid_day_update := qu.Int64All(info["bid_day_update"])
+	BidDayUpdate, BidDayUpdateUnit := formdataNum(bid_day_update)
+	mdata, ok := public.MQFW.Find("swordfish_index", map[string]interface{}{
+		"i_push": map[string]interface{}{
+			"$exists": true,
+		},
+	}, `{"_id":-1}`, `{"i_push":1}`, false, 0, 1)
+	i_push := 0
+	if mdata != nil && ok && len(*mdata) > 0 {
+		swordData := (*mdata)[0]
+		i_push = qu.IntAll(swordData["i_push"])
+	}
+	Push, PushUnit := formdataNum(int64(i_push))
 	m := map[string]interface{}{
-		"bid":            fmt.Sprintf("%v条", bid),
-		"project":        fmt.Sprintf("%v%s+", Project, ProjectUnit),
-		"ent":            fmt.Sprintf("%v%s+", Ent, EntUnit),
-		"buyer":          fmt.Sprintf("%v%s+", Buyer, BuyerUnit),
-		"bid_day_update": fmt.Sprintf("%v条", bid_day_update),
+		"bid":              Bid,
+		"bidUnit":          BidUnit,
+		"project":          Project,
+		"projectUnit":      ProjectUnit,
+		"ent":              Ent,
+		"entUnit":          EntUnit,
+		"buyer":            Buyer,
+		"buyerUnit":        BuyerUnit,
+		"bidDayUpdate":     BidDayUpdate,
+		"bidDayUpdateUnit": BidDayUpdateUnit,
+		"push":             Push,
+		"pushUnit":         PushUnit,
 	}
 	if bytes, err := json.Marshal(m); err == nil && bytes != nil {
 		_ = redis.PutBytes(RedisNameNew, "jyIncludedInfo", &bytes, 2*60*60)
@@ -336,49 +355,42 @@ func HotKey() []string {
 	return arr
 }
 
-type NewIndexbidsStruct struct {
-	Count int64                    `json:"count"`
-	Data  []map[string]interface{} `json:"data"`
-}
-
-func NewIndexbids(session *httpsession.Session, r *http.Request) NewIndexbidsStruct {
+func NewIndexbids(session *httpsession.Session, r *http.Request) []map[string]interface{} {
 	if bytes, err := redis.GetBytes(RedisNameNew, "jyNewIndexbids"); err == nil && bytes != nil {
-		rData := NewIndexbidsStruct{}
+		rData := []map[string]interface{}{}
 		if err := json.Unmarshal(*bytes, &rData); err != nil {
 			log.Printf("[MANAGER-ERR]jyNewIndexbids  GetData Error %v \n", err)
 			return rData
 		}
 		return rData
 	}
-	data := NewIndexbidsStruct{}
-	var list []map[string]interface{}
-	userInfo := jy.GetVipState(session, *config.Middleground, "")
-	so := NewSearchOptimize("", "", "", "", "招标预告,招标公告,招标结果,招标信用信息", "", "", "title", "", "", "", "", "", "", "", "", "", "PC", "", 0, 50, 0, 0, 0, *userInfo, true, r)
-	so.DefaultSearchParamsAuto()
-	//缓存数据
-	_, total, _ := so.GetBidSearchList(true)
-	data.Count = total
-	_, _, lists := bidsearch.GetPcBidSearchData("", "", "", "", "", "", "", "", "", "", "", "", "", 1, false, nil, bidSearch_field_1, "", false, false, "", 6, "")
+	/*
+		userInfo := jy.GetVipState(session, *config.Middleground, "")
+		so := NewSearchOptimize("", "", "", "", "招标预告,招标公告,招标结果,招标信用信息", "", "", "title", "", "", "", "", "", "", "", "", "", "PC", "", 0, 50, 0, 0, 0, *userInfo, true, r)
+		so.DefaultSearchParamsAuto()
+		//缓存数据
+		_, total, _ := so.GetBidSearchList(true)
+		data.Count = total
+	*/
+	_, _, lists := bidsearch.GetPcBidSearchData("", "", "", "", "", "", "", "", "", "", "", "", "", 1, false, nil, bidSearch_field_1, "", false, false, "", 8, "")
 	if lists != nil {
 		for _, v1 := range *lists {
 			v1["_id"] = encrypt.CommonEncodeArticle("content", v1["_id"].(string))
 			delete(v1, "toptype")
 			delete(v1, "s_subscopeclass")
 			tmpdate := v1["publishtime"]
-			v1["publishtime"] = qu.Int64All(tmpdate.(float64))
+			v1["publishtime"] = time.Unix(qu.Int64All(tmpdate.(float64)), 0).Format(date.Date_Short_Layout)
 			if v1["budget"] != nil {
 				v1["budget"] = ConversionMoeny(v1["budget"])
 			} else if v1["bidamount"] != nil {
 				v1["budget"] = ConversionMoeny(v1["bidamount"])
 			}
 		}
-		list = *lists
-		data.Data = list
 	}
-	if bytes, err := json.Marshal(data); err == nil && bytes != nil {
+	if bytes, err := json.Marshal(*lists); err == nil && bytes != nil {
 		_ = redis.PutBytes(RedisNameNew, "jyNewIndexbids", &bytes, 5*60)
 	}
-	return data
+	return *lists
 }
 
 //格式输出数据

+ 51 - 37
src/web/templates/pc/index.html

@@ -61,7 +61,23 @@
         <div class="hot-search">
           <div class="left-tit">热门搜索</div>
           <div class="right-con">
-            <a href="">云计算</a>
+            <a href="/jylab/supsearch/index.html?keywords=信息化&searchvalue=&selectType=title">信息化</a>
+            <a href="/jylab/supsearch/index.html?keywords=软件&searchvalue=&selectType=title">软件</a>
+            <a href="/jylab/supsearch/index.html?keywords=网络安全&searchvalue=&selectType=title">网络安全</a>
+            <a href="/jylab/supsearch/index.html?keywords=监控&searchvalue=&selectType=title">监控</a>
+            <a href="/jylab/supsearch/index.html?keywords=安防&searchvalue=&selectType=title">安防</a>
+            <a href="/jylab/supsearch/index.html?keywords=服务器&searchvalue=&selectType=title">服务器</a>
+            <a href="/jylab/supsearch/index.html?keywords=弱电&searchvalue=&selectType=title">弱电</a>
+            <a href="/jylab/supsearch/index.html?keywords=智能化&searchvalue=&selectType=title">智能化</a>
+            <a href="/jylab/supsearch/index.html?keywords=数据中心&searchvalue=&selectType=title">数据中心</a>
+            <a href="/jylab/supsearch/index.html?keywords=大数据&searchvalue=&selectType=title">大数据</a>
+            <a href="/jylab/supsearch/index.html?keywords=信息安全&searchvalue=&selectType=title">信息安全</a>
+            <a href="/jylab/supsearch/index.html?keywords=计算机&searchvalue=&selectType=title">计算机</a>
+            <a href="/jylab/supsearch/index.html?keywords=云计算&searchvalue=&selectType=title">云计算</a>
+            <a href="/jylab/supsearch/index.html?keywords=物联网&searchvalue=&selectType=title">物联网</a>
+            <a href="/jylab/supsearch/index.html?keywords=物业管理&searchvalue=&selectType=title">物业管理</a>
+            <a href="/jylab/supsearch/index.html?keywords=视频监控&searchvalue=&selectType=title">视频监控</a>
+            <a href="/jylab/supsearch/index.html?keywords=物业服务&searchvalue=&selectType=title">物业服务</a>
           </div>
         </div>
        </div>
@@ -75,25 +91,36 @@
             <div class="hot-banner">
               <div class="left blue">招标公告</div>
               <div class="right">
-                <a href="">招标公告</a>
+                <a href="/jylab/supsearch/index.html?subtype=招标公告">招标公告</a>
+                <a href="/jylab/supsearch/index.html?subtype=招标信用">招标信用</a>
+                <a href="/jylab/supsearch/index.html?subtype=招标结果">招标结果</a>
+                <a href="">供应搜索</a>
               </div>
             </div>
             <div class="hot-banner">
               <div class="left yellow">项目数据</div>
               <div class="right">
-                <a href="">拟建项目</a>
+                <a href="/list/stype/NJXM.html">拟建项目</a>
+                <a href="">采购意向</a>
+                <a href="">拟在建项目</a>
+                <a href="">潜在项目预测</a>
               </div>
             </div>
             <div class="hot-banner">
               <div class="left green">机构数据</div>
               <div class="right">
                 <a href="">企业搜索</a>
+                <a href="">企业监控</a>
+                <a href="">采购单位搜索</a>
               </div>
             </div>
             <div class="hot-banner">
               <div class="left violet">数据市场</div>
               <div class="right">
-                <a href="">自助数据导出</a>
+                <a href="/front/dataExport/toSieve">自助数据导出</a>
+                <a href="">数据超市</a>
+                <a href="/front/dataMarket/customExport">数据定制</a>
+                <a href="/front/dataMarket/dataInterface">数据API</a>
               </div>
             </div>
           </div>
@@ -250,37 +277,24 @@
             <a href="" class="item-link" target="_blank">查看更多</a>
           </p>
         </div>
+        
         <div class="newsbeacon-content w1200">
+          {{range $k,$v :=.T.newbids}}
           <div class="newsbeacon-item">
-            <div class="title">松江河镇特色小镇道路工程(一期)建设项目、长白山智慧仓储物流园建设项目造价咨询服务</div>
-            <div class="con">
-              <div class="tips">
-                <p class="text">江苏</p>
-                <p class="text">成交</p>
-              </div>
-              <div class="time">2022-05-10</div>
-            </div>
-          </div>
-          <div class="newsbeacon-item">
-            <div class="title">松江河镇特色小镇道路工程(一期)建设项目、长白山智慧仓储物流园建设项目造价咨询服务</div>
-            <div class="con">
-              <div class="tips">
-                <p class="text">江苏</p>
-                <p class="text">成交</p>
-              </div>
-              <div class="time">2022-05-10</div>
-            </div>
-          </div>
-          <div class="newsbeacon-item">
-            <div class="title">松江河镇特色小镇道路工程(一期)建设项目、长白山智慧仓储物流园建设项目造价咨询服务</div>
-            <div class="con">
-              <div class="tips">
-                <p class="text">江苏</p>
-                <p class="text">成交</p>
+            <a  style="text-decoration: none;" href="{{if .T.hasLogin }}/article/content/{{else}}/nologin/content/{{end}}{{$v._id}}.html"  target="_blank">
+              <div class="title">{{$v.title}}</div>
+              <div class="con">
+                <div class="tips">
+                  {{if $v.area}}<p class="text">{{$v.area}}</p>{{end}}
+                  {{if $v.subtype}}<p class="text">{{$v.subtype}}</p>{{end}}
+                  {{if $v.buyerclass}}<p class="text">{{$v.buyerclass}}</p>{{end}}
+                  {{if $v.budget}}<p class="text">{{$v.budget}}</p>{{end}}
+                </div>
+                <div class="time">{{$v.publishtime}}</div>
               </div>
-              <div class="time">2022-05-10</div>
-            </div>
+            </a>
           </div>
+          {{end}}
         </div>
       </div>
       <!--推荐标讯专区-->
@@ -322,32 +336,32 @@
         <div class="dataServices-content">
           <div class="items">
             <img src="{{Msg "seo" "cdn"}}/images/index/new/serve-1.png?v={{Msg "seo" "version"}}" alt="">
-            <div class="tit">1.8 <span>&nbsp;亿万+</span></div>
+            <div class="tit">{{.T.includedInfo.bid}} <span>&nbsp;{{.T.includedInfo.bidUnit}}+</span></div>
             <p class="desc">招标信息</p>
           </div>
           <div class="items">
             <img src="{{Msg "seo" "cdn"}}/images/index/new/serve-2.png?v={{Msg "seo" "version"}}" alt="">
-            <div class="tit">6600 <span>&nbsp;万+</span></div>
+            <div class="tit">{{.T.includedInfo.project}} <span>&nbsp;{{.T.includedInfo.projectUnit}}+</span></div>
             <p class="desc">招标采购项目</p>
           </div>
           <div class="items">
             <img src="{{Msg "seo" "cdn"}}/images/index/new/serve-3.png?v={{Msg "seo" "version"}}" alt="">
-            <div class="tit">5465 <span>&nbsp;万+</span></div>
+            <div class="tit">{{.T.includedInfo.ent}} <span>&nbsp;{{.T.includedInfo.entUnit}}+</span></div>
             <p class="desc">企业数据库</p>
           </div>
           <div class="items">
             <img src="{{Msg "seo" "cdn"}}/images/index/new/serve-4.png?v={{Msg "seo" "version"}}" alt="">
-            <div class="tit">260 <span>&nbsp;万+</span></div>
+            <div class="tit">{{.T.includedInfo.buyer}} <span>&nbsp;{{.T.includedInfo.buyerUnit}}+</span></div>
             <p class="desc">采购单位库</p>
           </div>
           <div class="items">
             <img src="{{Msg "seo" "cdn"}}/images/index/new/serve-5.png?v={{Msg "seo" "version"}}" alt="">
-            <div class="tit">306 <span>&nbsp;亿+</span></div>
+            <div class="tit">{{.T.includedInfo.push}} <span>&nbsp;{{.T.includedInfo.pushUnit}}+</span></div>
             <p class="desc">推送招标信息</p>
           </div>
           <div class="items">
             <img src="{{Msg "seo" "cdn"}}/images/index/new/serve-6.png?v={{Msg "seo" "version"}}" alt="">
-            <div class="tit">10 <span>&nbsp;万+</span></div>
+            <div class="tit">{{.T.includedInfo.bidDayUpdate}} <span>&nbsp;{{.T.includedInfo.bidDayUpdateUnit}}+</span></div>
             <p class="desc">每日更新招标信息</p>
           </div>
         </div>

部分文件因为文件数量过多而无法显示