pc-collect-user-info.js 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955
  1. // var temp = `
  2. // <div>
  3. // <div class="user-data-dialog" id="collectUserInfoDialog" v-if="showForm">
  4. // <div class="mask"></div>
  5. // <div class="dialog-container">
  6. // <div class="dialog-header fs18" v-if="dialogTitleTop" v-text="dialogTitleTop"></div>
  7. // <div class="dialog-header mt-4" v-if="dialogTitle" v-html="dialogTitle"></div>
  8. // <div class="dialog-content">
  9. // <el-form class="user-form" :model="form" :rules="rules" ref="ruleForm">
  10. // <!-- 基本信息 -->
  11. // <div class="basic clearfix">
  12. // <div class="form-title">基本信息</div>
  13. // <div class="form-main clearfix">
  14. // <div class="short-control fl">
  15. // <el-form-item label="姓名 :" prop="name">
  16. // <el-input v-model.trim="form.name" data-short-input class="item-input" placeholder="请输入姓名" @focus="nameFocus" required>
  17. // </el-input>
  18. // </el-form-item>
  19. // </div>
  20. // <div class="short-control fr">
  21. // <el-form-item label="手机号 :" prop="phone">
  22. // <el-input v-model.trim="form.phone" maxlength="11" @input="inputPhone" data-short-input class="item-input" placeholder="请输入准确的手机号" @focus="phoneFocus"></el-input>
  23. // </el-form-item>
  24. // </div>
  25. // <div class="short-control fl" v-if="moduleShow.email">
  26. // <el-form-item label="邮箱 :" prop="mail">
  27. // <el-input v-model.trim="form.mail" data-short-input class="item-input" placeholder="请输入邮箱" @focus="mailFocus"></el-input>
  28. // </el-form-item>
  29. // </div>
  30. // <div class="short-control fr" v-if="moduleShow.region">
  31. // <el-form-item label="地区 :">
  32. // <el-cascader data-short-input v-model="form.region" class="item-input" :options="regionData"
  33. // placeholder="请选择省份城市" clearable></el-cascader>
  34. // </el-form-item>
  35. // </div>
  36. // <div class="short-control fr" v-if="moduleShow.industry">
  37. // <el-form-item label="行业 :">
  38. // <el-cascader data-short-input v-model="form.industry" class="item-input" :options="industryData"
  39. // placeholder="请选择所属行业" :show-all-levels="false" clearable></el-cascader>
  40. // </el-form-item>
  41. // </div>
  42. // <div class="short-control fr" v-if="moduleShow.mold">
  43. // <el-form-item label="受雇类型 :">
  44. // <el-select v-model="form.mold" data-short-input class="item-input">
  45. // <el-option v-for="item in moldData" :key="item.value" :label="item.label" :value="item.value">
  46. // </el-option>
  47. // </el-select>
  48. // </el-form-item>
  49. // </div>
  50. // </div>
  51. // </div>
  52. // <div class="company clearfix">
  53. // <div class="form-title">公司信息</div>
  54. // <div class="form-main">
  55. // <div class="long-control" style="position: relative;">
  56. // <el-form-item label="公司名称 :" prop="companyName">
  57. // <el-input
  58. // v-model.trim="form.companyName"
  59. // data-long-input
  60. // class="item-input company-name"
  61. // @focus="companyFocus"
  62. // @input="searchCompany"
  63. // placeholder="请输入准确的公司名称">
  64. // </el-input>
  65. // </el-form-item>
  66. // <div class="company-result" v-if="showSearchResult">
  67. // <div class="company-list" v-for="item in companyList" :key="item" @click="selectCompany(item)" v-html="item"></div>
  68. // </div>
  69. // </div>
  70. // <div class="long-control" >
  71. // <el-form-item label="公司类型 :" class="company-type" prop="companyType">
  72. // <el-checkbox-group v-model="form.companyType">
  73. // <el-checkbox label="投标企业"></el-checkbox>
  74. // <el-checkbox label="招标采购单位"></el-checkbox>
  75. // <el-checkbox label="厂商"></el-checkbox>
  76. // <el-checkbox label="招标代理机构"></el-checkbox>
  77. // <el-checkbox label="经销商"></el-checkbox>
  78. // <el-checkbox label="服务提供商"></el-checkbox>
  79. // <el-checkbox label="其他"></el-checkbox>
  80. // </el-checkbox-group>
  81. // </el-form-item>
  82. // </div>
  83. // <div class="long-control">
  84. // <el-form-item label="职位 :" prop="job">
  85. // <el-select v-model="form.job" placeholder="请选择职位" data-short-input popper-class="leave-info-select" class="item-input" clearable>
  86. // <el-option v-for="item in jobData" :key="item.value" :label="item.label" :value="item.value">
  87. // </el-option>
  88. // </el-select>
  89. // <el-select v-if="showBranch" v-model="form.branch" placeholder="请选择部门" data-short-input popper-class="leave-info-select" class="item-input" clearable>
  90. // <el-option v-for="item in branchData" :key="item.value" :label="item.label" :value="item.value">
  91. // </el-option>
  92. // </el-select>
  93. // </el-form-item>
  94. // </div>
  95. // <div class="long-control" v-if="moduleShow.scale">
  96. // <el-form-item label="公司规模 :">
  97. // <el-select v-model="form.scale" placeholder="请选择公司规模" data-short-input class="item-input" clearable>
  98. // <el-option v-for="item in scaleData" :key="item.value" :label="item.label" :value="item.value">
  99. // </el-option>
  100. // </el-select>
  101. // </el-form-item>
  102. // </div>
  103. // <div class="long-control" v-if="moduleShow.business">
  104. // <el-form-item label="业务范围 :">
  105. // <el-input type="textarea" autosize resize="none" v-model="form.business" data-long-input class="item-input"
  106. // placeholder="请输入业务范围,让合作伙伴充分了解公司业务内容"></el-input>
  107. // </el-form-item>
  108. // </div>
  109. // <div class="long-control" v-if="moduleShow.need">
  110. // <el-form-item label="合作需求 :">
  111. // <el-input type="textarea" autosize resize="none" v-model="form.need" data-long-input class="item-input"
  112. // placeholder="请输入合作需求,从而创造并匹配更多合作交流机会"></el-input>
  113. // </el-form-item>
  114. // </div>
  115. // </div>
  116. // </div>
  117. // <div class="warm-prompt">
  118. // <span class="icon-warning"></span>
  119. // <span class="warm-text">温馨提示:请提供准确的信息,我们将为您推荐更准确、更个性化的商机和服务</span>
  120. // </div>
  121. // <div class="agree-service" v-if="moduleShow.agree">
  122. // <el-checkbox v-model="form.agreeChecked">&nbsp;我同意剑鱼标讯将业务范围及合作需求提供给潜在合作伙伴搜索、查看</el-checkbox>
  123. // </div>
  124. // <div class="dialog-footer">
  125. // <el-button class="cancel-btn" @click="cancelForm">暂不提供</el-button>
  126. // <el-button class="submit-btn" @click="submitForm('ruleForm')">提交</el-button>
  127. // </div>
  128. // </el-form>
  129. // </div>
  130. // </div>
  131. // </div>
  132. // <div id="success-dialog" style="display: none;" v-show="showSuccess">
  133. // <div class="mask"></div>
  134. // <div class="success-dialog-container">
  135. // <div class="success-title">提交成功</div>
  136. // <div class="success-content" v-html="successText"></div>
  137. // <div class="success-footer">
  138. // <button type="button" class="custom-btn go-know" @click="knowHandle" v-text="successConfirmText"></button>
  139. // </div>
  140. // </div>
  141. // </div>
  142. // </div>
  143. // `
  144. var temp = "\n <div>\n <div class=\"user-data-dialog\" id=\"collectUserInfoDialog\" v-if=\"showForm\">\n <div class=\"mask\"></div>\n <div class=\"dialog-container\">\n <div class=\"dialog-header fs18\" v-if=\"dialogTitleTop\" v-text=\"dialogTitleTop\"></div>\n <div class=\"dialog-header mt-4\" v-if=\"dialogTitle\" v-html=\"dialogTitle\"></div>\n <div class=\"dialog-content\">\n <el-form class=\"user-form\" :model=\"form\" :rules=\"rules\" ref=\"ruleForm\">\n <!-- \u57FA\u672C\u4FE1\u606F -->\n <div class=\"basic clearfix\">\n <div class=\"form-title\">\u57FA\u672C\u4FE1\u606F</div>\n <div class=\"form-main clearfix\">\n <div class=\"short-control fl\">\n <el-form-item label=\"\u59D3\u540D :\" prop=\"name\">\n <el-input v-model.trim=\"form.name\" data-short-input class=\"item-input\" placeholder=\"\u8BF7\u8F93\u5165\u59D3\u540D\" @focus=\"nameFocus\" required>\n </el-input>\n </el-form-item>\n </div>\n <div class=\"short-control fr\">\n <el-form-item label=\"\u624B\u673A\u53F7 :\" prop=\"phone\">\n <el-input v-model.trim=\"form.phone\" maxlength=\"11\" @input=\"inputPhone\" data-short-input class=\"item-input\" placeholder=\"\u8BF7\u8F93\u5165\u51C6\u786E\u7684\u624B\u673A\u53F7\" @focus=\"phoneFocus\"></el-input>\n </el-form-item>\n </div>\n <div class=\"short-control fl\" v-if=\"moduleShow.email\">\n <el-form-item label=\"\u90AE\u7BB1 :\" prop=\"mail\">\n <el-input v-model.trim=\"form.mail\" data-short-input class=\"item-input\" placeholder=\"\u8BF7\u8F93\u5165\u90AE\u7BB1\" @focus=\"mailFocus\"></el-input>\n </el-form-item>\n </div>\n <div class=\"short-control fr\" v-if=\"moduleShow.region\">\n <el-form-item label=\"\u5730\u533A :\">\n <el-cascader data-short-input v-model=\"form.region\" class=\"item-input\" :options=\"regionData\"\n placeholder=\"\u8BF7\u9009\u62E9\u7701\u4EFD\u57CE\u5E02\" clearable></el-cascader>\n </el-form-item>\n </div>\n <div class=\"short-control fr\" v-if=\"moduleShow.industry\">\n <el-form-item label=\"\u884C\u4E1A :\">\n <el-cascader data-short-input v-model=\"form.industry\" class=\"item-input\" :options=\"industryData\"\n placeholder=\"\u8BF7\u9009\u62E9\u6240\u5C5E\u884C\u4E1A\" :show-all-levels=\"false\" clearable></el-cascader>\n </el-form-item>\n </div>\n <div class=\"short-control fr\" v-if=\"moduleShow.mold\">\n <el-form-item label=\"\u53D7\u96C7\u7C7B\u578B :\">\n <el-select v-model=\"form.mold\" data-short-input class=\"item-input\">\n <el-option v-for=\"item in moldData\" :key=\"item.value\" :label=\"item.label\" :value=\"item.value\">\n </el-option>\n </el-select>\n </el-form-item>\n </div>\n </div>\n </div>\n <div class=\"company clearfix\">\n <div class=\"form-title\">\u516C\u53F8\u4FE1\u606F</div>\n <div class=\"form-main\">\n <div class=\"long-control\" style=\"position: relative;\">\n <el-form-item label=\"\u516C\u53F8\u540D\u79F0 :\" prop=\"companyName\">\n <el-input\n v-model.trim=\"form.companyName\"\n data-long-input\n class=\"item-input company-name\"\n @focus=\"companyFocus\"\n @input=\"searchCompany\"\n placeholder=\"\u8BF7\u8F93\u5165\u51C6\u786E\u7684\u516C\u53F8\u540D\u79F0\">\n </el-input>\n </el-form-item>\n <div class=\"company-result\" v-if=\"showSearchResult\">\n <div class=\"company-list\" v-for=\"item in companyList\" :key=\"item\" @click=\"selectCompany(item)\" v-html=\"item\"></div>\n </div>\n </div>\n <div class=\"long-control\" >\n <el-form-item label=\"\u516C\u53F8\u7C7B\u578B :\" class=\"company-type\" prop=\"companyType\">\n <el-checkbox-group v-model=\"form.companyType\">\n <el-checkbox label=\"\u6295\u6807\u4F01\u4E1A\"></el-checkbox>\n <el-checkbox label=\"\u62DB\u6807\u91C7\u8D2D\u5355\u4F4D\"></el-checkbox>\n <el-checkbox label=\"\u5382\u5546\"></el-checkbox>\n <el-checkbox label=\"\u62DB\u6807\u4EE3\u7406\u673A\u6784\"></el-checkbox>\n <el-checkbox label=\"\u7ECF\u9500\u5546\"></el-checkbox>\n <el-checkbox label=\"\u670D\u52A1\u63D0\u4F9B\u5546\"></el-checkbox>\n <el-checkbox label=\"\u5176\u4ED6\"></el-checkbox>\n </el-checkbox-group>\n </el-form-item>\n </div>\n <div class=\"long-control\">\n <el-form-item label=\"\u804C\u4F4D :\" prop=\"job\">\n <el-select v-model=\"form.job\" placeholder=\"\u8BF7\u9009\u62E9\u804C\u4F4D\" data-short-input popper-class=\"leave-info-select\" class=\"item-input\" clearable>\n <el-option v-for=\"item in jobData\" :key=\"item.value\" :label=\"item.label\" :value=\"item.value\">\n </el-option>\n </el-select>\n <el-select v-if=\"showBranch\" v-model=\"form.branch\" placeholder=\"\u8BF7\u9009\u62E9\u90E8\u95E8\" data-short-input popper-class=\"leave-info-select\" class=\"item-input\" clearable>\n <el-option v-for=\"item in branchData\" :key=\"item.value\" :label=\"item.label\" :value=\"item.value\">\n </el-option>\n </el-select>\n </el-form-item>\n </div>\n <div class=\"long-control\" v-if=\"moduleShow.scale\">\n <el-form-item label=\"\u516C\u53F8\u89C4\u6A21 :\">\n <el-select v-model=\"form.scale\" placeholder=\"\u8BF7\u9009\u62E9\u516C\u53F8\u89C4\u6A21\" data-short-input class=\"item-input\" clearable>\n <el-option v-for=\"item in scaleData\" :key=\"item.value\" :label=\"item.label\" :value=\"item.value\">\n </el-option>\n </el-select>\n </el-form-item>\n </div>\n <div class=\"long-control\" v-if=\"moduleShow.business\">\n <el-form-item label=\"\u4E1A\u52A1\u8303\u56F4 :\">\n <el-input type=\"textarea\" autosize resize=\"none\" v-model=\"form.business\" data-long-input class=\"item-input\"\n placeholder=\"\u8BF7\u8F93\u5165\u4E1A\u52A1\u8303\u56F4\uFF0C\u8BA9\u5408\u4F5C\u4F19\u4F34\u5145\u5206\u4E86\u89E3\u516C\u53F8\u4E1A\u52A1\u5185\u5BB9\"></el-input>\n </el-form-item>\n </div>\n <div class=\"long-control\" v-if=\"moduleShow.need\">\n <el-form-item label=\"\u5408\u4F5C\u9700\u6C42 :\">\n <el-input type=\"textarea\" autosize resize=\"none\" v-model=\"form.need\" data-long-input class=\"item-input\"\n placeholder=\"\u8BF7\u8F93\u5165\u5408\u4F5C\u9700\u6C42\uFF0C\u4ECE\u800C\u521B\u9020\u5E76\u5339\u914D\u66F4\u591A\u5408\u4F5C\u4EA4\u6D41\u673A\u4F1A\"></el-input>\n </el-form-item>\n </div>\n </div>\n </div>\n <div class=\"warm-prompt\">\n <span class=\"icon-warning\"></span>\n <span class=\"warm-text\">\u6E29\u99A8\u63D0\u793A\uFF1A\u8BF7\u63D0\u4F9B\u51C6\u786E\u7684\u4FE1\u606F\uFF0C\u6211\u4EEC\u5C06\u4E3A\u60A8\u63A8\u8350\u66F4\u51C6\u786E\u3001\u66F4\u4E2A\u6027\u5316\u7684\u5546\u673A\u548C\u670D\u52A1</span>\n </div>\n <div class=\"agree-service\" v-if=\"moduleShow.agree\">\n <el-checkbox v-model=\"form.agreeChecked\">&nbsp;\u6211\u540C\u610F\u5251\u9C7C\u6807\u8BAF\u5C06\u4E1A\u52A1\u8303\u56F4\u53CA\u5408\u4F5C\u9700\u6C42\u63D0\u4F9B\u7ED9\u6F5C\u5728\u5408\u4F5C\u4F19\u4F34\u641C\u7D22\u3001\u67E5\u770B</el-checkbox>\n </div>\n <div class=\"dialog-footer\">\n <el-button class=\"cancel-btn\" @click=\"cancelForm\">\u6682\u4E0D\u63D0\u4F9B</el-button>\n <el-button class=\"submit-btn\" @click=\"submitForm('ruleForm')\">\u63D0\u4EA4</el-button>\n </div>\n </el-form>\n </div>\n </div>\n </div>\n <div id=\"success-dialog\" style=\"display: none;\" v-show=\"showSuccess\">\n <div class=\"mask\"></div>\n <div class=\"success-dialog-container\">\n <div class=\"success-title\">\u63D0\u4EA4\u6210\u529F</div>\n <div class=\"success-content\" v-html=\"successText\"></div>\n <div class=\"success-footer\">\n <button type=\"button\" class=\"custom-btn go-know\" @click=\"knowHandle\" v-text=\"successConfirmText\"></button>\n </div>\n </div>\n </div>\n </div>\n ";
  145. var filterData = chinaMapJSON.filter(function (item) {
  146. item.name = item.name.replace(/\s*/g,"")
  147. return item.name !== '海外' && item.name !== '钓鱼岛'
  148. })
  149. filterData.forEach(function (item) {
  150. if (item.name == '台湾省') { item.name = '台湾'}
  151. item.name = item.name.replace(/自治区|特别行政区|壮族|回族|维吾尔/g, '')
  152. item.label = item.name
  153. item.value = item.name
  154. var filterWord = ['北京市', '上海市', '天津市', '上海市', '重庆市', '香港', '澳门', '台湾']
  155. if (filterWord.indexOf(item.name) == -1) {
  156. item.children = item.city.map(function (v) {
  157. return {
  158. value: v.name,
  159. label: v.name
  160. }
  161. })
  162. }
  163. })
  164. industryJson.forEach(function (item) {
  165. item.label = item.name
  166. item.value = item.name
  167. item.children = item.children.map(function (v) {
  168. return {
  169. value: v.name,
  170. label: v.name
  171. }
  172. })
  173. })
  174. var jobData = jobJson.map(function (item) {
  175. return {
  176. value: item,
  177. label: item
  178. }
  179. })
  180. var companyScaleData = companyScaleJson.map(function (item) {
  181. return {
  182. value: item,
  183. label: item
  184. }
  185. })
  186. // 部门数据处理
  187. var branchData = branchJson.map(function(item) {
  188. return {
  189. value: item,
  190. label: item
  191. }
  192. })
  193. // 防抖
  194. function debounce(fn, delay) {
  195. var timer
  196. return function () {
  197. var context = this
  198. var args = arguments
  199. clearTimeout(timer)
  200. timer = setTimeout(function () {
  201. fn.apply(context, args)
  202. }, delay)
  203. }
  204. }
  205. var vm = new Vue({
  206. el: '#vue-collect-user-info',
  207. delimiters: ['@@', '@@'],
  208. template: temp,
  209. data: function () {
  210. var validName = function(rule,value,callback) {
  211. if(value === '') {
  212. return callback(new Error('姓名为必填项'));
  213. } else {
  214. if (value.length < 2) {
  215. return callback(new Error('姓名填写不正确'));
  216. }
  217. callback();
  218. }
  219. }
  220. var validPhone = function(rule,value,callback) {
  221. var status = /^1[3-9]\d{9}$/.test(value)
  222. if(value === '') {
  223. return callback(new Error('手机号为必填项'));
  224. } else if (!status) {
  225. return callback(new Error('手机号填写不正确'));
  226. } else {
  227. callback();
  228. }
  229. }
  230. var validEmail = function(rule,value,callback) {
  231. var status = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(value)
  232. if (value === '') {
  233. return callback(new Error('邮箱为必填项'));
  234. } else {
  235. if (!status) {
  236. return callback(new Error('邮箱填写不正确'));
  237. } else {
  238. callback();
  239. }
  240. }
  241. }
  242. var validCompany = function(rule,value,callback) {
  243. if (value === '') {
  244. return callback(new Error('公司名称为必填项'));
  245. } else {
  246. if (value.length < 2) {
  247. return callback(new Error('公司名称至少输入2个字'));
  248. } else {
  249. callback();
  250. }
  251. }
  252. }
  253. var validJob = function(rule,value,callback) {
  254. if(value === '') {
  255. return callback(new Error('职位不能为空'));
  256. } else {
  257. if ((value.indexOf('总裁') === -1 || value.indexOf('总经理') === -1) && vm.showBranch && !vm.form.branch) {
  258. return callback(new Error('部门不能为空'));
  259. } else {
  260. callback();
  261. }
  262. }
  263. }
  264. return {
  265. dialogTitleTop: '为给您匹配精准的推荐信息,请完善个人信息',
  266. dialogTitle: '',
  267. // showCompany: true, // 是否显示公司信息
  268. regionData: filterData, // 地区数据
  269. industryData: industryJson, // 行业数据
  270. jobData: jobData, // 职位数据
  271. scaleData: companyScaleData, // 公司规模数据
  272. branchData: branchData,
  273. moldData: [{ // 公司类型数据
  274. label: '公司',
  275. value: '公司'
  276. }, {
  277. label: '个体经营者',
  278. value: '个体经营者'
  279. },{
  280. label: '其他',
  281. value: '其他'
  282. }],
  283. form: {
  284. name: '', // 姓名
  285. phone: '', // 手机号
  286. mail: '', // 邮箱
  287. region: [], // 地区值
  288. industry: [], // 行业值
  289. mold: '公司', // 受雇类型值
  290. companyName: '', // 公司名称
  291. companyType: [], // 公司类型值
  292. job: '', // 职位值
  293. otherJob: '', //自定义职位
  294. scale: '', // 公司规模
  295. business: '', // 业务范围
  296. need: '', // 合作需求
  297. agreeChecked: true,
  298. branch: ''
  299. },
  300. rules: {
  301. name: [
  302. {
  303. required: true,
  304. validator: validName,
  305. trigger: 'blur'
  306. }
  307. ],
  308. phone: [
  309. {
  310. required: true,
  311. validator: validPhone,
  312. trigger: 'blur'
  313. }
  314. ],
  315. mail: [
  316. {
  317. required: true,
  318. validator: validEmail,
  319. trigger: 'blur'
  320. }
  321. ],
  322. companyName: [
  323. {
  324. required: true,
  325. validator: validCompany,
  326. trigger: 'blur'
  327. }
  328. ],
  329. companyType: [
  330. {
  331. required: true,
  332. message:'公司类型为必填项',
  333. trigger: 'blur'
  334. }
  335. ],
  336. job: [
  337. {
  338. required: true,
  339. validator: validJob,
  340. trigger: 'change'
  341. }
  342. ]
  343. },
  344. showSearchResult: false,
  345. companyList: [],
  346. showForm: false, // 显示表单填写弹框
  347. showSuccess: false, // 显示提交成功弹框
  348. isForce: false, // 是否强制
  349. source: '', // 来源模块
  350. curDom: null,
  351. // 默认为隐藏,需要展示则需判断
  352. moduleShow: {
  353. email: false,
  354. region: false,
  355. industry: false,
  356. mold: false,
  357. companyType: false,
  358. scale: false,
  359. business: false,
  360. need: false,
  361. agree: false,
  362. },
  363. sourceTitleMap: {
  364. pc_article_member_freeuse: '请升级大会员无限制查看标讯、超前项目,优先对接项目负责人,抢占绝对先机!',
  365. article_attach_freeuser: '请留下联系方式,立即免费体验【附件下载】1次,招标文件/采购清单一键下载,商机更完整!',
  366. pc_mine_member_attach_learnmore: '请留下联系方式,我们会尽快联系您!部分招标公告信息等相关文件资料自主下载,帮助企业投标,客户分析、市场挖掘更高效。',
  367. // ent_portrait_freeuser: '请留下联系方式,立即免费体验【企业中标分析】1次,多维度可视化分析竞争对手!',
  368. // ent_portrait_winnerNewMsg_freeuser: '请留下联系方式,立即免费体验【企业中标分析】1次,多维度可视化分析竞争对手!',
  369. // ent_portrait_yearData_freeuser: '请留下联系方式,立即免费体验【企业中标分析】1次,多维度可视化分析竞争对手!',
  370. // ent_portrait_monthData_freeuser: '请留下联系方式,立即免费体验【企业中标分析】1次,多维度可视化分析竞争对手!',
  371. // ent_portrait_areaData_freeuser: '请留下联系方式,立即免费体验【企业中标分析】1次,多维度可视化分析竞争对手!',
  372. // ent_portrait_discountRate_freeuser: '请留下联系方式,立即免费体验【企业中标分析】1次,多维度可视化分析竞争对手!',
  373. // ent_portrait_top10_freeuser:'请留下联系方式,立即免费体验【企业中标分析】1次,多维度可视化分析竞争对手!',
  374. // ent_portrait_topShow_freeuser: '请留下联系方式,立即免费体验【企业中标分析】1次,多维度可视化分析竞争对手!',
  375. // buyer_portrait_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  376. // buyer_portrait_getNewMsg_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  377. // buyer_portrait_yearData_freeuser:'请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  378. // buyer_portrait_monthData_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  379. // buyer_portrait_moneyRange_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  380. // buyer_portrait_bidtypeData_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  381. // buyer_portrait_rate_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  382. // buyer_portrait_top12_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  383. // buyer_portrait_topShow_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  384. // buyer_portrait_withCapitalData_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  385. // buyer_portrait_withEstablishData_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  386. // buyer_portrait_withAreaData_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  387. // buyer_portrait_topAgencyData_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  388. // buyer_portrait_contacts_freeuser: '请留下联系方式,立即免费体验【采购单位全景分析】1次,帮你全面洞察采购单位,开发新客户!',
  389. ent_portrait_: '请留下联系方式,我们会尽快联系您!体验企业画像分析,帮你透视企业!',
  390. buyer_portrait_: '请留下联系方式,我们会尽快联系您!体验采购单位画像分析,为你挖掘客户!',
  391. member_attach: '请留下联系方式,我们会尽快联系您!体验附件下载特权,挖掘更多项目情报!',
  392. pc_index_bottom_adv: '请留下联系方式,我们会尽快联系您体验:市场分析周报/月报、竞对实时监控和分析、业主采购趋势/客户分析等',
  393. article_ent_portrait: '请留下联系方式,我们会尽快联系您!体验企业画像分析,帮你透视企业!',
  394. article_buyer_portrait: '请留下联系方式,我们会尽快联系您!体验采购单位画像分析,为你挖掘客户!',
  395. article_slogan: '请留下联系方式,我们会尽快联系您体验大会员全部功能!',
  396. member_: '请留下联系方式,我们会尽快联系您体验大会员全部功能!',
  397. function_: '请留下联系方式,我们会尽快联系您体验大会员全部功能!', // 大会员功能介绍
  398. jylab_see500_plus: '请留下联系方式,我们会尽快联系您!开通大会员可查看更多招标项目,实时监控更多潜在商机!', // 标讯搜索500条
  399. article_purchase_intention: '留下您的联系方式,我们会尽快和您联系。提前介入项目,助您轻松中标。', // 三级页-采购意向
  400. article_proposed_project: '留下您的联系方式,我们会尽快和您联系。提前介入项目,助您轻松中标。', // 三级页-拟建项目
  401. 'ent-manage-pc': '欢迎留下联系方式,我们的大客户经理会在24小时内联系您!',
  402. "jyarticle_see3_plus_pc":"请完善个人信息,即刻享无限次查看标讯的权益,如需查看超前项目请联系客服:400-108-6670",
  403. 'activity_free_plan': '请完善信息,免费获取200剑鱼币',
  404. super_membership_day: '请留下联系方式,我们会尽快联系您体验大会员全部功能!',
  405. peugeot_supplier_regist:'请完善您的个人信息,抢先对接采购单位',
  406. peugeot_view_infor: '请留下联系方式,我们会尽快联系您体验大会员全部功能!'
  407. },
  408. isRefresh: false, // 留完资是否需要刷新页面
  409. sourceDescMap: {
  410. jyarticle_see3_plus_pc: '标讯详情页-无限次免费查看标讯的权益',
  411. pc_article_member_freeuse: '标讯详情页-免费体验大会员'
  412. }
  413. }
  414. },
  415. computed: {
  416. showOtherJob: function() {
  417. return this.form.job == '其他'
  418. },
  419. showCompany: function() {
  420. return this.form.mold === '公司'
  421. },
  422. showBranch: function () {
  423. // 切换到总裁或总经理之后 把之前选择的部门清空
  424. if (this.form.job.indexOf('总裁') > -1 || this.form.job.indexOf('总经理') > -1) {
  425. this.form.branch = ''
  426. }
  427. var zc = this.form.job.indexOf('总裁') > -1
  428. var zjl = this.form.job.indexOf('总经理') > -1
  429. return !(zc || zjl) && this.form.job
  430. },
  431. // 提交成功,确定按钮文案
  432. successConfirmText: function () {
  433. var passArr = ['activity_free_plan']
  434. if (passArr.indexOf(this.source) !== -1) {
  435. return '去领取'
  436. } else {
  437. return '我知道了'
  438. }
  439. },
  440. // 提交成功 提示文案
  441. successText: function() {
  442. if (this.source.indexOf('_freeuser') > -1 && this.source.indexOf('member_') === -1) {
  443. var text = ''
  444. // if (this.source.indexOf('buyer_portrait') > -1) {
  445. // text = '采购单位全景分析'
  446. // } else if (this.source.indexOf('ent_portrait') > -1) {
  447. // text = '企业中标分析'
  448. // } else
  449. if (this.source.indexOf('article_attach') > -1) {
  450. text = '附件下载'
  451. } else {
  452. return '我们会尽快联系您并预约演示时间,请耐心等待~您将获得免费体验大会员全部功能!'
  453. }
  454. return '恭喜您,成功解锁【' + text + '】权益1次。如需查看更多,请开通超级订阅,为您提供最新的商业情报,抢占先机。'
  455. } else {
  456. if (this.source.indexOf('ent-manage-pc') > -1) {
  457. return '我们会尽快联系您并预约演示时间,请耐心等待~<br>您将获得免费体验商机管理全部功能!'
  458. }
  459. if (this.source.indexOf('jyarticle_see3_plus_pc') > -1) {
  460. return '您已获得无限次免费查看标讯的权益,如需查看超前项目请联系客服:400-108-6670'
  461. }
  462. if (this.source === 'activity_free_plan') {
  463. return '完善信息任务已完成,快去领取剑鱼币吧~'
  464. }
  465. if (this.source === 'peugeot_supplier_regist') {
  466. return '我们会尽快联系您完成供应商报名,请耐心等待。'
  467. }
  468. if (this.source === 'pc_index_bid_data') {
  469. return '我们会尽快联系您并根据您的需求,提供最适合的产品演示服务,请耐心等待。'
  470. }
  471. if (this.source === 'pc_article_member_freeuse') {
  472. return '已收到您提交的免费体验大会员申请,我们会尽快联系您并预约演示时间。'
  473. }
  474. return '我们会尽快联系您并预约演示时间,请耐心等待~<br>您将获得免费体验大会员全部功能!'
  475. }
  476. }
  477. },
  478. mounted: function () {
  479. var that = this;
  480. $(document).on('click', function (e) {
  481. var dom = $('.company-name')[0];
  482. if (dom) {
  483. // 如果点击的区域不在自定义dom范围
  484. if (!dom.contains((e.target))) {
  485. that.showSearchResult = false
  486. }
  487. }
  488. })
  489. },
  490. beforeDestroy: function () {
  491. $(document).off('click')
  492. },
  493. methods: {
  494. // 点击我知道了
  495. knowHandle: function() {
  496. this.showSuccess = false
  497. if (this.isRefresh) {
  498. window.location.reload()
  499. }
  500. },
  501. // 不需要调留资接口 弹出留资弹框回调方法
  502. noCallApiFn: function(source, isRefresh) {
  503. this.isRefresh = isRefresh
  504. vm.source = source
  505. this.showForm = true
  506. this.calcTitleText(source)
  507. this.getOldInfo(source)
  508. },
  509. calcTitleText: function (source) {
  510. if (!source) return
  511. var text = ''
  512. for (var key in this.sourceTitleMap) {
  513. if (source.indexOf(key) !== -1) {
  514. text = this.sourceTitleMap[key]
  515. break
  516. }
  517. }
  518. // 判断收藏留资显示
  519. if (this.source == "article_collection"){
  520. for (var k in this.moduleShow) {
  521. this.moduleShow[k] = false
  522. }
  523. }
  524. // 判断阅读原文留资显示
  525. if (vm.source == "article_original"){
  526. for (var k in vm.moduleShow) {
  527. vm.moduleShow[k] = false
  528. }
  529. }
  530. if (text) {
  531. if (source.indexOf('_freeuser') > -1 && text.indexOf('【') > -1) {
  532. var r = text.match(/\【(.+?)\】/g)
  533. this.dialogTitleTop = '欢迎体验' + r[0].replace('【','').replace('】','')
  534. this.dialogTitle = text
  535. } else if(source.indexOf('ent-manage') > -1){
  536. this.dialogTitle = text
  537. this.dialogTitleTop = '欢迎体验剑鱼标讯商机管理'
  538. } else if (source.indexOf('jyarticle_see3_plus_pc') > -1){
  539. this.dialogTitle = text
  540. this.dialogTitleTop = '免费享无限次查看标讯体验'
  541. } else if (source === 'activity_free_plan') {
  542. this.dialogTitle = text
  543. this.dialogTitleTop = '完善信息'
  544. } else if (source === 'article_proposed_project' || source === 'article_purchase_intention') {
  545. this.dialogTitle = text
  546. this.dialogTitleTop = '欢迎体验剑鱼大会员'
  547. } else if (source === 'pc_article_member_freeuse') {
  548. this.dialogTitle = text
  549. this.dialogTitleTop = '免费体验大会员功能权益'
  550. }
  551. // else if (source.indexOf("article_collection") > -1){
  552. // this.dialogTitle = text
  553. // this.dialogTitleTop = "为给您匹配精准的推荐信息,请完善个人信息"
  554. // }
  555. else {
  556. this.dialogTitle = text
  557. this.dialogTitleTop = '欢迎体验剑鱼大会员'
  558. }
  559. for (var k in this.moduleShow) {
  560. this.moduleShow[k] = false
  561. }
  562. }
  563. },
  564. nameFocus:function(){
  565. this.$refs['ruleForm'].clearValidate(['name']);
  566. },
  567. phoneFocus:function(){
  568. this.$refs['ruleForm'].clearValidate(['phone']);
  569. },
  570. mailFocus:function(){
  571. this.$refs['ruleForm'].clearValidate(['mail']);
  572. },
  573. // 公司名称获取焦点时
  574. companyFocus: function() {
  575. this.$refs['ruleForm'].clearValidate(['companyName']);
  576. this.getResult(this.form.companyName)
  577. },
  578. otherFocus:function() {
  579. this.$refs['ruleForm'].clearValidate(['job','otherJob']);
  580. },
  581. // 是否留资
  582. isNeedSubmit: function(source, callback, dom,infoid,entranceType) {
  583. /*
  584. 三级页-阅读原文 article_original
  585. 三级页-收藏 article_collection
  586. 大会员落地页-免费体验 member_freeuse
  587. */
  588. this.calcTitleText(source)
  589. this.source = source
  590. var _this = this
  591. $.ajax({
  592. type:'GET',
  593. url:'/salesLeads/retainedCapital',
  594. data: {
  595. source: source
  596. },
  597. success:function (res) {
  598. // 判断当前信息否在其他页面留资 如果全部留资 直接弹窗提交成功
  599. if(entranceType=='freeDownload'){ //结构化数据调用留资弹框 单独判断个类型不影响原逻辑 表单如有更改可区分
  600. var checkKeys = ['name', 'phone','companyType', 'company', 'position','branch']
  601. }else{
  602. var checkKeys = ['name', 'phone','companyType', 'company', 'branch', 'position']
  603. }
  604. var sourceList = ['article_collection', 'article_original', 'jyarticle_see3_plus_app', 'jyarticle_see3_plus_pc', 'jyarticle_see3_plus_wx', 'jypush_see10_plus_app', 'jypush_see10_plus_wx']
  605. // var isCollect = sourceList.includes(source)
  606. // 兼容处理
  607. var isCollect = sourceList.indexOf(source) > -1
  608. if (infoid != ""){
  609. res.info.publish_id = infoid
  610. }
  611. var result = checkRequiredKeys(checkKeys, res.info)
  612. if (result) {
  613. // 包含这些source,不存记录
  614. // 非主动触发留资节点,每点击一次数据库不会记录
  615. if(!isCollect) {
  616. _this.showForm = true
  617. _this.setEchoInfo(res.info)
  618. } else {
  619. res.data.retainedCapital = false
  620. callback && callback(res)
  621. }
  622. switch (source) {
  623. case 'member_freeuse': {
  624. // _this.showSuccess = true
  625. break
  626. }
  627. case 'jyarticle_see3_plus_pc': {
  628. $(".detail-nj-btn").click(function(){
  629. $(".mask-zzz").hide()
  630. })
  631. break
  632. }
  633. case 'article_original': {
  634. _this.showSuccess = false
  635. break
  636. }
  637. case 'article_collection': {
  638. _this.showSuccess = false
  639. break
  640. }
  641. case 'pc_index_bottom_adv': {
  642. location.href = '/big/page/index'
  643. break
  644. }
  645. default: {
  646. // if (source.indexOf('_freeuser') > -1) {
  647. // _this.showSuccess = true
  648. // } else {
  649. // _this.showSuccess = true
  650. // }
  651. }
  652. }
  653. } else if (res.data) {
  654. window.isRetained = res.data.retainedCapital
  655. _this.isForce = res.data.fource
  656. if(window.isFree || !isCollect) {
  657. if (res.data.retainedCapital || !result) {
  658. _this.showForm = true
  659. // _this.getOldInfo(source)
  660. _this.setEchoInfo(res.info)
  661. _this.curDom = dom
  662. } else {
  663. callback && callback(res)
  664. }
  665. } else {
  666. callback && callback(res)
  667. }
  668. }
  669. }
  670. })
  671. },
  672. // 表单提交事件
  673. submitForm: function(formName) {
  674. var _this = this
  675. this.$refs[formName].validate(function (valid) {
  676. if (valid) {
  677. _this.formAjax(vm.source)
  678. _this.bigDocAjax()
  679. } else {
  680. console.log('error submit!!');
  681. return false;
  682. }
  683. });
  684. },
  685. // 快照页引流的文案埋点 留资提交时埋点
  686. bigDocAjax: function() {
  687. if (getParam('id')) {
  688. try {
  689. $.ajax({
  690. type: "POST",
  691. url: "/publicapply/drainage/bmt/" + getParam('id'),
  692. data: {
  693. p: 'ICRW'
  694. },
  695. success: function(r) {
  696. console.log(r)
  697. }
  698. })
  699. } catch (error) {
  700. console.log(error)
  701. }
  702. }
  703. },
  704. // 表单提交请求
  705. formAjax: function(source, info) {
  706. try {
  707. var infoid = window.location.pathname.split("/")[3].split(".html")[0]
  708. } catch (error) {}
  709. var isProDetail = window.location.pathname.indexOf('/article/content')
  710. var params = {
  711. source: source,
  712. name: this.form.name,
  713. phone: this.form.phone,
  714. mail: this.form.mail,
  715. // province: this.form.region[0],
  716. // city: this.form.region[1] ? this.form.region[1] : '',
  717. industry: this.form.industry.join('_'),
  718. // hireType: this.form.mold, // 受雇类型值
  719. company: this.form.companyName, // 公司名称
  720. companyType: this.form.companyType.join(','),
  721. position: this.form.job == '其他' ? ('其他/' + this.form.otherJob) : this.form.job,
  722. // company_size: this.form.scale,
  723. // workScope: this.form.business,
  724. // partnerNeeds: this.form.need,
  725. // agree: this.form.agreeChecked,
  726. branch: this.form.branch.indexOf('总裁') > -1 || this.form.branch.indexOf('总经理') > -1 ? '' : this.form.branch,
  727. origin: location.origin,
  728. source_desc: this.sourceDescMap[this.source]
  729. }
  730. if (infoid != "" && isProDetail != -1){
  731. params.publish_id = infoid
  732. }
  733. if (info) {
  734. params = info
  735. params.source = source
  736. }
  737. var _this = this
  738. $.ajax({
  739. type:'POST',
  740. url:'/salesLeads/collectInfo',
  741. contentType: "application/json;charset=utf-8",
  742. data: JSON.stringify(params),
  743. success:function (res) {
  744. if (res.data) {
  745. _this.showForm = false
  746. typeof collectSubmitCallback === 'function' ? collectSubmitCallback(source, res.data) : null
  747. switch (source) {
  748. // 标讯详情页免费体验留完资 需要自动刷新
  749. case 'pc_article_member_freeuse': {
  750. _this.showSuccess = true
  751. _this.isRefresh = true
  752. }
  753. case 'member_freeuse': {
  754. _this.showSuccess = true
  755. break
  756. }
  757. case 'article_original': {
  758. // 如果是阅读原文点击的 留完用户资料执行原点击操作
  759. // $(".com-original").trigger('click')
  760. // $(".mask-zz").hide()
  761. // $(".dialog-container").hide()
  762. break
  763. }
  764. case 'article_collection': {
  765. // $('#bidCollect').trigger('click') // 三级页收藏事件
  766. break
  767. }
  768. case 'article_collection': {
  769. // $('#bidCollect').trigger('click') // 三级页收藏事件
  770. // 单个收藏事件传当前点击的dom
  771. if(_this.curDom) {
  772. _this.curDom.trigger('click') // 列表页单个收藏事件
  773. _this.curDom = null
  774. } else {
  775. $('#bid-collect').trigger('click') // 列表页批量收藏事件
  776. }
  777. break
  778. }
  779. case 'jyarticle_see3_plus_pc':{
  780. _this.showSuccess = true
  781. _this.isRefresh = true
  782. // location.reload()
  783. break
  784. }
  785. case 'pc_index_bottom_adv': {
  786. location.href = '/big/page/index'
  787. break
  788. }
  789. default: {
  790. _this.showSuccess = true
  791. break
  792. }
  793. }
  794. }
  795. }
  796. })
  797. },
  798. // 手机号输入框input事件
  799. inputPhone: function(val) {
  800. this.form.phone = val.replace(/[^\d]/g,'')
  801. },
  802. // 查询表单回显信息
  803. getOldInfo: function(source) {
  804. var _this = this
  805. $.ajax({
  806. type:'POST',
  807. url:'/salesLeads/retainedCapital?t=' + Date.now(),
  808. data: {
  809. source: source
  810. },
  811. success:function (res) {
  812. if (res && res.info) {
  813. res.data = res.info
  814. }
  815. if (res.data) {
  816. _this.form.name = res.data.name ? res.data.name : ''
  817. _this.form.phone = res.data.phone ? res.data.phone : ''
  818. _this.form.mail = res.data.mail ? res.data.mail : ''
  819. if (res.data.province && res.data.city) {
  820. _this.form.region = [res.data.province, res.data.city]
  821. } else if (res.data.province && !res.data.city) {
  822. _this.form.region = [res.data.province]
  823. } else {
  824. _this.form.region = []
  825. }
  826. _this.form.industry = res.data.industry ? res.data.industry.split('_') : []
  827. _this.form.mold = res.data.hireType ? res.data.hireType : '公司'
  828. _this.form.companyName = res.data.company ? res.data.company : ''
  829. _this.form.companyType = res.data.companyType ? res.data.companyType.split(',') : []
  830. if (res.data.position) {
  831. if (jobJson.indexOf(res.data.position) == -1) {
  832. // _this.form.job = '其他'
  833. // _this.form.otherJob = res.data.position.replace('其他/', '')
  834. _this.form.job = ''
  835. _this.form.otherJob = ''
  836. } else {
  837. _this.form.job = res.data.position
  838. }
  839. } else {
  840. _this.form.job = ''
  841. }
  842. _this.form.scale = res.data.company_size ? res.data.company_size : ''
  843. _this.form.business = res.data.workScope ? res.data.workScope : ''
  844. _this.form.need = res.data.partnerNeeds ? res.data.partnerNeeds : ''
  845. _this.form.agreeChecked = res.data.agree == undefined ? true : res.data.agree
  846. _this.form.branch = res.data.branch || ''
  847. }
  848. }
  849. })
  850. },
  851. // 企业名称联想
  852. getResult:function(name) {
  853. // 名称为空或长度小于2不发请求
  854. if (!name || name.length < 2) return
  855. var _this = this
  856. $.ajax({
  857. type:'POST',
  858. url:'/jypay/user/company/association',
  859. data: {
  860. name: name,
  861. companyCount:10
  862. },
  863. heads : {
  864. 'content-type': 'application/x-www-form-urlencoded'
  865. },
  866. success:function (res) {
  867. console.log(res)
  868. if (res.data && res.data.length > 0) {
  869. var result = []
  870. res.data.map(function(item){
  871. item = _this.brightKeyword(item)
  872. result.push(item)
  873. return result
  874. })
  875. _this.companyList = result
  876. _this.showSearchResult = true
  877. }
  878. }
  879. })
  880. },
  881. searchCompany: debounce(function(val){
  882. if(val === '') { this.showSearchResult = false}
  883. this.getResult(val)
  884. }, 600),
  885. // 选择联想出来的公司名称
  886. selectCompany: function(item) {
  887. this.form.companyName = item.replace(/<.*?>/ig, '')
  888. this.showSearchResult = false
  889. },
  890. // 关键词高亮
  891. brightKeyword: function (val) {
  892. var name = this.form.companyName
  893. if (val.indexOf(name) !== -1) {
  894. return val.replace(name, "<font style='color:#2ABED1;'>" + name + "</font>")
  895. } else {
  896. return val
  897. }
  898. },
  899. // 暂不提供
  900. cancelForm: function() {
  901. this.showForm = false
  902. this.showSearchResult=false
  903. this.form.name = ''
  904. this.form.phone = ''
  905. this.form.mail = ''
  906. this.form.industry = []
  907. this.form.companyName = ''
  908. this.form.companyType = []
  909. this.form.job = ''
  910. this.form.otherJob = ''
  911. this.form.scale = ''
  912. this.form.business = ''
  913. this.form.need = ''
  914. },
  915. setEchoInfo: function (data) {
  916. if (data) {
  917. this.form.name = data.name ? data.name : ''
  918. this.form.phone = data.phone ? data.phone : ''
  919. this.form.mail = data.mail ? data.mail : ''
  920. if (data.province && data.city) {
  921. this.form.region = [data.province, data.city]
  922. } else if (data.province && !data.city) {
  923. this.form.region = [data.province]
  924. } else {
  925. this.form.region = []
  926. }
  927. this.form.industry = data.industry ? data.industry.split('_') : []
  928. this.form.mold = data.hireType ? data.hireType : '公司'
  929. this.form.companyName = data.company ? data.company : ''
  930. this.form.companyType = data.companyType ? data.companyType.split(',') : []
  931. if (data.position) {
  932. if (jobJson.indexOf(data.position) == -1) {
  933. this.form.job = ''
  934. this.form.otherJob = ''
  935. } else {
  936. this.form.job = data.position
  937. }
  938. } else {
  939. this.form.job = ''
  940. }
  941. this.form.scale = data.company_size ? data.company_size : ''
  942. this.form.business = data.workScope ? data.workScope : ''
  943. this.form.need = data.partnerNeeds ? data.partnerNeeds : ''
  944. this.form.agreeChecked = data.agree == undefined ? true : data.agree
  945. this.form.branch = data.branch || ''
  946. }
  947. }
  948. }
  949. })