{"version":3,"sources":["webpack:///./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","webpack:///./src/views/product/Design.vue?8e5d","webpack:///./node_modules/vant/es/utils/create/bem.js","webpack:///./node_modules/vant/es/utils/index.js","webpack:///./node_modules/vant/es/utils/format/string.js","webpack:///./node_modules/vant/es/mixins/slots.js","webpack:///./node_modules/vant/es/utils/create/component.js","webpack:///./node_modules/vant/es/utils/deep-assign.js","webpack:///./node_modules/vant/es/locale/lang/zh-CN.js","webpack:///./node_modules/vant/es/locale/index.js","webpack:///./node_modules/vant/es/utils/create/i18n.js","webpack:///./node_modules/vant/es/utils/create/index.js","webpack:///./node_modules/vant/es/utils/validate/number.js","webpack:///./node_modules/vant/es/utils/format/unit.js","webpack:///./node_modules/vant/es/utils/validate/system.js","webpack:///./node_modules/vant/es/utils/dom/scroll.js","webpack:///./node_modules/vant/es/utils/dom/reset-scroll.js","webpack:///./node_modules/vant/es/utils/dom/event.js","webpack:///./node_modules/vant/es/utils/format/number.js","webpack:///./node_modules/vant/es/mixins/field.js","webpack:///./node_modules/vant/es/stepper/index.js","webpack:///./src/components/ProductFooter.vue?db6a","webpack:///./src/components/LoanCalculator.vue?a2a7","webpack:///src/components/LoanCalculator.vue","webpack:///./src/components/LoanCalculator.vue?9677","webpack:///./src/components/LoanCalculator.vue","webpack:///src/components/ProductFooter.vue","webpack:///./src/components/ProductFooter.vue?4123","webpack:///./src/components/ProductFooter.vue","webpack:///src/views/product/Design.vue","webpack:///./src/views/product/Design.vue?4626","webpack:///./src/views/product/Design.vue","webpack:///./src/assets/images/custom-color.png","webpack:///./src/components/LoanCalculator.vue?5801","webpack:///./src/components/ProductFooter.vue?6164"],"names":["_extends","Object","assign","a","b","c","arguments","length","d","prototype","hasOwnProperty","call","apply","this","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","reduce","indexOf","Array","e","concat","f","g","h","i","mergeFn","module","exports","_vm","_h","$createElement","_c","_self","ref","staticClass","class","paytype","loan_type","refit","id","attrs","info","isNextStep","directives","name","rawName","value","color","expression","_v","_s","introduction_title","domProps","introduction","sizes","refits","size_name","refit_name","_e","_l","refitItem","p","key","on","$event","selectRefit","tip","is_buy","price_text","sizeItem","s","size","selectSize","price","discount","discount_desc1","materials","colors","material_name","color_name","colorItem","selectColor","getArticle","_m","materialItem","material","selectMaterial","wheels","wheel_name","wheelItem","w","wheel","selectWheel","configs","config_name","configItem","config","selectConfig","model","callback","$$v","number","_n","attr","showFooter","changeFun","article","title","showArticle","content","staticRenderFns","gen","mods","isArray","ret","item","keys","createBEM","el","isServer","$isServer","isDef","val","undefined","isFunction","isObject","get","object","path","split","result","forEach","camelizeRE","camelize","str","replace","_","toUpperCase","SlotsMixin","extend","methods","slots","props","$slots","$scopedSlots","scopedSlot","install","Vue","component","unifySlots","context","scopedSlots","data","transformFunctionComponent","pure","functional","render","createComponent","sfc","mixins","push","assignKey","to","from","deepAssign","tel","save","confirm","cancel","delete","complete","loading","telEmpty","nameEmpty","nameInvalid","confirmDelete","telInvalid","vanCalendar","end","start","startEnd","weekdays","monthTitle","year","month","rangePrompt","maxRange","vanContactCard","addText","vanContactList","vanPagination","prev","next","vanPullRefresh","pulling","loosing","vanSubmitBar","label","vanCoupon","unlimited","_discount","condition","_condition","vanCouponCell","tips","count","_count","vanCouponList","empty","exchange","close","enable","disabled","placeholder","vanAddressEdit","area","postal","areaEmpty","addressEmpty","postalEmpty","defaultAddress","telPlaceholder","namePlaceholder","areaPlaceholder","vanAddressEditDetail","vanAddressList","add","proto","defineReactive","util","messages","$vantMessages","$vantLang","use","lang","_this$add","createI18N","prefix","locale","message","_len","args","_key","createNamespace","isNumeric","test","Number","isNaN","addUnit","String","isIOS","navigator","userAgent","toLowerCase","setScrollTop","scrollTop","scrollTo","scrollX","getRootScrollTop","window","pageYOffset","document","documentElement","body","setRootScrollTop","resetScroll","opts","defineProperty","addEventListener","stopPropagation","event","preventDefault","isStopPropagation","cancelable","trimExtraChar","_char","regExp","index","slice","allowDot","FieldMixin","inject","vanField","default","watch","field","resetValidation","validateWithTrigger","created","children","_createNamespace","bem","LONG_PRESS_START_TIME","LONG_PRESS_INTERVAL","equal","value1","value2","num1","num2","cardinal","Math","pow","round","theme","integer","Boolean","inputWidth","buttonSize","asyncChange","disablePlus","disableMinus","disableInput","decimalLength","type","min","max","Infinity","step","defaultValue","showPlus","showMinus","longPress","format","$emit","currentValue","computed","minusDisabled","plusDisabled","inputStyle","style","width","height","buttonStyle","check","formatNumber","toFixed","onInput","target","formatted","pair","emitChange","onChange","diff","onFocus","$refs","input","blur","onBlur","longPressStep","_this","longPressTimer","setTimeout","onTouchStart","_this2","clearTimeout","isLongPress","onTouchEnd","_this3","createListeners","click","touchstart","touchend","touchcancel","ltype","totalPriceText","firstPayAmountText","deposit","endAmount","bailAmount","bailAmountText","gpsAmount","gpsAmountText","loanAmountText","loanEndAmount","monthAmountText","loanEndAmountText","showCalculator","paytypeText","loantype","lo","product","optionalAmount","show","loan_types","loan","l","optionalAmountText","depositText","depositScaleText","discount_desc","orginalPirceText","defaultLoans","defaultLoanChange","defaultLoan","$set","periods","payRateMinValue","payRateMaxValue","payRateMarks","sliderDragging","_u","fn","active","payRateValue","defaultLoanRateText","additions","is_ev","tax","taxAmountText","bailText","period","rate","payRate","payRateMin","payRateMax","isTax","addition","gps","components","VueSlider","orginalPirce","totalPrice","carPrice","firstPayAmount","amount","loanAmount","monthAmount","floor","$route","taxAmount","parseFloat","defaultloan","defaultitem","curPeriodIndex","defaultAddition","mounted","LoanCalculator","localStorage","localPaytype","localDefaultLoan","showFooterDisplay","action","$root","$on","modalId","that","$dialog","error","$router","code","params","localattr","localrefit","localcolor","localmaterial","localsize","localpaytype","deploy","parameter","thumb","rid","sid","localwheel","localconfig","isShowVr","showInsideVr","ProductHeader","ProductFooter","Stepper","n","getProduct","$scroll","cookie","getAttr","thisattr","image","getColors","getColor","thiscolor","getSizes","thissize","getSize","getMaterials","getMaterial","thismaterial","param","updatePayType","nextDesignSize","prevDesignSize","getWheel","getConfig"],"mappings":"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","file":"h5/js/chunk-04434a3a.b714d2f5.js","sourcesContent":["\"use strict\";function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var normalMerge=[\"attrs\",\"props\",\"domProps\"],toArrayMerge=[\"class\",\"style\",\"directives\"],functionalMerge=[\"on\",\"nativeOn\"],mergeJsxProps=function(a){return a.reduce(function(c,a){for(var b in a)if(!c[b])c[b]=a[b];else if(-1!==normalMerge.indexOf(b))c[b]=_extends({},c[b],a[b]);else if(-1!==toArrayMerge.indexOf(b)){var d=c[b]instanceof Array?c[b]:[c[b]],e=a[b]instanceof Array?a[b]:[a[b]];c[b]=d.concat(e)}else if(-1!==functionalMerge.indexOf(b)){for(var f in a[b])if(c[b][f]){var g=c[b][f]instanceof Array?c[b][f]:[c[b][f]],h=a[b][f]instanceof Array?a[b][f]:[a[b][f]];c[b][f]=g.concat(h)}else c[b][f]=a[b][f];}else if(\"hook\"==b)for(var i in a[b])c[b][i]=c[b][i]?mergeFn(c[b][i],a[b][i]):a[b][i];else c[b]=a[b];return c},{})},mergeFn=function(a,b){return function(){a&&a.apply(this,arguments),b&&b.apply(this,arguments)}};module.exports=mergeJsxProps;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"container\",staticClass:\"product-detail product-design\",class:'paytype-' + _vm.paytype + ' loantype-' + _vm.loan_type+' refit-'+_vm.refit.id},[_c('ProductHeader',{attrs:{\"product\":_vm.info,\"isNextStep\":_vm.isNextStep}}),_c('div',{staticClass:\"container-fluid h-100\"},[_c('div',{staticClass:\"row justify-content-center h-100\"},[_c('div',{staticClass:\"col-xl-9 col-lg-8 col-sm-12 h-100 padding left-wrap\"},[_c('div',{staticClass:\"image-box d-flex justify-content-center align-items-center\"},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(_vm.color.image),expression:\"color.image\"}],staticClass:\"img-fluid\",attrs:{\"alt\":_vm.info.name}})])]),_c('div',{staticClass:\"col-xl-3 col-lg-4 col-sm-12 right-info h-100\"},[_c('h1',{staticClass:\"font-20\"},[_vm._v(_vm._s(_vm.info.name))]),_c('div',{staticClass:\"line w-100 name\"}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isNextStep),expression:\"isNextStep\"}],staticClass:\"introduction-wrap\"},[_c('div',{staticClass:\"title font-14\"},[_vm._v(_vm._s(_vm.refit.introduction_title))]),_c('div',{staticClass:\"content font-14\",domProps:{\"innerHTML\":_vm._s(_vm.refit.introduction)}})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:((_vm.isNextStep && _vm.sizes.length > 0) || (!_vm.isNextStep && _vm.info.refits.length > 0)),expression:\"(isNextStep && sizes.length > 0) || (!isNextStep && info.refits.length > 0)\"}],staticClass:\"refits-box\"},[_c('h3',{staticClass:\"font-17\",domProps:{\"textContent\":_vm._s(_vm.isNextStep ? '选择'+_vm.info.size_name[_vm.refit.id]||'' : '选择'+_vm.info.refit_name)}}),_c('ul',{staticClass:\"row\",class:!_vm.isNextStep ? 'refits' : 'sizes'},[(!_vm.isNextStep)?_vm._l((_vm.info.refits),function(refitItem,p){return _c('li',{key:p,staticClass:\"item font-15 w-100 col-6\",class:_vm.refit.id == refitItem.id ? 'active' : '',on:{\"click\":function($event){return _vm.selectRefit(refitItem)}}},[_c('div',{staticClass:\"image acea-row row-center-wrapper d-flex\"},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(refitItem.thumb),expression:\"refitItem.thumb\"}]})]),_c('p',{staticClass:\"font-15\"},[_vm._v(_vm._s(refitItem.name))]),(refitItem.tip == 2)?_c('p',{staticClass:\"price font-12\"},[_c('b',[_vm._v(\"该车型已售罄\")])]):(refitItem.tip == 3)?_c('p',{staticClass:\"price font-12\"},[_c('b',[_vm._v(\"该车型未上线\")])]):(refitItem.is_buy == 0)?_c('p',{staticClass:\"price font-12\"},[_c('b',[_vm._v(\"配置升级中\")])]):_c('p',{staticClass:\"price\"},[_c('b',[_vm._v(_vm._s(refitItem.price_text))])]),(refitItem.tip == 1)?_c('div',{staticClass:\"tip\",class:'tip-' + refitItem.tip},[_c('p',[_vm._v(\"活动\")])]):(refitItem.tip == 2)?_c('div',{staticClass:\"tip\",class:'tip-' + refitItem.tip},[_c('p',[_vm._v(\"售罄\")])]):(refitItem.tip == 3)?_c('div',{staticClass:\"tip\",class:'tip-' + refitItem.tip},[_c('p',[_vm._v(\"未上线\")])]):_vm._e()])}):_vm._e(),(_vm.isNextStep)?_vm._l((_vm.sizes),function(sizeItem,s){return _c('li',{key:s,staticClass:\"item font-15 w-100 col-12\",class:_vm.size.id == sizeItem.id ? 'active' : '',on:{\"click\":function($event){return _vm.selectSize(sizeItem)}}},[_c('div',{staticClass:\"btn font-15 btn-block btn-radius\"},[_vm._v(\" \"+_vm._s(sizeItem.name)+\" \")])])}):_vm._e()],2),(!_vm.isNextStep)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.refit.price > 0),expression:\"refit.price > 0\"}],staticClass:\"refit-price font-14 d-none\"},[_vm._v(\" \"+_vm._s(_vm.refit.name)+\" \"),_c('b',[_vm._v(_vm._s(_vm.refit.price_text))])]):_vm._e(),(_vm.isNextStep)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.size.price > 0),expression:\"size.price > 0\"}],staticClass:\"refit-price font-14 text-center\"},[_c('b',[_vm._v(_vm._s(_vm.size.price_text)+\" \")])]):_vm._e()]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:((_vm.isNextStep && _vm.sizes.length > 0) || (!_vm.isNextStep && _vm.info.refits.length > 0)),expression:\"(isNextStep && sizes.length > 0) || (!isNextStep && info.refits.length > 0)\"}],staticClass:\"line w-100 center\"}),(_vm.info.discount > 0 && !_vm.isNextStep)?_c('div',{staticClass:\"discount font-15 text-danger\"},[_vm._v(\"购车优惠:\"+_vm._s(_vm.info.discount)+\"元(\"+_vm._s(_vm.info.discount_desc1)+\")\")]):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:((_vm.isNextStep && _vm.materials.length > 0) || (!_vm.isNextStep && _vm.colors.length > 0)),expression:\"(isNextStep && materials.length > 0) || (!isNextStep && colors.length > 0)\"}],staticClass:\"refits-box price-box\"},[_c('h3',{staticClass:\"font-17\",domProps:{\"textContent\":_vm._s(_vm.isNextStep ? '选择'+_vm.info.material_name : '选择'+_vm.info.color_name)}}),_c('ul',{staticClass:\"row\",class:!_vm.isNextStep ? 'refits' : 'sizes'},[(!_vm.isNextStep)?[_vm._l((_vm.colors),function(colorItem,c){return _c('li',{key:c,staticClass:\"item font-15 w-100 col-xl-4 col-lg-6 col-sm-4 col-4\",class:_vm.color.id == colorItem.id ? 'active' : '',on:{\"click\":function($event){return _vm.selectColor(colorItem)}}},[_c('div',{staticClass:\"image\"},[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(colorItem.thumb),expression:\"colorItem.thumb\"}]})]),_c('p',{staticClass:\"font-15\"},[_vm._v(_vm._s(colorItem.name))]),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.color.id == colorItem.id && _vm.color.price > 0),expression:\"color.id == colorItem.id && color.price > 0\"}],staticClass:\"price\"},[_c('b',[_vm._v(_vm._s(colorItem.price_text))])])])}),_c('li',{staticClass:\"item font-15 w-100 col-xl-4 col-lg-6 col-sm-4 col-4 d-none\",on:{\"click\":function($event){return _vm.getArticle(10)}}},[_vm._m(0),_c('p',{staticClass:\"font-15\"},[_vm._v(\"定制颜色\")])])]:_vm._e(),(_vm.isNextStep)?_vm._l((_vm.materials),function(materialItem,s){return _c('li',{key:s,staticClass:\"item font-15 w-100 col-12\",class:_vm.material.id == materialItem.id ? 'active' : '',on:{\"click\":function($event){return _vm.selectMaterial(materialItem)}}},[_c('div',{staticClass:\"btn font-15 btn-block btn-radius\"},[_vm._v(\" \"+_vm._s(materialItem.name)+\" \")])])}):_vm._e()],2),(!_vm.isNextStep)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.color.price > 0),expression:\"color.price > 0\"}],staticClass:\"refit-price font-14 d-none\"},[_vm._v(\" \"+_vm._s(_vm.color.name)+\" \"),_c('b',[_vm._v(_vm._s(_vm.color.price_text))])]):_vm._e(),(_vm.isNextStep)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.material.price > 0),expression:\"material.price > 0\"}],staticClass:\"refit-price font-14 text-center\"},[_c('b',[_vm._v(_vm._s(_vm.material.price_text)+\" \")])]):_vm._e()]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:((!_vm.isNextStep && _vm.info.wheels.length > 0)),expression:\"(!isNextStep && info.wheels.length > 0)\"}],staticClass:\"line w-100 center\"}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:((!_vm.isNextStep && _vm.info.wheels.length > 0)),expression:\"(!isNextStep && info.wheels.length > 0)\"}],staticClass:\"refits-box price-box\"},[_c('h3',{staticClass:\"font-17\"},[_vm._v(\"选择\"+_vm._s(_vm.info.wheel_name))]),_c('ul',{staticClass:\"row sizes\"},_vm._l((_vm.info.wheels),function(wheelItem,w){return _c('li',{key:w,staticClass:\"item font-15 w-100 col-12\",class:_vm.wheel.id == wheelItem.id ? 'active' : '',on:{\"click\":function($event){return _vm.selectWheel(wheelItem)}}},[_c('div',{staticClass:\"btn font-15 btn-block btn-radius\"},[_vm._v(\" \"+_vm._s(wheelItem.name)+\" \")])])}),0),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.wheel.price > 0),expression:\"wheel.price > 0\"}],staticClass:\"refit-price font-14 text-center\"},[_c('b',[_vm._v(_vm._s(_vm.wheel.price_text))])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:((!_vm.isNextStep && _vm.info.configs.length > 0)),expression:\"(!isNextStep && info.configs.length > 0)\"}],staticClass:\"line w-100 center\"}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:((!_vm.isNextStep && _vm.info.configs.length > 0)),expression:\"(!isNextStep && info.configs.length > 0)\"}],staticClass:\"refits-box price-box\"},[_c('h3',{staticClass:\"font-17\"},[_vm._v(\"选择\"+_vm._s(_vm.info.config_name))]),_c('ul',{staticClass:\"row sizes\"},_vm._l((_vm.info.configs),function(configItem,c){return _c('li',{key:c,staticClass:\"item font-15 w-100 col-12\",class:_vm.config.id == configItem.id ? 'active' : '',on:{\"click\":function($event){return _vm.selectConfig(configItem)}}},[_c('div',{staticClass:\"btn font-15 btn-block btn-radius\"},[_vm._v(\" \"+_vm._s(configItem.name)+\" \")])])}),0),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.config.price != 0),expression:\"config.price != 0\"}],staticClass:\"refit-price font-14 text-center\"},[_c('b',[_vm._v(_vm._s(_vm.config.price_text))])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:((_vm.isNextStep && _vm.materials.length > 0) || (!_vm.isNextStep && _vm.colors.length > 0)),expression:\"(isNextStep && materials.length > 0) || (!isNextStep && colors.length > 0)\"}],staticClass:\"line w-100 center\"}),(_vm.isNextStep)?_c('div',{staticClass:\"spinbutton-box\"},[_c('h3',{staticClass:\"font-17\"},[_vm._v(\"选择数量\")]),_c('div',{staticClass:\"row\"},[_c('Stepper',{staticClass:\"col-xl-6 col-lg-6 col-12\",attrs:{\"integer\":true,\"min\":\"1\",\"max\":\"100\",\"button-size\":\"36px\",\"theme\":\"hyundai\"},model:{value:(_vm.number),callback:function ($$v) {_vm.number=_vm._n($$v)},expression:\"number\"}})],1)]):_vm._e(),_c('div',{staticClass:\"line design w-100 d-none\"})])])]),_c('ProductFooter',{attrs:{\"product\":_vm.info,\"attr\":_vm.attr,\"refit\":_vm.refit,\"color\":_vm.color,\"size\":_vm.size,\"material\":_vm.material,\"number\":_vm.number,\"isNextStep\":_vm.isNextStep,\"showFooter\":_vm.showFooter,\"wheel\":_vm.wheel,\"config\":_vm.config},on:{\"changeFun\":_vm.changeFun}}),_c('b-modal',{attrs:{\"title\":_vm.article.title,\"hide-footer\":\"\",\"header-bg-variant\":'info',\"header-text-variant\":'light',\"centered\":\"\",\"modal-class\":'common-modal reserve'},model:{value:(_vm.showArticle),callback:function ($$v) {_vm.showArticle=$$v},expression:\"showArticle\"}},[_c('div',{staticClass:\"d-block\"},[_c('div',{staticClass:\"content\",domProps:{\"innerHTML\":_vm._s(_vm.article.content)}})])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"image\"},[_c('img',{attrs:{\"src\":require(\"@assets/images/custom-color.png\")}})])}]\n\nexport { render, staticRenderFns }","/**\n * bem helper\n * b() // 'button'\n * b('text') // 'button__text'\n * b({ disabled }) // 'button button--disabled'\n * b('text', { disabled }) // 'button__text button__text--disabled'\n * b(['disabled', 'primary']) // 'button button--disabled button--primary'\n */\nfunction gen(name, mods) {\n  if (!mods) {\n    return '';\n  }\n\n  if (typeof mods === 'string') {\n    return \" \" + name + \"--\" + mods;\n  }\n\n  if (Array.isArray(mods)) {\n    return mods.reduce(function (ret, item) {\n      return ret + gen(name, item);\n    }, '');\n  }\n\n  return Object.keys(mods).reduce(function (ret, key) {\n    return ret + (mods[key] ? gen(name, key) : '');\n  }, '');\n}\n\nexport function createBEM(name) {\n  return function (el, mods) {\n    if (el && typeof el !== 'string') {\n      mods = el;\n      el = '';\n    }\n\n    el = el ? name + \"__\" + el : name;\n    return \"\" + el + gen(el, mods);\n  };\n}","import Vue from 'vue';\nexport { createNamespace } from './create';\nexport { addUnit } from './format/unit';\nexport var isServer = Vue.prototype.$isServer; // eslint-disable-next-line @typescript-eslint/no-empty-function\n\nexport function noop() {}\nexport function isDef(val) {\n  return val !== undefined && val !== null;\n}\nexport function isFunction(val) {\n  return typeof val === 'function';\n}\nexport function isObject(val) {\n  return val !== null && typeof val === 'object';\n}\nexport function isPromise(val) {\n  return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n}\nexport function get(object, path) {\n  var keys = path.split('.');\n  var result = object;\n  keys.forEach(function (key) {\n    result = isDef(result[key]) ? result[key] : '';\n  });\n  return result;\n}","var camelizeRE = /-(\\w)/g;\nexport function camelize(str) {\n  return str.replace(camelizeRE, function (_, c) {\n    return c.toUpperCase();\n  });\n}\nexport function padZero(num, targetLength) {\n  if (targetLength === void 0) {\n    targetLength = 2;\n  }\n\n  var str = num + '';\n\n  while (str.length < targetLength) {\n    str = '0' + str;\n  }\n\n  return str;\n}","/**\n * Use scopedSlots in Vue 2.6+\n * downgrade to slots in lower version\n */\nimport Vue from 'vue';\nexport var SlotsMixin = Vue.extend({\n  methods: {\n    slots: function slots(name, props) {\n      if (name === void 0) {\n        name = 'default';\n      }\n\n      var $slots = this.$slots,\n          $scopedSlots = this.$scopedSlots;\n      var scopedSlot = $scopedSlots[name];\n\n      if (scopedSlot) {\n        return scopedSlot(props);\n      }\n\n      return $slots[name];\n    }\n  }\n});","/**\n * Create a basic component with common options\n */\nimport '../../locale';\nimport { isFunction } from '..';\nimport { camelize } from '../format/string';\nimport { SlotsMixin } from '../../mixins/slots';\nimport Vue from 'vue';\n\nfunction install(Vue) {\n  var name = this.name;\n  Vue.component(name, this);\n  Vue.component(camelize(\"-\" + name), this);\n} // unify slots & scopedSlots\n\n\nexport function unifySlots(context) {\n  // use data.scopedSlots in lower Vue version\n  var scopedSlots = context.scopedSlots || context.data.scopedSlots || {};\n  var slots = context.slots();\n  Object.keys(slots).forEach(function (key) {\n    if (!scopedSlots[key]) {\n      scopedSlots[key] = function () {\n        return slots[key];\n      };\n    }\n  });\n  return scopedSlots;\n} // should be removed after Vue 3\n\nfunction transformFunctionComponent(pure) {\n  return {\n    functional: true,\n    props: pure.props,\n    model: pure.model,\n    render: function render(h, context) {\n      return pure(h, context.props, unifySlots(context), context);\n    }\n  };\n}\n\nexport function createComponent(name) {\n  return function (sfc) {\n    if (isFunction(sfc)) {\n      sfc = transformFunctionComponent(sfc);\n    }\n\n    if (!sfc.functional) {\n      sfc.mixins = sfc.mixins || [];\n      sfc.mixins.push(SlotsMixin);\n    }\n\n    sfc.name = name;\n    sfc.install = install;\n    return sfc;\n  };\n}","import { isDef, isObject } from '.';\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction assignKey(to, from, key) {\n  var val = from[key];\n\n  if (!isDef(val)) {\n    return;\n  }\n\n  if (!hasOwnProperty.call(to, key) || !isObject(val)) {\n    to[key] = val;\n  } else {\n    // eslint-disable-next-line @typescript-eslint/no-use-before-define\n    to[key] = deepAssign(Object(to[key]), from[key]);\n  }\n}\n\nexport function deepAssign(to, from) {\n  Object.keys(from).forEach(function (key) {\n    assignKey(to, from, key);\n  });\n  return to;\n}","export default {\n  name: '姓名',\n  tel: '电话',\n  save: '保存',\n  confirm: '确认',\n  cancel: '取消',\n  delete: '删除',\n  complete: '完成',\n  loading: '加载中...',\n  telEmpty: '请填写电话',\n  nameEmpty: '请填写姓名',\n  nameInvalid: '请输入正确的姓名',\n  confirmDelete: '确定要删除吗',\n  telInvalid: '请输入正确的手机号',\n  vanCalendar: {\n    end: '结束',\n    start: '开始',\n    title: '日期选择',\n    confirm: '确定',\n    startEnd: '开始/结束',\n    weekdays: ['日', '一', '二', '三', '四', '五', '六'],\n    monthTitle: function monthTitle(year, month) {\n      return year + \"\\u5E74\" + month + \"\\u6708\";\n    },\n    rangePrompt: function rangePrompt(maxRange) {\n      return \"\\u9009\\u62E9\\u5929\\u6570\\u4E0D\\u80FD\\u8D85\\u8FC7 \" + maxRange + \" \\u5929\";\n    }\n  },\n  vanContactCard: {\n    addText: '添加联系人'\n  },\n  vanContactList: {\n    addText: '新建联系人'\n  },\n  vanPagination: {\n    prev: '上一页',\n    next: '下一页'\n  },\n  vanPullRefresh: {\n    pulling: '下拉即可刷新...',\n    loosing: '释放即可刷新...'\n  },\n  vanSubmitBar: {\n    label: '合计:'\n  },\n  vanCoupon: {\n    unlimited: '无使用门槛',\n    discount: function discount(_discount) {\n      return _discount + \"\\u6298\";\n    },\n    condition: function condition(_condition) {\n      return \"\\u6EE1\" + _condition + \"\\u5143\\u53EF\\u7528\";\n    }\n  },\n  vanCouponCell: {\n    title: '优惠券',\n    tips: '暂无可用',\n    count: function count(_count) {\n      return _count + \"\\u5F20\\u53EF\\u7528\";\n    }\n  },\n  vanCouponList: {\n    empty: '暂无优惠券',\n    exchange: '兑换',\n    close: '不使用优惠券',\n    enable: '可用',\n    disabled: '不可用',\n    placeholder: '请输入优惠码'\n  },\n  vanAddressEdit: {\n    area: '地区',\n    postal: '邮政编码',\n    areaEmpty: '请选择地区',\n    addressEmpty: '请填写详细地址',\n    postalEmpty: '邮政编码格式不正确',\n    defaultAddress: '设为默认收货地址',\n    telPlaceholder: '收货人手机号',\n    namePlaceholder: '收货人姓名',\n    areaPlaceholder: '选择省 / 市 / 区'\n  },\n  vanAddressEditDetail: {\n    label: '详细地址',\n    placeholder: '街道门牌、楼层房间号等信息'\n  },\n  vanAddressList: {\n    add: '新增地址'\n  }\n};","import Vue from 'vue';\nimport { deepAssign } from '../utils/deep-assign';\nimport defaultMessages from './lang/zh-CN';\nvar proto = Vue.prototype;\nvar defineReactive = Vue.util.defineReactive;\ndefineReactive(proto, '$vantLang', 'zh-CN');\ndefineReactive(proto, '$vantMessages', {\n  'zh-CN': defaultMessages\n});\nexport default {\n  messages: function messages() {\n    return proto.$vantMessages[proto.$vantLang];\n  },\n  use: function use(lang, messages) {\n    var _this$add;\n\n    proto.$vantLang = lang;\n    this.add((_this$add = {}, _this$add[lang] = messages, _this$add));\n  },\n  add: function add(messages) {\n    if (messages === void 0) {\n      messages = {};\n    }\n\n    deepAssign(proto.$vantMessages, messages);\n  }\n};","import { get, isFunction } from '..';\nimport { camelize } from '../format/string';\nimport locale from '../../locale';\nexport function createI18N(name) {\n  var prefix = camelize(name) + '.';\n  return function (path) {\n    var messages = locale.messages();\n    var message = get(messages, prefix + path) || get(messages, path);\n\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return isFunction(message) ? message.apply(void 0, args) : message;\n  };\n}","import { createBEM } from './bem';\nimport { createComponent } from './component';\nimport { createI18N } from './i18n';\nexport function createNamespace(name) {\n  name = 'van-' + name;\n  return [createComponent(name), createBEM(name), createI18N(name)];\n}","export function isNumeric(val) {\n  return /^\\d+(\\.\\d+)?$/.test(val);\n}\nexport function isNaN(val) {\n  if (Number.isNaN) {\n    return Number.isNaN(val);\n  } // eslint-disable-next-line no-self-compare\n\n\n  return val !== val;\n}","import { isDef } from '..';\nimport { isNumeric } from '../validate/number';\nexport function addUnit(value) {\n  if (!isDef(value)) {\n    return undefined;\n  }\n\n  value = String(value);\n  return isNumeric(value) ? value + \"px\" : value;\n}","import { isServer } from '..';\nexport function isAndroid() {\n  /* istanbul ignore next */\n  return isServer ? false : /android/.test(navigator.userAgent.toLowerCase());\n}\nexport function isIOS() {\n  /* istanbul ignore next */\n  return isServer ? false : /ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase());\n}","function isWindow(val) {\n  return val === window;\n} // get nearest scroll element\n// http://w3help.org/zh-cn/causes/SD9013\n// http://stackoverflow.com/questions/17016740/onscroll-function-is-not-working-for-chrome\n\n\nvar overflowScrollReg = /scroll|auto/i;\nexport function getScroller(el, root) {\n  if (root === void 0) {\n    root = window;\n  }\n\n  var node = el;\n\n  while (node && node.tagName !== 'HTML' && node.nodeType === 1 && node !== root) {\n    var _window$getComputedSt = window.getComputedStyle(node),\n        overflowY = _window$getComputedSt.overflowY;\n\n    if (overflowScrollReg.test(overflowY)) {\n      if (node.tagName !== 'BODY') {\n        return node;\n      } // see: https://github.com/youzan/vant/issues/3823\n\n\n      var _window$getComputedSt2 = window.getComputedStyle(node.parentNode),\n          htmlOverflowY = _window$getComputedSt2.overflowY;\n\n      if (overflowScrollReg.test(htmlOverflowY)) {\n        return node;\n      }\n    }\n\n    node = node.parentNode;\n  }\n\n  return root;\n}\nexport function getScrollTop(el) {\n  return 'scrollTop' in el ? el.scrollTop : el.pageYOffset;\n}\nexport function setScrollTop(el, value) {\n  if ('scrollTop' in el) {\n    el.scrollTop = value;\n  } else {\n    el.scrollTo(el.scrollX, value);\n  }\n}\nexport function getRootScrollTop() {\n  return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n}\nexport function setRootScrollTop(value) {\n  setScrollTop(window, value);\n  setScrollTop(document.body, value);\n} // get distance from element top to page top or scroller top\n\nexport function getElementTop(el, scroller) {\n  if (isWindow(el)) {\n    return 0;\n  }\n\n  var scrollTop = scroller ? getScrollTop(scroller) : getRootScrollTop();\n  return el.getBoundingClientRect().top + scrollTop;\n}\nexport function getVisibleHeight(el) {\n  if (isWindow(el)) {\n    return el.innerHeight;\n  }\n\n  return el.getBoundingClientRect().height;\n}\nexport function getVisibleTop(el) {\n  if (isWindow(el)) {\n    return 0;\n  }\n\n  return el.getBoundingClientRect().top;\n}","/**\n * Hack for iOS12 page scroll\n * https://developers.weixin.qq.com/community/develop/doc/00044ae90742f8c82fb78fcae56800\n */\nimport { isIOS as checkIsIOS } from '../validate/system';\nimport { getRootScrollTop, setRootScrollTop } from './scroll';\nvar isIOS = checkIsIOS();\n/* istanbul ignore next */\n\nexport function resetScroll() {\n  if (isIOS) {\n    setRootScrollTop(getRootScrollTop());\n  }\n}","import { isServer } from '..';\n// eslint-disable-next-line import/no-mutable-exports\nexport var supportsPassive = false;\n\nif (!isServer) {\n  try {\n    var opts = {};\n    Object.defineProperty(opts, 'passive', {\n      // eslint-disable-next-line getter-return\n      get: function get() {\n        /* istanbul ignore next */\n        supportsPassive = true;\n      }\n    });\n    window.addEventListener('test-passive', null, opts); // eslint-disable-next-line no-empty\n  } catch (e) {}\n}\n\nexport function on(target, event, handler, passive) {\n  if (passive === void 0) {\n    passive = false;\n  }\n\n  if (!isServer) {\n    target.addEventListener(event, handler, supportsPassive ? {\n      capture: false,\n      passive: passive\n    } : false);\n  }\n}\nexport function off(target, event, handler) {\n  if (!isServer) {\n    target.removeEventListener(event, handler);\n  }\n}\nexport function stopPropagation(event) {\n  event.stopPropagation();\n}\nexport function preventDefault(event, isStopPropagation) {\n  /* istanbul ignore else */\n  if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n    event.preventDefault();\n  }\n\n  if (isStopPropagation) {\n    stopPropagation(event);\n  }\n}","export function range(num, min, max) {\n  return Math.min(Math.max(num, min), max);\n}\n\nfunction trimExtraChar(value, _char, regExp) {\n  var index = value.indexOf(_char);\n\n  if (index === -1) {\n    return value;\n  }\n\n  if (_char === '-' && index !== 0) {\n    return value.slice(0, index);\n  }\n\n  return value.slice(0, index + 1) + value.slice(index).replace(regExp, '');\n}\n\nexport function formatNumber(value, allowDot) {\n  if (allowDot) {\n    value = trimExtraChar(value, '.', /\\./g);\n  } else {\n    value = value.split('.')[0];\n  }\n\n  value = trimExtraChar(value, '-', /-/g);\n  var regExp = allowDot ? /[^-0-9.]/g : /[^-0-9]/g;\n  return value.replace(regExp, '');\n}","export var FieldMixin = {\n  inject: {\n    vanField: {\n      default: null\n    }\n  },\n  watch: {\n    value: function value() {\n      var field = this.vanField;\n\n      if (field) {\n        field.resetValidation();\n        field.validateWithTrigger('onChange');\n      }\n    }\n  },\n  created: function created() {\n    var field = this.vanField;\n\n    if (field && !field.children) {\n      field.children = this;\n    }\n  }\n};","import _mergeJSXProps2 from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { createNamespace, isDef, addUnit } from '../utils';\nimport { resetScroll } from '../utils/dom/reset-scroll';\nimport { preventDefault } from '../utils/dom/event';\nimport { formatNumber as _formatNumber } from '../utils/format/number';\nimport { isNaN } from '../utils/validate/number';\nimport { FieldMixin } from '../mixins/field';\n\nvar _createNamespace = createNamespace('stepper'),\n    createComponent = _createNamespace[0],\n    bem = _createNamespace[1];\n\nvar LONG_PRESS_START_TIME = 600;\nvar LONG_PRESS_INTERVAL = 200;\n\nfunction equal(value1, value2) {\n  return String(value1) === String(value2);\n} // add num and avoid float number\n\n\nfunction add(num1, num2) {\n  var cardinal = Math.pow(10, 10);\n  return Math.round((num1 + num2) * cardinal) / cardinal;\n}\n\nexport default createComponent({\n  mixins: [FieldMixin],\n  props: {\n    value: null,\n    theme: String,\n    integer: Boolean,\n    disabled: Boolean,\n    inputWidth: [Number, String],\n    buttonSize: [Number, String],\n    asyncChange: Boolean,\n    disablePlus: Boolean,\n    disableMinus: Boolean,\n    disableInput: Boolean,\n    decimalLength: [Number, String],\n    name: {\n      type: [Number, String],\n      default: ''\n    },\n    min: {\n      type: [Number, String],\n      default: 1\n    },\n    max: {\n      type: [Number, String],\n      default: Infinity\n    },\n    step: {\n      type: [Number, String],\n      default: 1\n    },\n    defaultValue: {\n      type: [Number, String],\n      default: 1\n    },\n    showPlus: {\n      type: Boolean,\n      default: true\n    },\n    showMinus: {\n      type: Boolean,\n      default: true\n    },\n    longPress: {\n      type: Boolean,\n      default: true\n    }\n  },\n  data: function data() {\n    var defaultValue = isDef(this.value) ? this.value : this.defaultValue;\n    var value = this.format(defaultValue);\n\n    if (!equal(value, this.value)) {\n      this.$emit('input', value);\n    }\n\n    return {\n      currentValue: value\n    };\n  },\n  computed: {\n    minusDisabled: function minusDisabled() {\n      return this.disabled || this.disableMinus || this.currentValue <= this.min;\n    },\n    plusDisabled: function plusDisabled() {\n      return this.disabled || this.disablePlus || this.currentValue >= this.max;\n    },\n    inputStyle: function inputStyle() {\n      var style = {};\n\n      if (this.inputWidth) {\n        style.width = addUnit(this.inputWidth);\n      }\n\n      if (this.buttonSize) {\n        style.height = addUnit(this.buttonSize);\n      }\n\n      return style;\n    },\n    buttonStyle: function buttonStyle() {\n      if (this.buttonSize) {\n        var size = addUnit(this.buttonSize);\n        return {\n          width: size,\n          height: size\n        };\n      }\n    }\n  },\n  watch: {\n    max: 'check',\n    min: 'check',\n    integer: 'check',\n    decimalLength: 'check',\n    value: function value(val) {\n      if (!equal(val, this.currentValue)) {\n        this.currentValue = this.format(val);\n      }\n    },\n    currentValue: function currentValue(val) {\n      this.$emit('input', val);\n      this.$emit('change', val, {\n        name: this.name\n      });\n    }\n  },\n  methods: {\n    check: function check() {\n      var val = this.format(this.currentValue);\n\n      if (!equal(val, this.currentValue)) {\n        this.currentValue = val;\n      }\n    },\n    // formatNumber illegal characters\n    formatNumber: function formatNumber(value) {\n      return _formatNumber(String(value), !this.integer);\n    },\n    format: function format(value) {\n      value = this.formatNumber(value); // format range\n\n      value = value === '' ? 0 : +value;\n      value = isNaN(value) ? this.min : value;\n      value = Math.max(Math.min(this.max, value), this.min); // format decimal\n\n      if (isDef(this.decimalLength)) {\n        value = value.toFixed(this.decimalLength);\n      }\n\n      return value;\n    },\n    onInput: function onInput(event) {\n      var value = event.target.value;\n      var formatted = this.formatNumber(value); // limit max decimal length\n\n      if (isDef(this.decimalLength) && formatted.indexOf('.') !== -1) {\n        var pair = formatted.split('.');\n        formatted = pair[0] + \".\" + pair[1].slice(0, this.decimalLength);\n      }\n\n      if (!equal(value, formatted)) {\n        event.target.value = formatted;\n      }\n\n      this.emitChange(formatted);\n    },\n    emitChange: function emitChange(value) {\n      if (this.asyncChange) {\n        this.$emit('input', value);\n        this.$emit('change', value, {\n          name: this.name\n        });\n      } else {\n        this.currentValue = value;\n      }\n    },\n    onChange: function onChange() {\n      var type = this.type;\n\n      if (this[type + \"Disabled\"]) {\n        this.$emit('overlimit', type);\n        return;\n      }\n\n      var diff = type === 'minus' ? -this.step : +this.step;\n      var value = this.format(add(+this.currentValue, diff));\n      this.emitChange(value);\n      this.$emit(type);\n    },\n    onFocus: function onFocus(event) {\n      // readonly not work in lagacy mobile safari\n      if (this.disableInput && this.$refs.input) {\n        this.$refs.input.blur();\n      } else {\n        this.$emit('focus', event);\n      }\n    },\n    onBlur: function onBlur(event) {\n      var value = this.format(event.target.value);\n      event.target.value = value;\n      this.currentValue = value;\n      this.$emit('blur', event);\n      resetScroll();\n    },\n    longPressStep: function longPressStep() {\n      var _this = this;\n\n      this.longPressTimer = setTimeout(function () {\n        _this.onChange();\n\n        _this.longPressStep(_this.type);\n      }, LONG_PRESS_INTERVAL);\n    },\n    onTouchStart: function onTouchStart() {\n      var _this2 = this;\n\n      if (!this.longPress) {\n        return;\n      }\n\n      clearTimeout(this.longPressTimer);\n      this.isLongPress = false;\n      this.longPressTimer = setTimeout(function () {\n        _this2.isLongPress = true;\n\n        _this2.onChange();\n\n        _this2.longPressStep();\n      }, LONG_PRESS_START_TIME);\n    },\n    onTouchEnd: function onTouchEnd(event) {\n      if (!this.longPress) {\n        return;\n      }\n\n      clearTimeout(this.longPressTimer);\n\n      if (this.isLongPress) {\n        preventDefault(event);\n      }\n    }\n  },\n  render: function render() {\n    var _this3 = this;\n\n    var h = arguments[0];\n\n    var createListeners = function createListeners(type) {\n      return {\n        on: {\n          click: function click() {\n            _this3.type = type;\n\n            _this3.onChange();\n          },\n          touchstart: function touchstart() {\n            _this3.type = type;\n\n            _this3.onTouchStart();\n          },\n          touchend: _this3.onTouchEnd,\n          touchcancel: _this3.onTouchEnd\n        }\n      };\n    };\n\n    return h(\"div\", {\n      \"class\": bem([this.theme])\n    }, [h(\"button\", _mergeJSXProps([{\n      \"directives\": [{\n        name: \"show\",\n        value: this.showMinus\n      }],\n      \"attrs\": {\n        \"type\": \"button\"\n      },\n      \"style\": this.buttonStyle,\n      \"class\": bem('minus', {\n        disabled: this.minusDisabled\n      })\n    }, createListeners('minus')])), h(\"input\", {\n      \"ref\": \"input\",\n      \"attrs\": {\n        \"type\": this.integer ? 'tel' : 'text',\n        \"role\": \"spinbutton\",\n        \"disabled\": this.disabled,\n        \"readonly\": this.disableInput,\n        \"inputmode\": this.integer ? 'numeric' : 'decimal',\n        \"aria-valuemax\": this.max,\n        \"aria-valuemin\": this.min,\n        \"aria-valuenow\": this.currentValue\n      },\n      \"class\": bem('input'),\n      \"domProps\": {\n        \"value\": this.currentValue\n      },\n      \"style\": this.inputStyle,\n      \"on\": {\n        \"input\": this.onInput,\n        \"focus\": this.onFocus,\n        \"blur\": this.onBlur\n      }\n    }), h(\"button\", _mergeJSXProps2([{\n      \"directives\": [{\n        name: \"show\",\n        value: this.showPlus\n      }],\n      \"attrs\": {\n        \"type\": \"button\"\n      },\n      \"style\": this.buttonStyle,\n      \"class\": bem('plus', {\n        disabled: this.plusDisabled\n      })\n    }, createListeners('plus')]))]);\n  }\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.refit.id > 0)?_c('div',{staticClass:\"product-footer fixed-bottom\",class:_vm.showFooter ? 'footer-mobile-show' : 'footer-mobile-hide'},[_c('div',{staticClass:\"nav nav-tabs d-sm-none d-md-flex d-none\"},[_vm._l((_vm.configs.loan_types),function(ltype,index){return [_c('li',{key:index,staticClass:\"nav-item\",class:ltype.id == _vm.paytype ? 'active' : '',on:{\"click\":function($event){_vm.paytype = ltype.id}}},[_c('a',{staticClass:\"nav-link\",attrs:{\"href\":\"#\"}},[_vm._v(_vm._s(ltype.name))])])]})],2),_c('div',{staticClass:\"bottom row d-sm-none d-md-flex d-none\"},[_c('div',{staticClass:\"price-box d-flex align-items-center col-sm-12\",class:_vm.paytype == 1\n          ? _vm.step == 1\n            ? 'col-xl-9 col-lg-9'\n            : 'col-xl-8 col-lg-8'\n          : _vm.step == 1\n          ? 'col-xl-9 col-lg-9'\n          : 'col-xl-8 col-lg-8'},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.paytype == 1),expression:\"paytype == 1\"}],staticClass:\"original-price\"},[_c('p',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.totalPriceText || \"\")+\"元\")]),_c('p',{staticClass:\"title\"},[_vm._v(\"预计购车总价\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.paytype == 2 || _vm.paytype == 3),expression:\"paytype == 2 || paytype == 3\"}],staticClass:\"original-price loan-price\"},[_c('p',{staticClass:\"price\"},[_vm._v(\" \"+_vm._s(_vm.firstPayAmountText)+\"元 \"),_c('em',[_vm._v(\"(定金:\"+_vm._s(_vm.deposit || \"\")+\" 首付尾款:\"+_vm._s(_vm.endAmount)+\")\")])]),_c('p',{staticClass:\"title\"},[_vm._v(\" 首付款\"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.bailAmount > 0 && _vm.paytype == 3),expression:\"bailAmount > 0 && paytype == 3\"}]},[_vm._v(\"(含保证金\"+_vm._s(_vm.bailAmountText)+\" \"),(_vm.gpsAmount > 0)?[_vm._v(\" 含GPS\"+_vm._s(_vm.gpsAmountText))]:_vm._e(),_vm._v(\")\")],2)])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.paytype == 1),expression:\"paytype == 1\"}],staticClass:\"deposit-price\"},[_c('p',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.deposit || \"\")+\"元\")]),_c('p',{staticClass:\"title\"},[_vm._v(\"定金\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.paytype == 2 || _vm.paytype == 3),expression:\"paytype == 2 || paytype == 3\"}],staticClass:\"deposit-price loan-price month-price\"},[_c('p',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.loanAmountText)+\"元\")]),_c('p',{staticClass:\"title\"},[_vm._v(\"贷款总额\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.paytype == 2 || _vm.paytype == 3),expression:\"paytype == 2 || paytype == 3\"}],staticClass:\"deposit-price loan-price\",class:_vm.loanEndAmount > 0 ? 'month-price' : ''},[_c('p',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.monthAmountText)+\"元/月\")]),_c('p',{staticClass:\"title\"},[_vm._v(\"月供\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:((_vm.paytype == 2 || _vm.paytype == 3) && _vm.loanEndAmount > 0),expression:\"(paytype == 2 || paytype == 3) && loanEndAmount > 0\"}],staticClass:\"deposit-price loan-price\"},[_c('p',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.loanEndAmountText)+\"元\")]),_c('p',{staticClass:\"title\"},[_vm._v(\"尾款\")])]),_c('div',{staticClass:\"calculator-box d-flex align-items-center\"},[_c('div',{staticClass:\"calculator\"},[_c('a',{staticClass:\"d-flex align-items-center\",attrs:{\"href\":\"javascript:;\"},on:{\"click\":function($event){_vm.showCalculator = true}}},[_c('i'),_vm._v(\"付款计算器\")])])])]),_c('div',{staticClass:\"col-sm-12 d-flex align-items-center btn-box\",class:_vm.step == 1 ? 'col-xl-3 col-lg-3' : 'col-xl-4 col-lg-4'},[(_vm.step == 2)?_c('button',{staticClass:\"btn btn-default btn-block col-4\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.prev}},[_vm._v(\" 上一步 \")]):_vm._e(),_c('button',{staticClass:\"btn btn-info btn-block\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.next}},[_vm._v(\" 下一步 \")])])]),_c('div',{staticClass:\"bottom-sm  d-sm-block d-md-none\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-4\"},[_c('b-dropdown',{staticClass:\"dropdown-white font-16\",attrs:{\"text\":_vm.paytypeText,\"variant\":\"white\"}},[_vm._l((_vm.configs.loan_types),function(loantype,lo){return [_c('b-dropdown-item',{key:lo,class:loantype.id == _vm.paytype ? 'active' : '',attrs:{\"href\":\"javascript:;\",\"link-class\":'font-16'},on:{\"click\":function($event){_vm.paytype = loantype.id}}},[_vm._v(_vm._s(loantype.name))])]})],2)],1),_c('div',{staticClass:\"col-8 calculator-box acea-row row-middle row-right\"},[_c('div',{staticClass:\"calculator\"},[_c('a',{staticClass:\"d-flex align-items-center font-16\",attrs:{\"href\":\"javascript:;\"},on:{\"click\":function($event){_vm.showCalculator = true}}},[_c('i'),_vm._v(\"付款计算器\")])])])]),_c('div',{staticClass:\"row font-16\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.paytype == 1),expression:\"paytype == 1\"}],staticClass:\"col-12 original-price\"},[_c('span',{staticClass:\"title\"},[_vm._v(\"预计购车总价\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.totalPriceText || \"\")+\"元\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.paytype == 2 || _vm.paytype == 3),expression:\"paytype == 2 || paytype == 3\"}],staticClass:\"col-12 original-price loan-price\"},[_c('div',{staticClass:\"item\"},[_c('span',{staticClass:\"title\"},[_vm._v(\"首付款\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.firstPayAmountText)+\"元\"),(_vm.paytype == 3)?_c('em',[_vm._v(\"(含保证金\"+_vm._s(_vm.bailAmountText)),(_vm.gpsAmount > 0)?[_vm._v(\" 含GPS\"+_vm._s(_vm.gpsAmountText))]:_vm._e(),_vm._v(\")\")],2):_vm._e()])]),_c('em',[_vm._v(\"(定金:\"+_vm._s(_vm.deposit || \"\")+\" 首付尾款:\"+_vm._s(_vm.endAmount)+\")\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.paytype == 1),expression:\"paytype == 1\"}],staticClass:\"col-12 deposit-price\"},[_c('span',{staticClass:\"title\"},[_vm._v(\"定金\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.deposit || \"\")+\"元\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.paytype == 2 || _vm.paytype == 3),expression:\"paytype == 2 || paytype == 3\"}],staticClass:\"col-12 deposit-price loan-price month-price\"},[_c('span',{staticClass:\"title\"},[_vm._v(\"贷款总额\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.loanAmountText)+\"元\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.paytype == 2 || _vm.paytype == 3),expression:\"paytype == 2 || paytype == 3\"}],staticClass:\"col-12 deposit-price loan-price\",class:_vm.loanEndAmount > 0 ? 'month-price' : ''},[_c('span',{staticClass:\"title\"},[_vm._v(\"月供\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.monthAmountText)+\"元/月\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:((_vm.paytype == 2 || _vm.paytype == 3) && _vm.loanEndAmount > 0),expression:\"(paytype == 2 || paytype == 3) && loanEndAmount > 0\"}],staticClass:\"col-12 deposit-price loan-price\"},[_c('span',{staticClass:\"title\"},[_vm._v(\"尾款\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.loanEndAmountText)+\"元\")])]),_c('div',{staticClass:\"col-12 d-flex align-items-center btn-box\"},[(_vm.step == 2)?_c('button',{staticClass:\"btn btn-default btn-block btn-radius font-16\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.prev}},[_vm._v(\" 上一步 \")]):_vm._e(),_c('button',{staticClass:\"btn btn-info btn-block btn-radius font-16\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.next}},[_vm._v(\" 下一步 \")])])])]),_c('LoanCalculator',{attrs:{\"show\":_vm.showCalculator,\"product\":_vm.product,\"attr\":_vm.refit,\"color\":_vm.color,\"size\":_vm.size,\"material\":_vm.material,\"wheel\":_vm.wheel,\"config\":_vm.config,\"number\":_vm.number}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-modal',{attrs:{\"size\":\"xl\",\"hide-footer\":\"\",\"modal-class\":_vm.product.discount > 0 ? (_vm.optionalAmount != 0 ? 'optional calculator discount':'calculator discount') : (_vm.optionalAmount != 0 ?'optional calculator':'calculator'),\"centered\":\"\",\"hide-header\":\"\",\"id\":\"loanCalculator\"},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticClass:\"flex  h-100 w-100\"},[_c('div',{staticClass:\"row flex1 margin\"},[_c('div',{staticClass:\"left h-100 d-none  d-lg-block d-xl-block col-xl-3 col-lg-2\"},[_c('div',{staticClass:\"logo\"},[_c('img',{attrs:{\"src\":require(\"@assets/images/logo.png\")}})]),_c('div',{staticClass:\"alert-box\"},[_c('i'),_c('p',[_vm._v(\" 计算结果仅供参考,最终执行利率和方案以申请人与金融机构签订的协议为准 \")])])]),_c('div',{staticClass:\"right h-100 col-xl-9 col-lg-10 col-md-12\"},[_c('div',{staticClass:\"alert-box d-block d-sm-block d-md-block d-lg-none\"},[_c('i'),_c('p',[_vm._v(\"计算结果仅供参考,最终执行利率和方案以申请人与金融机构签订的协议为准\")])]),_c('button',{staticClass:\"close\",on:{\"click\":function($event){_vm.show = false}}},[_vm._v(\"×\")]),(_vm.configs.loan_types.length > 0)?_c('b-nav',{attrs:{\"tabs\":\"\",\"justified\":\"\"}},[_vm._l((_vm.configs.loan_types),function(loan,l){return [_c('b-nav-item',{key:l,attrs:{\"active\":loan.id == _vm.paytype ? true : false},on:{\"click\":function($event){_vm.paytype = loan.id}}},[_vm._v(_vm._s(loan.name))])]})],2):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.paytype == 1),expression:\"paytype == 1\"}],staticClass:\"full-amount\"},[_c('ul',[_c('li',{staticClass:\"line-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"官方指导价:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.attr.price_text))])]),(_vm.optionalAmount != 0)?_c('li',{staticClass:\"line-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"选装配置:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.optionalAmountText))])]):_vm._e(),_c('li',{staticClass:\"line-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"预计车辆总价:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.totalPriceText))])]),_c('li',{staticClass:\"common-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"购车订金:\"+_vm._s(_vm.depositText))]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.deposit))])]),_c('li',{staticClass:\"common-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"购车尾款:\"+_vm._s(_vm.depositScaleText))]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.endAmount))])]),(_vm.product.discount > 0)?_c('li',{staticClass:\"common-item flex discount\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"线上商城上市优惠\")]),_c('span',{staticClass:\"price\"},[_vm._v(\"- ¥ \"+_vm._s(_vm.product.discount))])]):_vm._e(),(_vm.product.discount > 0)?_c('li',{staticClass:\"common-item flex discount\"},[_c('span',{staticClass:\"flex1 label text-danger\"},[_vm._v(_vm._s(_vm.product.discount_desc))])]):_vm._e()])]),(_vm.paytype == 2)?_c('div',{staticClass:\"loan-wrap\"},[_c('ul',[_c('li',{staticClass:\"line-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"官方指导价:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.attr.price_text))])]),(_vm.optionalAmount != 0)?_c('li',{staticClass:\"line-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"选装配置:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.optionalAmountText))])]):_vm._e(),_c('li',{staticClass:\"line-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"预计车辆总价:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.orginalPirceText))])])]),_c('form',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-xl-6 col-lg-6 col-md-12\"},[_c('label',[_vm._v(\"金融产品\")]),_c('div',{staticClass:\"select-box\"},[_c('b-form-select',{staticClass:\"form-control\",attrs:{\"options\":_vm.defaultLoans,\"value-field\":\"id\",\"text-field\":\"name\"},on:{\"change\":_vm.defaultLoanChange},model:{value:(_vm.defaultLoan.id),callback:function ($$v) {_vm.$set(_vm.defaultLoan, \"id\", $$v)},expression:\"defaultLoan.id\"}}),_c('svg',{staticClass:\"select-arrow\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 100 100\"}},[_c('path',{attrs:{\"d\":\"M100 5.5c0 1.3-.5 2.6-1.5 3.5L50 57.5 1.5 9c-2-2-2-5.1 0-7.1s5.1-2 7.1 0L50 43.4 91.5 1.9c2-2 5.1-2 7.1 0 .9 1 1.4 2.3 1.4 3.6z\"}})])],1)]),_c('div',{staticClass:\"form-group col-xl-6 col-lg-6 col-md-12\"},[_c('label',[_vm._v(\"还款期限\")]),_c('div',{staticClass:\"select-box\"},[_c('b-form-select',{staticClass:\"form-control\",attrs:{\"options\":_vm.defaultLoan.periods},model:{value:(_vm.defaultLoan.period),callback:function ($$v) {_vm.$set(_vm.defaultLoan, \"period\", $$v)},expression:\"defaultLoan.period\"}}),_c('svg',{staticClass:\"select-arrow\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 100 100\"}},[_c('path',{attrs:{\"d\":\"M100 5.5c0 1.3-.5 2.6-1.5 3.5L50 57.5 1.5 9c-2-2-2-5.1 0-7.1s5.1-2 7.1 0L50 43.4 91.5 1.9c2-2 5.1-2 7.1 0 .9 1 1.4 2.3 1.4 3.6z\"}})])],1)]),_c('div',{staticClass:\"form-group col-xl-6 col-lg-6 col-md-12\"},[_c('label',[_vm._v(\"首付比例\")]),_c('div',{staticClass:\"slider-wrap flex\"},[_c('VueSlider',{ref:'slider' + _vm.paytype,staticClass:\"flex1\",attrs:{\"min\":_vm.payRateMinValue,\"max\":_vm.payRateMaxValue,\"marks\":_vm.payRateMarks,\"contained\":true,\"hide-label\":true,\"height\":6,\"tooltip\":'none'},on:{\"change\":_vm.sliderDragging},scopedSlots:_vm._u([{key:\"step\",fn:function(ref){\nvar label = ref.label;\nvar active = ref.active;\nreturn [_c('div',{class:['custom-step', { active: active }]})]}}],null,false,1947153119),model:{value:(_vm.payRateValue),callback:function ($$v) {_vm.payRateValue=$$v},expression:\"payRateValue\"}}),_c('span',{staticClass:\"slider-value\"},[_vm._v(_vm._s(_vm.payRateValue)+\"%\")])],1)]),_c('div',{staticClass:\"form-group col-xl-6 col-lg-6 col-md-12\"},[_c('label',[_vm._v(\"年化利率\")]),_c('div',{staticClass:\"select-box readonly\"},[_c('input',{staticClass:\"form-control\",attrs:{\"type\":\"text\",\"readonly\":\"\"},domProps:{\"value\":_vm.defaultLoanRateText}})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.defaultLoan.additions.length > 0),expression:\"defaultLoan.additions.length > 0\"}],staticClass:\"form-group col-xl-6 col-lg-6 col-md-12\"},[_c('label',[_vm._v(\"附加品比例\")]),_c('div',{staticClass:\"select-box\"},[_c('b-form-select',{staticClass:\"form-control\",attrs:{\"options\":_vm.defaultLoan.additions},model:{value:(_vm.defaultLoan.addition),callback:function ($$v) {_vm.$set(_vm.defaultLoan, \"addition\", $$v)},expression:\"defaultLoan.addition\"}}),_c('svg',{staticClass:\"select-arrow\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 100 100\"}},[_c('path',{attrs:{\"d\":\"M100 5.5c0 1.3-.5 2.6-1.5 3.5L50 57.5 1.5 9c-2-2-2-5.1 0-7.1s5.1-2 7.1 0L50 43.4 91.5 1.9c2-2 5.1-2 7.1 0 .9 1 1.4 2.3 1.4 3.6z\"}})])],1)]),(_vm.product.is_ev == 0 && _vm.defaultLoan.tax == 1)?_c('div',{staticClass:\"form-group col-12 mb-0\"},[_c('b-form-checkbox',{attrs:{\"switch\":\"\"},model:{value:(_vm.defaultLoan.isTax),callback:function ($$v) {_vm.$set(_vm.defaultLoan, \"isTax\", $$v)},expression:\"defaultLoan.isTax\"}},[_vm._v(\"购置税\")])],1):_vm._e()])]),_c('ul',{staticClass:\"common-item-wrap\"},[_c('li',{staticClass:\"common-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"首付金额:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.firstPayAmountText))])]),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.defaultLoan.isTax),expression:\"defaultLoan.isTax\"}],staticClass:\"common-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"购置税:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.taxAmountText))])]),_c('li',{staticClass:\"common-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"贷款金额:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.loanAmountText))])]),_c('li',{staticClass:\"common-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"月供金额:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.monthAmountText))])]),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loanEndAmount > 0),expression:\"loanEndAmount > 0\"}],staticClass:\"common-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"尾款金额:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.loanEndAmountText))])]),(_vm.product.discount > 0)?_c('li',{staticClass:\"common-item flex discount\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"线上商城上市优惠\")]),_c('span',{staticClass:\"price\"},[_vm._v(\"- ¥ \"+_vm._s(_vm.product.discount))])]):_vm._e(),(_vm.product.discount > 0)?_c('li',{staticClass:\"common-item flex discount\"},[_c('span',{staticClass:\"flex1 label text-danger\"},[_vm._v(_vm._s(_vm.product.discount_desc))])]):_vm._e()])]):_vm._e(),(_vm.paytype == 3)?_c('div',{staticClass:\"loan-wrap\"},[_c('ul',[_c('li',{staticClass:\"line-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"官方指导价:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.attr.price_text))])]),(_vm.optionalAmount != 0)?_c('li',{staticClass:\"line-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"选装配置:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.optionalAmountText))])]):_vm._e(),_c('li',{staticClass:\"line-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"预计车辆总价:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.orginalPirceText))])])]),_c('form',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"form-group col-xl-6 col-lg-6 col-md-12\"},[_c('label',[_vm._v(\"租赁产品\")]),_c('div',{staticClass:\"select-box\"},[_c('b-form-select',{staticClass:\"form-control\",attrs:{\"options\":_vm.defaultLoans,\"value-field\":\"id\",\"text-field\":\"name\"},on:{\"change\":_vm.defaultLoanChange},model:{value:(_vm.defaultLoan.id),callback:function ($$v) {_vm.$set(_vm.defaultLoan, \"id\", $$v)},expression:\"defaultLoan.id\"}}),_c('svg',{staticClass:\"select-arrow\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 100 100\"}},[_c('path',{attrs:{\"d\":\"M100 5.5c0 1.3-.5 2.6-1.5 3.5L50 57.5 1.5 9c-2-2-2-5.1 0-7.1s5.1-2 7.1 0L50 43.4 91.5 1.9c2-2 5.1-2 7.1 0 .9 1 1.4 2.3 1.4 3.6z\"}})])],1)]),_c('div',{staticClass:\"form-group col-xl-6 col-lg-6 col-md-12\"},[_c('label',[_vm._v(\"还款期限\")]),_c('div',{staticClass:\"select-box\"},[_c('b-form-select',{staticClass:\"form-control\",attrs:{\"options\":_vm.defaultLoan.periods},model:{value:(_vm.defaultLoan.period),callback:function ($$v) {_vm.$set(_vm.defaultLoan, \"period\", $$v)},expression:\"defaultLoan.period\"}}),_c('svg',{staticClass:\"select-arrow\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 100 100\"}},[_c('path',{attrs:{\"d\":\"M100 5.5c0 1.3-.5 2.6-1.5 3.5L50 57.5 1.5 9c-2-2-2-5.1 0-7.1s5.1-2 7.1 0L50 43.4 91.5 1.9c2-2 5.1-2 7.1 0 .9 1 1.4 2.3 1.4 3.6z\"}})])],1)]),_c('div',{staticClass:\"form-group col-xl-6 col-lg-6 col-md-12\"},[_c('label',[_vm._v(\"首付比例\")]),_c('div',{staticClass:\"slider-wrap flex\"},[_c('VueSlider',{ref:'slider' + _vm.paytype,staticClass:\"flex1\",attrs:{\"min\":_vm.payRateMinValue,\"max\":_vm.payRateMaxValue,\"marks\":_vm.payRateMarks,\"contained\":true,\"hide-label\":true,\"height\":6,\"tooltip\":'none'},on:{\"change\":_vm.sliderDragging},scopedSlots:_vm._u([{key:\"step\",fn:function(ref){\nvar label = ref.label;\nvar active = ref.active;\nreturn [_c('div',{class:['custom-step', { active: active }]})]}}],null,false,1947153119),model:{value:(_vm.payRateValue),callback:function ($$v) {_vm.payRateValue=$$v},expression:\"payRateValue\"}}),_c('span',{staticClass:\"slider-value\"},[_vm._v(_vm._s(_vm.payRateValue)+\"%\")])],1)]),_c('div',{staticClass:\"form-group col-xl-6 col-lg-6 col-md-12\"},[_c('label',[_vm._v(\"年化利率\")]),_c('div',{staticClass:\"select-box readonly\"},[_c('input',{staticClass:\"form-control\",attrs:{\"type\":\"text\",\"readonly\":\"\"},domProps:{\"value\":_vm.defaultLoanRateText}})])]),(_vm.product.is_ev == 0 && _vm.defaultLoan.tax == 1)?_c('div',{staticClass:\"form-group col-12 mb-0 flex tax-wrap\"},[_c('b-form-checkbox',{staticClass:\"flex1\",attrs:{\"switch\":\"\"},model:{value:(_vm.defaultLoan.isTax),callback:function ($$v) {_vm.$set(_vm.defaultLoan, \"isTax\", $$v)},expression:\"defaultLoan.isTax\"}},[_vm._v(\"购置税\")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.defaultLoan.isTax),expression:\"defaultLoan.isTax\"}],staticClass:\"price\"},[_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.taxAmountText))])])],1):_vm._e()])]),_c('ul',{staticClass:\"common-item-wrap\"},[_c('li',{staticClass:\"common-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"首付金额(含保证金\"),(_vm.gpsAmount > 0)?[_vm._v(\"、GPS\")]:_vm._e(),_vm._v(\"):\")],2),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.firstPayAmountText))])]),_c('li',{staticClass:\"common-item flex child\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"-保证金(\"+_vm._s(_vm.bailText)+\"):\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.bailAmountText))])]),(_vm.gpsAmount > 0)?_c('li',{staticClass:\"common-item flex child\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"-GPS费:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.gpsAmountText))])]):_vm._e(),_c('li',{staticClass:\"common-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"贷款金额:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.loanAmountText))])]),_c('li',{staticClass:\"common-item flex\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"月供金额:\")]),_c('span',{staticClass:\"price\"},[_vm._v(_vm._s(_vm.monthAmountText))])]),(_vm.product.discount > 0)?_c('li',{staticClass:\"common-item flex discount\"},[_c('span',{staticClass:\"flex1 label\"},[_vm._v(\"线上商城上市优惠\")]),_c('span',{staticClass:\"price\"},[_vm._v(\"- ¥ \"+_vm._s(_vm.product.discount))])]):_vm._e(),(_vm.product.discount > 0)?_c('li',{staticClass:\"common-item flex discount\"},[_c('span',{staticClass:\"flex1 label text-danger\"},[_vm._v(_vm._s(_vm.product.discount_desc))])]):_vm._e()])]):_vm._e()],1)])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div>\r\n    <b-modal v-model=\"show\" size=\"xl\" hide-footer :modal-class=\"product.discount > 0 ? (optionalAmount != 0 ? 'optional calculator discount':'calculator discount') : (optionalAmount != 0 ?'optional calculator':'calculator')\" centered\r\n      hide-header id=\"loanCalculator\">\r\n      <div class=\"flex  h-100 w-100\">\r\n        <div class=\"row flex1 margin\">\r\n          <div class=\"left h-100 d-none  d-lg-block d-xl-block col-xl-3 col-lg-2\">\r\n            <div class=\"logo\"><img src=\"@assets/images/logo.png\" /></div>\r\n            <div class=\"alert-box\">\r\n              <i></i>\r\n              <p>\r\n                计算结果仅供参考,最终执行利率和方案以申请人与金融机构签订的协议为准\r\n              </p>\r\n            </div>\r\n          </div>\r\n          <div class=\"right h-100 col-xl-9 col-lg-10 col-md-12\">\r\n            <div class=\"alert-box d-block d-sm-block d-md-block d-lg-none\">\r\n              <i></i>\r\n              <p>计算结果仅供参考,最终执行利率和方案以申请人与金融机构签订的协议为准</p>\r\n            </div>\r\n            <button class=\"close\" @click=\"show = false\">×</button>\r\n            <b-nav tabs justified v-if=\"configs.loan_types.length > 0\">\r\n              <template v-for=\"(loan, l) in configs.loan_types\">\r\n                <b-nav-item\r\n                  :key=\"l\"\r\n                  :active=\"loan.id == paytype ? true : false\"\r\n                  @click=\"paytype = loan.id\"\r\n                  >{{ loan.name }}</b-nav-item\r\n                >\r\n              </template>\r\n            </b-nav>\r\n            <div class=\"full-amount\" v-show=\"paytype == 1\">\r\n              <!-- 全款 -->\r\n              <ul>\r\n                <li class=\"line-item flex\">\r\n                  <span class=\"flex1 label\">官方指导价:</span>\r\n                  <span class=\"price\">{{ attr.price_text }}</span>\r\n                </li>\r\n                <li class=\"line-item flex\" v-if=\"optionalAmount != 0\">\r\n                  <span class=\"flex1 label\">选装配置:</span>\r\n                  <span class=\"price\">{{ optionalAmountText }}</span>\r\n                </li>\r\n                <li class=\"line-item flex\">\r\n                  <span class=\"flex1 label\">预计车辆总价:</span>\r\n                  <span class=\"price\">{{ totalPriceText }}</span>\r\n                </li>\r\n                <li class=\"common-item flex\">\r\n                  <span class=\"flex1 label\">购车订金:{{ depositText }}</span\r\n                  ><span class=\"price\">{{ deposit }}</span>\r\n                </li>\r\n                <li class=\"common-item flex\">\r\n                  <span class=\"flex1 label\"\r\n                    >购车尾款:{{ depositScaleText }}</span\r\n                  ><span class=\"price\">{{ endAmount }}</span>\r\n                </li>\r\n                <li\r\n                  class=\"common-item flex discount\"\r\n                  v-if=\"product.discount > 0\"\r\n                >\r\n                  <span class=\"flex1 label\">线上商城上市优惠</span\r\n                  ><span class=\"price\">- ¥ {{ product.discount }}</span>\r\n                </li>\r\n                <li\r\n                  class=\"common-item flex discount\"\r\n                  v-if=\"product.discount > 0\"\r\n                >\r\n                  <span class=\"flex1 label text-danger\">{{\r\n                    product.discount_desc\r\n                  }}</span>\r\n                </li>\r\n              </ul>\r\n            </div>\r\n            <div class=\"loan-wrap\" v-if=\"paytype == 2\">\r\n              <ul>\r\n                <li class=\"line-item flex\">\r\n                  <span class=\"flex1 label\">官方指导价:</span>\r\n                  <span class=\"price\">{{ attr.price_text }}</span>\r\n                </li>\r\n                <li class=\"line-item flex\" v-if=\"optionalAmount != 0\">\r\n                  <span class=\"flex1 label\">选装配置:</span>\r\n                  <span class=\"price\">{{ optionalAmountText }}</span>\r\n                </li>\r\n                <li class=\"line-item flex\">\r\n                  <span class=\"flex1 label\">预计车辆总价:</span>\r\n                  <span class=\"price\">{{ orginalPirceText }}</span>\r\n                </li>\r\n              </ul>\r\n              <form>\r\n                <div class=\"row\">\r\n                  <div class=\"form-group col-xl-6 col-lg-6 col-md-12\">\r\n                    <label>金融产品</label>\r\n                    <div class=\"select-box\">\r\n                      <b-form-select\r\n                        class=\"form-control\"\r\n                        v-model=\"defaultLoan.id\"\r\n                        :options=\"defaultLoans\"\r\n                        value-field=\"id\"\r\n                        text-field=\"name\"\r\n                        @change=\"defaultLoanChange\"\r\n                      >\r\n                      </b-form-select>\r\n                      <svg\r\n                        xmlns=\"http://www.w3.org/2000/svg\"\r\n                        viewBox=\"0 0 100 100\"\r\n                        class=\"select-arrow\"\r\n                      >\r\n                        <path\r\n                          d=\"M100 5.5c0 1.3-.5 2.6-1.5 3.5L50 57.5 1.5 9c-2-2-2-5.1 0-7.1s5.1-2 7.1 0L50 43.4 91.5 1.9c2-2 5.1-2 7.1 0 .9 1 1.4 2.3 1.4 3.6z\"\r\n                        ></path>\r\n                      </svg>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"form-group col-xl-6 col-lg-6 col-md-12\">\r\n                    <label>还款期限</label>\r\n                    <div class=\"select-box\">\r\n                      <b-form-select\r\n                        class=\"form-control\"\r\n                        v-model=\"defaultLoan.period\"\r\n                        :options=\"defaultLoan.periods\"\r\n                      >\r\n                      </b-form-select>\r\n                      <svg\r\n                        xmlns=\"http://www.w3.org/2000/svg\"\r\n                        viewBox=\"0 0 100 100\"\r\n                        class=\"select-arrow\"\r\n                      >\r\n                        <path\r\n                          d=\"M100 5.5c0 1.3-.5 2.6-1.5 3.5L50 57.5 1.5 9c-2-2-2-5.1 0-7.1s5.1-2 7.1 0L50 43.4 91.5 1.9c2-2 5.1-2 7.1 0 .9 1 1.4 2.3 1.4 3.6z\"\r\n                        ></path>\r\n                      </svg>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"form-group col-xl-6 col-lg-6 col-md-12\">\r\n                    <label>首付比例</label>\r\n                    <div class=\"slider-wrap flex\">\r\n                      <VueSlider\r\n                        v-model=\"payRateValue\"\r\n                        :min=\"payRateMinValue\"\r\n                        :max=\"payRateMaxValue\"\r\n                        :marks=\"payRateMarks\"\r\n                        :contained=\"true\"\r\n                        :hide-label=\"true\"\r\n                        @change=\"sliderDragging\"\r\n                        :ref=\"'slider' + paytype\"\r\n                        class=\"flex1\"\r\n                        :height=\"6\"\r\n                        :tooltip=\"'none'\"\r\n                      >\r\n                        <template v-slot:step=\"{ label, active }\">\r\n                          <div :class=\"['custom-step', { active }]\"></div>\r\n                        </template>\r\n                      </VueSlider>\r\n                      <span class=\"slider-value\">{{ payRateValue }}%</span>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"form-group col-xl-6 col-lg-6 col-md-12\">\r\n                    <label>年化利率</label>\r\n                    <div class=\"select-box readonly\">\r\n                      <input\r\n                        type=\"text\"\r\n                        class=\"form-control\"\r\n                        readonly\r\n                        :value=\"defaultLoanRateText\"\r\n                      />\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"form-group col-xl-6 col-lg-6 col-md-12\" v-show=\"defaultLoan.additions.length > 0\">\r\n                    <label>附加品比例</label>\r\n                    <div class=\"select-box\">\r\n                      <b-form-select\r\n                        class=\"form-control\"\r\n                        v-model=\"defaultLoan.addition\"\r\n                        :options=\"defaultLoan.additions\"\r\n                      >\r\n                      </b-form-select>\r\n                      <svg\r\n                        xmlns=\"http://www.w3.org/2000/svg\"\r\n                        viewBox=\"0 0 100 100\"\r\n                        class=\"select-arrow\"\r\n                      >\r\n                        <path\r\n                          d=\"M100 5.5c0 1.3-.5 2.6-1.5 3.5L50 57.5 1.5 9c-2-2-2-5.1 0-7.1s5.1-2 7.1 0L50 43.4 91.5 1.9c2-2 5.1-2 7.1 0 .9 1 1.4 2.3 1.4 3.6z\"\r\n                        ></path>\r\n                      </svg>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"form-group col-12 mb-0\" v-if=\"product.is_ev == 0 && defaultLoan.tax == 1\">\r\n                    <b-form-checkbox switch v-model=\"defaultLoan.isTax\" >购置税</b-form-checkbox>\r\n                  </div>\r\n                </div>\r\n              </form>\r\n              <ul class=\"common-item-wrap\">\r\n                <li class=\"common-item flex\">\r\n                  <span class=\"flex1 label\">首付金额:</span\r\n                  ><span class=\"price\">{{ firstPayAmountText }}</span>\r\n                </li>\r\n                <li class=\"common-item flex\" v-show=\"defaultLoan.isTax\">\r\n                  <span class=\"flex1 label\">购置税:</span\r\n                  ><span class=\"price\">{{ taxAmountText }}</span>\r\n                </li>\r\n                <li class=\"common-item flex\">\r\n                  <span class=\"flex1 label\">贷款金额:</span\r\n                  ><span class=\"price\">{{ loanAmountText }}</span>\r\n                </li>\r\n                <li class=\"common-item flex\">\r\n                  <span class=\"flex1 label\">月供金额:</span\r\n                  ><span class=\"price\">{{ monthAmountText }}</span>\r\n                </li>\r\n                <li class=\"common-item flex\" v-show=\"loanEndAmount > 0\">\r\n                  <span class=\"flex1 label\">尾款金额:</span\r\n                  ><span class=\"price\">{{ loanEndAmountText }}</span>\r\n                </li>\r\n                <li\r\n                  class=\"common-item flex discount\"\r\n                  v-if=\"product.discount > 0\"\r\n                >\r\n                  <span class=\"flex1 label\">线上商城上市优惠</span\r\n                  ><span class=\"price\">- ¥ {{ product.discount }}</span>\r\n                </li>\r\n                <li\r\n                  class=\"common-item flex discount\"\r\n                  v-if=\"product.discount > 0\"\r\n                >\r\n                  <span class=\"flex1 label text-danger\">{{\r\n                    product.discount_desc\r\n                  }}</span>\r\n                </li>\r\n              </ul>\r\n            </div>\r\n            <div class=\"loan-wrap\" v-if=\"paytype == 3\">\r\n              <ul>\r\n                <li class=\"line-item flex\">\r\n                  <span class=\"flex1 label\">官方指导价:</span>\r\n                  <span class=\"price\">{{ attr.price_text }}</span>\r\n                </li>\r\n                <li class=\"line-item flex\" v-if=\"optionalAmount != 0\">\r\n                  <span class=\"flex1 label\">选装配置:</span>\r\n                  <span class=\"price\">{{ optionalAmountText }}</span>\r\n                </li>\r\n                <li class=\"line-item flex\">\r\n                  <span class=\"flex1 label\">预计车辆总价:</span>\r\n                  <span class=\"price\">{{ orginalPirceText }}</span>\r\n                </li>\r\n              </ul>\r\n              <form>\r\n                <div class=\"row\">\r\n                  <div class=\"form-group col-xl-6 col-lg-6 col-md-12\">\r\n                    <label>租赁产品</label>\r\n                    <div class=\"select-box\">\r\n                      <b-form-select\r\n                        class=\"form-control\"\r\n                        v-model=\"defaultLoan.id\"\r\n                        :options=\"defaultLoans\"\r\n                        value-field=\"id\"\r\n                        text-field=\"name\"\r\n                        @change=\"defaultLoanChange\"\r\n                      >\r\n                      </b-form-select>\r\n                      <svg\r\n                        xmlns=\"http://www.w3.org/2000/svg\"\r\n                        viewBox=\"0 0 100 100\"\r\n                        class=\"select-arrow\"\r\n                      >\r\n                        <path\r\n                          d=\"M100 5.5c0 1.3-.5 2.6-1.5 3.5L50 57.5 1.5 9c-2-2-2-5.1 0-7.1s5.1-2 7.1 0L50 43.4 91.5 1.9c2-2 5.1-2 7.1 0 .9 1 1.4 2.3 1.4 3.6z\"\r\n                        ></path>\r\n                      </svg>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"form-group col-xl-6 col-lg-6 col-md-12\">\r\n                    <label>还款期限</label>\r\n                    <div class=\"select-box\">\r\n                      <b-form-select\r\n                        class=\"form-control\"\r\n                        v-model=\"defaultLoan.period\"\r\n                        :options=\"defaultLoan.periods\"\r\n                      >\r\n                      </b-form-select>\r\n                      <svg\r\n                        xmlns=\"http://www.w3.org/2000/svg\"\r\n                        viewBox=\"0 0 100 100\"\r\n                        class=\"select-arrow\"\r\n                      >\r\n                        <path\r\n                          d=\"M100 5.5c0 1.3-.5 2.6-1.5 3.5L50 57.5 1.5 9c-2-2-2-5.1 0-7.1s5.1-2 7.1 0L50 43.4 91.5 1.9c2-2 5.1-2 7.1 0 .9 1 1.4 2.3 1.4 3.6z\"\r\n                        ></path>\r\n                      </svg>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"form-group col-xl-6 col-lg-6 col-md-12\">\r\n                    <label>首付比例</label>\r\n                    <div class=\"slider-wrap flex\">\r\n                      <VueSlider\r\n                        v-model=\"payRateValue\"\r\n                        :min=\"payRateMinValue\"\r\n                        :max=\"payRateMaxValue\"\r\n                        :marks=\"payRateMarks\"\r\n                        :contained=\"true\"\r\n                        :hide-label=\"true\"\r\n                        @change=\"sliderDragging\"\r\n                        :ref=\"'slider' + paytype\"\r\n                        class=\"flex1\"\r\n                        :height=\"6\"\r\n                        :tooltip=\"'none'\"\r\n                      >\r\n                        <template v-slot:step=\"{ label, active }\">\r\n                          <div :class=\"['custom-step', { active }]\"></div>\r\n                        </template>\r\n                      </VueSlider>\r\n                      <span class=\"slider-value\">{{ payRateValue }}%</span>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"form-group col-xl-6 col-lg-6 col-md-12\">\r\n                    <label>年化利率</label>\r\n                    <div class=\"select-box readonly\">\r\n                      <input\r\n                        type=\"text\"\r\n                        class=\"form-control\"\r\n                        readonly\r\n                        :value=\"defaultLoanRateText\"\r\n                      />\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"form-group col-12 mb-0 flex tax-wrap\" v-if=\"product.is_ev == 0 && defaultLoan.tax == 1\">\r\n                    <b-form-checkbox switch v-model=\"defaultLoan.isTax\" class=\"flex1\">购置税</b-form-checkbox>\r\n                    <div class=\"price\" v-show=\"defaultLoan.isTax\"><span class=\"price\">{{ taxAmountText }}</span></div>\r\n                  </div>\r\n                </div>\r\n              </form>\r\n              <ul class=\"common-item-wrap\">\r\n                <li class=\"common-item flex\">\r\n                  <span class=\"flex1 label\">首付金额(含保证金<template v-if=\"gpsAmount > 0\">、GPS</template>):</span\r\n                  ><span class=\"price\">{{ firstPayAmountText }}</span>\r\n                </li>\r\n                <li class=\"common-item flex child\">\r\n                  <span class=\"flex1 label\">-保证金({{ bailText }}):</span\r\n                  ><span class=\"price\">{{ bailAmountText }}</span>\r\n                </li>\r\n                <li class=\"common-item flex child\" v-if=\"gpsAmount > 0\">\r\n                  <span class=\"flex1 label\">-GPS费:</span\r\n                  ><span class=\"price\">{{ gpsAmountText }}</span>\r\n                </li>\r\n                <li class=\"common-item flex\">\r\n                  <span class=\"flex1 label\">贷款金额:</span\r\n                  ><span class=\"price\">{{ loanAmountText }}</span>\r\n                </li>\r\n                <li class=\"common-item flex\">\r\n                  <span class=\"flex1 label\">月供金额:</span\r\n                  ><span class=\"price\">{{ monthAmountText }}</span>\r\n                </li>\r\n                \r\n                <li\r\n                  class=\"common-item flex discount\"\r\n                  v-if=\"product.discount > 0\"\r\n                >\r\n                  <span class=\"flex1 label\">线上商城上市优惠</span\r\n                  ><span class=\"price\">- ¥ {{ product.discount }}</span>\r\n                </li>\r\n                <li\r\n                  class=\"common-item flex discount\"\r\n                  v-if=\"product.discount > 0\"\r\n                >\r\n                  <span class=\"flex1 label text-danger\">{{\r\n                    product.discount_desc\r\n                  }}</span>\r\n                </li>\r\n              </ul>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </b-modal>\r\n  </div>\r\n</template>\r\n<script>\r\nimport { mapGetters } from \"vuex\";\r\nimport VueSlider from \"vue-slider-component\";\r\nimport \"vue-slider-component/theme/default.css\";\r\nimport { mul, format, sub, add, div, pmt } from \"@utils/bc\";\r\nexport default {\r\n  name: \"LoanCalculator\",\r\n  data() {\r\n    return {\r\n      paytype: 1,\r\n      defaultLoans: {},\r\n      defaultLoan: {\r\n        id: 0,\r\n        loan_type: 0,\r\n        period: 0, //期数\r\n        periods: [],\r\n        rate: 0, //利率\r\n        payRate: 0,\r\n        payRateMin: 0,\r\n        payRateMax: 100,\r\n        isTax: false,\r\n        addition:0,\r\n        additions:[],\r\n        gps:0\r\n      }\r\n    };\r\n  },\r\n  props: {\r\n    show: {\r\n      type: Boolean,\r\n      default: false\r\n    },\r\n    product: {\r\n      type: Object,\r\n      default: () => {}\r\n    },\r\n    attr: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    color: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    size: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    material: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    wheel: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    config: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    number: {\r\n      type: Number,\r\n      default: 1\r\n    }\r\n  },\r\n  components: {\r\n    VueSlider\r\n  },\r\n  computed: {\r\n    ...mapGetters({\r\n      configs: \"configs\"\r\n    }),\r\n    orginalPirce() {\r\n      let defaultAttr = this.attr || { price: 0, price_text: \"\" };\r\n      let price = this.product.discount > 0 ? sub(defaultAttr.price, this.product.discount) : defaultAttr.price;\r\n      // let refitPrice = this.refit ? this.refit.price : 0;\r\n      let colorPrice = this.color ? this.color.price || 0 : 0;\r\n      let sizePrice = this.size ? this.size.price || 0 : 0;\r\n      let materialPrice = this.material ? this.material.price || 0 : 0;\r\n      let wheelPrice = this.wheel ? this.wheel.price || 0 : 0;\r\n      let configPrice = this.config ? this.config.price || 0 : 0;\r\n      // price = add(price, refitPrice);\r\n      price = add(price, colorPrice);\r\n      price = add(price, sizePrice);\r\n      price = add(price, materialPrice);\r\n      price = add(price, wheelPrice);\r\n      price = add(price, configPrice);\r\n      return price;\r\n    },\r\n    orginalPirceText(){\r\n      let amount = new Number(this.orginalPirce);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    totalPrice() {\r\n      let number = this.number || 1,carPrice = this.orginalPirce,addition = this.defaultLoan.addition || 0;\r\n      let additionPrice = mul(carPrice, addition);\r\n      carPrice = add(carPrice,additionPrice);\r\n      carPrice = add(carPrice, this.taxAmount); //购置税\r\n      carPrice = mul(carPrice, number);\r\n      return carPrice;\r\n    },\r\n    totalPriceText() {\r\n      let amount = new Number(this.totalPrice);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    deposit() {\r\n      let deposit_scale = this.configs.deposit_scale || 0.1,\r\n        deposit = this.attr.deposit || 0;\r\n      if (deposit > 0) {\r\n        return \"¥ \" + format(deposit);\r\n      } else {\r\n        if (this.paytype == 2 || this.paytype == 3) {\r\n          return \"¥ \" + format(Math.floor(mul(this.firstPayAmount, deposit_scale)));\r\n        } else {\r\n          return \"¥ \" + format(Math.floor(mul(this.totalPrice, deposit_scale)));\r\n        }\r\n      }\r\n    },\r\n    depositText() {\r\n      let deposit_scale = this.configs.deposit_scale || 0.1,\r\n        deposit = this.attr.deposit || 0;\r\n      return deposit > 0 ? \"\" : mul(deposit_scale, 100) + \"%\";\r\n    },\r\n    depositScaleText() {\r\n      let deposit_scale = this.configs.deposit_scale || 0.1,\r\n        deposit = this.attr.deposit || 0;\r\n      return deposit > 0 ? \"\" : sub(100, mul(deposit_scale, 100)) + \"%\";\r\n    },\r\n    defaultLoanRateText() {\r\n      let rate = this.defaultLoan.rate || 0;\r\n      return mul(rate, 100) + \"%\";\r\n    },\r\n    payRateMinValue() {\r\n      let min = this.defaultLoan.payRateMin || 0;\r\n      return sub(mul(min, 100), 10) < 0\r\n        ? mul(min, 100)\r\n        : sub(mul(min, 100), 10);\r\n    },\r\n    payRateMaxValue() {\r\n      let max = this.defaultLoan.payRateMax || 0;\r\n      return add(mul(max, 100), 10);\r\n    },\r\n    payRateValue() {\r\n      let rate = this.defaultLoan.payRate || 0;\r\n      return mul(rate, 100);\r\n    },\r\n    payRateMarks() {\r\n      let min = this.defaultLoan.payRateMin || 0;\r\n      let max = this.defaultLoan.payRateMax || 0;\r\n      return [mul(min, 100), mul(max, 100)];\r\n    },\r\n    firstPayAmount() {\r\n      //首付金额\r\n      let rate = this.defaultLoan.payRate || 0;\r\n      let amount = Math.round(sub(this.orginalPirce,mul(this.totalPrice, sub(1,rate))));\r\n      return amount;\r\n    },\r\n    firstPayAmountText() {\r\n      let amount = this.firstPayAmount;\r\n      if (this.paytype == 3) {\r\n        amount = add(this.gpsAmount,add(amount, this.bailAmount));\r\n      }\r\n      amount = new Number(amount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    loanAmount() {\r\n      //贷款金额\r\n      let amount = 0;\r\n      let loan_type = this.defaultLoan.loan_type || 1;\r\n      let pay_rate = this.defaultLoan.payRate || 0;\r\n      let rate = this.defaultLoan.rate || 0;\r\n      let period = this.defaultLoan.period || 0;\r\n      if (loan_type == 2 || loan_type == 3) {\r\n        amount = sub(this.orginalPirce,this.firstPayAmount);//mul(this.totalPrice, sub(1, pay_rate));\r\n        let right = Math.pow(add(1, div(rate, 12)), period).toFixed(7);\r\n        let rightamount = div(this.loanEndAmount, right);\r\n        amount = sub(amount, rightamount);\r\n        amount = new Number(amount);\r\n        amount = amount.toFixed(2);\r\n      } else if (loan_type == 4) {\r\n        amount = sub(this.orginalPirce,this.firstPayAmount);//mul(this.totalPrice, sub(1, pay_rate));\r\n      } else {\r\n        amount = sub(this.orginalPirce,this.firstPayAmount);//mul(this.totalPrice, sub(1, pay_rate));\r\n      }\r\n      return amount;\r\n    },\r\n    loanAmountText() {\r\n      //贷款金额格式化\r\n      let amount = new Number(this.loanAmount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    monthAmount() {\r\n      //月供金额\r\n      let rate = this.defaultLoan.rate || 0;\r\n      let loan_type = this.defaultLoan.loan_type || 1;\r\n      let amount = 0;\r\n      if (loan_type == 2 || loan_type == 3) {\r\n        amount = pmt(\r\n          div(rate, 12),\r\n          sub(this.defaultLoan.period, 1),\r\n          this.loanAmount\r\n        );\r\n      } else if (loan_type == 4) {\r\n        let pv1 = add(this.loanAmount, div(mul(this.loanAmount, rate), 12));\r\n        let pv2 = add(mul(pv1, div(rate, 12)), pv1);\r\n        let pv3 = mul(pv2, div(rate, 12));\r\n        let pv4 = add(pv3, pv2);\r\n        amount = pmt(div(rate, 12), sub(this.defaultLoan.period, 3), pv4);\r\n      } else {\r\n        amount = pmt(div(rate, 12), this.defaultLoan.period, this.loanAmount);\r\n      }\r\n\r\n      amount = Math.floor(mul(amount, -1));\r\n      return amount;\r\n    },\r\n    monthAmountText() {\r\n      let amount = new Number(this.monthAmount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    endAmount() {\r\n      //首付尾款\r\n      let deposit_scale = this.configs.deposit_scale || 0.1,\r\n        productDeposit = this.attr.deposit || 0;\r\n      if (this.paytype == 2) {\r\n        let deposit =\r\n          productDeposit > 0\r\n            ? productDeposit\r\n            : mul(this.firstPayAmount, deposit_scale);\r\n        let amount = new Number(sub(this.firstPayAmount, deposit));\r\n        return \"¥ \" + format(Math.floor(amount));\r\n      } else if (this.paytype == 3) {\r\n        let deposit =\r\n          productDeposit > 0\r\n            ? productDeposit\r\n            : mul(this.firstPayAmount, deposit_scale);\r\n        let endPrice = sub(this.firstPayAmount, deposit);\r\n        let bailAmount = this.bailAmount || 0;\r\n        let gpsAmount = this.gpsAmount || 0;\r\n        let amount = new Number(add(gpsAmount,add(endPrice, bailAmount)));\r\n        return \"¥ \" + format(Math.floor(amount));\r\n      } else {\r\n        let deposit =\r\n          productDeposit > 0\r\n            ? productDeposit\r\n            : mul(this.totalPrice, deposit_scale);\r\n        let amount = new Number(sub(this.totalPrice, deposit));\r\n        return \"¥ \" + format(Math.floor(amount));\r\n      }\r\n    },\r\n    bailText() {\r\n      //保证金格式化\r\n      let bail_scale = this.configs.bail_scale || 0.05;\r\n      return mul(bail_scale, 100) + \"%\";\r\n    },\r\n    bailAmount() {\r\n      let bail_scale = this.configs.bail_scale || 0.05;\r\n      return mul(this.totalPrice, bail_scale);\r\n    },\r\n    bailAmountText() {\r\n      let amount = new Number(this.bailAmount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    paytypeText() {\r\n      let name;\r\n      this.configs.loan_types.forEach(loan => {\r\n        if (loan.id == this.paytype) {\r\n          name = loan.name;\r\n        }\r\n      });\r\n      return name;\r\n    },\r\n    step() {\r\n      let step = 1;\r\n      if (this.$route.path.indexOf(\"design\") >= 0) {\r\n        step = 2;\r\n      } else if (this.$route.path.indexOf(\"order\") >= 0) {\r\n        step = 3;\r\n      }\r\n      return step;\r\n    },\r\n    loanEndAmount() {\r\n      //贷款尾款\r\n      let amount = 0,\r\n        loan_type = this.defaultLoan.loan_type || 1,\r\n        rate = 0;\r\n      if (loan_type == 2) {\r\n        rate = 0.3;\r\n      } else if (loan_type == 3) {\r\n        rate = 0.2;\r\n      }\r\n      amount = mul(this.totalPrice, rate);\r\n      return amount;\r\n    },\r\n    loanEndAmountText() {\r\n      let amount = new Number(this.loanEndAmount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    taxAmount() {\r\n      let amount = 0, isTax = this.defaultLoan.isTax || false;\r\n      if (!isTax) {\r\n        return amount;\r\n      }\r\n      amount = mul(this.orginalPirce, 0.1);\r\n      amount = div(amount, 1.13);\r\n      return parseFloat(amount);\r\n    },\r\n    taxAmountText() {\r\n      let amount = new Number(this.taxAmount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    optionalAmount(){\r\n      let price = 0;\r\n      let colorPrice = this.color ? this.color.price || 0 : 0;\r\n      let sizePrice = this.size ? this.size.price || 0 : 0;\r\n      let materialPrice = this.material ? this.material.price || 0 : 0;\r\n      let wheelPrice = this.wheel ? this.wheel.price || 0 : 0;\r\n      let configPrice = this.config ? this.config.price || 0 : 0;\r\n      price = add(price, colorPrice);\r\n      price = add(price, sizePrice);\r\n      price = add(price, materialPrice);\r\n      price = add(price, wheelPrice);\r\n      price = add(price, configPrice);\r\n      return price;\r\n    },\r\n    optionalAmountText(){\r\n      let amount = new Number(this.optionalAmount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    gpsAmount(){\r\n      let amount = this.defaultLoan.gps || 0;\r\n      return new Number(amount);\r\n    },\r\n    gpsAmountText(){\r\n      let amount = typeof this.gpsAmount == 'string' ? new Number(this.gpsAmount) : this.gpsAmount;\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    }\r\n  },\r\n  watch: {\r\n    product: function() {\r\n      this.defaultLoans = this.product[\"loans\"][this.paytype] || [];\r\n      let defaultloan = this.defaultLoans[0] || {};\r\n      if (defaultloan.id) {\r\n        this.$set(this.defaultLoan, \"id\", defaultloan.id);\r\n        this.$set(this.defaultLoan, \"loan_type\", defaultloan.loan_type);\r\n        this.$set(this.defaultLoan, \"tax\", defaultloan.tax || 0);\r\n        this.$set(this.defaultLoan, \"gps\", defaultloan.gps || 0);\r\n      }else{\r\n        this.defaultloan = {\r\n          id: 0,\r\n          loan_type: 0,\r\n          period: 0, //期数\r\n          periods: [],\r\n          rate: 0, //利率\r\n          payRate: 0,\r\n          payRateMin: 0,\r\n          payRateMax: 100,\r\n          // isTax: false,\r\n          addition:0,\r\n          additions:[],\r\n          tax:0,\r\n          gps:0\r\n        }\r\n      }\r\n      \r\n    },\r\n    paytype: function() {\r\n      this.defaultLoans = this.product[\"loans\"][this.paytype] || [];\r\n      if (this.defaultLoans.length > 0) {\r\n        const defaultitem = this.defaultLoans[0] || {};\r\n        const curPeriodIndex = defaultitem[\"periods\"].indexOf(\"36\") > -1 ? defaultitem[\"periods\"].indexOf(\"36\") : 0;\r\n        \r\n        this.$set(this.defaultLoan, \"id\", defaultitem.id);\r\n        this.$set(this.defaultLoan, \"period\", defaultitem[\"periods\"][curPeriodIndex]?defaultitem[\"periods\"][curPeriodIndex]:defaultitem[\"periods\"][0]);\r\n        this.$set(this.defaultLoan, \"periods\", defaultitem[\"periods\"]);\r\n        this.$set(this.defaultLoan, \"rate\", defaultitem.rate);\r\n        this.$set(this.defaultLoan, \"payRateMin\", defaultitem[\"pay_rate\"][0] || 0);\r\n        this.$set(this.defaultLoan, \"payRateMax\", defaultitem[\"pay_rate\"][1] || 0);\r\n        this.$set(this.defaultLoan, \"payRate\", defaultitem[\"pay_rate\"][0] || 0);\r\n        this.$set(this.defaultLoan, \"loan_type\", defaultitem.loan_type);\r\n        this.$set(this.defaultLoan, \"tax\", defaultitem.tax);\r\n        if (this.product.is_ev == 0) {\r\n          this.$set(this.defaultLoan, \"isTax\", this.paytype == 1 ? false: (defaultitem.tax == 1 ? true:false));\r\n        }\r\n        this.$set(this.defaultLoan, \"additions\", defaultitem[\"additions\"]);\r\n        let defaultAddition = defaultitem[\"additions\"].length > 0 ? 0.25 : 0;//defaultitem[\"additions\"][0].id || \r\n        this.$set(this.defaultLoan, \"addition\", defaultAddition);\r\n        this.$set(this.defaultLoan, \"gps\", defaultitem.gps);\r\n      }else{\r\n        this.$set(this.defaultLoan, \"addition\", 0);\r\n        this.$set(this.defaultLoan, \"period\", 0);\r\n        this.$set(this.defaultLoan, \"tax\", 0);\r\n        if (this.product.is_ev == 0) {\r\n          this.$set(this.defaultLoan, \"isTax\", this.paytype == 1 ? false: (this.defaultLoan.tax == 1 ? true:false));\r\n        }\r\n        this.$set(this.defaultLoan, \"gps\", 0);\r\n      }\r\n    }\r\n  },\r\n  mounted() {\r\n\r\n  },\r\n  methods: {\r\n    sliderDragging(value) {\r\n      let min = this.defaultLoan.payRateMin || 0;\r\n      let max = this.defaultLoan.payRateMax || 0;\r\n      min = mul(min, 100);\r\n      max = mul(max, 100);\r\n      if (value < min) {\r\n        this.$set(this.defaultLoan, \"payRate\", this.defaultLoan.payRateMin);\r\n        this.$refs[`slider${this.paytype}`].setValue(this.payRateValue);\r\n      } else if (value > max) {\r\n        this.$set(this.defaultLoan, \"payRate\", this.defaultLoan.payRateMax);\r\n        this.$refs[`slider${this.paytype}`].setValue(this.payRateValue);\r\n      } else {\r\n        this.$set(this.defaultLoan, \"payRate\", div(value, 100));\r\n      }\r\n    },\r\n    defaultLoanChange(){\r\n      if (this.defaultLoans.length > 0) {\r\n        this.defaultLoans.forEach(item => {\r\n          if (item.id == this.defaultLoan.id) {\r\n            const curPeriodIndex = item[\"periods\"].indexOf(\"36\") > -1 ? item[\"periods\"].indexOf(\"36\") : 0;\r\n            this.$set(this.defaultLoan, \"period\", item[\"periods\"][curPeriodIndex]?item[\"periods\"][curPeriodIndex]:item[\"periods\"][0]);\r\n            this.$set(this.defaultLoan, \"periods\", item[\"periods\"]);\r\n            this.$set(this.defaultLoan, \"rate\", item.rate);\r\n            this.$set(this.defaultLoan, \"payRateMin\", item[\"pay_rate\"][0] || 0);\r\n            this.$set(this.defaultLoan, \"payRateMax\", item[\"pay_rate\"][1] || 0);\r\n            this.$set(this.defaultLoan, \"payRate\", item[\"pay_rate\"][0] || 0);\r\n            this.$set(this.defaultLoan, \"loan_type\", item.loan_type);\r\n            this.$set(this.defaultLoan, \"additions\", item[\"additions\"]);\r\n            let defaultAddition = item[\"additions\"].length > 0 ? 0.25 : 0;//item[\"additions\"][0].id || 0\r\n            this.$set(this.defaultLoan, \"addition\", defaultAddition);\r\n            this.$set(this.defaultLoan, \"gps\", item.gps);\r\n          }\r\n        });\r\n      }else{\r\n        this.$set(this.defaultLoan, \"addition\", 0);\r\n        this.$set(this.defaultLoan, \"period\", 0);\r\n        this.$set(this.defaultLoan, \"gps\", 0);\r\n      }\r\n    }\r\n  }\r\n};\r\n</script>\r\n<style scoped>\r\n.custom-step {\r\n  width: 100%;\r\n  height: 100%;\r\n  border-radius: 50%;\r\n  box-shadow: 0 0 0 3px #ccc;\r\n  background-color: #fff;\r\n}\r\n.custom-step.active {\r\n  box-shadow: 0 0 0 3px #35719d;\r\n  background-color: #35719d;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoanCalculator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoanCalculator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoanCalculator.vue?vue&type=template&id=93620ab2&scoped=true&\"\nimport script from \"./LoanCalculator.vue?vue&type=script&lang=js&\"\nexport * from \"./LoanCalculator.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LoanCalculator.vue?vue&type=style&index=0&id=93620ab2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"93620ab2\",\n  null\n  \n)\n\nexport default component.exports","<template>\r\n  <div class=\"product-footer fixed-bottom\" :class=\"showFooter ? 'footer-mobile-show' : 'footer-mobile-hide'\" v-if=\"refit.id > 0\">\r\n    <div class=\"nav nav-tabs d-sm-none d-md-flex d-none\">\r\n      <template v-for=\"(ltype, index) in configs.loan_types\">\r\n        <li\r\n          class=\"nav-item\"\r\n          :key=\"index\"\r\n          :class=\"ltype.id == paytype ? 'active' : ''\"\r\n          @click=\"paytype = ltype.id\"\r\n        >\r\n          <a class=\"nav-link\" href=\"#\">{{ ltype.name }}</a>\r\n        </li>\r\n      </template>\r\n    </div>\r\n    <div class=\"bottom row d-sm-none d-md-flex d-none\">\r\n      <div\r\n        class=\"price-box d-flex align-items-center col-sm-12\"\r\n        :class=\"\r\n          paytype == 1\r\n            ? step == 1\r\n              ? 'col-xl-9 col-lg-9'\r\n              : 'col-xl-8 col-lg-8'\r\n            : step == 1\r\n            ? 'col-xl-9 col-lg-9'\r\n            : 'col-xl-8 col-lg-8'\r\n        \"\r\n      >\r\n        <div class=\"original-price\" v-show=\"paytype == 1\">\r\n          <p class=\"price\">{{ totalPriceText || \"\" }}元</p>\r\n          <p class=\"title\">预计购车总价</p>\r\n        </div>\r\n        <div\r\n          class=\"original-price loan-price\"\r\n          v-show=\"paytype == 2 || paytype == 3\"\r\n        >\r\n          <p class=\"price\">\r\n            {{ firstPayAmountText }}元\r\n            <em>(定金:{{ deposit || \"\" }} 首付尾款:{{ endAmount }})</em>\r\n          </p>\r\n          <p class=\"title\">\r\n            首付款<span v-show=\"bailAmount > 0 && paytype == 3\"\r\n              >(含保证金{{ bailAmountText }} <template v-if=\"gpsAmount > 0\"> 含GPS{{gpsAmountText}}</template>)</span\r\n            >\r\n          </p>\r\n        </div>\r\n        <div class=\"deposit-price\" v-show=\"paytype == 1\">\r\n          <p class=\"price\">{{ deposit || \"\" }}元</p>\r\n          <p class=\"title\">定金</p>\r\n        </div>\r\n        <div\r\n          class=\"deposit-price loan-price month-price\"\r\n          v-show=\"paytype == 2 || paytype == 3\"\r\n        >\r\n          <p class=\"price\">{{ loanAmountText }}元</p>\r\n          <p class=\"title\">贷款总额</p>\r\n        </div>\r\n        <div\r\n          class=\"deposit-price loan-price\"\r\n          v-show=\"paytype == 2 || paytype == 3\"\r\n          :class=\"loanEndAmount > 0 ? 'month-price' : ''\"\r\n        >\r\n          <p class=\"price\">{{ monthAmountText }}元/月</p>\r\n          <p class=\"title\">月供</p>\r\n        </div>\r\n        <div\r\n          class=\"deposit-price loan-price\"\r\n          v-show=\"(paytype == 2 || paytype == 3) && loanEndAmount > 0\"\r\n        >\r\n          <p class=\"price\">{{ loanEndAmountText }}元</p>\r\n          <p class=\"title\">尾款</p>\r\n        </div>\r\n        <div class=\"calculator-box d-flex align-items-center\">\r\n          <div class=\"calculator\">\r\n            <a\r\n              href=\"javascript:;\"\r\n              @click=\"showCalculator = true\"\r\n              class=\"d-flex align-items-center\"\r\n              ><i></i>付款计算器</a\r\n            >\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div\r\n        class=\"col-sm-12 d-flex align-items-center btn-box\"\r\n        :class=\"step == 1 ? 'col-xl-3 col-lg-3' : 'col-xl-4 col-lg-4'\"\r\n      >\r\n        <button\r\n          type=\"button\"\r\n          v-if=\"step == 2\"\r\n          class=\"btn btn-default btn-block col-4\"\r\n          @click=\"prev\"\r\n        >\r\n          上一步\r\n        </button>\r\n        <button type=\"button\" class=\"btn btn-info btn-block\" @click=\"next\">\r\n          下一步\r\n        </button>\r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"bottom-sm  d-sm-block d-md-none\">\r\n      <div class=\"row\">\r\n        <div class=\"col-4\">\r\n          <b-dropdown :text=\"paytypeText\" variant=\"white\" class=\"dropdown-white font-16\">\r\n            <template v-for=\"(loantype, lo) in configs.loan_types\">\r\n              <b-dropdown-item\r\n                href=\"javascript:;\"\r\n                :key=\"lo\"\r\n                :class=\"loantype.id == paytype ? 'active' : ''\"\r\n                @click=\"paytype = loantype.id\"\r\n                :link-class=\"'font-16'\"\r\n                >{{ loantype.name }}</b-dropdown-item\r\n              >\r\n            </template>\r\n          </b-dropdown>\r\n        </div>\r\n        <div class=\"col-8 calculator-box acea-row row-middle row-right\">\r\n          <div class=\"calculator\">\r\n            <a\r\n              href=\"javascript:;\"\r\n              @click=\"showCalculator = true\"\r\n              class=\"d-flex align-items-center font-16\"\r\n              ><i></i>付款计算器</a\r\n            >\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div class=\"row font-16\">\r\n        <div class=\"col-12 original-price\" v-show=\"paytype == 1\">\r\n          <span class=\"title\">预计购车总价</span\r\n          ><span class=\"price\">{{ totalPriceText || \"\" }}元</span>\r\n        </div>\r\n        <div\r\n          class=\"col-12 original-price loan-price\"\r\n          v-show=\"paytype == 2 || paytype == 3\"\r\n        >\r\n          <div class=\"item\">\r\n            <span class=\"title\">首付款</span>\r\n            <span class=\"price\">{{ firstPayAmountText }}元<em v-if=\"paytype == 3\">(含保证金{{ bailAmountText }}<template v-if=\"gpsAmount > 0\"> 含GPS{{gpsAmountText}}</template>)</em></span>\r\n          </div>\r\n          <em>(定金:{{ deposit || \"\" }} 首付尾款:{{ endAmount }})</em>\r\n        </div>\r\n        <div class=\"col-12 deposit-price\" v-show=\"paytype == 1\">\r\n          <span class=\"title\">定金</span>\r\n          <span class=\"price\">{{ deposit || \"\" }}元</span>\r\n        </div>\r\n        <div\r\n          class=\"col-12 deposit-price loan-price month-price\"\r\n          v-show=\"paytype == 2 || paytype == 3\"\r\n        >\r\n          <span class=\"title\">贷款总额</span>\r\n          <span class=\"price\">{{ loanAmountText }}元</span>\r\n        </div>\r\n        <div\r\n          class=\"col-12 deposit-price loan-price\"\r\n          v-show=\"paytype == 2 || paytype == 3\"\r\n          :class=\"loanEndAmount > 0 ? 'month-price' : ''\"\r\n        >\r\n          <span class=\"title\">月供</span>\r\n          <span class=\"price\">{{ monthAmountText }}元/月</span>\r\n        </div>\r\n        <div\r\n          class=\"col-12 deposit-price loan-price\"\r\n          v-show=\"(paytype == 2 || paytype == 3) && loanEndAmount > 0\"\r\n        >\r\n          <span class=\"title\">尾款</span>\r\n          <span class=\"price\">{{ loanEndAmountText }}元</span>\r\n        </div>\r\n        <div class=\"col-12 d-flex align-items-center btn-box\">\r\n          <button\r\n            type=\"button\"\r\n            v-if=\"step == 2\"\r\n            class=\"btn btn-default btn-block btn-radius font-16\"\r\n            @click=\"prev\"\r\n          >\r\n            上一步\r\n          </button>\r\n          <button\r\n            type=\"button\"\r\n            class=\"btn btn-info btn-block btn-radius font-16\"\r\n            @click=\"next\"\r\n          >\r\n            下一步\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n    <LoanCalculator\r\n      :show=\"showCalculator\"\r\n      :product=\"product\"\r\n      :attr=\"refit\"\r\n      :color=\"color\"\r\n      :size=\"size\"\r\n      :material=\"material\"\r\n      :wheel=\"wheel\"\r\n      :config=\"config\"\r\n      :number=\"number\"\r\n    ></LoanCalculator>\r\n  </div>\r\n</template>\r\n<script>\r\nimport { mapGetters } from \"vuex\";\r\nimport { mul, format, sub, add, div, pmt } from \"@utils/bc\";\r\nimport LoanCalculator from \"@components/LoanCalculator\";\r\nimport localStorage from \"@utils/store/localStorage\";\r\nexport default {\r\n  name: \"ProductFooter\",\r\n  props: {\r\n    product: {\r\n      type: Object,\r\n      default: () => {}\r\n    },\r\n    attr: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    refit: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    color: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    size: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    material: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    wheel: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    config: {\r\n      type: Object,\r\n      default: function() {\r\n        return { price: 0, price_text: \"\" };\r\n      }\r\n    },\r\n    isNextStep: {\r\n      type: Boolean,\r\n      default: false\r\n    },\r\n    number: {\r\n      type: Number,\r\n      default: 1\r\n    },\r\n    showFooter: {\r\n      type: Boolean,\r\n      default: false\r\n    }\r\n  },\r\n  components: {\r\n    LoanCalculator\r\n  },\r\n  data() {\r\n    let code = this.$route.params.code || \"\";\r\n    let localPaytype, localDefaultLoan;\r\n    if (localStorage.has(\"hyundai-trucknbus-buycar-payconfig-\" + code)) {\r\n      let config = localStorage.get(\"hyundai-trucknbus-buycar-payconfig-\" + code);\r\n      localPaytype = config.paytype;\r\n      localDefaultLoan = config.defaultLoan;\r\n    }\r\n    return {\r\n      showCalculator: false,\r\n      paytype: localPaytype || 1,\r\n      defaultLoans: {},\r\n      defaultLoan: localDefaultLoan || {\r\n        id: 0,\r\n        loan_type: 0,\r\n        period: 0, //期数\r\n        periods: [],\r\n        rate: 0, //利率\r\n        payRate: 0,\r\n        payRateMin: 0,\r\n        payRateMax: 100,\r\n        isTax: true,\r\n        addition:0,\r\n        additions:[],\r\n        gps:0\r\n      },\r\n      showFooterDisplay: false\r\n    };\r\n  },\r\n  computed: {\r\n    ...mapGetters({\r\n      configs: \"configs\"\r\n    }),\r\n    orginalPirce() {\r\n      let defaultRefit = this.refit || { price: 0, price_text: \"\" };\r\n      let carPrice = this.product.discount > 0 ? sub(defaultRefit.price, this.product.discount) : defaultRefit.price;\r\n      // let refitPrice = this.refit ? this.refit.price : 0;\r\n      let colorPrice = this.color ? this.color.price : 0;\r\n      let sizePrice = this.size ? this.size.price || 0 : 0;\r\n      let materialPrice = this.material ? this.material.price || 0 : 0;\r\n      let wheelPrice = this.wheel ? this.wheel.price || 0 : 0;\r\n      let configPrice = this.config ? this.config.price || 0 : 0;\r\n  \r\n      // carPrice = add(carPrice, refitPrice);\r\n      carPrice = add(carPrice, colorPrice);\r\n      carPrice = add(carPrice, sizePrice);\r\n      carPrice = add(carPrice, materialPrice);\r\n      carPrice = add(carPrice, wheelPrice);\r\n      carPrice = add(carPrice, configPrice);\r\n      return carPrice;\r\n    },\r\n    totalPrice() {\r\n      let number = this.number || 1, carPrice = this.orginalPirce, addition = this.defaultLoan.addition || 0;\r\n      let additionPrice = mul(carPrice, addition);\r\n      carPrice = add(carPrice, additionPrice);\r\n      carPrice = add(carPrice, this.taxAmount); //购置税\r\n      carPrice = mul(carPrice, number);\r\n      return carPrice;\r\n    },\r\n    totalPriceText() {\r\n      let amount = new Number(this.totalPrice);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    deposit() {\r\n      let deposit_scale = this.configs.deposit_scale || 0.1,\r\n        deposit = this.refit.deposit || 0,\r\n        number = this.number || 1;\r\n      if (deposit > 0) {\r\n        return \"¥ \" + format(Math.floor(mul(deposit, number)));\r\n      } else {\r\n        if (this.paytype == 2 || this.paytype == 3) {\r\n          return \"¥ \" + format(Math.floor(mul(mul(this.firstPayAmount, deposit_scale), number)));\r\n        } else {\r\n          return \"¥ \" + format(Math.floor(mul(mul(this.totalPrice, deposit_scale), number)));\r\n        }\r\n      }\r\n    },\r\n    depositText() {\r\n      let deposit_scale = this.configs.deposit_scale || 0.1,\r\n        deposit = this.refit.deposit || 0;\r\n      return deposit > 0 ? \"\" : mul(deposit_scale, 100) + \"%\";\r\n    },\r\n    depositScaleText() {\r\n      let deposit_scale = this.configs.deposit_scale || 0.1,\r\n        deposit = this.refit.deposit || 0;\r\n      return deposit > 0 ? \"\" : sub(100, mul(deposit_scale, 100)) + \"%\";\r\n    },\r\n    defaultLoanRateText() {\r\n      let rate = this.defaultLoan.rate || 0;\r\n      return mul(rate, 100) + \"%\";\r\n    },\r\n    payRateMinValue() {\r\n      let min = this.defaultLoan.payRateMin || 0;\r\n      return sub(mul(min, 100), 10) < 0\r\n        ? mul(min, 100)\r\n        : sub(mul(min, 100), 10);\r\n    },\r\n    payRateMaxValue() {\r\n      let max = this.defaultLoan.payRateMax || 0;\r\n      return add(mul(max, 100), 10);\r\n    },\r\n    payRateValue() {\r\n      let rate = this.defaultLoan.payRate || 0;\r\n      return mul(rate, 100);\r\n    },\r\n    payRateMarks() {\r\n      let min = this.defaultLoan.payRateMin || 0;\r\n      let max = this.defaultLoan.payRateMax || 0;\r\n      return [mul(min, 100), mul(max, 100)];\r\n    },\r\n    firstPayAmount() {\r\n      //首付金额\r\n      let rate = this.defaultLoan.payRate || 0;\r\n      let amount = Math.round(sub(this.orginalPirce,mul(this.totalPrice, sub(1,rate))));\r\n      return amount;\r\n    },\r\n    firstPayAmountText() {\r\n      let amount = this.firstPayAmount;\r\n      if (this.paytype == 3) {\r\n        amount = add(this.gpsAmount,add(amount, this.bailAmount));\r\n      }\r\n      amount = new Number(amount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    loanAmount() {\r\n      //贷款金额\r\n      let amount = 0;\r\n      let loan_type = this.defaultLoan.loan_type || 1;\r\n      let pay_rate = this.defaultLoan.payRate || 0;\r\n      let rate = this.defaultLoan.rate || 0;\r\n      let period = this.defaultLoan.period || 0;\r\n      if (loan_type == 2 || loan_type == 3) {\r\n        amount = sub(this.orginalPirce,this.firstPayAmount);//mul(this.totalPrice, sub(1, pay_rate));\r\n        let right = Math.pow(add(1, div(rate, 12)), period).toFixed(7);\r\n        let rightamount = div(this.loanEndAmount, right);\r\n        amount = sub(amount, rightamount);\r\n        amount = new Number(amount);\r\n        amount = amount.toFixed(2);\r\n      } else if (loan_type == 4) {\r\n        amount = sub(this.orginalPirce,this.firstPayAmount);//mul(this.totalPrice, sub(1, pay_rate));\r\n      } else {\r\n        amount = sub(this.orginalPirce,this.firstPayAmount);//sub(this.totalPrice, this.firstPayAmount);\r\n      }\r\n      return amount;\r\n    },\r\n    loanAmountText() {\r\n      //贷款金额格式化\r\n      let amount = new Number(this.loanAmount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    monthAmount() {\r\n      //月供金额\r\n      let rate = this.defaultLoan.rate || 0;\r\n      let loan_type = this.defaultLoan.loan_type || 1;\r\n      let amount = 0;\r\n      if (loan_type == 2 || loan_type == 3) {\r\n        amount = pmt(\r\n          div(rate, 12),\r\n          sub(this.defaultLoan.period, 1),\r\n          this.loanAmount\r\n        );\r\n      } else if (loan_type == 4) {\r\n        let pv1 = add(this.loanAmount, div(mul(this.loanAmount, rate), 12));\r\n        let pv2 = add(mul(pv1, div(rate, 12)), pv1);\r\n        let pv3 = mul(pv2, div(rate, 12));\r\n        let pv4 = add(pv3, pv2);\r\n        amount = pmt(div(rate, 12), sub(this.defaultLoan.period, 3), pv4);\r\n      } else {\r\n        amount = pmt(div(rate, 12), this.defaultLoan.period, this.loanAmount);\r\n      }\r\n   \r\n      amount = Math.floor(mul(amount, -1));\r\n      return amount;\r\n    },\r\n    monthAmountText() {\r\n      let amount = new Number(this.monthAmount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    endAmount() {\r\n      //首付尾款\r\n      let deposit_scale = this.configs.deposit_scale || 0.1,\r\n        productDeposit = this.refit.deposit || 0,\r\n        number = this.number || 1;\r\n      if (this.paytype == 2) {\r\n        let deposit =\r\n          productDeposit > 0\r\n            ? productDeposit\r\n            : mul(this.firstPayAmount, deposit_scale);\r\n        deposit = mul(deposit, number);\r\n        let amount = new Number(sub(this.firstPayAmount, deposit));\r\n        return \"¥ \" + format(Math.floor(amount));\r\n      } else if (this.paytype == 3) {\r\n        let deposit =\r\n          productDeposit > 0\r\n            ? productDeposit\r\n            : mul(this.firstPayAmount, deposit_scale);\r\n        deposit = mul(deposit, number);\r\n        let endPrice = sub(this.firstPayAmount, deposit);\r\n        let bailAmount = this.bailAmount || 0;\r\n        let gpsAmount = this.gpsAmount || 0;\r\n        let amount = new Number(add(gpsAmount,add(endPrice, bailAmount)));\r\n        return \"¥ \" + format(Math.floor(amount));\r\n      } else {\r\n        let deposit =\r\n          productDeposit > 0\r\n            ? productDeposit\r\n            : mul(this.totalPrice, deposit_scale);\r\n        deposit = mul(deposit, number);\r\n        let amount = new Number(sub(this.totalPrice, deposit));\r\n        return \"¥ \" + format(Math.floor(amount));\r\n      }\r\n    },\r\n    bailText() {\r\n      //保证金格式化\r\n      let bail_scale = this.configs.bail_scale || 0.05;\r\n      return mul(bail_scale, 100) + \"%\";\r\n    },\r\n    bailAmount() {\r\n      let bail_scale = this.configs.bail_scale || 0.05;\r\n      return mul(this.totalPrice, bail_scale);\r\n    },\r\n    bailAmountText() {\r\n      let amount = new Number(this.bailAmount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    paytypeText() {\r\n      let name;\r\n      this.configs.loan_types.forEach(loan => {\r\n        if (loan.id == this.paytype) {\r\n          name = loan.name;\r\n        }\r\n      });\r\n      return name;\r\n    },\r\n    step() {\r\n      let step = 1;\r\n      if (this.$route.path.indexOf(\"design\") >= 0) {\r\n        step = 2;\r\n      } else if (this.$route.path.indexOf(\"order\") >= 0) {\r\n        step = 3;\r\n      }\r\n      return step;\r\n    },\r\n    loanEndAmount() {\r\n      //贷款尾款\r\n      let amount = 0,\r\n        loan_type = this.defaultLoan.loan_type || 1,\r\n        rate = 0;\r\n      if (loan_type == 2) {\r\n        rate = 0.3;\r\n      } else if (loan_type == 3) {\r\n        rate = 0.2;\r\n      }\r\n      amount = mul(this.totalPrice, rate);\r\n      return amount;\r\n    },\r\n    loanEndAmountText() {\r\n      let amount = new Number(this.loanEndAmount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    taxAmount() {\r\n      let amount = 0, isTax = this.defaultLoan.isTax || false;\r\n      if (!isTax) {\r\n        return amount;\r\n      }\r\n      amount = mul(this.orginalPirce, 0.1);\r\n      amount = div(amount, 1.13);\r\n      return parseFloat(amount).toFixed(2);\r\n    },\r\n    taxAmountText() {\r\n      let amount = new Number(this.taxAmount);\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    },\r\n    gpsAmount(){\r\n      let amount = this.defaultLoan.gps || 0;\r\n      return new Number(amount);\r\n    },\r\n    gpsAmountText(){\r\n      let amount = typeof this.gpsAmount == 'string' ? new Number(this.gpsAmount) : this.gpsAmount;\r\n      return \"¥ \" + format(Math.floor(amount));\r\n    }\r\n  },\r\n  watch: {\r\n    showFooter: function() {\r\n      // this.$nextTick(() => {s\r\n      //   if (s) {\r\n      //     // this.$set(this, \"showFooterDisplay\", true);\r\n      //     // this.$refs.bottomsmfooter.classList.remove(\r\n      //     //   [\"fadeOutDown\"],\r\n      //     //   [\"d-none\"]\r\n      //     // );\r\n      //     // this.$refs.bottomsmfooter.classList.add(\"fadeInUp\");\r\n      //     setTimeout(() => {\r\n      //       // if (this.$refs.bottomsmfooter.style.cssText == \"display: none;\") {\r\n      //       //   this.$refs.bottomsmfooter.style = \"\";\r\n      //       // }\r\n      //       // this.$refs.bottomsmfooter.classList.remove(\"d-none\");\r\n      //     }, 600);\r\n      //   } else {\r\n      //     // this.$set(this, \"showFooterDisplay\", false);\r\n      //     // this.$refs.bottomsmfooter.classList.remove([\"fadeInUp\"], [\"d-none\"]);\r\n      //     // this.$refs.bottomsmfooter.classList.add(\"fadeOutDown\");\r\n      //     setTimeout(() => {\r\n      //       //   if (this.$refs.bottomsmfooter.style.cssText != \"display: none;\") {\r\n      //       //     this.$refs.bottomsmfooter.style = \"display: none;\";\r\n      //       //   }\r\n      //       // this.$refs.bottomsmfooter.classList.add(\"d-none\");\r\n      //     }, 500);\r\n      //   }\r\n      // });\r\n    },\r\n    product: function() {\r\n      this.defaultLoans = this.product[\"loans\"][this.paytype] || [];\r\n\r\n      for (let i = this.configs.loan_types.length - 1; i >= 0; i--) {\r\n        let loan_type = this.configs.loan_types[i], productLoans = this.product[\"loans\"][loan_type.id] || [];\r\n          if (loan_type.id > 1 && productLoans.length == 0) {\r\n              this.configs.loan_types.splice(i, 1);\r\n          }\r\n      }\r\n      let defaultloan = this.defaultLoans[0] || {};console.log(defaultloan);\r\n      if (defaultloan.id || !localStorage.has( \"hyundai-trucknbus-buycar-payconfig-\" + this.product.code)) {\r\n        this.$set(this.defaultLoan, \"id\", defaultloan.id);\r\n        this.$set(this.defaultLoan, \"loan_type\", defaultloan.loan_type);\r\n        this.$set(this.defaultLoan, \"tax\", defaultloan.tax);\r\n        if (this.product.is_ev > 0 || defaultloan.tax == 0) {\r\n          this.$set(this.defaultLoan, 'isTax', false);\r\n        }\r\n        if (this.paytype == 1 && this.defaultLoan.isTax) {\r\n          this.$set(this.defaultLoan, 'isTax', false);\r\n        }\r\n        this.$set(this.defaultLoan, 'gps', defaultloan.gps || 0);\r\n        localStorage.set(\r\n          \"hyundai-trucknbus-buycar-payconfig-\" + this.product.code,\r\n          {\r\n            paytype: this.paytype,\r\n            defaultLoan: this.defaultLoan\r\n          },\r\n          10080\r\n        );\r\n        this.$emit(\"changeFun\", {\r\n          action: \"updatePayType\",\r\n          value: { paytype: this.paytype, defaultLoan: this.defaultLoan }\r\n        });\r\n      }\r\n    },\r\n    paytype: function() {\r\n      this.defaultLoans = this.product[\"loans\"][this.paytype] || [];\r\n      if (this.defaultLoans.length > 0) {\r\n        const defaultitem = this.defaultLoans[0] || {};\r\n        const curPeriodIndex = defaultitem[\"periods\"].indexOf(\"36\") > -1 ? defaultitem[\"periods\"].indexOf(\"36\") : 0;\r\n        this.$set(this.defaultLoan, \"id\", defaultitem.id);\r\n        this.$set(this.defaultLoan, \"period\", defaultitem[\"periods\"][curPeriodIndex]?defaultitem[\"periods\"][curPeriodIndex]:defaultitem[\"periods\"][0]);\r\n        this.$set(this.defaultLoan, \"periods\", defaultitem[\"periods\"]);\r\n        this.$set(this.defaultLoan, \"rate\", defaultitem.rate);\r\n        this.$set(this.defaultLoan, \"payRateMin\", defaultitem[\"pay_rate\"][0] || 0);\r\n        this.$set(this.defaultLoan, \"payRateMax\",defaultitem[\"pay_rate\"][1] || 0);\r\n        this.$set(this.defaultLoan, \"payRate\", defaultitem[\"pay_rate\"][0] || 0);\r\n        this.$set(this.defaultLoan, \"loan_type\", defaultitem.loan_type);\r\n        this.$set(this.defaultLoan, \"tax\", defaultitem.tax);\r\n        if (this.product.is_ev == 0) {\r\n          this.$set(this.defaultLoan, \"isTax\", this.paytype == 1 ? false : (defaultitem.tax == 1 ? true:false));\r\n        }\r\n        this.$set(this.defaultLoan, \"additions\", defaultitem[\"additions\"]);\r\n        let defaultAddition = defaultitem[\"additions\"].length > 0 ? 0.25 : 0;//defaultitem[\"additions\"][0].id || \r\n        this.$set(this.defaultLoan, \"addition\", defaultAddition);\r\n        this.$set(this.defaultLoan, \"gps\", defaultitem.gps);\r\n      }else{\r\n        this.$set(this.defaultLoan, \"addition\", 0);\r\n        this.$set(this.defaultLoan, \"period\", 0);\r\n        this.$set(this.defaultLoan, \"tax\", 0);\r\n        if (this.product.is_ev == 0) {\r\n          this.$set(this.defaultLoan, \"isTax\", this.paytype == 1 ? false : (this.defaultLoan.tax == 1 ? true:false));\r\n        }\r\n        this.$set(this.defaultLoan, \"gps\", 0);\r\n      }\r\n\r\n      localStorage.set(\"hyundai-trucknbus-buycar-payconfig-\" + this.product.code,\r\n        {\r\n          paytype: this.paytype,\r\n          defaultLoan: this.defaultLoan\r\n        },\r\n        10080\r\n      );\r\n      this.$emit(\"changeFun\", {\r\n        action: \"updatePayType\",\r\n        value: { paytype: this.paytype, defaultLoan: this.defaultLoan }\r\n      });\r\n    },\r\n    \"defaultLoan.id\": function() {\r\n      if (this.defaultLoans.length > 0) {\r\n        this.defaultLoans.forEach(item => {\r\n          if (item.id == this.defaultLoan.id) {\r\n            let curPeriodIndex = item[\"periods\"].indexOf(\"36\") > -1 ? item[\"periods\"].indexOf(\"36\") : 0,\r\n            curPeriod = item['periods'][curPeriodIndex]?item['periods'][curPeriodIndex]:item[\"periods\"][0];\r\n            this.$set(this.defaultLoan, \"period\", curPeriod);\r\n            this.$set(this.defaultLoan, \"periods\", item[\"periods\"]);\r\n            this.$set(this.defaultLoan, \"rate\", item.rate);\r\n            this.$set(this.defaultLoan, \"payRateMin\", item[\"pay_rate\"][0] || 0);\r\n            this.$set(this.defaultLoan, \"payRateMax\", item[\"pay_rate\"][1] || 0);\r\n            this.$set(this.defaultLoan, \"payRate\", item[\"pay_rate\"][0] || 0);\r\n            this.$set(this.defaultLoan, \"loan_type\", item.loan_type);\r\n            this.$set(this.defaultLoan, \"additions\", item[\"additions\"]);\r\n            let defaultAddition = item[\"additions\"].length > 0 ? 0.25 : 0;\r\n            this.$set(this.defaultLoan, \"addition\", defaultAddition);\r\n            this.$set(this.defaultLoan, \"gps\", item.gps);\r\n          }\r\n        });\r\n\r\n        localStorage.set(\r\n          \"hyundai-trucknbus-buycar-payconfig-\" + this.product.code,\r\n          {\r\n            paytype: this.paytype,\r\n            defaultLoan: this.defaultLoan\r\n          },\r\n          10080\r\n        );\r\n        this.$emit(\"changeFun\", {\r\n          action: \"updatePayType\",\r\n          value: { paytype: this.paytype, defaultLoan: this.defaultLoan }\r\n        });\r\n      }\r\n    },\r\n    \"defaultLoan.period\": function() {\r\n      localStorage.set(\r\n        \"hyundai-trucknbus-buycar-payconfig-\" + this.product.code,\r\n        {\r\n          paytype: this.paytype,\r\n          defaultLoan: this.defaultLoan\r\n        },\r\n        10080\r\n      );\r\n      this.$emit(\"changeFun\", {\r\n        action: \"updatePayType\",\r\n        value: { paytype: this.paytype, defaultLoan: this.defaultLoan }\r\n      });\r\n    },\r\n    payRateValue: function() {\r\n      localStorage.set(\r\n        \"hyundai-trucknbus-buycar-payconfig-\" + this.product.code,\r\n        {\r\n          paytype: this.paytype,\r\n          defaultLoan: this.defaultLoan\r\n        },\r\n        10080\r\n      );\r\n      this.$emit(\"changeFun\", {\r\n        action: \"updatePayType\",\r\n        value: { paytype: this.paytype, defaultLoan: this.defaultLoan }\r\n      });\r\n    }\r\n  },\r\n  mounted() {\r\n    let that = this;\r\n    this.$root.$on(\"bv::modal::hide\", (bvEvent, modalId) => {\r\n      if (modalId == \"loanCalculator\") {\r\n        that.showCalculator = false;\r\n      }\r\n    });\r\n  },\r\n  methods: {\r\n    sliderDragging(value) {\r\n      let min = this.defaultLoan.payRateMin || 0;\r\n      let max = this.defaultLoan.payRateMax || 0;\r\n      min = mul(min, 100);\r\n      max = mul(max, 100);\r\n      if (value < min) {\r\n        this.$set(this.defaultLoan, \"payRate\", this.defaultLoan.payRateMin);\r\n        this.$refs[`slider${this.paytype}`].setValue(this.payRateValue);\r\n      } else if (value > max) {\r\n        this.$set(this.defaultLoan, \"payRate\", this.defaultLoan.payRateMax);\r\n        this.$refs[`slider${this.paytype}`].setValue(this.payRateValue);\r\n      } else {\r\n        this.$set(this.defaultLoan, \"payRate\", div(value, 100));\r\n      }\r\n    },\r\n    next() {\r\n      if (this.step == 1) {\r\n        if (this.attr.id == 0) {\r\n          return this.$dialog.error(\"请选择一个配置\");\r\n        }\r\n        localStorage.set(\r\n          \"hyundai-trucknbus-buycar-attr-\" + this.product.code,\r\n          {\r\n            attr: this.attr\r\n          },\r\n          10080\r\n        );\r\n        this.$router.push({\r\n          path: \"/product/\" + this.product.code + \"/design\"\r\n        });\r\n      } else if (this.step == 2) {\r\n        if (this.color.id == 0 || this.refit.id == 0) {\r\n          return this.$dialog.error(\"请选择改装与颜色\");\r\n        }\r\n        this.$emit(\"changeFun\", {\r\n          action: \"nextDesignSize\",\r\n          value: { paytype: this.paytype, defaultLoan: this.defaultLoan }\r\n        });\r\n      }\r\n    },\r\n    prev() {\r\n      if (this.step == 2) {\r\n        if (this.isNextStep) {\r\n          this.$emit(\"changeFun\", {\r\n            action: \"prevDesignSize\",\r\n            value: { paytype: this.paytype, defaultLoan: this.defaultLoan }\r\n          });\r\n        } else {\r\n          this.$router.replace({ path: \"/product/\" + this.product.code });\r\n        }\r\n      }\r\n    }\r\n  }\r\n};\r\n</script>\r\n<style scoped>\r\n.custom-step {\r\n  width: 100%;\r\n  height: 100%;\r\n  border-radius: 50%;\r\n  box-shadow: 0 0 0 3px #ccc;\r\n  background-color: #fff;\r\n}\r\n.custom-step.active {\r\n  box-shadow: 0 0 0 3px #35719d;\r\n  background-color: #35719d;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductFooter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProductFooter.vue?vue&type=template&id=7374220e&scoped=true&\"\nimport script from \"./ProductFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductFooter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProductFooter.vue?vue&type=style&index=0&id=7374220e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"7374220e\",\n  null\n  \n)\n\nexport default component.exports","<template>\r\n<div class=\"product-detail product-design\" ref=\"container\" :class=\"'paytype-' + paytype + ' loantype-' + loan_type+' refit-'+refit.id\">\r\n  <ProductHeader :product=\"info\" :isNextStep=\"isNextStep\"></ProductHeader>\r\n  <div class=\"container-fluid h-100\">\r\n    <div class=\"row justify-content-center h-100\">\r\n      <div class=\"col-xl-9 col-lg-8 col-sm-12 h-100 padding left-wrap\">\r\n        <div class=\"image-box d-flex justify-content-center align-items-center\">\r\n          <img v-lazy=\"color.image\" :alt=\"info.name\" class=\"img-fluid\" />\r\n        </div>\r\n      </div>\r\n      <div class=\"col-xl-3 col-lg-4 col-sm-12 right-info h-100\">\r\n        <h1 class=\"font-20\">{{ info.name }}</h1>\r\n        <div class=\"line w-100 name\"></div>\r\n        <div class=\"introduction-wrap\" v-show=\"isNextStep\">\r\n          <div class=\"title font-14\">{{ refit.introduction_title }}</div>\r\n          <div class=\"content font-14\" v-html=\"refit.introduction\"></div>\r\n        </div>\r\n        <div class=\"refits-box\" v-show=\"(isNextStep && sizes.length > 0) || (!isNextStep && info.refits.length > 0)\">\r\n          <h3 class=\"font-17\" v-text=\"isNextStep ? '选择'+info.size_name[refit.id]||'' : '选择'+info.refit_name\"></h3>\r\n          <ul class=\"row\" :class=\"!isNextStep ? 'refits' : 'sizes'\">\r\n            <template v-if=\"!isNextStep\">\r\n              <li class=\"item font-15 w-100 col-6\" v-for=\"(refitItem, p) in info.refits\" :key=\"p\" :class=\"refit.id == refitItem.id ? 'active' : ''\" @click=\"selectRefit(refitItem)\">\r\n                <div class=\"image acea-row row-center-wrapper d-flex\">\r\n                  <img v-lazy=\"refitItem.thumb\" />\r\n                </div>\r\n                <p class=\"font-15\">{{ refitItem.name }}</p>\r\n                <p class=\"price font-12\" v-if=\"refitItem.tip == 2\"><b>该车型已售罄</b></p>\r\n                <p class=\"price font-12\" v-else-if=\"refitItem.tip == 3\"><b>该车型未上线</b></p>\r\n                <p class=\"price font-12\" v-else-if=\"refitItem.is_buy == 0\"><b>配置升级中</b></p>\r\n                <p class=\"price\" v-else>\r\n                  <b>{{refitItem.price_text}}</b>\r\n                </p>\r\n                <div class=\"tip\" :class=\"'tip-' + refitItem.tip\" v-if=\"refitItem.tip == 1\">\r\n                  <p>活动</p>\r\n                </div>\r\n                <div class=\"tip\" :class=\"'tip-' + refitItem.tip\" v-else-if=\"refitItem.tip == 2\">\r\n                  <p>售罄</p>\r\n                </div>\r\n                <div class=\"tip\" :class=\"'tip-' + refitItem.tip\" v-else-if=\"refitItem.tip == 3\">\r\n                  <p>未上线</p>\r\n                </div>\r\n              </li>\r\n            </template>\r\n            <template v-if=\"isNextStep\">\r\n              <li class=\"item font-15 w-100 col-12\" v-for=\"(sizeItem, s) in sizes\" :key=\"s\" :class=\"size.id == sizeItem.id ? 'active' : ''\" @click=\"selectSize(sizeItem)\">\r\n                <div class=\"btn font-15 btn-block btn-radius\">\r\n                  {{ sizeItem.name }}\r\n                </div>\r\n              </li>\r\n            </template>\r\n          </ul>\r\n          <div class=\"refit-price font-14 d-none\" v-if=\"!isNextStep\" v-show=\"refit.price > 0\">\r\n            {{ refit.name }} <b>{{ refit.price_text }}</b>\r\n          </div>\r\n          <div class=\"refit-price font-14 text-center\" v-if=\"isNextStep\" v-show=\"size.price > 0\">\r\n            <b>{{ size.price_text }} </b>\r\n          </div>\r\n        </div>\r\n        <div class=\"line w-100 center\" v-show=\"(isNextStep && sizes.length > 0) || (!isNextStep && info.refits.length > 0)\"></div>\r\n        <div class=\"discount font-15 text-danger\" v-if=\"info.discount > 0 && !isNextStep\">购车优惠:{{info.discount}}元({{info.discount_desc1}})</div>\r\n        <div class=\"refits-box price-box\" v-show=\"(isNextStep && materials.length > 0) || (!isNextStep && colors.length > 0)\">\r\n          <h3 class=\"font-17\" v-text=\"isNextStep ? '选择'+info.material_name : '选择'+info.color_name\"></h3>\r\n          <ul class=\"row\" :class=\"!isNextStep ? 'refits' : 'sizes'\">\r\n            <template v-if=\"!isNextStep\">\r\n              <li class=\"item font-15 w-100 col-xl-4 col-lg-6 col-sm-4 col-4\" v-for=\"(colorItem, c) in colors\" :key=\"c\" :class=\"color.id == colorItem.id ? 'active' : ''\" @click=\"selectColor(colorItem)\">\r\n                <div class=\"image\">\r\n                  <img v-lazy=\"colorItem.thumb\" />\r\n                </div>\r\n                <p class=\"font-15\">{{ colorItem.name }}</p>\r\n                <p class=\"price\" v-show=\"color.id == colorItem.id && color.price > 0\">\r\n                  <b>{{colorItem.price_text}}</b>\r\n                </p>\r\n              </li>\r\n              <li class=\"item font-15 w-100 col-xl-4 col-lg-6 col-sm-4 col-4 d-none\" @click=\"getArticle(10)\">\r\n                <div class=\"image\">\r\n                  <img src=\"@assets/images/custom-color.png\" />\r\n                </div>\r\n                <p class=\"font-15\">定制颜色</p>\r\n              </li>\r\n            </template>\r\n            <template v-if=\"isNextStep\">\r\n              <li class=\"item font-15 w-100 col-12\" v-for=\"(materialItem, s) in materials\" :key=\"s\" :class=\"material.id == materialItem.id ? 'active' : ''\" @click=\"selectMaterial(materialItem)\">\r\n                <div class=\"btn font-15 btn-block btn-radius\">\r\n                  {{ materialItem.name }}\r\n                </div>\r\n              </li>\r\n            </template>\r\n          </ul>\r\n          <div class=\"refit-price font-14 d-none\" v-if=\"!isNextStep\" v-show=\"color.price > 0\">\r\n            {{ color.name }} <b>{{ color.price_text }}</b>\r\n          </div>\r\n          <div class=\"refit-price font-14 text-center\" v-if=\"isNextStep\" v-show=\"material.price > 0\">\r\n            <b>{{ material.price_text }} </b>\r\n          </div>\r\n        </div>\r\n        <div class=\"line w-100 center\" v-show=\"(!isNextStep && info.wheels.length > 0)\"></div>\r\n        <div class=\"refits-box price-box\" v-show=\"(!isNextStep && info.wheels.length > 0)\">\r\n          <h3 class=\"font-17\">选择{{info.wheel_name}}</h3>\r\n          <ul class=\"row sizes\">\r\n              <li class=\"item font-15 w-100 col-12\" v-for=\"(wheelItem, w) in info.wheels\" :key=\"w\" :class=\"wheel.id == wheelItem.id ? 'active' : ''\" @click=\"selectWheel(wheelItem)\">\r\n                <div class=\"btn font-15 btn-block btn-radius\">\r\n                  {{ wheelItem.name }}\r\n                </div>\r\n              </li>\r\n          </ul>\r\n          <div class=\"refit-price font-14 text-center\" v-show=\"wheel.price > 0\">\r\n            <b>{{ wheel.price_text }}</b>\r\n          </div>\r\n        </div>\r\n        <div class=\"line w-100 center\" v-show=\"(!isNextStep && info.configs.length > 0)\"></div>\r\n        <div class=\"refits-box price-box\" v-show=\"(!isNextStep && info.configs.length > 0)\">\r\n          <h3 class=\"font-17\">选择{{info.config_name}}</h3>\r\n          <ul class=\"row sizes\">\r\n              <li class=\"item font-15 w-100 col-12\" v-for=\"(configItem, c) in info.configs\" :key=\"c\" :class=\"config.id == configItem.id ? 'active' : ''\" @click=\"selectConfig(configItem)\">\r\n                <div class=\"btn font-15 btn-block btn-radius\">\r\n                  {{ configItem.name }}\r\n                </div>\r\n              </li>\r\n          </ul>\r\n          <div class=\"refit-price font-14 text-center\" v-show=\"config.price != 0\">\r\n            <b>{{ config.price_text }}</b>\r\n          </div>\r\n        </div>\r\n\r\n        <div class=\"line w-100 center\" v-show=\"(isNextStep && materials.length > 0) || (!isNextStep && colors.length > 0)\"></div>\r\n        <div class=\"spinbutton-box\" v-if=\"isNextStep\">\r\n          <h3 class=\"font-17\">选择数量</h3>\r\n          <div class=\"row\">\r\n            <Stepper v-model.number=\"number\" :integer=\"true\" min=\"1\" max=\"100\" button-size=\"36px\" theme=\"hyundai\" class=\"col-xl-6 col-lg-6 col-12\"></Stepper>\r\n          </div>\r\n        </div>\r\n        <div class=\"line design w-100 d-none\"></div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n  <ProductFooter :product=\"info\" :attr=\"attr\" :refit=\"refit\" :color=\"color\" :size=\"size\" :material=\"material\" :number=\"number\" :isNextStep=\"isNextStep\" :showFooter=\"showFooter\" v-on:changeFun=\"changeFun\" :wheel=\"wheel\" :config=\"config\"></ProductFooter>\r\n  <b-modal v-model=\"showArticle\" :title=\"article.title\" hide-footer :header-bg-variant=\"'info'\" :header-text-variant=\"'light'\" centered :modal-class=\"'common-modal reserve'\">\r\n    <div class=\"d-block\">\r\n      <div class=\"content\" v-html=\"article.content\"></div>\r\n    </div>\r\n  </b-modal>\r\n</div>\r\n</template>\r\n\r\n<script>\r\nimport {getProductDetail} from \"@api/product\";\r\nimport ProductHeader from \"@components/ProductHeader\";\r\nimport ProductFooter from \"@components/ProductFooter\";\r\nimport localStorage from \"@utils/store/localStorage\";\r\nimport cookie from \"@utils/store/cookie\";\r\nimport {getArticleSingle} from \"@api/public\";\r\nimport {Stepper} from \"vant\";\r\nexport default {\r\n  name: \"ProductDesign\",\r\n  data() {\r\n    let localattr,localrefit,localcolor,localsize,localmaterial,localpaytype,localDefaultLoan,code,localwheel,localconfig;\r\n    code = this.$route.params.code || \"\";\r\n    if (localStorage.has(\"hyundai-trucknbus-buycar-attr-\" + code)) {\r\n      let config = localStorage.get(\"hyundai-trucknbus-buycar-attr-\" + code);\r\n      if (config) {\r\n        localattr = config.attr || {\r\n          id: 0\r\n        }; //配置\r\n      }\r\n    }\r\n    if (localStorage.has(\"hyundai-trucknbus-buycar-refit-color-\" + code)) {\r\n      let config = localStorage.get(\"hyundai-trucknbus-buycar-refit-color-\" + code);\r\n      if (config) {\r\n        localrefit = config.refit || {id: 0}; //改装和颜色\r\n        localcolor = config.color || {id: 0};\r\n        localmaterial = config.material || {id: 0};\r\n        localsize = config.size || {id: 0};\r\n      }\r\n    }\r\n    if (localStorage.has(\"hyundai-trucknbus-buycar-payconfig-\" + code)) {\r\n      let config = localStorage.get(\"hyundai-trucknbus-buycar-payconfig-\" + code);\r\n      if (config) {\r\n        localpaytype = config.paytype || {\r\n          id: 0\r\n        };\r\n        localDefaultLoan = config.defaultLoan || {\r\n          id: 0\r\n        };\r\n        if (!localDefaultLoan.additions) {\r\n          localDefaultLoan.additions = [];\r\n          localDefaultLoan.addition = 0;\r\n        }\r\n      }\r\n    }\r\n    if (localStorage.has(\"hyundai-trucknbus-buycar-wheel-config-\"+code)) {\r\n      let config = localStorage.get(\"hyundai-trucknbus-buycar-wheel-config-\" + code);\r\n      if (config) {\r\n          localwheel = config.wheel || { id: 0};\r\n          localconfig = config.config || { id : 0}\r\n      }\r\n    }\r\n    return {\r\n      info: {\r\n        id: 0,\r\n        refits: [],\r\n        wheels:[],\r\n        configs:[]\r\n      },\r\n      attr: localattr || {\r\n        id: 0,\r\n        deploy: \"\",\r\n        parameter: \"\",\r\n        default: 0,\r\n        thumb: \"\",\r\n        price: 0\r\n      },\r\n      paytype: localpaytype || 1,\r\n      loan_type: localDefaultLoan ? localDefaultLoan.loan_type : 1,\r\n      refit: localrefit || {\r\n        id: 0,\r\n        default: 1,\r\n        thumb: \"\",\r\n        price: 0,\r\n        price_text: \"\",\r\n        introduction: \"\",\r\n        introduction_title: \"\",\r\n        is_buy:0\r\n      },\r\n      color: localcolor || {\r\n        id: 0,\r\n        rid: 0,\r\n        default: 1,\r\n        thumb: \"\",\r\n        price: 0,\r\n        price_text: \"\"\r\n      },\r\n      size: localsize || {\r\n        id: 0,\r\n        rid: 0,\r\n        default: 1,\r\n        thumb: \"\",\r\n        price: 0,\r\n        price_text: \"\"\r\n      },\r\n      material: localmaterial || {\r\n        id: 0,\r\n        sid: 0,\r\n        default: 1,\r\n        thumb: \"\",\r\n        price: 0,\r\n        price_text: \"\"\r\n      },\r\n      wheel: localwheel || {\r\n        id: 0,\r\n        default: 1,\r\n        thumb: \"\",\r\n        price: 0,\r\n        price_text: \"\",\r\n      },\r\n      config: localconfig || {\r\n        id: 0,\r\n        default: 1,\r\n        thumb: \"\",\r\n        price: 0,\r\n        price_text: \"\",\r\n      },\r\n      colors: [],\r\n      sizes: [],\r\n      materials: [],\r\n      isShowVr: false,\r\n      showInsideVr: false,\r\n      isNextStep: false,\r\n      number: 1,\r\n      code: \"\",\r\n      showFooter: false,\r\n      showArticle: false,\r\n      article: {\r\n        title: \"\",\r\n        content: \"\"\r\n      }\r\n    };\r\n  },\r\n  components: {\r\n    ProductHeader,\r\n    ProductFooter,\r\n    Stepper\r\n  },\r\n  watch: {\r\n    $route(n) {\r\n      if (n.name === \"ProductDesign\") {\r\n        this.getProduct();\r\n        this.isNextStep = false;\r\n      }\r\n    },\r\n    number: function () {\r\n      localStorage.set(\r\n        \"hyundai-trucknbus-buycar-refit-color-\" + this.info.code, {\r\n          refit: this.refit,\r\n          color: this.color,\r\n          material: this.material,\r\n          size: this.size,\r\n          number: this.number\r\n        },\r\n        10080\r\n      );\r\n    }\r\n  },\r\n  mounted() {\r\n    let that = this;\r\n    that.code = that.$route.params.code || \"\";\r\n    this.getProduct();\r\n    this.$scroll(\r\n      this.$refs.container,\r\n      () => {\r\n        this.showFooter = true;\r\n      },\r\n      () => {\r\n        this.showFooter = false;\r\n      }\r\n    );\r\n    if (!cookie.has(\"hyundai_version\")) {\r\n      localStorage.remove(\"hyundai-trucknbus-buycar-attr-\" + this.code);\r\n      localStorage.remove(\"hyundai-trucknbus-buycar-refit-color-\" + this.code);\r\n      localStorage.remove(\"hyundai-trucknbus-buycar-payconfig-\" + this.code);\r\n      localStorage.remove(\"hyundai-trucknbus-buycar-wheel-config-\" + this.code);\r\n      cookie.set(\"hyundai_version\", this.$config.version);\r\n    }\r\n    if (cookie.get(\"hyundai_version\") != this.$config.version) {\r\n      localStorage.remove(\"hyundai-trucknbus-buycar-attr-\" + this.code);\r\n      localStorage.remove(\"hyundai-trucknbus-buycar-refit-color-\" + this.code);\r\n      localStorage.remove(\"hyundai-trucknbus-buycar-payconfig-\" + this.code);\r\n      localStorage.remove(\"hyundai-trucknbus-buycar-wheel-config-\" + this.code);\r\n      cookie.set(\"hyundai_version\", this.$config.version);\r\n    }\r\n  },\r\n  methods: {\r\n    getProduct() {\r\n      let that = this;\r\n      getProductDetail(that.code, {\r\n        step: 2\r\n      }).then(\r\n        res => {\r\n          that.info = res.data;\r\n          that.getAttr();\r\n          that.getWheel();\r\n          that.getConfig();\r\n          that.$store.commit(\"UPDATE_TITLE\", \"选择配置 - \" + res.data.name);\r\n        },\r\n        error => {\r\n          that.$dialog.message(error.msg);\r\n          that.$route.go(-1);\r\n        }\r\n      );\r\n    },\r\n    getAttr() {\r\n      if (this.info.refits) {\r\n        for (let i = 0; i < this.info.refits.length; i++) {\r\n          const thisattr = this.info.refits[i];\r\n          if (thisattr.default == 1 && this.refit.id == 0 && thisattr.is_buy == 1) {\r\n            this.refit = thisattr;\r\n          } else if (this.refit.id == thisattr.id && thisattr.is_buy == 1) {\r\n            this.refit = thisattr;\r\n          }else if(thisattr.is_buy == 0 && this.refit.is_buy == 0 || (this.refit.id == thisattr.id && thisattr.is_buy == 0)){\r\n            this.refit = {\r\n              id: 0,\r\n              default: 1,\r\n              thumb: \"\",\r\n              price: 0,\r\n              price_text: \"\",\r\n              introduction: \"\",\r\n              introduction_title: \"\",\r\n              is_buy:0\r\n            }\r\n            this.color.image = this.info.image || '';\r\n          }\r\n        }\r\n      }\r\n      localStorage.set(\r\n          \"hyundai-trucknbus-buycar-refit-color-\" + this.info.code, {\r\n            refit: this.refit\r\n          },\r\n          10080\r\n        );\r\n      this.getColors();\r\n      this.getColor();\r\n    },\r\n    getColors() {\r\n      this.colors = [];\r\n      if (this.info.colors) {\r\n        for (let i = 0; i < this.info.colors.length; i++) {\r\n          const thiscolor = this.info.colors[i];\r\n          if (thiscolor.rid == this.refit.id) {\r\n            this.colors.push(thiscolor);\r\n          }\r\n        }\r\n      }\r\n    },\r\n    getColor() {\r\n      if (this.colors) {\r\n        for (let i = 0; i < this.colors.length; i++) {\r\n          const thiscolor = this.colors[i];\r\n          if (thiscolor.default == 1 && this.color.id == 0) {\r\n            this.color = thiscolor;\r\n          } else if (this.color.id == thiscolor.id) {\r\n            this.color = thiscolor;\r\n          }\r\n        }\r\n      }\r\n    },\r\n    getSizes() {\r\n      //根据改装选择尺寸\r\n      this.sizes = [];\r\n      if (this.info.sizes) {\r\n        for (let i = 0; i < this.info.sizes.length; i++) {\r\n          const thissize = this.info.sizes[i];\r\n          if (thissize.rid == this.refit.id) {\r\n            this.sizes.push(thissize);\r\n          }\r\n        }\r\n      }\r\n    },\r\n    getSize() {\r\n      if (this.sizes) {\r\n        for (let i = 0; i < this.sizes.length; i++) {\r\n          const thissize = this.sizes[i];\r\n          if (thissize.default == 1 && this.size.id == 0) {\r\n            this.size = thissize;\r\n          } else if (this.size.id == thissize.id) {\r\n            this.size = thissize;\r\n          }\r\n        }\r\n      }\r\n      this.getMaterials();\r\n      this.getMaterial();\r\n    },\r\n    getMaterials() {\r\n      //根据尺寸选择材质\r\n      this.materials = [];\r\n      if (this.info.materials) {\r\n        for (let i = 0; i < this.info.materials.length; i++) {\r\n          const thismaterial = this.info.materials[i];\r\n          if (thismaterial.sid == this.refit.id) {\r\n            this.materials.push(thismaterial);\r\n          }\r\n        }\r\n      }\r\n    },\r\n    getMaterial() {\r\n      if (this.materials) {\r\n        for (let i = 0; i < this.materials.length; i++) {\r\n          const thismaterial = this.materials[i];\r\n          if (thismaterial.default == 1 && this.material.id == 0) {\r\n            this.material = thismaterial;\r\n          } else if (this.material.id == thismaterial.id) {\r\n            this.material = thismaterial;\r\n          }\r\n        }\r\n      }\r\n    },\r\n    selectRefit(param) {\r\n      if (param.is_buy == 0) {\r\n        // this.$bvModal.msgBoxOk(\"该改装车型暂未上线,尽请期待\", {\r\n        //   centered: true,\r\n        //   okVariant: \"info\"\r\n        // });\r\n      } else {\r\n        this.refit = param;\r\n        this.getColors();\r\n        this.color = {\r\n          id: 0,\r\n          rid: 0,\r\n          default: 0,\r\n          thumb: \"\",\r\n          price: 0,\r\n          price_text: \"\"\r\n        };\r\n        this.getColor();\r\n        localStorage.set(\r\n          \"hyundai-trucknbus-buycar-refit-color-\" + this.info.code, {\r\n            refit: this.refit,\r\n            color: this.color\r\n          },\r\n          10080\r\n        );\r\n      }\r\n    },\r\n    selectColor(param) {\r\n      this.color = param;\r\n      localStorage.set(\r\n        \"hyundai-trucknbus-buycar-refit-color-\" + this.info.code, {\r\n          refit: this.refit,\r\n          color: this.color,\r\n          material: this.material,\r\n          size: this.size,\r\n          number: this.number\r\n        },\r\n        10080\r\n      );\r\n      window.scrollTo(0, 0);\r\n    },\r\n    selectSize(param) {\r\n      this.size = param;\r\n      // this.getMaterials();\r\n      // this.material = {\r\n      //   id: 0,\r\n      //   sid: 0,\r\n      //   default: 0,\r\n      //   thumb: \"\",\r\n      //   price: 0,\r\n      //   price_text: \"\"\r\n      // };\r\n      // this.getMaterial();\r\n      localStorage.set(\r\n        \"hyundai-trucknbus-buycar-refit-color-\" + this.info.code, {\r\n          refit: this.refit,\r\n          color: this.color,\r\n          material: this.material,\r\n          size: this.size,\r\n          number: this.number\r\n        },\r\n        10080\r\n      );\r\n    },\r\n    selectMaterial(param) {\r\n      this.material = param;\r\n      localStorage.set(\r\n        \"hyundai-trucknbus-buycar-refit-color-\" + this.info.code, {\r\n          refit: this.refit,\r\n          color: this.color,\r\n          material: this.material,\r\n          size: this.size,\r\n          number: this.number\r\n        },\r\n        10080\r\n      );\r\n    },\r\n    changeFun: function (opt) {\r\n      if (typeof opt !== \"object\") opt = {};\r\n      let action = opt.action || \"\";\r\n      let value = opt.value === undefined ? \"\" : opt.value;\r\n      this[action] && this[action](value);\r\n    },\r\n    updatePayType: function (value) {\r\n      if (value.paytype) {\r\n        this.paytype = value.paytype;\r\n      }\r\n      if (value.defaultLoan) {\r\n        this.loan_type = value.defaultLoan.loan_type || 1;\r\n      }\r\n    },\r\n    nextDesignSize: function () {\r\n      if (this.isNextStep) {\r\n        if (this.refit.id == 0 || this.color.id == 0) {\r\n          return this.$dialog.error(\"请选择完整改装、颜色\"); //、尺寸、材质||this.size.id == 0 ||this.material.id == 0\r\n        }\r\n        if (this.size.id == 0) {\r\n          this.size = {\r\n            id: 0,\r\n            rid: 0,\r\n            default: 1,\r\n            thumb: \"\",\r\n            price: 0,\r\n            price_text: \"\"\r\n          };\r\n        }\r\n        if (this.material.id == 0) {\r\n          this.material = {\r\n            id: 0,\r\n            sid: 0,\r\n            default: 1,\r\n            thumb: \"\",\r\n            price: 0,\r\n            price_text: \"\"\r\n          };\r\n        }\r\n        localStorage.set(\r\n          \"hyundai-trucknbus-buycar-refit-color-\" + this.info.code, {\r\n            refit: this.refit,\r\n            color: this.color,\r\n            material: this.material,\r\n            size: this.size,\r\n            number: this.number\r\n          },\r\n          10080\r\n        );\r\n        this.$router.push({\r\n          path: \"/product/\" + this.info.code + \"/order\"\r\n        });\r\n      } else {\r\n        this.isNextStep = true;\r\n        this.getSizes();\r\n        this.size = {\r\n          id: 0,\r\n          rid: 0,\r\n          default: 0,\r\n          thumb: \"\",\r\n          price: 0,\r\n          price_text: \"\"\r\n        };\r\n        this.material = {\r\n          id: 0,\r\n          sid: 0,\r\n          default: 0,\r\n          thumb: \"\",\r\n          price: 0,\r\n          price_text: \"\"\r\n        };\r\n        this.getSize();\r\n        window.scrollTo(0, 0);\r\n      }\r\n    },\r\n    prevDesignSize: function () {\r\n      this.isNextStep = false;\r\n      this.size = {\r\n        id: 0,\r\n        rid: 0,\r\n        default: 0,\r\n        thumb: \"\",\r\n        price: 0,\r\n        price_text: \"\"\r\n      };\r\n      this.material = {\r\n        id: 0,\r\n        sid: 0,\r\n        default: 0,\r\n        thumb: \"\",\r\n        price: 0,\r\n        price_text: \"\"\r\n      };\r\n      localStorage.set(\r\n        \"hyundai-trucknbus-buycar-refit-color-\" + this.info.code, {\r\n          refit: this.refit,\r\n          color: this.color,\r\n          material: this.material,\r\n          size: this.size,\r\n          number: this.number\r\n        },\r\n        10080\r\n      );\r\n    },\r\n    getArticle(id) {\r\n      let that = this;\r\n      getArticleSingle(id)\r\n        .then(res => {\r\n          that.article = res.data || {};\r\n          that.showArticle = true;\r\n        })\r\n        .catch(res => {\r\n          that.$dialog.error(res.msg);\r\n        });\r\n    },\r\n    getWheel() {\r\n      if (this.info.wheels) {\r\n        for (let i = 0; i < this.info.wheels.length; i++) {\r\n          const thisattr = this.info.wheels[i];\r\n          if (thisattr.default == 1 && this.wheel.id == 0) {\r\n            this.wheel = thisattr;\r\n          } else if (this.wheel.id == thisattr.id) {\r\n            this.wheel = thisattr;\r\n          }\r\n        }\r\n      }\r\n    },\r\n    getConfig() {\r\n      if (this.info.configs) {\r\n        for (let i = 0; i < this.info.configs.length; i++) {\r\n          const thisattr = this.info.configs[i];\r\n          if (thisattr.default == 1 && this.config.id == 0) {\r\n            this.config = thisattr;\r\n          } else if (this.config.id == thisattr.id) {\r\n            this.config = thisattr;\r\n          }\r\n        }\r\n      }\r\n    },\r\n    selectWheel(param) {\r\n      this.wheel = param;\r\n      localStorage.set(\"hyundai-trucknbus-buycar-wheel-config-\" + this.info.code, {\r\n          wheel: this.wheel,\r\n          config: this.config\r\n        }, 10080);\r\n    },\r\n    selectConfig(param) {\r\n      this.config = param;\r\n      localStorage.set(\"hyundai-trucknbus-buycar-wheel-config-\" + this.info.code, {\r\n          wheel: this.wheel,\r\n          config: this.config\r\n        }, 10080);\r\n    }\r\n  }\r\n};\r\n</script>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Design.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Design.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Design.vue?vue&type=template&id=5accc4f8&\"\nimport script from \"./Design.vue?vue&type=script&lang=js&\"\nexport * from \"./Design.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"h5/img/custom-color.bfccaeab.png\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoanCalculator.vue?vue&type=style&index=0&id=93620ab2&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoanCalculator.vue?vue&type=style&index=0&id=93620ab2&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductFooter.vue?vue&type=style&index=0&id=7374220e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProductFooter.vue?vue&type=style&index=0&id=7374220e&scoped=true&lang=css&\""],"sourceRoot":""}