footprint-report-dialog.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. exports.ids = [13];
  2. exports.modules = {
  3. /***/ 189:
  4. /***/ (function(module, exports) {
  5. // Exports
  6. module.exports = {
  7. };
  8. /***/ }),
  9. /***/ 228:
  10. /***/ (function(module, exports, __webpack_require__) {
  11. module.exports = __webpack_require__.p + "img/bg_city.b1ebcc7.png";
  12. /***/ }),
  13. /***/ 229:
  14. /***/ (function(module, exports, __webpack_require__) {
  15. module.exports = __webpack_require__.p + "img/tree.50fd6f9.png";
  16. /***/ }),
  17. /***/ 230:
  18. /***/ (function(module, exports) {
  19. module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABACAYAAABFqxrgAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKMSURBVHgB7ZsxaBNRGMf/r62DQuXUMQ5ZhGZQ0qWOWlzUxaijYC242UgyiV0SF4tTq61QcEgjOGrSqZNYN81iwcGAyy0Z1aBDh7Y873upgldPG3j53qP3/YaQPC6B++V9/+R9707hF6WxLLZRg1J5QAc46GjdxLYqY7kdKjNAAnbUh1Sc/B/oLrbU+Ih5vqMXoseUCSBUgEOoDe2+uILUovNDSD0qEAkRIgEiwSASIBIMIgEiwSASIBIMI2CkdO4mKpdmEBwZ/edx4ZcOqmtPUW81wEFvFVkc02Dg26MWgsOj+zq2u/kdx+6dBQes5bBfAb1jj4IL6+Vwa6IAWyR9VnfzB5ofX8MWVsuhcXsJhTMXwMH65xYmF6dgA6vlwCWAOH9qAraQn0iIBINIgEcSHq8/hyu8kLDR+YTSqzm4wrmE8GsHV58V4RLnEkgAiXCJUwkPokUSlYJrnEmgIKyuLcEHnEig6e+LAIJdAgmYfDJlFkG+wC5h+sWs8yCMw9pZoiCk1V8S6m5uzxh1o+av38cgYZsJK+8bfedAPpMbuACCRQJN/3Kf/wizxzNRf2IRHLCUQ/1dA4XTe3sNK61m4ntIQPZEBhywSKhcnvnreJKEysU7yJ/MgQvvltIUhNUEaYPCKwmUA7QvwY03EkjAm2L9vxszg8AbCbUbD9mCMI4XEigIbXaP+8W5BNpg4Q7COE4lUA7MX5uFa5xKcBWEcdzOBEdBGEf2HSASDFYlcHaL6CIOW1iVUH45x9I1ItnUoLEF6+U6viKZAJFgEAkQCQaRAJFgEAkQCQaRgN8SVBcpZleC3kBq0as9CcOYTudsUHTDeKknYaEdYliPR4OrSAXmC3+Lreicl9vhT/KxrgeMYboWAAAAAElFTkSuQmCC"
  20. /***/ }),
  21. /***/ 231:
  22. /***/ (function(module, exports) {
  23. module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABACAYAAABFqxrgAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALpSURBVHgB7Zw/aBNxFMe/lzo0giW0isUGrEMhHcQsTUEQU3CoLia6CKJJR2lis8alZnFNYlVEhSYV56ZTp+J10qRL1cGAHTKYMZJaUIQm5+89UUQtXnK/tqR5H7iQ+5vL59773S/83sUAkRj2YLt3BoaRACwPDjqWtY6mkcWjco5me3hh4PgrwLim3vWiGzCMQbgQwtjAJtZqrw3EfVG1eB5diVVHz7dTLlgIomsxVDPgDrrQ7TQtj0hQiASIBEYkQCQwh6CR4f4hJII3cPn0BQwPDEEn9S9bWK++R764iFypAJ0YiPly6jUChyTO30T6ahJ7QaVWRfhZTEkpwzENTGlJh9nJ6T0TQFCUvbyd58jTgeN0oBO5eylme/usuYDCu5Ud16fDSfi9PvwPj7sP89fvYWLOcRA7lxAdD7W0PYVypfZx5/WfqrYkEMGRAF8E2scJWiKhFShtdKZOcGQMuaIzCXKLhEhgtPYTiKyZR2b1OXYLM57HyX69fRDtEupft7jx6yQkHSASGJEAkcCIBIgERiRAJDAiASKBEQkQCYxIgEhgRAJEAiMSIBIYkQCRwIgEiARGJEAkMCIBuzAC5XEfUSPVJ9BJaJcwE4zw1Elol2AXKsJKLT/ksUuqcUhfSXIU7Qf7IoEqSybuR1jAr2VqEJfqkFrl92O0i+OGsZ1SGfND6a+TNzdKaAcdI+COJeSKrdcU/qvEp51KNEopHWV8PQgcDcGAH21CV3RTTZOj52zvw4WeFrC6scbz1BYs33qCwb5jto9Bn/tnSrWFhSUtbULGXOCSutmL07b3obK/6HhYfYnPKgq88By23yhSCoafxh1Xrf1EW0UrwTWNSoTfO4ozQ/bK8OxCV/yNCv/C2xWVgotaGkSmgSmtdwe6MtEXd9BpSLcZIoERCRAJjEiASCADFZfqI5joZrZJwhw/OW6iGzGQwuNy5cdT82e9S2g23Co0BtXcwf/rAPWzRfUUU3hQztDMd6sl2XQVdGtJAAAAAElFTkSuQmCC"
  24. /***/ }),
  25. /***/ 232:
  26. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  27. "use strict";
  28. __webpack_require__.r(__webpack_exports__);
  29. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FootprintReportDialog_vue_vue_type_style_index_0_id_d80d814e_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(189);
  30. /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FootprintReportDialog_vue_vue_type_style_index_0_id_d80d814e_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FootprintReportDialog_vue_vue_type_style_index_0_id_d80d814e_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
  31. /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FootprintReportDialog_vue_vue_type_style_index_0_id_d80d814e_prod_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_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_FootprintReportDialog_vue_vue_type_style_index_0_id_d80d814e_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  32. /***/ }),
  33. /***/ 242:
  34. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  35. "use strict";
  36. // ESM COMPAT FLAG
  37. __webpack_require__.r(__webpack_exports__);
  38. // CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/FootprintReportDialog.vue?vue&type=template&id=d80d814e&scoped=true
  39. var render = function render() {
  40. var _this$carbon$this$for, _vm$comEquallist$equa, _vm$comEquallist$equa2, _vm$comEquallist$equa3;
  41. var _vm = this,
  42. _c = _vm._self._c;
  43. return _c('el-dialog', {
  44. attrs: {
  45. "visible": _vm.visible,
  46. "width": "550px",
  47. "title": 'Carbon Footprint Report',
  48. "before-close": _vm.handleClose,
  49. "lock-scroll": false
  50. },
  51. on: {
  52. "update:visible": function ($event) {
  53. _vm.visible = $event;
  54. }
  55. }
  56. }, [_c('div', [_c('el-form', {
  57. attrs: {
  58. "label-width": "70px"
  59. }
  60. }, [_c('el-form-item', {
  61. attrs: {
  62. "label": "Model"
  63. }
  64. }, [_c('el-select', {
  65. staticStyle: {
  66. "width": "100%"
  67. },
  68. attrs: {
  69. "placeholder": "Please select",
  70. "clearable": "",
  71. "filterable": ""
  72. },
  73. model: {
  74. value: _vm.form.model,
  75. callback: function ($$v) {
  76. _vm.$set(_vm.form, "model", $$v);
  77. },
  78. expression: "form.model"
  79. }
  80. }, _vm._l(_vm.carbon, function (item, idx) {
  81. return _c('el-option', {
  82. key: idx,
  83. attrs: {
  84. "label": item.accountName.replace(/\s*[\(\(][^)\)]*[\)\)]$/, ''),
  85. "value": idx
  86. }
  87. });
  88. }), 1)], 1), _vm._v(" "), _c('div', {
  89. staticClass: "form-row"
  90. }, [_c('el-form-item', {
  91. staticStyle: {
  92. "flex": "1"
  93. },
  94. attrs: {
  95. "label": "Quantity"
  96. }
  97. }, [_c('el-input', {
  98. staticClass: "left-input-number",
  99. attrs: {
  100. "type": "number",
  101. "min": 1,
  102. "step": 1,
  103. "controls": false,
  104. "placeholder": "Please input"
  105. },
  106. model: {
  107. value: _vm.form.quantity,
  108. callback: function ($$v) {
  109. _vm.$set(_vm.form, "quantity", $$v);
  110. },
  111. expression: "form.quantity"
  112. }
  113. })], 1), _vm._v(" "), _c('el-form-item', {
  114. staticStyle: {
  115. "flex": "1",
  116. "margin-left": "10px"
  117. },
  118. attrs: {
  119. "label": "Transport"
  120. }
  121. }, [_c('el-select', {
  122. staticStyle: {
  123. "width": "100%"
  124. },
  125. attrs: {
  126. "placeholder": "Please select",
  127. "clearable": ""
  128. },
  129. model: {
  130. value: _vm.form.transport,
  131. callback: function ($$v) {
  132. _vm.$set(_vm.form, "transport", $$v);
  133. },
  134. expression: "form.transport"
  135. }
  136. }, [_c('el-option', {
  137. attrs: {
  138. "label": "UK-Sea",
  139. "value": "UK-Sea"
  140. }
  141. }), _vm._v(" "), _c('el-option', {
  142. attrs: {
  143. "label": "UK-Air",
  144. "value": "UK-Air"
  145. }
  146. })], 1)], 1)], 1)], 1), _vm._v(" "), _c('div', {
  147. staticClass: "carbon-report-card"
  148. }, [_c('div', {
  149. staticClass: "carbon-report-main"
  150. }, [_c('div', {
  151. staticClass: "carbon-report-header"
  152. }, [_c('span', [_vm._v("Product Carbon Footprint")])]), _vm._v(" "), _c('div', {
  153. staticClass: "carbon-report-value"
  154. }, [_vm._v(_vm._s(_vm.comEmissionTotal))]), _vm._v(" "), _c('div', {
  155. staticClass: "carbon-report-date"
  156. }, [_vm._v("kgCO₂e per product unit")]), _vm._v(" "), _c('div', {
  157. staticClass: "carbon-report-date"
  158. }, [_vm._v("Accounting Period:" + _vm._s((_this$carbon$this$for = this.carbon[this.form.model]) === null || _this$carbon$this$for === void 0 ? void 0 : _this$carbon$this$for.accountTime))]), _vm._v(" "), _c('img', {
  159. staticClass: "carbon-bg",
  160. attrs: {
  161. "src": __webpack_require__(228),
  162. "alt": "bg"
  163. }
  164. }), _vm._v(" "), _c('div', {
  165. staticClass: "carbon-report-equal"
  166. }, [_c('div', {
  167. staticClass: "equal-title"
  168. }, [_vm._v("Equivalent to")]), _vm._v(" "), _c('div', {
  169. staticClass: "equal-list"
  170. }, [_c('div', {
  171. staticClass: "equal-item"
  172. }, [_c('img', {
  173. attrs: {
  174. "src": __webpack_require__(229),
  175. "alt": "tree"
  176. }
  177. }), _vm._v(" "), _c('div', [_vm._v(_vm._s(_vm.multiply((_vm$comEquallist$equa = _vm.comEquallist.equallist[0]) === null || _vm$comEquallist$equa === void 0 ? void 0 : _vm$comEquallist$equa.amount, _vm.form.quantity) || 0) + " "), _c('span', [_vm._v("tree")])]), _vm._v(" "), _c('div', {
  178. staticClass: "equal-desc"
  179. }, [_vm._v("CO₂ uptake by 1 ammodendron tree")])]), _vm._v(" "), _c('div', {
  180. staticClass: "equal-item"
  181. }, [_c('img', {
  182. attrs: {
  183. "src": __webpack_require__(230),
  184. "alt": "electricity"
  185. }
  186. }), _vm._v(" "), _c('div', [_vm._v(_vm._s(_vm.multiply((_vm$comEquallist$equa2 = _vm.comEquallist.equallist[1]) === null || _vm$comEquallist$equa2 === void 0 ? void 0 : _vm$comEquallist$equa2.amount, _vm.form.quantity) || 0) + " "), _c('span', [_vm._v("kWh")])]), _vm._v(" "), _c('div', {
  187. staticClass: "equal-desc"
  188. }, [_vm._v("Household electricity consumption")])]), _vm._v(" "), _c('div', {
  189. staticClass: "equal-item"
  190. }, [_c('img', {
  191. attrs: {
  192. "src": __webpack_require__(231),
  193. "alt": "iphone"
  194. }
  195. }), _vm._v(" "), _c('div', [_vm._v(_vm._s(_vm.multiply((_vm$comEquallist$equa3 = _vm.comEquallist.equallist[2]) === null || _vm$comEquallist$equa3 === void 0 ? void 0 : _vm$comEquallist$equa3.amount, _vm.form.quantity) || 0) + " "), _c('span', [_vm._v("day")])]), _vm._v(" "), _c('div', {
  196. staticClass: "equal-desc"
  197. }, [_vm._v("The number of days an iPhone is used")])])])])])]), _vm._v(" "), _c('div', {
  198. staticStyle: {
  199. "text-align": "right",
  200. "margin-top": "20px"
  201. }
  202. }, [_c('el-button', {
  203. staticClass: "report-btn",
  204. attrs: {
  205. "type": "primary"
  206. },
  207. on: {
  208. "click": function ($event) {
  209. var _vm$comEquallist;
  210. return _vm.download((_vm$comEquallist = _vm.comEquallist) === null || _vm$comEquallist === void 0 ? void 0 : _vm$comEquallist.url);
  211. }
  212. }
  213. }, [_vm._v("Download")])], 1)], 1)]);
  214. };
  215. var staticRenderFns = [];
  216. // CONCATENATED MODULE: ./components/FootprintReportDialog.vue?vue&type=template&id=d80d814e&scoped=true
  217. // EXTERNAL MODULE: external "number-precision"
  218. var external_number_precision_ = __webpack_require__(121);
  219. // 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/FootprintReportDialog.vue?vue&type=script&lang=js
  220. /* harmony default export */ var FootprintReportDialogvue_type_script_lang_js = ({
  221. props: {
  222. visible: {
  223. type: Boolean,
  224. default: false
  225. },
  226. carbon: {
  227. type: Array,
  228. default: () => []
  229. }
  230. },
  231. data() {
  232. return {
  233. form: {
  234. model: '',
  235. quantity: 1,
  236. transport: ''
  237. }
  238. };
  239. },
  240. computed: {
  241. comEquallist() {
  242. var _this$carbon$this$for, _this$carbon$this$for2;
  243. return ((_this$carbon$this$for = this.carbon[this.form.model]) === null || _this$carbon$this$for === void 0 ? void 0 : (_this$carbon$this$for2 = _this$carbon$this$for.accountlist) === null || _this$carbon$this$for2 === void 0 ? void 0 : _this$carbon$this$for2.find(item => item.code === this.form.transport)) || {
  244. equallist: [],
  245. emissionTotal: 0
  246. };
  247. },
  248. comEmissionTotal() {
  249. return this.multiply(this.comEquallist.emissionTotal, this.form.quantity).toFixed(2) || 0;
  250. }
  251. },
  252. methods: {
  253. handleClose() {
  254. this.$emit('update:visible', false);
  255. },
  256. multiply(a, b) {
  257. return Object(external_number_precision_["times"])(Number(a), b);
  258. },
  259. download(url) {
  260. if (!url) {
  261. this.$message.error('No report available for download');
  262. return;
  263. }
  264. var urlStr = url.match('[^/]+(?!.*/)')[0];
  265. this.$utils.downloadBlob(url, urlStr);
  266. }
  267. }
  268. });
  269. // CONCATENATED MODULE: ./components/FootprintReportDialog.vue?vue&type=script&lang=js
  270. /* harmony default export */ var components_FootprintReportDialogvue_type_script_lang_js = (FootprintReportDialogvue_type_script_lang_js);
  271. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  272. var componentNormalizer = __webpack_require__(2);
  273. // CONCATENATED MODULE: ./components/FootprintReportDialog.vue
  274. function injectStyles (context) {
  275. var style0 = __webpack_require__(232)
  276. if (style0.__inject__) style0.__inject__(context)
  277. }
  278. /* normalize component */
  279. var component = Object(componentNormalizer["a" /* default */])(
  280. components_FootprintReportDialogvue_type_script_lang_js,
  281. render,
  282. staticRenderFns,
  283. false,
  284. injectStyles,
  285. "d80d814e",
  286. "2e864c7d"
  287. )
  288. /* harmony default export */ var FootprintReportDialog = __webpack_exports__["default"] = (component.exports);
  289. /***/ })
  290. };;
  291. //# sourceMappingURL=footprint-report-dialog.js.map