payment.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856
  1. exports.ids = [33,7,17];
  2. exports.modules = {
  3. /***/ 136:
  4. /***/ (function(module, exports, __webpack_require__) {
  5. // style-loader: Adds some css to the DOM by adding a <style> tag
  6. // load the styles
  7. var content = __webpack_require__(139);
  8. if(content.__esModule) content = content.default;
  9. if(typeof content === 'string') content = [[module.i, content, '']];
  10. if(content.locals) module.exports = content.locals;
  11. // add CSS to SSR context
  12. var add = __webpack_require__(4).default
  13. module.exports.__inject__ = function (context) {
  14. add("3181fc86", content, true, context)
  15. };
  16. /***/ }),
  17. /***/ 137:
  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/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/price-formate.vue?vue&type=template&id=0c4d5c85&
  23. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{class:(_vm.lineThrough ? 'line-through' : '') + 'price-format',style:({ color: _vm.color, 'font-weight': _vm.weight })},[_vm._ssrNode(((_vm.showSubscript)?("<span"+(_vm._ssrStyle(null,{
  24. 'font-size': _vm.subscriptSize + 'px',
  25. 'margin-right': '1px',
  26. }, null))+">¥</span>"):"<!---->")+" <span"+(_vm._ssrStyle(null,{ 'font-size': _vm.firstSize + 'px', 'margin-right': '1px' }, null))+">"+_vm._ssrEscape(_vm._s(_vm.priceSlice.first))+"</span> "+((_vm.priceSlice.second)?("<span"+(_vm._ssrStyle(null,{ 'font-size': _vm.secondSize + 'px' }, null))+">"+_vm._ssrEscape("."+_vm._s(_vm.priceSlice.second))+"</span>"):"<!---->"))])}
  27. var staticRenderFns = []
  28. // CONCATENATED MODULE: ./components/price-formate.vue?vue&type=template&id=0c4d5c85&
  29. // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/price-formate.vue?vue&type=script&lang=js&
  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. /* harmony default export */ var price_formatevue_type_script_lang_js_ = ({
  56. data() {
  57. return {
  58. priceSlice: {}
  59. };
  60. },
  61. components: {},
  62. props: {
  63. firstSize: {
  64. type: Number,
  65. default: 14
  66. },
  67. secondSize: {
  68. type: Number,
  69. default: 14
  70. },
  71. color: {
  72. type: String
  73. },
  74. weight: {
  75. type: [String, Number],
  76. default: 400
  77. },
  78. price: {
  79. type: [String, Number],
  80. default: ''
  81. },
  82. showSubscript: {
  83. type: Boolean,
  84. default: true
  85. },
  86. subscriptSize: {
  87. type: Number,
  88. default: 14
  89. },
  90. lineThrough: {
  91. type: Boolean,
  92. default: false
  93. }
  94. },
  95. created() {
  96. this.priceFormat();
  97. },
  98. watch: {
  99. price(val) {
  100. this.priceFormat();
  101. }
  102. },
  103. methods: {
  104. priceFormat() {
  105. let {
  106. price
  107. } = this;
  108. let priceSlice = {};
  109. if (price !== null) {
  110. price = parseFloat(price);
  111. price = String(price).split('.');
  112. priceSlice.first = price[0];
  113. priceSlice.second = price[1];
  114. this.priceSlice = priceSlice;
  115. }
  116. }
  117. }
  118. });
  119. // CONCATENATED MODULE: ./components/price-formate.vue?vue&type=script&lang=js&
  120. /* harmony default export */ var components_price_formatevue_type_script_lang_js_ = (price_formatevue_type_script_lang_js_);
  121. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  122. var componentNormalizer = __webpack_require__(1);
  123. // CONCATENATED MODULE: ./components/price-formate.vue
  124. function injectStyles (context) {
  125. var style0 = __webpack_require__(138)
  126. if (style0.__inject__) style0.__inject__(context)
  127. }
  128. /* normalize component */
  129. var component = Object(componentNormalizer["a" /* default */])(
  130. components_price_formatevue_type_script_lang_js_,
  131. render,
  132. staticRenderFns,
  133. false,
  134. injectStyles,
  135. null,
  136. "7ae24710"
  137. )
  138. /* harmony default export */ var price_formate = __webpack_exports__["default"] = (component.exports);
  139. /***/ }),
  140. /***/ 138:
  141. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  142. "use strict";
  143. __webpack_require__.r(__webpack_exports__);
  144. /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_price_formate_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(136);
  145. /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_price_formate_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_price_formate_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
  146. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_price_formate_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_price_formate_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  147. /***/ }),
  148. /***/ 139:
  149. /***/ (function(module, exports, __webpack_require__) {
  150. // Imports
  151. var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3);
  152. var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
  153. // Module
  154. ___CSS_LOADER_EXPORT___.push([module.i, ".price-format{display:flex;align-items:baseline}", ""]);
  155. // Exports
  156. module.exports = ___CSS_LOADER_EXPORT___;
  157. /***/ }),
  158. /***/ 144:
  159. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  160. "use strict";
  161. // ESM COMPAT FLAG
  162. __webpack_require__.r(__webpack_exports__);
  163. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/count-down.vue?vue&type=template&id=2fbaab86&
  164. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.time >= 0)?_c('div',[_c('client-only',[(_vm.isSlot)?_vm._t("default"):_c('span',[_vm._v(_vm._s(_vm.formateTime))])],2)],1):_vm._e()}
  165. var staticRenderFns = []
  166. // CONCATENATED MODULE: ./components/count-down.vue?vue&type=template&id=2fbaab86&
  167. // CONCATENATED MODULE: ./utils/parseTime.js
  168. const SECOND = 1000;
  169. const MINUTE = 60 * SECOND;
  170. const HOUR = 60 * MINUTE;
  171. const DAY = 24 * HOUR;
  172. function parseTimeData(time) {
  173. const days = Math.floor(time / DAY);
  174. const hours = sliceTwo(Math.floor(time % DAY / HOUR));
  175. const minutes = sliceTwo(Math.floor(time % HOUR / MINUTE));
  176. const seconds = sliceTwo(Math.floor(time % MINUTE / SECOND));
  177. return {
  178. days: days,
  179. hours: hours,
  180. minutes: minutes,
  181. seconds: seconds
  182. };
  183. }
  184. function sliceTwo(str) {
  185. return (0 + str.toString()).slice(-2);
  186. }
  187. function parseFormat(format, timeData) {
  188. let days = timeData.days;
  189. let hours = timeData.hours,
  190. minutes = timeData.minutes,
  191. seconds = timeData.seconds;
  192. if (format.indexOf('dd') !== -1) {
  193. format = format.replace('dd', days);
  194. }
  195. if (format.indexOf('hh') !== -1) {
  196. format = format.replace('hh', sliceTwo(hours));
  197. }
  198. if (format.indexOf('mm') !== -1) {
  199. format = format.replace('mm', sliceTwo(minutes));
  200. }
  201. if (format.indexOf('ss') !== -1) {
  202. format = format.replace('ss', sliceTwo(seconds));
  203. }
  204. return format;
  205. }
  206. // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/count-down.vue?vue&type=script&lang=js&
  207. //
  208. //
  209. //
  210. //
  211. //
  212. //
  213. //
  214. //
  215. //
  216. /* harmony default export */ var count_downvue_type_script_lang_js_ = ({
  217. components: {},
  218. props: {
  219. isSlot: {
  220. type: Boolean,
  221. default: false
  222. },
  223. time: {
  224. type: Number,
  225. default: 0
  226. },
  227. format: {
  228. type: String,
  229. default: 'hh:mm:ss'
  230. },
  231. autoStart: {
  232. type: Boolean,
  233. default: true
  234. }
  235. },
  236. watch: {
  237. time: {
  238. immediate: true,
  239. handler(value) {
  240. if (value) {
  241. this.reset();
  242. }
  243. }
  244. }
  245. },
  246. data() {
  247. return {
  248. timeObj: {},
  249. formateTime: 0
  250. };
  251. },
  252. created() {},
  253. computed: {},
  254. methods: {
  255. createTimer(fn) {
  256. return setTimeout(fn, 100);
  257. },
  258. isSameSecond(time1, time2) {
  259. return Math.floor(time1) === Math.floor(time2);
  260. },
  261. start() {
  262. if (this.counting) {
  263. return;
  264. }
  265. this.counting = true;
  266. this.endTime = Date.now() + this.remain * 1000;
  267. this.setTimer();
  268. },
  269. setTimer() {
  270. this.tid = this.createTimer(() => {
  271. let remain = this.getRemain();
  272. if (!this.isSameSecond(remain, this.remain) || remain === 0) {
  273. this.setRemain(remain);
  274. }
  275. if (this.remain !== 0) {
  276. this.setTimer();
  277. }
  278. });
  279. },
  280. getRemain() {
  281. return Math.max(this.endTime - Date.now(), 0);
  282. },
  283. pause() {
  284. this.counting = false;
  285. clearTimeout(this.tid);
  286. },
  287. reset() {
  288. this.pause();
  289. this.remain = this.time;
  290. this.setRemain(this.remain);
  291. if (this.autoStart) {
  292. this.start();
  293. }
  294. },
  295. setRemain(remain) {
  296. const {
  297. format
  298. } = this;
  299. this.remain = remain;
  300. const timeData = parseTimeData(remain);
  301. this.formateTime = parseFormat(format, timeData);
  302. this.$emit('change', timeData);
  303. if (remain === 0) {
  304. this.pause();
  305. this.$emit('finish');
  306. }
  307. }
  308. }
  309. });
  310. // CONCATENATED MODULE: ./components/count-down.vue?vue&type=script&lang=js&
  311. /* harmony default export */ var components_count_downvue_type_script_lang_js_ = (count_downvue_type_script_lang_js_);
  312. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  313. var componentNormalizer = __webpack_require__(1);
  314. // CONCATENATED MODULE: ./components/count-down.vue
  315. function injectStyles (context) {
  316. }
  317. /* normalize component */
  318. var component = Object(componentNormalizer["a" /* default */])(
  319. components_count_downvue_type_script_lang_js_,
  320. render,
  321. staticRenderFns,
  322. false,
  323. injectStyles,
  324. null,
  325. "4090b4e2"
  326. )
  327. /* harmony default export */ var count_down = __webpack_exports__["default"] = (component.exports);
  328. /***/ }),
  329. /***/ 149:
  330. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  331. "use strict";
  332. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return client; });
  333. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return loginType; });
  334. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return SMSType; });
  335. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return FieldType; });
  336. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AfterSaleType; });
  337. const client = 5;
  338. const loginType = {
  339. SMS: 0,
  340. ACCOUNT: 1
  341. }; // 短信发送
  342. const SMSType = {
  343. // 注册
  344. REGISTER: 'ZCYZ',
  345. // 找回密码
  346. FINDPWD: 'ZHMM',
  347. // 登陆
  348. LOGIN: 'YZMDL',
  349. // 商家申请入驻
  350. SJSQYZ: 'SJSQYZ',
  351. // 更换手机号
  352. CHANGE_MOBILE: 'BGSJHM',
  353. // 绑定手机号
  354. BIND: 'BDSJHM'
  355. };
  356. const FieldType = {
  357. NONE: '',
  358. SEX: 'sex',
  359. NICKNAME: 'nickname',
  360. AVATAR: 'avatar',
  361. MOBILE: 'mobile'
  362. }; // 售后状态
  363. const AfterSaleType = {
  364. // 售后申请
  365. NORMAL: 'normal',
  366. // 处理中
  367. HANDLING: 'apply',
  368. // 已处理
  369. FINISH: 'finish'
  370. };
  371. /***/ }),
  372. /***/ 198:
  373. /***/ (function(module, exports, __webpack_require__) {
  374. module.exports = __webpack_require__.p + "img/pay_success.3a82887.png";
  375. /***/ }),
  376. /***/ 218:
  377. /***/ (function(module, exports, __webpack_require__) {
  378. // style-loader: Adds some css to the DOM by adding a <style> tag
  379. // load the styles
  380. var content = __webpack_require__(266);
  381. if(content.__esModule) content = content.default;
  382. if(typeof content === 'string') content = [[module.i, content, '']];
  383. if(content.locals) module.exports = content.locals;
  384. // add CSS to SSR context
  385. var add = __webpack_require__(4).default
  386. module.exports.__inject__ = function (context) {
  387. add("45c31cf0", content, true, context)
  388. };
  389. /***/ }),
  390. /***/ 264:
  391. /***/ (function(module, exports, __webpack_require__) {
  392. module.exports = __webpack_require__.p + "img/pay_wait.2214e17.png";
  393. /***/ }),
  394. /***/ 265:
  395. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  396. "use strict";
  397. __webpack_require__.r(__webpack_exports__);
  398. /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_payment_vue_vue_type_style_index_0_id_5f312006_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(218);
  399. /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_payment_vue_vue_type_style_index_0_id_5f312006_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_payment_vue_vue_type_style_index_0_id_5f312006_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
  400. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_payment_vue_vue_type_style_index_0_id_5f312006_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_3_node_modules_sass_resources_loader_lib_loader_js_ref_7_oneOf_1_4_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_payment_vue_vue_type_style_index_0_id_5f312006_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  401. /***/ }),
  402. /***/ 266:
  403. /***/ (function(module, exports, __webpack_require__) {
  404. // Imports
  405. var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3);
  406. var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
  407. // Module
  408. ___CSS_LOADER_EXPORT___.push([module.i, ".payment[data-v-5f312006]{margin:16px 0;padding:0 40px}.payment .payment-hd>img[data-v-5f312006]{width:32px;height:32px}.payment .payment-hd .status[data-v-5f312006]{font-size:24px}.payment .payment-con[data-v-5f312006],.payment .payment-hd[data-v-5f312006]{padding:32px 0;border-bottom:1px dashed hsla(0,0%,89.8%,.89804)}.payment .payment-con .item[data-v-5f312006]{align-items:flex-start}.payment .payment-footer[data-v-5f312006]{padding:32px 0}.payment .payment-footer .pay-way[data-v-5f312006]{min-width:200px;padding:0 20px;height:68px;cursor:pointer;margin-right:32px;border:1px dashed hsla(0,0%,89.8%,.89804)}.payment .payment-footer .pay-way img[data-v-5f312006]{width:30px;height:30px}.payment .payment-footer .btn[data-v-5f312006]{width:134px;height:40px;border:1px solid hsla(0,0%,89.8%,.89804)}.payment .el-dialog .pay-code[data-v-5f312006]{width:270px;height:270px}.payment .el-dialog .pay-money[data-v-5f312006]{font-size:18px;margin-top:24px;align-items:baseline}", ""]);
  409. // Exports
  410. module.exports = ___CSS_LOADER_EXPORT___;
  411. /***/ }),
  412. /***/ 342:
  413. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  414. "use strict";
  415. // ESM COMPAT FLAG
  416. __webpack_require__.r(__webpack_exports__);
  417. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./pages/payment.vue?vue&type=template&id=5f312006&scoped=true&
  418. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"payment bg-white"},[_vm._ssrNode("<div class=\"payment-hd flex\" data-v-5f312006>","</div>",[(_vm.order.pay_status == 0)?[_vm._ssrNode("<img"+(_vm._ssrAttr("src",__webpack_require__(264)))+" alt data-v-5f312006> <div class=\"status m-l-8 m-r-16 weight-500\" data-v-5f312006>"+_vm._ssrEscape("\n "+_vm._s(_vm.getOrderStatus(_vm.order.order_status))+"\n ")+"</div> "),(_vm.getCancelTime(_vm.order.cancel_time) > 0)?_vm._ssrNode("<div class=\"flex\" data-v-5f312006>","</div>",[_vm._ssrNode("\n 请在\n "),_c('count-down',{style:({ color: '#FF2C3C' }),attrs:{"time":_vm.getCancelTime(_vm.order.cancel_time),"format":"hh时mm分ss秒"},on:{"finish":_vm.getOrder}}),_vm._ssrNode("\n 完成支付, 超时后将取消订单\n ")],2):_vm._e()]:_vm._e(),_vm._ssrNode(" "+((_vm.order.pay_status == 1)?("<img"+(_vm._ssrAttr("src",__webpack_require__(198)))+" alt data-v-5f312006> <div class=\"status m-l-8 m-r-16 weight-500\" data-v-5f312006>支付成功</div>"):"<!---->"))],2),_vm._ssrNode(" <div class=\"payment-con\" data-v-5f312006><div class=\"item flex m-b-16\" data-v-5f312006>"+_vm._ssrEscape("订单编号:"+_vm._s(_vm.order.order_sn))+"</div> <div class=\"item flex m-b-16\" data-v-5f312006>\n 订单价格:<span class=\"primary\" data-v-5f312006>"+_vm._ssrEscape("¥"+_vm._s(_vm.order.total_amount))+"</span></div> <div class=\"item flex m-b-16\" data-v-5f312006>\n 收货地址:\n <div data-v-5f312006>"+_vm._ssrEscape("\n "+_vm._s(_vm.address.contact)+" "+_vm._s(_vm.address.mobile)+"\n ")+"<span class=\"m-l-16\" data-v-5f312006>"+_vm._ssrEscape(_vm._s(_vm.address.delivery_address))+"</span></div></div> <div class=\"item flex m-b-16\" data-v-5f312006>\n 商品名称:\n <div data-v-5f312006>"+(_vm._ssrList((_vm.order.order_goods),function(item,index){return ("<div data-v-5f312006><div class=\"flex lin-1\" data-v-5f312006>"+_vm._ssrEscape("\n 【商品"+_vm._s(index + 1)+"】- "+_vm._s(item.goods_name)+"\n ")+"</div></div>")}))+"</div></div></div> "),_vm._ssrNode("<div class=\"payment-footer\" data-v-5f312006>","</div>",[(_vm.order.pay_status == 0 && _vm.order.order_status == 0)?[_vm._ssrNode("<div class=\"title lg weight-500\" data-v-5f312006>请选择支付方式</div> <div class=\"flex m-t-16\" data-v-5f312006>"+(_vm._ssrList((_vm.payWayArr),function(item,index){return ("<div class=\"pay-way flex row-center\" data-v-5f312006><img"+(_vm._ssrAttr("src",item.image))+" alt data-v-5f312006> <div class=\"m-l-16\" data-v-5f312006><span class=\"md\" data-v-5f312006>"+_vm._ssrEscape(_vm._s(item.name))+"</span> <div class=\"muted m-t-2 sm\" data-v-5f312006>"+_vm._ssrEscape(_vm._s(item.extra))+"</div></div></div>")}))+"</div>")]:_c('nuxt-link',{staticClass:"btn flex row-center",attrs:{"to":"/user/order"}},[_vm._v("查看订单")])],2),_vm._ssrNode(" "),_c('el-dialog',{attrs:{"title":"微信支付","visible":_vm.showWxpay,"width":"700px","center":""},on:{"update:visible":function($event){_vm.showWxpay=$event},"close":_vm.clearTimer}},[_c('div',{staticClass:"flex-col col-center black"},[_c('img',{staticClass:"pay-code",attrs:{"src":_vm.payInfo,"alt":""}}),_vm._v(" "),_c('div',{staticClass:"m-t-8",staticStyle:{"font-size":"18px"}},[_vm._v("\n 微信扫一扫,完成支付\n ")]),_vm._v(" "),_c('div',{staticClass:"pay-money flex"},[_c('span',[_vm._v("需支付金额:")]),_vm._v(" "),_c('span',{staticClass:"primary"},[_c('price-formate',{attrs:{"price":_vm.order.total_amount,"subscript-size":18,"first-size":28,"second-size":28}})],1)])])])],2)}
  419. var staticRenderFns = []
  420. // CONCATENATED MODULE: ./pages/payment.vue?vue&type=template&id=5f312006&scoped=true&
  421. // EXTERNAL MODULE: ./utils/type.js
  422. var type = __webpack_require__(149);
  423. // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./pages/payment.vue?vue&type=script&lang=js&
  424. //
  425. //
  426. //
  427. //
  428. //
  429. //
  430. //
  431. //
  432. //
  433. //
  434. //
  435. //
  436. //
  437. //
  438. //
  439. //
  440. //
  441. //
  442. //
  443. //
  444. //
  445. //
  446. //
  447. //
  448. //
  449. //
  450. //
  451. //
  452. //
  453. //
  454. //
  455. //
  456. //
  457. //
  458. //
  459. //
  460. //
  461. //
  462. //
  463. //
  464. //
  465. //
  466. //
  467. //
  468. //
  469. //
  470. //
  471. //
  472. //
  473. //
  474. //
  475. //
  476. //
  477. //
  478. //
  479. //
  480. //
  481. //
  482. //
  483. //
  484. //
  485. //
  486. //
  487. //
  488. //
  489. //
  490. //
  491. //
  492. //
  493. //
  494. //
  495. //
  496. //
  497. //
  498. //
  499. //
  500. //
  501. //
  502. //
  503. //
  504. //
  505. //
  506. //
  507. //
  508. //
  509. //
  510. //
  511. //
  512. //
  513. //
  514. //
  515. //
  516. //
  517. //
  518. //
  519. //
  520. //
  521. //
  522. //
  523. //
  524. //
  525. //
  526. //
  527. //
  528. //
  529. /* harmony default export */ var paymentvue_type_script_lang_js_ = ({
  530. head() {
  531. return {
  532. title: this.$store.getters.headTitle,
  533. link: [{
  534. rel: 'icon',
  535. type: 'image/x-icon',
  536. href: this.$store.getters.favicon
  537. }]
  538. };
  539. },
  540. async asyncData({
  541. query,
  542. $get
  543. }) {
  544. const {
  545. data
  546. } = await $get('order/getPayStatus', {
  547. params: {
  548. id: query.id,
  549. from: query.from
  550. }
  551. });
  552. return {
  553. order: data,
  554. address: data.address
  555. };
  556. },
  557. data() {
  558. return {
  559. showWxpay: false,
  560. showAlipay: false,
  561. payWayArr: [],
  562. payInfo: {},
  563. cancelTime: 0,
  564. alipayHtml: '',
  565. address: {}
  566. };
  567. },
  568. created() {
  569. this.id = this.$route.query.id;
  570. this.from = this.$route.query.from;
  571. this.getPayway();
  572. },
  573. beforeDestroy() {
  574. clearInterval(this.timer);
  575. },
  576. methods: {
  577. async getPayway() {
  578. const {
  579. code,
  580. data
  581. } = await this.$get('order/getPayWay', {
  582. params: {
  583. from: 'order',
  584. order_id: this.id
  585. }
  586. });
  587. if (code == 1) {
  588. this.payWayArr = data.pay_way;
  589. if (!this.payWayArr.length) this.$message({
  590. message: '请联系管理员配置支付方式',
  591. type: 'error'
  592. });
  593. }
  594. },
  595. async orderPay(payWay) {
  596. const {
  597. data,
  598. code,
  599. msg
  600. } = await this.$post('pay/unifiedpay', {
  601. order_id: this.id,
  602. pay_way: payWay,
  603. from: this.from
  604. });
  605. if (code == 1) {
  606. this.payInfo = data;
  607. this.showWxpay = true;
  608. this.createTimer();
  609. } else if (code == 20001) {
  610. let divForm = document.getElementsByTagName('divform');
  611. if (divForm.length) {
  612. document.body.removeChild(divForm[0]);
  613. }
  614. const div = document.createElement('divform');
  615. div.innerHTML = data; // data就是接口返回的form 表单字符串
  616. document.body.appendChild(div);
  617. document.forms[0].submit();
  618. } else if (code == 10001) {
  619. this.$message({
  620. message: msg,
  621. type: 'success'
  622. });
  623. this.getOrder();
  624. }
  625. },
  626. clearTimer() {
  627. clearInterval(this.timer);
  628. },
  629. createTimer() {
  630. if (this.timer) clearInterval(this.timer);
  631. this.timer = setInterval(() => {
  632. this.getOrder();
  633. }, 2000);
  634. },
  635. async getOrder() {
  636. const {
  637. data,
  638. code,
  639. msg
  640. } = await this.$get('order/getPayStatus', {
  641. params: {
  642. id: this.id,
  643. from: this.from
  644. }
  645. });
  646. if (code == 1) {
  647. this.order = data;
  648. if (data.pay_status == 1) {
  649. clearInterval(this.timer);
  650. this.showWxpay = false;
  651. }
  652. }
  653. }
  654. },
  655. computed: {
  656. getOrderStatus() {
  657. return status => {
  658. let text = '';
  659. switch (status) {
  660. case 0:
  661. text = '待支付';
  662. break;
  663. case 1:
  664. text = '待发货';
  665. break;
  666. case 2:
  667. text = '待收货';
  668. break;
  669. case 3:
  670. text = '已完成';
  671. break;
  672. case 4:
  673. text = '订单已关闭';
  674. break;
  675. }
  676. return text;
  677. };
  678. },
  679. getCancelTime() {
  680. return time => time - Date.now() / 1000;
  681. }
  682. }
  683. });
  684. // CONCATENATED MODULE: ./pages/payment.vue?vue&type=script&lang=js&
  685. /* harmony default export */ var pages_paymentvue_type_script_lang_js_ = (paymentvue_type_script_lang_js_);
  686. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  687. var componentNormalizer = __webpack_require__(1);
  688. // CONCATENATED MODULE: ./pages/payment.vue
  689. function injectStyles (context) {
  690. var style0 = __webpack_require__(265)
  691. if (style0.__inject__) style0.__inject__(context)
  692. }
  693. /* normalize component */
  694. var component = Object(componentNormalizer["a" /* default */])(
  695. pages_paymentvue_type_script_lang_js_,
  696. render,
  697. staticRenderFns,
  698. false,
  699. injectStyles,
  700. "5f312006",
  701. "e5bc9738"
  702. )
  703. /* harmony default export */ var payment = __webpack_exports__["default"] = (component.exports);
  704. /* nuxt-component-imports */
  705. installComponents(component, {CountDown: __webpack_require__(144).default,PriceFormate: __webpack_require__(137).default})
  706. /***/ })
  707. };;
  708. //# sourceMappingURL=payment.js.map