122.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664
  1. exports.ids = [122];
  2. exports.modules = {
  3. /***/ 101:
  4. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5. "use strict";
  6. // 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/uploader.vue?vue&type=template&id=99389970&
  7. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"uploader"},[_c('el-upload',{staticClass:"avatar-uploader",attrs:{"action":"#","show-file-list":false,"multiple":false,"accept":"image/png, image/jpeg","before-upload":_vm.handleFileChange}},[(_vm.imageUrl)?_c('i',{staticClass:"el-icon-delete avatar-uploader-icon",on:{"click":function($event){$event.stopPropagation();return _vm.handleDeleteFile($event)}}}):_vm._e(),_vm._v(" "),(_vm.imageUrl)?_c('img',{staticClass:"avatar",attrs:{"src":_vm.imageUrl}}):_c('i',{staticClass:"el-icon-plus avatar-uploader-icon"}),_vm._v(" "),(_vm.title)?_c('span',{staticClass:"title"},[_vm._v(_vm._s(_vm.title))]):_vm._e()])],1)}
  8. var staticRenderFns = []
  9. // CONCATENATED MODULE: ./components/uploader.vue?vue&type=template&id=99389970&
  10. // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./components/uploader.vue?vue&type=script&lang=js&
  11. //
  12. //
  13. //
  14. //
  15. //
  16. //
  17. //
  18. //
  19. //
  20. //
  21. //
  22. //
  23. //
  24. //
  25. //
  26. //
  27. //
  28. //
  29. /* harmony default export */ var uploadervue_type_script_lang_js_ = ({
  30. props: ["imageUrl", "title", "limitFileSize"],
  31. components: {},
  32. data() {
  33. return {
  34. uploading: false
  35. };
  36. },
  37. computed: {},
  38. mounted() {},
  39. methods: {
  40. handleDeleteFile() {
  41. this.$emit("change", "");
  42. },
  43. handleFileChange(file) {
  44. if (this.limitFileSize && this.limitFileSize > 0) {
  45. if (file.size / (1024 * 1024) > this.limitFileSize) {
  46. this.$message.error(`图片大小不得超过${this.limitFileSize}M,请重新选择`);
  47. return false;
  48. }
  49. } else if (file.size / 1024 > 2048) {
  50. this.$message.error("图片大小不得超过2M,请重新选择");
  51. return false;
  52. }
  53. const formData = new FormData();
  54. formData.append("file", file);
  55. formData.append("original_filename", file.name);
  56. this.uploading = true;
  57. this.$axios.$post(`/upload_image`, formData, {
  58. headers: {
  59. "Content-Type": "multipart/form-data"
  60. }
  61. }).then(res => {
  62. this.$emit("change", res.filename);
  63. }).finally(() => {
  64. this.uploading = false;
  65. });
  66. }
  67. }
  68. });
  69. // CONCATENATED MODULE: ./components/uploader.vue?vue&type=script&lang=js&
  70. /* harmony default export */ var components_uploadervue_type_script_lang_js_ = (uploadervue_type_script_lang_js_);
  71. // EXTERNAL MODULE: ./node_modules/@nuxt/webpack/node_modules/vue-loader/lib/runtime/componentNormalizer.js
  72. var componentNormalizer = __webpack_require__(1);
  73. // CONCATENATED MODULE: ./components/uploader.vue
  74. function injectStyles (context) {
  75. var style0 = __webpack_require__(120)
  76. if (style0.__inject__) style0.__inject__(context)
  77. }
  78. /* normalize component */
  79. var component = Object(componentNormalizer["a" /* default */])(
  80. components_uploadervue_type_script_lang_js_,
  81. render,
  82. staticRenderFns,
  83. false,
  84. injectStyles,
  85. null,
  86. "eecc4e60"
  87. )
  88. /* harmony default export */ var uploader = __webpack_exports__["a"] = (component.exports);
  89. /***/ }),
  90. /***/ 120:
  91. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  92. "use strict";
  93. __webpack_require__.r(__webpack_exports__);
  94. /* 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_uploader_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82);
  95. /* 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_uploader_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_uploader_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
  96. /* 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_uploader_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_uploader_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  97. /* 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_uploader_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
  98. /***/ }),
  99. /***/ 171:
  100. /***/ (function(module, exports, __webpack_require__) {
  101. module.exports = __webpack_require__.p + "img/certicon@3x.5753f19.png";
  102. /***/ }),
  103. /***/ 172:
  104. /***/ (function(module, exports, __webpack_require__) {
  105. module.exports = __webpack_require__.p + "img/cert_success_icon@3x.e724ebb.png";
  106. /***/ }),
  107. /***/ 173:
  108. /***/ (function(module, exports, __webpack_require__) {
  109. module.exports = __webpack_require__.p + "img/cert_fail_icon@3x.086f5f8.png";
  110. /***/ }),
  111. /***/ 260:
  112. /***/ (function(module, exports) {
  113. // Exports
  114. module.exports = {};
  115. /***/ }),
  116. /***/ 542:
  117. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  118. "use strict";
  119. __webpack_require__.r(__webpack_exports__);
  120. /* 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_index_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(260);
  121. /* 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_index_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_index_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
  122. /* 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_index_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_index_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  123. /* 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_index_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
  124. /***/ }),
  125. /***/ 782:
  126. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  127. "use strict";
  128. // ESM COMPAT FLAG
  129. __webpack_require__.r(__webpack_exports__);
  130. // 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/frontend/name_cert/index.vue?vue&type=template&id=48c44c38&
  131. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.mobile ? 'mobileMain' : '',style:({
  132. marginTop: _vm.mainMarginTop,
  133. marginBottom: _vm.mobile ? '0px' : '30px !important'
  134. })},[(!_vm.mobile)?_c('div',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.loading),expression:"loading"}],staticClass:"name-cert-container"},[_vm._ssrNode("<div class=\"name-cert-main\">","</div>",[_vm._ssrNode("<div class=\"name-cert-title-area\"><img"+(_vm._ssrAttr("src",_vm.icon))+" class=\"name-cert-icon\"> <h6 class=\"name-cert-title\">实名认证</h6> <p class=\"name-cert-tips\">请如实填写信息,客栈承诺保障用户的信息安</p></div> "),_c('el-form',{ref:"modalForm",attrs:{"model":_vm.modalFormData,"rules":_vm.rules,"size":"medium","label-width":"100px"}},[_c('div',{staticClass:"name-cert-label"},[_vm._v("姓名")]),_vm._v(" "),_c('el-form-item',{attrs:{"label-width":"0","prop":"cert_name"}},[_c('el-input',{style:({ width: '100%' }),attrs:{"placeholder":"请输入真实姓名","clearable":""},model:{value:(_vm.modalFormData.cert_name),callback:function ($$v) {_vm.$set(_vm.modalFormData, "cert_name", $$v)},expression:"modalFormData.cert_name"}})],1),_vm._v(" "),_c('div',{staticClass:"name-cert-label"},[_vm._v("证件类型")]),_vm._v(" "),_c('el-form-item',{attrs:{"label-width":"0","prop":"cert_type"}},[_c('el-select',{style:({ width: '100%' }),attrs:{"placeholder":"请选择证件类型","clearable":""},model:{value:(_vm.modalFormData.cert_type),callback:function ($$v) {_vm.$set(_vm.modalFormData, "cert_type", $$v)},expression:"modalFormData.cert_type"}},_vm._l((_vm.cert_typeOptions),function(item,index){return _c('el-option',{key:index,attrs:{"label":item.label,"value":item.value,"disabled":item.disabled}})}),1)],1),_vm._v(" "),_c('div',{staticClass:"name-cert-label"},[_vm._v("证件号")]),_vm._v(" "),_c('el-form-item',{attrs:{"label-width":"0","prop":"cert_no"}},[_c('el-input',{style:({ width: '100%' }),attrs:{"placeholder":"请输入证件号","clearable":""},model:{value:(_vm.modalFormData.cert_no),callback:function ($$v) {_vm.$set(_vm.modalFormData, "cert_no", $$v)},expression:"modalFormData.cert_no"}})],1),_vm._v(" "),_c('div',{staticClass:"upload-main"},[_c('el-upload',{staticClass:"upload-box",attrs:{"action":"#","show-file-list":false,"multiple":false,"accept":"image/png, image/jpeg","before-upload":function (file) { return _vm.handleFileChange(file,'z_file'); }}},[(_vm.z_file)?_c('div',{staticClass:"upload-img",on:{"click":function($event){$event.stopPropagation();return _vm.handleDeleteFile('z_file')}}},[_c('i',{staticClass:"el-icon-delete avatar-uploader-icon"}),_vm._v(" "),_c('img',{staticClass:"avatar",attrs:{"src":_vm.z_file}})]):_c('div',{staticClass:"upload-area z_file"},[_c('p',[_vm._v("+点击上传正面")]),_vm._v(" "),_c('div',{staticClass:"upload-"})])]),_vm._v(" "),_c('el-upload',{staticClass:"upload-box",attrs:{"action":"#","show-file-list":false,"multiple":false,"accept":"image/png, image/jpeg","before-upload":function (file) { return _vm.handleFileChange(file,'f_file'); }}},[(_vm.f_file)?_c('div',{staticClass:"upload-img",on:{"click":function($event){$event.stopPropagation();return _vm.handleDeleteFile('f_file')}}},[_c('i',{staticClass:"el-icon-delete avatar-uploader-icon"}),_vm._v(" "),_c('img',{staticClass:"avatar",attrs:{"src":_vm.f_file}})]):_c('div',{staticClass:"upload-area f_file"},[_c('p',[_vm._v("+点击上传反面")])])])],1),_vm._v(" "),_c('div',{staticClass:"name-cert-submit"},[_c('el-button',{staticClass:"cert-btn",attrs:{"type":"primary","size":"medium"},on:{"click":_vm.submitForm}},[_vm._v("实名认证")])],1)],1)],2)]):_vm._e(),_vm._ssrNode(" "),_c('el-dialog',{attrs:{"title":"温馨提示","visible":_vm.centerDialogVisible,"width":"350px","center":""},on:{"close":_vm.qrcodeClose,"update:visible":function($event){_vm.centerDialogVisible=$event}}},[_c('p',{staticClass:"qrcode-tips"},[_vm._v("请打开支付宝扫码以下二维码")]),_vm._v(" "),_c('div',{staticClass:"qrcode-img"},[_c('img',{attrs:{"src":_vm.qrcodeBase64}})])])],2)}
  135. var staticRenderFns = []
  136. // CONCATENATED MODULE: ./pages/frontend/name_cert/index.vue?vue&type=template&id=48c44c38&
  137. // EXTERNAL MODULE: external "vuex"
  138. var external_vuex_ = __webpack_require__(2);
  139. // EXTERNAL MODULE: external "qs"
  140. var external_qs_ = __webpack_require__(33);
  141. // EXTERNAL MODULE: ./assets/img/account/certicon@3x.png
  142. var certicon_3x = __webpack_require__(171);
  143. var certicon_3x_default = /*#__PURE__*/__webpack_require__.n(certicon_3x);
  144. // EXTERNAL MODULE: ./assets/img/account/cert_success_icon@3x.png
  145. var cert_success_icon_3x = __webpack_require__(172);
  146. var cert_success_icon_3x_default = /*#__PURE__*/__webpack_require__.n(cert_success_icon_3x);
  147. // EXTERNAL MODULE: ./assets/img/account/cert_fail_icon@3x.png
  148. var cert_fail_icon_3x = __webpack_require__(173);
  149. var cert_fail_icon_3x_default = /*#__PURE__*/__webpack_require__.n(cert_fail_icon_3x);
  150. // EXTERNAL MODULE: external "qrcode"
  151. var external_qrcode_ = __webpack_require__(67);
  152. var external_qrcode_default = /*#__PURE__*/__webpack_require__.n(external_qrcode_);
  153. // EXTERNAL MODULE: ./components/uploader.vue + 4 modules
  154. var uploader = __webpack_require__(101);
  155. // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/webpack/node_modules/vue-loader/lib??vue-loader-options!./pages/frontend/name_cert/index.vue?vue&type=script&lang=js&
  156. //
  157. //
  158. //
  159. //
  160. //
  161. //
  162. //
  163. //
  164. //
  165. //
  166. //
  167. //
  168. //
  169. //
  170. //
  171. //
  172. //
  173. //
  174. //
  175. //
  176. //
  177. //
  178. //
  179. //
  180. //
  181. //
  182. //
  183. //
  184. //
  185. //
  186. //
  187. //
  188. //
  189. //
  190. //
  191. //
  192. //
  193. //
  194. //
  195. //
  196. //
  197. //
  198. //
  199. //
  200. //
  201. //
  202. //
  203. //
  204. //
  205. //
  206. //
  207. //
  208. //
  209. //
  210. //
  211. //
  212. //
  213. //
  214. //
  215. //
  216. //
  217. //
  218. //
  219. //
  220. //
  221. //
  222. //
  223. //
  224. //
  225. //
  226. //
  227. /* harmony default export */ var name_certvue_type_script_lang_js_ = ({
  228. name: "SeoLearnList",
  229. components: {
  230. uploader: uploader["a" /* default */]
  231. },
  232. data() {
  233. return {
  234. diploma_photo: "",
  235. loading: false,
  236. baseUrl: "",
  237. mobile: false,
  238. isWeixinApp: true,
  239. icon: certicon_3x_default.a,
  240. iconSuccess: cert_success_icon_3x_default.a,
  241. iconFail: cert_fail_icon_3x_default.a,
  242. centerDialogVisible: false,
  243. url: "",
  244. certifyId: "",
  245. qrcodeBase64: "",
  246. timer: null,
  247. // normal 待实名 success 认证成功 fail 认证失败
  248. state: "normal",
  249. init: false,
  250. modalFormData: {
  251. cert_name: "",
  252. cert_type: 1,
  253. cert_no: ""
  254. },
  255. z_file: "",
  256. f_file: "",
  257. rules: {
  258. cert_name: [{
  259. required: true,
  260. message: "请输入真实姓名",
  261. trigger: "blur"
  262. }],
  263. cert_type: [{
  264. required: true,
  265. message: "请选择证件类型",
  266. trigger: "change"
  267. }],
  268. cert_no: [{
  269. required: true,
  270. message: "请输入证件号",
  271. trigger: "blur"
  272. }]
  273. },
  274. cert_typeOptions: [{
  275. label: "身份证",
  276. value: 1
  277. }, {
  278. label: "港澳通行证",
  279. value: 2
  280. }, {
  281. label: "台湾通行证",
  282. value: 3
  283. }, {
  284. label: "港澳居住证",
  285. value: 4
  286. }, {
  287. label: "台湾身份证",
  288. value: 5
  289. }]
  290. };
  291. },
  292. head() {
  293. const {
  294. title = "实名认证",
  295. keyword = "",
  296. description = "",
  297. h1 = "",
  298. canonical = "",
  299. metaLocation
  300. } = this.head || {};
  301. let obj = {
  302. title: title,
  303. meta: [{
  304. name: "keywords",
  305. content: keyword
  306. }, {
  307. name: "description",
  308. content: description
  309. }, {
  310. name: "h1",
  311. content: h1
  312. }],
  313. link: [{
  314. rel: "canonical",
  315. href: canonical
  316. }]
  317. };
  318. if (metaLocation) {
  319. obj.meta.push({
  320. name: "location",
  321. content: metaLocation
  322. });
  323. }
  324. return obj;
  325. },
  326. computed: { ...Object(external_vuex_["mapState"])(["deviceType"]),
  327. showWxHeader() {
  328. return !this.deviceType.app && !this.isWeixinApp && (this.deviceType.android || this.deviceType.ios);
  329. },
  330. mainMarginTop() {
  331. if (this.mobile && this.showWxHeader) {
  332. return "64px !important";
  333. } else if (this.mobile) {
  334. return "0px !important";
  335. } else {
  336. return "20px !important";
  337. }
  338. },
  339. userInfo() {
  340. return this.$store.state.userinfo;
  341. }
  342. },
  343. mounted() {
  344. this.checkLogin(true);
  345. this.home_page_type = this.userInfo.home_page_type;
  346. this.baseUrl = this.$store.state.domainConfig.siteUrl;
  347. this.isWeixinApp = navigator.userAgent.indexOf("miniProgram") > -1;
  348. this.checkNameIsCerted();
  349. document.body.style.background = "#fff";
  350. },
  351. methods: {
  352. handleDeleteFile(type) {
  353. if (type == 'z_file') {
  354. this.z_file = "";
  355. }
  356. if (type == 'f_file') {
  357. this.f_file = "";
  358. }
  359. },
  360. handleFileChange(file, type) {
  361. if (this.limitFileSize && this.limitFileSize > 0) {
  362. if (file.size / (1024 * 1024) > this.limitFileSize) {
  363. this.$message.error(`图片大小不得超过${this.limitFileSize}M,请重新选择`);
  364. return false;
  365. }
  366. } else if (file.size / 1024 > 2048) {
  367. this.$message.error("图片大小不得超过2M,请重新选择");
  368. return false;
  369. }
  370. const formData = new FormData();
  371. formData.append("file", file);
  372. formData.append("original_filename", file.name);
  373. this.uploading = true;
  374. this.$axios.$post(`/upload_image`, formData, {
  375. headers: {
  376. "Content-Type": "multipart/form-data"
  377. }
  378. }).then(res => {
  379. this.$emit("change", res.filename);
  380. if (type == 'z_file') {
  381. this.z_file = res.filename;
  382. }
  383. if (type == 'f_file') {
  384. this.f_file = res.filename;
  385. }
  386. }).finally(() => {
  387. this.uploading = false;
  388. });
  389. return false;
  390. },
  391. submitForm() {
  392. this.$refs["modalForm"].validate(valid => {
  393. if (!valid) return;
  394. if (!this.z_file) {
  395. this.$message.error("请上传证件正面");
  396. return;
  397. }
  398. if (!this.f_file) {
  399. this.$message.error("请上传证件反面");
  400. return;
  401. }
  402. this.submit(); // TODO 提交表单
  403. });
  404. },
  405. resetForm() {
  406. this.$refs["modalForm"].resetFields();
  407. },
  408. async submit() {
  409. this.loading = true;
  410. const {
  411. cert_name,
  412. cert_no,
  413. cert_type
  414. } = this.modalFormData; // 测试用
  415. // let res = {
  416. // status:1,
  417. // data: {
  418. // url: "http://www.baidu.com",
  419. // certifyId: "123123"
  420. // }
  421. // }
  422. let res = await this.$axios.$post("/uapi/user/realName/create", {
  423. cert_name,
  424. cert_no,
  425. cert_type,
  426. z_file: this.z_file,
  427. f_file: this.f_file,
  428. is_face_check: this.$route.query.is_face_check == 1 ? 1 : 0,
  429. from_type: 1
  430. });
  431. this.loading = false;
  432. if (Number(res.status) !== 1) {
  433. return;
  434. }
  435. const {
  436. kezhan_url,
  437. certifyId,
  438. cert_status,
  439. zfb_url,
  440. certify_type
  441. } = res.data;
  442. if (cert_status == 3) {
  443. this.toSuccess();
  444. return;
  445. }
  446. if (certify_type == 2) {
  447. this.url = kezhan_url;
  448. this.certifyId = certifyId;
  449. this.centerDialogVisible = true;
  450. this.createQrCode();
  451. this.startTimer();
  452. }
  453. },
  454. createQrCode() {
  455. this.$nextTick(() => {
  456. const text = this.url;
  457. let that = this;
  458. external_qrcode_default.a.toDataURL(text, {
  459. errorCorrectionLevel: "H",
  460. margin: 1,
  461. width: 300
  462. }, function (err, url) {
  463. that.qrcodeBase64 = url;
  464. });
  465. });
  466. },
  467. startTimer() {
  468. // 启动定时器查询
  469. if (this.timer) {
  470. clearInterval(this.timer);
  471. this.timer = null;
  472. }
  473. this.timer = setInterval(async () => {
  474. let res = await this.$axios.$post("/uapi/user/realName/check", {});
  475. if (Number(res.status) !== 1) {
  476. this.$message.error(res.info);
  477. return;
  478. }
  479. let {
  480. type,
  481. is_face
  482. } = res.data;
  483. if (type == 1 || type == 4) {
  484. this.centerDialogVisible = false;
  485. clearInterval(this.timer);
  486. this.timer = null;
  487. if (type == 4) {
  488. this.toFail();
  489. return;
  490. }
  491. if (this.$route.query.is_face_check == 1) {
  492. if (is_face == 1) {
  493. location.href = "/wo/cash?type=1";
  494. }
  495. } else {
  496. this.toSuccess();
  497. }
  498. }
  499. }, 5000);
  500. },
  501. qrcodeClose() {
  502. clearInterval(this.timer);
  503. this.timer = null;
  504. },
  505. checkNameIsCerted() {
  506. if (this.userInfo && this.userInfo.realname_verify_status == 2) {
  507. this.toSuccess();
  508. }
  509. },
  510. toSuccess() {
  511. location.href = "/frontend/name_cert_success";
  512. },
  513. toFail() {
  514. location.href = "/frontend/name_cert_fail";
  515. }
  516. }
  517. });
  518. // CONCATENATED MODULE: ./pages/frontend/name_cert/index.vue?vue&type=script&lang=js&
  519. /* harmony default export */ var frontend_name_certvue_type_script_lang_js_ = (name_certvue_type_script_lang_js_);
  520. // EXTERNAL MODULE: ./node_modules/@nuxt/webpack/node_modules/vue-loader/lib/runtime/componentNormalizer.js
  521. var componentNormalizer = __webpack_require__(1);
  522. // CONCATENATED MODULE: ./pages/frontend/name_cert/index.vue
  523. function injectStyles (context) {
  524. var style0 = __webpack_require__(542)
  525. if (style0.__inject__) style0.__inject__(context)
  526. }
  527. /* normalize component */
  528. var component = Object(componentNormalizer["a" /* default */])(
  529. frontend_name_certvue_type_script_lang_js_,
  530. render,
  531. staticRenderFns,
  532. false,
  533. injectStyles,
  534. null,
  535. "728cc8f0"
  536. )
  537. /* harmony default export */ var name_cert = __webpack_exports__["default"] = (component.exports);
  538. /***/ }),
  539. /***/ 82:
  540. /***/ (function(module, exports) {
  541. // Exports
  542. module.exports = {};
  543. /***/ })
  544. };;
  545. //# sourceMappingURL=122.js.map