115.js 72 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097
  1. exports.ids = [115];
  2. exports.modules = {
  3. /***/ 102:
  4. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5. "use strict";
  6. const factory = function () {
  7. var COOKIE_APP_KEY = 'x_app';
  8. function setupWebViewJavascriptBridge(callback) {
  9. if (window.WebViewJavascriptBridge) {
  10. return callback(window.WebViewJavascriptBridge);
  11. }
  12. if (window.WVJBCallbacks) {
  13. return window.WVJBCallbacks.push(callback);
  14. }
  15. window.WVJBCallbacks = [callback];
  16. var WVJBIframe = document.createElement('iframe');
  17. WVJBIframe.style.display = 'none';
  18. WVJBIframe.src = 'https://__bridge_loaded__';
  19. document.documentElement.appendChild(WVJBIframe);
  20. setTimeout(function () {
  21. document.documentElement.removeChild(WVJBIframe);
  22. }, 0);
  23. }
  24. var compareVersions = function () {
  25. var semver = /^v?(?:\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+))?(?:-[\da-z\-]+(?:\.[\da-z\-]+)*)?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i;
  26. function indexOrEnd(str, q) {
  27. return str.indexOf(q) === -1 ? str.length : str.indexOf(q);
  28. }
  29. function split(v) {
  30. var c = v.replace(/^v/, '').replace(/\+.*$/, '');
  31. var patchIndex = indexOrEnd(c, '-');
  32. var arr = c.substring(0, patchIndex).split('.');
  33. arr.push(c.substring(patchIndex + 1));
  34. return arr;
  35. }
  36. function tryParse(v) {
  37. return isNaN(Number(v)) ? v : Number(v);
  38. }
  39. function validate(version) {
  40. if (typeof version !== 'string') {
  41. throw new TypeError('Invalid argument expected string');
  42. }
  43. if (!semver.test(version)) {
  44. throw new Error('Invalid argument not valid semver (\'' + version + '\' received)');
  45. }
  46. }
  47. function compareVersions(v1, v2) {
  48. [v1, v2].forEach(validate);
  49. var s1 = split(v1);
  50. var s2 = split(v2);
  51. for (var i = 0; i < Math.max(s1.length - 1, s2.length - 1); i++) {
  52. var n1 = parseInt(s1[i] || 0, 10);
  53. var n2 = parseInt(s2[i] || 0, 10);
  54. if (n1 > n2) return 1;
  55. if (n2 > n1) return -1;
  56. }
  57. var sp1 = s1[s1.length - 1];
  58. var sp2 = s2[s2.length - 1];
  59. if (sp1 && sp2) {
  60. var p1 = sp1.split('.').map(tryParse);
  61. var p2 = sp2.split('.').map(tryParse);
  62. for (i = 0; i < Math.max(p1.length, p2.length); i++) {
  63. if (p1[i] === undefined || typeof p2[i] === 'string' && typeof p1[i] === 'number') return -1;
  64. if (p2[i] === undefined || typeof p1[i] === 'string' && typeof p2[i] === 'number') return 1;
  65. if (p1[i] > p2[i]) return 1;
  66. if (p2[i] > p1[i]) return -1;
  67. }
  68. } else if (sp1 || sp2) {
  69. return sp1 ? -1 : 1;
  70. }
  71. return 0;
  72. }
  73. ;
  74. var operatorResMap = {
  75. 'gt': [1],
  76. 'gte': [0, 1],
  77. 'eq': [0],
  78. 'lte': [-1, 0],
  79. 'lt': [-1]
  80. };
  81. compareVersions.compare = function (operator, v1, v2) {
  82. var res = compareVersions(v1, v2);
  83. return operatorResMap[operator].indexOf(res) > -1;
  84. };
  85. return compareVersions;
  86. }();
  87. function getCookie(key) {
  88. return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(key).replace(/[-.+*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null;
  89. }
  90. function getAppInfo() {
  91. var val = getCookie(COOKIE_APP_KEY);
  92. var matched = val && /^(ios|android)\ ((?:\d\.?)+)$/.exec(val);
  93. if (!matched) {
  94. return null;
  95. }
  96. return {
  97. os: matched[1],
  98. version: matched[2]
  99. };
  100. }
  101. function compareAppVersion(operator, version) {
  102. return !!this.appInfo && compareVersions.compare(operator, this.appInfo.version, version);
  103. }
  104. function invoke(fn, data, cb) {
  105. if (this.isIos && this.compareAppVersion('gte', '4.22.0')) {
  106. setupWebViewJavascriptBridge(function (bridge) {
  107. bridge.callHandler(fn, data, cb);
  108. });
  109. return;
  110. }
  111. if (!this.root) {
  112. console.warn('Bridge invoke ' + fn + ' skipped.');
  113. return null;
  114. }
  115. if (this.isAndroid) {
  116. if (typeof this.root[fn] === 'function') {
  117. return data ? this.root[fn](data) : this.root[fn]();
  118. } else {
  119. return null;
  120. }
  121. } else {
  122. return this.root(fn, data);
  123. }
  124. }
  125. function load(url) {
  126. window.location.href = url;
  127. }
  128. function login() {
  129. if (!this.appInfo) {
  130. return;
  131. }
  132. this.load('proginn://login?backToPage=true');
  133. }
  134. function back() {
  135. if (!this.appInfo) {
  136. window.history.back();
  137. } else {
  138. if (this.isIos && this.compareAppVersion('gte', '4.22.0')) {
  139. this.invoke('back');
  140. } else {
  141. this.invoke('back_page');
  142. }
  143. }
  144. }
  145. function loadUserData(data) {
  146. if (this.isAndroid) {
  147. this.invoke('user_load', data);
  148. } else if (this.compareAppVersion('lt', '4.22.0')) {
  149. this.invoke('user_load', {
  150. userInfo: data
  151. });
  152. } else {
  153. this.invoke('loadUserData', data);
  154. }
  155. }
  156. function loadShareData(data) {
  157. if (this.isAndroid) {
  158. this.invoke('load_share_data', JSON.stringify(data));
  159. } else if (this.compareAppVersion('lt', '4.22.0')) {
  160. this.invoke('load_share_data', data);
  161. } else {
  162. this.invoke('loadShareData', data);
  163. }
  164. }
  165. function setNavigationBarColor(hex) {
  166. if (this.isAndroid) {
  167. window.appBridge.setTitleBarColor(hex);
  168. } else if (this.compareAppVersion('lt', '4.22.0')) {
  169. this.invoke('setTitleBarColor', hex);
  170. } else {
  171. this.invoke('setNavigationBarColor', hex);
  172. }
  173. }
  174. function setNavigationBarTitle(text) {
  175. this.invoke('setNavigationBarTitle', text);
  176. }
  177. function close() {
  178. if (this.isAndroid || this.compareAppVersion('lt', '4.22.0')) {
  179. this.invoke('finishActivity');
  180. } else {
  181. this.invoke('close');
  182. }
  183. }
  184. var ua = window.navigator.userAgent;
  185. var appInfo = getAppInfo();
  186. var isIos = /iP(hone|ad|od)/.test(ua) || appInfo && appInfo.os === 'ios' || false;
  187. var isAndroid = /Android/.test(ua) || appInfo && appInfo.os === 'android' || false;
  188. return {
  189. get isInApp() {
  190. return !!(appInfo || window.app_event);
  191. },
  192. root: window.app_event || window.appBridge,
  193. appInfo: appInfo,
  194. isIos: isIos,
  195. isAndroid: isAndroid,
  196. compareAppVersion: compareAppVersion,
  197. invoke: invoke,
  198. load: load,
  199. login: login,
  200. back: back,
  201. close: close,
  202. loadUserData: loadUserData,
  203. loadShareData: loadShareData,
  204. setNavigationBarColor: setNavigationBarColor,
  205. setNavigationBarTitle: setNavigationBarTitle
  206. };
  207. };
  208. const bridge = false ? undefined : {};
  209. /* harmony default export */ __webpack_exports__["a"] = (bridge);
  210. /***/ }),
  211. /***/ 139:
  212. /***/ (function(module, exports) {
  213. // Exports
  214. module.exports = {};
  215. /***/ }),
  216. /***/ 167:
  217. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  218. "use strict";
  219. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GenType; });
  220. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return HashIDUtil; });
  221. const GenType = {
  222. // 三位类型编码 一定不能大于280
  223. TYPE_RECRUIT: '100',
  224. TYPE_SERVICE_CASE: '110',
  225. TYPE_SERVICE_PROVIDER: '120',
  226. TYPE_TOPIC: '130',
  227. TYPE_VIDEO: '140'
  228. };
  229. class HashIDUtil {
  230. getHashID(type, id) {
  231. let idNew = `000000000000${id}`.slice(-12);
  232. return this.dec2hex(`${type}${idNew}`).toLowerCase();
  233. }
  234. dec2hex(number) {
  235. number = Number(number);
  236. let hexValues = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'];
  237. let hexval = '';
  238. while (number !== 0) {
  239. hexval = hexValues[number % 16] + hexval;
  240. number = Math.floor(number / 16);
  241. }
  242. return hexval;
  243. }
  244. }
  245. /***/ }),
  246. /***/ 220:
  247. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  248. "use strict";
  249. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DealSeoData; });
  250. class DealSeoData {
  251. constructor({
  252. $axios,
  253. req,
  254. app,
  255. redirect,
  256. store
  257. }, recruitData) {
  258. this.$axios = $axios;
  259. this.req = req;
  260. this.app = app;
  261. this.redirect = redirect;
  262. this.store = store;
  263. this.selected = {
  264. city: 0,
  265. direction: 0,
  266. //职业角色 大
  267. directionSmall: 0,
  268. workType: 0
  269. };
  270. this.recruitData = recruitData;
  271. }
  272. async dealData() {
  273. let {
  274. name,
  275. path,
  276. params,
  277. fullPath
  278. } = this.app.context.route;
  279. let typeList = await this.getTypeList();
  280. this.typeList = typeList;
  281. let list = [],
  282. keys = [];
  283. switch (name) {
  284. case "JobListSeoIndex":
  285. case "job_$":
  286. case "job":
  287. case "JobListSeoIndex_$":
  288. let match = params.pathMatch || '';
  289. list = match.split('/').map(item => item.toLocaleLowerCase());
  290. list.length = Math.min(list.length, 3); //防止url超出
  291. keys = Object.keys(typeList);
  292. break;
  293. case "JobListSeoDetail":
  294. break;
  295. } //3 * 3 * n的循环 n < 100
  296. list.forEach(item => {
  297. keys.forEach(key => {
  298. typeList[key].list.forEach(typeItem => {
  299. if (typeItem.slug === item) {
  300. this.selected[key] = typeItem.id;
  301. this.selected[key + 'Name'] = typeItem.name;
  302. this.selected[key + 'Slug'] = typeItem.slug;
  303. if (key === 'city') {
  304. this.selected["provice"] = typeItem.prov_id;
  305. }
  306. if (key === "direction" && typeItem.children && typeItem.children.length > 1) {
  307. typeList[key].smallList = typeItem.children;
  308. this.selected['directionSmall'] = 0;
  309. this.selected['directionSmallName'] = "全部";
  310. }
  311. }
  312. if (key === "direction" && Array.isArray(typeItem.children)) {
  313. //查询是否在子分类
  314. typeItem.children.forEach(child => {
  315. if (child.slug === item) {
  316. this.selected['direction'] = typeItem.id;
  317. this.selected['directionName'] = typeItem.name;
  318. this.selected['directionSlug'] = typeItem.slug;
  319. this.selected['directionSmall'] = child.id;
  320. this.selected['directionSmallName'] = child.name;
  321. this.selected['directionSmallSlug'] = child.slug;
  322. typeList[key].smallList = typeItem.children;
  323. }
  324. });
  325. }
  326. });
  327. });
  328. });
  329. return {
  330. selected: this.selected,
  331. footer: await this.getFooterData()
  332. };
  333. }
  334. async getTypeList() {
  335. let res = await this.$axios.get('/api/recruit/get_options');
  336. let typeList = {
  337. direction: {
  338. title: '职业角色',
  339. list: [],
  340. smallList: []
  341. },
  342. city: {
  343. title: '国内地区',
  344. list: []
  345. },
  346. workType: {
  347. title: '工作方式',
  348. list: [{
  349. id: 0,
  350. name: "全部"
  351. }, {
  352. id: 1,
  353. name: "兼职",
  354. slug: "yuancheng"
  355. }, {
  356. id: 2,
  357. name: "全职",
  358. slug: "zhuchang"
  359. }]
  360. }
  361. };
  362. if (Number(res.data.status) === 1) {
  363. // res.data.data.direction.unshift({ id: 0, name: "全部" })
  364. // res.data.data.cities.unshift({ id: 0, name: "全部" })
  365. Object.keys(res.data.data).forEach(key => {
  366. let item = res.data.data[key];
  367. if (Array.isArray(item)) {
  368. item.forEach(ii => {
  369. ii.name = ii.name || ii.occupation_name || "";
  370. ii.id = Number(ii.id || ii.occupation_id || 0);
  371. if (Array.isArray(ii.children)) {
  372. ii.children.forEach(jj => {
  373. jj.name = jj.name || jj.direction_name || "";
  374. jj.id = Number(jj.id || jj.direction_id || 0);
  375. });
  376. }
  377. });
  378. }
  379. });
  380. typeList.direction.list = [...res.data.data.direction];
  381. typeList.city.list = [...res.data.data.cities];
  382. }
  383. return typeList;
  384. }
  385. async getFooterData() {
  386. console.log('footer*** start'); //设置底部link列表
  387. const typeList = this.typeList;
  388. const {
  389. city,
  390. citySlug,
  391. cityName = "",
  392. direction,
  393. directionName = "",
  394. directionSlug,
  395. directionSmall,
  396. directionSmallName = "",
  397. directionSmallSlug
  398. } = this.selected;
  399. let job = directionSmall || direction;
  400. let jobName = directionSmallName === "全部" ? directionName : directionSmallName || directionName;
  401. let jobSlug = directionSmallSlug || directionSlug;
  402. let baseUrl = this.store.state.domainConfig.siteUrl;
  403. let jishuBaseUrl = this.store.state.domainConfig.jishuinUrl;
  404. let kaifainUrl = this.store.state.domainConfig.kaifainUrl;
  405. let jobUrl = this.store.state.domainConfig.jobUrl;
  406. let footer = {
  407. baseLink: baseUrl,
  408. link: [{
  409. name: "",
  410. data: []
  411. }, {
  412. name: "",
  413. data: []
  414. }]
  415. };
  416. if (city && job) {
  417. //兼职城市&岗位页 ${jobName}兼职招聘>${cityName}${jobName}兼职招聘,并赋予对应的url
  418. footer.link[0].name = `热门城市${jobName}兼职招聘`;
  419. footer.link[0].data = typeList.city.list.map(item => {
  420. return {
  421. name: `${item.name}${jobName}兼职招聘`,
  422. url: `${jobUrl}/${jobSlug}/${item.slug}/`
  423. };
  424. });
  425. footer.link[1].name = `${cityName}热门岗位兼职招聘`;
  426. footer.link[1].data = [];
  427. typeList.direction.list.forEach(item => {
  428. footer.link[1].data.push({
  429. name: `${cityName}${item.name}兼职招聘`,
  430. url: `${jobUrl}/${citySlug}/${item.slug}/`
  431. });
  432. if (Array.isArray(item.children)) {
  433. item.children.forEach(item1 => {
  434. footer.link[1].data.push({
  435. name: `${cityName}${item1.name}兼职招聘`,
  436. url: `${jobUrl}/${citySlug}/${item1.slug}/`
  437. });
  438. });
  439. }
  440. });
  441. } else if (city && !job) {
  442. //兼职城市
  443. footer.link[0].name = "热门城市兼职招聘";
  444. footer.link[0].data = typeList.city.list.map(item => {
  445. return {
  446. name: `${item.name}兼职招聘`,
  447. url: `${jobUrl}/${item.slug}/`
  448. };
  449. });
  450. footer.link[1].name = `${cityName}热门岗位兼职招聘`;
  451. footer.link[1].data = [];
  452. typeList.direction.list.forEach(item => {
  453. footer.link[1].data.push({
  454. name: `${cityName}${item.name}兼职招聘`,
  455. url: `${jobUrl}/${citySlug}/${item.slug}/`
  456. });
  457. if (Array.isArray(item.children)) {
  458. item.children.forEach(item1 => {
  459. footer.link[1].data.push({
  460. name: `${cityName}${item1.name}兼职招聘`,
  461. url: `${jobUrl}/${citySlug}/${item1.slug}/`
  462. });
  463. });
  464. }
  465. });
  466. } else if (!city && job) {
  467. //岗位页
  468. footer.link[0].name = "热门岗位兼职招聘";
  469. footer.link[0].data = [];
  470. typeList.direction.list.forEach(item => {
  471. footer.link[0].data.push({
  472. name: `${item.name}兼职招聘`,
  473. url: `${jobUrl}/${item.slug}/`
  474. });
  475. if (Array.isArray(item.children)) {
  476. item.children.forEach(item1 => {
  477. footer.link[0].data.push({
  478. name: `${item1.name}兼职招聘`,
  479. url: `${jobUrl}/${item1.slug}/`
  480. });
  481. });
  482. }
  483. });
  484. footer.link[1].name = `热门城市${jobName}兼职招聘`;
  485. footer.link[1].data = typeList.city.list.map(item => {
  486. return {
  487. name: `${item.name}${jobName}兼职招聘`,
  488. url: `${jobUrl}/${jobSlug}/${item.slug}/`
  489. };
  490. });
  491. } else {
  492. //非特定的url
  493. footer.link[0].name = "热门城市兼职招聘";
  494. footer.link[0].data = typeList.city.list.map(item => {
  495. return {
  496. name: `${item.name}兼职招聘`,
  497. url: `${jobUrl}/${item.slug}/`
  498. };
  499. });
  500. footer.link[1].name = "热门岗位兼职招聘";
  501. footer.link[1].data = [];
  502. typeList.direction.list.forEach(item => {
  503. footer.link[1].data.push({
  504. name: `${item.name}兼职招聘`,
  505. url: `${jobUrl}/${item.slug}/`
  506. });
  507. if (Array.isArray(item.children)) {
  508. item.children.forEach(item1 => {
  509. footer.link[1].data.push({
  510. name: `${item1.name}兼职招聘`,
  511. url: `${jobUrl}/${item1.slug}/`
  512. });
  513. });
  514. }
  515. });
  516. }
  517. console.log('footer***', footer);
  518. return footer;
  519. }
  520. }
  521. /***/ }),
  522. /***/ 221:
  523. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  524. "use strict";
  525. __webpack_require__.r(__webpack_exports__);
  526. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_bottomBanner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(139);
  527. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_bottomBanner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_bottomBanner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
  528. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_bottomBanner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_bottomBanner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  529. /* harmony default export */ __webpack_exports__["default"] = (_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_bottomBanner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
  530. /***/ }),
  531. /***/ 222:
  532. /***/ (function(module, exports) {
  533. // Exports
  534. module.exports = {};
  535. /***/ }),
  536. /***/ 223:
  537. /***/ (function(module, exports) {
  538. // Exports
  539. module.exports = {};
  540. /***/ }),
  541. /***/ 450:
  542. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  543. "use strict";
  544. // CONCATENATED MODULE: ./node_modules/@nuxt/webpack/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./components/job/bottomBanner.vue?vue&type=template&id=3ea91188&
  545. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{bottomBanner: !_vm.mobile, bottomBannerMobile: _vm.mobile}},[_vm._ssrNode("<div class=\"title\">兼职招聘</div> <div class=\"desc\">兼职招聘正式上线!40W+程序员、7000+企业方,急速触达!</div> <div class=\"btnList\"><div class=\"left\"><p>我要找兼职</p></div> <div class=\"right\"><p>我要招聘</p></div></div>")])}
  546. var staticRenderFns = []
  547. // CONCATENATED MODULE: ./components/job/bottomBanner.vue?vue&type=template&id=3ea91188&
  548. // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./components/job/bottomBanner.vue?vue&type=script&lang=js&
  549. //
  550. //
  551. //
  552. //
  553. //
  554. //
  555. //
  556. //
  557. //
  558. //
  559. //
  560. //
  561. //
  562. //
  563. //
  564. /* harmony default export */ var bottomBannervue_type_script_lang_js_ = ({
  565. props: [],
  566. components: {},
  567. data() {
  568. return {
  569. mobile: false
  570. };
  571. },
  572. computed: {},
  573. mounted() {},
  574. methods: {
  575. /** banner挑战 **/
  576. jumpToCatHandler() {
  577. location.href = this.$store.state.domainConfig.jobUrl + "/?from=top_nav";
  578. },
  579. needFindJobHandler() {
  580. this.$message.warning("请前往程序员客栈APP,发布兼职招聘");
  581. }
  582. }
  583. });
  584. // CONCATENATED MODULE: ./components/job/bottomBanner.vue?vue&type=script&lang=js&
  585. /* harmony default export */ var job_bottomBannervue_type_script_lang_js_ = (bottomBannervue_type_script_lang_js_);
  586. // EXTERNAL MODULE: ./node_modules/@nuxt/webpack/node_modules/vue-loader/lib/runtime/componentNormalizer.js
  587. var componentNormalizer = __webpack_require__(1);
  588. // CONCATENATED MODULE: ./components/job/bottomBanner.vue
  589. function injectStyles (context) {
  590. var style0 = __webpack_require__(221)
  591. if (style0.__inject__) style0.__inject__(context)
  592. }
  593. /* normalize component */
  594. var component = Object(componentNormalizer["a" /* default */])(
  595. job_bottomBannervue_type_script_lang_js_,
  596. render,
  597. staticRenderFns,
  598. false,
  599. injectStyles,
  600. null,
  601. "4cb63b58"
  602. )
  603. /* harmony default export */ var bottomBanner = __webpack_exports__["a"] = (component.exports);
  604. /***/ }),
  605. /***/ 493:
  606. /***/ (function(module, exports, __webpack_require__) {
  607. module.exports = __webpack_require__.p + "img/logo_icon_reverse2.9f995cd.jpg";
  608. /***/ }),
  609. /***/ 494:
  610. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  611. "use strict";
  612. __webpack_require__.r(__webpack_exports__);
  613. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_download_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(222);
  614. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_download_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_download_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
  615. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_download_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_download_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  616. /* harmony default export */ __webpack_exports__["default"] = (_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_download_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
  617. /***/ }),
  618. /***/ 495:
  619. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  620. "use strict";
  621. __webpack_require__.r(__webpack_exports__);
  622. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_id_vue_vue_type_style_index_0_lang_scss_scope_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(223);
  623. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_id_vue_vue_type_style_index_0_lang_scss_scope_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_id_vue_vue_type_style_index_0_lang_scss_scope_true___WEBPACK_IMPORTED_MODULE_0__);
  624. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_id_vue_vue_type_style_index_0_lang_scss_scope_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_id_vue_vue_type_style_index_0_lang_scss_scope_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  625. /* harmony default export */ __webpack_exports__["default"] = (_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_id_vue_vue_type_style_index_0_lang_scss_scope_true___WEBPACK_IMPORTED_MODULE_0___default.a);
  626. /***/ }),
  627. /***/ 760:
  628. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  629. "use strict";
  630. // ESM COMPAT FLAG
  631. __webpack_require__.r(__webpack_exports__);
  632. // CONCATENATED MODULE: ./node_modules/@nuxt/webpack/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./pages/job/detail/_id.vue?vue&type=template&id=713362e8&
  633. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.mobile)?_c('div',{staticClass:"jobDetailMobile wrapper mobile"},[_vm._ssrNode("<div class=\"contentArea\""+(_vm._ssrStyle(null,{height:_vm.isWeixinApp ? '100vh' : 'calc(100vh - 18.67vw)'}, null))+"><div class=\"header\"><div class=\"title-wrapper\"><div class=\"title\">"+_vm._ssrEscape(_vm._s(_vm.recruitData.title))+"</div> <div class=\"price\">"+_vm._ssrEscape(_vm._s(_vm.recruitData.salaryName))+"</div></div> <div class=\"require-list\"><div class=\"require-item\"><div class=\"require-label\">技能要求:</div> <div class=\"require-text\"><span>"+_vm._ssrEscape(_vm._s(_vm.recruitData.skills.map(function (s) { return s.name; }).join(',')))+"</span></div></div> <div class=\"require-item\"><span class=\"require-label\">经验要求:</span> <span class=\"require-text\">"+_vm._ssrEscape(_vm._s(_vm.recruitData.experienceName))+"</span></div></div> <div class=\"publish-info\"><div class=\"left\"><div"+(_vm._ssrClass("l userImage",_vm.calcUserVip))+"><img"+(_vm._ssrAttr("src",_vm.defaultIcon(_vm.recruitData.ownerInfo && _vm.recruitData.ownerInfo.iconUrl)))+" alt></div> <div class=\"r\"><div class=\"pName\">"+_vm._ssrEscape(_vm._s(_vm.recruitData.ownerInfo.nickname))+"</div> <div class=\"pTips\"><div class=\"tips1\">"+_vm._ssrEscape(_vm._s(_vm.recruitData.lineStatus || ''))+"</div> <div class=\"tips2\">"+_vm._ssrEscape(_vm._s(_vm.recruitData.replyStateFormat))+"</div></div></div></div> <div class=\"right\">"+_vm._ssrEscape(_vm._s(_vm.recruitData.auditAtFormat))+"</div></div></div> "+((_vm.recruitData.role==='owner')?("<div class=\"data-wrapper myJobDetail\"><div class=\"data-title\">招聘数据</div> <div class=\"value-box\"><div class=\"left\">\n 沟通中:\n <span>"+_vm._ssrEscape(_vm._s(_vm.recruitData.countTalk || 0))+"</span></div> <div class=\"right\">\n 已投递:\n <span>"+_vm._ssrEscape(_vm._s(_vm.recruitData.countApplied || 0))+"</span></div> <div class=\"right\">\n 浏览量:\n <span>"+_vm._ssrEscape(_vm._s(_vm.recruitData.pv || 0))+"</span></div> <div class=\"rightIcon\"></div></div></div>"):"<!---->")+" <div class=\"detail-wrapper\"><div class=\"detail-title\">详情描述</div> <div class=\"detail-text\">"+(_vm._s(_vm.whiteSpace(_vm.recruitData.description)))+"</div></div> <div class=\"company-wrapper\"><div class=\"data-title\">公司信息</div> <div class=\"value-box\"><div class=\"left\"><img"+(_vm._ssrAttr("src",_vm.defaultIcon(_vm.recruitData.companyInfo && _vm.recruitData.companyInfo.logo)))+" alt></div> <div class=\"center\"><div"+(_vm._ssrClass("ctitle",_vm.calcCompanyVip))+"><p>"+_vm._ssrEscape(_vm._s(_vm.recruitData.companyInfo.name))+"</p></div> <div class=\"cdesc\">"+_vm._ssrEscape(_vm._s(_vm.recruitData.companyInfo.description))+"</div></div> <div class=\"right\"><div class=\"rightIcon\"></div></div></div></div> <div class=\"tips-wrapper\"><div class=\"tips-title\">温馨提示</div> "+((_vm.recruitData.role==='owner')?("<div><div class=\"tips-text\">1.完善企业信息和岗位工作描述,有助于开发者了解岗位信息</div> <div class=\"tips-text\">2.您还可以每天刷新岗位,将其置于列表顶部</div> <div class=\"tips-text\">3.优质开发者推荐,开发票等服务可联系我们微信inn815</div></div>"):("<div><div class=\"tips-text\">如沟通过程中,发现需求方有不当行为,请立即联系客服处理!</div></div>"))+"</div></div> <div class=\"bottomArea\">"+((_vm.recruitData.role==='owner' && _vm.deviceType.app)?(((_vm.recruitData.status==='2')?("<div class=\"btn\">正在审核中</div>"):(_vm.recruitData.status==='3')?("<div class=\"btn-list\"><div class=\"btn-item\">刷新</div> <div class=\"btn-item\">关闭岗位</div></div>"):(_vm.recruitData.status==='4' || _vm.recruitData.status==='6')?("<div class=\"btn-list\"><div class=\"btn-item\">编辑</div> <div class=\"btn-item\">发布</div></div>"):"<!---->")):(_vm.recruitData.role==='developer' && _vm.deviceType.app)?(((_vm.recruitData.status==='3')?("<div class=\"btn-list\">"+((_vm.recruitData.workType === '1' || _vm.recruitData.workType === '2')?("<div"+(_vm._ssrClass("btn-item applyOrderBtn",{none: Number(_vm.recruitData.applicationState) === 1}))+(_vm._ssrStyle(null,{width: (_vm.recruitData.isActivation == 0 && _vm.recruitData.agencyPost == 1) ? '100%' : '46.13333vw'}, null))+">"+((_vm.recruitData.isVip)?("<img"+(_vm._ssrAttr("src",__webpack_require__(94)))+" alt=\"vip_icon\" class=\"vip-icon\">"):"<!---->")+_vm._ssrEscape("\n "+_vm._s(Number(_vm.recruitData.applicationState) === 1 ? '已申请接单' : '申请接单')+"\n ")+"</div>"):(_vm.recruitData.workType === '3')?("<div"+(_vm._ssrClass("btn-item applyBtn",{none: Number(_vm.recruitData.applicationState) === 1}))+(_vm._ssrStyle(null,{width: (_vm.recruitData.isActivation == 0 && _vm.recruitData.agencyPost == 1) ? '100%' : '46.13333vw'}, null))+">"+((_vm.recruitData.isVip)?("<img"+(_vm._ssrAttr("src",__webpack_require__(94)))+" alt=\"vip_icon\" class=\"vip-icon\">"):"<!---->")+_vm._ssrEscape("\n "+_vm._s(Number(_vm.recruitData.applicationState) === 1 ? '已投递' : '投递')+"\n ")+"</div>"):"<!---->")+" "+((!(_vm.recruitData.isActivation == 0 && _vm.recruitData.agencyPost == 1))?("<div class=\"btn-item\">"+((_vm.recruitData.isVip)?("<img"+(_vm._ssrAttr("src",__webpack_require__(94)))+" alt=\"vip_icon\" class=\"vip-icon\">"):"<!---->")+_vm._ssrEscape("\n "+_vm._s(Number(_vm.recruitData.chatState) === 1 ? '继续沟通' : '立即沟通')+"\n ")+"</div>"):"<!---->")+"</div>"):("<div class=\"contact-wrapper\""+(_vm._ssrStyle(null,{backgroundColor: _vm.recruitData.statusColor}, null))+"><p>"+_vm._ssrEscape(_vm._s(_vm.recruitData.statusName))+"</p></div>"))):(!_vm.isWeixinApp)?("<a"+(_vm._ssrAttr("href",_vm.downloadhref))+" class=\"downapp\">下载APP</a>"):"<!---->")+"</div> "+((_vm.showConfirm)?("<div class=\"confirmBox\"><div class=\"body\"><div class=\"desc\">您当前尚未签约,无法投递简历</div> <div class=\"button\"><div class=\"cancle\">暂不考虑</div> <div class=\"submit\">前往签约</div></div></div></div>"):"<!---->")+" "+((!_vm.deviceType.app && _vm.mobile && !_vm.isWeixinApp)?("<a"+(_vm._ssrAttr("href",_vm.downloadhref))+(_vm._ssrClass(null,{'downapp':_vm.isShowDownLoad}))+">下载APP</a>"):"<!---->")+" "+((_vm.isWeixinApp)?("<a href=\"javascript:void(0)\""+(_vm._ssrClass(null,{'downapp':_vm.isShowDownLoad}))+">立即沟通</a>"):"<!---->"))],2):_c('div',{staticClass:"jobDetail"},[_vm._ssrNode("<div class=\"breadcrumb\">"+(_vm._ssrList((_vm.breadcrumbList),function(item,index){return ("<a"+(_vm._ssrAttr("href",item.url))+(_vm._ssrAttr("title",item.name))+">"+((index!==_vm.breadcrumbList.length-1)?("<p>"+_vm._ssrEscape("\n "+_vm._s(item.name)+"\n ")+"<span> &gt; </span></p>"):("<h1>"+_vm._ssrEscape(_vm._s(item.name))+"</h1>"))+"</a>")}))+"</div> <div class=\"contentArea\"><div class=\"jobTitleArea\"><div class=\"jobTitle\">"+_vm._ssrEscape(_vm._s(_vm.recruitData.title))+"</div> <div class=\"jobPrice\">"+_vm._ssrEscape(_vm._s(_vm.recruitData.salaryName))+"</div></div> <div class=\"skills\">\n 技能要求:\n <span>"+_vm._ssrEscape(_vm._s(_vm.recruitData.skills.map(function (s) { return s.name; }).join(',')))+"</span></div> <div class=\"workTime\">\n 经验要求:\n <span>"+_vm._ssrEscape(_vm._s(_vm.recruitData.experienceName))+"</span></div> <div class=\"publishUser\"><div class=\"userInfo\"><div"+(_vm._ssrClass("img",_vm.calcUserVip))+"><img"+(_vm._ssrAttr("src",_vm.defaultIcon(_vm.recruitData.ownerInfo && _vm.recruitData.ownerInfo.iconUrl)))+" alt></div> <div class=\"name\">"+_vm._ssrEscape(_vm._s(_vm.recruitData.ownerInfo.nickname))+"</div></div> <div class=\"publishTime\"><span>"+_vm._ssrEscape(_vm._s(_vm.recruitData.auditAtFormat))+"</span></div></div> <div class=\"desc\"><div class=\"descTitle\">工作描述:</div> <div class=\"descValue\">"+(_vm._s(_vm.whiteSpace(_vm.recruitData.description)))+"</div></div> <div class=\"companyInfoArea\"><div class=\"companyTitle\">公司信息</div> <div class=\"companyInfo\"><div class=\"img\"><img"+(_vm._ssrAttr("src",_vm.defaultIcon(_vm.recruitData.companyInfo && _vm.recruitData.companyInfo.logo)))+" alt></div> <a"+(_vm._ssrAttr("href",(_vm.siteurl + "/company/" + (_vm.recruitData.companyInfo.uid))))+" target=\"_blank\""+(_vm._ssrClass("ctitle",_vm.calcCompanyVip))+">"+_vm._ssrEscape("\n "+_vm._s(_vm.recruitData.companyInfo.shortName || _vm.recruitData.companyInfo.name)+"\n ")+"</a></div></div> <div class=\"btnArea\"><div"+(_vm._ssrClass("btn submitNow",{noneClick: _vm.recruitData.role === 'owner'}))+"><p>立即沟通</p></div></div></div> "),_c('DownloadTips',{attrs:{"isShowToast":_vm.webShowQrCode},on:{"close":function($event){_vm.webShowQrCode = false}}}),_vm._ssrNode(" "),_c('SeoFooter',{staticStyle:{"margin-top":"30px"},attrs:{"data":_vm.footer}})],2)}
  634. var staticRenderFns = []
  635. // CONCATENATED MODULE: ./pages/job/detail/_id.vue?vue&type=template&id=713362e8&
  636. // EXTERNAL MODULE: external "mint-ui"
  637. var external_mint_ui_ = __webpack_require__(64);
  638. // EXTERNAL MODULE: ./node_modules/mint-ui/lib/style.css
  639. var style = __webpack_require__(95);
  640. // EXTERNAL MODULE: ./components/job/dealSeoFooter.js
  641. var dealSeoFooter = __webpack_require__(220);
  642. // EXTERNAL MODULE: ./components/SeoFooter.vue + 4 modules
  643. var SeoFooter = __webpack_require__(98);
  644. // EXTERNAL MODULE: ./components/job/bottomBanner.vue + 4 modules
  645. var bottomBanner = __webpack_require__(450);
  646. // CONCATENATED MODULE: ./node_modules/@nuxt/webpack/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./components/job/download.vue?vue&type=template&id=38faceaa&
  647. var downloadvue_type_template_id_38faceaa_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{connectUs: !_vm.mobile, connectUsMobile: _vm.mobile}},[_vm._ssrNode(((_vm.isShowToast)?("<div class=\"toastBox\"><div class=\"toastArea\"><div class=\"title\">打开APP扫描</div> <div class=\"qrcode\"><img"+(_vm._ssrAttr("src",_vm.qrCodeBase64))+" alt class=\"code\"> <img"+(_vm._ssrAttr("src",__webpack_require__(493)))+" alt class=\"logo\"></div> <div class=\"tips\">使用 <span>程序员客栈APP</span> 扫一扫 </div> <div class=\"tips\">立即与企业方沟通</div> <div class=\"notHave\">没有安装APP?</div> <div class=\"submitBtn\"><p>立即下载</p></div> <div class=\"closeIcon\"></div></div></div>"):"<!---->"))])}
  648. var downloadvue_type_template_id_38faceaa_staticRenderFns = []
  649. // CONCATENATED MODULE: ./components/job/download.vue?vue&type=template&id=38faceaa&
  650. // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./components/job/download.vue?vue&type=script&lang=js&
  651. //
  652. //
  653. //
  654. //
  655. //
  656. //
  657. //
  658. //
  659. //
  660. //
  661. //
  662. //
  663. //
  664. //
  665. //
  666. //
  667. //
  668. //
  669. //
  670. //
  671. //
  672. let qrcode = null;
  673. if (false) {}
  674. /* harmony default export */ var downloadvue_type_script_lang_js_ = ({
  675. props: ["source", "isShowToast", "sourceId"],
  676. components: {},
  677. data() {
  678. return {
  679. qrCodeBase64: "",
  680. mobile: this.$deviceType.isMobile()
  681. };
  682. },
  683. computed: {},
  684. mounted() {
  685. if (!this.mobile) {
  686. let baseUrl = this.$store.state.domainConfig.jobUrl;
  687. let jumpUrl = `${baseUrl}${location.pathname}`;
  688. this.createCode(jumpUrl);
  689. }
  690. },
  691. methods: {
  692. close() {
  693. this.$emit('close');
  694. },
  695. judgeToDownloadApp() {
  696. // 应用宝:https://sj.qq.com/myapp/detail.htm?apkName=com.proginn
  697. // iOS:https://apps.apple.com/cn/app/id979914687
  698. if (!this.$deviceType.app) {
  699. // let url = this.$deviceType.ios ?
  700. // "https://apps.apple.com/cn/app/id979914687" :
  701. // "https://sj.qq.com/myapp/detail.htm?apkName=com.proginn"
  702. location.href = "https://www.proginn.com/index/app";
  703. return true;
  704. }
  705. return false;
  706. },
  707. //创建二维码
  708. createCode(url) {
  709. console.log('warn', url);
  710. qrcode.toDataURL(url, {
  711. width: 250,
  712. margin: 0,
  713. errorCorrectionLevel: "H"
  714. }).then(res => {
  715. this.qrCodeBase64 = res;
  716. }).catch(err => {
  717. this.$toast.clear();
  718. this.$toast('生成二维码出错');
  719. console.warn(JSON.stringfy(err));
  720. });
  721. }
  722. }
  723. });
  724. // CONCATENATED MODULE: ./components/job/download.vue?vue&type=script&lang=js&
  725. /* harmony default export */ var job_downloadvue_type_script_lang_js_ = (downloadvue_type_script_lang_js_);
  726. // EXTERNAL MODULE: ./node_modules/@nuxt/webpack/node_modules/vue-loader/lib/runtime/componentNormalizer.js
  727. var componentNormalizer = __webpack_require__(1);
  728. // CONCATENATED MODULE: ./components/job/download.vue
  729. function injectStyles (context) {
  730. var style0 = __webpack_require__(494)
  731. if (style0.__inject__) style0.__inject__(context)
  732. }
  733. /* normalize component */
  734. var component = Object(componentNormalizer["a" /* default */])(
  735. job_downloadvue_type_script_lang_js_,
  736. downloadvue_type_template_id_38faceaa_render,
  737. downloadvue_type_template_id_38faceaa_staticRenderFns,
  738. false,
  739. injectStyles,
  740. null,
  741. "41f932ae"
  742. )
  743. /* harmony default export */ var download = (component.exports);
  744. // EXTERNAL MODULE: ./plugins/genHashId.js
  745. var plugins_genHashId = __webpack_require__(167);
  746. // EXTERNAL MODULE: external "vuex"
  747. var external_vuex_ = __webpack_require__(2);
  748. // EXTERNAL MODULE: ./plugins/deviceType.js
  749. var deviceType = __webpack_require__(19);
  750. // EXTERNAL MODULE: ./plugins/bridge.js
  751. var bridge = __webpack_require__(102);
  752. // EXTERNAL MODULE: ./assets/img/vip/vip_icon.png
  753. var vip_icon = __webpack_require__(94);
  754. var vip_icon_default = /*#__PURE__*/__webpack_require__.n(vip_icon);
  755. // EXTERNAL MODULE: external "qs"
  756. var external_qs_ = __webpack_require__(33);
  757. var external_qs_default = /*#__PURE__*/__webpack_require__.n(external_qs_);
  758. // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./pages/job/detail/_id.vue?vue&type=script&lang=js&
  759. //
  760. //
  761. //
  762. //
  763. //
  764. //
  765. //
  766. //
  767. //
  768. //
  769. //
  770. //
  771. //
  772. //
  773. //
  774. //
  775. //
  776. //
  777. //
  778. //
  779. //
  780. //
  781. //
  782. //
  783. //
  784. //
  785. //
  786. //
  787. //
  788. //
  789. //
  790. //
  791. //
  792. //
  793. //
  794. //
  795. //
  796. //
  797. //
  798. //
  799. //
  800. //
  801. //
  802. //
  803. //
  804. //
  805. //
  806. //
  807. //
  808. //
  809. //
  810. //
  811. //
  812. //
  813. //
  814. //
  815. //
  816. //
  817. //
  818. //
  819. //
  820. //
  821. //
  822. //
  823. //
  824. //
  825. //
  826. //
  827. //
  828. //
  829. //
  830. //
  831. //
  832. //
  833. //
  834. //
  835. //
  836. //
  837. //
  838. //
  839. //
  840. //
  841. //
  842. //
  843. //
  844. //
  845. //
  846. //
  847. //
  848. //
  849. //
  850. //
  851. //
  852. //
  853. //
  854. //
  855. //
  856. //
  857. //
  858. //
  859. //
  860. //
  861. //
  862. //
  863. //
  864. //
  865. //
  866. //
  867. //
  868. //
  869. //
  870. //
  871. //
  872. //
  873. //
  874. //
  875. //
  876. //
  877. //
  878. //
  879. //
  880. //
  881. //
  882. //
  883. //
  884. //
  885. //
  886. //
  887. //
  888. //
  889. //
  890. //
  891. //
  892. //
  893. //
  894. //
  895. //
  896. //
  897. //
  898. //
  899. //
  900. //
  901. //
  902. //
  903. //
  904. //
  905. //
  906. //
  907. //
  908. //
  909. //
  910. //
  911. //
  912. //
  913. //
  914. //
  915. //
  916. //
  917. //
  918. //
  919. //
  920. //
  921. //
  922. //
  923. //
  924. //
  925. //
  926. //
  927. //
  928. //
  929. //
  930. //
  931. //
  932. //
  933. //
  934. //
  935. //
  936. //
  937. //
  938. //
  939. //
  940. //
  941. //
  942. //
  943. //
  944. //
  945. //
  946. //
  947. //
  948. //
  949. //
  950. //
  951. //
  952. //
  953. //
  954. //
  955. //
  956. //
  957. //
  958. //
  959. //
  960. //
  961. //
  962. //
  963. //
  964. //
  965. //
  966. //
  967. //
  968. //
  969. //
  970. //
  971. //
  972. //
  973. //
  974. //
  975. //
  976. //
  977. //
  978. //
  979. //
  980. //
  981. //
  982. //
  983. //
  984. //
  985. //
  986. //
  987. //
  988. //
  989. //
  990. //
  991. //
  992. //
  993. //
  994. // '审核中', // 2
  995. // '开放中', //3
  996. // '停止招聘', //4
  997. // '已删除', //5
  998. // '审核失败', //6
  999. const COMPANY = 1;
  1000. const PERSONAL = 2;
  1001. /* harmony default export */ var _idvue_type_script_lang_js_ = ({
  1002. name: "JobListSeoDetail",
  1003. components: {
  1004. SeoFooter: SeoFooter["a" /* default */],
  1005. BottomBanner: bottomBanner["a" /* default */],
  1006. DownloadTips: download
  1007. },
  1008. data() {
  1009. return {
  1010. VipIcon: vip_icon_default.a,
  1011. showConfirm: false,
  1012. showConfirmWord: "",
  1013. webShowQrCode: false,
  1014. qrCodeBase64: "",
  1015. downloadhref: "",
  1016. isShowDownLoad: false,
  1017. isWeixinApp: true,
  1018. siteurl: ""
  1019. };
  1020. },
  1021. head() {
  1022. console.log(this.recruitData);
  1023. let title = this.$deviceType.app ? this.recruitData.title : `【${this.recruitData.directionName}招聘】_${this.recruitData.companyInfo.name}招聘-程序员客栈`;
  1024. let salary = this.recruitData.salaryName;
  1025. let salaryText = salary.replace('¥', '').replace('/月', '');
  1026. return {
  1027. title: title,
  1028. meta: [{
  1029. name: "keywords",
  1030. content: `${this.recruitData.directionName},${this.recruitData.directionName}招聘,${this.recruitData.companyInfo.name}${this.recruitData.directionName}招聘`
  1031. }, {
  1032. name: "descrption",
  1033. content: `${this.recruitData.companyInfo.name}${this.recruitData.directionName}招聘,${this.recruitData.directionName}招聘,薪资:${salaryText},地点:${this.recruitData.cityName},要求:${this.recruitData.experienceName},招聘者${this.recruitData.lineStatus}在线,随时随地直接开聊。`
  1034. }, {
  1035. name: "h1",
  1036. content: `${this.recruitData.title}`
  1037. }],
  1038. link: [{
  1039. rel: "canonical",
  1040. href: this.nowUrl
  1041. }]
  1042. };
  1043. },
  1044. async asyncData({ ...params
  1045. }) {
  1046. try {
  1047. params.store.commit("updateNoneCommonFooter", true);
  1048. } catch (e) {
  1049. console.log("updateNoneCommonFooter", e);
  1050. }
  1051. const {
  1052. android
  1053. } = params.app.$deviceType;
  1054. const {
  1055. id: newTid
  1056. } = params.app.context.route.params || {};
  1057. let recruitId = newTid.replace(".html", "");
  1058. if (true) {
  1059. const {
  1060. path,
  1061. fullPath
  1062. } = params.app.context && params.app.context.route || {}; //将id都转到hashId
  1063. if (recruitId && recruitId.length !== 12 && Number(recruitId) === Number(recruitId)) {
  1064. let genHashId = new plugins_genHashId["b" /* HashIDUtil */]();
  1065. let nowId = genHashId.getHashID(plugins_genHashId["a" /* GenType */].TYPE_RECRUIT, recruitId);
  1066. let path1 = path.replace(newTid, nowId);
  1067. let reditUrl = path.replace(path, path1);
  1068. params.redirect(301, reditUrl);
  1069. return;
  1070. }
  1071. }
  1072. const p = {
  1073. recruitId
  1074. };
  1075. let recruitData = {
  1076. companyInfo: {},
  1077. ownerInfo: {},
  1078. skills: []
  1079. };
  1080. let refreshInfo = {};
  1081. let res = await params.$axios.$post("/api/recruit/getRecruit", p);
  1082. if (res.status === 1) {
  1083. recruitData = res.data;
  1084. }
  1085. let purchaseRefresh = await params.$axios.$post("/api/recruit/purchaseRefresh");
  1086. if (purchaseRefresh.status === 1) {
  1087. refreshInfo = purchaseRefresh.data.product_info;
  1088. }
  1089. let domainConfig = params.store.state.domainConfig;
  1090. /** 处理面包屑导航 **/
  1091. let dealBreadcrumbList = [{
  1092. name: "首页",
  1093. url: "/"
  1094. }, {
  1095. name: "兼职招聘",
  1096. url: domainConfig.jobUrl + "/"
  1097. }, {
  1098. name: recruitData.title,
  1099. url: domainConfig.jobUrl + `/d/${recruitData.hashId}`
  1100. }];
  1101. let dealSeoFooterObj = new dealSeoFooter["a" /* default */](params, recruitData);
  1102. let footer = await dealSeoFooterObj.dealData();
  1103. let nowUrl = "";
  1104. try {
  1105. const {
  1106. headers: {
  1107. host
  1108. }
  1109. } = params.app.context.req || {};
  1110. let {
  1111. fullPath
  1112. } = params.app.context.route;
  1113. nowUrl = domainConfig.jobUrl + fullPath; //设置baseLink
  1114. // if (host.indexOf('local') !== -1) {
  1115. // nowUrl = 'http://' + host + fullPath
  1116. // } else {
  1117. // nowUrl = 'https://' + host + fullPath
  1118. // }
  1119. } catch (e) {
  1120. console.log(e);
  1121. }
  1122. return { ...domainConfig,
  1123. nowUrl: nowUrl,
  1124. android,
  1125. recruitId: recruitData["id"],
  1126. recruitData,
  1127. refreshInfo,
  1128. mobile: params.app.$deviceType.isMobile(),
  1129. breadcrumbList: dealBreadcrumbList,
  1130. ...footer
  1131. };
  1132. },
  1133. computed: { ...Object(external_vuex_["mapState"])(["isPC", "isWeixin", "deviceType", "noneCommonFooter"]),
  1134. /** 计算用户vip **/
  1135. calcUserVip() {
  1136. const {
  1137. isVip,
  1138. vipTypeID
  1139. } = this.recruitData.ownerInfo;
  1140. if (isVip && Number(vipTypeID) < 3) {
  1141. return {
  1142. ["vip" + vipTypeID]: isVip
  1143. };
  1144. } else {
  1145. return {};
  1146. }
  1147. },
  1148. /** 计算企业vip **/
  1149. calcCompanyVip() {
  1150. const {
  1151. isVip,
  1152. vipTypeID
  1153. } = this.recruitData.ownerInfo;
  1154. if (isVip && Number(vipTypeID) >= 3) {
  1155. return {
  1156. ["vip" + vipTypeID]: isVip
  1157. };
  1158. } else {
  1159. return {};
  1160. }
  1161. }
  1162. },
  1163. mounted() {
  1164. this.isWeixinApp = navigator.userAgent.indexOf('miniProgram') > -1;
  1165. setTimeout(() => {
  1166. this.isShowDownLoad = true;
  1167. console.log("this.isShowDownload=", this.isShowDownLoad);
  1168. }, 500);
  1169. const path = this.$route.path;
  1170. const string = path.split(".")[0]; // this.recruitId = string.split('/')[ 3 ]
  1171. let {
  1172. role,
  1173. longTimeTip
  1174. } = this.recruitData; //拥有者&企业方&需要提示
  1175. if (role === "owner" && Number(longTimeTip) === 1 && this.mobile) {
  1176. Object(external_mint_ui_["MessageBox"])({
  1177. title: "温馨提示",
  1178. message: "如果您长时间未招聘到优质程序员,可以试试发布【整包/云端项目】,有专属客服帮您人工对接开发者。",
  1179. cancelButtonText: "我知道了",
  1180. confirmButtonText: "前往发布",
  1181. closeOnClickModal: true,
  1182. showCancelButton: true,
  1183. showConfirmButton: true
  1184. }).then(action => {
  1185. console.log(action);
  1186. if (action !== "cancel") {
  1187. location.href = "proginn://project_publish";
  1188. }
  1189. });
  1190. }
  1191. if (!this.mobile) {
  1192. let baseUrl = this.$store.state.domainConfig.siteUrl;
  1193. let jumpUrl = `${baseUrl}${location.pathname}`; // this.createCode(jumpUrl)
  1194. }
  1195. this.siteurl = this.$store.state.domainConfig.siteUrl;
  1196. console.log("$$$$$$$$$$$$$$$$$$$$", this.siteurl);
  1197. if (this.$deviceType.app) {
  1198. try {
  1199. let {
  1200. companyInfo: {
  1201. name,
  1202. shortName,
  1203. logo
  1204. },
  1205. cityName,
  1206. description,
  1207. occupationName,
  1208. workType,
  1209. workTypeName,
  1210. directionName,
  1211. salaryName
  1212. } = this.recruitData;
  1213. let companyName = shortName || name;
  1214. if (companyName.length > 7) {
  1215. companyName = companyName.slice(0, 7) + "...";
  1216. }
  1217. let title = '';
  1218. if (workType === '2') {
  1219. title = `【${cityName}驻场-${directionName}】强烈推荐!找程序员上程序员客栈`;
  1220. } else {
  1221. title = `【远程-${directionName}】强烈推荐!找程序员上程序员客栈`;
  1222. }
  1223. let shareData = {
  1224. title: title,
  1225. description: description,
  1226. logo_url: logo
  1227. };
  1228. console.log("分享信息", shareData);
  1229. bridge["a" /* default */].loadShareData(shareData);
  1230. } catch (e) {
  1231. console.log("处理分享信息 error ", e);
  1232. }
  1233. }
  1234. let UA = navigator.userAgent;
  1235. console.log("-------------", UA);
  1236. var isWeixin = UA.match(/MicroMessenger/i) == "micromessenger";
  1237. console.error(isWeixin ? "是微信" : "不是微信");
  1238. var isAndroid = UA.indexOf('Android') > -1 || UA.indexOf('Adr') > -1; //android终端
  1239. console.error(isAndroid ? "是安卓" : "不是安卓");
  1240. var isiOS = !!UA.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
  1241. console.error(isiOS ? "是IOS" : "不是IOS");
  1242. if (isWeixin) {
  1243. this.downloadhref = 'http://a.app.qq.com/o/simple.jsp?pkgname=com.proginn';
  1244. } else if (isAndroid) {
  1245. this.downloadhref = "http://inncms.storage.proginn.com/android/proginn-v4.10.0.apk";
  1246. } else if (isiOS) {
  1247. this.downloadhref = "https://itunes.apple.com/cn/app/cheng-xu-yuan-ke-zhan/id979914687";
  1248. }
  1249. console.log("this.downloadhref =", this.downloadhref);
  1250. this.type = deviceType["a" /* default */].app ? "APP" : "浏览器"; // test nhj
  1251. // this.recruitData.status = '3'
  1252. },
  1253. methods: {
  1254. async getRecruit() {
  1255. const recruitId = this.recruitId;
  1256. const params = {
  1257. recruitId
  1258. };
  1259. let res = await this.$axios.$post("/api/recruit/getRecruit", params);
  1260. if (res.status === 1) {
  1261. this.recruitData = res.data;
  1262. }
  1263. },
  1264. /** 刷新 **/
  1265. async handleRefreshClick() {
  1266. const query = {
  1267. product_type: this.refreshInfo.product_type,
  1268. product_id: this.refreshInfo.product_id,
  1269. title: this.refreshInfo.name,
  1270. obj: this.recruitId
  1271. };
  1272. location.href = "proginn://pay?" + external_qs_default.a.stringify(query); // const recruitId = this.recruitId;
  1273. // const params = {
  1274. // recruitId,
  1275. // };
  1276. // let res = await this.$axios.$post("/api/recruit/refresh", params);
  1277. // if (res.status === 1) {
  1278. // console.log(res);
  1279. // this.$message({
  1280. // message: "岗位刷新成功!",
  1281. // type: "success",
  1282. // });
  1283. // this.getRecruit();
  1284. // }
  1285. },
  1286. /** 关闭岗位 **/
  1287. async handleOfflineClick() {
  1288. const recruitId = this.recruitId;
  1289. const params = {
  1290. recruitId
  1291. };
  1292. let res = await this.$axios.$post("/api/recruit/offline", params);
  1293. console.log("关闭岗位", res);
  1294. if (res.status === 1) {
  1295. this.$message({
  1296. message: "岗位关闭成功!",
  1297. type: "success"
  1298. });
  1299. setTimeout(() => {
  1300. Object(external_mint_ui_["MessageBox"])({
  1301. title: "温馨提示",
  1302. message: "程序员客栈邀请您评价本次兼职招聘,希望您能抽出5-10秒的时间参与,以帮助我们更好的提升服务。",
  1303. cancelButtonText: "残忍拒绝",
  1304. confirmButtonText: "前往评价",
  1305. closeOnClickModal: true,
  1306. showCancelButton: true,
  1307. showConfirmButton: true
  1308. }).then(action => {
  1309. if (action !== "cancel") {
  1310. location.href = `proginn://recruit/company_comment?id=${this.recruitId}`;
  1311. }
  1312. this.getRecruit();
  1313. });
  1314. }, 1500);
  1315. }
  1316. },
  1317. /** 发布 **/
  1318. async handleReopenClick() {
  1319. const recruitId = this.recruitId;
  1320. const params = {
  1321. recruitId
  1322. };
  1323. let res = await this.$axios.$post("/api/recruit/reopen", params);
  1324. if (res.status === 1) {
  1325. console.log(res);
  1326. this.$message({
  1327. message: "岗位已提交审核,请您耐心等待!",
  1328. type: "success"
  1329. });
  1330. this.getRecruit();
  1331. }
  1332. },
  1333. /** 编辑 **/
  1334. async handleEditClick() {
  1335. const recruitId = this.recruitId;
  1336. location.href = `proginn://recruit/edit?id=${recruitId}`;
  1337. },
  1338. async handleContactClick() {
  1339. // 是否是APP
  1340. if (this.judgeToDownloadApp()) {
  1341. return;
  1342. }
  1343. if (this.recruitData.loginStatus === -99) {
  1344. location.href = "proginn://login";
  1345. return;
  1346. }
  1347. let {
  1348. realname_re
  1349. } = this.$store.state.userinfo;
  1350. realname_re = Number(realname_re); //未签约,弹出提示
  1351. if (realname_re !== 2) {
  1352. this.showConfirm = true;
  1353. this.showConfirmWord = "发起沟通";
  1354. return;
  1355. } // 判断是否为 vip 类型的招聘且用户是否开通 vip
  1356. // vip_type_id = 2,开发者会员
  1357. if (this.recruitData.isVip && this.userinfo.vip_type_id != 2) {
  1358. Object(external_mint_ui_["MessageBox"])({
  1359. title: "提示",
  1360. message: "该内容为开发者会员专享",
  1361. cancelButtonText: "取消",
  1362. confirmButtonText: "开通会员",
  1363. closeOnClickModal: true,
  1364. showCancelButton: true,
  1365. showConfirmButton: true
  1366. }).then(action => {
  1367. if (action !== "cancel") {
  1368. const baseUrl = this.$store.state.domainConfig.siteUrl;
  1369. const openVipUrl = `${baseUrl}/type/vip`;
  1370. location.href = `proginn://webview?url=${openVipUrl}`;
  1371. }
  1372. });
  1373. return;
  1374. }
  1375. let checkAns = await this.dealTips("沟通");
  1376. if (!checkAns) {
  1377. return;
  1378. }
  1379. const recruitId = this.recruitId;
  1380. const params = {
  1381. recruitId
  1382. };
  1383. try {
  1384. let res = await this.$axios.$post("/api/recruit/chat", params);
  1385. if (res.status === 1) {
  1386. const {
  1387. uid,
  1388. title
  1389. } = this.recruitData;
  1390. location.href = `proginn://recruit/chat?uid=${uid}&title=${encodeURIComponent(title)}&url=${encodeURIComponent(location.href)}`;
  1391. } else {
  1392. this.$message.error(res.info);
  1393. }
  1394. } catch (e) {
  1395. this.$message.error("发生错误~请联系客服"); // alert(e.message)
  1396. }
  1397. },
  1398. /** 投递 **/
  1399. async handleSendClick() {
  1400. // 是否是APP
  1401. if (this.judgeToDownloadApp()) {
  1402. return;
  1403. }
  1404. const {
  1405. applicationState,
  1406. id
  1407. } = this.recruitData;
  1408. if (!(Number(applicationState) === 0)) {
  1409. return;
  1410. }
  1411. if (!(await this.checkLogin(true))) {
  1412. return;
  1413. }
  1414. let {
  1415. realname_re
  1416. } = this.$store.state.userinfo;
  1417. realname_re = Number(realname_re); //未签约,弹出提示
  1418. if (realname_re !== 2) {
  1419. this.showConfirm = true;
  1420. this.showConfirmWord = "投递简历";
  1421. return;
  1422. }
  1423. let checkAns = await this.dealTips("投递");
  1424. if (!checkAns) {
  1425. return;
  1426. }
  1427. let loadingStatus = this.$loading({
  1428. fullscreen: true,
  1429. text: "发送中..."
  1430. });
  1431. let p = {
  1432. recruitId: id
  1433. };
  1434. this.$axios.post("/api/recruit/apply", p).then(res => {
  1435. if (Number(res.data.status) === 1) {
  1436. loadingStatus && loadingStatus.close();
  1437. this.$message.success("投递成功!");
  1438. this.getRecruit();
  1439. }
  1440. }).finally(() => {
  1441. loadingStatus && loadingStatus.close();
  1442. });
  1443. },
  1444. /** 兼职:申请接单 **/
  1445. async handleApplyOrdreClick() {
  1446. // 是否是APP
  1447. if (this.judgeToDownloadApp()) {
  1448. return;
  1449. }
  1450. const {
  1451. applicationState,
  1452. id,
  1453. uid
  1454. } = this.recruitData;
  1455. if (!(Number(applicationState) === 0)) {
  1456. this.$message.info("您已经提交过申请接单请求,请耐心等待对方雇佣您。");
  1457. return;
  1458. }
  1459. if (!(await this.checkLogin(true))) {
  1460. return;
  1461. }
  1462. let {
  1463. realname_re
  1464. } = this.$store.state.userinfo;
  1465. realname_re = Number(realname_re); //未签约,弹出提示
  1466. if (realname_re !== 2) {
  1467. this.showConfirm = true;
  1468. this.showConfirmWord = "申请接单";
  1469. return;
  1470. } // 判断是否为 vip 类型的招聘且用户是否开通 vip
  1471. // vip_type_id = 2,开发者会员
  1472. if (this.recruitData.isVip && this.userinfo.vip_type_id != 2) {
  1473. Object(external_mint_ui_["MessageBox"])({
  1474. title: "提示",
  1475. message: "该内容为开发者会员专享",
  1476. cancelButtonText: "取消",
  1477. confirmButtonText: "开通会员",
  1478. closeOnClickModal: true,
  1479. showCancelButton: true,
  1480. showConfirmButton: true
  1481. }).then(action => {
  1482. if (action !== "cancel") {
  1483. const baseUrl = this.$store.state.domainConfig.siteUrl;
  1484. const openVipUrl = `${baseUrl}/type/vip`;
  1485. location.href = `proginn://webview?url=${openVipUrl}`;
  1486. }
  1487. });
  1488. return;
  1489. }
  1490. let checkAns = await this.dealTips("申请接单");
  1491. if (!checkAns) {
  1492. return;
  1493. }
  1494. let p = {
  1495. recruitId: id
  1496. };
  1497. this.$axios.post("/api/recruit/apply", p).then(res => {
  1498. if (Number(res.data.status) === 1) {
  1499. this.getRecruit();
  1500. }
  1501. }).finally(() => {
  1502. // 跳转至 app 流程
  1503. location.href = `proginn://recruit/chat?uid=${uid}&chat_type=type_sqjd`;
  1504. });
  1505. },
  1506. /**
  1507. * 换行符 转化
  1508. * @param desc
  1509. */
  1510. whiteSpace(desc) {
  1511. let regx = /\n|↵/g;
  1512. if (desc && desc.length > 0) {
  1513. return desc.replace(regx, "<br/>");
  1514. } else {
  1515. return "";
  1516. }
  1517. },
  1518. jumpToCompany() {
  1519. const {
  1520. uid
  1521. } = this.recruitData;
  1522. if (this.$deviceType.app) {
  1523. location.href = `proginn://resume?uid=${uid}&company=1`;
  1524. } else {
  1525. location.href = `${this.$store.state.domainConfig.siteUrl}/company/${uid}`;
  1526. }
  1527. },
  1528. defaultIcon(url) {
  1529. if (!url) {
  1530. return "https://stacdn.proginn.com/image/usericon/3.png";
  1531. }
  1532. return url;
  1533. },
  1534. /** 跳转到招聘详情 **/
  1535. jumpToDetail(type) {
  1536. location.href = `proginn://recruit/data?id=${this.recruitId}&type=${type || "applicated"}`;
  1537. },
  1538. /** 跳转签约 **/
  1539. jumpToAAA() {
  1540. location.href = "proginn://developer_sign";
  1541. },
  1542. async dealTips(word = "投递") {
  1543. let {
  1544. directionNotMatch,
  1545. workTypeNotMatch
  1546. } = this.recruitData; //职位类型
  1547. if (Number(directionNotMatch) === 1) {
  1548. let ans1 = await Object(external_mint_ui_["MessageBox"])({
  1549. title: "温馨提示",
  1550. message: `该兼职岗位与您的【职位方向不符】,请您确认是否继续${word}。`,
  1551. cancelButtonText: "再考虑下",
  1552. confirmButtonText: "继续操作",
  1553. closeOnClickModal: true,
  1554. showCancelButton: true,
  1555. showConfirmButton: true
  1556. });
  1557. if (ans1 === "cancel") {
  1558. return false;
  1559. }
  1560. } // 4.31 移除【工作方式不符】弹窗
  1561. //工作方式
  1562. // if (Number(workTypeNotMatch) === 1) {
  1563. // let ans2 = await MessageBox({
  1564. // title: "温馨提示",
  1565. // message: `该兼职岗位与您选择的【工作方式不符】,请您确认是否继续${word}。`,
  1566. // cancelButtonText: "再考虑下",
  1567. // confirmButtonText: "继续操作",
  1568. // closeOnClickModal: true,
  1569. // showCancelButton: true,
  1570. // showConfirmButton: true,
  1571. // });
  1572. // if (ans2 === "cancel") {
  1573. // return false;
  1574. // }
  1575. // }
  1576. return true;
  1577. },
  1578. showGoAppTipsHandler() {
  1579. // if (this.recruitData.role !== 'owner') {
  1580. // this.$message.info("用程序员客栈APP,扫描右侧二维码,直接与雇主沟通!")
  1581. // }
  1582. //todo 4.17 确认本人怎么提示
  1583. this.webShowQrCode = true;
  1584. console.log(this.webShowQrCode, this);
  1585. },
  1586. closeGoAppTipsHandler() {
  1587. this.webShowQrCode = false;
  1588. },
  1589. judgeToDownloadApp() {
  1590. // 应用宝:https://sj.qq.com/myapp/detail.htm?apkName=com.proginn
  1591. // iOS:https://apps.apple.com/cn/app/id979914687
  1592. if (!this.$deviceType.app) {
  1593. location.href = "https://www.proginn.com/index/app";
  1594. return true;
  1595. }
  1596. return false;
  1597. },
  1598. contactClick() {
  1599. this.$message.success("下载程序员客栈APP立即和企业方沟通需求"); // location.href = this.downloadhref;
  1600. }
  1601. }
  1602. });
  1603. // CONCATENATED MODULE: ./pages/job/detail/_id.vue?vue&type=script&lang=js&
  1604. /* harmony default export */ var detail_idvue_type_script_lang_js_ = (_idvue_type_script_lang_js_);
  1605. // CONCATENATED MODULE: ./pages/job/detail/_id.vue
  1606. function _id_injectStyles (context) {
  1607. var style0 = __webpack_require__(495)
  1608. if (style0.__inject__) style0.__inject__(context)
  1609. }
  1610. /* normalize component */
  1611. var _id_component = Object(componentNormalizer["a" /* default */])(
  1612. detail_idvue_type_script_lang_js_,
  1613. render,
  1614. staticRenderFns,
  1615. false,
  1616. _id_injectStyles,
  1617. null,
  1618. "194ed6cc"
  1619. )
  1620. /* harmony default export */ var _id = __webpack_exports__["default"] = (_id_component.exports);
  1621. /***/ }),
  1622. /***/ 78:
  1623. /***/ (function(module, exports) {
  1624. // Exports
  1625. module.exports = {};
  1626. /***/ }),
  1627. /***/ 94:
  1628. /***/ (function(module, exports) {
  1629. module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAUVBMVEVHcEzlsUbotknmtEjmtUjmtkj2wVjotkriqT/ruUvpv0/qwE/kr0TntUrhqD/pv0/ovk/////9+fLuzYTx153rxWz68d314bT36cnmtl3jr05ZrqgQAAAADnRSTlMAn0KKargIK+oX7t7RUasiNE8AAAJdSURBVFjD7Vbr0qIwDBUKKIo0yFXf/0GXXtKmNBX49s/OzpdRZyrNIc1pknO5/Nq/ZpW4gwQAuRqYT7uxm6i+AJTS2AoB5ke2kZVpf6GdtJ/+KqQYoBUp/8KEbX8gFUHbFrx/DtK+HDAFILkI2jbn/K937Qk+BL1mAW7X2L9+mNRjCDYHPEDb1AwB7t0uCakcKCq2ZGbSe+MVkMkcrJZtCUBnd3i7TgGEVOTSBW5h3DoJQKm43m3keATw6zSAp4IS4E6C6/YLgqWiKs0rXeaBrr8AIBUZVpD+9HMfrAOPfuhjKgpbfSZpS9d1C1kHEczqYUTFg9Z/3ymb+X4w6IdjkIYVAGj9mz3dwN1EA96Fh1B3mNb/2NldcT/AR+9tc1Ek+vqfza7XuO0H75cNLiZyvUak/hezb9pcpM9k/l+4q6Q6gb+GuDPsB4jLX8Wc1D+MNtaZ9gM82SdRDE+fdZCIMPgcWAJeQQKfQTkD6Qc9oQIoAf2XzlrQfjA4KnQELAFRZxa0HzgqVA6QgHlnNmS0H0wOgScgY+ca6QeeCiRg+uz5r32B9ANHxcAQUCbma9VgWUpPhTVag01yPtcPcJMFqYgJYIbKBsHSOXv/memEvK1l4fXBhP7LzlgMEYg+mGIC9vxVYfnRaKgICMj3ddKTzMf+pS50qoCSQoXog3EY3vvSJEZI6IPiqNoTvD4Qx/VixumD7IziLGN9kJ2TrOVWH5TVSdHbhG29qc7K5nXeEH3Q1OeFt0awo+1W/0S663kjjxVAGgH+wt+o52MFlC4sebCAkqcQ4nr5tf/f/gDHjHUZggEuEgAAAABJRU5ErkJggg=="
  1630. /***/ }),
  1631. /***/ 95:
  1632. /***/ (function(module, exports) {
  1633. // Exports
  1634. module.exports = {};
  1635. /***/ }),
  1636. /***/ 96:
  1637. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1638. "use strict";
  1639. __webpack_require__.r(__webpack_exports__);
  1640. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_1_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_SeoFooter_vue_vue_type_style_index_0_id_216b9a36_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78);
  1641. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_1_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_SeoFooter_vue_vue_type_style_index_0_id_216b9a36_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_1_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_SeoFooter_vue_vue_type_style_index_0_id_216b9a36_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
  1642. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_1_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_SeoFooter_vue_vue_type_style_index_0_id_216b9a36_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_1_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_SeoFooter_vue_vue_type_style_index_0_id_216b9a36_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  1643. /* harmony default export */ __webpack_exports__["default"] = (_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_0_node_modules_nuxt_webpack_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_1_node_modules_nuxt_webpack_node_modules_vue_loader_lib_index_js_vue_loader_options_SeoFooter_vue_vue_type_style_index_0_id_216b9a36_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
  1644. /***/ }),
  1645. /***/ 98:
  1646. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1647. "use strict";
  1648. // CONCATENATED MODULE: ./node_modules/@nuxt/webpack/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./components/SeoFooter.vue?vue&type=template&id=216b9a36&scoped=true&
  1649. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.deviceType.pc)?_c('div',{attrs:{"id":"proginn-footer"}},[_vm._ssrNode("<div id=\"friend-links\" data-v-216b9a36><div class=\"links\" data-v-216b9a36><a href=\"/\" data-v-216b9a36><img"+(_vm._ssrAttr("src",_vm.baseUrl+'/Public/image/common/logo_new.png'))+" class=\"logo\" data-v-216b9a36></a> <div class=\"items\" data-v-216b9a36>"+(_vm._ssrList((_vm.data.link),function(link,index){return ("<div class=\"item-box\" data-v-216b9a36><span class=\"name\" data-v-216b9a36>"+_vm._ssrEscape(_vm._s(link.name))+"</span> <div class=\"item\" data-v-216b9a36><div"+(_vm._ssrClass("list",{expand: _vm.explan[index]}))+" data-v-216b9a36>"+(_vm._ssrList((link.data),function(item,ii){return ("<a"+(_vm._ssrAttr("href",item.url))+" target=\"_blank\""+(_vm._ssrAttr("title",item.name))+" data-v-216b9a36>"+_vm._ssrEscape(_vm._s(item.name))+"</a>")}))+"</div> <span class=\"more\" style=\"display: inline;\" data-v-216b9a36>"+_vm._ssrEscape(_vm._s(_vm.explan[index] ? '收起' : '更多'))+"</span></div></div>")}))+"</div></div></div> <div id=\"footer\" class=\"footer\" data-v-216b9a36><div class=\"footer-container\" data-v-216b9a36><div class=\"footer-links\" data-v-216b9a36><a"+(_vm._ssrAttr("href",_vm.baseUrl+'/index/app'))+" rel=\"nofollow\" class=\"item\" data-v-216b9a36>APP下载</a> <a href=\"http://support.proginn.com/\" rel=\"nofollow\" class=\"item\" data-v-216b9a36>帮助</a> <a"+(_vm._ssrAttr("href",_vm.baseUrl+'/about'))+" rel=\"nofollow\" class=\"item\" data-v-216b9a36>关于我们</a> <a"+(_vm._ssrAttr("href",_vm.baseUrl+'/about/mediareports'))+" rel=\"nofollow\" class=\"item\" data-v-216b9a36>媒体报道</a> <a href=\"https://inn.proginn.com/sites/index.html\" rel=\"nofollow\" class=\"item\" data-v-216b9a36>合作伙伴</a> <a href=\"https://inn.proginn.com/sites/about.html\" rel=\"nofollow\" class=\"item\" data-v-216b9a36>商务合作</a> <a"+(_vm._ssrAttr("href",_vm.baseUrl+'/about/suggestion'))+" rel=\"nofollow\" class=\"item\" data-v-216b9a36>意见反馈</a> <span class=\"ui item\" style=\"color: rgb(204, 204, 204);\" data-v-216b9a36>© 程序员客栈</span></div> <div class=\"safe\" data-v-216b9a36><a href=\"http://www.miibeian.gov.cn\" target=\"_blank\" rel=\"nofollow\" data-v-216b9a36>浙ICP备15029175号</a> <div data-v-216b9a36><a target=\"_blank\" href=\"http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=33011002011566\" rel=\"nofollow\" style=\"display: flex;\" data-v-216b9a36><img width=\"20\" height=\"20\""+(_vm._ssrAttr("src",_vm.baseUrl+'/Public/image/common/badge.png'))+" data-v-216b9a36> <span style=\"height:20px;line-height:20px;margin: 0px 0px 0px 5px;\" data-v-216b9a36>浙公网安备 33011002011566号</span></a></div></div></div></div>")]):_vm._e()}
  1650. var staticRenderFns = []
  1651. // CONCATENATED MODULE: ./components/SeoFooter.vue?vue&type=template&id=216b9a36&scoped=true&
  1652. // EXTERNAL MODULE: external "vuex"
  1653. var external_vuex_ = __webpack_require__(2);
  1654. // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./components/SeoFooter.vue?vue&type=script&lang=js&
  1655. //
  1656. //
  1657. //
  1658. //
  1659. //
  1660. //
  1661. //
  1662. //
  1663. //
  1664. //
  1665. //
  1666. //
  1667. //
  1668. //
  1669. //
  1670. //
  1671. //
  1672. //
  1673. //
  1674. //
  1675. //
  1676. //
  1677. //
  1678. //
  1679. //
  1680. //
  1681. //
  1682. //
  1683. //
  1684. //
  1685. //
  1686. //
  1687. //
  1688. //
  1689. //
  1690. //
  1691. //
  1692. //
  1693. //
  1694. //
  1695. //
  1696. //
  1697. //
  1698. //
  1699. //
  1700. //
  1701. //
  1702. //
  1703. //
  1704. //
  1705. //
  1706. //
  1707. //
  1708. //
  1709. //
  1710. //
  1711. //
  1712. //
  1713. //
  1714. //
  1715. //
  1716. //
  1717. //
  1718. /* harmony default export */ var SeoFootervue_type_script_lang_js_ = ({
  1719. props: {
  1720. data: {
  1721. type: Object,
  1722. default: {
  1723. baseLink: "",
  1724. links: [],
  1725. link: []
  1726. }
  1727. }
  1728. },
  1729. computed: { ...Object(external_vuex_["mapState"])(["deviceType"])
  1730. },
  1731. data() {
  1732. return {
  1733. baseUrl: "",
  1734. jishuBaseUrl: "",
  1735. explan: [false, false]
  1736. };
  1737. },
  1738. mounted() {},
  1739. methods: {
  1740. clickMore(index) {
  1741. if (index > 1) {
  1742. return;
  1743. }
  1744. this.explan[index] = !this.explan[index];
  1745. this.explan = [...this.explan];
  1746. }
  1747. },
  1748. created() {
  1749. this.baseUrl = this.$store.state.domainConfig.siteUrl;
  1750. this.jishuBaseUrl = this.$store.state.domainConfig.jishuinUrl;
  1751. }
  1752. });
  1753. // CONCATENATED MODULE: ./components/SeoFooter.vue?vue&type=script&lang=js&
  1754. /* harmony default export */ var components_SeoFootervue_type_script_lang_js_ = (SeoFootervue_type_script_lang_js_);
  1755. // EXTERNAL MODULE: ./node_modules/@nuxt/webpack/node_modules/vue-loader/lib/runtime/componentNormalizer.js
  1756. var componentNormalizer = __webpack_require__(1);
  1757. // CONCATENATED MODULE: ./components/SeoFooter.vue
  1758. function injectStyles (context) {
  1759. var style0 = __webpack_require__(96)
  1760. if (style0.__inject__) style0.__inject__(context)
  1761. }
  1762. /* normalize component */
  1763. var component = Object(componentNormalizer["a" /* default */])(
  1764. components_SeoFootervue_type_script_lang_js_,
  1765. render,
  1766. staticRenderFns,
  1767. false,
  1768. injectStyles,
  1769. "216b9a36",
  1770. "7e4b7574"
  1771. )
  1772. /* harmony default export */ var SeoFooter = __webpack_exports__["a"] = (component.exports);
  1773. /***/ })
  1774. };;
  1775. //# sourceMappingURL=115.js.map