_id.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  1. exports.ids = [8];
  2. exports.modules = {
  3. /***/ 473:
  4. /***/ (function(module, exports) {
  5. // Exports
  6. module.exports = {};
  7. /***/ }),
  8. /***/ 803:
  9. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10. "use strict";
  11. __webpack_require__.r(__webpack_exports__);
  12. /* 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_scope_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(473);
  13. /* 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_scope_true_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_id_vue_vue_type_style_index_0_scope_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
  14. /* 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_scope_true_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_id_vue_vue_type_style_index_0_scope_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  15. /* 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_scope_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
  16. /***/ }),
  17. /***/ 937:
  18. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  19. "use strict";
  20. // ESM COMPAT FLAG
  21. __webpack_require__.r(__webpack_exports__);
  22. // 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/credit/detail/_id.vue?vue&type=template&id=79fd977e&
  23. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"creditDetail"},[_vm._ssrNode("<section class=\"contentArea\""+(_vm._ssrStyle(null,null, { display: (!_vm.posterUrlBase64) ? '' : 'none' }))+">"+((!_vm.isCrediting)?("<div class=\"downLoad\"><div class=\"icon\"></div> <div class=\"word\">下载报告</div></div>"):"<!---->")+" <div class=\"bodyContent\"><div class=\"title\"><p>"+_vm._ssrEscape(_vm._s(_vm.data.nickname || 'XXX')+"的技术信用报告")+"</p></div> "+((_vm.data.user_basic_info !== undefined)?("<div class=\"sCell realName\"><div class=\"stitle\">实名认证</div> "+((_vm.data.user_basic_info)?("<div><div class=\"cell\"><p class=\"name\">姓名:</p> <p class=\"val\">"+_vm._ssrEscape(_vm._s(_vm.data.user_basic_info.realname))+"</p></div> <div class=\"cell\"><p class=\"name\">身份证号:</p> <p class=\"val\">"+_vm._ssrEscape(_vm._s(_vm.data.user_basic_info.id_card_no || ''))+"</p></div></div>"):("<div><div class=\"cell\"><p class=\"name\">未认证</p></div></div>"))+"</div>"):"<!---->")+" "+((_vm.data.user_education !== undefined)?("<div class=\"sCell mostHight\"><div class=\"stitle\">最高学历认证</div> "+((_vm.data.user_education && _vm.data.user_education.length > 0)?("<div><div class=\"cell\"><p class=\"name\">姓名:</p> <p class=\"val\">"+_vm._ssrEscape(" "+_vm._s(_vm.data.user_basic_info && _vm.data.user_basic_info.realname || _vm.data.nickname))+"</p></div> <div class=\"cell\"><p class=\"name\">学校:</p> <p class=\"val\">"+_vm._ssrEscape(" "+_vm._s(_vm.data.user_education[0].university))+"</p></div> <div class=\"cell\"><p class=\"name\">学位:</p> <p class=\"val\">"+_vm._ssrEscape(" "+_vm._s(_vm.data.user_education[0].education_background))+"</p></div> <div class=\"cell\"><p class=\"name\">学信网报告:</p> <p class=\"val\">"+_vm._ssrEscape(" "+_vm._s(_vm.data.user_education[0].diploma_url))+"</p></div></div>"):("<div><div class=\"cell\"><p class=\"name\">未认证</p></div></div>"))+"</div>"):"<!---->")+" "+(_vm._ssrList((_vm.projectRating),function(item){return (((_vm.data[item.key] !== undefined)?("<div class=\"sCell project\"><div class=\"stitle\">"+_vm._ssrEscape(_vm._s(item.name))+"</div> "+((_vm.data[item.key])?("<div><div class=\"cell evaluate\"><p class=\"name\"><span class=\"num\">"+_vm._ssrEscape(_vm._s(_vm.data[item.key].rating || 0))+"</span> <span class=\"word\">分</span> <span class=\"desc\">"+_vm._ssrEscape("共"+_vm._s(_vm.data[item.key].count || 0)+"人参与评价")+"</span></p> "+((!_vm.isCrediting)?("<div class=\"showDetail\"><p>查看详情</p></div>"):"<!---->")+"</div></div>"):("<div><div class=\"cell\"><p class=\"name\">未认证</p></div></div>"))+"</div>"):"<!---->"))}))+" "+((_vm.data.work_experiences !== undefined)?("<div class=\"sCell\"><div class=\"stitle\">工作经历认证</div> "+((_vm.data.work_experiences && _vm.data.work_experiences.length > 0)?("<div>"+(_vm._ssrList((_vm.data.work_experiences),function(item){return ("<div class=\"cell\"><p class=\"name\">"+_vm._ssrEscape(_vm._s(item.start_time)+" - "+_vm._s(item.end_time || '至今'))+"</p> <p class=\"val1\">"+_vm._ssrEscape(_vm._s(item.company + ' ' +item.title))+"</p></div>")}))+"</div>"):("<div><div class=\"cell\"><p class=\"name\">未认证</p></div></div>"))+"</div>"):"<!---->")+" "+(_vm._ssrList((_vm.roleCredit),function(item){return (((_vm.data[item.key] !== undefined)?("<div class=\"sCell\"><div class=\"stitle\">"+_vm._ssrEscape(_vm._s(item.name))+"</div> "+((_vm.data[item.key])?("<div><div class=\"cell\"><p class=\"val\">"+_vm._ssrEscape("已认证 "+_vm._s(_vm.data[item.key].start_time + ' - ' + _vm.data[item.key].end_time))+"</p></div> <div class=\"cell\"><p class=\"val\">"+_vm._ssrEscape("已完成产品设计:"+_vm._s(_vm.data[item.key].count || 0)+"个")+"</p></div></div>"):("<div><div class=\"cell\"><p class=\"name\">未认证</p></div></div>"))+"</div>"):"<!---->"))}))+" <div class=\"tipsBox\"><div class=\"utitle\">温馨提示</div> <div class=\"udesc\">未经技术信用信息权属人同意,不得将报告用于违背权属人意愿之用途。</div></div></div></section> "+((_vm.posterUrlBase64)?("<div class=\"posterImage\"><img"+(_vm._ssrAttr("src",_vm.posterUrlBase64))+" alt></div>"):"<!---->"))])}
  24. var staticRenderFns = []
  25. // CONCATENATED MODULE: ./pages/credit/detail/_id.vue?vue&type=template&id=79fd977e&
  26. // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./pages/credit/detail/_id.vue?vue&type=script&lang=js&
  27. //
  28. //
  29. //
  30. //
  31. //
  32. //
  33. //
  34. //
  35. //
  36. //
  37. //
  38. //
  39. //
  40. //
  41. //
  42. //
  43. //
  44. //
  45. //
  46. //
  47. //
  48. //
  49. //
  50. //
  51. //
  52. //
  53. //
  54. //
  55. //
  56. //
  57. //
  58. //
  59. //
  60. //
  61. //
  62. //
  63. //
  64. //
  65. //
  66. //
  67. //
  68. //
  69. //
  70. //
  71. //
  72. //
  73. //
  74. //
  75. //
  76. //
  77. //
  78. //
  79. //
  80. //
  81. //
  82. //
  83. //
  84. //
  85. //
  86. //
  87. //
  88. //
  89. //
  90. //
  91. //
  92. //
  93. //
  94. //
  95. //
  96. //
  97. //
  98. //
  99. //
  100. //
  101. //
  102. //
  103. //
  104. //
  105. //
  106. //
  107. //
  108. //
  109. //
  110. //
  111. //
  112. //
  113. //
  114. //
  115. //
  116. //
  117. //
  118. //
  119. //
  120. //
  121. //
  122. //
  123. //
  124. //
  125. //
  126. //
  127. //
  128. //
  129. //
  130. //
  131. //
  132. //
  133. //
  134. //
  135. //
  136. //
  137. //
  138. //
  139. //
  140. //
  141. //
  142. //
  143. //
  144. //
  145. //
  146. //
  147. //
  148. //
  149. //
  150. //
  151. //
  152. //
  153. let html2canvas = null;
  154. let jsPDF = null;
  155. if (false) {} // todo
  156. // pdf生成计算分页
  157. /* harmony default export */ var _idvue_type_script_lang_js_ = ({
  158. head() {
  159. return {
  160. title: '程序员客栈技术信用-程序员技术开发能力认证,企业程序员背调专用数据平台',
  161. meta: [{
  162. 'name': 'keywords',
  163. 'content': '技术信用,程序员背调,程序员技术能力认证'
  164. }, {
  165. 'name': 'description',
  166. 'content': '程序员客栈技术信用平台依托多年的程序员数据,提供程序员技能等级认证,服务口碑,就业情况数据核实。为每一位入驻的程序员提供真实有效符合自身能力的技术信用认证,给用工单位提供所录用的程序员以往从业经历或者服务历史口碑的准确报告;对接程序员和用工企业,找出最适合程序员发展的平台,为用工单位提供最合适的程序员人选。程序员技术信用认证、程序员背景调查,请认准程序员客栈技术信用平台!'
  167. }, {
  168. 'name': 'h1',
  169. 'content': '技术信用'
  170. }]
  171. };
  172. },
  173. asyncData({
  174. app
  175. }) {
  176. return {};
  177. },
  178. data() {
  179. return {
  180. detail: {},
  181. isCrediting: false,
  182. noPub: [{
  183. name: "驾驶证认证"
  184. }, {
  185. name: "个人工商信息查询"
  186. }, {
  187. name: "失信被执行人查询"
  188. }, {
  189. name: "金融风险查询"
  190. }, {
  191. name: "芝麻信用"
  192. }],
  193. roleCredit: [{
  194. name: "产品经理认证",
  195. key: "product_manager_cert"
  196. }, {
  197. name: "项目经理认证",
  198. key: "project_manager_cert"
  199. }, {
  200. name: "自由工作者认证",
  201. key: "freelance_developer_cert"
  202. }, {
  203. name: "云端工作者认证",
  204. key: "cloud_developer_cert"
  205. }],
  206. projectRating: [{
  207. name: "整包项目评价",
  208. key: "project_rating"
  209. }, {
  210. name: "云端项目评价",
  211. key: "cloud_rating"
  212. }, {
  213. name: "雇佣项目评价",
  214. key: "hire_rating"
  215. }],
  216. posterUrlBase64: "",
  217. posterUrlData: {
  218. width: 0,
  219. height: 0
  220. },
  221. data: {
  222. user_basic_info: {},
  223. user_education: {},
  224. project_rating: {},
  225. cloud_rating: {},
  226. hire_rating: {},
  227. work_experiences: {},
  228. product_manager_cert: {},
  229. project_manager_cert: {},
  230. freelance_developer_cert: {},
  231. cloud_developer_cert: {}
  232. }
  233. };
  234. },
  235. created() {
  236. this.orderId = this.$route.params && this.$route.params.id;
  237. },
  238. mounted() {
  239. this.cnzz("签约", "签约页面+页面访问", "");
  240. this.needLogin();
  241. this.getDetail();
  242. },
  243. methods: {
  244. getDetail() {
  245. let p = {
  246. id: this.orderId
  247. };
  248. this.$axios.post('/api/user_credit/get_credit_report', p).then(res => {
  249. if (Number(res.data.status) === 1) {
  250. let data = res.data.data;
  251. this.data = data;
  252. console.log(this.data);
  253. }
  254. }).finally(() => {});
  255. },
  256. chooseLeftTab(index) {
  257. this.selectedTab = index;
  258. },
  259. async downloadPdf() {
  260. let loading = this.$loading({
  261. text: "正在生成文件",
  262. background: ""
  263. });
  264. this.domToImage(() => {
  265. setTimeout(async () => {
  266. const {
  267. width,
  268. height
  269. } = this.posterUrlData;
  270. let doc = new jsPDF('', 'pt', 'a4');
  271. let p4Width = 595.28 - 40;
  272. let a4Height = 841.89;
  273. let allHeight = p4Width / width * height;
  274. let position = 0;
  275. while (Math.abs(position) < allHeight) {
  276. doc.addImage(this.posterUrlBase64, 'PNG', 20, position, p4Width, allHeight);
  277. position -= a4Height;
  278. if (Math.abs(position) < allHeight) {
  279. doc.addPage();
  280. }
  281. }
  282. await doc.save(`${this.data.nickname || 'XXX'}的信用报告.pdf`, {
  283. returnPromise: true
  284. });
  285. loading && loading.close();
  286. this.$message.success('生成成功!');
  287. this.$refs.contentArea.style = "margin-top:0 ";
  288. this.posterUrlBase64 = "";
  289. }, 300);
  290. });
  291. },
  292. domToImage(cb) {
  293. this.isCrediting = true;
  294. setTimeout(() => {
  295. html2canvas(document.querySelector('.contentArea'), {
  296. scale: 2,
  297. logging: false,
  298. useCORS: true,
  299. backgroundColor: null,
  300. async: false
  301. }).then(canvas => {
  302. this.posterUrlBase64 = canvas.toDataURL('image/png');
  303. this.posterUrlData = {
  304. height: canvas.height,
  305. width: canvas.width
  306. };
  307. this.isCrediting = false;
  308. this.$refs.contentArea.style = "margin-top: -1000000px;";
  309. cb && cb();
  310. }).catch(() => {
  311. this.isCrediting = false;
  312. });
  313. }, 0);
  314. },
  315. showDetail(type, id) {
  316. switch (type) {
  317. case "project_rating":
  318. window.open('/credit/projectDetail/whole?id=' + this.data.visited_uid, type);
  319. break;
  320. case "cloud_rating":
  321. window.open('/credit/projectDetail/cloud?id=' + this.data.visited_uid, type);
  322. break;
  323. case "hire_rating":
  324. window.open('/credit/projectDetail/employ?id=' + this.data.visited_uid, type);
  325. break;
  326. }
  327. }
  328. }
  329. });
  330. // CONCATENATED MODULE: ./pages/credit/detail/_id.vue?vue&type=script&lang=js&
  331. /* harmony default export */ var detail_idvue_type_script_lang_js_ = (_idvue_type_script_lang_js_);
  332. // EXTERNAL MODULE: ./node_modules/@nuxt/webpack/node_modules/vue-loader/lib/runtime/componentNormalizer.js
  333. var componentNormalizer = __webpack_require__(1);
  334. // CONCATENATED MODULE: ./pages/credit/detail/_id.vue
  335. function injectStyles (context) {
  336. var style0 = __webpack_require__(803)
  337. if (style0.__inject__) style0.__inject__(context)
  338. }
  339. /* normalize component */
  340. var component = Object(componentNormalizer["a" /* default */])(
  341. detail_idvue_type_script_lang_js_,
  342. render,
  343. staticRenderFns,
  344. false,
  345. injectStyles,
  346. null,
  347. "2e6e0368"
  348. )
  349. /* harmony default export */ var _id = __webpack_exports__["default"] = (component.exports);
  350. /***/ })
  351. };;
  352. //# sourceMappingURL=_id.js.map