فهرست منبع

feat:三端涉及seo行业分析简报留资调整

yangfeng 1 سال پیش
والد
کامیت
cf13940824

+ 18 - 3
src/jfw/modules/app/src/web/templates/frontRouter/bigmember/free/perfect_info.html

@@ -95,7 +95,7 @@
               <van-field @input="entOnChange('input')" @blur="entOnChange('blur')" @focus="infoCheckMap.company = ''"
                 :error-message="infoCheckMap.company" required v-model.trim="infoMap.company" label="公司名称"
                 placeholder="请输入准确的公司名称"></van-field>
-              <van-field required v-model="infoMap.companyType" label="公司类型"
+              <van-field v-if="showCompanyType" required v-model="infoMap.companyType" label="公司类型"
                 @click="openPop('公司类型')" readonly is-link placeholder="请选择公司类型"></van-field>
               <van-field v-if="moduleShow.position" :class="{'hide-border': infoMap.position === '其他'}" required
                 v-model="infoMap.position" label="职位" @click="openPop('职位')" readonly is-link placeholder="请选择职位">
@@ -112,6 +112,13 @@
                 type="textarea" placeholder="请输入业务范围,让合作伙伴充分了解公司业务内容"></van-field>
             </div>
           </div>
+          <div class="form-card-group" v-if="moduleShow.industry">
+            <div class="form-title">定制专属分析报告</div>
+            <div class="form-content-card">
+              <van-field required v-model="infoMap.industry" label="您的行业"
+                @click="openPop('您的行业')" readonly is-link placeholder="请选择您的行业"></van-field>
+            </div>
+          </div>
           <div class="form-card-group" v-if="moduleShow.partnerNeeds">
             <div class="form-title">合作需求</div>
             <div class="form-content-card">
@@ -121,7 +128,7 @@
           </div>
           <div class="warm-prompt">
             <span class="icon-warning"></span>
-            <span class="warm-text">温馨提示:请提供准确的信息,我们将为您推荐更准确、更个性化的商机和服务</span>
+            <span class="warm-text">@@warmText@@</span>
           </div>
           <div class="form-tick-group" @click="isRead = !isRead" v-if="moduleShow.agree">
             <div class="more-icon-box">
@@ -176,13 +183,21 @@
               <div class="condition-select-group" :class="{more: isMoreSelect}">
                 <div class="condition-select-item" @click="onSelectItem(item, popInfo.label)"
                   v-for="(item,i) in conditionMap[popInfo.label]" :class="{checked: item.checked}">
-                  <div>@@item.title@@</div>
+                  <div v-if="item.title">@@item.title@@</div>
                   <i v-if="!isMoreSelect" class="j-icon base-icon icon-tick"></i>
                   <div class="more-icon-box" v-else>
                     <i class="j-icon base-icon icon-tick-circle"></i>
                     <i class="j-icon base-icon icon-tick-circle-fill"></i>
                   </div>
                 </div>
+                <!-- 其它(带输入框的选项) -->
+                <div v-if="otherInfo[popInfo.label]" class="condition-select-item custom-select-item" :class="{checked: otherInfo[popInfo.label].checked}">
+                  <van-field v-model="otherInfo[popInfo.label].title" @input="onOtherPopInfoInput" :placeholder="otherInfo[popInfo.label].placeholder"></van-field>
+                  <div class="more-icon-box" @click="onSelectOtherItem(otherInfo[popInfo.label], popInfo.label)">
+                    <i class="j-icon base-icon icon-tick-circle"></i>
+                    <i class="j-icon base-icon icon-tick-circle-fill"></i>
+                  </div>
+                </div>
               </div>
             </div>
             <div class="j-footer">

+ 39 - 3
src/web/staticres/common-module/pc-dialog/css/collect-user-info.css

@@ -59,7 +59,6 @@
  background: rgba(255,159,64,0.0800);
  border-radius: 4px 4px 4px 4px;
  opacity: 1;
- margin-bottom: 10px;
  text-align: center;  
  display: flex;
  justify-content: center;
@@ -125,7 +124,7 @@
   color: #2CB7CA;
 }
 #collectUserInfoDialog .form-main{
-  margin: 10px 0 14px;
+  margin: 4px 0 0;
 }
 #collectUserInfoDialog .short-control{
   width: calc(50% - 16px);
@@ -184,7 +183,7 @@
   color: #686868;
 }
 #collectUserInfoDialog .dialog-footer{
-  padding-top: 20px;
+  padding-top: 16px;
   text-align: center;
 }
 #collectUserInfoDialog .cancel-btn{
@@ -388,4 +387,41 @@
 }
 .bid-dialog .el-form-item{
   margin-bottom: 14px;
+}
+
+/* seo项目下dialog样式 */
+#collectUserInfoDialog .seo-dialog-container{
+  background: url(/common-module/pc-dialog/image/seo-dialog-header.png) no-repeat top center #fff;
+  background-size: 100% 80px;
+}
+#collectUserInfoDialog .seo-dialog-container .dialog-header{
+  font-size: 26px;
+  line-height: 36px;
+  background-image: linear-gradient(to bottom, #0ABFD7, #0B5BD3);
+  background-clip: text;
+  -webkit-background-clip: text;
+  -webkit-text-fill-color: transparent;
+  font-weight: 700;
+  margin: 0;
+}
+#collectUserInfoDialog .seo-dialog-container .dialog-header.dialog-header-subtitle{
+  color: #1d1d1d;
+  font-size: 16px;
+  line-height: 24px;
+  font-weight: normal;
+  background-image: none;
+  -webkit-text-fill-color: unset;
+}
+#collectUserInfoDialog .seo-dialog-container .industry-type{
+  display: flex;
+}
+#collectUserInfoDialog .seo-dialog-container .industry-type .el-form-item__label{
+  flex-shrink: 0;
+}
+#collectUserInfoDialog .seo-dialog-container .industry-input{
+  margin-left: 8px;
+}
+#collectUserInfoDialog .seo-dialog-container .industry-type .el-form-item__error{
+  left: 54%;
+  top: 65%;
 }

BIN
src/web/staticres/common-module/pc-dialog/image/seo-dialog-header.png


+ 125 - 66
src/web/staticres/common-module/pc-dialog/js/pc-collect-user-info.js

@@ -6,7 +6,7 @@ var temp = `
   <div>
     <div class="user-data-dialog" id="collectUserInfoDialog" v-if="showForm">
       <div class="mask"></div>
-      <div class="dialog-container">
+      <div class="dialog-container seo-dialog-container">
         <div class="dialog-header fs18" v-if="dialogTitleTop" v-text="dialogTitleTop"></div>
         <div class="dialog-header dialog-header-subtitle mt-4" v-if="dialogTitle" v-html="dialogTitle"></div>
         <div class="dialog-content">
@@ -76,7 +76,7 @@ var temp = `
                     </el-select>
                   </el-form-item>
                 </div>
-                <div class="long-control" v-if="setCoopreate">
+                <div class="long-control" v-if="moduleShow.cooperate">
                   <el-form-item label="合作概述 :" prop="cooperate">
                     <el-input
                       v-model.trim="form.cooperate"
@@ -100,9 +100,27 @@ var temp = `
                 </div>
               </div>
             </div>
+            <div class="company clearfix"  v-if="moduleShow.report">
+              <div class="form-title">定制专属分析报告</div>
+              <div class="form-main">
+                <div class="long-control">
+                  <el-form-item label="您的行业 :" class="industry-type" prop="industry">
+                    <el-checkbox-group v-model="form.industry"  @change="onIndustryChange">
+                      <el-checkbox v-for="item in industryData" :key="item" :label="item"></el-checkbox>
+                      <el-input
+                        v-model.trim="form.otherIndustry"
+                        class="item-input industry-input"
+                        @input="onOtherIndustryInput"
+                        placeholder="请输入您的行业">
+                      </el-input>
+                    </el-checkbox-group>
+                  </el-form-item>
+                </div>
+              </div>
+            </div>
             <div class="warm-prompt">
                 <span class="icon-warning"></span>
-                <span class="warm-text">温馨提示:请提供准确的信息,我们将为您推荐更准确、更个性化的商机和服务</span>
+                <span class="warm-text">@@warmText@@</span>
             </div>
             <div class="agree-service" v-if="moduleShow.agree">
               <el-checkbox v-model="form.agreeChecked">&nbsp;我同意剑鱼标讯将业务范围及合作需求提供给潜在合作伙伴搜索、查看</el-checkbox>
@@ -156,6 +174,8 @@ var branchData = branchJson.map(function (item) {
     label: item
   }
 })
+// 您的行业
+var industryData = ['建筑工程', '行政办公', '医疗卫生', '服务采购', '机械设备', '弱电安防', '信息技术', '交通工程', '市政设施', '其他']
 // 防抖
 function debounce (fn, delay) {
   var timer
@@ -278,11 +298,35 @@ var vm = new Vue({
         }
       }
     }
+    var validIndustry = function (rule, value, callback) {
+      if (!value.length) {
+        return callback(new Error('行业为必填项'));
+      } else {
+        if (value.includes('其他')) {
+          console.log(value, '有值', rule);
+
+          if (vm.form.otherIndustry === '') {
+            callback(new Error('请输入行业'))
+          } else if (vm.industryData.includes(vm.form.otherIndustry)) {
+            callback(new Error('行业输入重复'))
+          } else {
+            callback()
+          }
+        } else {
+          if (vm.industryData.includes(vm.form.otherIndustry)) {
+            callback(new Error('行业输入重复'))
+          } else {
+            callback()
+          }
+        }
+      }
+    }
     return {
       dialogTitleTop: '为给您匹配精准的推荐信息,请完善个人信息',
       dialogTitle: '',
       jobData: jobData, // 职位数据
       branchData: branchData,
+      industryData: industryData,
       form: {
         name: '', // 姓名
         phone: '', // 手机号
@@ -295,7 +339,9 @@ var vm = new Vue({
         need: '', // 合作需求
         agreeChecked: true,
         branch: '',
-        cooperate: '' // 商务合作
+        cooperate: '', // 商务合作
+        industry: [], // 行业
+        otherIndustry: '', // 其他行业
       },
       rules: {
         name: [
@@ -346,7 +392,14 @@ var vm = new Vue({
             message: '商务合作为必填项',
             trigger: 'change'
           }
-        ]
+        ],
+        industry: [
+          {
+            required: true,
+            validator: validIndustry,
+            trigger: 'change'
+          }
+        ],
       },
       showSearchResult: false,
       companyList: [],
@@ -363,7 +416,8 @@ var vm = new Vue({
         business: false,
         need: false,
         agree: false,
-        cooperate: false // 商务合作显示
+        cooperate: false, // 商务合作显示
+        report: false // seo-定制专属分析报告
       },
       sourceTitleMap: {
         pc_article_member_freeuse: '请升级大会员无限制查看标讯、超前项目,优先对接项目负责人,抢占绝对先机!',
@@ -406,7 +460,8 @@ var vm = new Vue({
         'customermanagement-landingpage': '客户管理落地页',
         'digitalmarketing-landingpage': '数字化营销落地页',
         'pc_ServiceList_experience': 'PC服务列表-申请免费体验'
-      }
+      },
+      warmText: '温馨提示:请提供准确的信息,我们将为您推荐更准确、更个性化的商机和服务'
     }
   },
   computed: {
@@ -486,15 +541,6 @@ var vm = new Vue({
         }
         return '我们会尽快联系您并预约演示时间,请耐心等待~<br>您将获得免费体验大会员全部功能!'
       }
-    },
-    setCoopreate () {
-      if (this.source === 'businesscooperation-landingpage') {
-        return this.moduleShow.cooperate
-      } else {
-        this.moduleShow.companyType = true
-        this.moduleShow.job = true
-        return false
-      }
     }
   },
   mounted: function () {
@@ -513,6 +559,19 @@ var vm = new Vue({
     $(document).off('click')
   },
   methods: {
+    onIndustryChange: function (val) {
+      console.log(val)
+    },
+    onOtherIndustryInput: function (event) {
+      var val = event.replace(/\s*/g, '')
+      if (val) {
+        if (this.form.industry.includes('其他')) {
+          // console.log('有');
+        } else {
+          this.form.industry.push('其他')
+        }
+      }
+    },
     // 点击我知道了
     knowHandle: function () {
       this.showSuccess = false
@@ -537,25 +596,6 @@ var vm = new Vue({
           break
         }
       }
-      // 判断收藏留资显示
-      if (this.source == "bidmanagement-landingpage") {
-        for (var k in this.moduleShow) {
-          this.moduleShow[k] = false
-        }
-        this.moduleShow.cooperate = true
-      }
-      // 判断收藏留资显示
-      if (this.source == "article_collection") {
-        for (var k in this.moduleShow) {
-          this.moduleShow[k] = false
-        }
-      }
-      //  判断阅读原文留资显示
-      if (vm.source == "article_original") {
-        for (var k in vm.moduleShow) {
-          vm.moduleShow[k] = false
-        }
-      }
       if (text) {
         if (source.indexOf('_freeuser') > -1 && text.indexOf('【') > -1) {
           var r = text.match(/\【(.+?)\】/g)
@@ -604,9 +644,28 @@ var vm = new Vue({
           this.dialogTitle = text
           this.dialogTitleTop = '欢迎体验剑鱼大会员'
         }
+        // 控制非常规表单模块是否展示,默认全部隐藏,companyType、job(公司类型、职位大多数场景都需要展示)
+        var noNeedCompanyType = ['bidmanagement-landingpage', 'pc_briefinghomepage_dzhfxbg', 'pc_briefinglist_dzhfxbg', 'pc_briefingdetails_dzhfxbg']
+        var noNeedJob = ['bidmanagement-landingpage']
         for (var k in this.moduleShow) {
           this.moduleShow[k] = false
         }
+        if (noNeedCompanyType.indexOf(this.source) > -1) {
+          this.moduleShow.companyType = false
+        } else {
+          this.moduleShow.companyType = true
+        }
+        if (noNeedJob.indexOf(this.source) > -1) {
+          this.moduleShow.job = false
+        } else {
+          this.moduleShow.job = true
+        }
+        if (this.source == "bidmanagement-landingpage") {
+          this.moduleShow.cooperate = true
+        } else if (this.source.indexOf('_dzhfxbg') > -1) {
+          this.moduleShow.report = true
+          this.warmText = '温馨提示:请提供您的真实信息,以便为您提供精准的分析报告'
+        }
       }
     },
     nameFocus: function () {
@@ -690,13 +749,6 @@ var vm = new Vue({
                 location.href = '/big/page/index'
                 break
               }
-              default: {
-                // if (source.indexOf('_freeuser') > -1) {
-                //   _this.showSuccess = true
-                // } else {
-                //   _this.showSuccess = true
-                // }
-              }
             }
           } else if (res.data) {
             window.isRetained = res.data.retainedCapital
@@ -717,8 +769,8 @@ var vm = new Vue({
           if (source === 'businesscooperation-landingpage') {
             _this.moduleShow.cooperate = true
           } else {
-            _this.moduleShow.companyType = true
-            _this.moduleShow.job = true
+            // _this.moduleShow.companyType = true
+            // _this.moduleShow.job = true
             _this.moduleShow.cooperate = false
           }
         }
@@ -784,6 +836,16 @@ var vm = new Vue({
         params = info
         params.source = source
       }
+      // 行业分析报告增加行业参数
+      if (source.indexOf('_dzhfxbg') > -1) {
+        const filterIndustry = this.form.industry.filter(function(item) {
+          return item !== '其他'
+        })
+        if (this.form.industry.includes('其他')) {
+          filterIndustry.push(this.form.otherIndustry)
+        }
+        params.industry = filterIndustry.toString()
+      }
       var _this = this
       $.ajax({
         type: 'POST',
@@ -863,28 +925,7 @@ var vm = new Vue({
         },
         success: function (res) {
           if (res && res.info) {
-            res.data = res.info
-          }
-          if (res.data) {
-            _this.form.name = res.data.name ? res.data.name : ''
-            _this.form.phone = res.data.phone ? res.data.phone : ''
-            _this.form.mail = res.data.mail ? res.data.mail : ''
-            _this.form.companyName = res.data.company ? res.data.company : ''
-            _this.form.companyType = res.data.companyType ? res.data.companyType.split(',') : []
-            if (res.data.position) {
-              if (jobJson.indexOf(res.data.position) == -1) {
-                _this.form.job = ''
-                _this.form.otherJob = ''
-              } else {
-                _this.form.job = res.data.position
-              }
-            } else {
-              _this.form.job = ''
-            }
-            _this.form.business = res.data.workScope ? res.data.workScope : ''
-            _this.form.need = res.data.partnerNeeds ? res.data.partnerNeeds : ''
-            _this.form.agreeChecked = res.data.agree == undefined ? true : res.data.agree
-            _this.form.branch = res.data.branch || ''
+            _this.setEchoInfo(res.info)
           }
         }
       })
@@ -952,8 +993,10 @@ var vm = new Vue({
       this.form.business = ''
       this.form.need = ''
       this.form.cooperate = ''
+      this.form.otherIndustry = ''
     },
     setEchoInfo: function (data) {
+      this.form.otherIndustry = ''
       if (data) {
         this.form.name = data.name ? data.name : ''
         this.form.phone = data.phone ? data.phone : ''
@@ -975,6 +1018,22 @@ var vm = new Vue({
         this.form.agreeChecked = data.agree == undefined ? true : data.agree
         this.form.branch = data.branch || ''
         this.form.cooperate = data.cooperate ? data.cooperate : ''
+        if (data.industry) {
+          var industryArr = data.industry.split(',')
+          var same = [...new Set(industryArr)].filter(item => 
+            this.industryData.includes(item) 
+          )
+          var different = [...new Set(industryArr)].filter(item => 
+            !this.industryData.includes(item) 
+          )
+          if (same) {
+            this.form.industry = same
+          }
+          if (different && different.length > 0) {
+            this.form.otherIndustry = different.toString()
+            this.form.industry.push('其他')
+          }
+        }
       }
     }
   }

+ 9 - 1
src/web/staticres/common-module/perfect-info/index.css

@@ -432,7 +432,15 @@
 .perfect-info-group .condition-select-group .condition-select-item.checked .j-icon {
   opacity: 1;
 }
-
+.perfect-info-group .condition-select-group .condition-select-item.custom-select-item {
+  padding: 0 .32rem 0 0;
+}
+.perfect-info-group .condition-select-group .condition-select-item.custom-select-item .van-cell.van-field{
+  padding-left: 0;
+}
+.perfect-info-group .condition-select-group .condition-select-item.custom-select-item .van-field__control{
+  color: #2ABED1;
+}
 /*# sourceMappingURL=index.css.map */
 /* s- 4.5.2.7 -s */
 .commitdialog{

+ 43 - 1
src/web/staticres/common-module/perfect-info/js/perfect-info-data.js

@@ -673,6 +673,48 @@ var conditionMap = {
       title: '其他',
       checked: false
     }
-  ]
+  ],
+  '您的行业': [
+    {
+      title: '建筑工程',
+      checked: false
+    },
+    {
+      title: '行政办公',
+      checked: false
+    },
+    {
+      title: '医疗卫生',
+      checked: false
+    },
+    {
+      title: '服务采购',
+      checked: false
+    },
+    {
+      title: '机械设备',
+      checked: false
+    },
+    {
+      title: '弱电安防',
+      checked: false
+    },
+    {
+      title: '信息技术',
+      checked: false
+    },
+    {
+      title: '交通工程',
+      checked: false
+    },
+    {
+      title: '市政设施',
+      checked: false
+    },
+    // {
+    //   title: '其它',
+    //   checked: false
+    // }
+  ],
 }
 

+ 125 - 9
src/web/staticres/common-module/perfect-info/js/perfect-info.js

@@ -106,6 +106,9 @@ var titleMap = {
   app_briefinghomepage_dzhfxbg: '免费获取行业分析报告',
   wx_briefinghomepage_dzhfxbg: '免费获取行业分析报告',
   h5_briefinghomepage_dzhfxbg: '免费获取行业分析报告',
+  wx_briefingdetails_dzhfxbg: '免费获取行业分析报告',
+  h5_briefingdetails_dzhfxbg: '免费获取行业分析报告',
+  app_briefingdetails_dzhfxbg: '免费获取行业分析报告',
   // 监控留资
   app_buyer_monitor_limit: '申请监控更多业主',
   wx_buyer_monitor_limit:'申请监控更多业主',
@@ -280,6 +283,9 @@ var tipMap = {
   app_briefinghomepage_dzhfxbg: '帮您透视行业,轻松把握行业核心需求',
   wx_briefinghomepage_dzhfxbg: '帮您透视行业,轻松把握行业核心需求',
   h5_briefinghomepage_dzhfxbg: '帮您透视行业,轻松把握行业核心需求',
+  wx_briefingdetails_dzhfxbg: '帮您透视行业,轻松把握行业核心需求',
+  h5_briefingdetails_dzhfxbg: '帮您透视行业,轻松把握行业核心需求',
+  app_briefingdetails_dzhfxbg: '帮您透视行业,轻松把握行业核心需求',
     // 监控留资
   app_buyer_monitor_limit:'监控业主数量已达上限,请升级大会员,可实时监控最多500个业主采购动态,洞察潜在商机',
   wx_buyer_monitor_limit:'监控业主数量已达上限,请升级大会员,可实时监控最多500个业主采购动态,洞察潜在商机',
@@ -363,7 +369,13 @@ var sourceDescMap = {
   // 商机情报详情页
   app_project_businessDetails: '商机情报详情页-查看潜在项目预测',
   wx_project_businessDetails: '商机情报详情页-查看潜在项目预测',
-  h5_project_businessDetails: '商机情报详情页-查看潜在项目预测'
+  h5_project_businessDetails: '商机情报详情页-查看潜在项目预测',
+  h5_briefinghomepage_dzhfxbg: '行业分析简报-h5首页广告位定获取制分析报告',
+  app_briefinghomepage_dzhfxbg:'行业分析简报-app首页广告位定获取制分析报告',
+  wx_briefinghomepage_dzhfxbg: '行业分析简报-wx首页广告位定获取制分析报告',
+  wx_briefingdetails_dzhfxbg: '行业分析简报-wx详情页广告位定获取制分析报告',
+  h5_briefingdetails_dzhfxbg:'行业分析简报-h5详情页广告位定获取制分析报告',
+  app_briefingdetails_dzhfxbg: '行业分析简报-app详情页广告位定获取制分析报告'
 }
 
 var vNode = {
@@ -400,7 +412,8 @@ var vNode = {
       partnerNeeds: '',
       position_other: '',
       branch: '',
-      data_requirement: ''
+      data_requirement: '',
+      industry: ''
     },
     infoCheckMap: {
       name: '',
@@ -445,14 +458,15 @@ var vNode = {
       area: false,
       class: true,
       type: false,
-      companyType: true,
+      // companyType: true,
       position: true,
       company_size: false,
       workScope: true,
       partnerNeeds: true,
       agree: true,
       branch: true,
-      data_requirement:true
+      data_requirement:true,
+      industry: false
     },
     jobJson: [
       '总裁',
@@ -468,7 +482,16 @@ var vNode = {
       title: '提交成功',
       text:'恭喜您获得<span class="blue-color">1次</span>免费查看原文链接的机会,如需查看更多请联系客服:<a onclick="appcallPhone()" class="blue-color">400-108-6670</a>',
       desc:''
-    }
+    },
+    otherInfo: {
+      '您的行业': {
+        title: '',
+        placeholder: '其他,请输入您的行业',
+        checked: false
+      }
+    },
+    showCompanyType: true,  // 公司类型是否显示,所有source都需要展示,当前仅有一处source需要隐藏(原来moduleShow控制会默认都隐藏,通过moduleShow控制改动较大)
+    warmText: '温馨提示:请提供准确的信息,我们将为您推荐更准确、更个性化的商机和服务'
   },
   created() {
     // 大会员落地页免费体验
@@ -660,6 +683,19 @@ var vNode = {
             hideLabel()
             break
           }
+        // seo-行业分析简报
+        case 'h5_briefinghomepage_dzhfxbg':
+        case 'app_briefinghomepage_dzhfxbg':
+        case 'wx_briefinghomepage_dzhfxbg': 
+        case 'wx_briefingdetails_dzhfxbg':
+        case 'h5_briefingdetails_dzhfxbg':
+        case 'app_briefingdetails_dzhfxbg': {
+          hideLabel()
+          this.showCompanyType = false
+          this.moduleShow.industry = true
+          this.warmText = '温馨提示:请提供您的真实信息,以便为您提供精准的分析报告'
+          break
+        }
         default: {
           // 标书制作或者三方认证(case语句满足不了条件,放default中做更多判断)
           if (source === 'bid_document_Introduction_page' || source.indexOf('certificateServices') > -1) {
@@ -675,7 +711,11 @@ var vNode = {
       return infoText || ''
     },
     getPopHeight () {
-      return this.popInfo.label === '受雇类型' ?  '5.42rem' : '8.36rem'
+      if (this.popInfo.label === '您的行业') {
+        return '10.36rem'
+      } else {
+        return this.popInfo.label === '受雇类型' ?  '5.42rem' : '8.36rem'
+      }
     },
     checkName () {
       if (this.infoMap.name.length > 10) {
@@ -718,17 +758,21 @@ var vNode = {
       var namereg = /^[\u4E00-\u9FA5A-Za-z\s]+(·[\u4E00-\u9FA5A-Za-z]+)*$/;
       return namereg.test(this.infoMap.position_other)
     },
+    checkMyIndustry () {
+      if (!this.moduleShow.industry) return true
+      return this.infoMap.industry
+    },
     isSubmitDisabled () {
       if(this.notit_group){
         return !this.checkName || !this.checkPhone || !this.checkEmail || !this.checkEntName
 
       }else{
-        return !this.checkName || !this.checkPhone || !this.checkEmail || !this.checkEntName || !this.checkEntType || !this.checkPosition || (this.showBranch && !this.infoMap.branch)
+        return !this.checkName || !this.checkPhone || !this.checkEmail || !this.checkEntName || !this.checkEntType || !this.checkPosition || (this.showBranch && !this.infoMap.branch) || !this.checkMyIndustry
 
       }
     },
     isMoreSelect () {
-      return this.popInfo.label === '公司类型'
+      return this.popInfo.label === '公司类型' || this.popInfo.label === '您的行业'
     },
     isNextDisabled () {
       var type = this.popInfo.label
@@ -764,6 +808,10 @@ var vNode = {
           result = this.conditionMap[type].filter(v => v.checked).length
           break
         }
+        case '您的行业': {
+          result = this.conditionMap[type].filter(v => v.checked).length || this.otherInfo[this.popInfo.label].checked
+          break
+        }
       }
       return !result
     },
@@ -997,6 +1045,28 @@ var vNode = {
       if (data.branch) {
         this.setCheckForData('branch', 'branch', data.branch, '部门')
       }
+      // 您的行业
+      if (data.industry) {
+        this.infoMap.industry = data.industry
+        var selectIndustry = data.industry.split(',')
+        var defaultIndustry = this.conditionMap['您的行业']
+        defaultIndustry.forEach(v => {
+          if (selectIndustry.indexOf(v.title) !== -1) {
+            v.checked = true
+          }
+        })
+        var filterTitle = defaultIndustry.filter(v => v.checked).map(s => s.title)
+        var customIndustry = []
+        selectIndustry.forEach(v => {
+          if (filterTitle.indexOf(v) === -1) {
+            customIndustry.push(v)
+          }
+        })
+        if (customIndustry.length > 0) {
+          this.otherInfo['您的行业'].checked = true
+          this.otherInfo['您的行业'].title = customIndustry.toString()
+        }
+      }
     },
     setCheckForData (aKey, iKey, cKey, label) {
       this.ajaxParams[aKey] = cKey
@@ -1068,6 +1138,20 @@ var vNode = {
           this.setCheckForData('branch', 'branch', tempData[0].title)
           break
         }
+        case '您的行业': {
+          var tempData = this.conditionMap[type].filter(v => v.checked)
+          console.log(this.otherInfo[this.popInfo.label].title);
+          var otherIndustryChecked = this.otherInfo[this.popInfo.label].checked
+          if (otherIndustryChecked) {
+            tempData.push({
+              title: this.otherInfo[this.popInfo.label].title,
+              checked: true
+            })
+          }
+          var industryTitle = tempData.map(v => v.title)
+          this.infoMap.industry = industryTitle.toString()
+          break
+        }
       }
       this.popInfo.show = false
     },
@@ -1101,6 +1185,10 @@ var vNode = {
           this.popInfo.title = '部门'
           break
         }
+        case '您的行业': {
+          this.popInfo.title = '请选择您的行业'
+          break
+        }
       }
       this.popInfo.label = type
       this.popInfo.show = true
@@ -1115,6 +1203,28 @@ var vNode = {
         item.checked = true
       }
     },
+    onSelectOtherItem (item) {
+      if (item.checked) {
+        item.checked = false
+      } else {
+        this.onOtherPopInfoInput(this.otherInfo[this.popInfo.label].title)
+      }
+    },
+    onOtherPopInfoInput (event) {
+      var popInfoList = this.conditionMap[this.popInfo.label].map(v => v.title)
+      var val = event.replace(/\s*/g, '')
+      // console.log(popInfoList);
+      if (val) {
+        if (popInfoList.indexOf(event) > -1) {
+          this.$toast('行业输入重复')
+          this.otherInfo[this.popInfo.label].checked = false
+        } else {
+          this.otherInfo[this.popInfo.label].checked = true
+        }
+      } else {
+        this.otherInfo[this.popInfo.label].checked = false
+      }
+    },
     getCheckMap (type) {
       switch (type) {
           case 'name': {
@@ -1216,6 +1326,9 @@ var vNode = {
       this.ajaxParams.branch = this.infoMap.branch.indexOf('总裁') > -1 || this.infoMap.branch.indexOf('总经理') > -1 ? '' : this.infoMap.branch
       this.ajaxParams.source_desc = sourceDescMap[this.ajaxParams.source]
       this.ajaxParams.data_requirement = this.infoMap.data_requirement
+      if (this.ajaxParams.source.indexOf('_dzhfxbg') > -1) {
+        this.ajaxParams.industry = this.infoMap.industry
+      }
 
       var _this = this
       var loading = _this.showLoading()
@@ -1400,7 +1513,10 @@ var vNode = {
               // 行业分析简报source
               case 'app_briefinghomepage_dzhfxbg':
               case 'wx_briefinghomepage_dzhfxbg':
-              case 'h5_briefinghomepage_dzhfxbg':{
+              case 'h5_briefinghomepage_dzhfxbg':
+              case  'wx_briefingdetails_dzhfxbg':
+              case  'h5_briefingdetails_dzhfxbg':
+              case  'app_briefingdetails_dzhfxbg':{
                 _this.showMessage('我们会快马加鞭的与您联系,请您保持电话畅通', '我知道了', function () {
                   history.back()
                 },'提交成功')

+ 17 - 2
src/web/templates/frontRouter/wx/bigmember/free/perfect_info.html

@@ -97,7 +97,7 @@
                         </div>
                         <van-field @input="entOnChange('input')" @blur="entOnChange('blur')" @focus="infoCheckMap.company = ''"
                                    :error-message="infoCheckMap.company" required v-model.trim="infoMap.company" label="公司名称" placeholder="请输入准确的公司名称"></van-field>
-                        <van-field v-model="infoMap.companyType" required label="公司类型" @click="openPop('公司类型')" readonly is-link
+                        <van-field v-if="showCompanyType"  v-model="infoMap.companyType" required label="公司类型" @click="openPop('公司类型')" readonly is-link
                                    placeholder="请选择公司类型"></van-field>
                         <van-field v-if="moduleShow.position" :class="{'hide-border': infoMap.position === '其他'}"  required v-model="infoMap.position" label="职位" @click="openPop('职位')" readonly is-link
                                    placeholder="请选择职位"></van-field>
@@ -110,6 +110,13 @@
                                    placeholder="请输入业务范围,让合作伙伴充分了解公司业务内容"></van-field>
                     </div>
                 </div>
+                <div class="form-card-group" v-if="moduleShow.industry">
+                  <div class="form-title">定制专属分析报告</div>
+                  <div class="form-content-card">
+                    <van-field required v-model="infoMap.industry" label="您的行业"
+                      @click="openPop('您的行业')" readonly is-link placeholder="请选择您的行业"></van-field>
+                  </div>
+                </div>
                 <div class="form-card-group" v-if="moduleShow.partnerNeeds">
                     <div class="form-title">合作需求</div>
                     <div class="form-content-card">
@@ -119,7 +126,7 @@
                 </div>
                 <div class="warm-prompt">
                   <span class="icon-warning"></span>
-                  <span class="warm-text">温馨提示:请提供准确的信息,我们将为您推荐更准确、更个性化的商机和服务</span>
+                  <span class="warm-text">@@warmText@@</span>
                 </div>
                 <div class="form-tick-group" @click="isRead = !isRead" v-if="moduleShow.agree">
                     <div class="more-icon-box">
@@ -174,6 +181,14 @@
                                     <i  class="j-icon base-icon icon-tick-circle-fill"></i>
                                 </div>
                             </div>
+                            <!-- 其它(带输入框的选项) -->
+                            <div v-if="otherInfo[popInfo.label]" class="condition-select-item custom-select-item" :class="{checked: otherInfo[popInfo.label].checked}">
+                              <van-field v-model="otherInfo[popInfo.label].title" @input="onOtherPopInfoInput" :placeholder="otherInfo[popInfo.label].placeholder"></van-field>
+                              <div class="more-icon-box" @click="onSelectOtherItem(otherInfo[popInfo.label], popInfo.label)">
+                                <i class="j-icon base-icon icon-tick-circle"></i>
+                                <i class="j-icon base-icon icon-tick-circle-fill"></i>
+                              </div>
+                            </div>
                         </div>
                     </div>
                     <div class="j-footer">