enquiryDetail.js 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788
  1. exports.ids = [59];
  2. exports.modules = {
  3. /***/ 175:
  4. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5. "use strict";
  6. /* unused harmony export formatPrice */
  7. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return round; });
  8. /* unused harmony export transformNumber */
  9. /* unused harmony export getUnit */
  10. /* unused harmony export getSetup */
  11. /* unused harmony export getPrint */
  12. /* unused harmony export getAddon */
  13. /* unused harmony export getPackaging */
  14. /* unused harmony export getFright */
  15. /* harmony import */ var number_precision__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(122);
  16. /* harmony import */ var number_precision__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(number_precision__WEBPACK_IMPORTED_MODULE_0__);
  17. // 商品价格计算相关
  18. // 价格格式化
  19. function formatPrice(value, needSymbol = true) {
  20. // 不能在最后一步显示之前格式化999 111, 否则可能出现单价1买999个得到999价格被格式化成poa的情况
  21. if (value === 0) {
  22. return needSymbol ? '£0.00' : '0.00';
  23. } else {
  24. return needSymbol ? `£${value}` : `${value}`;
  25. }
  26. }
  27. // 简单的乘法换算
  28. function multiply(value, ratio = 100) {
  29. return parseFloat((value * ratio).toPrecision(12));
  30. }
  31. // 小数处理, 四舍五入, 为toFixed做准备
  32. function round(number, ratio = 100) {
  33. return Math.round(multiply(number, ratio)) / ratio;
  34. }
  35. /**
  36. * 将字符串简单转换成数字, 并可数倍转换. 注意, 这个适用于整数倍(商品件数), 非整数的不能用这个处理小数.
  37. * @param {*} value 目标值
  38. * @param {*} ratio 倍数, 默认1
  39. * @returns number | origin, 转换后的数字, 无法转成数字的返回原值
  40. */
  41. function transformNumber(value, ratio = 1) {
  42. const v = Number(value);
  43. if (Number.isNaN(v)) {
  44. return value;
  45. } else {
  46. // 保留两位小数
  47. return Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["divide"])(Math.trunc(Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["times"])(Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["times"])(v, ratio), 100)), 100);
  48. }
  49. }
  50. // unit 单个商品的, 没有乘数量. 因为含有111 999 这些极端值, 没有格式化输出之前直接乘回出问题的.
  51. const getUnit = function (buyNum, index, attributeList, basePriceList) {
  52. // 算出购买数量位于 价格阶梯的 哪个区间
  53. const candidate = Object.entries(attributeList).filter(item => buyNum >= item[1]);
  54. let key = 'website_qty1';
  55. if (candidate.length) {
  56. key = candidate.pop()[0];
  57. }
  58. return transformNumber(basePriceList[index][key], buyNum);
  59. };
  60. // 打印和附加价格 的steup之和. 商品基础价格现在没有setup了.
  61. const getSetup = function (buyNum, form, additionList) {
  62. const sum = Object.entries(form).reduce((total, current) => {
  63. let s = 0;
  64. // 打印服务表单的数据跟附加服务表单的数据结构不一致, 以数字id字符串键名的是打印服务的数据
  65. if (/\d+/.test(current[0]) && current[1].enable) {
  66. const temp = current[1].colorForm.filter(i => i.id === current[1].printService);
  67. let colorNumber = 1;
  68. if (temp.length) {
  69. colorNumber = temp[0].colorNumber;
  70. }
  71. const decoration = current[1].decorationList.filter(i => i.id === current[1].printService);
  72. let setup = 0;
  73. if (decoration.length) {
  74. setup = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(Number(decoration[0].website_setup), Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["times"])(Number(decoration[0].supplier_setup), colorNumber - 1));
  75. }
  76. s = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(s, setup);
  77. } else if (current[1].length) {
  78. // 附加服务的表单数据, 有值说明该项有选中了附加服务
  79. const addition = additionList[current[0]].filter(addition => current[1].includes(addition.id));
  80. if (addition.length) {
  81. const temp = addition.reduce((t, c) => {
  82. let value = Number(c.website_setup);
  83. if ([5, 6].includes(c.website_setup_id)) {
  84. // 5是poa, 6是waived. 这种情况一般setup是留空的, 不留空大概是异常数据, 重置0保险一点.
  85. value = 0;
  86. }
  87. return Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(t, Number.isNaN(value) ? 0 : value);
  88. }, 0);
  89. s = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(s, temp);
  90. }
  91. }
  92. total = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(total, s);
  93. return total;
  94. }, 0);
  95. return transformNumber(sum);
  96. };
  97. // 打印价格的 阶梯基础价*购买数量.
  98. const getPrint = function (buyNum, form, attributeList) {
  99. // 算出购买数量位于 价格阶梯的 哪个区间
  100. const candidate = Object.entries(attributeList).filter(item => buyNum >= item[1]);
  101. const key = `website_qty${candidate.length}`;
  102. const key2 = `supplier_qty${candidate.length}`;
  103. // 如果其中一项为POA, 则‘和’都是POA
  104. const result = Object.entries(form).reduce((total, current) => {
  105. if (total === 'POA') {
  106. return total;
  107. }
  108. let sum = 0;
  109. if (/\d+/.test(current[0]) && current[1].enable) {
  110. const temp = current[1].colorForm.filter(i => i.id === current[1].printService);
  111. let colorNumber = 1;
  112. if (temp.length) {
  113. colorNumber = temp[0].colorNumber;
  114. }
  115. const decoration = current[1].decorationList.filter(i => i.id === current[1].printService);
  116. // 打印价格的基础价. 其中数字111(代表'-') 和999(代表'POA')
  117. const p1 = transformNumber(decoration[0][key]);
  118. if (p1 === 999 || p1 === 111 || typeof p1 !== 'number') {
  119. return 'POA';
  120. }
  121. // 打印价格的附加价
  122. const p2 = transformNumber(decoration[0][key2]);
  123. if (p2 === 999 || p2 === 111 || typeof p2 !== 'number') {
  124. return 'POA';
  125. }
  126. let price = 0;
  127. if (decoration.length) {
  128. price = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(p1, Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["times"])(p2, colorNumber - 1));
  129. }
  130. sum = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(sum, price);
  131. }
  132. total = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(total, sum);
  133. return total;
  134. }, 0);
  135. return transformNumber(result, buyNum);
  136. };
  137. // 附加服务除了packing之外的总价
  138. const getAddon = function (buyNum, form, attributeList, additionList) {
  139. // 算出购买数量位于 价格阶梯的 哪个区间
  140. const candidate = Object.entries(attributeList).filter(item => buyNum >= item[1]);
  141. const key = `website_qty${candidate.length}`;
  142. const result = Object.entries(form).reduce((total, current) => {
  143. if (total === 'POA') {
  144. return total;
  145. }
  146. let sum = 0;
  147. if (!/\d+/.test(current[0]) && current[0] !== 'packaging') {
  148. sum = additionList[current[0]].filter(item => current[1].includes(item.id)).reduce((t, c) => {
  149. if (t === 'POA') {
  150. return t;
  151. }
  152. let temp = transformNumber(c[key]);
  153. if (temp === 999 || temp === 111 || typeof temp !== 'number') {
  154. temp = 0;
  155. return 'POA';
  156. }
  157. t = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(t, temp);
  158. return t;
  159. }, 0);
  160. }
  161. return Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(total, sum);
  162. }, 0);
  163. return transformNumber(result, buyNum);
  164. };
  165. // 附加服务中 packing 的价格
  166. const getPackaging = function (buyNum, form, attributeList, additionList) {
  167. // 算出购买数量位于 价格阶梯的 哪个区间
  168. const candidate = Object.entries(attributeList).filter(item => buyNum >= item[1]);
  169. const key = `website_qty${candidate.length}`;
  170. const result = Object.entries(form).reduce((total, current) => {
  171. if (total === 'POA') {
  172. return total;
  173. }
  174. let sum = 0;
  175. if (!/\d+/.test(current[0]) && current[0] === 'packaging') {
  176. sum = additionList[current[0]].filter(item => current[1].includes(item.id)).reduce((t, c) => {
  177. if (t === 'POA') {
  178. return t;
  179. }
  180. let temp = transformNumber(c[key]);
  181. if (temp === 999 || temp === 111 || typeof temp !== 'number') {
  182. temp = 0;
  183. return 'POA';
  184. }
  185. t = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(t, temp);
  186. return t;
  187. }, 0);
  188. }
  189. return Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(total, sum);
  190. }, 0);
  191. return transformNumber(result, buyNum);
  192. };
  193. // 运费计算. 从product页面抄过来的逻辑. +号是隐式类型转换
  194. const getFright = function (buyNum, config, freight, weight, ratio = 1) {
  195. // 单独批次数量的总重
  196. const totalWeight = Math.ceil(Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["times"])(+weight.unit_w_local, buyNum));
  197. const expressFactor = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(1, Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["divide"])(Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(+config.express_freight, +config.fuel), 100));
  198. const AAEFactor = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(1, Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["divide"])(Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(+config.bag_freight, +config.fuel), 100));
  199. let frightCost = 0;
  200. if (freight.type === 1) {
  201. if (totalWeight > 20) {
  202. const a1 = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["minus"])(totalWeight, 20);
  203. const a2 = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["times"])(a1, +freight.basic);
  204. const a3 = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(+freight.pickup, a2);
  205. frightCost = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["times"])(a3, expressFactor);
  206. } else {
  207. frightCost = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["times"])(+freight.pickup, expressFactor);
  208. }
  209. } else if (freight.type === 2) {
  210. const a1 = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["times"])(totalWeight, +freight.basic);
  211. const a2 = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["plus"])(+freight.pickup, a1);
  212. frightCost = Object(number_precision__WEBPACK_IMPORTED_MODULE_0__["times"])(a2, AAEFactor);
  213. } else {
  214. frightCost = 0;
  215. }
  216. return transformNumber(frightCost, ratio);
  217. };
  218. /***/ }),
  219. /***/ 265:
  220. /***/ (function(module, exports) {
  221. // Exports
  222. module.exports = {
  223. };
  224. /***/ }),
  225. /***/ 266:
  226. /***/ (function(module, exports) {
  227. // Exports
  228. module.exports = {
  229. };
  230. /***/ }),
  231. /***/ 320:
  232. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  233. "use strict";
  234. __webpack_require__.r(__webpack_exports__);
  235. /* 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_enquiryDetail_vue_vue_type_style_index_0_id_0826eaac_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(265);
  236. /* 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_enquiryDetail_vue_vue_type_style_index_0_id_0826eaac_prod_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_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_enquiryDetail_vue_vue_type_style_index_0_id_0826eaac_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
  237. /* 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_enquiryDetail_vue_vue_type_style_index_0_id_0826eaac_prod_lang_scss__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_enquiryDetail_vue_vue_type_style_index_0_id_0826eaac_prod_lang_scss__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  238. /***/ }),
  239. /***/ 321:
  240. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  241. "use strict";
  242. __webpack_require__.r(__webpack_exports__);
  243. /* 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_enquiryDetail_vue_vue_type_style_index_1_id_0826eaac_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(266);
  244. /* 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_enquiryDetail_vue_vue_type_style_index_1_id_0826eaac_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_enquiryDetail_vue_vue_type_style_index_1_id_0826eaac_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
  245. /* 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_enquiryDetail_vue_vue_type_style_index_1_id_0826eaac_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_enquiryDetail_vue_vue_type_style_index_1_id_0826eaac_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
  246. /***/ }),
  247. /***/ 356:
  248. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  249. "use strict";
  250. // ESM COMPAT FLAG
  251. __webpack_require__.r(__webpack_exports__);
  252. // 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!./pages/home/myDetail/enquiryDetail.vue?vue&type=template&id=0826eaac&scoped=true
  253. var render = function render() {
  254. var _vm$detail$Quotes_Inf;
  255. var _vm = this,
  256. _c = _vm._self._c;
  257. return _c('div', {
  258. staticClass: "page-enquiry-detail com-main com-margin-auto"
  259. }, [_c('el-breadcrumb', {
  260. attrs: {
  261. "separator-class": "el-icon-arrow-right"
  262. }
  263. }, [_c('el-breadcrumb-item', {
  264. attrs: {
  265. "to": {
  266. path: '/'
  267. }
  268. }
  269. }, [_vm._v("Home")]), _vm._v(" "), _c('el-breadcrumb-item', {
  270. attrs: {
  271. "to": {
  272. path: '/home/myDetail',
  273. query: {
  274. type: 'enquiry'
  275. }
  276. }
  277. }
  278. }, [_vm._v("My Enquiry")]), _vm._v(" "), _c('el-breadcrumb-item', [_vm._v("detail")])], 1), _vm._ssrNode(" "), _vm.loading ? _c('div', {
  279. directives: [{
  280. name: "loading",
  281. rawName: "v-loading",
  282. value: _vm.loadiding,
  283. expression: "loadiding"
  284. }],
  285. staticClass: "com-loading"
  286. }, []) : _vm._e(), _vm._ssrNode(" "), !_vm.loading ? _vm._ssrNode("<div data-v-0826eaac>", "</div>", [_vm._ssrNode("<section class=\"main-header\" data-v-0826eaac>", "</section>", [_vm._ssrNode("<h1 data-v-0826eaac>" + _vm._ssrEscape("Job Name: " + _vm._s(_vm.detail.Enquiry_Title)) + "</h1> <div class=\"main-header-mid flex between\" data-v-0826eaac><div class=\"left\" data-v-0826eaac></div> <ul class=\"right\" data-v-0826eaac><li data-v-0826eaac>" + _vm._ssrEscape("Enquiry No: " + _vm._s(_vm.detail.Auto_Number)) + "</li> <li data-v-0826eaac>" + _vm._ssrEscape("Enquiry Date:\n " + _vm._s(_vm.formatStepDesc(_vm.detail.Created_Time))) + "</li> <li data-v-0826eaac>" + _vm._ssrEscape("Payment Terms: " + _vm._s(_vm.detail.Payment_Terms)) + "</li></ul></div> "), _vm._ssrNode("<div class=\"steps\" data-v-0826eaac>", "</div>", [_c('el-steps', {
  287. attrs: {
  288. "active": _vm.computedEnquiryState,
  289. "align-center": "",
  290. "finish-status": "success",
  291. "process-status": "wait"
  292. }
  293. }, [_c('el-step', {
  294. attrs: {
  295. "title": "Enquiry Submitted",
  296. "description": _vm.formatStepDesc(_vm.detail.Enquiry_Created)
  297. }
  298. }), _vm._v(" "), _c('el-step', {
  299. attrs: {
  300. "title": "Enquiry Confirmed",
  301. "description": _vm.formatStepDesc(_vm.detail.Enquiry_Allocated)
  302. }
  303. }), _vm._v(" "), _c('el-step', {
  304. attrs: {
  305. "title": "Quote Drafted",
  306. "description": _vm.formatStepDesc(_vm.detail.Quote_Created)
  307. }
  308. }), _vm._v(" "), _c('el-step', {
  309. attrs: {
  310. "title": "Quote Sent",
  311. "description": _vm.formatStepDesc(_vm.detail.Quote_Sent)
  312. }
  313. }), _vm._v(" "), _c('el-step', {
  314. attrs: {
  315. "title": "Order Confirmed"
  316. }
  317. }), _vm._v(" "), _c('el-step', {
  318. attrs: {
  319. "title": "Enquiry Closed",
  320. "description": _vm.formatStepDesc(_vm.detail.Enquiry_Closed)
  321. }
  322. })], 1)], 1)], 2), _vm._ssrNode(" " + (_vm.detail.Website_Message && _vm.detail.Website_Message.length > 1 || _vm.detail.Artworklink && _vm.detail.Artworklink.length ? "<section data-v-0826eaac><p class=\"sharing-title\" data-v-0826eaac>Enquiries Information</p> <div class=\"sharing-address\" data-v-0826eaac><p style=\"white-space: pre-wrap\" data-v-0826eaac>" + _vm._ssrEscape(_vm._s(_vm.detail.Website_Message)) + "</p> <p data-v-0826eaac>\n Artwork link:\n <a" + _vm._ssrAttr("href", _vm.detail.Artworklink) + " target=\"_brank\" style=\"color: blue; text-decoration: underline\" data-v-0826eaac>" + _vm._ssrEscape(_vm._s(_vm.detail.Artworklink)) + "</a></p></div></section>" : "<!---->") + " "), _vm.detail.Quotes_Information && (_vm$detail$Quotes_Inf = _vm.detail.Quotes_Information.quotes_details_data) !== null && _vm$detail$Quotes_Inf !== void 0 && _vm$detail$Quotes_Inf.length ? _vm._ssrNode("<section data-v-0826eaac>", "</section>", [_vm._ssrNode("<div class=\"sharing-title\" data-v-0826eaac>Quotes Information</div> "), _c('el-table', {
  323. attrs: {
  324. "data": [_vm.detail.Quotes_Information],
  325. "header-cell-style": {
  326. background: '#fff',
  327. color: '#101010',
  328. fontWeight: 'normal'
  329. }
  330. }
  331. }, [_c('el-table-column', {
  332. attrs: {
  333. "width": "200",
  334. "prop": "Quote_Title",
  335. "label": "Quote Name"
  336. }
  337. }), _vm._v(" "), _c('el-table-column', {
  338. attrs: {
  339. "align": "center",
  340. "prop": "Quote_Stage",
  341. "label": "Status"
  342. },
  343. scopedSlots: _vm._u([{
  344. key: "default",
  345. fn: function (scope) {
  346. return [_c('div', [_vm._v(_vm._s(scope.row.Quote_Stage || _vm.detail.Quote_Stage))])];
  347. }
  348. }], null, false, 3801520526)
  349. }), _vm._v(" "), _c('el-table-column', {
  350. attrs: {
  351. "align": "center",
  352. "prop": "Total_Including_Tax",
  353. "label": "Grand Total"
  354. },
  355. scopedSlots: _vm._u([{
  356. key: "default",
  357. fn: function (scope) {
  358. return [_vm._v("\n " + _vm._s(_vm.transformNumber(scope.row.Total_Including_Tax)) + "\n ")];
  359. }
  360. }], null, false, 3681501733)
  361. }), _vm._v(" "), _c('el-table-column', {
  362. attrs: {
  363. "align": "center",
  364. "prop": "",
  365. "label": "Date"
  366. },
  367. scopedSlots: _vm._u([{
  368. key: "default",
  369. fn: function (scope) {
  370. return [_c('div', [_vm._v("\n " + _vm._s(_vm.formatStepDesc(scope.row.Created_Time)) + "\n ")])];
  371. }
  372. }], null, false, 1050211034)
  373. })], 1), _vm._ssrNode(" <br data-v-0826eaac> "), _c('el-table', {
  374. staticStyle: {
  375. "margin-left": "80px",
  376. "width": "calc(100% - 80px)"
  377. },
  378. attrs: {
  379. "header-cell-style": {
  380. background: '#fff',
  381. color: '#101010',
  382. fontWeight: 'normal'
  383. },
  384. "data": _vm.detail.Quotes_Information.quotes_details_data
  385. }
  386. }, [_c('el-table-column', {
  387. attrs: {
  388. "label": "S.No",
  389. "type": "index",
  390. "width": "65"
  391. }
  392. }), _vm._v(" "), _c('el-table-column', {
  393. attrs: {
  394. "min-width": "300",
  395. "prop": "product_name",
  396. "label": "Product Name"
  397. },
  398. scopedSlots: _vm._u([{
  399. key: "default",
  400. fn: function (scope) {
  401. return [_c('div', [_c('div', {
  402. staticClass: "text-link"
  403. }, [_vm._v(_vm._s(scope.row.product_name))]), _vm._v(" "), scope.row.product_description ? _c('div', {
  404. staticStyle: {
  405. "white-space": "pre-wrap"
  406. }
  407. }, [_vm._v("\n " + _vm._s(scope.row.product_description) + "\n ")]) : _vm._e()])];
  408. }
  409. }], null, false, 155598485)
  410. }), _vm._v(" "), _c('el-table-column', {
  411. attrs: {
  412. "align": "center",
  413. "prop": "quantity",
  414. "label": "Quantity"
  415. }
  416. }), _vm._v(" "), _c('el-table-column', {
  417. attrs: {
  418. "align": "center",
  419. "prop": "list_price",
  420. "label": "List Prices"
  421. },
  422. scopedSlots: _vm._u([{
  423. key: "default",
  424. fn: function (scope) {
  425. return [_vm._v("\n " + _vm._s(_vm.transformNumber(scope.row.list_price)) + "\n ")];
  426. }
  427. }], null, false, 2248021059)
  428. }), _vm._v(" "), _c('el-table-column', {
  429. attrs: {
  430. "align": "center",
  431. "prop": "amount",
  432. "label": "Amount"
  433. },
  434. scopedSlots: _vm._u([{
  435. key: "default",
  436. fn: function (scope) {
  437. return [_vm._v("\n " + _vm._s(_vm.transformNumber(scope.row.amount)) + "\n ")];
  438. }
  439. }], null, false, 2571101279)
  440. }), _vm._v(" "), _c('el-table-column', {
  441. attrs: {
  442. "align": "center",
  443. "prop": "Tax",
  444. "label": "Tax"
  445. },
  446. scopedSlots: _vm._u([{
  447. key: "default",
  448. fn: function (scope) {
  449. return [_vm._v("\n " + _vm._s(_vm.transformNumber(scope.row.Tax)) + "\n ")];
  450. }
  451. }], null, false, 1276862622)
  452. }), _vm._v(" "), _c('el-table-column', {
  453. attrs: {
  454. "align": "center",
  455. "prop": "Discount",
  456. "label": "Discount"
  457. },
  458. scopedSlots: _vm._u([{
  459. key: "default",
  460. fn: function (scope) {
  461. return [_vm._v("\n " + _vm._s(_vm.transformNumber(scope.row.Discount)) + "\n ")];
  462. }
  463. }], null, false, 1436355502)
  464. }), _vm._v(" "), _c('el-table-column', {
  465. attrs: {
  466. "align": "center",
  467. "prop": "net_total",
  468. "label": "Total"
  469. },
  470. scopedSlots: _vm._u([{
  471. key: "default",
  472. fn: function (scope) {
  473. return [_vm._v("\n " + _vm._s(_vm.transformNumber(scope.row.net_total)) + "\n ")];
  474. }
  475. }], null, false, 3728241425)
  476. })], 1), _vm._ssrNode(" <div class=\"table-wrap\" data-v-0826eaac><table class=\"total\" data-v-0826eaac><tr data-v-0826eaac><td data-v-0826eaac>Sub Total</td> <td data-v-0826eaac>" + _vm._ssrEscape("\n " + _vm._s(_vm.detail.Currency) + " \n ") + "<div class=\"num\" data-v-0826eaac>" + _vm._ssrEscape("\n " + _vm._s(_vm.transformNumber(_vm.detail.Quotes_Information.quotecalculation__Sub_Total_Amount)) + "\n ") + "</div></td></tr> <tr data-v-0826eaac><td data-v-0826eaac>Total Taxes</td> <td data-v-0826eaac>" + _vm._ssrEscape("\n " + _vm._s(_vm.detail.Currency) + " \n ") + "<div class=\"num\" data-v-0826eaac>" + _vm._ssrEscape("\n " + _vm._s(_vm.transformNumber(_vm.detail.Quotes_Information.Tax_Total)) + "\n ") + "</div></td></tr> <tr data-v-0826eaac><td data-v-0826eaac>Total Discount</td> <td data-v-0826eaac>" + _vm._ssrEscape("\n " + _vm._s(_vm.detail.Currency) + " \n ") + "<div class=\"num\" data-v-0826eaac>" + _vm._ssrEscape("\n " + _vm._s(_vm.transformNumber(_vm.detail.Quotes_Information.Discount_Amount)) + "\n ") + "</div></td></tr> <tr data-v-0826eaac><td data-v-0826eaac>Adjustment</td> <td data-v-0826eaac>" + _vm._ssrEscape("\n " + _vm._s(_vm.detail.Currency) + " \n ") + "<div class=\"num\" data-v-0826eaac>" + _vm._ssrEscape("\n " + _vm._s(_vm.transformNumber(_vm.detail.Quotes_Information.Adjustment)) + "\n ") + "</div></td></tr> <tr data-v-0826eaac><td data-v-0826eaac>Grand Total</td> <td data-v-0826eaac>" + _vm._ssrEscape("\n " + _vm._s(_vm.detail.Currency) + " \n ") + "<div class=\"num\" data-v-0826eaac>" + _vm._ssrEscape("\n " + _vm._s(_vm.transformNumber(_vm.detail.Quotes_Information.Total_Including_Tax)) + "\n ") + "</div></td></tr></table></div>")], 2) : _vm._e(), _vm._ssrNode(" "), _vm.detail.orderInformation.length ? _vm._ssrNode("<section data-v-0826eaac>", "</section>", [_vm._ssrNode("<div class=\"sharing-title\" data-v-0826eaac>Order Information</div> "), _c('el-table', {
  477. attrs: {
  478. "data": _vm.detail.orderInformation,
  479. "header-cell-style": {
  480. background: '#fff',
  481. color: '#101010',
  482. fontWeight: 'normal'
  483. },
  484. "row-style": {
  485. cursor: 'pointer'
  486. }
  487. },
  488. on: {
  489. "row-click": _vm.navToOrderDetail
  490. }
  491. }, [_c('el-table-column', {
  492. attrs: {
  493. "width": "100",
  494. "label": "Order No",
  495. "prop": "Reference"
  496. },
  497. scopedSlots: _vm._u([{
  498. key: "default",
  499. fn: function (scope) {
  500. return [_c('div', {}, [_vm._v(_vm._s(scope.row.Reference))])];
  501. }
  502. }], null, false, 2088554928)
  503. }), _vm._v(" "), _c('el-table-column', {
  504. attrs: {
  505. "align": "center",
  506. "label": "Job name",
  507. "prop": "Sales_Order_Title_Job_Name"
  508. },
  509. scopedSlots: _vm._u([{
  510. key: "default",
  511. fn: function (scope) {
  512. return [_c('div', {
  513. staticClass: "text-link"
  514. }, [_vm._v("\n " + _vm._s(scope.row.Sales_Order_Title_Job_Name) + "\n ")])];
  515. }
  516. }], null, false, 1077885697)
  517. }), _vm._v(" "), _c('el-table-column', {
  518. attrs: {
  519. "align": "center",
  520. "label": "Order Status",
  521. "prop": "Order_Stage"
  522. }
  523. }), _vm._v(" "), _c('el-table-column', {
  524. attrs: {
  525. "align": "center",
  526. "label": "Invoice status",
  527. "prop": "Invoice_status1"
  528. }
  529. }), _vm._v(" "), _c('el-table-column', {
  530. attrs: {
  531. "align": "center",
  532. "label": "Grand Total",
  533. "prop": "Total_Including_Tax"
  534. },
  535. scopedSlots: _vm._u([{
  536. key: "default",
  537. fn: function (scope) {
  538. return [_vm._v("\n " + _vm._s(_vm.transformNumber(scope.row.Total_Including_Tax)) + "\n ")];
  539. }
  540. }], null, false, 3681501733)
  541. }), _vm._v(" "), _c('el-table-column', {
  542. attrs: {
  543. "align": "center",
  544. "label": "Date",
  545. "prop": "Sales_Order_Created"
  546. },
  547. scopedSlots: _vm._u([{
  548. key: "default",
  549. fn: function (scope) {
  550. return [_c('div', [_vm._v(_vm._s(_vm.formatStepDesc(scope.row.Sales_Order_Created)))])];
  551. }
  552. }], null, false, 3904710774)
  553. }), _vm._v(" "), _c('el-table-column', {
  554. attrs: {
  555. "label": "Action",
  556. "width": "90",
  557. "align": "center"
  558. },
  559. scopedSlots: _vm._u([{
  560. key: "default",
  561. fn: function (scope) {
  562. return [_c('el-button', {
  563. staticStyle: {
  564. "background-color": "rgb(0, 33, 59)",
  565. "color": "#fff"
  566. },
  567. attrs: {
  568. "size": "small",
  569. "type": "primary",
  570. "plain": ""
  571. },
  572. on: {
  573. "click": function ($event) {
  574. return _vm.navToOrderDetail(scope.row);
  575. }
  576. }
  577. }, [_vm._v("View")])];
  578. }
  579. }], null, false, 778695663)
  580. })], 1)], 2) : _vm._e(), _vm._ssrNode(" "), _vm.detail.Emaillink && _vm.detail.Emaillink.length || _vm.detail.Email_link2 && _vm.detail.Email_link2.length ? _vm._ssrNode("<section data-v-0826eaac>", "</section>", [_vm._ssrNode("<br data-v-0826eaac> <br data-v-0826eaac> "), _c('el-tabs', {
  581. model: {
  582. value: _vm.activeEnquiryMail,
  583. callback: function ($$v) {
  584. _vm.activeEnquiryMail = $$v;
  585. },
  586. expression: "activeEnquiryMail"
  587. }
  588. }, [_vm.detail.Email_link2 && _vm.detail.Email_link2.length ? _c('el-tab-pane', {
  589. attrs: {
  590. "label": "Initial Quote",
  591. "name": "quote"
  592. }
  593. }, [_c('iframe', {
  594. staticStyle: {
  595. "overflow": "scroll"
  596. },
  597. attrs: {
  598. "src": _vm.detail.Email_link2,
  599. "frameborder": "0",
  600. "height": "1200px",
  601. "width": "100%"
  602. }
  603. })]) : _vm._e(), _vm._v(" "), _vm.detail.Emaillink && _vm.detail.Emaillink.length ? _c('el-tab-pane', {
  604. attrs: {
  605. "label": "Initial Enquiry",
  606. "name": "enquiry"
  607. }
  608. }, [_c('iframe', {
  609. staticStyle: {
  610. "overflow": "scroll"
  611. },
  612. attrs: {
  613. "src": _vm.detail.Emaillink,
  614. "frameborder": "0",
  615. "height": "1200px",
  616. "width": "100%"
  617. }
  618. })]) : _vm._e()], 1)], 2) : _vm._e()], 2) : _vm._e()], 2);
  619. };
  620. var staticRenderFns = [];
  621. // CONCATENATED MODULE: ./pages/home/myDetail/enquiryDetail.vue?vue&type=template&id=0826eaac&scoped=true
  622. // EXTERNAL MODULE: ./utils/price.js
  623. var price = __webpack_require__(175);
  624. // 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/home/myDetail/enquiryDetail.vue?vue&type=script&lang=js
  625. /* harmony default export */ var enquiryDetailvue_type_script_lang_js = ({
  626. name: 'EnquiryDetail',
  627. components: {},
  628. filters: {},
  629. props: {},
  630. data() {
  631. return {
  632. activeEnquiryMail: 'quote',
  633. loading: false,
  634. detail: {
  635. orderInformation: []
  636. },
  637. stepConfig: {
  638. 'Enquiry Created': 1,
  639. 'Enquiry Confirmed': 2,
  640. 'Quote Drafted': 3,
  641. 'Quote Sent': 4,
  642. 'Order Confirmed': 5,
  643. 'Enquiry Closed': 6
  644. }
  645. };
  646. },
  647. computed: {
  648. computedEnquiryState() {
  649. if (this.detail.Customize_Pipeline_Stage) {
  650. return this.stepConfig[this.detail.Customize_Pipeline_Stage];
  651. }
  652. return 0;
  653. }
  654. },
  655. watch: {},
  656. created() {
  657. this.getDetail();
  658. },
  659. mounted() {},
  660. updated() {},
  661. beforeDestroy() {},
  662. methods: {
  663. transformNumber(value) {
  664. // console.log(value, 'value')
  665. return Object(price["a" /* round */])(Number(value)).toFixed(2);
  666. },
  667. formatStepDesc(date) {
  668. return this.$utils.formatTime(date, 'DD/MM/YYYY');
  669. },
  670. getDetail() {
  671. var _this$$store$state$us;
  672. this.$axios.post('/uk-api/crmdata/enquiries_detail', {
  673. accounts_id: ((_this$$store$state$us = this.$store.state.userInfo) === null || _this$$store$state$us === void 0 ? void 0 : _this$$store$state$us.crm_accounts_id) || '',
  674. id: this.$route.query.id
  675. }).then(res => {
  676. // console.log(res)
  677. // eslint-disable-next-line
  678. if (res.code == 1) {
  679. if (res.result === '4002' || res.result === null) {
  680. console.log('id不一致 || 数据空');
  681. this.$router.replace('/');
  682. return;
  683. }
  684. const temp = JSON.parse(JSON.stringify(res.result));
  685. if (temp.Orders_Information && temp.Orders_Information.Reference) {
  686. temp.orderInformation = [temp.Orders_Information];
  687. } else {
  688. temp.orderInformation = [];
  689. }
  690. this.detail = temp;
  691. if (!(this.detail.Email_link2 && this.detail.Email_link2.length)) {
  692. this.activeEnquiryMail = 'enquiry';
  693. }
  694. }
  695. }).catch(e => {
  696. console.log(e, 'eee');
  697. if (e.response.data.code === 10100) {
  698. this.$router.replace('/');
  699. console.log('not login');
  700. }
  701. });
  702. },
  703. navToOrderDetail(row) {
  704. console.log(row);
  705. const url = this.$router.resolve({
  706. path: '/home/myDetail/orderDetail',
  707. query: {
  708. id: row.sales_orders_id
  709. }
  710. });
  711. window.open(url.href, '_blank');
  712. }
  713. }
  714. });
  715. // CONCATENATED MODULE: ./pages/home/myDetail/enquiryDetail.vue?vue&type=script&lang=js
  716. /* harmony default export */ var myDetail_enquiryDetailvue_type_script_lang_js = (enquiryDetailvue_type_script_lang_js);
  717. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  718. var componentNormalizer = __webpack_require__(2);
  719. // CONCATENATED MODULE: ./pages/home/myDetail/enquiryDetail.vue
  720. function injectStyles (context) {
  721. var style0 = __webpack_require__(320)
  722. if (style0.__inject__) style0.__inject__(context)
  723. var style1 = __webpack_require__(321)
  724. if (style1.__inject__) style1.__inject__(context)
  725. }
  726. /* normalize component */
  727. var component = Object(componentNormalizer["a" /* default */])(
  728. myDetail_enquiryDetailvue_type_script_lang_js,
  729. render,
  730. staticRenderFns,
  731. false,
  732. injectStyles,
  733. "0826eaac",
  734. "6a044f5c"
  735. )
  736. /* harmony default export */ var enquiryDetail = __webpack_exports__["default"] = (component.exports);
  737. /***/ })
  738. };;
  739. //# sourceMappingURL=enquiryDetail.js.map