diff --git a/src/pages/04_product-service/MainPage.vue b/src/pages/04_product-service/MainPage.vue index b2220029..8dffc7cb 100644 --- a/src/pages/04_product-service/MainPage.vue +++ b/src/pages/04_product-service/MainPage.vue @@ -204,6 +204,39 @@ const serviceTab = [ const hideStat = ref(false); const tbColumn = { + + groupAndType: [ + + { + name: 'name', + align:'left', + label: 'name', + field: 'name', + }, + { + name: 'detail', + align:'left', + label: 'detail', + field: 'detail', + }, + { + name: 'formDialogInputRemark', + align:'left', + label: 'formDialogInputRemark', + field: 'remark', + }, + { + name: 'createdAt', + align:'left', + label: 'createdAt', + field: 'createdAt', + } + + + + + ], + product: [ { name: 'productName', align: 'left', label: 'productName', field: 'name' }, { @@ -241,11 +274,17 @@ const tbColumn = { }, ], } satisfies { + groupAndType: QTableProps['columns']; product: QTableProps['columns']; service: QTableProps['columns']; }; const tbControl = reactive({ + + groupAndType: { + fieldDisplay: ['name', 'detail', 'formDialogInputRemark', 'createdAt'], + fieldSelected: ['name', 'detail', 'formDialogInputRemark', 'createdAt'], + }, product: { fieldDisplay: [ 'productName', @@ -1235,88 +1274,544 @@ watch(inputSearchProductAndService, async () => {
-
-
- {{ $t('productAndServiceType') }} -
-
- {{ $t('productAndServiceAll') }} -
+
- - - - - {{ $t('all') }} - - - {{ $t('statusACTIVE') }} - - - {{ $t('statusINACTIVE') }} - - - - + +
+ + + + + {{ $t('all') }} + + + {{ $t('statusACTIVE') }} + + + {{ $t('statusINACTIVE') }} + + + + + + + + + + + +
-
-
-
+
+ + + + + + + + +
@@ -2758,4 +3253,74 @@ watch(inputSearchProductAndService, async () => { cursor: pointer; text-decoration: underline; } + +.status-active { + --_branch-status-color: var(--green-6-hsl); +} + +.status-inactive { + --_branch-status-color: var(--red-4-hsl); + --_branch-badge-bg: var(--red-4-hsl); + filter: grayscale(0.5); + opacity: 0.5; +} + +.icon-color-purple { + --_color: var(--violet-11-hsl); +} + +.icon-color-pink { + --_color: var(--pink-6-hsl); +} + +.icon-color-orange { + --_color: var(--orange-5-hsl); +} + +.icon-color-green { + --_color: var(--teal-10-hsl); +} + +.dark .icon-color-purple { + --_color: var(--violet-10-hsl); +} + +.dark .icon-color-green { + --_color: var(--teal-8-hsl); +} + +.dark .icon-color-orange { + --_color: var(--orange-6-hsl); +} + +.branch-card__icon { + + background-color: hsla(var(--_color) / 0.15); + color: hsla(var(--_color) / 1); + + border-radius: 50%; + padding: var(--size-1); + position: relative; + transform: rotate(45deg); + + &::after { + content: ' '; + display: block; + block-size: 0.5rem; + aspect-ratio: 1; + position: absolute; + border-radius: 50%; + right: -0.1rem; + top: calc(50% - 0.25rem); + bottom: calc(50% - 0.25rem); + background-color: hsla(var(--_branch-status-color) / 1); + } + + & :deep(.q-avatar) { + transform: rotate(-45deg); + color: hsla(var(--_branch-card-bg) / 1); + } +} + + toggleStatusGroup(props.row