@tager/admin-banners 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +15 -4
- package/dist/index.umd.js +15 -4
- package/dist/locales/en.d.ts +1 -0
- package/dist/views/Banners/BannerList/BannerList.helpers.d.ts +2 -1
- package/package.json +3 -3
- package/src/locales/en.ts +1 -0
- package/src/locales/ru.ts +1 -0
- package/src/views/Banners/BannerList/BannerList.helpers.ts +17 -3
- package/src/views/Banners/BannerList/BannerList.vue +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -28,6 +28,7 @@ const EN = {
|
|
|
28
28
|
remove: 'Remove',
|
|
29
29
|
actions: 'actions',
|
|
30
30
|
date: 'Date',
|
|
31
|
+
name: 'Name',
|
|
31
32
|
success: 'Success',
|
|
32
33
|
error: 'Error',
|
|
33
34
|
statuses: {
|
|
@@ -67,6 +68,7 @@ const RU = {
|
|
|
67
68
|
remove: 'Удалить',
|
|
68
69
|
actions: 'Действия',
|
|
69
70
|
date: 'Дата',
|
|
71
|
+
name: 'Название',
|
|
70
72
|
success: 'Успех',
|
|
71
73
|
error: 'Ошибка',
|
|
72
74
|
statuses: {
|
|
@@ -2748,12 +2750,13 @@ function getStatus(type, t) {
|
|
|
2748
2750
|
return '';
|
|
2749
2751
|
}
|
|
2750
2752
|
}
|
|
2751
|
-
function getColumnDefs$1(t) {
|
|
2753
|
+
function getColumnDefs$1(zoneList, t) {
|
|
2752
2754
|
return [
|
|
2753
2755
|
{
|
|
2754
2756
|
id: 0,
|
|
2755
2757
|
name: '#',
|
|
2756
2758
|
field: 'id',
|
|
2759
|
+
format: ({ rowIndex }) => String(rowIndex + 1),
|
|
2757
2760
|
style: { width: '50px', textAlign: 'center' },
|
|
2758
2761
|
headStyle: { width: '50px', textAlign: 'center' },
|
|
2759
2762
|
},
|
|
@@ -2761,7 +2764,12 @@ function getColumnDefs$1(t) {
|
|
|
2761
2764
|
id: 1,
|
|
2762
2765
|
name: t('banners:zone'),
|
|
2763
2766
|
field: 'bannerZone',
|
|
2764
|
-
format: ({ row }) =>
|
|
2767
|
+
format: ({ row }) => {
|
|
2768
|
+
const foundBannerZone = zoneList.find((zone) => zone.id === row.bannerZone);
|
|
2769
|
+
return foundBannerZone
|
|
2770
|
+
? foundBannerZone.name
|
|
2771
|
+
: t('banners:bannerZoneIsDeleted');
|
|
2772
|
+
},
|
|
2765
2773
|
},
|
|
2766
2774
|
{
|
|
2767
2775
|
id: 2,
|
|
@@ -2803,6 +2811,9 @@ function getColumnDefs$1(t) {
|
|
|
2803
2811
|
],
|
|
2804
2812
|
});
|
|
2805
2813
|
},
|
|
2814
|
+
options: {
|
|
2815
|
+
shouldOpenNewTab: true,
|
|
2816
|
+
},
|
|
2806
2817
|
},
|
|
2807
2818
|
{
|
|
2808
2819
|
id: 6,
|
|
@@ -2927,7 +2938,7 @@ var script$1 = defineComponent({
|
|
|
2927
2938
|
const isBusy = (bannerId) => {
|
|
2928
2939
|
return isDeleting(bannerId) || isBannersLoading.value;
|
|
2929
2940
|
};
|
|
2930
|
-
const columnDefs = computed(() => getColumnDefs$1(context.root.$t));
|
|
2941
|
+
const columnDefs = computed(() => getColumnDefs$1(zoneList.value, context.root.$t));
|
|
2931
2942
|
const isRowDataLoading = computed(() => isBannersLoading.value || isZonesLoading.value);
|
|
2932
2943
|
return {
|
|
2933
2944
|
columnDefs,
|
|
@@ -3178,7 +3189,7 @@ __vue_render__$1._withStripped = true;
|
|
|
3178
3189
|
/* style */
|
|
3179
3190
|
const __vue_inject_styles__$1 = function (inject) {
|
|
3180
3191
|
if (!inject) return
|
|
3181
|
-
inject("data-v-
|
|
3192
|
+
inject("data-v-23927d9c_0", { source: ".filters {\n display: flex;\n margin: 0 -10px;\n}\n.filters:not(:first-child) {\n margin-top: 10px;\n}\n.filters .filter {\n padding: 10px 10px 0;\n width: 50%;\n margin: 0;\n}\n\n/*# sourceMappingURL=BannerList.vue.map */", map: {"version":3,"sources":["/home/runner/work/tager-admin-banners/tager-admin-banners/src/views/Banners/BannerList/BannerList.vue","BannerList.vue"],"names":[],"mappings":"AA0NA;EACA,aAAA;EACA,eAAA;ACzNA;AD2NA;EACA,gBAAA;ACzNA;AD4NA;EACA,oBAAA;EACA,UAAA;EACA,SAAA;AC1NA;;AAEA,yCAAyC","file":"BannerList.vue","sourcesContent":["<template>\n <page\n :title=\"$t('banners:banners')\"\n :header-buttons=\"[\n {\n text: $t('banners:createBanner'),\n href: getBannersBannerFormUrl({ bannerId: 'create' }),\n },\n ]\"\n >\n <template v-slot:content>\n <data-table\n :column-defs=\"columnDefs\"\n :row-data=\"rowData\"\n :loading=\"isRowDataLoading\"\n :error-message=\"errorMessage\"\n data-table=\"banners\"\n :use-search=\"true\"\n :use-pagination=\"true\"\n :search-query=\"searchQuery\"\n :pagination=\"{\n pageNumber,\n pageCount,\n pageSize,\n disabled: isRowDataLoading,\n }\"\n @change=\"handleChange\"\n >\n <template v-slot:filters>\n <advanced-search :tags=\"tags\" @click:tag=\"tagRemovalHandler\">\n <div class=\"filters\">\n <form-field-multi-select\n v-model=\"zoneFilter\"\n :options=\"zonesOptionList\"\n name=\"zoneFilter\"\n :searchable=\"true\"\n :label=\"$t('banners:zone')\"\n class=\"filter\"\n />\n\n <form-field\n v-model=\"dateFilter\"\n :label=\"$t('banners:date')\"\n name=\"dateFilter\"\n type=\"date\"\n class=\"filter\"\n />\n\n <form-field-multi-select\n v-model=\"statusFilter\"\n :options=\"statusesOptionList\"\n name=\"statusFilter\"\n :searchable=\"true\"\n :label=\"$t('banners:status')\"\n class=\"filter\"\n />\n </div>\n </advanced-search>\n </template>\n\n <template v-slot:cell(actions)=\"{ row }\">\n <base-button\n variant=\"icon\"\n :title=\"$t('banners:edit')\"\n :disabled=\"isBusy(row.id)\"\n :href=\"getBannersBannerFormUrl({ bannerId: row.id })\"\n >\n <svg-icon name=\"edit\" />\n </base-button>\n\n <base-button\n variant=\"icon\"\n :title=\"$t('banners:remove')\"\n :disabled=\"isBusy(row.id)\"\n @click=\"handleResourceDelete(row.id)\"\n >\n <svg-icon name=\"delete\" />\n </base-button>\n </template>\n </data-table>\n </template>\n </page>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n SetupContext,\n watch,\n} from '@vue/composition-api';\nimport isEqual from 'lodash.isequal';\nimport pick from 'lodash.pick';\n\nimport {\n ColumnDefinition,\n useDataTable,\n useTranslation,\n} from '@tager/admin-ui';\nimport { useResourceDelete } from '@tager/admin-services';\n\nimport { deleteBanner, getBanners } from '../../../services/requests';\nimport { Banner } from '../../../typings/banners';\nimport { getBannersBannerFormUrl } from '../../../constants/paths';\nimport { useFetchZones } from '../../../hooks';\n\nimport { getColumnDefs } from './BannerList.helpers';\nimport { useAdvancedSearch } from './hooks';\n\nexport default defineComponent({\n name: 'BannerList',\n setup(props, context: SetupContext) {\n const { t } = useTranslation(context);\n const { loading: isZonesLoading, data: zoneList } = useFetchZones({\n context,\n });\n\n const {\n zoneFilter,\n zonesOptionList,\n dateFilter,\n statusFilter,\n statusesOptionList,\n filterParams,\n tags,\n tagRemovalHandler,\n } = useAdvancedSearch({\n context,\n t,\n zoneList,\n });\n\n const {\n fetchEntityList: fetchBanners,\n isLoading: isBannersLoading,\n rowData,\n errorMessage,\n handleChange,\n searchQuery,\n pageNumber,\n pageCount,\n pageSize,\n } = useDataTable<Banner>({\n fetchEntityList: (params) =>\n getBanners({\n query: params.searchQuery,\n pageNumber: params.pageNumber,\n pageSize: params.pageSize,\n ...filterParams.value,\n }),\n initialValue: [],\n context,\n resourceName: 'Banners',\n });\n\n watch(filterParams, () => {\n if (isZonesLoading.value) {\n return;\n }\n\n const newQuery = {\n ...pick(context.root.$route.query, ['query', 'pageNumber']),\n ...filterParams.value,\n };\n\n if (!isEqual(context.root.$route.query, newQuery)) {\n context.root.$router.replace({ query: newQuery });\n fetchBanners();\n }\n });\n\n const { isDeleting, handleResourceDelete } = useResourceDelete({\n deleteResource: deleteBanner,\n resourceName: 'Banner',\n onSuccess: fetchBanners,\n context,\n });\n\n const isBusy = (bannerId: number): boolean => {\n return isDeleting(bannerId) || isBannersLoading.value;\n };\n\n const columnDefs = computed<ColumnDefinition<Banner>[]>(() =>\n getColumnDefs(zoneList.value, context.root.$t)\n );\n\n const isRowDataLoading = computed<boolean>(\n () => isBannersLoading.value || isZonesLoading.value\n );\n\n return {\n columnDefs,\n isRowDataLoading,\n rowData,\n errorMessage,\n handleChange,\n getBannersBannerFormUrl,\n searchQuery,\n pageNumber,\n pageCount,\n pageSize,\n isBusy,\n handleResourceDelete,\n\n // Advanced search\n zoneFilter,\n zonesOptionList,\n dateFilter,\n statusFilter,\n statusesOptionList,\n tags,\n tagRemovalHandler,\n };\n },\n});\n</script>\n\n<style lang=\"scss\">\n.filters {\n display: flex;\n margin: 0 -10px;\n\n &:not(:first-child) {\n margin-top: 10px;\n }\n\n .filter {\n padding: 10px 10px 0;\n width: 50%;\n margin: 0;\n }\n}\n</style>\n",".filters {\n display: flex;\n margin: 0 -10px;\n}\n.filters:not(:first-child) {\n margin-top: 10px;\n}\n.filters .filter {\n padding: 10px 10px 0;\n width: 50%;\n margin: 0;\n}\n\n/*# sourceMappingURL=BannerList.vue.map */"]}, media: undefined });
|
|
3182
3193
|
|
|
3183
3194
|
};
|
|
3184
3195
|
/* scoped */
|
package/dist/index.umd.js
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
remove: 'Remove',
|
|
30
30
|
actions: 'actions',
|
|
31
31
|
date: 'Date',
|
|
32
|
+
name: 'Name',
|
|
32
33
|
success: 'Success',
|
|
33
34
|
error: 'Error',
|
|
34
35
|
statuses: {
|
|
@@ -68,6 +69,7 @@
|
|
|
68
69
|
remove: 'Удалить',
|
|
69
70
|
actions: 'Действия',
|
|
70
71
|
date: 'Дата',
|
|
72
|
+
name: 'Название',
|
|
71
73
|
success: 'Успех',
|
|
72
74
|
error: 'Ошибка',
|
|
73
75
|
statuses: {
|
|
@@ -2749,12 +2751,13 @@
|
|
|
2749
2751
|
return '';
|
|
2750
2752
|
}
|
|
2751
2753
|
}
|
|
2752
|
-
function getColumnDefs$1(t) {
|
|
2754
|
+
function getColumnDefs$1(zoneList, t) {
|
|
2753
2755
|
return [
|
|
2754
2756
|
{
|
|
2755
2757
|
id: 0,
|
|
2756
2758
|
name: '#',
|
|
2757
2759
|
field: 'id',
|
|
2760
|
+
format: ({ rowIndex }) => String(rowIndex + 1),
|
|
2758
2761
|
style: { width: '50px', textAlign: 'center' },
|
|
2759
2762
|
headStyle: { width: '50px', textAlign: 'center' },
|
|
2760
2763
|
},
|
|
@@ -2762,7 +2765,12 @@
|
|
|
2762
2765
|
id: 1,
|
|
2763
2766
|
name: t('banners:zone'),
|
|
2764
2767
|
field: 'bannerZone',
|
|
2765
|
-
format: ({ row }) =>
|
|
2768
|
+
format: ({ row }) => {
|
|
2769
|
+
const foundBannerZone = zoneList.find((zone) => zone.id === row.bannerZone);
|
|
2770
|
+
return foundBannerZone
|
|
2771
|
+
? foundBannerZone.name
|
|
2772
|
+
: t('banners:bannerZoneIsDeleted');
|
|
2773
|
+
},
|
|
2766
2774
|
},
|
|
2767
2775
|
{
|
|
2768
2776
|
id: 2,
|
|
@@ -2804,6 +2812,9 @@
|
|
|
2804
2812
|
],
|
|
2805
2813
|
});
|
|
2806
2814
|
},
|
|
2815
|
+
options: {
|
|
2816
|
+
shouldOpenNewTab: true,
|
|
2817
|
+
},
|
|
2807
2818
|
},
|
|
2808
2819
|
{
|
|
2809
2820
|
id: 6,
|
|
@@ -2928,7 +2939,7 @@
|
|
|
2928
2939
|
const isBusy = (bannerId) => {
|
|
2929
2940
|
return isDeleting(bannerId) || isBannersLoading.value;
|
|
2930
2941
|
};
|
|
2931
|
-
const columnDefs = compositionApi.computed(() => getColumnDefs$1(context.root.$t));
|
|
2942
|
+
const columnDefs = compositionApi.computed(() => getColumnDefs$1(zoneList.value, context.root.$t));
|
|
2932
2943
|
const isRowDataLoading = compositionApi.computed(() => isBannersLoading.value || isZonesLoading.value);
|
|
2933
2944
|
return {
|
|
2934
2945
|
columnDefs,
|
|
@@ -3179,7 +3190,7 @@
|
|
|
3179
3190
|
/* style */
|
|
3180
3191
|
const __vue_inject_styles__$1 = function (inject) {
|
|
3181
3192
|
if (!inject) return
|
|
3182
|
-
inject("data-v-
|
|
3193
|
+
inject("data-v-23927d9c_0", { source: ".filters {\n display: flex;\n margin: 0 -10px;\n}\n.filters:not(:first-child) {\n margin-top: 10px;\n}\n.filters .filter {\n padding: 10px 10px 0;\n width: 50%;\n margin: 0;\n}\n\n/*# sourceMappingURL=BannerList.vue.map */", map: {"version":3,"sources":["/home/runner/work/tager-admin-banners/tager-admin-banners/src/views/Banners/BannerList/BannerList.vue","BannerList.vue"],"names":[],"mappings":"AA0NA;EACA,aAAA;EACA,eAAA;ACzNA;AD2NA;EACA,gBAAA;ACzNA;AD4NA;EACA,oBAAA;EACA,UAAA;EACA,SAAA;AC1NA;;AAEA,yCAAyC","file":"BannerList.vue","sourcesContent":["<template>\n <page\n :title=\"$t('banners:banners')\"\n :header-buttons=\"[\n {\n text: $t('banners:createBanner'),\n href: getBannersBannerFormUrl({ bannerId: 'create' }),\n },\n ]\"\n >\n <template v-slot:content>\n <data-table\n :column-defs=\"columnDefs\"\n :row-data=\"rowData\"\n :loading=\"isRowDataLoading\"\n :error-message=\"errorMessage\"\n data-table=\"banners\"\n :use-search=\"true\"\n :use-pagination=\"true\"\n :search-query=\"searchQuery\"\n :pagination=\"{\n pageNumber,\n pageCount,\n pageSize,\n disabled: isRowDataLoading,\n }\"\n @change=\"handleChange\"\n >\n <template v-slot:filters>\n <advanced-search :tags=\"tags\" @click:tag=\"tagRemovalHandler\">\n <div class=\"filters\">\n <form-field-multi-select\n v-model=\"zoneFilter\"\n :options=\"zonesOptionList\"\n name=\"zoneFilter\"\n :searchable=\"true\"\n :label=\"$t('banners:zone')\"\n class=\"filter\"\n />\n\n <form-field\n v-model=\"dateFilter\"\n :label=\"$t('banners:date')\"\n name=\"dateFilter\"\n type=\"date\"\n class=\"filter\"\n />\n\n <form-field-multi-select\n v-model=\"statusFilter\"\n :options=\"statusesOptionList\"\n name=\"statusFilter\"\n :searchable=\"true\"\n :label=\"$t('banners:status')\"\n class=\"filter\"\n />\n </div>\n </advanced-search>\n </template>\n\n <template v-slot:cell(actions)=\"{ row }\">\n <base-button\n variant=\"icon\"\n :title=\"$t('banners:edit')\"\n :disabled=\"isBusy(row.id)\"\n :href=\"getBannersBannerFormUrl({ bannerId: row.id })\"\n >\n <svg-icon name=\"edit\" />\n </base-button>\n\n <base-button\n variant=\"icon\"\n :title=\"$t('banners:remove')\"\n :disabled=\"isBusy(row.id)\"\n @click=\"handleResourceDelete(row.id)\"\n >\n <svg-icon name=\"delete\" />\n </base-button>\n </template>\n </data-table>\n </template>\n </page>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n SetupContext,\n watch,\n} from '@vue/composition-api';\nimport isEqual from 'lodash.isequal';\nimport pick from 'lodash.pick';\n\nimport {\n ColumnDefinition,\n useDataTable,\n useTranslation,\n} from '@tager/admin-ui';\nimport { useResourceDelete } from '@tager/admin-services';\n\nimport { deleteBanner, getBanners } from '../../../services/requests';\nimport { Banner } from '../../../typings/banners';\nimport { getBannersBannerFormUrl } from '../../../constants/paths';\nimport { useFetchZones } from '../../../hooks';\n\nimport { getColumnDefs } from './BannerList.helpers';\nimport { useAdvancedSearch } from './hooks';\n\nexport default defineComponent({\n name: 'BannerList',\n setup(props, context: SetupContext) {\n const { t } = useTranslation(context);\n const { loading: isZonesLoading, data: zoneList } = useFetchZones({\n context,\n });\n\n const {\n zoneFilter,\n zonesOptionList,\n dateFilter,\n statusFilter,\n statusesOptionList,\n filterParams,\n tags,\n tagRemovalHandler,\n } = useAdvancedSearch({\n context,\n t,\n zoneList,\n });\n\n const {\n fetchEntityList: fetchBanners,\n isLoading: isBannersLoading,\n rowData,\n errorMessage,\n handleChange,\n searchQuery,\n pageNumber,\n pageCount,\n pageSize,\n } = useDataTable<Banner>({\n fetchEntityList: (params) =>\n getBanners({\n query: params.searchQuery,\n pageNumber: params.pageNumber,\n pageSize: params.pageSize,\n ...filterParams.value,\n }),\n initialValue: [],\n context,\n resourceName: 'Banners',\n });\n\n watch(filterParams, () => {\n if (isZonesLoading.value) {\n return;\n }\n\n const newQuery = {\n ...pick(context.root.$route.query, ['query', 'pageNumber']),\n ...filterParams.value,\n };\n\n if (!isEqual(context.root.$route.query, newQuery)) {\n context.root.$router.replace({ query: newQuery });\n fetchBanners();\n }\n });\n\n const { isDeleting, handleResourceDelete } = useResourceDelete({\n deleteResource: deleteBanner,\n resourceName: 'Banner',\n onSuccess: fetchBanners,\n context,\n });\n\n const isBusy = (bannerId: number): boolean => {\n return isDeleting(bannerId) || isBannersLoading.value;\n };\n\n const columnDefs = computed<ColumnDefinition<Banner>[]>(() =>\n getColumnDefs(zoneList.value, context.root.$t)\n );\n\n const isRowDataLoading = computed<boolean>(\n () => isBannersLoading.value || isZonesLoading.value\n );\n\n return {\n columnDefs,\n isRowDataLoading,\n rowData,\n errorMessage,\n handleChange,\n getBannersBannerFormUrl,\n searchQuery,\n pageNumber,\n pageCount,\n pageSize,\n isBusy,\n handleResourceDelete,\n\n // Advanced search\n zoneFilter,\n zonesOptionList,\n dateFilter,\n statusFilter,\n statusesOptionList,\n tags,\n tagRemovalHandler,\n };\n },\n});\n</script>\n\n<style lang=\"scss\">\n.filters {\n display: flex;\n margin: 0 -10px;\n\n &:not(:first-child) {\n margin-top: 10px;\n }\n\n .filter {\n padding: 10px 10px 0;\n width: 50%;\n margin: 0;\n }\n}\n</style>\n",".filters {\n display: flex;\n margin: 0 -10px;\n}\n.filters:not(:first-child) {\n margin-top: 10px;\n}\n.filters .filter {\n padding: 10px 10px 0;\n width: 50%;\n margin: 0;\n}\n\n/*# sourceMappingURL=BannerList.vue.map */"]}, media: undefined });
|
|
3183
3194
|
|
|
3184
3195
|
};
|
|
3185
3196
|
/* scoped */
|
package/dist/locales/en.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { TFunction } from 'i18next';
|
|
2
2
|
import { ColumnDefinition } from '@tager/admin-ui';
|
|
3
3
|
import { Banner, Status } from '../../../typings/banners';
|
|
4
|
+
import { Zone } from '../../../typings/zones';
|
|
4
5
|
export declare function getStatus(type: Status, t: TFunction): string;
|
|
5
|
-
export declare function getColumnDefs(t: TFunction): ColumnDefinition<Banner>[];
|
|
6
|
+
export declare function getColumnDefs(zoneList: Zone[], t: TFunction): ColumnDefinition<Banner>[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tager/admin-banners",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.umd.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"@rollup/plugin-commonjs": "^15.0.0",
|
|
28
28
|
"@rollup/plugin-node-resolve": "^9.0.0",
|
|
29
29
|
"@tager/admin-dynamic-field": "^0.1.18",
|
|
30
|
-
"@tager/admin-layout": "^0.5.
|
|
30
|
+
"@tager/admin-layout": "^0.5.4",
|
|
31
31
|
"@tager/admin-services": "^0.2.26",
|
|
32
|
-
"@tager/admin-ui": "^0.8.
|
|
32
|
+
"@tager/admin-ui": "^0.8.96",
|
|
33
33
|
"@types/lodash.isequal": "^4.5.5",
|
|
34
34
|
"@types/lodash.pick": "^4.4.6",
|
|
35
35
|
"@types/node": "12.x",
|
package/src/locales/en.ts
CHANGED
package/src/locales/ru.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { TFunction } from 'i18next';
|
|
|
3
3
|
import { ColumnDefinition } from '@tager/admin-ui';
|
|
4
4
|
|
|
5
5
|
import { Banner, Status } from '../../../typings/banners';
|
|
6
|
+
import { Zone } from '../../../typings/zones';
|
|
6
7
|
|
|
7
8
|
export function getStatus(type: Status, t: TFunction) {
|
|
8
9
|
switch (type) {
|
|
@@ -20,12 +21,16 @@ export function getStatus(type: Status, t: TFunction) {
|
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
export function getColumnDefs(
|
|
24
|
+
export function getColumnDefs(
|
|
25
|
+
zoneList: Zone[],
|
|
26
|
+
t: TFunction
|
|
27
|
+
): ColumnDefinition<Banner>[] {
|
|
24
28
|
return [
|
|
25
29
|
{
|
|
26
30
|
id: 0,
|
|
27
31
|
name: '#',
|
|
28
32
|
field: 'id',
|
|
33
|
+
format: ({ rowIndex }) => String(rowIndex + 1),
|
|
29
34
|
style: { width: '50px', textAlign: 'center' },
|
|
30
35
|
headStyle: { width: '50px', textAlign: 'center' },
|
|
31
36
|
},
|
|
@@ -33,8 +38,14 @@ export function getColumnDefs(t: TFunction): ColumnDefinition<Banner>[] {
|
|
|
33
38
|
id: 1,
|
|
34
39
|
name: t('banners:zone'),
|
|
35
40
|
field: 'bannerZone',
|
|
36
|
-
format: ({ row }) =>
|
|
37
|
-
|
|
41
|
+
format: ({ row }) => {
|
|
42
|
+
const foundBannerZone = zoneList.find(
|
|
43
|
+
(zone) => zone.id === row.bannerZone
|
|
44
|
+
);
|
|
45
|
+
return foundBannerZone
|
|
46
|
+
? foundBannerZone.name
|
|
47
|
+
: t('banners:bannerZoneIsDeleted');
|
|
48
|
+
},
|
|
38
49
|
},
|
|
39
50
|
{
|
|
40
51
|
id: 2,
|
|
@@ -76,6 +87,9 @@ export function getColumnDefs(t: TFunction): ColumnDefinition<Banner>[] {
|
|
|
76
87
|
},
|
|
77
88
|
],
|
|
78
89
|
}),
|
|
90
|
+
options: {
|
|
91
|
+
shouldOpenNewTab: true,
|
|
92
|
+
},
|
|
79
93
|
},
|
|
80
94
|
{
|
|
81
95
|
id: 6,
|
|
@@ -181,7 +181,7 @@ export default defineComponent({
|
|
|
181
181
|
};
|
|
182
182
|
|
|
183
183
|
const columnDefs = computed<ColumnDefinition<Banner>[]>(() =>
|
|
184
|
-
getColumnDefs(context.root.$t)
|
|
184
|
+
getColumnDefs(zoneList.value, context.root.$t)
|
|
185
185
|
);
|
|
186
186
|
|
|
187
187
|
const isRowDataLoading = computed<boolean>(
|