From 77c760c02205a6d2a9aaed7e085a5a5777b3228d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EB=A7=8C=EC=96=B5=20=28Jo=29?= Date: Mon, 10 Nov 2025 06:22:43 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=BF=A0=ED=8F=B0=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.dev | 4 + .env.live | 4 + .env.qa | 4 + .env.sandbox | 4 + layers/components/atoms/Input.vue | 58 ++ layers/components/atoms/Select.vue | 99 ++ .../atoms/icons/ArrowDoubleLeftLine.vue | 34 + .../components/atoms/icons/CalendarLine.vue | 32 + layers/components/atoms/icons/CheckLine.vue | 28 + .../atoms/icons/CloseCircleFill.vue | 28 + layers/components/atoms/icons/CouponFill.vue | 28 + layers/components/atoms/icons/DesktopLine.vue | 32 + layers/components/atoms/icons/SearchLine.vue | 28 + .../atoms/icons/SelectArrowDownFill.vue | 26 + layers/components/blocks/DatePicker.vue | 524 +++++++++++ layers/components/blocks/Pagination.vue | 150 +++ layers/components/widgets/FixSubTitle.vue | 4 +- layers/composables/uesGameLinkedData.ts | 175 ++++ layers/composables/useCoupon.ts | 222 +++++ layers/composables/useTemplateRegistry.ts | 4 +- layers/plugins/datepicker.ts | 6 + layers/stores/useCouponStore.ts | 111 +++ layers/templates/FxCoupon01/index.vue | 855 ++++++++++++++++++ layers/templates/FxDownload01/index.vue | 13 +- layers/types/api/couponData.ts | 104 +++ layers/types/api/gameLinkedData.ts | 90 ++ layers/utils/stoveUtil.ts | 12 + nuxt.config.ts | 3 + package.json | 1 + pnpm-lock.yaml | 14 + .../common/ic-v2-community-calendar-line.png | Bin 0 -> 448 bytes .../common/ic-v2-navigation-coupon-fill.png | Bin 0 -> 336 bytes .../common/ic-v2-navigation-search-line.png | Bin 0 -> 294 bytes 33 files changed, 2681 insertions(+), 16 deletions(-) create mode 100644 layers/components/atoms/Input.vue create mode 100644 layers/components/atoms/Select.vue create mode 100644 layers/components/atoms/icons/ArrowDoubleLeftLine.vue create mode 100644 layers/components/atoms/icons/CalendarLine.vue create mode 100644 layers/components/atoms/icons/CheckLine.vue create mode 100644 layers/components/atoms/icons/CloseCircleFill.vue create mode 100644 layers/components/atoms/icons/CouponFill.vue create mode 100644 layers/components/atoms/icons/DesktopLine.vue create mode 100644 layers/components/atoms/icons/SearchLine.vue create mode 100644 layers/components/atoms/icons/SelectArrowDownFill.vue create mode 100644 layers/components/blocks/DatePicker.vue create mode 100644 layers/components/blocks/Pagination.vue create mode 100644 layers/composables/uesGameLinkedData.ts create mode 100644 layers/composables/useCoupon.ts create mode 100644 layers/plugins/datepicker.ts create mode 100644 layers/stores/useCouponStore.ts create mode 100644 layers/templates/FxCoupon01/index.vue create mode 100644 layers/types/api/couponData.ts create mode 100644 layers/types/api/gameLinkedData.ts create mode 100644 public/images/common/ic-v2-community-calendar-line.png create mode 100644 public/images/common/ic-v2-navigation-coupon-fill.png create mode 100644 public/images/common/ic-v2-navigation-search-line.png diff --git a/.env.dev b/.env.dev index f43da0b..45e6091 100644 --- a/.env.dev +++ b/.env.dev @@ -15,6 +15,10 @@ STOVE_M_API_URL=https://maintenance.gate8.com # STOVE - GNB STOVE_GNB=https://js-cdn-dev.onstove.com/libs/common-gnb/latest/stove-gnb.js +# STOVE - Coupon +STOVE_COUPON_URL=https://bill-dev.onstove.com/History/UserCouponList.aspx +STOVE_M_COUPON_URL=https://bill-dev.onstove.com/g-coupon/RegCouponM.aspx + # STOVE - Client Download STOVE_LAUNCHER_SCRIPT=https://js-cdn.gate8.com/libs/stove-js-service/latest/launcher-pack.js STOVE_CLIENT_DOWNLOAD_URL=https://sgs-gate8-dl.game.playstove.com/game/lcs/STOVESetup.exe diff --git a/.env.live b/.env.live index d8200e9..711fecb 100644 --- a/.env.live +++ b/.env.live @@ -15,6 +15,10 @@ STOVE_M_API_URL=https://maintenance.onstove.com # STOVE - GNB STOVE_GNB=https://js-cdn.onstove.com/libs/common-gnb/latest/stove-gnb.js +# STOVE - Coupon +STOVE_COUPON_URL=https://bill-dev.onstove.com/History/UserCouponList.aspx +STOVE_M_COUPON_URL=https://bill-dev.onstove.com/g-coupon/RegCouponM.aspx + # STOVE - Client Download STOVE_LAUNCHER_SCRIPT=https://js-cdn.onstove.com/libs/stove-js-service/latest/launcher-pack.js STOVE_CLIENT_DOWNLOAD_URL=https://sgs-live-dl.game.playstove.com/game/lcs/STOVESetup.exe diff --git a/.env.qa b/.env.qa index 401fcc6..6e6d5f2 100644 --- a/.env.qa +++ b/.env.qa @@ -15,6 +15,10 @@ STOVE_M_API_URL=https://maintenance.gate8.com # STOVE - GNB STOVE_GNB=https://js-cdn-qa.onstove.com/libs/common-gnb/latest/stove-gnb.js +# STOVE - Coupon +STOVE_COUPON_URL=https://bill-qa.onstove.com/History/UserCouponList.aspx +STOVE_M_COUPON_URL=https://bill-qa.onstove.com/g-coupon/RegCouponM.aspx + # STOVE - Client Download STOVE_LAUNCHER_SCRIPT=https://js-cdn.gate8.com/libs/stove-js-service/latest/launcher-pack.js STOVE_CLIENT_DOWNLOAD_URL=https://sgs-gate8-dl.game.playstove.com/game/lcs/STOVESetup.exe diff --git a/.env.sandbox b/.env.sandbox index 5c03b91..d5c3676 100644 --- a/.env.sandbox +++ b/.env.sandbox @@ -15,6 +15,10 @@ STOVE_M_API_URL=https://maintenance.gate8.com # STOVE - GNB STOVE_GNB=https://js-cdn.gate8.com/libs/common-gnb/latest/stove-gnb.js +# STOVE - Coupon +STOVE_COUPON_URL=https://bill-qa.onstove.com/History/UserCouponList.aspx +STOVE_M_COUPON_URL=https://bill-qa.onstove.com/g-coupon/RegCouponM.aspx + # STOVE - Client Download STOVE_LAUNCHER_SCRIPT=https://js-cdn.gate8.com/libs/stove-js-service/latest/launcher-pack.js STOVE_CLIENT_DOWNLOAD_URL=https://sgs-gate8-dl.game.playstove.com/game/lcs/STOVESetup.exe diff --git a/layers/components/atoms/Input.vue b/layers/components/atoms/Input.vue new file mode 100644 index 0000000..a80f637 --- /dev/null +++ b/layers/components/atoms/Input.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/layers/components/atoms/Select.vue b/layers/components/atoms/Select.vue new file mode 100644 index 0000000..f941b2c --- /dev/null +++ b/layers/components/atoms/Select.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/layers/components/atoms/icons/ArrowDoubleLeftLine.vue b/layers/components/atoms/icons/ArrowDoubleLeftLine.vue new file mode 100644 index 0000000..df021bd --- /dev/null +++ b/layers/components/atoms/icons/ArrowDoubleLeftLine.vue @@ -0,0 +1,34 @@ + + + diff --git a/layers/components/atoms/icons/CalendarLine.vue b/layers/components/atoms/icons/CalendarLine.vue new file mode 100644 index 0000000..87f2519 --- /dev/null +++ b/layers/components/atoms/icons/CalendarLine.vue @@ -0,0 +1,32 @@ + + + diff --git a/layers/components/atoms/icons/CheckLine.vue b/layers/components/atoms/icons/CheckLine.vue new file mode 100644 index 0000000..d33c59e --- /dev/null +++ b/layers/components/atoms/icons/CheckLine.vue @@ -0,0 +1,28 @@ + + + diff --git a/layers/components/atoms/icons/CloseCircleFill.vue b/layers/components/atoms/icons/CloseCircleFill.vue new file mode 100644 index 0000000..959b44c --- /dev/null +++ b/layers/components/atoms/icons/CloseCircleFill.vue @@ -0,0 +1,28 @@ + + + diff --git a/layers/components/atoms/icons/CouponFill.vue b/layers/components/atoms/icons/CouponFill.vue new file mode 100644 index 0000000..3527139 --- /dev/null +++ b/layers/components/atoms/icons/CouponFill.vue @@ -0,0 +1,28 @@ + + + diff --git a/layers/components/atoms/icons/DesktopLine.vue b/layers/components/atoms/icons/DesktopLine.vue new file mode 100644 index 0000000..ed9dbdc --- /dev/null +++ b/layers/components/atoms/icons/DesktopLine.vue @@ -0,0 +1,32 @@ + + + diff --git a/layers/components/atoms/icons/SearchLine.vue b/layers/components/atoms/icons/SearchLine.vue new file mode 100644 index 0000000..3ec5e68 --- /dev/null +++ b/layers/components/atoms/icons/SearchLine.vue @@ -0,0 +1,28 @@ + + + diff --git a/layers/components/atoms/icons/SelectArrowDownFill.vue b/layers/components/atoms/icons/SelectArrowDownFill.vue new file mode 100644 index 0000000..87b9b74 --- /dev/null +++ b/layers/components/atoms/icons/SelectArrowDownFill.vue @@ -0,0 +1,26 @@ + + + diff --git a/layers/components/blocks/DatePicker.vue b/layers/components/blocks/DatePicker.vue new file mode 100644 index 0000000..f9e805f --- /dev/null +++ b/layers/components/blocks/DatePicker.vue @@ -0,0 +1,524 @@ + + + + + diff --git a/layers/components/blocks/Pagination.vue b/layers/components/blocks/Pagination.vue new file mode 100644 index 0000000..aeaf013 --- /dev/null +++ b/layers/components/blocks/Pagination.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/layers/components/widgets/FixSubTitle.vue b/layers/components/widgets/FixSubTitle.vue index 6da2947..d97ff25 100644 --- a/layers/components/widgets/FixSubTitle.vue +++ b/layers/components/widgets/FixSubTitle.vue @@ -43,11 +43,11 @@ const componentProps = computed(() => {