Bläddra i källkod

Merge branch 'feature/v4.7.34' into feature/v4.7.37

lianbingjie 2 år sedan
förälder
incheckning
c87ac6fbc3
62 ändrade filer med 2915 tillägg och 329 borttagningar
  1. 26 7
      src/jfw/modules/app/src/web/staticres/jyapp/js/common.js
  2. 24 12
      src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info.html
  3. 20 4
      src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html
  4. BIN
      src/web/staticres/common-module/bidedoc/image/third-party-verify-customer.png
  5. 85 0
      src/web/staticres/common-module/mainSearch/css/third-party-verify-mobile.css
  6. 1 0
      src/web/staticres/common-module/mainSearch/js/advanced-project-table.js
  7. 277 0
      src/web/staticres/common-module/mainSearch/js/third-party-verify-mobile.js
  8. 198 0
      src/web/staticres/common-module/mainSearch/js/third-party-verify.js
  9. 943 0
      src/web/staticres/enterpriseCertificatio/css/enterpriseCertificatio.css
  10. BIN
      src/web/staticres/enterpriseCertificatio/img/0000.png
  11. BIN
      src/web/staticres/enterpriseCertificatio/img/0430.png
  12. BIN
      src/web/staticres/enterpriseCertificatio/img/2-bg.png
  13. BIN
      src/web/staticres/enterpriseCertificatio/img/2000.png
  14. BIN
      src/web/staticres/enterpriseCertificatio/img/4001.png
  15. BIN
      src/web/staticres/enterpriseCertificatio/img/5001.png
  16. BIN
      src/web/staticres/enterpriseCertificatio/img/7000.png
  17. BIN
      src/web/staticres/enterpriseCertificatio/img/bg.png
  18. BIN
      src/web/staticres/enterpriseCertificatio/img/big_ic1.png
  19. BIN
      src/web/staticres/enterpriseCertificatio/img/ci1.png
  20. BIN
      src/web/staticres/enterpriseCertificatio/img/cx.png
  21. BIN
      src/web/staticres/enterpriseCertificatio/img/five.png
  22. BIN
      src/web/staticres/enterpriseCertificatio/img/four.png
  23. BIN
      src/web/staticres/enterpriseCertificatio/img/four4.png
  24. BIN
      src/web/staticres/enterpriseCertificatio/img/gys.png
  25. BIN
      src/web/staticres/enterpriseCertificatio/img/haccp.png
  26. BIN
      src/web/staticres/enterpriseCertificatio/img/head_ic.png
  27. BIN
      src/web/staticres/enterpriseCertificatio/img/ic2.png
  28. BIN
      src/web/staticres/enterpriseCertificatio/img/ic3.png
  29. BIN
      src/web/staticres/enterpriseCertificatio/img/ic4.png
  30. BIN
      src/web/staticres/enterpriseCertificatio/img/ic5.png
  31. BIN
      src/web/staticres/enterpriseCertificatio/img/impor.png
  32. BIN
      src/web/staticres/enterpriseCertificatio/img/jy.png
  33. BIN
      src/web/staticres/enterpriseCertificatio/img/le.png
  34. BIN
      src/web/staticres/enterpriseCertificatio/img/more.png
  35. BIN
      src/web/staticres/enterpriseCertificatio/img/num.png
  36. BIN
      src/web/staticres/enterpriseCertificatio/img/one.png
  37. BIN
      src/web/staticres/enterpriseCertificatio/img/one1.png
  38. BIN
      src/web/staticres/enterpriseCertificatio/img/phone.png
  39. BIN
      src/web/staticres/enterpriseCertificatio/img/qr.png
  40. BIN
      src/web/staticres/enterpriseCertificatio/img/qyj.png
  41. BIN
      src/web/staticres/enterpriseCertificatio/img/text1.png
  42. BIN
      src/web/staticres/enterpriseCertificatio/img/three.png
  43. BIN
      src/web/staticres/enterpriseCertificatio/img/three3.png
  44. BIN
      src/web/staticres/enterpriseCertificatio/img/two.png
  45. BIN
      src/web/staticres/enterpriseCertificatio/img/two2.png
  46. BIN
      src/web/staticres/enterpriseCertificatio/img/xy.png
  47. BIN
      src/web/staticres/enterpriseCertificatio/img/zl.png
  48. BIN
      src/web/staticres/enterpriseCertificatio/img/zx.png
  49. 298 0
      src/web/staticres/enterpriseCertificatio/js/information_dialog.js
  50. 105 112
      src/web/staticres/frontRouter/pc/bidedoc/css/index-pc.css
  51. 26 11
      src/web/staticres/frontRouter/pc/bidedoc/js/index-pc.js
  52. 27 9
      src/web/staticres/js/common.js
  53. 5 36
      src/web/staticres/pccss/pc-detail.css
  54. 18 10
      src/web/staticres/public-pc/js/article-content.js
  55. 1 2
      src/web/staticres/public-pc/js/header-nav.js
  56. 70 0
      src/web/templates/common/bidLeaveInfo.html
  57. 6 5
      src/web/templates/common/pchead.html
  58. 89 95
      src/web/templates/frontRouter/pc/bidedoc/free/index.html
  59. 575 0
      src/web/templates/frontRouter/pc/enterpriseCertificatio/free/index.html
  60. 21 9
      src/web/templates/frontRouter/wx/bigmember/free/perfect_info.html
  61. 80 13
      src/web/templates/pc/biddetail_rec.html
  62. 20 4
      src/web/templates/weixin/wxinfocontent_rec.html

+ 26 - 7
src/jfw/modules/app/src/web/staticres/jyapp/js/common.js

@@ -943,6 +943,9 @@ function pcredirect (link, sid) {
 
 var isNumber = /^[0-9]+$/
 var isLetter = /^[a-zA-Z]+$/
+function isRegExp (value) {
+  return Object.prototype.toString.call(value) === '[object RegExp]'
+}
 function keyWordHighlight (value, oldChars, newChar) {
   if(typeof(oldChars) == "undefined" || oldChars == null || typeof(newChar) == "undefined" || newChar == null || newChar == ""){
     return value;
@@ -954,15 +957,21 @@ function keyWordHighlight (value, oldChars, newChar) {
     array.push(oldChars);
   }
 
+  // 非字符串替换集合
+  var notStrReplacer = []
   for (var i = 0; i < array.length; i++) {
     if (!array[i]) {
       continue
     } else {
-      // if (isNumber.test(array[i])) {
-      //   array[i] = ''
-      //   continue
-      // }
-      array[i] = array[i].replace(/([\$\(\)\*\+\.\[\]\?\/\\\^\{\}\|])/g, '\\$1').replace(/\s+/g, '')
+      if (isRegExp(array[i])) {
+        // 正则直接替换
+        // 注意:该正则中必须包含至少一个分组匹配,分组中的内容用来替换
+        notStrReplacer.push(array[i])
+        array[i] = ''
+      } else {
+        // 字符串替换
+        array[i] = array[i].replace(/([\$\(\)\*\+\.\[\]\?\/\\\^\{\}\|])/g, '\\$1').replace(/\s+/g, '')
+      }
 
       // array[i] = array[i].replace(/\$/g,"\\$");
       // array[i] = array[i].replace(/\(/g,"\\(");
@@ -989,14 +998,24 @@ function keyWordHighlight (value, oldChars, newChar) {
       lastArr.push(item)
     }
   })
-  if (lastArr.length === 0) {
+  if (lastArr.length === 0 && notStrReplacer.length === 0) {
     return value
   }
   lastArr = lastArr.sort(function (a, b) {
     return b.length - a.length
   })
 
-  return value.replace(new RegExp('(' + lastArr.join('|') + ')', 'gmi'), newChar)
+  if (notStrReplacer.length) {
+    for (var j = 0; j < notStrReplacer.length; j++) {
+      // 正则替换
+      value = value.replace(notStrReplacer[j], newChar)
+    }
+  }
+  if (lastArr.length) {
+    value = value.replace(new RegExp('(' + lastArr.join('|') + ')', 'gmi'), newChar)
+  }
+
+  return value
 }
 
 function getWxVersion () {

+ 24 - 12
src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info.html

@@ -1087,10 +1087,6 @@
           }
 
           switch (source) {
-            case 'bid_document_Introduction_page': {
-              hideLabel()
-              break
-            }
             case 'article_collection': {
               hideLabel()
               break
@@ -1099,6 +1095,13 @@
               hideLabel()
               break
             }
+            default: {
+              // 标书制作或者三方认证(case语句满足不了条件,放default中做更多判断)
+              if (source === 'bid_document_Introduction_page' || source.indexOf('certificateServices') > -1) {
+                hideLabel(['email', 'class', 'position', 'workScope', 'partnerNeeds', 'agree'])
+                break
+              }
+            }
           }
 
           setHeaderTitle && setHeaderTitle()
@@ -1253,7 +1256,14 @@
             }
             if (r && r.error_msg === '' && r.data) {
               this.setEchoInfo(r.data)
-              var result = checkRequiredKeys(['name', 'phone', 'company','companyType', 'position', 'branch'], r.data)
+              var requiredKeys = []
+              if (this.ajaxParams.source === 'bid_document_Introduction_page' || this.ajaxParams.source.indexOf('certificateServices') > -1) {
+                // 标书制作或者三方认证(case语句满足不了条件,放default中做更多判断)
+                requiredKeys = ['name', 'phone', 'company','companyType']
+              } else {
+                requiredKeys = ['name', 'phone', 'company','companyType', 'position', 'branch']
+              }
+              var result = checkRequiredKeys(requiredKeys, r.data)
               if (result) {
                 var skipAuto = ['jyarticle_see3', 'article_collection', 'article_original', 'jypush_see10']
                 var _this = this
@@ -1370,9 +1380,9 @@
           }
           if (label) {
             var checkDatas = [cKey]
-            // if (label === '公司类型') {
-            //   checkDatas = cKey.split(',')
-            // }
+            if (label === '公司类型') {
+              checkDatas = cKey.split(',')
+            }
             this.conditionMap[label].forEach(v => {
               if (checkDatas.indexOf(v.title) !== -1) {
                 v.checked = true
@@ -1590,10 +1600,6 @@
                     _this.showMessage('您的申请已提交,我们会尽快联系您并预约演示时间,请耐心等待~您将获得免费体验大会员全部功能!')
                     break
                   }
-                  case 'bid_document_Introduction_page': {
-                    _this.bidShow = true
-                    break
-                  }
                   case 'jyarticle_see3_plus_wx': {
                     _this.showToast('提交成功')
                     setTimeout(function () {
@@ -1652,6 +1658,12 @@
                     break
                   }
                   default: {
+                    // 标书制作或者三方认证(case语句满足不了条件,放default中做更多判断)
+                    if (source === 'bid_document_Introduction_page' || source.indexOf('certificateServices') > -1) {
+                      _this.bidShow = true
+                      break
+                    }
+
                     var message = ''
                     if (source) {
                       message = '您的申请已提交,我们会尽快联系您并预约演示时间,请耐心等待~您将获得免费体验大会员全部功能!'

+ 20 - 4
src/jfw/modules/app/src/web/templates/weixin/wxinfocontent.html

@@ -12,7 +12,7 @@
     <link rel="stylesheet" type="text/css" href="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/css/wxinfocontent.css?v={{Msg "seo" "version"}}1"/>
     <link rel="stylesheet" type="text/css" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/nps-common/css/nps.css?v={{Msg "seo" "version"}}'/>
     <link rel="stylesheet" href="//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css">
-
+    <link rel="stylesheet" type="text/css" href='{{Cdns .Host "seo" "cdn"|SafeUrl}}/common-module/mainSearch/css/third-party-verify-mobile.css?v={{Msg "seo" "version"}}'/>
     <script src="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js"></script>
     <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/local/fastclick.min.js"></script>
     <script src="{{Cdns .Host "seo" "cdn"|SafeUrl}}/jyapp/js/jquery.cookie.js?v={{Msg "seo" "version"}}"></script>
@@ -57,9 +57,6 @@
         font-size: 18px;
         color: #161826;
       }
-      .custom-dialog .van-dialog__message{
-        /* color: #5E5E64; */
-      }
       .custom-dialog .van-button{
         font-size: 18px;
       }
@@ -699,6 +696,14 @@
                     </a>
                     <a class="iconarrow"></a>
                 </div>
+                <div class="third-party-verify content-tip-card third-party-popover" style="display: none">
+                    <span class="content-tip-card-left icon-third-party-verify-logo"></span>
+                    <div class="content-tip-card-center">
+                        <span class="c-t-c-c-text">招投标必备</span>&nbsp;&nbsp;
+                        <span class="c-t-c-c-text">剑鱼认证服务</span>
+                    </div>
+                    <a class="content-tip-card-right iconarrow"></a>
+                </div>
                 <!--s 大会员引流 s-->
                 <div class="bigvip_drain lead_drain" style="background: #f5f6f7;">
                     <div class="bigvip_text">
@@ -773,6 +778,9 @@
                     </ul>
                 </div>
             </div>
+            <div id="third-party-verify-attention" class="third-party-verify-attention" style="display:none;">
+              <span class="t-p-v-a-text">*温馨提示:系统识别到正文中对投标方有资质要求~</span>
+            </div>
             <div class="abs">
                 <div onclick="adv_statistics(this)" class="original_name"><a class="original hidden">阅读原文</a></div>
                 {{if .T.obj.hasSession}}
@@ -910,10 +918,13 @@
         {{end}}
     </div>
 </div>
+<!-- 三方认证弹窗 -->
+<div id="third-party-popover-content"></div>
 <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
 <script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
 <script src='/common-module/keep-tags/keep-tags-template.js?v={{Msg "seo" "version"}}'></script>
 <script src='/common-module/keep-tags/keep-ent-tags-template.js?v={{Msg "seo" "version"}}'></script>
+<script src='/common-module/mainSearch/js/third-party-verify-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='/common-module/mainSearch/js/advanced-project-table-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='/common-module/nps-common/js/nps.js?v={{Msg "seo" "version"}}'></script>
 <!-- <script src="https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js"></script>
@@ -1317,6 +1328,7 @@
             $(".mask-zz").removeClass("hidden");
         } else {
             $(".prebuilt").css('height', 'unset')
+            $('.third-party-verify').show()
         }
     }
 
@@ -2525,6 +2537,9 @@
           })
       })
       content = content.replace(/[^\{\u4e00-\u9fa5]{1,90}{[^\}\u4e00-\u9fa5]+?}/g,"");
+      if (content) {
+        content = thirdPartyVerify.replaceKeys(content)
+      }
       if(projectname != "" && projectname != null && content.toLowerCase().indexOf(projectname.toLowerCase()) > -1){
           content = keyWordHighlight(content,projectname,"<span class='keyword myfollow project hideLine'>$1</span>");
       }
@@ -2612,6 +2627,7 @@
           }
       }
       $("#h_content").html(content);
+      thirdPartyVerify.checkHighlightInsert()
       $("#title").html(titleCopy);
       //
 

BIN
src/web/staticres/common-module/bidedoc/image/third-party-verify-customer.png


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 85 - 0
src/web/staticres/common-module/mainSearch/css/third-party-verify-mobile.css


+ 1 - 0
src/web/staticres/common-module/mainSearch/js/advanced-project-table.js

@@ -56,6 +56,7 @@ var advanceProjectTable = new Vue({
         tableShow: function (n, o) {
             if (n) {
                 $('.explain').show()
+                $('.center-ad-container').show()
             }
         }
     },

+ 277 - 0
src/web/staticres/common-module/mainSearch/js/third-party-verify-mobile.js

@@ -0,0 +1,277 @@
+// 三方认证变量定义
+var thirdPartyVerify = {
+  keywordsList: [],
+  platform: goTemplateData.platform,
+  certificate: {
+    // 证书名称
+    name: [
+      '质量管理体系认证',
+      '工程建设施工质量管理体系认证',
+      '环境管理体系认证',
+      '职业健康安全管理体系认证',
+      '危害分析和关键控制点',
+      '食品安全管理体系认证',
+      '信息技术服务管理体系认证',
+      '信息安全管理体系认证',
+      '五星售后服务认证 ',
+      '五星品牌认证',
+      '批发零售服务',
+      '物业服务认证',
+    ],
+    // 证书编号
+    number: [
+      /(ISO\s{0,1}9001)/g,
+      /(GB\/T\s{0,1}50430)/g,
+      /(ISO\s{0,1}14001)/g,
+      /(ISO\s{0,1}45001)/g,
+      'HACCP',
+      /(ISO\s{0,1}2[027]000)/g, // ISO20000、ISO22000、ISO27000、
+    ],
+    // AAA关键词
+    key: [
+      '信用等级',
+      '重合同守信用企业',
+      '质量服务诚信单位',
+      '重质量守信用单位',
+      '重服务守信用',
+      '资信等级',
+      '诚信经营示范单位',
+      '诚信企业家',
+      '诚信经理人',
+      '诚信供应商',
+    ]
+  },
+  init: function () {
+    this.getKeywordsList()
+    this.getQrInfo()
+  },
+  getKeywordsList: function () {
+    var arr = []
+    var map = this.certificate
+    for (key in map) {
+      var item = map[key]
+      if ($.isArray(item)) {
+        arr = arr.concat(item)
+      }
+    }
+    this.keywordsList = arr
+    return arr
+  },
+  getQrInfo: function () {
+    $.ajax({
+      url: '/commercial/customer/info',
+      type: 'GET',
+      data: {
+        module: 'tripartiteAuth'
+      },
+      success:function(res) {
+        if (res && res.data) {
+          thirdPartyVerifyDialog.setCustomerInfo(res.data.phone, res.data.wxCodeImg)
+        }
+      },
+      error:function(err) {
+        console.log(err)
+      }
+    })
+  },
+  bindEvents: function () {
+    $('.third-party-popover').on('click', function () {
+      thirdPartyVerifyDialog.showDialog(true)
+    })
+  },
+  replaceKeys: function (content) {
+    // 1.先将关键词替换
+    var replaced = keyWordHighlight(content,this.keywordsList,"<span class='highlight-text third-party-verify-highlight'>$1</span>");
+    // 2.替换关键词后面最近的一个中文句号(用来插入button)
+    replaced = replaced.replace(/third-party-verify-highlight(.*?)(。|;|;)/g, function (match, p1, p2) {
+      return match.replace(p2, `<span class='paragraph-last'>${p2}</span>`)
+    })
+    return replaced
+  },
+  getInsertButton: function () {
+    return '<span class="third-party-popover third-party-verify-button"><span class="icon icon-third-party-verify-logo"></span><span class="button-text">剑鱼认证服务</span></span>'
+  },
+  findNextMark: function (callback) {
+    var waitingInsertList = [] // 待插入节点dom对象
+    var container = $('#tab2')
+    var highlights = container.find('.third-party-verify-highlight')
+    highlights.each(function () {
+      var $mark = callback(this)
+      var mark = $mark[0]
+      if (mark) {
+        waitingInsertList.push(mark)
+      }
+    })
+    // 去重
+    return $.uniqueSort(waitingInsertList)
+  },
+  checkHighlightInsert: function () {
+    var container = $('#tab2')
+    var verifyIconButton = container.find('.third-party-verify-button')
+    if (verifyIconButton.length) return
+    var waitingInsertList = [] // 待插入节点dom对象
+    // 获取要插入元素
+    var button = this.getInsertButton()
+    // 1. 先找highlights同级next的.paragraph-last
+    waitingInsertList = container.find('.paragraph-last').toArray()
+    waitingInsertList = $.uniqueSort(waitingInsertList)
+    if (waitingInsertList.length) {
+      // 找到了.paragraph-last在其后插入button
+      waitingInsertList.forEach(function (dom) {
+        $(dom).after(button)
+      })
+    } else {
+      // 2. 找不到.paragraph-last。找同级next的br
+      waitingInsertList = this.findNextMark(function (_this) {
+        return $(_this).next('br')
+      })
+      if (waitingInsertList.length) {
+        // 找到了br,则在其前面插入
+        waitingInsertList.forEach(function (dom) {
+          $(dom).before(button)
+        })
+      } else {
+        // 3. 找不到br,找到其父级标签,并在其末尾插入
+        waitingInsertList = this.findNextMark(function (_this) {
+          return $(_this).parent()
+        })
+        if (waitingInsertList.length) {
+          // 找到了br,则在其前面插入
+          waitingInsertList.forEach(function (dom) {
+            $(dom).append(button)
+          })
+        }
+      }
+    }
+
+    // 找到替换的元素了,显示底部提示
+    // if (waitingInsertList.length) {
+    //   $('#third-party-verify-attention').show().append(button)
+    // }
+    this.afterButtonRender()
+  },
+  // button替换渲染之后执行的回调
+  afterButtonRender: function () {
+    this.bindEvents()
+  }
+}
+
+var thirdPartyVerifyDialogTemplate = `
+  <div class="third-party-popover-content">
+    <van-popup class="custom-dialog third-party-popover-dialog" v-model="show" round position="bottom">
+      <div class="popup-layout j-container">
+        <div class="j-header">
+          <div class="header-nav">
+            <div class="header-nav-title">剑鱼认证服务</div>
+            <van-icon class="header-nav-close" name="clear" @click="closeIconClick"></van-icon>
+          </div>
+        </div>
+        <div class="j-main t-p-main">
+          <div class="t-p-main-desc-container desc-1">
+            <div class="p-c-h-c-list">
+              <div class="p-c-h-c-item"><span class="icon-checkbox-checked"></span>&nbsp;&nbsp;认监委官网可查</div>
+              <div class="p-c-h-c-item"><span class="icon-checkbox-checked"></span>&nbsp;&nbsp;认证品类齐全</div>
+              <div class="p-c-h-c-item"><span class="icon-checkbox-checked"></span>&nbsp;&nbsp;量身定制方案</div>
+            </div>
+            <div class="mt8">招投标必备 · 品牌提升 · 奖励补贴 · 吸引投资</div>
+            <div class="mt8">ISO体系认证丨信用评定丨服务体系认证丨其他认证证书</div>
+          </div>
+          <div class="t-p-main-desc-container desc-2">
+            <div class="p-c-h-c-item">
+              <span class="icon-verify-phone"></span>
+              <span class="p-c-h-c-item-content highlight-text" @click="callPhone">
+                <span>咨询</span>
+                <a v-if="isWx" :href="tel" class="highlight-text" style="text-decoration: underline">@@phone@@</a>
+                <span v-else style="text-decoration: underline">@@phone@@</a>
+              </span>
+            </div>
+            <div class="p-c-h-c-item">
+              <span class="icon-verify-tick"></span>
+              <span>体系认证:品牌提升,投标加分,提升企业竞争力</span>
+            </div>
+            <div class="p-c-h-c-item">
+              <span class="icon-verify-tick"></span>
+              <span>信用认证:企业信用名片,招投标必备</span>
+            </div>
+            <div class="p-c-h-c-item">
+              <span class="icon-verify-tick"></span>
+              <span>服务体系认证:实力认证,竞争有优势</span>
+            </div>
+          </div>
+          <div class="t-p-main-desc-container desc-qr" v-if="isWx">
+            <div class="p-c-h-c-img">
+              <img :src="qrImgUrl" alt="客服企业微信二维码">
+            </div>
+            <div class="mt8">长按二维码加客服微信,备注认证服务</div>
+          </div>
+        </div>
+        <div class="j-footer">
+          <div class="t-p-footer-container j-button-group">
+            <button class="j-button-cancel" @click="learnMore">了解更多</button>
+            <button class="j-button-confirm" @click="applyFor">申请认证</button>
+          </div>
+        </div>
+      </div>
+    </van-popup>
+  </div>
+`
+
+var thirdPartyVerifyDialog = new Vue({
+  // el: '#third-party-popover-content',
+  template: thirdPartyVerifyDialogTemplate,
+  delimiters: ['@@', '@@'],
+  data: function () {
+    return {
+      platform: goTemplateData.platform,
+      phone: '',
+      qrImgUrl: '',
+      show: false
+    }
+  },
+  computed: {
+    isWx: function () {
+      return this.platform === 'wx'
+    },
+    tel: function () {
+      return 'tel:' + this.phone
+    }
+  },
+  methods: {
+    showDialog: function (f) {
+      this.show = f
+    },
+    closeIconClick: function () {
+      this.showDialog(false)
+    },
+    setCustomerInfo: function (phone, qrImgUrl) {
+      this.phone = phone
+      this.qrImgUrl = qrImgUrl
+    },
+    callPhone: function () {
+      if (!this.isWx) {
+        try {
+          JyObj.callPhone(this.phone)
+        } catch (error) {
+          console.warn(error)
+        }
+      }
+    },
+    learnMore: function () {
+      // 跳转落地页
+      location.href = '/page_activity_mobile/tripartiteAuth/index.html'
+    },
+    applyFor: function () {
+      // 留资
+      if (this.isWx) {
+        location.href = '/weixin/frontPage/bigmember/free/perfect_info?source=certificateServices-wx-biddingDetailPage-content'
+      } else {
+        location.href = '/jyapp/frontPage/bigmember/free/perfect_info?source=certificateServices-app-biddingDetailPage-content'
+      }
+    }
+  }
+})
+
+$(function () {
+  thirdPartyVerifyDialog.$mount('#third-party-popover-content')
+  thirdPartyVerify.init()
+})

+ 198 - 0
src/web/staticres/common-module/mainSearch/js/third-party-verify.js

@@ -0,0 +1,198 @@
+// 三方认证变量定义
+var thirdPartyVerify = {
+  keywordsList: [],
+  certificate: {
+    // 证书名称
+    name: [
+      '质量管理体系认证',
+      '工程建设施工质量管理体系认证',
+      '环境管理体系认证',
+      '职业健康安全管理体系认证',
+      '危害分析和关键控制点',
+      '食品安全管理体系认证',
+      '信息技术服务管理体系认证',
+      '信息安全管理体系认证',
+      '五星售后服务认证 ',
+      '五星品牌认证',
+      '批发零售服务',
+      '物业服务认证',
+    ],
+    // 证书编号
+    number: [
+      /(ISO\s{0,1}9001)/g,
+      /(GB\/T\s{0,1}50430)/g,
+      /(ISO\s{0,1}14001)/g,
+      /(ISO\s{0,1}45001)/g,
+      'HACCP',
+      /(ISO\s{0,1}2[027]000)/g, // ISO20000、ISO22000、ISO27000、
+    ],
+    // AAA关键词
+    key: [
+      '信用等级',
+      '重合同守信用企业',
+      '质量服务诚信单位',
+      '重质量守信用单位',
+      '重服务守信用',
+      '资信等级',
+      '诚信经营示范单位',
+      '诚信企业家',
+      '诚信经理人',
+      '诚信供应商',
+    ]
+  },
+  init: function () {
+    this.getKeywordsList()
+    this.getQrInfo()
+  },
+  getKeywordsList: function () {
+    var arr = []
+    var map = this.certificate
+    for (key in map) {
+      var item = map[key]
+      if ($.isArray(item)) {
+        arr = arr.concat(item)
+      }
+    }
+    this.keywordsList = arr
+    return arr
+  },
+  getQrInfo: function () {
+    $.ajax({
+      url: '/commercial/customer/info',
+      type: 'GET',
+      data: {
+        module: 'tripartiteAuth'
+      },
+      success:function(res) {
+        if (res && res.data) {
+          var phoneContainer = $('.third-party.popover-content-main .bid_phonetext')
+          var text = phoneContainer.text()
+          phoneContainer.text(text.replace('$tel', res.data.phone))
+          // /common-module/bidedoc/image/third-party-verify-customer.png
+          $('.third-party .t-p-verify-customer-qr > img').attr('src', res.data.wxCodeImg)
+        }
+      },
+      error:function(err) {
+        console.log(err)
+      }
+    })
+  },
+  bindEvents: function () {
+    this.initPopover()
+    $('.biddetail-content').on('click', '.third-party-apply-for-button', function () {
+      bidLeaveInfo.isNeedSubmit({ source: 'certificateServices-pc-biddingDetailPage-content' })
+    })
+  },
+  initPopover: function () {
+    // 弹出框 https://v3.bootcss.com/javascript/#popovers
+    // 初始化popover
+    var popover = $('.third-party-popover').popover({
+      trigger: 'hover',
+      placement: 'bottom',
+      html: true,
+      content: function () {
+        // 填充悬浮窗
+        return $('.third-party-popover-content-template').html()
+      },
+      delay: {
+        hide: 500
+      }
+    })
+    // bootstrap 弹出框popover 鼠标划过离开不消失或延迟消失
+    // https://blog.csdn.net/qq_29518175/article/details/88051323
+    popover.on('shown.bs.popover', function () {
+      var that = this
+      $(this).parent().find('div.popover[role=tooltip][id^=popover]').addClass('third-party-popover-content').on('mouseenter', function () {
+        $(that).attr('in', true)
+      }).on('mouseleave', function () {
+        setTimeout(function () {
+          $(that).removeAttr('in')
+          $(that).popover('hide')
+        }, 500)
+      })
+    }).on('hide.bs.popover', function (e) {
+      if ($(this).attr('in')) {
+        e.preventDefault()
+      }
+    })
+  },
+  replaceKeys: function (content) {
+    // 1.先将关键词替换
+    var replaced = keyWordHighlight(content,this.keywordsList,"<span class='jykeyword third-party-verify-highlight'>$1</span>");
+    // 2.替换关键词后面最近的一个中文句号(用来插入button)
+    replaced = replaced.replace(/third-party-verify-highlight(.*?)(。|;|;)/g, function (match, p1, p2) {
+      return match.replace(p2, `<span class='paragraph-last'>${p2}</span>`)
+    })
+    return replaced
+  },
+  getInsertButton: function () {
+    return '<span class="third-party-popover third-party-verify-button"><span class="icon icon-third-party-verify-logo"></span><span class="button-text">剑鱼认证服务</span></span>'
+  },
+  findNextMark: function (callback) {
+    var waitingInsertList = [] // 待插入节点dom对象
+    var container = $('.com-detail')
+    var highlights = container.find('.third-party-verify-highlight')
+    highlights.each(function () {
+      var $mark = callback(this)
+      var mark = $mark[0]
+      if (mark) {
+        waitingInsertList.push(mark)
+      }
+    })
+    // 去重
+    return $.uniqueSort(waitingInsertList)
+  },
+  checkHighlightInsert: function () {
+    var container = $('.com-detail')
+    var verifyIconButton = container.find('.third-party-verify-button')
+    if (verifyIconButton.length) return
+    var waitingInsertList = [] // 待插入节点dom对象
+    // 获取要插入元素
+    var button = this.getInsertButton()
+    // 1. 先找highlights同级next的.paragraph-last
+    waitingInsertList = container.find('.paragraph-last').toArray()
+    waitingInsertList = $.uniqueSort(waitingInsertList)
+    if (waitingInsertList.length) {
+      // 找到了.paragraph-last在其后插入button
+      waitingInsertList.forEach(function (dom) {
+        $(dom).after(button)
+      })
+    } else {
+      // 2. 找不到.paragraph-last。找同级next的br
+      waitingInsertList = this.findNextMark(function (_this) {
+        return $(_this).next('br')
+      })
+      if (waitingInsertList.length) {
+        // 找到了br,则在其前面插入
+        waitingInsertList.forEach(function (dom) {
+          $(dom).before(button)
+        })
+      } else {
+        // 3. 找不到br,找到其父级标签,并在其末尾插入
+        waitingInsertList = this.findNextMark(function (_this) {
+          return $(_this).parent()
+        })
+        if (waitingInsertList.length) {
+          // 找到了br,则在其前面插入
+          waitingInsertList.forEach(function (dom) {
+            $(dom).append(button)
+          })
+        }
+      }
+    }
+
+    // 找到替换的元素了,显示底部提示
+    // if (waitingInsertList.length) {
+    //   $('#third-party-verify-attention').show().append(button)
+    // }
+    this.afterButtonRender()
+  },
+  // button替换渲染之后执行的回调
+  afterButtonRender: function () {
+    this.bindEvents()
+  }
+}
+
+$(function () {
+  thirdPartyVerify.init()
+})

+ 943 - 0
src/web/staticres/enterpriseCertificatio/css/enterpriseCertificatio.css

@@ -0,0 +1,943 @@
+.enterpriseCertificatio {
+    width: 100%;
+    background: #FFF;
+    /* padding-bottom: 111px; */
+}
+
+.enterpriseCertificatio .head {
+    width: 100%;
+    height: 480px;
+    padding-top: 64px;
+    box-sizing: border-box;
+    position: relative;
+    background: linear-gradient(270deg, #0547F2 25.44%, #058EF2 75.13%);
+}
+
+.enterpriseCertificatio .head .box {
+    width: 1200px;
+    margin: auto;
+    position: relative;
+    padding-top: 1px;
+}
+
+.box .left {
+    margin-top: 67px;
+
+}
+
+.box .left .title {
+    padding-left: 30px;
+    box-sizing: border-box;
+    position: relative;
+    float: left;
+
+}
+
+.box .left .text {
+    font-style: normal;
+    font-weight: 700;
+    font-size: 22px;
+    line-height: 36px;
+    color: #FFFFFF;
+    vertical-align: middle;
+}
+
+.box .left .title img {
+    width: 24px;
+    position: absolute;
+    left: 0;
+    top: 50%;
+    transform: translateY(-50%);
+
+}
+
+.ml-30 {
+    margin-left: 30px;
+}
+
+.box .right {
+    width: 632px;
+    right: 0;
+    top: 40px;
+    position: absolute;
+
+}
+
+.left .img_tit {
+    width: 354px;
+    margin-top: 24px;
+}
+
+.left .desc {
+    font-style: normal;
+    font-weight: 400;
+    font-size: 18px;
+    line-height: 28px;
+    color: #FFFFFF;
+    margin-top: 68px;
+}
+
+.left .desc2 {
+    font-style: normal;
+    font-weight: 400;
+    font-size: 18px;
+    line-height: 28px;
+    color: #FFFFFF;
+    margin-top: 12px;
+}
+
+.serve_box {
+    width: 1200px;
+    height: 200px;
+    margin: auto;
+    position: relative;
+}
+
+.serve_box .serve_content {
+    width: 100%;
+    height: 240px;
+    position: absolute;
+    left: 0;
+    top: -40px;
+    background: linear-gradient(180deg, #E2F1FF 0%, #FFFFFF 100%);
+    border: 1px solid #ECECEC;
+    box-shadow: 0px 8px 12px rgba(192, 206, 221, 0.24), inset 0px 4px 2px #FFFFFF;
+    border-radius: 12px;
+    box-sizing: border-box;
+    padding-top: 0;
+    padding-left: 2px;
+}
+
+.serve_content .item {
+    width: 298px;
+    box-sizing: border-box;
+    padding-top: 1px;
+    float: left;
+
+}
+
+.serve_content .line {
+    width: 0px;
+    height: 180px;
+    border-left: 1px solid #E0E5E8;
+    box-shadow: inset 1px 0px 0px #FFFFFF;
+    float: left;
+    margin-top: 30px;
+}
+
+.serve_content .item .ic {
+    width: 72px;
+    display: block;
+    margin: auto;
+    margin-top: 23px;
+}
+
+.serve_content .title {
+    font-style: normal;
+    font-weight: 700;
+    font-size: 18px;
+    line-height: 28px;
+    /* identical to box height, or 156% */
+    color: #0562F2;
+    margin-top: 16px;
+    text-align: center;
+}
+
+.serve_content .desc {
+    width: 236px;
+    font-style: normal;
+    font-weight: 400;
+    font-size: 14px;
+    line-height: 22px;
+    color: #686868;
+    margin: auto;
+    margin-top: 8px;
+}
+
+.middle_btn {
+    width: 224px;
+    height: 46px;
+    background: linear-gradient(90deg, #2394FF -2.53%, #0D4AE7 95.93%);
+    box-shadow: 0px 10px 16px rgba(8, 125, 223, 0.2), inset 2px 2px 2px rgba(255, 255, 255, 0.5);
+    border-radius: 6px;
+    line-height: 46px;
+    text-align: center;
+    font-style: normal;
+    font-weight: 700;
+    font-size: 18px;
+    color: #FFFFFF;
+    margin: auto;
+    overflow: hidden;
+    cursor: pointer;
+    position: relative;
+}
+
+.mt-56 {
+    margin-top: 56px;
+}
+
+.middle_btn::after {
+    content: '';
+    display: block;
+    position: absolute;
+    top: -120px;
+    left: -80px;
+    width: 36px;
+    height: 360px;
+    background: #fff;
+    opacity: 0.16;
+    transform: rotate(-45deg);
+    transition: all 800ms ease-out;
+}
+
+.middle_btn:hover::after {
+    left: 200%;
+}
+
+.foot_btn {
+    width: 224px;
+    height: 46px;
+    background: linear-gradient(90deg, #EFF8FF -2.53%, #B9E3FE 95.93%);
+    box-shadow: 0px 10px 16px rgba(8, 125, 223, 0.2), inset 2px 2px 2px rgba(255, 255, 255, 0.5);
+    border-radius: 6px;
+    line-height: 46px;
+    text-align: center;
+    font-style: normal;
+    font-weight: 700;
+    font-size: 18px;
+    color: #0D4AE7;
+    margin: auto;
+    overflow: hidden;
+    cursor: pointer;
+    position: relative;
+    margin-top: 70px;
+}
+
+.foot_btn::after {
+    content: '';
+    display: block;
+    position: absolute;
+    top: -120px;
+    left: -80px;
+    width: 36px;
+    height: 360px;
+    background: #fff;
+    opacity: 0.2;
+    transform: rotate(-45deg);
+    transition: all 800ms ease-out;
+}
+
+.foot_btn:hover::after {
+    left: 200%;
+}
+
+.system_certificatio {
+
+    width: 1200px;
+    margin: auto;
+    margin-top: 121px;
+}
+
+.system_certificatio h1 {
+    font-style: normal;
+    font-weight: 700;
+    font-size: 36px;
+    line-height: 48px;
+    color: #1D1D1D;
+    text-align: center;
+}
+
+.system_certificatio .desc {
+    font-style: normal;
+    font-weight: 400;
+    font-size: 18px;
+    line-height: 28px;
+    color: #686868;
+    text-align: center;
+    margin-top: 8px;
+}
+
+.system_certificatio .content {
+    width: 100%;
+    margin-top: 57px;
+}
+
+.system_certificatio .content .item {
+    width: 224px;
+    float: left;
+}
+
+.system_certificatio .content .item img {
+    width: 224px;
+    height: 318px;
+    display: block;
+    margin: auto;
+}
+
+.system_certificatio .content .item .title {
+    font-style: normal;
+    font-weight: 700;
+    font-size: 20px;
+    line-height: 30px;
+    text-align: center;
+    color: #1D1D1D;
+    margin-top: 8px;
+}
+
+.system_certificatio .content .item .desc {
+    font-style: normal;
+    font-weight: 400;
+    font-size: 16px;
+    line-height: 24px;
+    text-align: center;
+    color: #1D1D1D;
+}
+
+.mt-16 {
+    margin-top: 16px;
+}
+
+.ml-100 {
+    margin-left: 100px;
+}
+
+.mt-83 {
+    margin-top: 83px;
+}
+
+.credit_authentication {
+    margin-top: 112px;
+}
+
+.credit_authentication h1 {
+    font-style: normal;
+    font-weight: 700;
+    font-size: 36px;
+    line-height: 48px;
+    color: #1D1D1D;
+    text-align: center;
+}
+
+.credit_authentication .desc {
+    font-style: normal;
+    font-weight: 400;
+    font-size: 18px;
+    line-height: 28px;
+    color: #686868;
+    text-align: center;
+    margin-top: 8px;
+}
+
+.credit_authentication .content {
+    width: 1200px;
+    margin: auto;
+    margin-top: 56px;
+}
+
+.credit_authentication .content .item {
+    width: 368px;
+    float: left;
+}
+
+.credit_authentication .content .item img {
+    width: 368px;
+    height: 260px;
+    display: block;
+    margin: auto;
+}
+
+.credit_authentication .content .item .text {
+    font-style: normal;
+    font-weight: 400;
+    font-size: 16px;
+    line-height: 24px;
+    text-align: center;
+    color: #1D1D1D;
+    margin-top: 16px;
+}
+
+.mt-48 {
+    margin-top: 48px;
+}
+
+.ml-48 {
+    margin-left: 48px;
+}
+
+.service_system {
+    width: 100%;
+    height: 970px;
+    background: url('/enterpriseCertificatio/img/bg.png') center center no-repeat;
+    background-size: cover;
+    margin-top: 72px;
+    box-sizing: border-box;
+    padding-top: 72px;
+}
+
+.service_system h1 {
+    font-style: normal;
+    font-weight: 700;
+    font-size: 36px;
+    line-height: 48px;
+    color: #1D1D1D;
+    text-align: center;
+}
+
+.service_system .desc {
+    font-style: normal;
+    font-weight: 400;
+    font-size: 18px;
+    line-height: 28px;
+    color: #686868;
+    text-align: center;
+    margin-top: 8px;
+}
+
+.service_system_box {
+    width: 1200px;
+    margin: auto;
+    margin-top: 40px;
+    padding-bottom: 28px;
+}
+
+.item_box {
+    width: 100%;
+    margin-bottom: 28px;
+}
+
+.ml-38 {
+    margin-left: 38px;
+}
+
+.ml-28 {
+    margin-left: 28px;
+}
+
+.ml-76 {
+    margin-left: 76px;
+}
+
+.loginBtnnew {
+    color: #fff !important;
+}
+.loginBtn:hover{
+    color: rgb(44,183,202) !important;
+}
+.service_system_box .item_box .item {
+    width: 260px;
+    height: 64px;
+    background: #FFFFFF;
+    float: left;
+    border: 1px solid #ECECEC;
+    box-shadow: 0px 8px 12px rgba(148, 153, 165, 0.08);
+    border-radius: 8px;
+    font-style: normal;
+    font-weight: 400;
+    font-size: 18px;
+    line-height: 64px;
+    /* identical to box height, or 156% */
+    text-align: center;
+    /* Font/#1d1d1d */
+    color: #1D1D1D;
+}
+
+.awarded_marks {
+    padding-top: 72px;
+}
+
+.awarded_marks h1 {
+    font-style: normal;
+    font-weight: 700;
+    font-size: 36px;
+    line-height: 48px;
+    text-align: center;
+    color: #1D1D1D;
+}
+
+.awarded_marks .content {
+    width: 1200px;
+    margin: auto;
+    margin-top: 56px;
+}
+
+.awarded_marks .content .left {
+    width: 586px;
+    height: 596px;
+    /* background: #FFFFFF; */
+    border-radius: 4px;
+    float: left;
+    border: 1px solid #ECECEC;
+    /* 中阴影 */
+    box-shadow: 0px 0px 28px rgba(0, 0, 0, 0.08);
+    position: relative;
+}
+
+.awarded_marks .content .right {
+    width: 586px;
+    height: 596px;
+    /* background: #FFFFFF; */
+    border-radius: 4px;
+    float: right;
+    border: 1px solid #ECECEC;
+    /* 中阴影 */
+    box-shadow: 0px 0px 28px rgba(0, 0, 0, 0.08);
+    position: relative;
+}
+
+.awarded_marks .content .header {
+    width: 100%;
+    height: 72px;
+    background: linear-gradient(90deg, #3DA0FF -2.53%, #255FF5 95.93%);
+    box-shadow: 0px 10px 16px rgba(8, 125, 223, 0.2);
+    position: relative;
+    border-radius: 4px 4px 0 0;
+}
+
+.awarded_marks .content .header p {
+    font-style: normal;
+    font-weight: 700;
+    font-size: 24px;
+    line-height: 72px;
+    color: #FFFFFF;
+    text-align: center;
+}
+
+.awarded_marks .content .header img {
+    position: absolute;
+    width: 96px;
+    height: 72px;
+    left: 0;
+    top: 0;
+}
+
+.awarded_marks .content .awarded_marks_box {
+    width: 530px;
+    height: 380px;
+    margin: auto;
+    margin-top: 28px;
+}
+
+.awarded_marks_box .item {
+    margin-bottom: 16px;
+
+}
+
+.awarded_marks_box .l_text {
+    width: 400px;
+    height: 28px;
+    padding-left: 14px;
+    font-style: normal;
+    font-weight: 400;
+    font-size: 18px;
+    line-height: 28px;
+    color: #1D1D1D;
+    float: left;
+    overflow: hidden;
+    position: relative;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+
+}
+
+.awarded_marks_box .l_text .dian {
+    position: absolute;
+    left: 0;
+    top: 50%;
+    transform: translateY(-50%);
+    width: 6px;
+    height: 6px;
+    border-radius: 50%;
+    background: #0987FF;
+
+}
+
+.awarded_marks_box .r_text {
+    font-style: normal;
+    font-weight: 400;
+    font-size: 18px;
+    line-height: 28px;
+    color: #686868;
+    float: right;
+}
+
+.awarded_marks_box .warm {
+    position: absolute;
+    width: 516px;
+    left: 50%;
+    bottom: 28px;
+    transform: translateX(-50%);
+    font-family: 'Microsoft YaHei';
+    font-style: normal;
+    font-weight: 400;
+    font-size: 16px;
+    line-height: 24px;
+    color: #999999;
+
+}
+
+.service_process {
+    width: 100%;
+    height: 506px;
+    margin-top: 72px;
+    box-sizing: border-box;
+    padding-top: 72px;
+    background: linear-gradient(180deg, #E6F1FF 0%, #F0F8FF 100%);
+}
+
+.service_process h1 {
+    font-style: normal;
+    font-weight: 700;
+    font-size: 36px;
+    line-height: 48px;
+    color: #1D1D1D;
+    text-align: center;
+}
+
+.service_process .desc {
+    font-style: normal;
+    font-weight: 400;
+    font-size: 18px;
+    line-height: 28px;
+    color: #686868;
+    text-align: center;
+    margin-top: 8px;
+}
+
+.service_process .content {
+    width: 921px;
+    margin: auto;
+    margin-top: 56px;
+    margin-bottom: 56px;
+
+}
+
+.service_process .content .item {
+
+    width: 120px;
+    float: left
+}
+
+.service_process .line {
+    width: 80px;
+    height: 0px;
+    border-top: 1px dashed #0987FF;
+    float: left;
+    flex: none;
+    order: 1;
+    flex-grow: 0;
+    margin-top: 39px;
+}
+
+.service_process .content .item img {
+    width: 80px;
+    display: block;
+    margin: auto;
+}
+
+.service_process .content .item p {
+    font-style: normal;
+    font-weight: 400;
+    font-size: 18px;
+    line-height: 28px;
+    color: #1D1D1D;
+    text-align: center;
+    margin-top: 12px;
+}
+
+.cooperation {
+    width: 100%;
+    height: 574px;
+    background: url('/enterpriseCertificatio/img/2-bg.png') center center no-repeat;
+    background-size: cover;
+    box-sizing: border-box;
+    padding-top: 72px;
+}
+
+.cooperation h1 {
+    font-style: normal;
+    font-weight: 700;
+    font-size: 36px;
+    line-height: 48px;
+    color: #fff;
+    text-align: center;
+}
+
+.cooperation .desc {
+    font-style: normal;
+    font-weight: 400;
+    font-size: 18px;
+    line-height: 28px;
+    color: #FAFAFA;
+    text-align: center;
+    margin-top: 8px;
+    opacity: 0.88;
+}
+
+.cooperation .content {
+    width: 1200px;
+    margin: auto;
+    margin-top: 56px;
+    box-sizing: border-box;
+    padding-left: 48px;
+}
+
+.cooperation .content .item {
+    float: left;
+}
+
+.cooperation .content .item img {
+    width: 140px;
+    margin: auto;
+    display: block;
+}
+
+.cooperation .content .line {
+    width: 200px;
+    height: 0px;
+    float: left;
+    border-top: 1px dashed #70DFFF;
+    margin-top: 100px;
+    margin-left: -11px;
+}
+
+.ml_11 {
+    margin-left: -11px;
+}
+
+.cooperation .content .item .text {
+    font-style: normal;
+    font-weight: 400;
+    font-size: 18px;
+    line-height: 28px;
+    text-align: center;
+    color: #FFFFFF;
+    margin-top: 8px;
+}
+
+.phone_wchant_box {
+    position: fixed;
+    left: 50%;
+    top: 50%;
+    transform: translate(-50%, -50%);
+    margin-left: -662px;
+    width: 84px;
+    height: 164px;
+    background: url('/enterpriseCertificatio/img/phone.png') center center no-repeat;
+    background-size: cover;
+    z-index: 999;
+}
+@media screen and (min-width:100px) and (max-width:1400px){
+    .phone_wchant_box{
+        
+        margin-left: 45px;
+        left: 0;
+
+    }
+  }
+.phone_wchant_box .btn_box {
+    width: 56px;
+    height: 112px;
+    margin: auto;
+    margin-top: 45px;
+}
+
+.phone_wchant_box .btn_box .phone {
+    width: 100%;
+    height: 56px;
+    position: relative;
+    cursor: pointer;
+
+}
+.phone_wchant_box .btn_box .phone:hover .phone_box {
+    display: block;
+
+}
+.phone_box {
+    width: 133px;
+    height: 40px;
+    background: url('/enterpriseCertificatio/img/num.png') center center no-repeat;
+    background-size: cover;
+    position: absolute;
+    left: 70px;
+    top: 7px;
+    padding-left: 5px;
+    line-height: 40px;
+    text-align: center;
+    font-style: normal;
+    font-weight: 400;
+    font-size: 16px;
+    color: #FFFFFF;
+    display: none;
+    
+}
+.wchat_box{
+    width: 133px;
+    height: 128px;
+    background: url('/enterpriseCertificatio/img/qr.png') center center no-repeat;
+    background-size: cover;
+    position: absolute;
+    left: 70px;
+    top: 9px;
+    padding-left: 5px;
+    box-sizing: border-box;
+    display: none;
+    
+}
+.phone_wchant_box .btn_box .wchat:hover .wchat_box {
+    display: block;
+
+}
+.wchat_box img{
+    width: 112px;
+    display: block;
+    margin-left: 8px;
+    margin-top: 8px;
+}
+
+.phone_wchant_box .btn_box .wchat {
+    width: 100%;
+    height: 56px;
+    position: relative;
+    cursor: pointer;
+
+}
+
+
+@keyframes CfadeInUp {
+    from {
+        transform: translateY(50px);
+    }
+
+    to {
+        transform: translateY(0px);
+        opacity: 1;
+    }
+}
+
+.CfadeInUp {
+    /* opacity: 0; */
+    animation: 1s ease forwards alternate;
+}
+.is-class div {
+    padding: 0;
+}
+.is-class {
+    width: 532px;
+    padding: 32px;
+    border-radius: 8px;
+}
+.is-class .el-dialog__header {
+    margin-bottom: 26px;
+}
+.is-class .el-dialog__header .el-dialog__title {
+    color: #1d1d1d;
+    line-height: 28px;
+    font-size: 18px;
+}
+.is-class .el-dialog__footer .el-button span {
+    color: #ffffff;
+    font-size: 16px;
+}
+.is-class .el-dialog__footer .el-button {
+    padding: 9px 50px;
+    background-color: #2CB7CA;
+    border-color: #2CB7CA;
+}
+.is-class .el-dialog__body {
+    padding: 0;
+}
+.demo-class {
+    position: relative;
+}
+.demo-class .el-input__inner {
+    /* width: 380px; */
+    height: 36px;
+}
+.demo-class .el-form-item .el-form-item__label {
+    padding: 0;
+}
+
+.demo-class .company-result{
+    position: absolute;
+    width: 368px;
+    /* bottom: -32px;
+    left: 100px; */
+    top: 36px;
+    left: 0;
+    height: auto;
+    background-color: #fff;
+    border: 1px solid #2CB7CA;
+    z-index: 100;
+    border-radius: 4px;
+  }
+  .demo-class .company-list{
+    padding: 0 16px;
+    height: 30px;
+    line-height: 30px;
+    font-size: 14px;
+    color: #1D1D1D;
+    cursor: pointer;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    white-space: nowrap;
+  }
+  .demo-class .company-list:hover{
+    background: #ECECEC;
+  }
+  #information_dialog #success-dialog .success-dialog-container{
+    position: fixed;
+    width: 380px;
+    top: 50%;
+    left: 50%;
+    padding: 20px;
+    transform: translateX(-50%) translateY(-50%);
+    background: #ffffff;
+    border-radius: 8px;
+    transition: all 2s linear;
+    z-index: 1038;
+  }
+  #information_dialog #success-dialog .success-title{
+    padding: 12px 0 20px;
+    color: #1d1d1d;
+    line-height: 28px;
+    font-size: 18px;
+    text-align: center;
+  }
+  #information_dialog #success-dialog .success-content{
+    text-align: center;
+    color: #686868;
+    line-height: 22px;
+    font-size: 14px;
+  }
+  #information_dialog #success-dialog .success-footer{
+    padding: 32px 0 12px;
+    text-align: center;
+  }
+  #information_dialog .mask {
+    position: fixed;
+    width: 100%;
+    height: 100%;
+    right: 0;
+    left: 0;
+    top: 0;
+    bottom: 0;
+    background: rgba(0, 0, 0, .5);
+    z-index: 1031;
+  }
+  
+  #information_dialog #success-dialog .custom-btn{
+    display: inline-block;
+    width: 132px;
+    height: 36px;
+    line-height: 36px;
+    background: #2cb7ca;
+    border-radius: 6px;
+    text-align: center;
+    color: #fff;
+    font-size: 16px;
+    cursor: pointer;
+    border: 0;
+  }
+  .is-class .el-form-item__label{
+    margin-right: 0px !important;
+  }

BIN
src/web/staticres/enterpriseCertificatio/img/0000.png


BIN
src/web/staticres/enterpriseCertificatio/img/0430.png


BIN
src/web/staticres/enterpriseCertificatio/img/2-bg.png


BIN
src/web/staticres/enterpriseCertificatio/img/2000.png


BIN
src/web/staticres/enterpriseCertificatio/img/4001.png


BIN
src/web/staticres/enterpriseCertificatio/img/5001.png


BIN
src/web/staticres/enterpriseCertificatio/img/7000.png


BIN
src/web/staticres/enterpriseCertificatio/img/bg.png


BIN
src/web/staticres/enterpriseCertificatio/img/big_ic1.png


BIN
src/web/staticres/enterpriseCertificatio/img/ci1.png


BIN
src/web/staticres/enterpriseCertificatio/img/cx.png


BIN
src/web/staticres/enterpriseCertificatio/img/five.png


BIN
src/web/staticres/enterpriseCertificatio/img/four.png


BIN
src/web/staticres/enterpriseCertificatio/img/four4.png


BIN
src/web/staticres/enterpriseCertificatio/img/gys.png


BIN
src/web/staticres/enterpriseCertificatio/img/haccp.png


BIN
src/web/staticres/enterpriseCertificatio/img/head_ic.png


BIN
src/web/staticres/enterpriseCertificatio/img/ic2.png


BIN
src/web/staticres/enterpriseCertificatio/img/ic3.png


BIN
src/web/staticres/enterpriseCertificatio/img/ic4.png


BIN
src/web/staticres/enterpriseCertificatio/img/ic5.png


BIN
src/web/staticres/enterpriseCertificatio/img/impor.png


BIN
src/web/staticres/enterpriseCertificatio/img/jy.png


BIN
src/web/staticres/enterpriseCertificatio/img/le.png


BIN
src/web/staticres/enterpriseCertificatio/img/more.png


BIN
src/web/staticres/enterpriseCertificatio/img/num.png


BIN
src/web/staticres/enterpriseCertificatio/img/one.png


BIN
src/web/staticres/enterpriseCertificatio/img/one1.png


BIN
src/web/staticres/enterpriseCertificatio/img/phone.png


BIN
src/web/staticres/enterpriseCertificatio/img/qr.png


BIN
src/web/staticres/enterpriseCertificatio/img/qyj.png


BIN
src/web/staticres/enterpriseCertificatio/img/text1.png


BIN
src/web/staticres/enterpriseCertificatio/img/three.png


BIN
src/web/staticres/enterpriseCertificatio/img/three3.png


BIN
src/web/staticres/enterpriseCertificatio/img/two.png


BIN
src/web/staticres/enterpriseCertificatio/img/two2.png


BIN
src/web/staticres/enterpriseCertificatio/img/xy.png


BIN
src/web/staticres/enterpriseCertificatio/img/zl.png


BIN
src/web/staticres/enterpriseCertificatio/img/zx.png


+ 298 - 0
src/web/staticres/enterpriseCertificatio/js/information_dialog.js

@@ -0,0 +1,298 @@
+var informationtemp = `
+<div>
+<el-dialog
+          title="请留下您的信息,我们会尽快和您联系"
+          :visible.sync="isShow"
+          custom-class="is-class"
+          :lock-scroll="false"
+          :close-on-click-modal="false"
+          center
+        >
+          <el-form :model="ruleBide" :rules="rules" ref="ruleBide" label-width="100px" class="demo-class">
+            <el-form-item label="姓名:" prop="name">
+              <el-input v-model="ruleBide.name" placeholder="请输入姓名"></el-input>
+            </el-form-item>
+            <el-form-item label="手机号:" prop="phone">
+              <el-input v-model="ruleBide.phone" placeholder="请输入手机号" @input="inputPhone"></el-input>
+            </el-form-item>
+            <el-form-item
+              label="公司名称:"
+              prop="companyName"
+            >
+              <el-input
+                v-model="ruleBide.companyName"
+                class="company-name"
+                placeholder="请输入公司名称"
+                @focus="companyFocus"
+                @input="searchCompany"
+              ></el-input>
+              <div class="company-result" v-if="showSearchResult">
+                <div class="company-list" v-for="item in companyList" :key="item" @click="selectCompany(item)" v-html="item"></div>
+              </div>
+            </el-form-item>
+            <el-form-item label="公司类型:" class="company-type" prop="companyType">
+              <el-checkbox-group v-model="ruleBide.companyType">
+                <el-checkbox label="投标企业"></el-checkbox>
+                <el-checkbox label="招标采购单位"></el-checkbox>
+                <el-checkbox label="厂商"></el-checkbox>
+                <el-checkbox label="招标代理机构"></el-checkbox>
+                <el-checkbox label="经销商"></el-checkbox>
+                <el-checkbox label="服务提供商"></el-checkbox>
+                <el-checkbox label="其他"></el-checkbox>
+              </el-checkbox-group>
+            </el-form-item>
+          </el-form>
+          <span slot="footer" class="dialog-footer">
+            <el-button type="primary" @click="submitForm('ruleBide')">提交</el-button>
+          </span>
+        </el-dialog>
+        <div id="success-dialog" style="display: none;" v-show="showSuccess">
+          <div class="mask"></div>
+          <div class="success-dialog-container">
+            <div class="success-title">提交成功</div>
+            <div class="success-content">专业老师将尽快和您联系!</div>
+            <div class="success-footer">
+              <button type="button" class="custom-btn go-know" @click="showSuccess = false">我知道了</button>
+            </div>
+          </div>
+        </div>
+      </div>
+        `
+        // 防抖
+function debounce(fn, delay) {
+    var timer
+    return function () {
+      var context = this
+      var args = arguments
+      clearTimeout(timer)
+      timer = setTimeout(function () {
+        fn.apply(context, args)
+      }, delay)
+    }
+  }
+  var informationvm = new Vue({
+    el: '#information_dialog',
+    template: informationtemp,
+    delimiters: ['@@', '@@'],
+    data: function () {
+      var validPhone = function(rule,value,callback) {
+        var status = /^1[3-9]\d{9}$/.test(value)
+        if(value === '') {
+          return callback(new Error('手机号为必填项'));
+        } else if (!status) {
+          return callback(new Error('手机号填写不正确'));
+        } else {
+          callback();
+        }
+      }
+      return {
+        isShow: false,
+        showSearchResult: false,
+        showSuccess: false,
+        source: '',
+        ruleBide: {
+          name: '',
+          phone: '',
+          companyName: '',
+          companyType: []
+        },
+        companyList: [],
+        rules: {
+          name: [
+            { required: true, message: '请输入姓名', trigger: 'blur' }
+          ],
+          phone: [
+            { required: true, validator: validPhone, trigger: 'blur' }
+          ],
+          companyName: [
+            { required: true, message: '请输入公司名称', trigger: 'blur' }
+          ],
+          companyType: [
+            { required: true, message: '公司类型为必填项', trigger: 'blur' }
+          ]
+        }
+      }
+    },
+    mounted() {
+      let that = this;
+      $(document).on('click', function (e) {
+          let dom = $('.company-name')[0];
+          if (dom) {
+              // 如果点击的区域不在自定义dom范围
+              if (!dom.contains((e.target))) {
+                that.showSearchResult = false
+              }
+          }
+      })
+    },
+    methods: {
+      getModal () {
+        if (!loginflag) {
+          openLoginDig()
+        } else {
+          this.isNeedSubmit()
+        }
+      },
+      // 是否留资
+      isNeedSubmit: function(source) {
+        var _this = this
+        _this.source=source
+        $.ajax({
+          type:'GET',
+          url:'/salesLeads/retainedCapital',
+          data: {
+            source: source
+          },
+          success:function (res) {
+            // 判断当前信息否在其他页面留资  如果全部留资 直接弹窗提交成功
+            var checkKeys = ['name', 'phone', 'company', 'companyType']
+            var result = checkRequiredKeys(checkKeys, res.info)
+            if (result) {
+              _this.showSuccess = true
+              _this.formAjax(_this.source, res.info)
+            } else if (res.data){
+              window.isRetained = res.data.retainedCapital
+         
+              if (res.data.retainedCapital) {
+          
+                _this.isShow = true
+                if (res.info) {
+                  echoRequiredValues(_this.ruleBide, res.info, checkKeys)
+                  if (res.info.company) {
+                    _this.showSearchResult = false
+                  }
+                }
+              } else {
+                
+                _this.showSuccess = true
+              }
+            }
+          }
+        })
+      },
+      searchCompany: debounce(function(val){
+        console.log(val)
+        if(val === '') { this.showSearchResult = false}
+        this.getResult(val)
+      }, 600),
+      // 公司名称获取焦点时
+      companyFocus: function() {
+        this.$refs['ruleBide'].clearValidate(['companyName']);
+        this.getResult(this.ruleBide.companyName)
+      },
+      // 公司名称失去焦点时
+      companyBlur: function() {
+        this.showSearchResult = false
+      },
+      // 关键词高亮
+      brightKeyword: function (val) {
+        var name = this.ruleBide.companyName
+        if (val.indexOf(name) !== -1) {
+          return val.replace(name, `<font style='color:#2ABED1;'>${name}</font>`)
+        } else {
+          return val
+        }
+      },
+      // 选择联想出来的公司名称
+      selectCompany: function(item) {
+        this.ruleBide.companyName = item.replace(/<.*?>/ig, '')
+        this.showSearchResult = false
+      },
+      // 企业名称联想
+      getResult:function(name) {
+        // 名称为空或长度小于2不发请求
+        console.log(name)
+        if (!name || name.length < 2) return
+        var _this = this
+        $.ajax({
+          type:'POST',
+          url:'/jypay/user/company/association',
+          data: {
+            name: name
+          },
+          heads : {
+            'content-type': 'application/x-www-form-urlencoded'
+          },
+          success:function (res) {
+            console.log(res)
+            if (res.data && res.data.length > 0) {
+              var result = []
+              res.data.map(function(item){
+                item = _this.brightKeyword(item)
+                result.push(item)
+                return result
+              })
+              _this.companyList = result
+              _this.showSearchResult = true
+            }
+          }
+        })
+      },
+      // 表单提交事件
+      submitForm: function(formName) {
+        var _this = this
+        this.$refs[formName].validate(function (valid) {
+          if (valid) {
+            _this.formAjax(_this.source)
+            _this.bigDocAjax()
+          } else {
+            console.log('error submit!!');
+            return false;
+          }
+        });
+      },
+      // 快照页引流的文案埋点 留资提交时埋点
+      bigDocAjax: function() {
+        if (getParam('id')) {
+          try {
+            $.ajax({
+              type: "POST",
+              url: "/publicapply/drainage/bmt/" + getParam('id'),
+              data: {
+                p: 'ICRW'
+              },
+              success: function(r) {
+                console.log(r)
+              }
+            })
+          } catch (error) {
+            console.log(error)
+          }
+        }
+      },
+      // 表单提交请求
+      formAjax: function(source, info) {
+        var params = {
+          source: source,
+          name: this.ruleBide.name,
+          phone: this.ruleBide.phone,
+          company: this.ruleBide.companyName,
+          companyType: this.ruleBide.companyType.join(','),
+        }
+        if (info) {
+          params = info
+          params.source = source
+        }
+        var _this = this
+        $.ajax({
+          type:'POST',
+          url:'/salesLeads/collectInfo',
+          contentType: "application/json;charset=utf-8",
+          data: JSON.stringify(params),
+          success:function (res) {
+            if (res.data) {
+              _this.isShow = false
+              _this.showSuccess = true
+            }
+          }
+        })
+      },
+      // 手机号输入框input事件
+      inputPhone: function(val) {
+        this.ruleBide.phone = val.replace(/[^\d]/g,'')
+      },
+    }
+  })
+  
+  
+  

+ 105 - 112
src/web/staticres/frontRouter/pc/bidedoc/css/index-pc.css

@@ -3,42 +3,11 @@
     display: none !important;
 }
 
-.flex {
-    display: flex;
-    align-items: center;
-  }
-.bide-container {
-    padding-top: 64px;
-    min-height: calc(100vh - 364px);
-}
-.bide-container img {
-    width: 100%;
-}
-.bide-bg {
-    width: 100%;
-}
-.bide-conts .serves1, .bide-conts .serves3 {
-    position: relative;
-}
-.bide-conts .serves1 .bi-btn, .bide-conts .serves3 .bi-btn {
-    position: absolute;
-    left: 50%;
-    bottom: 13.47%;
-    transform: translate(-50%, 0);
-    width: 416px;
-    height: 48px;
-    background: linear-gradient(90deg,#23c5f1 0%, #2887ea 100%);
-    border-image: linear-gradient(90deg, #23c5f1, #2888ea 100%) 0 0;
-    border-radius: 25px;
-}
-.bide-conts .serves1 .bi-btn, .bide-conts .serves3 .bi-btn span {
-  font-size: 18px;
-}
 .is-class div {
     padding: 0;
 }
 .is-class {
-    width: 532px;
+    width: 760px;
     padding: 32px;
     border-radius: 8px;
 }
@@ -62,6 +31,9 @@
 .is-class .el-dialog__body {
     padding: 0;
 }
+.is-class .el-form-item__error {
+  line-height: 20px;
+}
 .demo-class {
     position: relative;
 }
@@ -70,87 +42,108 @@
     height: 36px;
 }
 .demo-class .el-form-item .el-form-item__label {
+    margin-right: 0!important;
     padding: 0;
 }
+.demo-class .el-form-item {
+  margin-bottom: 22px;
+}
 
 .demo-class .company-result{
-    position: absolute;
-    width: 368px;
-    /* bottom: -32px;
-    left: 100px; */
-    top: 36px;
-    left: 0;
-    height: auto;
-    background-color: #fff;
-    border: 1px solid #2CB7CA;
-    z-index: 100;
-    border-radius: 4px;
-  }
-  .demo-class .company-list{
-    padding: 0 16px;
-    height: 30px;
-    line-height: 30px;
-    font-size: 14px;
-    color: #1D1D1D;
-    cursor: pointer;
-    text-overflow: ellipsis;
-    overflow: hidden;
-    white-space: nowrap;
-  }
-  .demo-class .company-list:hover{
-    background: #ECECEC;
-  }
-  #success-dialog .success-dialog-container{
-    position: fixed;
-    width: 380px;
-    top: 50%;
-    left: 50%;
-    padding: 20px;
-    transform: translateX(-50%) translateY(-50%);
-    background: #ffffff;
-    border-radius: 8px;
-    transition: all 2s linear;
-    z-index: 1038;
-  }
-  #success-dialog .success-title{
-    padding: 12px 0 20px;
-    color: #1d1d1d;
-    line-height: 28px;
-    font-size: 18px;
-    text-align: center;
-  }
-  #success-dialog .success-content{
-    text-align: center;
-    color: #686868;
-    line-height: 22px;
-    font-size: 14px;
-  }
-  #success-dialog .success-footer{
-    padding: 32px 0 12px;
-    text-align: center;
-  }
-  .mask {
-    position: fixed;
-    width: 100%;
-    height: 100%;
-    right: 0;
-    left: 0;
-    top: 0;
-    bottom: 0;
-    background: rgba(0, 0, 0, .5);
-    z-index: 1031;
-  }
-  
-  #success-dialog .custom-btn{
-    display: inline-block;
-    width: 132px;
-    height: 36px;
-    line-height: 36px;
-    background: #2cb7ca;
-    border-radius: 6px;
-    text-align: center;
-    color: #fff;
-    font-size: 16px;
-    cursor: pointer;
-    border: 0;
-  }
+  position: absolute;
+  width: 368px;
+  /* bottom: -32px;
+  left: 100px; */
+  top: 36px;
+  left: 0;
+  height: auto;
+  background-color: #fff;
+  border: 1px solid #2CB7CA;
+  z-index: 100;
+  border-radius: 4px;
+}
+.demo-class .company-list{
+  padding: 0 16px;
+  height: 30px;
+  line-height: 30px;
+  font-size: 14px;
+  color: #1D1D1D;
+  cursor: pointer;
+  text-overflow: ellipsis;
+  overflow: hidden;
+  white-space: nowrap;
+}
+.demo-class .company-list:hover{
+  background: #ECECEC;
+}
+#success-dialog .success-dialog-container{
+  position: fixed;
+  width: 380px;
+  top: 50%;
+  left: 50%;
+  padding: 20px;
+  transform: translateX(-50%) translateY(-50%);
+  background: #ffffff;
+  border-radius: 8px;
+  transition: all 2s linear;
+  z-index: 1138;
+}
+#success-dialog .success-title{
+  padding: 12px 0 20px;
+  color: #1d1d1d;
+  line-height: 28px;
+  font-size: 18px;
+  text-align: center;
+}
+#success-dialog .success-content{
+  text-align: center;
+  color: #686868;
+  line-height: 22px;
+  font-size: 14px;
+}
+#success-dialog .success-footer{
+  padding: 32px 0 12px;
+  text-align: center;
+}
+.mask {
+  position: fixed;
+  width: 100%;
+  height: 100%;
+  right: 0;
+  left: 0;
+  top: 0;
+  bottom: 0;
+  background: rgba(0, 0, 0, .5);
+  z-index: 1131;
+}
+
+#success-dialog .custom-btn{
+  display: inline-block;
+  width: 132px;
+  height: 36px;
+  line-height: 36px;
+  background: #2cb7ca;
+  border-radius: 6px;
+  text-align: center;
+  color: #fff;
+  font-size: 16px;
+  cursor: pointer;
+  border: 0;
+}
+#bid-leave-info-dialog .company-type .el-checkbox {
+  height: 40px;
+  display: inline-flex;
+  align-items: center;
+}
+.info-form-line-label {
+  padding: 0 8px;
+  font-size: 14px;
+  line-height: 22px;
+  color: #2CB7CA;
+}
+.info-form-line {
+  display: flex;
+}
+.info-form-line .el-form-item {
+  flex: 1;
+}

+ 26 - 11
src/web/staticres/frontRouter/pc/bidedoc/js/index-pc.js

@@ -10,8 +10,9 @@ function debounce(fn, delay) {
     }, delay)
   }
 }
-var vm = new Vue({
-  el: '.bide-container',
+
+var bidLeaveInfo = new Vue({
+  el: '#bid-leave-info-dialog',
   delimiters: ['{', '}'],
   data: function () {
     var validPhone = function(rule,value,callback) {
@@ -28,7 +29,7 @@ var vm = new Vue({
       isShow: false,
       showSearchResult: false,
       showSuccess: false,
-      source: 'bid_document_Introduction_page',
+      source: '',
       ruleBide: {
         name: '',
         phone: '',
@@ -65,15 +66,22 @@ var vm = new Vue({
     })
   },
   methods: {
-    getModal () {
-      if (!loginflag) {
-        openLoginDig()
+    // 是否留资
+    /*
+      options = {
+        source: 'xxxx',
+        alreadySubmitCb: function // 满足自动留资回调
+        needSubmitCb: function, // 需要留资回调
+      }
+    */
+    isNeedSubmit: function(options) {
+      if (options && options.source) {
+        this.source = options.source
       } else {
-        this.isNeedSubmit()
+        console.warn('未传source')
+        return
       }
-    },
-    // 是否留资
-    isNeedSubmit: function() {
+
       var _this = this
       $.ajax({
         type:'GET',
@@ -87,12 +95,19 @@ var vm = new Vue({
           var result = checkRequiredKeys(checkKeys, res.info)
           if (result) {
             _this.showSuccess = true
+            options && options.alreadySubmitCb && options.alreadySubmitCb()
             _this.formAjax(_this.source, res.info)
           } else if (res.data){
             window.isRetained = res.data.retainedCapital
+            options && options.needSubmitCb && options.needSubmitCb()
             if (res.data.retainedCapital) {
               _this.isShow = true
               if (res.info) {
+                if (res.info.companyType) {
+                  res.info.companyType = res.info.companyType.split(',')
+                } else {
+                  res.info.companyType = []
+                }
                 echoRequiredValues(_this.ruleBide, res.info, checkKeys)
                 if (res.info.company) {
                   _this.showSearchResult = false
@@ -168,7 +183,7 @@ var vm = new Vue({
       var _this = this
       this.$refs[formName].validate(function (valid) {
         if (valid) {
-          _this.formAjax('bid_document_Introduction_page')
+          _this.formAjax(_this.source)
           _this.bigDocAjax()
         } else {
           console.log('error submit!!');

+ 27 - 9
src/web/staticres/js/common.js

@@ -291,6 +291,9 @@ function pcredirect(link,sid){
 
 var isNumber = /^[0-9]+$/
 var isLetter = /^[a-zA-Z]+$/
+function isRegExp (value) {
+  return Object.prototype.toString.call(value) === '[object RegExp]'
+}
 function keyWordHighlight (value, oldChars, newChar) {
   if(typeof(oldChars) == "undefined" || oldChars == null || typeof(newChar) == "undefined" || newChar == null || newChar == ""){
     return value;
@@ -301,16 +304,21 @@ function keyWordHighlight (value, oldChars, newChar) {
   }else{
     array.push(oldChars);
   }
-
+  // 非字符串替换集合
+  var notStrReplacer = []
   for (var i = 0; i < array.length; i++) {
     if (!array[i]) {
       continue
     } else {
-      // if (isNumber.test(array[i])) {
-      //   array[i] = ''
-      //   continue
-      // }
-      array[i] = array[i].replace(/([\$\(\)\*\+\.\[\]\?\/\\\^\{\}\|])/g, '\\$1').replace(/\s+/g, '')
+      if (isRegExp(array[i])) {
+        // 正则直接替换
+        // 注意:该正则中必须包含至少一个分组匹配,分组中的内容用来替换
+        notStrReplacer.push(array[i])
+        array[i] = ''
+      } else {
+        // 字符串替换
+        array[i] = array[i].replace(/([\$\(\)\*\+\.\[\]\?\/\\\^\{\}\|])/g, '\\$1').replace(/\s+/g, '')
+      }
 
       // array[i] = array[i].replace(/\$/g,"\\$");
       // array[i] = array[i].replace(/\(/g,"\\(");
@@ -337,14 +345,24 @@ function keyWordHighlight (value, oldChars, newChar) {
       lastArr.push(item)
     }
   })
-  if (lastArr.length === 0) {
+  if (lastArr.length === 0 && notStrReplacer.length === 0) {
     return value
   }
   lastArr = lastArr.sort(function (a, b) {
     return b.length - a.length
   })
-
-  return value.replace(new RegExp('(' + lastArr.join('|') + ')', 'gmi'), newChar)
+  
+  if (notStrReplacer.length) {
+    for (var j = 0; j < notStrReplacer.length; j++) {
+      // 正则替换
+      value = value.replace(notStrReplacer[j], newChar)
+    }
+  }
+  if (lastArr.length) {
+    value = value.replace(new RegExp('(' + lastArr.join('|') + ')', 'gmi'), newChar)
+  }
+  
+  return value
 }
 function getWxVersion(){
 	var wechatInfo = navigator.userAgent.match(/MicroMessenger\/([\d\.]+)/i);

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 5 - 36
src/web/staticres/pccss/pc-detail.css


+ 18 - 10
src/web/staticres/public-pc/js/article-content.js

@@ -479,6 +479,7 @@ function recoveryerr(ts,dcd,name){
   }else{
     clearup("R");
     companyAdd();
+    thirdPartyVerify.checkHighlightInsert()
     $("html, body").stop(true,false).animate({
       scrollTop: $("#fphl").offset().top-cHeight/2+310>0?$("#fphl").offset().top-cHeight/2+310:0 }, {duration: 500,easing: "swing"});
   }
@@ -541,8 +542,13 @@ function clearup(rp){
     }
     //dtcontent = keyWordHighlight(dtcontent,s_winner,"<span class='keyword winner' style=\"border-bottom:1px solid #2cb7ca\">$1</span>");
   }
+  // 第三方认证替换
+  if (dtcontent) {
+    dtcontent = thirdPartyVerify.replaceKeys(dtcontent)
+  }
+  // 替换关键词高亮
   var wordsArray = getQueryString("kds").split(" ");
-  if(wordsArray!=""&&wordsArray!="undefined"){
+  if(wordsArray){
     for(var i=0;i<wordsArray.length;i++){
       dtcontent = keyWordHighlight(dtcontent,wordsArray[i],"<span class='jykeyword'>$1</span>");
     }
@@ -635,14 +641,14 @@ if (subtype != '拟建' && !isMember) {
       data: {subtype: subtype},
       success: function(r){
         if (r.data) {
-          $('.bigmember-slogan').show().find('.slogan-text').html(r.data.s_content)
-          $('.bigmember-slogan .free-btn').click(function(){
+          $('.not-bigmember-slogan').show().find('.slogan-text').html(r.data.s_content)
+          $('.not-bigmember-slogan .free-btn').click(function(){
             bidVue.sourceLogAjax('article_slogan')
             vm.isNeedSubmit('article_slogan',function(){
               vm.showSuccess = true
             })
           })
-          $('.bigmember-slogan .more-btn').click(function() {
+          $('.not-bigmember-slogan .more-btn').click(function() {
             var params = {
               drainageId: (r.data.id).toString(),
               bigServiceId: r.data.s_serviceid,
@@ -816,6 +822,7 @@ function subData(){
       $(".poperr").hide();
       clearup("P");
       companyAdd();
+      thirdPartyVerify.checkHighlightInsert()
       $("#pop-textarea").val("");
       $("#fphl").removeClass("fphl");
       $(transmit).prev("div").text(reccont);
@@ -1200,7 +1207,7 @@ $(function(){
     if (advanceProjectTable.tableShow) {
       $(".recoveryfat").show();
       $(".explain").show();
-      // $(".lead-btn").show();
+      $('.center-ad-container').show();
     }
   } else {
     if((count>=4 && !isbid)||(count>=5&&isbid)){
@@ -1208,6 +1215,7 @@ $(function(){
       $("#tab2").show();
       $(".explain").show();
       $(".lead-btn").show();
+      $('.center-ad-container').show();
     }
   }
   if (goTemplateData.params.obj.href) {
@@ -1294,12 +1302,11 @@ $(function(){
       }
     }
   }
+  if (content) {
+    // 第三方认证替换
+    content = thirdPartyVerify.replaceKeys(content)
+  }
   if(sds&&content){
-    // if(!insertflog){
-    //   $(".com-guanzhu .scanqr>span:last").html("随时掌握招标信息");
-    //   $(".com-guanzhu>.scanqr>img").height(135);
-    //   $(".com-guanzhu>font").text("关注剑鱼标讯");
-    // }
     var wordsArray = sds.split(" ");
     if(wordsArray!=""){
       for(var i=0;i<wordsArray.length;i++){
@@ -1336,6 +1343,7 @@ $(function(){
 
   $("#com-title").html(titleCopy);
   companyAdd();
+  thirdPartyVerify.checkHighlightInsert()
 
   //企业画像跳转
   $(".portrait_img:not(.no-show-tip)").hover(function (){

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

@@ -150,7 +150,6 @@ function docScroll(e){
 
 }
 window.addEventListener('scroll', docScroll, true)
-
 $(function(){
 
   // 搜索框显示、隐藏
@@ -298,8 +297,8 @@ $(function(){
   }
   addPopListener('.work-user-info')
   addPopListener('#public-nav .nav-avatar', 500)
-})
 
+})
 function infoListCss(){
   var $useronline = $('.useronline');
   $useronline.css('position','relative');

+ 70 - 0
src/web/templates/common/bidLeaveInfo.html

@@ -0,0 +1,70 @@
+<!-- js引入或模板引入二选一使用 -->
+
+<!-- 标书制作留资js引入 -->
+<!-- <script src='{{Msg "seo" "cdn"}}/enterpriseCertificatio/js/information_dialog.js?v={{Msg "seo" "version"}}'></script> -->
+
+<!-- 标书制作留资模板引入 -->
+<link href='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/css/index-pc.css?v={{Msg "seo" "version"}}' rel="stylesheet">
+<div id="bid-leave-info-dialog" v-cloak>
+  <el-dialog
+    title="请留下您的信息,我们会尽快和您联系"
+    :visible.sync="isShow"
+    custom-class="is-class"
+    :lock-scroll="false"
+    :close-on-click-modal="false"
+    center
+  >
+    <el-form :model="ruleBide" :rules="rules" ref="ruleBide" label-width="100px" class="demo-class">
+      <div class="info-form-line-label">基本信息</div>
+      <div class="info-form-line">
+        <el-form-item label="姓名:" prop="name">
+          <el-input v-model="ruleBide.name" placeholder="请输入姓名"></el-input>
+        </el-form-item>
+        <el-form-item label="手机号:" prop="phone">
+          <el-input v-model="ruleBide.phone" placeholder="请输入手机号" @input="inputPhone"></el-input>
+        </el-form-item>
+      </div>
+      <div class="info-form-line-label">公司信息</div>
+      <el-form-item
+        label="公司名称:"
+        prop="companyName"
+      >
+        <el-input
+          v-model="ruleBide.companyName"
+          class="company-name"
+          placeholder="请输入公司名称"
+          @focus="companyFocus"
+          @input="searchCompany"
+        ></el-input>
+        <div class="company-result" v-if="showSearchResult">
+          <div class="company-list" v-for="item in companyList" :key="item" @click="selectCompany(item)" v-html="item"></div>
+        </div>
+      </el-form-item>
+      <el-form-item label="公司类型:" class="company-type" prop="companyType">
+        <el-checkbox-group v-model="ruleBide.companyType">
+          <el-checkbox label="投标企业"></el-checkbox>
+          <el-checkbox label="招标采购单位"></el-checkbox>
+          <el-checkbox label="厂商"></el-checkbox>
+          <el-checkbox label="招标代理机构"></el-checkbox>
+          <el-checkbox label="经销商"></el-checkbox>
+          <el-checkbox label="服务提供商"></el-checkbox>
+          <el-checkbox label="其他"></el-checkbox>
+        </el-checkbox-group>
+      </el-form-item>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button type="primary" @click="submitForm('ruleBide')">提交</el-button>
+    </span>
+  </el-dialog>
+  <div id="success-dialog" style="display: none;" v-show="showSuccess">
+    <div class="mask"></div>
+    <div class="success-dialog-container">
+      <div class="success-title">提交成功</div>
+      <div class="success-content">专业老师将尽快和您联系!</div>
+      <div class="success-footer">
+        <button type="button" class="custom-btn go-know" @click="showSuccess = false">我知道了</button>
+      </div>
+    </div>
+  </div>
+</div>
+<script src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/js/index-pc.js?v={{Msg "seo" "version"}}'></script>

+ 6 - 5
src/web/templates/common/pchead.html

@@ -20,13 +20,13 @@
         </div> -->
         <div class="fr">
             <ul class="jynav">
-                <li name="产品">
+                <li name="产品" style="overflow: hidden;">
                     <a class="nav-text" href="/product/index?serviceType=0">产品</a>
-                    <!-- <div class="jynav-list jy-rember" style="width:158px;">
-                        <span name="招标订阅" class="active-after" data-active-tip="升级"><a href="/front/subscribe.html">超级订阅</a></span>
+                    <div class="jynav-list jy-rember" style="width:158px;">
+                        <!-- <span name="招标订阅" class="active-after" data-active-tip="升级"><a href="/front/subscribe.html">超级订阅</a></span>
                         <span name="大会员"><a href="/big/page/index">大会员</a></span>
-                        <span name="商机管理" class="active-after fix-after" data-active-tip="全面升级"><a href="/swordfish/frontPage/entpc/free/enptc_index">商机管理</a></span>
-                    </div> -->
+                        <span name="商机管理" class="active-after fix-after" data-active-tip="全面升级"><a href="/swordfish/frontPage/entpc/free/enptc_index">商机管理</a></span> -->
+                    </div>
                 </li>
                 <li name="服务">
                   <a class="nav-text" href="javascript:;" data-type="work-bench" data-href="/swordfish/page_web_pc/issued/info">
@@ -37,6 +37,7 @@
                       <span name="信息发布"><a style="display: flex;align-items: center;" href="javascript:;" data-type="work-bench" data-href="/swordfish/page_web_pc/issued/info">信息发布<div class="time-free">限免</div></a></span>
                       <span name="广告服务"><a href="/front/advservices.html">广告服务</a></span>
                       <span name="标书制作"><a href="/swordfish/frontPage/bidedoc/free/index">标书制作</a></span>
+                      <span name="企业认证"><a href="/swordfish/frontPage/enterpriseCertificatio/free/index">企业认证服务</a></span>
                   </div>
                 </li>
                 <li name="数据">

+ 89 - 95
src/web/templates/frontRouter/pc/bidedoc/free/index.html

@@ -12,109 +12,103 @@
 		<link href="{{Msg "seo" "cdn"}}/css/dev2/reset_pc.css?v={{Msg "seo" "version"}}" rel="stylesheet" />
 		<link href="{{Msg "seo" "cdn"}}/pccss/public-nav-1200.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"}}/frontRouter/pc/bidedoc/css/index-pc.css?v={{Msg "seo" "version"}}' rel="stylesheet">
     <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
     <script src="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.7/lib/index.js"></script>
+    <style>
+      [v-cloak] {
+          display: none !important;
+      }
+      .flex {
+          display: flex;
+          align-items: center;
+        }
+      .bide-container {
+          padding-top: 64px;
+          min-height: calc(100vh - 364px);
+      }
+      .bide-container img {
+          width: 100%;
+      }
+      .bide-bg {
+          width: 100%;
+      }
+      .bide-conts .serves1, .bide-conts .serves3 {
+          position: relative;
+      }
+      .bide-conts .serves1 .bi-btn, .bide-conts .serves3 .bi-btn {
+          position: absolute;
+          left: 50%;
+          bottom: 13.47%;
+          transform: translate(-50%, 0);
+          width: 416px;
+          height: 48px;
+          background: linear-gradient(90deg,#23c5f1 0%, #2887ea 100%);
+          border-image: linear-gradient(90deg, #23c5f1, #2888ea 100%) 0 0;
+          border-radius: 25px;
+      }
+      .bide-conts .serves1 .bi-btn, .bide-conts .serves3 .bi-btn span {
+        font-size: 18px;
+      }
+    </style>
   </head>
 
 	<body>
 	{{include "/common/pchead.html"}}
-	  <section class="bide-container" v-cloak>
-        <div class="bide-bg">
-          <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/image/1.jpg?v={{Msg "seo" "version"}}' alt="">
-        </div>
-        <div class="bide-conts">
-          <div class="serves1">
-            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/image/2.jpg?v={{Msg "seo" "version"}}' alt="">
-            <el-button @click="getModal" class="bi-btn" type="primary">请留下您的手机号,专业老师将尽快和您联系</el-button>
-          </div>
-          <div class="serves2">
-            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/image/3.jpg?v={{Msg "seo" "version"}}' alt="">
-          </div>
-          <div class="serves3">
-            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/image/4.jpg?v={{Msg "seo" "version"}}' alt="">
-            <el-button @click="getModal" class="bi-btn" type="primary">请留下您的手机号,专业老师将尽快和您联系</el-button>
-          </div>
-          <div class="serves4">
-            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/image/5.jpg?v={{Msg "seo" "version"}}' alt="">
-          </div>
-          <div class="serves5">
-            <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/image/6.jpg?v={{Msg "seo" "version"}}' alt="">
-          </div>
-        </div>
-        <el-dialog
-          title="请留下您的信息,我们会尽快和您联系"
-          :visible.sync="isShow"
-          custom-class="is-class"
-          :lock-scroll="false"
-          :close-on-click-modal="false"
-          center
-        >
-          <el-form :model="ruleBide" :rules="rules" ref="ruleBide" label-width="100px" class="demo-class">
-            <el-form-item label="姓名:" prop="name">
-              <el-input v-model="ruleBide.name" placeholder="请输入姓名"></el-input>
-            </el-form-item>
-            <el-form-item label="手机号:" prop="phone">
-              <el-input v-model="ruleBide.phone" placeholder="请输入手机号" @input="inputPhone"></el-input>
-            </el-form-item>
-            <el-form-item
-              label="公司名称:"
-              prop="companyName"
-            >
-              <el-input
-                v-model="ruleBide.companyName"
-                class="company-name"
-                placeholder="请输入公司名称"
-                @focus="companyFocus"
-                @input="searchCompany"
-              ></el-input>
-              <div class="company-result" v-if="showSearchResult">
-                <div class="company-list" v-for="item in companyList" :key="item" @click="selectCompany(item)" v-html="item"></div>
-              </div>
-            </el-form-item>
-            <el-form-item label="公司类型:" class="company-type" prop="companyType">
-              <el-checkbox-group v-model="ruleBide.companyType">
-                <el-checkbox label="投标企业"></el-checkbox>
-                <el-checkbox label="招标采购单位"></el-checkbox>
-                <el-checkbox label="厂商"></el-checkbox>
-                <el-checkbox label="招标代理机构"></el-checkbox>
-                <el-checkbox label="经销商"></el-checkbox>
-                <el-checkbox label="服务提供商"></el-checkbox>
-                <el-checkbox label="其他"></el-checkbox>
-              </el-checkbox-group>
-            </el-form-item>
-          </el-form>
-          <span slot="footer" class="dialog-footer">
-            <el-button type="primary" @click="submitForm('ruleBide')">提交</el-button>
-          </span>
-        </el-dialog>
-        <div id="success-dialog" style="display: none;" v-show="showSuccess">
-          <div class="mask"></div>
-          <div class="success-dialog-container">
-            <div class="success-title">提交成功</div>
-            <div class="success-content">专业老师将尽快和您联系!</div>
-            <div class="success-footer">
-              <button type="button" class="custom-btn go-know" @click="showSuccess = false">我知道了</button>
-            </div>
-          </div>
-        </div>
-    </section>
-
-    {{include "/common/pcbottom.html"}}
-    {{include "/common/baiducc.html"}}
-
-    <script>
-        haslogin({{.T.logid}})
-        function baiduEvent(name) {
-          try {
-            console.log(name, 'name')
-            _hmt.push(['_trackEvent', '超级订阅-pc', 'click', name]);
-          } catch (e) {
-            console.log('未初始化百度统计')
+  <section class="bide-container" v-cloak>
+    <div class="bide-bg">
+      <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/image/1.jpg?v={{Msg "seo" "version"}}' alt="">
+    </div>
+    <div class="bide-conts">
+      <div class="serves1">
+        <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/image/2.jpg?v={{Msg "seo" "version"}}' alt="">
+        <el-button @click="getModal" class="bi-btn" type="primary">请留下您的手机号,专业老师将尽快和您联系</el-button>
+      </div>
+      <div class="serves2">
+        <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/image/3.jpg?v={{Msg "seo" "version"}}' alt="">
+      </div>
+      <div class="serves3">
+        <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/image/4.jpg?v={{Msg "seo" "version"}}' alt="">
+        <el-button @click="getModal" class="bi-btn" type="primary">请留下您的手机号,专业老师将尽快和您联系</el-button>
+      </div>
+      <div class="serves4">
+        <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/image/5.jpg?v={{Msg "seo" "version"}}' alt="">
+      </div>
+      <div class="serves5">
+        <img src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/image/6.jpg?v={{Msg "seo" "version"}}' alt="">
+      </div>
+    </div>
+  </section>
+	{{include "/common/bidLeaveInfo.html"}}
+  {{include "/common/pcbottom.html"}}
+  {{include "/common/baiducc.html"}}
+  <script>
+    haslogin({{.T.logid}})
+    var vm = new Vue({
+      el: '.bide-container',
+      delimiters: ['{', '}'],
+      methods: {
+        getModal () {
+          if (!loginflag) {
+            openLoginDig()
+          } else {
+            bidLeaveInfo.isNeedSubmit({
+              source: 'bid_document_Introduction_page'
+            })
           }
         }
-    </script>
-    <script src='{{Msg "seo" "cdn"}}/frontRouter/pc/bidedoc/js/index-pc.js?v={{Msg "seo" "version"}}'></script>
+      }
+    })
+  </script>
+  <script>
+    function baiduEvent(name) {
+      try {
+        console.log(name, 'name')
+        _hmt.push(['_trackEvent', '超级订阅-pc', 'click', name]);
+      } catch (e) {
+        console.log('未初始化百度统计')
+      }
+    }
+  </script>
 </body>
 
 </html>

+ 575 - 0
src/web/templates/frontRouter/pc/enterpriseCertificatio/free/index.html

@@ -0,0 +1,575 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+  <title>企业认证服务-剑鱼标讯</title>
+  <meta content="IE=edge,Chrome=1" http-equiv="X-UA-Compatible" />
+  <meta name="Keywords" content="企业认证服务,招标商机,人工智能,招标大数据,企业情报,剑鱼标讯"/>
+  <meta name="Description" content="剑鱼企业认证服务依托剑鱼标讯海量招标信息,为你提供招标商机服务、人工智能预测新项目服务、中标企业预测服务、招标大数据服务和企业情报大数据服务,帮助你全面获取销售机会、辅助进行投标决策、全面分析洞察市场、拓展客户和代理渠道。" />
+  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
+  <meta name="renderer" content="webkit" >
+  <meta name="format-detection" content="telephone=no"/>
+  <meta name="enable-header" data-theme="dark" content="企业认证服务"/>
+  {{include "/common/pnc.html"}}
+  <link href='{{Msg "seo" "cdn"}}/css/reset.css?v={{Msg "seo" "version"}}' rel="stylesheet" type="text/css" />
+  <link href='{{Msg "seo" "cdn"}}/css/subscribe.css?v={{Msg "seo" "version"}}' rel="stylesheet" type="text/css" />
+  <link href='{{Msg "seo" "cdn"}}/pccss/reset_pc.css' rel="stylesheet" type="text/css" />
+  <link href='{{Msg "seo" "cdn"}}/css/pc.css?v={{Msg "seo" "version"}}' rel="stylesheet" />
+  <link href='{{Msg "seo" "cdn"}}/pccss/public-nav-1200.css?v={{Msg "seo" "version"}}' rel="stylesheet"
+        type="text/css" />
+  <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"}}/common-module/pc-dialog/css/leave-partner-dialog.css?v={{Msg "seo" "version"}}' rel="stylesheet">
+  <link href='{{Msg "seo" "cdn"}}/enterpriseCertificatio/css/enterpriseCertificatio.css?v={{Msg "seo" "version"}}' rel="stylesheet"
+        type="text/css" />
+  <style>
+  </style>
+</head>
+<body>
+{{include "/common/pchead.html"}}
+<div id="vue-collect-partner-info"></div>
+<!-- <div id="information_dialog"></div> -->
+<div class="enterpriseCertificatio">
+    <div class="head CfadeInUp">
+      <div class="box">
+        <div class="left">
+          <div class="clearfix">
+            <div class="title">
+              <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/ic2.png?v={{Msg "seo" "version"}}" alt="">
+              <p class="text">认监委官网可查</p>
+            </div>
+            <div class="title ml-30">
+              <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/ic2.png?v={{Msg "seo" "version"}}" alt="">
+              <p class="text">认证品类齐全</p>
+            </div>
+            <div class="title ml-30">
+              <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/ic2.png?v={{Msg "seo" "version"}}" alt="">
+              <p class="text">量身定制方案</p>
+            </div>
+          </div>
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/text1.png?v={{Msg "seo" "version"}}" alt="" class="img_tit">
+          <p class="desc">招投标必备 · 品牌提升 · 奖励补贴 · 吸引投资</p>
+          <p class="desc2">ISO体系认证 丨 信用评定 丨 服务体系认证 丨 其他认证证书</p>
+        </div>
+        <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/big_ic1.png?v={{Msg "seo" "version"}}" alt="" class="right">
+      </div>
+    </div>
+    <div class="serve_box CfadeInUp">
+      <div class="serve_content clearfix">
+         <div class="item">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/ci1.png?v={{Msg "seo" "version"}}" alt="" class="ic">
+          <p class="title">专业权威</p>
+          <p class="desc">中国国家认监委公示,官方部门全程备案,全国认可,无潜在风险,已服务全国近万家企业!</p>
+         </div>
+         <div class="line"></div>
+         <div class="item">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/ic3.png?v={{Msg "seo" "version"}}" alt="" class="ic">
+          <p class="title">高质高效</p>
+          <p class="desc">认证项目涵盖众多管理体系,备案资质远超行业平均水平,全程一对一服务,快速审核下证!</p>
+         </div>
+         <div class="line"></div>
+         <div class="item">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/ic4.png?v={{Msg "seo" "version"}}" alt="" class="ic">
+          <p class="title">公开透明</p>
+          <p class="desc">全国接单,收费标准统一、公开透明,杜绝隐形收费!</p>
+         </div>
+         <div class="line"></div>
+         <div class="item">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/ic5.png?v={{Msg "seo" "version"}}" alt="" class="ic">
+          <p class="title">售后保障</p>
+          <p class="desc">信誉保障售后,企业配合100%下证,不成功全额退!成功率有保障!</p>
+         </div>
+      </div>
+    </div>
+    <div class="middle_btn mt-56" onclick="onlinekf()">立即咨询</div>
+    <div class="system_certificatio CfadeInUp">
+      <h1>体系认证</h1>
+      <p class="desc">品牌提升,投标加分,提升企业竞争力</p>
+      <div class="content clearfix">
+        <div class="item">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/0430.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="title">ISO9001、GB/T50430</p>
+          <p class="desc">质量管理体系认证</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-ISO9001、GB/T50430')">了解详情</div>
+        </div>
+        <div class="item ml-100">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/4001.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="title">ISO14001</p>
+          <p class="desc">环境管理体系认证</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-ISO14001')">了解详情</div>
+        </div>
+        <div class="item ml-100">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/5001.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="title">ISO45001</p>
+          <p class="desc">职业健康安全管理体系认证</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-ISO45001')">了解详情</div>
+        </div>
+        <div class="item ml-100">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/haccp.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="title">HACCP</p>
+          <p class="desc">危害分析和关键控制点</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-HACCP')">了解详情</div>
+        </div>
+        <div class="item mt-83">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/2000.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="title">ISO22000</p>
+          <p class="desc">食品安全管理体系认证</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-ISO22000')">了解详情</div>
+        </div>
+        <div class="item ml-100 mt-83">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/0000.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="title">ISO20000</p>
+          <p class="desc">信息技术服务管理体系认证</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-ISO20000')">了解详情</div>
+        </div>
+        <div class="item ml-100 mt-83">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/7000.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="title">ISO27000</p>
+          <p class="desc">信息安全管理体系认证</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-ISO27000')">了解详情</div>
+        </div>
+        <div class="item ml-100 mt-83">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/more.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="title">更多体系认证服务</p>
+          <p class="desc">更多认证点击了解详情</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-moreService')">了解详情</div>
+        </div>
+      </div>
+    </div>
+    <div class="credit_authentication CfadeInUp">
+      <h1>信用认证</h1>
+      <p class="desc">企业信用名片,招投标必备</p>
+      <div class="content clearfix">
+        <div class="item">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/le.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">企业信用等级证书</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-EnterpriseCreditRatingCertificate')">了解详情</div>
+        </div>
+        <div class="item ml-48">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/impor.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">重合同守信用企业</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-TrustworthyEnterprise')">了解详情</div>
+        </div>
+        <div class="item ml-48">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/cx.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">质量服务诚信单位</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-qualityserviceCompany')">了解详情</div>
+        </div>
+        <div class="item mt-48">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/zl.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">重质量守信用单位 </p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-qualityCompany')">了解详情</div>
+        </div>
+        <div class="item mt-48 ml-48">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/xy.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">重服务守信用单位</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-serviceCompany')">了解详情</div>
+        </div>
+        <div class="item mt-48 ml-48">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/jy.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">诚信经营示范单位</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-HonestCompany')">了解详情</div>
+        </div>
+        <div class="item mt-48">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/zx.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">资信等级</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-CreditRating')">了解详情</div>
+        </div>
+        <div class="item mt-48 ml-48">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/qyj.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">诚信企业家</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-HonestEntrepreneur')">了解详情</div>
+        </div>
+        <div class="item mt-48 ml-48">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/gys.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">诚信供应商</p>
+          <div class="middle_btn mt-16" onclick="understand('certificateServices-pc-landingPage-HonestSupplier')">了解详情</div>
+        </div>
+      </div>
+    </div>
+    <div class="service_system CfadeInUp">
+      <h1>服务体系认证</h1>
+      <p class="desc">实力认证,竞争有优势</p>
+      <div class="service_system_box">
+        <div class="item_box clearfix ml-38">
+          <div class="item">五星售后服务认证</div>
+          <div class="item ml-28">十星售后服务成熟度认证</div>
+          <div class="item ml-28">五星品牌认证</div>
+          <div class="item ml-28">商品经营服务</div>
+        </div>
+        <div class="item_box clearfix">
+          <div class="item">批发零售服务</div>
+          <div class="item ml-28">生活垃圾分类十星</div>
+          <div class="item ml-28">商业信誉等级</div>
+          <div class="item ml-28">合格供应商信用等级</div>
+        </div>
+        <div class="item_box clearfix ml-76">
+          <div class="item">保安服务认证</div>
+          <div class="item ml-28">餐饮服务认证</div>
+          <div class="item ml-28">餐饮服务成熟度认证</div>
+          <div class="item ml-28">家具定制服务</div>
+        </div>
+        <div class="item_box clearfix ml-38">
+          <div class="item">绿色家具定制服务</div>
+          <div class="item ml-28">餐饮配送</div>
+          <div class="item ml-28">餐饮企业现场管理评价</div>
+          <div class="item ml-28">安全生产标准化</div>
+        </div>
+        <div class="item_box clearfix">
+          <div class="item">顾客满意度</div>
+          <div class="item ml-28">合同能源管理服务认证</div>
+          <div class="item ml-28">清洁服务认证</div>
+          <div class="item ml-28">生鲜农产品配送服务认证</div>
+        </div>
+        <div class="item_box clearfix ml-76">
+          <div class="item">养老服务认证</div>
+          <div class="item ml-28">生鲜农产品供应商星级认证</div>
+          <div class="item ml-28">学校热水系统服务</div>
+          <div class="item ml-28">设备维护保养服务认证</div>
+        </div>
+        <div class="item_box clearfix ml-38">
+          <div class="item">建筑工程服务认证</div>
+          <div class="item ml-28">节能技术服务认证</div>
+          <div class="item ml-28">物业服务认证</div>
+          <div class="item ml-28">履约能力评价服务认证</div>
+        </div>
+      </div>
+      <div class="middle_btn" onclick="understand('certificateServices-pc-landingPage-j_sysauth_buttn')">了解详情</div>
+    </div>
+    <div class="awarded_marks CfadeInUp">
+      <h1>招投标文件中加分项目</h1>
+      <div class="content clearfix">
+        <div class="left">
+          <div class="header">
+            <p>企业荣誉资质证书</p>
+            <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/head_ic.png?v={{Msg "seo" "version"}}" alt="">
+          </div>
+          <div class="awarded_marks_box">
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                企业信用等级证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                重合同守信用单位等级证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                诚信供应商单位等级证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                诚信单位等级证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                质量服务诚信单位等级证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                诚信经营示范单位等级证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                诚信企业家 .***
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                重服务守信用单位等级证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                诚信经理人 .***
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <p class="warm">注:投标文件中以上需提供相关证书复印件,并提供 原件备查,否则不得分。</p>
+          </div>
+        </div>
+        <div class="right">
+          <div class="header">
+            <p>管理体系认证</p>
+            <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/head_ic.png?v={{Msg "seo" "version"}}" alt="">
+          </div>
+          <div class="awarded_marks_box">
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                ISO9001质量管理体系认证证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                ISO14001环境管理体系认证证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                ISO45001职业健康安全管理体系认证证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                ISO20000信息技术服务管理体系认证证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                ISO27001信息安全管理体系认证证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <div class="item clearfix">
+              <div class="l_text">
+                <div class="dian"></div>
+                GB/T27922-2011商品售后服务认证证书
+              </div>
+              <p class="r_text">(1-3分)</p>
+            </div>
+            <p class="warm">注:投标文件中以上需提供相关证书复印件,并提供 原件备查,否则不得分。</p>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="service_process CfadeInUp">
+      <h1>服务流程</h1>
+      <p class="desc">仅需五步,高效拿证</p>
+      <div class="content clearfix">
+        <div class="item">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/one.png?v={{Msg "seo" "version"}}" alt="">
+          <p>咨询分析</p>
+        </div>
+        <div class="line"></div>
+        <div class="item">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/two.png?v={{Msg "seo" "version"}}" alt="">
+          <p>培训辅导</p>
+        </div>
+        <div class="line"></div>
+        <div class="item">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/three.png?v={{Msg "seo" "version"}}" alt="">
+          <p>文件撰写</p>
+        </div>
+        <div class="line"></div>
+        <div class="item">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/four.png?v={{Msg "seo" "version"}}" alt="">
+          <p>审核认证材料</p>
+        </div>
+        <div class="line"></div>
+        <div class="item">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/five.png?v={{Msg "seo" "version"}}" alt="">
+          <p>证书下发</p>
+        </div>
+      </div>
+      <div class="middle_btn" onclick="understand('certificateServices-pc-landingPage-ServiceProcess')">了解详情</div>
+    </div>
+    <div class="cooperation CfadeInUp">
+      <h1>合作入驻</h1>
+      <p class="desc">大平台,新机遇</p>
+      <div class="content clearfix">
+        <div class="item">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/one1.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">提交服务申请</p>
+        </div>
+        <div class="line"></div>
+        <div class="item ml_11">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/two2.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">平台审核</p>
+        </div>
+        <div class="line"></div>
+        <div class="item ml_11">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/three3.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">签订合作协议</p>
+        </div>
+        <div class="line"></div>
+        <div class="item ml_11">
+          <img src="{{Msg "seo" "cdn"}}/enterpriseCertificatio/img/four4.png?v={{Msg "seo" "version"}}" alt="">
+          <p class="text">业务对接</p>
+        </div>
+      </div>
+      <div class="foot_btn" onclick="cooperativePartner('certificateServices-pc-landingPage-jy_cooperprocess')">立即成为合作商</div>
+    </div>
+    <div class="phone_wchant_box">
+      <div class="btn_box">
+        <div class="phone">
+          <div class="phone_box"></div>
+        </div>
+        <div class="wchat">
+          <div class="wchat_box"></div>
+        </div>
+      </div>
+    </div>
+</div>
+<script src='{{Msg "seo" "cdn"}}/js/public-nav.js?v={{Msg "seo" "version"}}' type="text/javascript"></script>
+<script src='{{Msg "seo" "cdn"}}/js/jquery.cookie.js?v={{Msg "seo" "version"}}' type="text/javascript"></script>
+<script src="//cdn-common.jianyu360.com/cdn/lib/countup/2.0.8/dist/countUp.js"></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/selector/js/static-data.js?v={{Msg "seo" "version"}}'></script>
+<script src="//cdn-common.jianyu360.com/cdn/lib/vue/2.6.14/vue.min.js"></script>
+<script src="//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.7/lib/index.js"></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/pc-dialog/js/leave-info-dialog.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/js/pc-collect-partner-info.js?v={{Msg "seo" "version"}}'></script>
+<script>
+  // setNavTheme(firstTheme = 'light')
+  haslogin({{.T.logid}});
+  $(function () {
+    (function animateUp () {
+      var obj = $('.CfadeInUp');
+      var objH = $('.CfadeInUp').outerHeight();
+      var num = [];
+      var wH = $(window).height();
+      var wScrollTop = $(window).scrollTop();
+
+      // 获取页面所有obj的top位置,存入数组
+      for (var i = 0; i < obj.length; i++) {
+        num.push(obj.eq(i).offset().top + (objH / 3));
+      }
+      // console.log(num)
+      // 循环数组,判断obj的位置是否在可视区中
+      function judgeTop () {
+        for (var j = 0; j < num.length; j++) {
+          if (num[j] >= wScrollTop && num[j] < (wScrollTop + wH - 50)) {
+            // console.log(j)
+            if (j == 0) {
+              obj.eq(j).css({
+                'animation-name': 'CfadeInUp',
+                'animation-duration': 0.8 + 's',
+                'opacity': '1'
+              });
+            } else {
+              obj.eq(j).css({
+                'animation-name': 'CfadeInUp',
+                'animation-duration': 1.4 + 's',
+                'opacity': '1'
+              });
+            }
+          }
+        }
+      };
+      // 页面初始化时先调用一次
+      judgeTop();
+      docScroll();
+      // 触发滚动事件调用判断函数
+      $(window).scroll(function (event) {
+        wH = $(window).height();
+        wScrollTop = $(window).scrollTop();
+        judgeTop();
+        docScroll();
+      });
+      
+    })();
+    
+    $.ajax({
+                type:'GET',
+                url:'/commercial/customer/info',
+                data:{
+                  module:'tripartiteAuth'
+                },
+                success:function(res) {
+                  $('.phone_box').html(res.data.phone)
+                  $('.wchat_box').html('<img src='+res.data.wxCodeImg+' alt="">')
+                  
+                
+                },
+                error:function(err) {
+                    console.log(err)
+                }
+            })
+     
+     function docScroll(e){
+      var $href = window.location.href;
+      var opa = $(document).scrollTop() / 120
+      var curTheme =$("#public-nav").attr('data-theme')
+      if(opa >= 1){
+        $('.loginBtn').removeClass('loginBtnnew')
+      
+      }else {
+        if(firstTheme === 'dark'){
+          setNavTheme('dark')
+          $('.loginBtn').addClass('loginBtnnew')
+        }
+      }
+
+    }
+    $("#public-nav .iner .jynav li").bind("mouseenter",function(){
+      $('.loginBtn').removeClass('loginBtnnew')
+   
+  })
+  // $("#public-nav .iner .jynav li").bind("mouseleave",function(){
+  //   $('.loginBtn').addClass('loginBtnnew')
+
+  // })
+  // $('.loginBtn').bind("mouseenter",function(){
+  //     $('.loginBtn').removeClass('loginBtnnew')
+   
+  // })
+  // $('.loginBtn').bind("mouseleave",function(){
+  //   $('.loginBtn').addClass('loginBtnnew')
+
+  // })
+    function getUrlKey(name) {
+      return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null
+    }
+  }) 
+  function cooperativePartner(source) { //成为合作商
+            checkLogin()
+            vmPartner.isNeedSubmit(source, function () {
+              vmPartner.showSuccess = true
+            })
+        }
+  function understand (source){ //了解详情
+            checkLogin()
+            bidLeaveInfo.isNeedSubmit({
+              source: source
+            })
+
+  }
+
+  function checkLogin () {
+            var moduleOpen = $('body').hasClass('modal-open')
+            if (moduleOpen) return
+            if (!loginflag) {
+                $("#bidLogin").modal("show");
+            }
+        } 
+  function onlinekf () {
+      $('.help-slide-zx.open-customer').trigger('click')
+    } 
+</script>
+{{include "/common/bidLeaveInfo.html"}}
+<!--S-百度统计-->
+{{include "/common/pcbottom.html"}}
+{{include "/common/baiducc.html"}}
+<!--E-百度统计-->
+</body>
+</html>

+ 21 - 9
src/web/templates/frontRouter/wx/bigmember/free/perfect_info.html

@@ -740,10 +740,6 @@
         }
 
         switch (source) {
-          case 'bid_document_Introduction_page': {
-            hideLabel()
-            break
-          }
           case 'article_collection': {
             hideLabel()
             break
@@ -760,6 +756,13 @@
             hideLabel(['area', 'class',  'workScope', 'partnerNeeds', 'agree'])
             break
           }
+          default: {
+            // 标书制作或者三方认证(case语句满足不了条件,放default中做更多判断)
+            if (source === 'bid_document_Introduction_page' || source.indexOf('certificateServices') > -1) {
+              hideLabel(['email', 'class', 'position', 'workScope', 'partnerNeeds', 'agree'])
+              break
+            }
+          }
         }
 
 
@@ -933,7 +936,14 @@
           }
           if (r && r.error_msg === '' && r.data) {
             this.setEchoInfo(r.data)
-            var result = checkRequiredKeys(['name', 'phone', 'company','companyType', 'position', 'branch'], r.data)
+            var requiredKeys = []
+            if (this.ajaxParams.source === 'bid_document_Introduction_page' || this.ajaxParams.source.indexOf('certificateServices') > -1) {
+              // 标书制作或者三方认证(case语句满足不了条件,放default中做更多判断)
+              requiredKeys = ['name', 'phone', 'company','companyType']
+            } else {
+              requiredKeys = ['name', 'phone', 'company','companyType', 'position', 'branch']
+            }
+            var result = checkRequiredKeys(requiredKeys, r.data)
             if (result) {
               var skipAuto = ['jyarticle_see3', 'article_collection', 'article_original', 'jypush_see10']
               var _this = this
@@ -1287,10 +1297,6 @@
                   _this.showMessage('您的申请已提交,我们会尽快联系您并预约演示时间,请耐心等待~您将获得免费体验大会员全部功能!')
                   break
                 }
-                case 'bid_document_Introduction_page': {
-                  _this.bidShow = true
-                  break
-                }
                 case 'doubleEleven': {
                   _this.$toast({
                     message: '提交成功',
@@ -1365,6 +1371,12 @@
                   break
                 }
                 default: {
+                  // 标书制作或者三方认证(case语句满足不了条件,放default中做更多判断)
+                  if (source === 'bid_document_Introduction_page' || source.indexOf('certificateServices') > -1) {
+                    _this.bidShow = true
+                    break
+                  }
+
                   var message = ''
                   if (source) {
                     message = '您的申请已提交,我们会尽快联系您并预约演示时间,请耐心等待~您将获得免费体验大会员全部功能!'

+ 80 - 13
src/web/templates/pc/biddetail_rec.html

@@ -944,16 +944,33 @@
 					</table>
 				</div>
 				<div class="explain" style="display:none;">*以上摘要信息由剑鱼标讯智能提取,仅供参考。如有误差,请联系客服进行处理。</div>
-				{{if .T.isMember}}
-				<div class="lead-btn" style="color:#2cb7ca;margin:15px 0;display:none;"><div class="adv_tosieve"></div><div class="join" onclick="adv_statistics(this)" ><a style="color:#fff;text-decoration:none" class="adv_tosieve-btn"></a></div></div>
-				{{end}}
-				<!-- 非大会员用户引流语 -->
-				<div class="clearfix bigmember-slogan">
-					<span class="fl slogan-text"></span>
-					<span class="fr">
-          <span class="slogan-btn free-btn">免费体验></span>
-          <span class="slogan-btn more-btn">了解更多></span>
-        </span>
+				<div class="clearfix center-ad-container center-card-container" style="display:none;">
+					<!-- 大会员用户引流语 -->
+					{{if .T.isMember}}
+					<div class="center-card-item lead-btn" style="display: none;">
+						<div class="adv_tosieve cci-title"></div>
+						<div class="join" onclick="adv_statistics(this)">
+							<a class="adv_tosieve-btn cci-text cci-light suffix-right"></a>
+						</div>
+					</div>
+					{{else}}
+					<!-- 非大会员用户引流语 -->
+					<div class="center-card-item not-bigmember-slogan" style="display: none">
+						<div class="cci-title slogan-text"></div>
+						<div class="cci-content">
+							<span class="cci-text cci-light suffix-right free-btn">免费体验</span>
+							<span class="cci-text cci-dark suffix-right more-btn">了解更多</span>
+						</div>
+					</div>
+					{{end}}
+					<!-- 不判断身份都显示 -->
+					<div class="center-card-item third-party-verification">
+						<div class="cci-title">招投标必备,剑鱼认证服务</div>
+						<div class="cci-content">
+							<a class="cci-text cci-light suffix-right third-party-apply-for-button">申请认证</a>
+							<a class="cci-text cci-dark suffix-right learn-more" href="/swordfish/frontPage/enterpriseCertificatio/free/index" target="_blank">了解更多</a>
+						</div>
+					</div>
 				</div>
 				<div id="tab1">
 					<div class="com-detail">
@@ -1006,6 +1023,9 @@
         </div>
 				<div class="download-list" style="margin-top: 20px">
 				</div>
+      </div>
+      <div id="third-party-verify-attention" class="third-party-verify-attention" style="display:none;">
+        <span class="t-p-v-a-text">*温馨提示:系统识别到正文中对投标方有资质要求~</span>
       </div>
 		<center class="reward text-align">
 			<br><div>打赏</div>
@@ -1261,7 +1281,52 @@
 			</div>
 		</div>
 	</div>
-
+  <div class="third-party-popover-content-template" style="display: none">
+    <div class="third-party popover-content-header">
+      <div class="p-c-h-title">剑鱼认证服务</div>
+      <div class="p-c-h-content">
+        <div class="p-c-h-c-list">
+          <div class="p-c-h-c-item"><span class="icon-verify-checked"></span>&nbsp;&nbsp;认监委官网可查</div>
+          <div class="p-c-h-c-item"><span class="icon-verify-checked"></span>&nbsp;&nbsp;认证品类齐全</div>
+          <div class="p-c-h-c-item"><span class="icon-verify-checked"></span>&nbsp;&nbsp;量身定制方案</div>
+        </div>
+        <div>招投标必备 · 品牌提升 · 奖励补贴 · 吸引投资</div>
+        <div>ISO体系认证丨信用评定丨服务体系认证丨其他认证证书</div>
+      </div>
+    </div>
+    <div class="third-party popover-content-main bidcontent">
+      <div class="bid_tel">
+        <img src="/images/tel.png" alt="" style="width: 20px; height: 20px;">
+        <span class="bid_phonetext">咨询 $tel 了解更多</span>
+      </div>
+      <div class="p-c-m-content">
+        <div class="p-c-m-content-l bid_classfun">
+          <div class="classfun_list">
+            <img src="/images/blue-duihao.png" alt="" style="width: 20px; height: 20px;">
+            <span class="classs_text">体系认证:品牌提升,投标加分,提升企业竞争力</span>
+          </div>
+          <div class="classfun_list">
+            <img src="/images/blue-duihao.png" alt="" style="width: 20px; height: 20px;">
+            <span class="classs_text">信用认证:企业信用名片,招投标必备</span>
+          </div>
+          <div class="classfun_list">
+            <img src="/images/blue-duihao.png" alt="" style="width: 20px; height: 20px;">
+            <span class="classs_text">服务体系认证:实力认证,竞争有优势</span>
+          </div>
+        </div>
+        <div class="p-c-m-content-r">
+          <div class="t-p-verify-customer-qr" title="客服企业微信二维码">
+            <img alt="客服企业微信二维码" />
+          </div>
+          <div class="p-c-m-c-r-text">添加客服微信<br />备注认证服务</div>
+        </div>
+      </div>
+    </div>
+    <div class="third-party popover-content-footer bidfoot">
+      <a class="bid_button_cancel bid_btn" href="/swordfish/frontPage/enterpriseCertificatio/free/index" target="_blank">了解详情</a>
+      <div class="bid_button_confirm bid_btn third-party-apply-for-button">申请认证</div>
+    </div>
+  </div>
 	{{include "/common/pcbottom.html"}}
 	<!--支付二维码-->
 	<div class="payQRcode">
@@ -1276,11 +1341,12 @@
 var ucbs_source="pc_rec",ucbsId="{{.T.obj.ucbsId}}";
 </script>
 <script type="text/javascript" src="{{Msg "seo" "cdn"}}/js/ucbs.js?v={{Msg "seo" "version"}}"></script>-->
+  <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
+	<script src=//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.7/lib/index.js></script>
+  {{include "/common/bidLeaveInfo.html"}}
 	<script src='{{Msg "seo" "cdn"}}/common-module/selector/js/china_area.js?v={{Msg "seo" "version"}}'></script>
 	<script src='{{Msg "seo" "cdn"}}/common-module/selector/js/static-data.js?v={{Msg "seo" "version"}}'></script>
 	<script src='{{Msg "seo" "cdn"}}/common-module/selector/js/powerMap.js?v={{Msg "seo" "version"}}'></script>
-	<script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
-	<script src=//cdn-common.jianyu360.com/cdn/lib/element-ui/2.15.7/lib/index.js></script>
 	<script src="{{Msg "seo" "cdn"}}/js/pc-collect-bid-info.js?v={{Msg "seo" "version"}}"></script>
 	<script src="{{Msg "seo" "cdn"}}/js/pc-collect-user-info.js?v={{Msg "seo" "version"}}"></script>
 	<script type="text/javascript" src="{{Msg "seo" "cdn"}}/js/pc_entniche_tags.js?v={{Msg "seo" "version"}}"></script>
@@ -1438,6 +1504,7 @@ var ucbs_source="pc_rec",ucbsId="{{.T.obj.ucbsId}}";
 	<!-- 多条广告如下脚本只需引入一次 -->
 	<script type="text/javascript" src="//cpro.baidustatic.com/cpro/ui/cm.js" async="async" defer="defer" >
 	</script>
+  <script src='{{Msg "seo" "cdn"}}/common-module/mainSearch/js/third-party-verify.js?v={{Msg "seo" "version"}}'></script>
   <script src='{{Msg "seo" "cdn"}}/public-pc/js/article-content.js?v={{Msg "seo" "version"}}'></script>
   <script src='{{Msg "seo" "cdn"}}/common-module/mainSearch/js/advanced-project-table.js?v={{Msg "seo" "version"}}'></script>
 <!--百度统计start-->

+ 20 - 4
src/web/templates/weixin/wxinfocontent_rec.html

@@ -8,6 +8,7 @@
 <link href="{{Msg "seo" "cdn"}}/wxswordfish/style.css?v={{Msg "seo" "version"}}" rel="stylesheet">
 <link rel="stylesheet" href="//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/index.css">
 <link href='{{Msg "seo" "cdn"}}/common-module/nps-common/css/nps.css?v={{Msg "seo" "version"}}' rel="stylesheet">
+<link href='{{Msg "seo" "cdn"}}/common-module/mainSearch/css/third-party-verify-mobile.css?v={{Msg "seo" "version"}}' rel="stylesheet">
 <script src="https://cdn-common.jianyu360.com/cdn/lib/jquery/3.6.0/jquery.min.js"></script>
 {{include "/common/weixin.html"}}
 <script src="{{Msg "seo" "cdn"}}/js/n_rem.js"></script>
@@ -1158,6 +1159,14 @@ body .loading_ p span {
 				</a>
 				<a class="iconarrow"></a>
 			</div>
+			<div class="third-party-verify content-tip-card third-party-popover" style="display: none">
+				<span class="content-tip-card-left icon-third-party-verify-logo"></span>
+				<div class="content-tip-card-center">
+					<span class="c-t-c-c-text">招投标必备</span>&nbsp;&nbsp;
+					<span class="c-t-c-c-text">剑鱼认证服务</span>
+				</div>
+				<a class="content-tip-card-right iconarrow"></a>
+			</div>
 			<!--s 大会员引流 s-->
 			<div class="bigvip_drain lead_drain" data-cl-event="c_wx_konwmore_buttonclick" style="background: #f5f6f7;">
 				<div class="bigvip_text">
@@ -1227,6 +1236,9 @@ body .loading_ p span {
 			{{.T.rewardText}}
 			<button type="button" onclick="reward()" class="btn">打赏</button>
 		</center>
+		<div id="third-party-verify-attention" class="third-party-verify-attention" style="display:none;">
+			<span class="t-p-v-a-text">*温馨提示:系统识别到正文中对投标方有资质要求~</span>
+		</div>
 		<div class="abs">
 			<div class="original_name"  onclick="adv_statistics(this)" data-cl-event="c_wx_original_buttonclick"><a class="original hidden">阅读原文</a></div>
 			{{if .T.obj.hasSession}}
@@ -1336,9 +1348,12 @@ body .loading_ p span {
 <div class="loading_" id="loading" style="display: none;">
     <p><span></span></p>
 </div>
+<!-- 三方认证弹窗 -->
+<div id="third-party-popover-content"></div>
 <script src=//cdn-common.jianyu360.com/cdn/lib/vue/2.6.11/vue.min.js></script>
 <script src=//cdn-common.jianyu360.com/cdn/lib/vant/2.12.24/lib/vant.min.js></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/keep-tags/keep-tags-template.js?v={{Msg "seo" "version"}}'></script>
+<script src='{{Msg "seo" "cdn"}}/common-module/mainSearch/js/third-party-verify-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/mainSearch/js/advanced-project-table-mobile.js?v={{Msg "seo" "version"}}'></script>
 <script src='{{Msg "seo" "cdn"}}/common-module/nps-common/js/nps.js?v={{Msg "seo" "version"}}'></script>
 <script>
@@ -1791,6 +1806,7 @@ function checkShowDialog () {
 		$(".reward").hide();
 	} else {
 		$(".prebuilt").css('height', 'unset')
+		$('.third-party-verify').show()
 	}
 }
 
@@ -2699,10 +2715,6 @@ $(function(){
 		EasyAlert.show("剑鱼标讯感谢您的支持",{},3000);
 		sessionStorage.removeItem("rewardStatus");
 	}
-
-  // if({{.T.obj.subtype}}=="拟建"){
-  //     $(".lead-btn-nj").show();
-  // }
 	{{if .T.obj.projectinfo.attachments}}
 	var attachments = {{.T.obj.projectinfo.attachments}}
 	var j = 0;
@@ -2803,6 +2815,9 @@ $(function(){
 	content = content.replace(/[^\{\u4e00-\u9fa5]{1,90}{[^\}\u4e00-\u9fa5]+?}/g,"");
 
 	originalCon = content;
+	if (content) {
+		content = thirdPartyVerify.replaceKeys(content)
+	}
 	if(lsgim!="T"&&fwtsname != "" && content.indexOf(fwtsname) > -1){
 		content = content.replace(fwtsname,"<span id='fphl' class='fphl' dataCode='"+fwtscode+"'>"+fwtsname+"</span>");
 	}
@@ -2887,6 +2902,7 @@ $(function(){
 		}
 	}
 	$("#h_content").html(content);
+	thirdPartyVerify.checkHighlightInsert()
 	$("#title").html(titleCopy);
 	//
 	if(lsgim=="T"){

Vissa filer visades inte eftersom för många filer har ändrats