From f3df6db60762e99a63841f875f82372ad79c83af Mon Sep 17 00:00:00 2001 From: Hide_D Date: Thu, 31 Mar 2022 01:50:24 +0900 Subject: [PATCH] =?UTF-8?q?feat(wip):=20=EC=9E=A5=EC=88=98=ED=8C=A8?= =?UTF-8?q?=EB=84=90=EC=97=90=20ag-grid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/ts/PageNationGeneral.vue | 22 ++- hwe/ts/components/GeneralList.vue | 249 ++++++++++++++++++++++-------- hwe/ts/v_nationGeneral.ts | 2 + package-lock.json | 30 ++++ package.json | 2 + 5 files changed, 233 insertions(+), 72 deletions(-) diff --git a/hwe/ts/PageNationGeneral.vue b/hwe/ts/PageNationGeneral.vue index e9986766..5e83e4b7 100644 --- a/hwe/ts/PageNationGeneral.vue +++ b/hwe/ts/PageNationGeneral.vue @@ -1,7 +1,7 @@ @@ -23,7 +23,7 @@ import { merge2DArrToObjectArr } from "./util/merge2DArrToObjectArr"; import type { GeneralListItem } from "./defs/API/Nation"; import GeneralList from "./components/GeneralList.vue"; -const generalList = ref(new Map()); +const generalList = ref([]); const title = "세력 장수"; @@ -33,13 +33,13 @@ onMounted(async () => { //XXX: 로직상 똑같은데.... if (permission == 0) { const rawGeneralList = merge2DArrToObjectArr(column, list); - generalList.value = new Map(rawGeneralList.map((v) => [v.no, { permission, ...v }])); + generalList.value = rawGeneralList.map((v) => {return { permission, ...v }}); } else if (permission == 1) { const rawGeneralList = merge2DArrToObjectArr(column, list); - generalList.value = new Map(rawGeneralList.map((v) => [v.no, { permission, ...v }])); + generalList.value = rawGeneralList.map((v) => {return { permission, ...v }}); } else if ([2, 3, 4].includes(permission)) { const rawGeneralList = merge2DArrToObjectArr(column, list); - generalList.value = new Map(rawGeneralList.map((v) => [v.no, { permission, ...v }])); + generalList.value = rawGeneralList.map((v) => {return { permission, ...v }}); } else { throw `?? ${permission}`; } @@ -50,3 +50,15 @@ onMounted(async () => { } }); + + \ No newline at end of file diff --git a/hwe/ts/components/GeneralList.vue b/hwe/ts/components/GeneralList.vue index 0deb153e..0860fd45 100644 --- a/hwe/ts/components/GeneralList.vue +++ b/hwe/ts/components/GeneralList.vue @@ -1,56 +1,88 @@ - + + + diff --git a/hwe/ts/v_nationGeneral.ts b/hwe/ts/v_nationGeneral.ts index 3364dad0..e877b3d5 100644 --- a/hwe/ts/v_nationGeneral.ts +++ b/hwe/ts/v_nationGeneral.ts @@ -1,4 +1,6 @@ import "@scss/nationGeneral.scss"; +import "ag-grid-community/dist/styles/ag-grid.css"; +import "ag-grid-community/dist/styles/ag-theme-balham-dark.css"; import { createApp } from 'vue' import PageNationGeneral from '@/PageNationGeneral.vue'; diff --git a/package-lock.json b/package-lock.json index 7e6936f4..3b81b866 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,6 +37,8 @@ "@typescript-eslint/parser": "^5.14.0", "@vue/compiler-sfc": "^3.2.31", "@vue/eslint-config-typescript": "^10.0.0", + "ag-grid-community": "^27.1.0", + "ag-grid-vue3": "^27.1.0", "async-validator": "^4.0.7", "autoprefixer": "^10.4.2", "axios": "^0.26.1", @@ -3066,6 +3068,20 @@ "node": ">=0.4.0" } }, + "node_modules/ag-grid-community": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/ag-grid-community/-/ag-grid-community-27.1.0.tgz", + "integrity": "sha512-SWzIJTNa7C6Vinizelcoc1FAJQRt1pDn+A8XHQDO2GTQT+VjBnPL8fg94fLJy0EEvqaN5IhDybNS0nD07SKIQw==" + }, + "node_modules/ag-grid-vue3": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/ag-grid-vue3/-/ag-grid-vue3-27.1.0.tgz", + "integrity": "sha512-3kZCK4UiFc/jCGvMy7zXjNG130GLuLboqoo4jzdLnD9PNR4hzqYjKVnCFHAQVi9Zj3hRBAWDwEU18MHukZuwKA==", + "dependencies": { + "ag-grid-community": "~27.1.0", + "vue": "^3.0.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -12796,6 +12812,20 @@ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.1.tgz", "integrity": "sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w==" }, + "ag-grid-community": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/ag-grid-community/-/ag-grid-community-27.1.0.tgz", + "integrity": "sha512-SWzIJTNa7C6Vinizelcoc1FAJQRt1pDn+A8XHQDO2GTQT+VjBnPL8fg94fLJy0EEvqaN5IhDybNS0nD07SKIQw==" + }, + "ag-grid-vue3": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/ag-grid-vue3/-/ag-grid-vue3-27.1.0.tgz", + "integrity": "sha512-3kZCK4UiFc/jCGvMy7zXjNG130GLuLboqoo4jzdLnD9PNR4hzqYjKVnCFHAQVi9Zj3hRBAWDwEU18MHukZuwKA==", + "requires": { + "ag-grid-community": "~27.1.0", + "vue": "^3.0.0" + } + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", diff --git a/package.json b/package.json index 5e5f9be9..c355febb 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,8 @@ "@typescript-eslint/parser": "^5.14.0", "@vue/compiler-sfc": "^3.2.31", "@vue/eslint-config-typescript": "^10.0.0", + "ag-grid-community": "^27.1.0", + "ag-grid-vue3": "^27.1.0", "async-validator": "^4.0.7", "autoprefixer": "^10.4.2", "axios": "^0.26.1",