Procházet zdrojové kódy

Merge branch 'master' into feature/v4.8.22

lianbingjie před 2 roky
rodič
revize
6f77794a7f

+ 49 - 1
src/jfw/front/shorturl.go

@@ -1006,7 +1006,7 @@ func (s *Short) NologinArticle(stype, id string) error {
 				obj["projectcodeTitle"] = obj["projectcode"]
 				log.Println(time.Now().UnixNano())
 				obj = Filter(obj)
-				log.Println(time.Now().UnixNano())
+				obj["description"] = fmt.Sprintf("%s,%s。", obj["title"], baseInfo(obj))
 			}
 			s.T["obj"] = obj
 			s.T["url"] = s.Uri()
@@ -1024,6 +1024,54 @@ func (s *Short) NologinArticle(stype, id string) error {
 	return nil
 }
 
+/*
+TDK description
+*/
+func baseInfo(obj map[string]interface{}) string {
+	info := ""
+	info += "省份:"
+	//{{if eq .T.obj.area "A"}}全国{{else}}{{.T.obj.area}}{{end}}
+	if area := util.ObjToString(obj["area"]); area == "A" {
+		info += "全国"
+	} else {
+		info += area
+	}
+	info += ",城市:" + util.ObjToString(obj["city"])
+	info += ",招标代理机构:" + util.ObjToString(obj["agency"])
+	info += ",项目名称:" + util.ObjToString(obj["projectname"])
+	info += ",采购单位:" + util.ObjToString(obj["buyer"])
+	info += ",采购联系人:" + util.ObjToString(obj["buyerperson"])
+	info += ",采购电话:" + util.ObjToString(obj["buyertel"])
+	if obj["package"] == nil {
+		info += ",项目预算(元):" + util.ObjToString(obj["budget"])
+	}
+	if util.ObjToString(obj["subtype"]) == "单一" && util.ObjToString(obj["package"]) == "" {
+		info += ",拟定单一来源采购供应商:" + util.ObjToString(obj["winner"])
+	}
+	subtype := util.ObjToString(obj["subtype"])
+	if subtype == "中标" || subtype == "成交" || subtype == "合同" {
+		if obj["winnerMap"] != nil {
+			info += ",中标单位:"
+			i := 0
+			for k, _ := range *util.ObjToMap(obj["winnerMap"]) {
+				i++
+				info += k
+				if i != len(*util.ObjToMap(obj["winnerMap"])) {
+					info += "、"
+				}
+			}
+		}
+		if obj["bidamount"] != nil {
+			info += ",中标金额(元):" + util.ObjToString(obj["bidamount"])
+		}
+
+		if obj["bidamount"] != nil {
+			info += ",联系方式:" + util.ObjToString(obj["bidamount"])
+		}
+	}
+	return info
+}
+
 // 分段匹配数字打码
 func RegDetail(html string) string {
 	mosaicText := util.ObjToString(config.Sysconfig["detailMosaicTxt"])

+ 49 - 0
src/jfw/modules/app/src/app/front/shorturl.go

@@ -245,6 +245,7 @@ func (s *Short) Article(stype, id string) error {
 			}
 			if userId == "" {
 				obj = Filter(obj)
+				obj["description"] = fmt.Sprintf("%s,%s。", obj["title"], baseInfo(obj))
 			}
 		} else {
 			obj = map[string]interface{}{
@@ -558,3 +559,51 @@ func hasRetainedCapital(uid, source string) bool {
 	}
 	return false
 }
+
+/*
+TDK description
+*/
+func baseInfo(obj map[string]interface{}) string {
+	info := ""
+	info += "省份:"
+	//{{if eq .T.obj.area "A"}}全国{{else}}{{.T.obj.area}}{{end}}
+	if area := util.ObjToString(obj["area"]); area == "A" {
+		info += "全国"
+	} else {
+		info += area
+	}
+	info += ",城市:" + util.ObjToString(obj["city"])
+	info += ",招标代理机构:" + util.ObjToString(obj["agency"])
+	info += ",项目名称:" + util.ObjToString(obj["projectname"])
+	info += ",采购单位:" + util.ObjToString(obj["buyer"])
+	info += ",采购联系人:" + util.ObjToString(obj["buyerperson"])
+	info += ",采购电话:" + util.ObjToString(obj["buyertel"])
+	if obj["package"] == nil {
+		info += ",项目预算(元):" + util.ObjToString(obj["budget"])
+	}
+	if util.ObjToString(obj["subtype"]) == "单一" && util.ObjToString(obj["package"]) == "" {
+		info += ",拟定单一来源采购供应商:" + util.ObjToString(obj["winner"])
+	}
+	subtype := util.ObjToString(obj["subtype"])
+	if subtype == "中标" || subtype == "成交" || subtype == "合同" {
+		if obj["winnerMap"] != nil {
+			info += ",中标单位:"
+			i := 0
+			for k, _ := range *util.ObjToMap(obj["winnerMap"]) {
+				i++
+				info += k
+				if i != len(*util.ObjToMap(obj["winnerMap"])) {
+					info += "、"
+				}
+			}
+		}
+		if obj["bidamount"] != nil {
+			info += ",中标金额(元):" + util.ObjToString(obj["bidamount"])
+		}
+
+		if obj["bidamount"] != nil {
+			info += ",联系方式:" + util.ObjToString(obj["bidamount"])
+		}
+	}
+	return info
+}

binární
src/jfw/modules/app/src/web/staticres/jyapp/images/adbottom.png


+ 3 - 1
src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html

@@ -1,6 +1,8 @@
 <html>
 <head>
     {{include "/common/meta.html"}}
+    <meta name="keywords" content="">
+    <meta name="description" content="{{.T.obj.description}}">
     <title>公告信息</title>
     <link href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/alertPopShow.css?v={{Msg "seo" "version"}}" rel="stylesheet">
     <link href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/bootstrap.min.css?v={{Msg "seo" "version"}}" rel="stylesheet">
@@ -799,7 +801,7 @@
             </div>
             <!--S 登录引导置底 S-->
             <div class="login-guide">
-              <img src="/jyapp/images/adbottom.png" alt="">
+              <img src="/jyapp/images/adbottom.png?v={{Msg "seo" "version"}}" alt="">
             </div>
             <!--E 登录引导置底 E-->
             <div class="abs">

+ 1 - 1
src/seo.json

@@ -4488,7 +4488,7 @@
 	],
 	"buryingPointUrl":"https://md.jianyu360.com",
 	"areaSite":["招标采购网","政府采购网","招标投标公共服务平台","公共资源交易网","公共资源交易中心","政府采购中心","工程交易中心","招投标信息网","招标办","招投标交易中心","建设工程招投标网","工程造价信息网","供求信息平台","物资采购网","电子采购平台"],
-	"seoKeywordSuffix":"招标采购",
+	"seoKeywordSuffix":"",
 	"seoLetterPageSize":1000,
 	"seoAreaSuffix":"政府采购网",
   "appNewUserTime":1668155814

+ 4 - 0
src/web/staticres/common-module/ad/js/msgbuoy.js

@@ -468,6 +468,10 @@ var getMsgBuoyActive = {
         if (typeof CommonWebScoket === 'function') {
           this._scoket = new CommonWebScoket(this.url + '/webscoket/getBuoyMsg', '', {
             ajaxReq: function() {},
+            reconnect: function (commom) {
+              commom.isOver = true
+              commom.over()
+            },
             complete: function (data, type) {
               try {
                 var pushMessage = JSON.parse(data)

+ 8 - 5
src/web/staticres/js/jyWebScoket.js

@@ -1,5 +1,5 @@
 var isIE9=false;
-if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match(/[6789]./i)) { 
+if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.match(/[6789]./i)) {
 	isIE9=true
 }
 var JyWebScoket = {
@@ -23,7 +23,7 @@ var JyWebScoket = {
 		});
 		$("#labModal").on('hide.bs.modal', function (e) {
 			isCanClolse&&cws!=null&&cws.close();
-		}); 
+		});
 		this.complete = function(result,flag){
 			cws.wshc.reset();
 			cws.isOver = true;
@@ -132,6 +132,9 @@ var CommonWebScoket = function(url,param,obj){
 		return this;
 	}
 	this.reconnect = function() {
+    // 用于支持定义重连操作
+    obj.reconnect && obj.reconnect(this)
+
 		if(this.wshc.lockReconnect || this.isOver){
 			return;
 		}
@@ -229,7 +232,7 @@ var WSpolling = {
 }
 //页面是否被切换走
 try{
-	if(window.addEventListener) {    
+	if(window.addEventListener) {
 		document.addEventListener('visibilitychange',function () {
 		    if(document.hidden){
 				WSpolling.isPageHidden = true;
@@ -237,5 +240,5 @@ try{
 				WSpolling.isPageHidden = false;
 		    }
 		});
-	} 
-}catch(e){}
+	}
+}catch(e){}

binární
src/web/staticres/tags/images/login-banner.png


binární
src/web/staticres/tags/images/login-full-banner.png


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

@@ -32,6 +32,7 @@
               <dt>快速导航</dt>
               <dd><a href="/tags/area/all.html">招标地区分类</a></dd>
               <dd><a href="/tags/industry/all.html">招标行业分类</a></dd>
+              <dd><a href="/sitemap.html">网站地图</a></dd>
           </dl>
         </div>
                 <div class="jy_classify_r">

+ 33 - 17
src/web/templates/pc/dataExport_sieve.html

@@ -1014,7 +1014,7 @@
               <td>${item.publishtime}</td>
               <td>${item.buyer}</td>
               <td>${item.s_winner}</td>
-              <td name="money">${item.bidamount}</td>
+              <td name="money">${moneyFormatForCover(item.bidamount)}</td>
               <td>${item.projectname}</td>
               <td>${item.detail}</td>
               <td>${item.url}</td>
@@ -1059,21 +1059,21 @@
               <td>${item.projectname}</td>
               <td>${item.projectcode}</td>
               <td>${item.projectscope}</td>
-              <td name="money">${item.budget}</td>
-              <td name="money">${item.bidamount}</td>
+              <td name="money">${moneyFormatForCover(item.budget)}</td>
+              <td name="money">${moneyFormatForCover(item.bidamount)}</td>
               <td>${item.signendtime}</td>
               <td>${item.bidopentime}</td>
               <td>${item.bidendtime}</td>
               <td>${item.buyer}</td>
-              <td name="name">${item.buyerperson}</td>
-              <td name="phone">${item.buyertel}</td>
+              <td name="name">${textFormatForMosaic(item.buyerperson)}</td>
+              <td name="phone">${textFormatForMosaic(item.buyertel, true)}</td>
               <td>${item.buyeraddr}</td>
               <td>${item.agency}</td>
               <td>${item.s_winner}</td>
-              <td name="name">${item.winnerperson}</td>
-              <td name="phone">${item.winnertel}</td>
-              <td name="name">${item.legal_person}</td>
-              <td name="phone">${item.company_phone}</td>
+              <td name="name">${textFormatForMosaic(item.winnerperson)}</td>
+              <td name="phone">${textFormatForMosaic(item.winnertel, true)}</td>
+              <td name="name">${textFormatForMosaic(item.legal_person)}</td>
+              <td name="phone">${textFormatForMosaic(item.company_phone, true)}</td>
               <td>${item.company_email}</td>
             </tr>
         </table>
@@ -1112,21 +1112,21 @@
               <td>${item.projectname}</td>
               <td>${item.projectcode}</td>
               <td>${item.projectscope}</td>
-              <td name="money">${item.budget}</td>
-              <td name="money">${item.bidamount}</td>
+              <td name="money">${moneyFormatForCover(item.budget)}</td>
+              <td name="money">${moneyFormatForCover(item.bidamount)}</td>
               <td>${item.signendtime}</td>
               <td>${item.bidopentime}</td>
               <td>${item.bidendtime}</td>
               <td>${item.buyer}</td>
-              <td name="name">${item.buyerperson}</td>
-              <td name="phone">${item.buyertel}</td>
+              <td name="name">${textFormatForMosaic(item.buyerperson)}</td>
+              <td name="phone">${textFormatForMosaic(item.buyertel, true)}</td>
               <td>${item.buyeraddr}</td>
               <td>${item.agency}</td>
               <td>${item.s_winner}</td>
-              <td name="name">${item.winnerperson}</td>
-              <td name="phone">${item.winnertel}</td>
-              <td name="name">${item.legal_person}</td>
-              <td name="phone">${item.company_phone}</td>
+              <td name="name">${textFormatForMosaic(item.winnerperson)}</td>
+              <td name="phone">${textFormatForMosaic(item.winnertel, true)}</td>
+              <td name="name">${textFormatForMosaic(item.legal_person)}</td>
+              <td name="phone">${textFormatForMosaic(item.company_phone, true)}</td>
               <td>${item.company_email}</td>
             </tr>
             <tbody>
@@ -1322,6 +1322,22 @@
       }
     },
     methods: {
+      textFormatForMosaic (text, phone) {
+        if (typeof text === 'string' || typeof text == 'number') {
+          if (phone) {
+            return String(text).replace(/([\w\W]*)([\w\W]{4})$/, '$1****')
+          } else {
+            return String(text).replace(/^(.)(.*)/, '$1**')
+          }
+        }
+        return text
+      },
+      moneyFormatForCover (money) {
+        if (typeof money === 'string' || typeof money == 'number') {
+          return String(money).replace(/(\d)(\.){0,1}(\d)/, '$1$2*')
+        }
+        return money
+      },
       getStyle () {
         // 嵌套到工作桌面的时候 底部悬浮元素样式单独修改
         // parent.location.pathname.indexOf('/page_workDesktop') > -1

+ 3 - 3
src/web/templates/pc/tags/detail.html

@@ -1,8 +1,8 @@
 <html style="height: 100%">
 <head>
   <title>{{.T.obj.title}} - 剑鱼标讯</title>
-  <meta name="keywords" content="{{.T.obj.title}}">
-  <meta name="description" content="{{.T.obj.title}}">
+  <meta name="keywords" content="">
+  <meta name="description" content="{{.T.obj.description}}">
   <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,initial-scale=1.0" user-scalable="no" />
 	<meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1" />
 	<meta name="renderer" content="webkit">
@@ -86,7 +86,7 @@
             </div>
           </div>
           <div class="bid-banner">
-            <img id="login-banner-btn" class="login-node" src='{{Msg "seo" "cdn"}}/tags/images/login-banner.png' alt="loginBanner" />
+            <img id="login-banner-btn" class="login-node" src='{{Msg "seo" "cdn"}}/tags/images/login-banner.png?v={{Msg "seo" "version"}}' alt="loginBanner" />
           </div>
           <div class="bid-content">
             <!-- 非<拟建项目>、<采购意向>基本信息表格 -->

+ 1 - 1
src/web/templates/pc/tags/template/bottom-banner.html

@@ -21,7 +21,7 @@
 }
 </style>
 <div class="fixed-bottom-banner advert-bottom-banner">
-    <img id="login-advert-bottom-btn" class="login-node" src='{{Msg "seo" "cdn"}}/tags/images/login-full-banner.png' alt="底部广告位">
+    <img id="login-advert-bottom-btn" class="login-node" src='{{Msg "seo" "cdn"}}/tags/images/login-full-banner.png?v={{Msg "seo" "version"}}' alt="底部广告位">
 </div>
 <script>
 $(function () {