{"version":3,"sources":["webpack:///./src/views/Planning/BottomUpSimulation.vue?c024","webpack:///./src/views/Planning/BottomUpSimulation.vue","webpack:///./src/views/Planning/BottomUpSimulation.vue?c06c","webpack:///./src/views/Planning/BottomUpSimulation.vue?449f"],"names":["_withScopeId","n","_hoisted_1","id","_hoisted_2","class","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","href","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","key","_hoisted_18","_hoisted_19","style","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_hoisted_51","render","_ctx","_cache","$props","$setup","$data","$options","_component_Breadcrumb","_component_cascade_selector","_component_a_badge","_component_a_checkbox","_component_a_button","_component_a_select_option","_component_a_select","_component_a_input","_component_a_table","_component_SpreadJsDialog","dataSource","onUpdate","handleUpdate","years","year","currentYear","onClick","$event","handleChooseYear","dot","buSaveStatus","default","_","checked","expandAllStatus","disabled","tableData","length","type","handleSaveOrSubmit","make","makeIndex","planningId","value","viewKufriVersion","onChange","kufri","handleKufriChange","kufirVersions","version","vlaue","handleTakeGuideline","totalExpand","seasonTotal","item","title","number2Fixed","total","releasePoint","buPoint","months","totalVOList","bu","season","month","scroll","x","columns","tableColumns","detailVOList","pagination","rowKey","expandedRowKeys","expandedRowKeysList","onExpand","expand","record","handleExpand","rowClassName","index","brand","typeClass","scenarioName","nstGroup","seasons","name","slot","fn","actualStatus","handleForecast","text","editing","lockStatus","edited","rtVolume","handleClickCell","onFocus","handleFocus","onBlur","handleBlur","onInput","replace","spreadVisible","spreadData","actuals","makeName","currentMakeName","handleSpreadJsUpdate","onClose","handleCloseSpreadJsDialog","field","generateKufirVersions","begin","end","versions","endMonth","isAfter","push","format","add","seasonConPoint2Fixed","toFixed","setId","data","childrenKey","forEach","components","CascadeSelector","SpreadJsDialog","setup","route","store","scenarioId","query","submitStatus","topData","resMakeList","children","dataIndex","width","customRender","customHeaderCell","color","customCell","number","slots","fixed","map","prePoint","val","initMonthData","obj","monthEn","budget","controllingPoint","dataInfoId","finalPoint","kufriVersion","filter","planningTypeId","rtLlp","submitPoint","wsLlp","wsVolume","methodFormatList","list","monthEns","includes","child","formatBrand","mappingName","split","formatBu","formatTypeClass","methodFormatSaveData","result","monthNames","detail","condition","object","controllingSavedPoint","controllingReleasedPoint","buSavedPoint","buSubmitPoint","nstGroupName","methodChangeActual","nowYear","Date","getFullYear","kufriMonth","substring","methodGetList","postData","scenrioId","responseList","some","startKufriVersion","currentKufriVersion","ele","document","querySelector","querySelectorAll","addEventListener","e","left","target","scrollLeft","initYears","params","buId","responseYears","bottomActive","response","releaseStatus","message","error","confirm","content","okText","onOk","row","cancelText","editDisabled","focus","console","log","Number","empty","bool","every","budgetObject","expanded","removeIndex","indexOf","splice","commit","handleExpandAll","infoSaveDTOList","makeItem","resultList","controllingSaveStatus","infoList","success","currentMake","handleBatchInput","dpreadJsData","__exports__"],"mappings":"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","file":"js/chunk-ddb1aafa.e4d66b55.js","sourcesContent":["import { resolveComponent as _resolveComponent, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withCtx as _withCtx, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, createBlock as _createBlock, createCommentVNode as _createCommentVNode, vShow as _vShow, withDirectives as _withDirectives, createSlots as _createSlots, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-cd1e0900\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"guideline\" }\nconst _hoisted_2 = { class: \"action\" }\nconst _hoisted_3 = { class: \"row\" }\nconst _hoisted_4 = { class: \"years\" }\nconst _hoisted_5 = [\"onClick\"]\nconst _hoisted_6 = { href: \"#\" }\nconst _hoisted_7 = { class: \"btns\" }\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\" Expand to Model \")\nconst _hoisted_9 = /*#__PURE__*/_createTextVNode(\"Save\")\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\" Submit \")\nconst _hoisted_11 = { class: \"content\" }\nconst _hoisted_12 = { class: \"box\" }\nconst _hoisted_13 = { class: \"table\" }\nconst _hoisted_14 = { class: \"kufri\" }\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label\" }, \"Kufri\", -1))\nconst _hoisted_16 = /*#__PURE__*/_createTextVNode(\"Take Guideline\")\nconst _hoisted_17 = {\n key: 0,\n class: \"total\"\n}\nconst _hoisted_18 = { class: \"total-header\" }\nconst _hoisted_19 = { style: {\"white-space\":\"nowrap\",\"display\":\"flex\"} }\nconst _hoisted_20 = [\"onClick\"]\nconst _hoisted_21 = [\"onClick\"]\nconst _hoisted_22 = { class: \"header\" }\nconst _hoisted_23 = { class: \"scroll-box\" }\nconst _hoisted_24 = { class: \"scroll-content\" }\nconst _hoisted_25 = { class: \"cell\" }\nconst _hoisted_26 = { class: \"cell\" }\nconst _hoisted_27 = { class: \"month-cell\" }\nconst _hoisted_28 = { class: \"total-list\" }\nconst _hoisted_29 = { class: \"header\" }\nconst _hoisted_30 = { class: \"scroll-box\" }\nconst _hoisted_31 = { class: \"scroll-content\" }\nconst _hoisted_32 = { class: \"cell\" }\nconst _hoisted_33 = { class: \"cell\" }\nconst _hoisted_34 = {\n key: 0,\n class: \"month-cell\"\n}\nconst _hoisted_35 = { class: \"title\" }\nconst _hoisted_36 = { class: \"top c-0088C6 font-bold font-14\" }\nconst _hoisted_37 = { class: \"title\" }\nconst _hoisted_38 = { class: \"top c-0088C6 font-bold font-14\" }\nconst _hoisted_39 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"title\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"top\",\n style: {\"color\":\"#BFBFBF\"}\n }, [\n /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"font_family icon-a-takeproposal-icon font-12\",\n style: {\"font-weight\":\"normal\"}\n }),\n /*#__PURE__*/_createElementVNode(\"span\", { style: {\"font-weight\":\"normal\"} }, \"Click to take proposal data\")\n ])\n], -1))\nconst _hoisted_40 = { class: \"title\" }\nconst _hoisted_41 = { class: \"top\" }\nconst _hoisted_42 = { class: \"title\" }\nconst _hoisted_43 = {\n key: 0,\n class: \"top\"\n}\nconst _hoisted_44 = [\"onClick\"]\nconst _hoisted_45 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"font_family icon-a-takeproposal-icon font-12 icon-forecast\" }, null, -1))\nconst _hoisted_46 = /*#__PURE__*/_createTextVNode(\" Forecast\")\nconst _hoisted_47 = [\n _hoisted_45,\n _hoisted_46\n]\nconst _hoisted_48 = { key: 0 }\nconst _hoisted_49 = { style: {\"color\":\"#CCC\"} }\nconst _hoisted_50 = { key: 1 }\nconst _hoisted_51 = [\"onClick\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Breadcrumb = _resolveComponent(\"Breadcrumb\")!\n const _component_cascade_selector = _resolveComponent(\"cascade-selector\")!\n const _component_a_badge = _resolveComponent(\"a-badge\")!\n const _component_a_checkbox = _resolveComponent(\"a-checkbox\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_input = _resolveComponent(\"a-input\")!\n const _component_a_table = _resolveComponent(\"a-table\")!\n const _component_SpreadJsDialog = _resolveComponent(\"SpreadJsDialog\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_Breadcrumb, { dataSource: [] }),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_cascade_selector, { onUpdate: _ctx.handleUpdate }, null, 8, [\"onUpdate\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.years, (year) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: year.year,\n class: \"year-box\"\n }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"year-item\", {'active' : _ctx.currentYear === year.year}]),\n onClick: ($event: any) => (_ctx.handleChooseYear(year.year))\n }, [\n _createVNode(_component_a_badge, {\n dot: !year.buSaveStatus\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"a\", _hoisted_6, _toDisplayString(year.year), 1)\n ]),\n _: 2\n }, 1032, [\"dot\"])\n ], 10, _hoisted_5)\n ]))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_a_checkbox, {\n checked: _ctx.expandAllStatus,\n \"onUpdate:checked\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.expandAllStatus) = $event)),\n class: \"mr-20\",\n disabled: _ctx.tableData.length <= 0\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"checked\", \"disabled\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"mr-20\",\n disabled: _ctx.tableData.length <= 0,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.handleSaveOrSubmit('save')))\n }, {\n default: _withCtx(() => [\n _hoisted_9\n ]),\n _: 1\n }, 8, [\"disabled\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"mr-20\",\n disabled: _ctx.tableData.length <= 0,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.handleSaveOrSubmit('submit')))\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.tableData, (make, makeIndex) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"result bg-fff\", make.make]),\n key: make.planningId\n }, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", null, [\n _hoisted_15,\n _createVNode(_component_a_select, {\n value: make.viewKufriVersion,\n \"onUpdate:value\": ($event: any) => ((make.viewKufriVersion) = $event),\n onChange: (kufri) => _ctx.handleKufriChange(kufri, makeIndex, make)\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(make.kufirVersions, (version) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n key: version,\n vlaue: version\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(version), 1)\n ]),\n _: 2\n }, 1032, [\"vlaue\"]))\n }), 128))\n ]),\n _: 2\n }, 1032, [\"value\", \"onUpdate:value\", \"onChange\"]),\n _createVNode(_component_a_button, {\n type: \"primary\",\n class: \"ml-20\",\n onClick: ($event: any) => (_ctx.handleTakeGuideline(make))\n }, {\n default: _withCtx(() => [\n _hoisted_16\n ]),\n _: 2\n }, 1032, [\"onClick\"])\n ])\n ]),\n (make.total)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"div\", _hoisted_18, [\n _createElementVNode(\"div\", _hoisted_19, [\n (!make.totalExpand)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"expand\",\n onClick: ($event: any) => (make.totalExpand = true)\n }, \"+\", 8, _hoisted_20))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"expand\",\n onClick: ($event: any) => (make.totalExpand = false)\n }, \"-\", 8, _hoisted_21)),\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(make.make) + \" Total\", 1),\n _createElementVNode(\"div\", _hoisted_23, [\n _createElementVNode(\"div\", _hoisted_24, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.seasonTotal, (item) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n key: item.title\n }, [\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.number2Fixed(make.total[item.title].releasePoint)), 1),\n _createElementVNode(\"span\", _hoisted_26, _toDisplayString(_ctx.number2Fixed(make.total[item.title].buPoint)), 1)\n ]))\n }), 128)),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.months, (item) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n key: item.title\n }, [\n _createElementVNode(\"span\", _hoisted_27, _toDisplayString(_ctx.number2Fixed(make.total[item.title].buPoint)), 1)\n ]))\n }), 128))\n ])\n ])\n ])\n ]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_28, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(make.totalVOList, (item) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"item\",\n key: item.bu\n }, [\n _createElementVNode(\"span\", _hoisted_29, _toDisplayString(item.bu), 1),\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"div\", _hoisted_31, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.seasonTotal, (season) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n key: season.title\n }, [\n _createElementVNode(\"span\", _hoisted_32, _toDisplayString(_ctx.number2Fixed(item[season.title].releasePoint)), 1),\n _createElementVNode(\"span\", _hoisted_33, _toDisplayString(_ctx.number2Fixed(item[season.title].buPoint)), 1)\n ]))\n }), 128)),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.months, (month) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n key: month.title\n }, [\n (item[month.title])\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_34, _toDisplayString(_ctx.number2Fixed(item[month.title].buPoint)), 1))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ])\n ]))\n }), 128))\n ], 512), [\n [_vShow, make.totalExpand]\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_a_table, {\n class: \"data-table\",\n scroll: { x: 1500 },\n columns: _ctx.tableColumns,\n \"data-source\": make.detailVOList,\n pagination: false,\n rowKey: \"id\",\n expandedRowKeys: _ctx.expandedRowKeysList[makeIndex],\n onExpand: (expand, record) => _ctx.handleExpand(expand, record, makeIndex),\n rowClassName: (record, index) => (record.brand ? 'hasBrand' : null)\n }, _createSlots({\n bu: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_35, [\n _createElementVNode(\"div\", _hoisted_36, _toDisplayString(make.make), 1)\n ])\n ]),\n typeClass: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_37, [\n _createElementVNode(\"div\", _hoisted_38, _toDisplayString(_ctx.scenarioName), 1)\n ])\n ]),\n nstGroup: _withCtx(() => [\n _hoisted_39\n ]),\n _: 2\n }, [\n _renderList(_ctx.seasons, (season) => {\n return {\n name: season.slot,\n fn: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_40, [\n _createElementVNode(\"div\", _hoisted_41, _toDisplayString(_ctx.currentYear) + \"-\" + _toDisplayString(season.title), 1)\n ])\n ])\n }\n }),\n _renderList(_ctx.months, (month) => {\n return {\n name: month.title,\n fn: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_42, [\n (month.actualStatus[makeIndex])\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_43, \"Actual\"))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n onClick: ($event: any) => (_ctx.handleForecast(month.text, month.title, makeIndex, make)),\n class: \"cursor-pointer\",\n style: {\"position\":\"relative\"}\n }, _hoisted_47, 8, _hoisted_44))\n ])\n ])\n }\n }),\n _renderList(_ctx.months, (month) => {\n return {\n name: month.text,\n fn: _withCtx(({record}) => [\n (record[month.title] && record[month.title].actualStatus)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_48, [\n _createElementVNode(\"span\", _hoisted_49, _toDisplayString(_ctx.number2Fixed(record[month.title].buPoint)), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_50, [\n _createElementVNode(\"div\", null, [\n (!record[month.title].editing || _ctx.lockStatus)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"cell-span\", {'edited-span': record[month.title].edited, 'empty-span': !record[month.title].actualStatus && !record[month.title].buPoint && (record[month.title].rtVolume || record[month.title].rtVolume === 0) && record[month.title].buPoint !== 0}]),\n onClick: ($event: any) => (_ctx.handleClickCell($event, record[month.title], record))\n }, [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.number2Fixed(record[month.title].buPoint)), 1)\n ], 10, _hoisted_51))\n : (_openBlock(), _createBlock(_component_a_input, {\n key: 1,\n value: record[month.title].buPoint,\n \"onUpdate:value\": ($event: any) => ((record[month.title].buPoint) = $event),\n type: \"number\",\n onFocus: ($event: any) => (_ctx.handleFocus(record, month.title)),\n onBlur: ($event: any) => (_ctx.handleBlur(record, month.title, make.detailVOList)),\n onInput: ($event: any) => (record[month.title].buPoint=record[month.title].buPoint.replace(/([0-9]+\\.[0-9]{15})[0-9]*/, '$1'))\n }, null, 8, [\"value\", \"onUpdate:value\", \"onFocus\", \"onBlur\", \"onInput\"]))\n ])\n ]))\n ])\n }\n })\n ]), 1032, [\"columns\", \"data-source\", \"expandedRowKeys\", \"onExpand\", \"rowClassName\"])\n ])\n ])\n ], 2))\n }), 128))\n ])\n ]),\n _createVNode(_component_SpreadJsDialog, {\n spreadVisible: _ctx.spreadVisible,\n spreadData: _ctx.spreadData,\n actuals: _ctx.actuals,\n year: _ctx.currentYear,\n makeName: _ctx.currentMakeName,\n onUpdate: _ctx.handleSpreadJsUpdate,\n onClose: _ctx.handleCloseSpreadJsDialog,\n field: \"buPoint\"\n }, null, 8, [\"spreadVisible\", \"spreadData\", \"actuals\", \"year\", \"makeName\", \"onUpdate\", \"onClose\"])\n ], 64))\n}","\nimport { useRouter, useRoute } from 'vue-router'\nimport { useStore } from \"vuex\"\nimport CascadeSelector from '@/views/Planning/components/CasvadeSelector.vue'\nimport { defineComponent, onMounted, ref, reactive, nextTick, h, computed, watch } from 'vue'\nimport { getGuidelineYear, getBottomUpList, saveBottomUp, refreshKufriBottomUp, refreshBudgetBu } from '@/API/planning'\nimport moment from 'moment'\nimport SpreadJsDialog from '@/views/Planning/components/SpreadJsDialog.vue'\nimport { message ,Modal} from \"ant-design-vue\";\nimport { formatDataForTable } from './components/spreadUtils'\n// import { data } from './mock'\n\nfunction generateKufirVersions(begin: string, end: string) {\n const versions = []\n const month = moment(begin.replace('K', ''))\n const endMonth = moment(end.replace('K', ''))\n while (!month.isAfter(endMonth)) {\n versions.push(month.format('YYYYKMM'))\n month.add(1, 'M')\n }\n\n return versions\n}\n\nconst seasonConPoint2Fixed = (record: any) => {\n if (record.text || record.text === 0) {\n return record.text.toFixed(2) + '%'\n }\n return ''\n}\n\nfunction setId(data: any [], childrenKey = 'children', key = 'key') {\n let id = 1\n const setId = (data: any []) => {\n data.forEach((item: any) => {\n (item[key] as number) = id\n id++\n if (item[childrenKey] && (item[childrenKey]).length) {\n setId(item[childrenKey])\n }\n })\n }\n setId(data)\n return data\n}\n\nexport default defineComponent({\n components: {\n CascadeSelector,\n SpreadJsDialog\n },\n setup() {\n const route: any = useRoute()\n const store = useStore()\n const scenarioId = route.query.scenarioId\n const planningId = route.query.planningId\n const scenarioName = route.query.scenarioName\n const lockStatus = route.query.lockStatus === 'true'\n const submitStatus = ref(false)\n const topData = ref({})\n const currentYear = ref(route.query.year)\n const years = ref([])\n const expandedRowKeysList = ref([]) \n const expandAllStatus = ref(false)\n const resMakeList = ref([])\n const seasonTotal = [\n {\n title: 'annual'\n },\n {\n title: 'seasonOne'\n },\n {\n title: 'seasonTwo'\n },\n {\n title: 'seasonThree'\n },\n {\n title: 'seasonFour'\n }\n ]\n\n const seasons = [\n {\n title: 'Annual',\n slot: 'Annual',\n children: [\n {\n title: 'Guideline',\n dataIndex: 'annual.releasePoint',\n key: 'annual.releasePoint',\n width: 80,\n customRender: seasonConPoint2Fixed\n },\n {\n title: 'Bottom Up',\n dataIndex: 'annual.buPoint',\n key: 'annual.buPoint',\n width: 80,\n customRender: seasonConPoint2Fixed,\n customHeaderCell: () => {\n return {\n style: {\n color: '#0088C6 !important'\n }\n }\n },\n customCell: () => {\n return {\n style: {\n color: '#0088C6'\n }\n }\n }\n }\n ]\n },\n {\n title: 'Q1',\n slot: 'Q1',\n children: [\n {\n title: 'Guideline',\n dataIndex: 'seasonOne.releasePoint',\n key: 'seasonOne.releasePoint',\n width: 80,\n customRender: seasonConPoint2Fixed\n },\n {\n title: 'Bottom Up',\n dataIndex: 'seasonOne.buPoint',\n key: 'seasonOne.buPoint',\n width: 80,\n customRender: seasonConPoint2Fixed,\n customHeaderCell: () => {\n return {\n style: {\n color: '#0088C6 !important'\n }\n }\n },\n customCell: () => {\n return {\n style: {\n color: '#0088C6'\n }\n }\n }\n }\n ]\n },\n {\n title: 'Q2',\n slot: 'Q2',\n children: [\n {\n title: 'Guideline',\n dataIndex: 'seasonTwo.releasePoint',\n key: 'seasonTwo.releasePoint',\n width: 80,\n customRender: seasonConPoint2Fixed\n },\n {\n title: 'Bottom Up',\n dataIndex: 'seasonTwo.buPoint',\n key: 'seasonTwo.buPoint',\n width: 80,\n customRender: seasonConPoint2Fixed,\n customHeaderCell: () => {\n return {\n style: {\n color: '#0088C6 !important'\n }\n }\n },\n customCell: () => {\n return {\n style: {\n color: '#0088C6'\n }\n }\n }\n }\n ]\n },\n {\n title: 'Q3',\n slot: 'Q3',\n children: [\n {\n title: 'Guideline',\n dataIndex: 'seasonThree.releasePoint',\n key: 'seasonThree.releasePoint',\n width: 80,\n customRender: seasonConPoint2Fixed\n },\n {\n title: 'Bottom Up',\n dataIndex: 'seasonThree.buPoint',\n key: 'seasonThree.buPoint',\n width: 80,\n customRender: seasonConPoint2Fixed,\n customHeaderCell: () => {\n return {\n style: {\n color: '#0088C6 !important'\n }\n }\n },\n customCell: () => {\n return {\n style: {\n color: '#0088C6'\n }\n }\n }\n }\n ]\n },\n {\n title: 'Q4',\n slot: 'Q4',\n children: [\n {\n title: 'Guideline',\n dataIndex: 'seasonFour.releasePoint',\n key: 'seasonFour.releasePoint',\n width: 80,\n customRender: seasonConPoint2Fixed\n },\n {\n title: 'Bottom Up',\n dataIndex: 'seasonFour.buPoint',\n key: 'seasonFour.buPoint',\n width: 80,\n customRender: seasonConPoint2Fixed,\n customHeaderCell: () => {\n return {\n style: {\n color: '#0088C6 !important'\n }\n }\n },\n customCell: () => {\n return {\n style: {\n color: '#0088C6'\n }\n }\n }\n }\n ]\n }\n ]\n\n const months = ref(\n [\n {\n text: '01',\n number: '1',\n title: 'january',\n actualStatus: [],\n width: 60\n },\n {\n text: '02',\n number: '2',\n title: 'february',\n actualStatus: [],\n width: 60\n },\n {\n text: '03',\n number: '3',\n title: 'march',\n actualStatus: [],\n width: 60\n },\n {\n text: '04',\n number: '4',\n title: 'april',\n actualStatus: [],\n width: 60\n },\n {\n text: '05',\n number: '5',\n title: 'may',\n actualStatus: [],\n width: 60\n },\n {\n text: '06',\n number: '6',\n title: 'june',\n actualStatus: [],\n width: 60\n },\n {\n text: '07',\n number: '7',\n title: 'july',\n actualStatus: [],\n width: 60\n },\n {\n text: '08',\n number: '8',\n title: 'august',\n actualStatus: [],\n width: 60\n },\n {\n text: '09',\n number: '9',\n title: 'september',\n actualStatus: [],\n width: 60\n },\n {\n text: '10',\n number: '10',\n title: 'october',\n actualStatus: [],\n width: 60\n },\n {\n text: '11',\n number: '11',\n title: 'november',\n actualStatus: [],\n width: 60\n },\n {\n text: '12',\n number: '12',\n title: 'december',\n actualStatus: [],\n width: 60\n },\n ]\n ) \n\n const tableColumns = ref(\n [\n {\n slots: { title: 'bu' },\n fixed: 'left',\n children: [\n {\n title: 'Brand',\n dataIndex: 'brand',\n width: 130,\n fixed: 'left'\n }\n ]\n },\n {\n slots: { title: 'typeClass' },\n fixed: 'left',\n children: [\n {\n title: 'Type Class',\n dataIndex: 'typeClass',\n width: 150,\n }\n ]\n },\n {\n slots: { title: 'nstGroup' },\n fixed: 'left',\n children: [\n {\n title: 'Model',\n dataIndex: 'nstGroup',\n width: 200,\n }\n ]\n },\n ...seasons.map(season => {\n return {\n slots: { title: season.title },\n width: 200,\n children: season.children\n }\n }),\n ...months.value.map(month => {\n return{\n slots: {\n title: month.title,\n },\n children: [\n {\n title: `${currentYear.value}-${month.text}`,\n slots: {\n customRender: month.text,\n },\n width: 80\n }\n ],\n }\n })\n ]\n )\n\n const tableData = ref([])\n\n const prePoint = ref(0)\n\n const number2Fixed = computed(() => {\n return (val: any) => {\n if (val || val === 0) {\n return val.toFixed(2) + '%'\n }\n return ''\n }\n })\n\n const initMonthData = (obj: any, monthEn: string) => {\n if (!obj) {\n return {\n actualStatus: null,\n buPoint: null,\n budget: null,\n controllingPoint: null,\n dataInfoId: null,\n finalPoint: null,\n kufriVersion: null,\n month: months.value.filter(item => item.title === monthEn)[0].number,\n planningId: null,\n planningTypeId: null,\n releasePoint: null,\n rtLlp: null,\n rtVolume: null,\n submitPoint: null,\n wsLlp: null,\n wsVolume: null,\n year: currentYear.value\n }\n }\n }\n\n const methodFormatList = (list: any[]) => {\n if (!list) {\n return\n }\n const monthEns = months.value.map((month: any) => {\n return month.title\n })\n list.forEach((item: any, index: number) => {\n for(const key in item) {\n if (monthEns.includes(key)) {\n if (!item[key]) {\n item[key] = initMonthData(item[key], key)\n }\n }\n if (monthEns.includes(key)) {\n item[key].editing = false\n }\n if (key === 'children' && item[key]) {\n item[key].forEach((child: any) => {\n child.formatBrand = item.brand || item.mappingName?.split('-')[0]\n child.formatBu = item.bu\n child.formatTypeClass = item.typeClass\n })\n methodFormatList(item[key])\n }\n }\n })\n }\n\n const methodFormatSaveData = (make: any, type: string) => {\n const result: any[] = []\n const monthNames = months.value.map((month: any) => month.title)\n make.detailVOList.forEach((detail: any)=> {\n if (detail.children && detail.children.length > 0) {\n detail.children.forEach((child: any) => {\n for (const key in child) {\n let condition\n if (type === 'save') {\n condition = monthNames.includes(key) && !child[key].actualStatus && child[key].edited\n } else if (type === 'submit') {\n condition = monthNames.includes(key)\n }\n if (condition) {\n const object: any = {}\n object.controllingSavedPoint = child[key].controllingPoint\n object.controllingReleasedPoint = child[key].releasePoint\n object.id = child[key].dataInfoId\n object.buSavedPoint = child[key].buPoint\n object.buSubmitPoint = child[key].submitPoint\n\n if (!object.id) {\n object.year = child[key].year\n object.month = child[key].month\n object.brand = child.formatBrand\n object.typeClass = child.formatTypeClass\n \n object.nstGroup = child.nstGroup\n object.nstGroupName = child.nstGroupName\n object.bu = child.formatBu\n object.actualStatus = false\n }\n if (type === 'save') {\n result.push(object)\n } else {\n if (object.id) {\n result.push(object)\n } else {\n if (child[key].edited) {\n result.push(object)\n }\n }\n }\n }\n }\n })\n }\n })\n return result\n }\n\n const methodChangeActual = () => {\n // 未来年全部forecast\n const nowYear = new Date().getFullYear()\n if (currentYear.value > nowYear) {\n months.value.forEach(month => {\n month.actualStatus = tableData.value.map((make: any) => {\n return false\n })\n })\n } else { // 当前年判断kufri\n months.value.forEach(month => {\n month.actualStatus = tableData.value.map((make: any) => {\n const kufriMonth = make.viewKufriVersion.substring(make.viewKufriVersion.length-2)\n return month.text < kufriMonth\n })\n })\n }\n }\n\n const methodGetList = async () => {\n const postData = {\n ...topData.value,\n scenrioId: scenarioId,\n year: currentYear.value\n }\n const responseList = await getBottomUpList(postData)\n const list = responseList.data || []\n resMakeList.value = list.map((item: any) => {\n return item.make\n })\n submitStatus.value = list.map((make: any) => {\n return make.submitStatus\n }).some((item: boolean) => {\n return item\n })\n // list = data\n tableData.value = list\n tableData.value.forEach(make => {\n make.kufirVersions = generateKufirVersions(make.startKufriVersion, make.currentKufriVersion)\n make.totalExpand = false\n make.viewKufriVersion = make.currentKufriVersion\n expandedRowKeysList.value.push([])\n if (!make.detailVOList) {\n make.detailVOList = []\n }\n methodFormatList(make.detailVOList)\n setId(make.detailVOList, 'children', 'id')\n nextTick(() => {\n resMakeList.value.forEach((make: string) => {\n const ele: any | null = document.querySelector(`.${make} .ant-table-body`)\n const title: any | null = document.querySelectorAll(`.${make} .scroll-content`)\n ele.addEventListener('scroll', function(e: any) {\n title.forEach((item: any) => {\n item.style.left = `-${e.target.scrollLeft}px`\n })\n })\n })\n })\n })\n methodChangeActual()\n }\n\n const initYears = async () => {\n const params = {\n bu: topData.value.bu,\n buId: topData.value.buId,\n scenrioId: scenarioId\n }\n const responseYears = await getGuidelineYear(params)\n years.value = responseYears.data\n years.value = responseYears.data.filter((year: any) => {\n return year.bottomActive\n }) \n }\n\n const handleUpdate = (condition: any) => {\n topData.value = condition\n methodGetList()\n initYears()\n }\n\n const handleKufriChange = async (kufri: string, makeIndex: number, make: any) => {\n const postData = {\n ...topData.value,\n scenarioId: scenarioId,\n planningId: make.planningId,\n year: currentYear.value,\n kufriVersion: kufri,\n bottomActive: true\n }\n const response = await refreshKufriBottomUp(postData)\n tableData.value[makeIndex].detailVOList = response.data[0].detailVOList || []\n methodFormatList(tableData.value[makeIndex].detailVOList)\n // 刷新对应kufri月份的acture状态\n methodChangeActual()\n }\n\n const handleTakeGuideline = (make: any) => {\n if (!make.releaseStatus) {\n return message.error(\"There's no data released from guideline.\")\n }\n Modal.confirm({\n title: 'Tips',\n content: 'Note that take propose will overwrite existing data.',\n okText: 'Confirm',\n onOk() {\n const monthEns = months.value.map((month: any) => {\n return month.title\n })\n make.detailVOList.forEach((row: any) => {\n for(const key in row) {\n if (monthEns.includes(key)) {\n if (row[key].releasePoint !== row[key].buPoint) {\n row[key].buPoint = row[key].releasePoint\n row[key].edited = true\n }\n }\n if (key === 'children' && row.children) {\n row.children.forEach((child: any) => {\n for (const key in child) {\n if (monthEns.includes(key)) { \n if (child[key].releasePoint !== child[key].buPoint) {\n child[key].buPoint = child[key].releasePoint\n child[key].edited = true\n } \n }\n }\n })\n }\n }\n })\n },\n cancelText: 'Cancel',\n });\n }\n\n const handleChooseYear = (year: number) => {\n currentYear.value = year\n expandAllStatus.value = false\n // 刷新table header月份中的年份\n tableColumns.value = [\n {\n slots: { title: 'brand' },\n fixed: 'left',\n children: [\n {\n title: 'Brand',\n dataIndex: 'brand',\n width: 130,\n fixed: 'left'\n }\n ]\n },\n {\n slots: { title: 'typeClass' },\n fixed: 'left',\n children: [\n {\n title: 'Type Class',\n dataIndex: 'typeClass',\n width: 150,\n }\n ]\n },\n {\n slots: { title: 'nstGroup' },\n fixed: 'left',\n children: [\n {\n title: 'Model',\n dataIndex: 'nstGroup',\n width: 200,\n }\n ]\n },\n ...seasons.map(season => {\n return {\n slots: { title: season.title },\n width: 200,\n children: season.children\n }\n }),\n ...months.value.map(month => {\n return{\n slots: {\n title: month.title,\n },\n children: [\n {\n title: `${currentYear.value}-${month.text}`,\n slots: {\n customRender: month.text,\n },\n width: 100\n }\n ],\n }\n })\n ]\n methodGetList()\n }\n\n // 点击单元格可编辑 item:单元格数据 record:整行数据\n const handleClickCell = (e: any, item: any, record: any) => {\n if (lockStatus) {\n return message.error('Data locked.')\n }\n if (submitStatus.value) {\n return message.error('Data already submitted,can not change.')\n }\n if (item.actualStatus || item.editDisabled) {\n return\n }\n item.editing = true\n prePoint.value = item.buPoint\n nextTick(()=>{\n const ele: any | null = document.querySelector('.data-table input')\n if (ele) {\n ele.focus()\n }\n })\n }\n\n // 获取焦点\n const handleFocus = (record: any, month: string) => {\n // 转化成小数\n if (record[month].buPoint) {\n record[month].buPoint = record[month].buPoint / 100\n console.log(record[month].buPoint)\n }\n }\n\n // 离焦事件 item: 单元格数据 record: 行数据 tableData:表格数据\n const handleBlur = (record: any, month: string, tableData: any) => {\n if (record[month].buPoint === 0 || record[month].buPoint === '0') {\n record[month].buPoint = 0\n } else {\n record[month].buPoint = Number(record[month].buPoint) || null\n }\n // 转化成百分数\n if (record[month].buPoint) {\n record[month].buPoint = record[month].buPoint * 100\n }\n if (record[month].buPoint !== prePoint.value) {\n record[month].edited = true\n // 是父节点 判断是否有子节点 如果有子节点 父节点编辑 子节点自动变成相同数值且不可编辑\n if (record.brand || record.typeClass) {\n if (record.children) {\n record.children.forEach((child: any) => {\n child[month].buPoint = record[month].buPoint\n child[month].edited = true\n child[month].editDisabled = !!child[month].buPoint\n child[month].empty = !child[month].buPoint\n })\n }\n }\n // 是子节点 找到父节点 父节点不可编辑\n if (!record.brand && !record.typeClass && record.nstGroup) {\n tableData.forEach((row: any) => {\n if (row.children) {\n const childControllingPointList: any[] = []\n row.children.forEach((child: any) => {\n childControllingPointList.push(child[month].buPoint)\n if (child[month].dataInfoId === record[month].dataInfoId) {\n row[month].buPoint = null\n row[month].editDisabled = true\n row[month].empty = false\n }\n })\n // 所有child的controllingPoint都为null时 父节点可编辑\n const bool = childControllingPointList.every((item: any) => {\n return !item\n })\n if (bool) {\n row[month].editDisabled = false\n }\n }\n })\n }\n }\n record[month].editing = false\n if (!record[month].buPoint) {\n record[month].empty = true\n }\n }\n\n const handleForecast = (month: string, monthEn: string, index: number, make: any) => {\n if (lockStatus) {\n return message.error('Planning already locked')\n }\n if (submitStatus.value) {\n return message.error('Data already submitted,can not change.')\n }\n Modal.confirm({\n title: 'Tips',\n content: 'Note that take propose will overwrite existing data.',\n okText: 'Confirm',\n async onOk() {\n const params = {\n planningId: make.planningId,\n month,\n bu: topData.value.bu,\n buId: topData.value.buId,\n kufriVersion: make.currentKufriVersion\n }\n const response = await refreshBudgetBu(params)\n const budgetObject = response.data\n make.detailVOList.forEach((row: any) => {\n if (budgetObject) {\n row[monthEn].buPoint = budgetObject[`${row.mappingName}`] || null\n } else {\n row[monthEn].buPoint = null\n }\n if (row.children) {\n row.children.forEach((child: any) => {\n if (budgetObject) {\n child[monthEn].buPoint = budgetObject[`${row.mappingName}`] || null\n } else {\n child[monthEn].buPoint = null\n }\n })\n }\n })\n },\n cancelText: 'Cancel',\n });\n \n }\n\n const handleExpand = (expanded: any, record: any, index: number) => {\n if (expanded) {\n expandedRowKeysList.value[index]?.push(record.id)\n } else {\n const removeIndex = expandedRowKeysList.value[index].indexOf(record.id)\n if (index !== -1) {\n expandedRowKeysList.value[index].splice(removeIndex, 1)\n }\n }\n expandedRowKeysList.value[index]\n }\n\n watch(expandAllStatus, (value: boolean) => {\n store.commit(\n 'updateSpinning',\n true\n )\n if (value) {\n tableData.value.forEach((make: any, index: number) => {\n expandedRowKeysList.value[index] = make.detailVOList.map((item: any) => {\n return item.id\n })\n })\n } else {\n expandedRowKeysList.value.forEach((expandedRowKeys: any) => {\n expandedRowKeys = expandedRowKeys.splice(0, expandedRowKeys.length)\n })\n }\n store.commit(\n 'updateSpinning',\n false\n )\n })\n\n const handleExpandAll = () => {\n if (!expandAllStatus.value) {\n tableData.value.forEach((make: any, index: number) => {\n expandedRowKeysList.value[index] = make.detailVOList.map((item: any) => {\n return item.id\n })\n expandAllStatus.value = true\n })\n } else {\n expandedRowKeysList.value.forEach((expandedRowKeys: any) => {\n expandedRowKeys = expandedRowKeys.splice(0, expandedRowKeys.length)\n })\n expandAllStatus.value = false\n }\n }\n\n const handleSaveOrSubmit = async (type: string) => {\n if (lockStatus) {\n return message.error('Data locked.')\n }\n if (submitStatus.value) {\n return message.error('Data already submitted.')\n }\n const postData: any = {}\n const infoSaveDTOList: any[] = []\n tableData.value.forEach(make => {\n const makeItem: any = {}\n const resultList: any = methodFormatSaveData(make, type)\n makeItem.submitStatus = false\n if (type === 'submit') {\n resultList.forEach((item: any) => {\n item.buSubmitPoint = item.buSavedPoint\n })\n }\n makeItem.controllingSaveStatus = make.controllingSaveStatus\n makeItem.infoList = resultList\n makeItem.kufriVersion = make.currentKufriVersion || '2021K08'\n makeItem.make = make.make\n makeItem.planningId = make.planningId\n makeItem.submitStatus = type === 'submit' ? true : make.submitStatus\n makeItem.releaseStatus = make.releaseStatus\n makeItem.buSaveStatus = true\n infoSaveDTOList.push(makeItem)\n })\n postData.bu = topData.value.bu\n postData.buId = topData.value.buId\n postData.infoSaveDTOList = infoSaveDTOList\n await saveBottomUp(postData)\n message.success('Operation Succeeded')\n if (type === 'save' || type === 'submit') {\n expandAllStatus.value = false\n methodGetList()\n }\n }\n // onMounted(() => {\n // tableData.forEach(make => {\n // make.totalExpand = false\n // expandedRowKeysList.push([])\n // methodFormatList(make.detailVOList)\n // })\n // })\n\n const spreadVisible = ref(false)\n const spreadData = ref([])\n const actuals = ref([])\n let currentMake: any = []\n const currentMakeName = ref('')\n\n const handleBatchInput = (make: any, makeIndex: number) => {\n spreadVisible.value = true\n spreadData.value = make.detailVOList || []\n currentMake = make.detailVOList\n currentMakeName.value = make.make\n actuals.value = months.value.map(month => {\n return month.actualStatus[makeIndex]\n })\n }\n\n const handleSpreadJsUpdate = (dpreadJsData: any) => {\n formatDataForTable(currentMake, dpreadJsData, 'buPoint')\n }\n\n const handleCloseSpreadJsDialog = () => {\n spreadVisible.value = false\n }\n\n return {\n spreadVisible,\n spreadData,\n handleBatchInput,\n actuals,\n currentMakeName,\n handleSpreadJsUpdate,\n handleCloseSpreadJsDialog,\n \n scenarioName,\n topData,\n years,\n currentYear,\n prePoint,\n expandAllStatus,\n tableColumns,\n tableData,\n seasons,\n months,\n seasonTotal,\n expandedRowKeysList,\n number2Fixed,\n handleUpdate,\n handleKufriChange,\n handleTakeGuideline,\n handleChooseYear,\n handleClickCell,\n handleFocus,\n handleBlur,\n handleForecast,\n handleExpand,\n handleExpandAll,\n handleSaveOrSubmit\n }\n }\n})\n","import { render } from \"./BottomUpSimulation.vue?vue&type=template&id=cd1e0900&scoped=true&ts=true\"\nimport script from \"./BottomUpSimulation.vue?vue&type=script&lang=ts\"\nexport * from \"./BottomUpSimulation.vue?vue&type=script&lang=ts\"\n\nimport \"./BottomUpSimulation.vue?vue&type=style&index=0&id=cd1e0900&lang=scss&scoped=true\"\n\nimport exportComponent from \"/app/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-cd1e0900\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--1-1!./BottomUpSimulation.vue?vue&type=style&index=0&id=cd1e0900&lang=scss&scoped=true\""],"sourceRoot":""}