{"version":3,"sources":["webpack:///./src/views/System/NSTGroupMSRP/NSTGroupMSRP/NSTGroupMSRP.vue?d23b","webpack:///./src/views/System/NSTGroupMSRP/NSTGroupMSRP/NSTGroupMSRP.vue","webpack:///./src/views/System/NSTGroupMSRP/NSTGroupMSRP/NSTGroupMSRP.vue?66f8","webpack:///./src/views/System/NSTGroupMSRP/NSTGroupMSRP/utils.ts","webpack:///./src/views/System/NSTGroupMSRP/NSTGroupMSRP/NSTGroupMSRP.vue?0add","webpack:///./src/API/sysParam.ts"],"names":["_withScopeId","n","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","render","_ctx","_cache","$props","$setup","$data","$options","_component_a_select_option","_component_a_select","_component_a_button","value","searchParams","yearValue","$event","placeholder","default","year","key","_","makeValue","make","versionValue","version","type","onClick","doSearch","unConfirmCount","title","src","saveFn","args","confirmFn","handlerExport","id","style","width","height","tableHeight","name","setup","workbook","currentMonth","dataSource","data","ssHotTopInit","destroy","spread","Spread","Sheets","Workbook","document","getElementById","currentYear","format","allYear","initNstGroup","params","then","res","initVersionData","dataVersion","filter","item","active","getVersionData","oldValue","isEmpty","isSave","forEach","brand","typeClass","length","optionParams","map","Object","assign","message","success","error","config","url","blobDownload","initYearMakeList","__exports__","tableData","saveData","baseColCount","columnsWidth","monthHeader","displayName","monthMaps","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec","monthKeys","getFirstHeader","baseHeader","pastMonth","slice","futureMonth","doubleFutureMonth","flat","concat","getSecondHeader","getDataKeys","baseKeys","pastMonthKeys","doubleFutureMonthKeys","setColumnWidth","sheet","secondHeader","index","setFilterButtonVisible","rowFilter","dataKeys","keyInd","filterButtonVisible","setHeader","console","log","getActiveSheet","suspendPaint","setRowCount","SheetArea","colHeader","header","setColumnCount","viewport","range","Range","Filter","HideRowFilter","filterDialogVisibleInfo","sortByColor","row","cell","setValue","getCell","backColor","getRange","hAlign","HorizontalAlign","right","left","center","ranges","autoMerge","AutoMerge","AutoMergeDirection","AutoMergeMode","free","column","rowHeader","resumePaint","bindDataTable","spreadNS","canEdit","Style","locked","fontColor","foreColor","rowIndex","isMsrp","setFormatter","msrp","override","setStyle","status","setBorder","LineBorder","LineStyle","thin","all","setRowHeight","autoFitRow","frozenColumnCount","initSpread","options","rowHeaderVisible","tabNavigationVisible","tabStripVisible","scrollbarMaxAlign","scrollByPixel","isProtected","sheetStyle","getDefaultStyle","vAlign","VerticalAlign","setDefaultStyle","fontBlackColor","setData","codeValue","col","newValue","isNaN","Number","resumeEvent","rowData","cellData","isChange","text","numNext","valueOf","toString","i","itemData","overrideValue","nstGroupName","nstGroup","month","ind","findIndex","push","splice","bind","Events","ValueChanged","e","RangeChanged","sender","action","RangeChangedAction","clear","changedCells","arg","isCopy","ClipboardPasting","info","option","allowSelectLockedCells","allowSelectUnlockedCells","allowFilter","allowSort","allowResizeRows","allowResizeColumns","allowEditObjects","allowDragInsertRows","allowDragInsertColumns","allowInsertRows","allowInsertColumns","allowDeleteRows","allowDeleteColumns","protectionOptions","usetableHeight","idTop","tablePosition","resizeHandler","clientHeight","body","tableOffsetTop","querySelector","getBoundingClientRect","top","window","addEventListener","getBasicData","updateDeferDays","updateDeferExtendDays","updateMdfStopDays","updateVanLicenseDeferDays","getKufriPanelData","getKufriPanelActiveVersionData","findKufriPanelData","getKufriActiveData","runKufriActive","activeKufriActive","getKpiList","getMappingData","saveNstMapping","getImpactData","getMSRPData","saveMSRPData","getNstGroup","getMakeYearList","getVersionBymake","saveNstGroupData","confirmNstGroupData","getVATRate","getIMPACTMSRP","saveIMPACTMSRP"],"mappings":"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","file":"js/chunk-20001510.65ad4259.js","sourcesContent":["import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode, withModifiers as _withModifiers, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/images/submit-icon.svg'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5714b8e9\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"search-main p-10 m-10 bg-fff\" }\nconst _hoisted_2 = { class: \"d-f\" }\nconst _hoisted_3 = { class: \"search-item d-f flex-d-c\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Year\", -1))\nconst _hoisted_5 = { class: \"search-item d-f flex-d-c m-l-16\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Make\", -1))\nconst _hoisted_7 = { class: \"search-item d-f flex-d-c m-l-16\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"label-text-12\" }, \"Active Kufri Version\", -1))\nconst _hoisted_9 = { class: \"d-f justify-e flex-d-c m-l-16\" }\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\"Search\")\nconst _hoisted_11 = { class: \"table-warpper bg-fff\" }\nconst _hoisted_12 = { class: \"content-top\" }\nconst _hoisted_13 = /*#__PURE__*/_createTextVNode(\"UnConfirm Override: \")\nconst _hoisted_14 = { class: \"count-color\" }\nconst _hoisted_15 = { class: \"handle-box\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_a_select_option = _resolveComponent(\"a-select-option\")!\n const _component_a_select = _resolveComponent(\"a-select\")!\n const _component_a_button = _resolveComponent(\"a-button\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createVNode(_component_a_select, {\n value: _ctx.searchParams.yearValue,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.searchParams.yearValue) = $event)),\n placeholder: \"Please select\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.year, (yearValue) => {\n return (_openBlock(), _createBlock(_component_a_select_option, { key: yearValue }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(yearValue), 1)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _hoisted_6,\n _createVNode(_component_a_select, {\n value: _ctx.searchParams.makeValue,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.searchParams.makeValue) = $event)),\n placeholder: \"Please select\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.make, (makeValue) => {\n return (_openBlock(), _createBlock(_component_a_select_option, { key: makeValue }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(makeValue), 1)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n _createVNode(_component_a_select, {\n value: _ctx.searchParams.versionValue,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.searchParams.versionValue) = $event)),\n placeholder: \"Please select\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.version, (versionValue) => {\n return (_openBlock(), _createBlock(_component_a_select_option, {\n value: versionValue.value,\n key: versionValue\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(versionValue.value), 1)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"value\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_a_button, {\n type: \"primary\",\n onClick: _withModifiers(_ctx.doSearch, [\"stop\"])\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"span\", null, [\n _hoisted_13,\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.unConfirmCount), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"img\", {\n class: \"cursor-p m-l-12\",\n title: \"Save\",\n src: _imports_0,\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.saveFn && _ctx.saveFn(...args)))\n }),\n _createElementVNode(\"span\", {\n class: \"icon font_family f22 m-l-16 cursor-p\",\n title: \"Confirm\",\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.confirmFn && _ctx.confirmFn(...args)))\n }, \"\"),\n _createElementVNode(\"span\", {\n class: \"icon font_family f22 m-l-16 cursor-p\",\n title: \"Export\",\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.handlerExport && _ctx.handlerExport(...args)))\n }, \"\")\n ])\n ]),\n _createElementVNode(\"div\", {\n id: \"ssHost\",\n style: _normalizeStyle({ width: '100%', height: _ctx.tableHeight + 'px' })\n }, null, 4)\n ])\n ], 64))\n}","\nimport {\n defineComponent,\n onMounted,\n reactive,\n toRefs,\n onBeforeUnmount,\n watch,\n} from \"vue\"\nimport \"@grapecity/spread-sheets/styles/gc.spread.sheets.excel2016colorful.css\"\nimport GC from \"@grapecity/spread-sheets\"\nimport {\n initSpread,\n usetableHeight,\n setHeader,\n bindDataTable,\n saveData,\n} from \"./utils\"\nimport blobDownload from \"@/utils/blobDownload\"\nimport { NstGroupProps, SearchParams } from \"../types\"\nimport { getNstGroup, saveNstGroupData, confirmNstGroupData, getVersionBymake, getMakeYearList } from \"@/API/sysParam\"\nimport { message } from \"ant-design-vue\"\nimport { getMonth } from '@/utils'\nimport moment from 'moment';\n// import { NstGroupResources } from \"../data\"\nexport default defineComponent({\n name: \"\",\n setup() {\n // 当前月\n const currentMonth = getMonth();\n const searchParams = reactive({\n versionValue: \"\",\n yearValue: 0,\n makeValue: \"\",\n })\n\n // 获取表格的高度\n const { tableHeight } = usetableHeight(\"#ssHost\", \"#ssHostvp\")\n\n // 设置初始化数据变量\n const dataSource = reactive({\n data: [],\n unConfirmCount: 0,\n version: [],\n year: [],\n make: [],\n })\n\n // 初始化Spread\n // sheet当前表格的初始化\n let workbook: GC.Spread.Sheets.Workbook\n const ssHotTopInit = () => {\n workbook && workbook.destroy()\n\n const spread = new GC.Spread.Sheets.Workbook(\n document.getElementById(\"ssHost\") as HTMLElement\n )\n\n workbook = spread\n const currentYear = +moment().format('YYYY')\n const allYear = currentYear < searchParams.yearValue ? 0 : currentMonth\n initSpread(workbook, allYear)\n setHeader(workbook, allYear)\n // 绑定数据\n bindDataTable(workbook, dataSource.data, allYear)\n }\n\n\n\n // 获取数据\n const initNstGroup = () => {\n const params = {\n make: searchParams.makeValue,\n version: searchParams.versionValue,\n year: searchParams.yearValue,\n }\n\n // Object.assign(dataSource, NstGroupResources)\n getNstGroup({ params }).then((res) => {\n dataSource.data = res.data\n dataSource.unConfirmCount = res.unConfirmCount\n // 查询条件初始化\n ssHotTopInit()\n })\n }\n\n // 获取version\n const initVersionData = (params = {}) => {\n getVersionBymake(params).then((res) => {\n dataSource.version = res\n const dataVersion = res.filter(item => item.active)\n searchParams.versionValue = dataVersion[0].value\n initNstGroup()\n })\n }\n\n const getVersionData = (params = {}) => {\n getVersionBymake(params).then((res) => {\n dataSource.version = res\n const dataVersion = res.filter(item => item.active)\n searchParams.versionValue = dataVersion[0].value\n })\n }\n\n watch(() => searchParams.makeValue, (value, oldValue) => {\n if (value && oldValue) {\n const params = {\n make: value,\n year: searchParams.yearValue\n }\n getVersionData(params)\n }\n })\n\n watch(() => searchParams.yearValue, (value, oldValue) => {\n if (value && oldValue) {\n const params = {\n make: searchParams.makeValue,\n year: value\n }\n getVersionData(params)\n }\n })\n\n const isEmpty = (data: any) => {\n let isSave = true\n data.forEach((item: any) => {\n if (!item.brand || !item.typeClass) {\n isSave = false\n }\n });\n return isSave\n }\n\n const saveFn = () => {\n if (saveData.length === 0){\n return\n } else {\n if (!isEmpty(saveData)) {\n message.error('Brand和Type Class不能为空')\n return\n }\n }\n\n const optionParams = {\n make: searchParams.makeValue,\n version: searchParams.versionValue,\n year: searchParams.yearValue,\n }\n const params = saveData.map((item) => {\n return Object.assign(item, optionParams)\n\n })\n saveNstGroupData(params).then((res) => {\n message.success(\"Save successfully!\")\n initNstGroup()\n })\n }\n\n const confirmFn = () => {\n const params = {\n make: searchParams.makeValue,\n version: searchParams.versionValue,\n year: searchParams.yearValue,\n }\n\n confirmNstGroupData(params).then((res) => {\n message.success(\"Confirm successfully!\")\n initNstGroup()\n })\n }\n\n const doSearch = () => {\n initNstGroup()\n }\n\n // 导出表格\n const handlerExport = () => {\n if (searchParams.versionValue && searchParams.yearValue && searchParams.makeValue) {\n const config = {\n url: \"/vapi/msrp/nstGroup/export\",\n params: {\n make: searchParams.makeValue,\n version: searchParams.versionValue,\n year: searchParams.yearValue,\n },\n }\n blobDownload(config)\n } else {\n message.error(\"Please select parameters\")\n }\n }\n\n // 获取make year list\n const initYearMakeList = () => {\n getMakeYearList().then(res => {\n dataSource.make = res.make\n dataSource.year = res.year\n // 查询条件初始化\n searchParams.yearValue = searchParams.yearValue || (dataSource.year.length && dataSource.year[0])\n searchParams.makeValue = searchParams.makeValue || dataSource.make[0]\n const params = {\n make: searchParams.makeValue,\n year: searchParams.yearValue\n }\n initVersionData(params)\n })\n }\n\n onMounted(() => {\n // initNstGroup()\n initYearMakeList()\n // ssHotTopInit()\n })\n\n onBeforeUnmount(() => {\n workbook.destroy()\n })\n\n return {\n // table的高度\n tableHeight,\n doSearch,\n saveFn,\n confirmFn,\n // 导出文件\n handlerExport,\n\n ...toRefs(dataSource),\n searchParams,\n }\n },\n})\n","import { render } from \"./NSTGroupMSRP.vue?vue&type=template&id=5714b8e9&scoped=true&ts=true\"\nimport script from \"./NSTGroupMSRP.vue?vue&type=script&lang=ts\"\nexport * from \"./NSTGroupMSRP.vue?vue&type=script&lang=ts\"\n\nimport \"./NSTGroupMSRP.vue?vue&type=style&index=0&id=5714b8e9&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-5714b8e9\"]])\n\nexport default __exports__","import GC from '@grapecity/spread-sheets'\nimport { reactive, toRefs, onMounted, } from 'vue';\nimport { HeaderData, NstGroupData, MsrpData } from '../types'\nimport { getMonth } from '@/utils'\nimport { message } from 'ant-design-vue'\ninterface TablePosition {\n tableHeight: number;\n}\n\ninterface SaveData {\n make?: any;\n id: string;\n overrideValue: number;\n version?: string;\n year?: string;\n month: string;\n brand: string | null;\n typeClass: string | null;\n nstGroup: string | null; \n nstGroupName: string | null; \n}\n\n// 当前月\nconst currentMonth = getMonth();\n\nlet tableData: NstGroupData[];\n\nexport let saveData: SaveData[] = [];\n\n// 表格确定列数量\nconst baseColCount = 4;\n\nconst columnsWidth = {\n 'Brand': 70,\n 'Type Class': 85,\n 'NST Group': 150,\n 'NST Group Name': 170,\n}\n\nconst monthHeader = [{\n displayName: 'Jan',\n},{\n displayName: 'Feb',\n},{\n displayName: 'Mar',\n},{\n displayName: 'Apr',\n},{\n displayName: 'May',\n},{\n displayName: 'Jun',\n},{\n displayName: 'Jul',\n},{\n displayName: 'Aug',\n},{\n displayName: 'Sep',\n},{\n displayName: 'Oct',\n},{\n displayName: 'Nov',\n},{\n displayName: 'Dec',\n}]\n\nconst monthMaps = {\n jan: '1',\n feb: '2',\n mar: '3',\n apr: '4',\n may: '5',\n jun: '6',\n jul: '7',\n aug: '8',\n sep: '9',\n oct: '10',\n nov: '11',\n dec: '12'\n}\n\nconst monthKeys = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec']\n\nconst getFirstHeader = (allYear: number) => {\n const baseHeader = [{\n displayName: 'Vehicle',\n },{\n displayName: 'Vehicle',\n },{\n displayName: 'Vehicle',\n },{\n displayName: 'Vehicle',\n }];\n const pastMonth = monthHeader.slice(0, allYear)\n const futureMonth = monthHeader.slice(allYear)\n debugger\n const doubleFutureMonth = futureMonth.map((item) => {\n return [item, item]\n }).flat()\n\n return baseHeader.concat(pastMonth, doubleFutureMonth) \n}\n\nconst getSecondHeader = (allYear: number) => {\n const baseHeader = [{\n displayName: 'Brand',\n },{\n displayName: 'Type Class',\n },{\n displayName: 'NST Group',\n },{\n displayName: 'NST Group Name',\n }];\n const pastMonth = monthHeader.slice(0, allYear).map((item) => {\n return {\n displayName: ''\n }\n })\n\n const futureMonth = monthHeader.slice(allYear)\n \n const doubleFutureMonth = futureMonth.map(() => {\n return [{\n displayName: 'MSRP',\n },{\n displayName: 'Override',\n }]\n }).flat()\n return baseHeader.concat(pastMonth, doubleFutureMonth) \n}\n\nconst getDataKeys = (allYear: number) => {\n const baseKeys = ['brand', 'typeClass', 'nstGroup', 'nstGroupName'];\n const pastMonthKeys = monthKeys.slice(0, allYear)\n const futureMonth = monthKeys.slice(allYear)\n \n const doubleFutureMonthKeys = futureMonth.map((item) => {\n return [item, item]\n }).flat()\n\n return baseKeys.concat(pastMonthKeys, doubleFutureMonthKeys) \n}\n\n// const firstHeader = getFirstHeader()\n// const secondHeader = getSecondHeader()\n// const dataKeys: string[] = getDataKeys()\n// 设置表格的头部,可以不占用单元格\n// const header: HeaderData[][] = [\n// firstHeader, secondHeader\n// ]\n\n// 设置列宽度\nconst setColumnWidth = (sheet: GC.Spread.Sheets.Worksheet, secondHeader: {displayName: string}[]) => {\n secondHeader.forEach((item, index) => {\n if (!columnsWidth[item.displayName]) {\n sheet.setColumnWidth(index, 120)\n } else {\n sheet.setColumnWidth(index, columnsWidth[item.displayName])\n }\n })\n}\n\nconst setFilterButtonVisible = (rowFilter: GC.Spread.Sheets.Filter.HideRowFilter, dataKeys: string[]) => {\n for (let keyInd = 0; keyInd < dataKeys.length; keyInd++) { \n if (keyInd > baseColCount || keyInd === baseColCount)\n rowFilter.filterButtonVisible(keyInd, false)\n }\n}\n\n// 设置表头\nexport const setHeader = (spread: GC.Spread.Sheets.Workbook, allYear: number ) => {\n console.log(allYear, 'allYear')\n const sheet = spread.getActiveSheet();\n //挂起\n sheet.suspendPaint();\n\n //设置header行数为2行\n sheet.setRowCount(2, GC.Spread.Sheets.SheetArea.colHeader);\n\n // 文字换行\n // const row = sheet.getRange(-1, -1, -1, -1, GC.Spread.Sheets.SheetArea.viewport);\n // row.wordWrap(true);\n const header: HeaderData[][] = [\n getFirstHeader(allYear), getSecondHeader(allYear)\n ] \n setColumnWidth(sheet, getSecondHeader(allYear));\n sheet.setColumnCount(getSecondHeader(allYear).length, GC.Spread.Sheets.SheetArea.viewport)\n const range = new GC.Spread.Sheets.Range(-1, 0, -1, getSecondHeader(allYear).length);\n const rowFilter = new GC.Spread.Sheets.Filter.HideRowFilter(range);\n sheet.rowFilter(rowFilter);\n rowFilter.filterDialogVisibleInfo({\n sortByColor: false,\n })\n const dataKeys: string[] = getDataKeys(allYear)\n setFilterButtonVisible(rowFilter, dataKeys)\n //set header 设置头的样式\n for (let row = 0; row < header.length; row++) {\n for (let cell = 0; cell < header[row].length; cell++) {\n sheet.setValue(row, cell, header[row][cell].displayName, GC.Spread.Sheets.SheetArea.colHeader);\n sheet.getCell(row, cell, GC.Spread.Sheets.SheetArea.colHeader).backColor('#bfbfbf')\n }\n // sheet.setRowHeight(row, 40, GC.Spread.Sheets.SheetArea.colHeader);\n }\n\n for (let index = 0; index < header[0].length; index++) {\n if (index > baseColCount - 1) {\n sheet.getRange(-1, index, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.right)\n // sheet.getRange(1, index, 1, 1, GC.Spread.Sheets.SheetArea.colHeader).hAlign(GC.Spread.Sheets.HorizontalAlign.right)\n } else {\n sheet.getRange(-1, index, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.left)\n // sheet.getRange(1, index, 1, 1, GC.Spread.Sheets.SheetArea.colHeader).hAlign(GC.Spread.Sheets.HorizontalAlign.left)\n\n }\n }\n sheet.getRange(-1, 0, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.center)\n sheet.getRange(-1, 1, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign.center)\n\n // // 必须加上这两个才能折叠展开\n // sheet.options.protectionOptions.allowOutlineRows = true\n // sheet.options.protectionOptions.allowOutlineColumns = true\n // 自动合并\n const ranges = new GC.Spread.Sheets.Range(-1, -1, -1, -1);\n sheet.autoMerge(ranges, GC.Spread.Sheets.AutoMerge.AutoMergeDirection.row, GC.Spread.Sheets.AutoMerge.AutoMergeMode.free, GC.Spread.Sheets.SheetArea.colHeader);\n sheet.autoMerge(ranges, GC.Spread.Sheets.AutoMerge.AutoMergeDirection.column, GC.Spread.Sheets.AutoMerge.AutoMergeMode.free, GC.Spread.Sheets.SheetArea.rowHeader);\n //重绘\n sheet.resumePaint();\n}\n\n\n\n// 绑定数据\nexport const bindDataTable = (spread: GC.Spread.Sheets.Workbook, data: NstGroupData[], allYear: number) => {\n tableData = data;\n // 清空之前的saveData\n saveData = [];\n // 挂起\n spread.suspendPaint();\n const sheet = spread.getActiveSheet();\n const spreadNS = GC.Spread.Sheets;\n // 设置多少行和列\n sheet.setRowCount(data.length, GC.Spread.Sheets.SheetArea.viewport)\n // sheet.setColumnCount(secondHeader.length, GC.Spread.Sheets.SheetArea.viewport)\n const canEdit = new spreadNS.Style();\n canEdit.locked = false;\n\n // const range = new GC.Spread.Sheets.Range(-1, 0, -1, secondHeader.length);\n // const rowFilter = new GC.Spread.Sheets.Filter.HideRowFilter(range);\n // sheet.rowFilter(rowFilter);\n // rowFilter.filterDialogVisibleInfo({\n // sortByColor: false,\n // })\n\n // setFilterButtonVisible(rowFilter)\n\n const fontColor = new spreadNS.Style();\n fontColor.foreColor = 'red'\n fontColor.locked = false;\n const dataKeys = getDataKeys(allYear)\n console.log(dataKeys);\n // 设置表单数据和样式\n data.forEach((item, rowIndex) => {\n let isMsrp = true;\n for (let keyInd=0; keyInd {\n spread.suspendPaint();\n const sheet = spread.getActiveSheet();\n const spreadNS = GC.Spread.Sheets;\n // 过滤\n // const range = new GC.Spread.Sheets.Range(-1, 0, -1, 18);\n // const rowFilter = new GC.Spread.Sheets.Filter.HideRowFilter(range);\n // sheet.rowFilter(rowFilter);\n // rowFilter.filterDialogVisibleInfo({\n // sortByColor: false,\n // })\n // 设置单元格宽高\n // sheet.defaults.rowHeight = 40;\n // 设置列宽度\n // setColumnWidth(sheet);\n\n // 设置列数\n // sheet.setColumnCount(firstHeader.length);\n\n // 设置隐藏列头\n sheet.options.rowHeaderVisible = false\n // sheet.options.colHeaderVisible = true\n // sheet.options.clipBoardOptions = spreadNS.ClipboardPasteOptions.values;\n\n // sheet是否显示x\n spread.options.tabNavigationVisible = false\n spread.options.tabStripVisible = false\n \n //填充铺满整个canvas\n spread.options.scrollbarMaxAlign = true;\n spread.options.scrollByPixel = true;\n\n // 要设置允保护,不允许的才能生效\n sheet.options.isProtected = true;\n // 不允许单个格子编辑,是样式控制\n const sheetStyle = sheet.getDefaultStyle();\n //修改并设置表的默认样式locked为false.\n sheetStyle.locked = true;\n\n //默认对其方式\n sheetStyle.hAlign = spreadNS.HorizontalAlign.center;\n sheetStyle.vAlign = spreadNS.VerticalAlign.center;\n sheet.setDefaultStyle(sheetStyle);\n\n const fontColor = new spreadNS.Style();\n fontColor.foreColor = 'red'\n fontColor.locked = false;\n\n const fontBlackColor = new spreadNS.Style();\n fontBlackColor.foreColor = 'black'\n fontBlackColor.locked = false;\n const dataKeys = getDataKeys(allYear)\n const secondHeader = getSecondHeader(allYear)\n const setData = (args: any, type: boolean) => {\n let codeValue = ''\n if (type) {\n codeValue = sheet.getCell(args.row, args.col).value()\n } else {\n codeValue = args.newValue\n }\n \n if (isNaN(Number(args.newValue)) && !type) {\n message.error('请输入数字类型');\n sheet.resumeEvent();\n return;\n }\n const row = args.row;\n const col = args.col;\n if (allYear + baseColCount > col || row > tableData.length - 1 ) {\n return\n }\n const key = dataKeys[col]\n const rowData = tableData[row];\n const cellData = rowData[key] as MsrpData\n let isChange = true;\n let text: any = new Number(codeValue)\n const numNext = text.valueOf()\n if (typeof(numNext) === 'number') {\n if (numNext === 0 || isNaN(numNext)) {\n text = null; \n } else {\n text = text.toString()\n }\n } else {\n text = null; \n } \n\n if (cellData.override === text) {\n // override数据没发生个变化\n isChange = false;\n }\n \n // override数据没发生个变化,对应后面月份数据自动改变\n for (let i=col ; i {\n return item.id === cellData.id\n })\n\n // 当前数据不存在于saveData则存入saveData 或 和原数据不相等\n if (ind === -1 && isChange) {\n saveData.push(itemData)\n // 编辑过的Override单元格变成红色字体\n sheet.setStyle(row, i, fontColor);\n } else if (ind !== -1 && isChange){\n // 当前数据存在于saveData且变化则修改该数据\n saveData[ind].overrideValue = itemData.overrideValue; \n sheet.setStyle(row, i, fontColor); \n } else if (ind !== -1 && isChange === false){\n // 在saveData中,但是和原数据相比未变化,删除\n saveData.splice(ind, 1)\n // 回复原有样式\n if (cellData.status !== '2') {\n sheet.setStyle(row, i, fontColor);\n } else {\n sheet.setStyle(row, i, fontBlackColor);\n } \n } else {\n // 没修改,也不存在于saveData中(相当于从来没编辑过)\n if (cellData.status !== '2' && cellData.override) {\n sheet.setStyle(row, i, fontColor);\n } else {\n sheet.setStyle(row, i, fontBlackColor);\n } \n return\n } \n\n // 当前行对应修改月份后面月份的Override都变\n sheet.setValue(row, i + 2, text, GC.Spread.Sheets.SheetArea.viewport);\n\n // 数据格式设置(放在setStyle前面不生效)\n // sheet.setFormatter(row, i, \"#,##0.00\", spreadNS.SheetArea.viewport);\n sheet.setFormatter(row, i, \"#,##\", spreadNS.SheetArea.viewport);\n\n i += 2;\n }\n }\n\n spread.bind(spreadNS.Events.ValueChanged, function (e: any, args: any) {\n setData(args, false)\n });\n\n sheet.bind(GC.Spread.Sheets.Events.RangeChanged, function (sender: any, args: any) {\n if (args.action == GC.Spread.Sheets.RangeChangedAction.clear) {\n args.changedCells.forEach((arg: any) => {\n setData({...arg, newValue: null}, false)\n })\n }\n })\n\n let isCopy = false;\n\n sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (e: any, info: any) {\n isCopy = true;\n });\n\n sheet.bind(spreadNS.Events.RangeChanged, (e: any, info: any) => {\n // 只处理粘贴进来的\n if (isCopy === true) {\n info.changedCells.forEach((item: any) => {\n setData(item, true )\n })\n isCopy = false\n }\n }) \n\n const option = {\n allowSelectLockedCells: true,\n allowSelectUnlockedCells: true,\n allowFilter: true,\n allowSort: true,\n allowResizeRows: false,\n allowResizeColumns: true,\n allowEditObjects: false,\n allowDragInsertRows: true,\n allowDragInsertColumns: true,\n allowInsertRows: false,\n allowInsertColumns: false,\n allowDeleteRows: false,\n allowDeleteColumns: false\n };\n sheet.options.protectionOptions = option;\n\n spread.resumePaint();\n}\n\n// 计算表格的高度\nexport const usetableHeight = (id: string, idTop?: string) => {\n const tablePosition = reactive({tableHeight: 200});\n const resizeHandler = (): void => {\n try {\n // 获取body的高度\n const clientHeight: number = document.body.clientHeight;\n const tableOffsetTop: number = (document.querySelector(id) as HTMLDivElement).getBoundingClientRect().top;\n \n tablePosition.tableHeight = clientHeight - tableOffsetTop - 20;\n (document.querySelector(id) as HTMLDivElement).style.height = tablePosition.tableHeight + 'px'\n } catch (e) {\n console.log(e);\n }\n }\n onMounted(() => {\n resizeHandler();\n window.addEventListener('resize', resizeHandler);\n })\n\n return toRefs(tablePosition);\n}","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!./NSTGroupMSRP.vue?vue&type=style&index=0&id=5714b8e9&lang=scss&scoped=true\"","import { fetchGet, fetchPut, fetchPost, fetchGetMess } from './index'\nimport { DataAdminParam } from '@/views/RetailValidation/DataAdmin/types'\nimport { KufriPanelProps, KufirPanelData } from '@/views/System/Kufri/KufriPanelControl/types'\nimport { KufriActiveProps } from '@/views/System/Kufri/KufriActive/types'\nimport { NstMappingProps } from '@/views/System/Kufri/NstMapping/types'\nimport { UpdateMSRPProps } from '@/views/System/Kufri/UpdateMSRP/types'\nimport { NstGroupProps, VATRateProps } from '@/views/System/NSTGroupMSRP/types'\nimport { ImPACTMSRPProps } from '@/views/System/IMPACTMSRP/types'\n\nexport const getBasicData = (): Promise => {\n return fetchGet('/rvapi/basic/v1/settings/one')\n}\n\nexport const updateDeferDays = (arg: string) => {\n return fetchPut(`/rvapi/basic/v1/settings/deferDays?deferDays=${arg}`)\n}\n\nexport const updateDeferExtendDays = (arg: string) => {\n return fetchPut(`/rvapi/basic/v1/settings/deferExtendDays?deferExtendDays=${arg}`)\n}\n\nexport const updateMdfStopDays = (arg: string) => {\n return fetchPut(`/rvapi/basic/v1/settings/mdfStopDays?mdfStopDays=${arg}`)\n}\n\nexport const updateVanLicenseDeferDays = (arg: string) => {\n return fetchPut(`/rvapi/basic/v1/settings/vanLicenseDeferDays?vanLicenseDeferDays=${arg}`)\n}\n\n// kufri\nexport const getKufriPanelData = (params = {}): Promise => {\n return fetchGet('/vapi/kufri/control/init', params)\n}\n\nexport const getKufriPanelActiveVersionData = (): Promise => {\n return fetchGet('/vapi/kufri/activeVersion')\n}\n\nexport const findKufriPanelData = (params = {}): Promise => {\n return fetchGet('/vapi/kufri/control/data', params)\n}\n\n// Kufri Active\nexport const getKufriActiveData = (params = {}): Promise => {\n return fetchGet('/vapi/kufri/active/search', params)\n}\n\n// Run Kufri Active\nexport const runKufriActive = (params = {}): Promise => {\n return fetchGetMess('/vapi/kufri/active/first/three', params)\n}\n\n// Active Kufri Active\nexport const activeKufriActive = (params = {}): Promise => {\n return fetchGetMess('/vapi/kufri/active/last/two', params)\n}\n\n// 获取KPI\nexport const getKpiList = (): Promise => {\n return fetchGet('/vapi/kufri/kpis')\n}\n\n// nst Mapping \nexport const getMappingData = (params = {}): Promise => {\n return fetchGet('/vapi/kufri/nstGroup/mapping', params)\n}\n\n// save nst Mapping\nexport const saveNstMapping = (params = {}) => {\n return fetchPost('/vapi/kufri/nstGroup/mapping', params)\n}\n\n// IMPACT 通过nstGroupMapping批量获取IMPACT CODE的接口\nexport const getImpactData = (params = {}): Promise => {\n return fetchPost('/vapi/kufri/nstGroup/mapping/impact/list', params);\n}\n\n// update MSRP\nexport const getMSRPData = (params = {}): Promise => {\n return fetchGet('/vapi/msrp/detail', params)\n}\n\n// save MSRP\nexport const saveMSRPData = (params = {}) => {\n return fetchPost('/vapi/msrp/detail', params)\n}\n\n// Nst Group\nexport const getNstGroup = (params = {}): Promise => {\n return fetchGet('/vapi/msrp/nstGroup', params)\n}\n\n// \nexport const getMakeYearList = (): Promise => {\n return fetchGet(`/vapi/msrp/makeYearList`)\n}\n\n// 根据make获取有数据的version\nexport const getVersionBymake = (params = {}): Promise<{active: boolean; value: string}[]> => {\n return fetchGet(`/vapi/msrp/version`, { params })\n}\n\n// save Nst Group MSRP\nexport const saveNstGroupData = (params = {}) => {\n return fetchPost('/vapi/msrp/nstGroup', params)\n}\n\n// confirm Nst Group MSRP\nexport const confirmNstGroupData = (params: any = {}) => {\n return fetchPut(`/vapi/msrp/nstGroup?version=${params.version}&make=${params.make}&year=${params.year}`)\n}\n\n// VAT Rate\nexport const getVATRate = (params = {}): Promise => {\n return fetchGet('/vapi/msrp/vat', params)\n}\n\n// get IMPACT MSRP Override\nexport const getIMPACTMSRP = (params = {}): Promise => {\n return fetchGet('/vapi/msrp/impact', params)\n}\n\n// save IMPACT MSRP Override\nexport const saveIMPACTMSRP = (params = {}) => {\n return fetchPost('/vapi/msrp/impact', params)\n}\n"],"sourceRoot":""}