4 changed files with 382 additions and 166 deletions
@ -1,98 +0,0 @@ |
|||
<template> |
|||
<w-dialog ref="dialogRef" :title="$t('erm.appetite.spread.detail.dialog.title')" width="1200px" height="700px" :can-maximize="false"> |
|||
<q-tabs v-model="selectedTabRef" inline-label active-bg-color="primary" active-color="white"> |
|||
<q-tab name="businessObject" icon="bi-graph-up-arrow" :label="$t('erm.appetite.spread.businessObject.grid.title')" no-caps> </q-tab> |
|||
<q-tab name="industry" icon="bi-grid-3x3-gap" :label="$t('erm.appetite.spread.industry.grid.title')" no-caps> </q-tab> |
|||
<q-tab name="shareholder" icon="bi-people" :label="$t('erm.appetite.spread.shareholder.grid.title')" no-caps> </q-tab> |
|||
<q-tab name="supervision" icon="bi-stoplights" :label="$t('erm.appetite.spread.supervision.grid.title')" no-caps> </q-tab> |
|||
<q-tab name="coreIndicator" icon="bi-speedometer2" :label="$t('erm.appetite.spread.coreIndicator.grid.title')" no-caps> </q-tab> |
|||
</q-tabs> |
|||
<q-tab-panels v-model="selectedTabRef" swipeable vertical transition-prev="jump-up" transition-next="jump-up"> |
|||
<q-tab-panel name="businessObject"> |
|||
<SpreadBusinessObject :relation-id="currentIdRef"></SpreadBusinessObject> |
|||
</q-tab-panel> |
|||
<q-tab-panel name="industry"> |
|||
<SpreadIndustry :relation-id="currentIdRef"></SpreadIndustry> |
|||
</q-tab-panel> |
|||
<q-tab-panel name="shareholder"> |
|||
<SpreadShareholder :relation-id="currentIdRef"></SpreadShareholder> |
|||
</q-tab-panel> |
|||
<q-tab-panel name="supervision"> |
|||
<SreadSupervision :relation-id="currentIdRef"></SreadSupervision> |
|||
</q-tab-panel> |
|||
<q-tab-panel name="coreIndicator"> |
|||
<SreadCoreIndicator :relation-id="currentIdRef"></SreadCoreIndicator> |
|||
</q-tab-panel> |
|||
</q-tab-panels> |
|||
<!-- |
|||
<div class="p-2"> |
|||
<q-list padding bordered class="rounded-borders" dense> |
|||
<q-expansion-item expand-separator icon="bi-geo-alt" :label="$t('erm.appetite.spread.businessObject.grid.title')" default-opened class="bg-neutral-200"> |
|||
<q-card> |
|||
<q-card-section class="p-0"> |
|||
<SpreadBusinessObject :relation-id="currentIdRef"></SpreadBusinessObject> |
|||
</q-card-section> |
|||
</q-card> |
|||
</q-expansion-item> |
|||
<q-expansion-item expand-separator icon="bi-geo-alt" :label="$t('erm.appetite.spread.industry.grid.title')" default-opened class="bg-neutral-200"> |
|||
<q-card> |
|||
<q-card-section class="p-0"> |
|||
<SpreadIndustry :relation-id="currentIdRef"></SpreadIndustry> |
|||
</q-card-section> |
|||
</q-card> |
|||
</q-expansion-item> |
|||
<q-expansion-item expand-separator icon="bi-geo-alt" :label="$t('erm.appetite.spread.shareholder.grid.title')" default-opened class="bg-neutral-200"> |
|||
<q-card> |
|||
<q-card-section class="p-0"> |
|||
<SpreadShareholder :relation-id="currentIdRef"></SpreadShareholder> |
|||
</q-card-section> |
|||
</q-card> |
|||
</q-expansion-item> |
|||
<q-expansion-item expand-separator icon="bi-geo-alt" :label="$t('erm.appetite.spread.supervision.grid.title')" default-opened class="bg-neutral-200"> |
|||
<q-card> |
|||
<q-card-section class="p-0"> |
|||
<SreadSupervision :relation-id="currentIdRef"></SreadSupervision> |
|||
</q-card-section> |
|||
</q-card> |
|||
</q-expansion-item> |
|||
<q-expansion-item expand-separator icon="bi-geo-alt" :label="$t('erm.appetite.spread.coreIndicator.grid.title')" default-opened class="bg-neutral-200"> |
|||
<q-card> |
|||
<q-card-section class="p-0"> |
|||
<SreadCoreIndicator :relation-id="currentIdRef"></SreadCoreIndicator> |
|||
</q-card-section> |
|||
</q-card> |
|||
</q-expansion-item> |
|||
</q-list> |
|||
</div> |
|||
--> |
|||
</w-dialog> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
import { ref, onUpdated } from 'vue'; |
|||
import { axios, Environment, NotifyManager, Tools, DictionaryTools } from 'platform-core'; |
|||
import SpreadBusinessObject from './SpreadBusinessObject.vue'; |
|||
import SpreadIndustry from './SpreadIndustry.vue'; |
|||
import SpreadShareholder from './SpreadShareholder.vue'; |
|||
import SreadSupervision from './SreadSupervision.vue'; |
|||
import SreadCoreIndicator from './SreadCoreIndicator.vue'; |
|||
|
|||
const dialogRef = ref(); |
|||
const selectedTabRef = ref('businessObject'); |
|||
const currentIdRef = ref(''); |
|||
|
|||
const open = (id: string) => { |
|||
currentIdRef.value = id; |
|||
dialogRef.value.show(); |
|||
}; |
|||
|
|||
const close = () => { |
|||
dialogRef.value.hide(); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
open, |
|||
close, |
|||
}); |
|||
|
|||
const BANK_BUSINESS = await DictionaryTools.fetch('BANK_BUSINESS'); |
|||
</script> |
@ -0,0 +1,98 @@ |
|||
<template> |
|||
<w-dialog ref="dialogRef" :title="$t('erm.appetite.spread.detail.dialog.title')" width="1200px" height="700px" :can-maximize="false"> |
|||
<q-tabs v-model="selectedTabRef" inline-label active-bg-color="primary" active-color="white"> |
|||
<q-tab name="businessObject" icon="bi-graph-up-arrow" :label="$t('erm.appetite.spread.businessObject.grid.title')" no-caps> </q-tab> |
|||
<q-tab name="industry" icon="bi-grid-3x3-gap" :label="$t('erm.appetite.spread.industry.grid.title')" no-caps> </q-tab> |
|||
<q-tab name="shareholder" icon="bi-people" :label="$t('erm.appetite.spread.shareholder.grid.title')" no-caps> </q-tab> |
|||
<q-tab name="supervision" icon="bi-stoplights" :label="$t('erm.appetite.spread.supervision.grid.title')" no-caps> </q-tab> |
|||
<q-tab name="coreIndicator" icon="bi-speedometer2" :label="$t('erm.appetite.spread.coreIndicator.grid.title')" no-caps> </q-tab> |
|||
</q-tabs> |
|||
<q-tab-panels v-model="selectedTabRef" swipeable vertical transition-prev="jump-up" transition-next="jump-up"> |
|||
<q-tab-panel name="businessObject"> |
|||
<SpreadBusinessObject :relation-id="currentIdRef"></SpreadBusinessObject> |
|||
</q-tab-panel> |
|||
<q-tab-panel name="industry"> |
|||
<SpreadIndustry :relation-id="currentIdRef"></SpreadIndustry> |
|||
</q-tab-panel> |
|||
<q-tab-panel name="shareholder"> |
|||
<SpreadShareholder :relation-id="currentIdRef"></SpreadShareholder> |
|||
</q-tab-panel> |
|||
<q-tab-panel name="supervision"> |
|||
<SreadSupervision :relation-id="currentIdRef"></SreadSupervision> |
|||
</q-tab-panel> |
|||
<q-tab-panel name="coreIndicator"> |
|||
<SreadCoreIndicator :relation-id="currentIdRef"></SreadCoreIndicator> |
|||
</q-tab-panel> |
|||
</q-tab-panels> |
|||
<!-- |
|||
<div class="p-2"> |
|||
<q-list padding bordered class="rounded-borders" dense> |
|||
<q-expansion-item expand-separator icon="bi-geo-alt" :label="$t('erm.appetite.spread.businessObject.grid.title')" default-opened class="bg-neutral-200"> |
|||
<q-card> |
|||
<q-card-section class="p-0"> |
|||
<SpreadBusinessObject :relation-id="currentIdRef"></SpreadBusinessObject> |
|||
</q-card-section> |
|||
</q-card> |
|||
</q-expansion-item> |
|||
<q-expansion-item expand-separator icon="bi-geo-alt" :label="$t('erm.appetite.spread.industry.grid.title')" default-opened class="bg-neutral-200"> |
|||
<q-card> |
|||
<q-card-section class="p-0"> |
|||
<SpreadIndustry :relation-id="currentIdRef"></SpreadIndustry> |
|||
</q-card-section> |
|||
</q-card> |
|||
</q-expansion-item> |
|||
<q-expansion-item expand-separator icon="bi-geo-alt" :label="$t('erm.appetite.spread.shareholder.grid.title')" default-opened class="bg-neutral-200"> |
|||
<q-card> |
|||
<q-card-section class="p-0"> |
|||
<SpreadShareholder :relation-id="currentIdRef"></SpreadShareholder> |
|||
</q-card-section> |
|||
</q-card> |
|||
</q-expansion-item> |
|||
<q-expansion-item expand-separator icon="bi-geo-alt" :label="$t('erm.appetite.spread.supervision.grid.title')" default-opened class="bg-neutral-200"> |
|||
<q-card> |
|||
<q-card-section class="p-0"> |
|||
<SreadSupervision :relation-id="currentIdRef"></SreadSupervision> |
|||
</q-card-section> |
|||
</q-card> |
|||
</q-expansion-item> |
|||
<q-expansion-item expand-separator icon="bi-geo-alt" :label="$t('erm.appetite.spread.coreIndicator.grid.title')" default-opened class="bg-neutral-200"> |
|||
<q-card> |
|||
<q-card-section class="p-0"> |
|||
<SreadCoreIndicator :relation-id="currentIdRef"></SreadCoreIndicator> |
|||
</q-card-section> |
|||
</q-card> |
|||
</q-expansion-item> |
|||
</q-list> |
|||
</div> |
|||
--> |
|||
</w-dialog> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
import { ref, onUpdated } from 'vue'; |
|||
import { axios, Environment, NotifyManager, Tools, DictionaryTools } from 'platform-core'; |
|||
import SpreadBusinessObject from './SpreadBusinessObject.vue'; |
|||
import SpreadIndustry from './SpreadIndustry.vue'; |
|||
import SpreadShareholder from './SpreadShareholder.vue'; |
|||
import SreadSupervision from './SreadSupervision.vue'; |
|||
import SreadCoreIndicator from './SreadCoreIndicator.vue'; |
|||
|
|||
const dialogRef = ref(); |
|||
const selectedTabRef = ref('businessObject'); |
|||
const currentIdRef = ref(''); |
|||
|
|||
const open = (id: string) => { |
|||
currentIdRef.value = id; |
|||
dialogRef.value.show(); |
|||
}; |
|||
|
|||
const close = () => { |
|||
dialogRef.value.hide(); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
open, |
|||
close, |
|||
}); |
|||
|
|||
const BANK_BUSINESS = await DictionaryTools.fetch('BANK_BUSINESS'); |
|||
</script> |
@ -1,59 +1,258 @@ |
|||
<template> |
|||
<q-splitter v-model="splitWidthRef"> |
|||
<template #before> |
|||
<q-tabs v-model="selectedTab" vertical no-caps> |
|||
<q-tab name="formElements" label="All Form Elements" /> |
|||
<q-tab name="codemirror" label="code-mirror" /> |
|||
</q-tabs> |
|||
</template> |
|||
<div class="q-pa-md"> |
|||
<q-table flat bordered separator="cell" title="Treats" :rows="rows2" :columns="columns" row-key="name" hide-no-data> |
|||
<template v-if="rows && rows.length > 0" #header="props"> |
|||
<q-tr :props="props"> |
|||
<q-th v-for="col in props.cols" :key="col.name" :props="props" class="text-italic text-purple"> |
|||
{{ col.label }} |
|||
</q-th> |
|||
</q-tr> |
|||
</template> |
|||
<template v-else #header="props"> |
|||
<q-tr :props="props"> |
|||
<q-th v-for="col in props.cols" :key="col.name" :props="props" class="text-italic text-purple"> |
|||
{{ col.label }} |
|||
</q-th> |
|||
</q-tr> |
|||
<q-tr :props="props" style="height: 300px"> </q-tr> |
|||
</template> |
|||
|
|||
<template #after> |
|||
<q-tab-panels v-model="selectedTab" animated swipeable vertical transition-prev="jump-up" transition-next="jump-up"> |
|||
<q-tab-panel name="formElements"> |
|||
<w-form |
|||
:cols-num="1" |
|||
:fields="[ |
|||
{ name: 'color', label: 'please select color', type: 'color-input', outlined: true, dense: true }, |
|||
{ name: 'colorPalette', label: 'please select color palette', type: 'color-input-palette', outlined: true, dense: true }, |
|||
{ |
|||
name: 'codemirror', |
|||
label: 'please input SQL', |
|||
type: 'code-mirror', |
|||
outlined: true, |
|||
lang: 'sql', |
|||
dense: true, |
|||
rows: 5, |
|||
readonlyIf: () => { |
|||
return true; |
|||
}, |
|||
}, |
|||
{ name: 'cron', label: 'please input cron expression', type: 'cron', outlined: true, dense: true }, |
|||
{ name: 'position', label: 'please select position', type: 'position', outlined: true, dense: true, readOnly: true }, |
|||
{ name: 'icon', label: 'please select icon', type: 'icon', outlined: true, dense: true }, |
|||
{ name: 'dataComeFrom', label: '', type: 'select', options: Options.enum(DataComeFromEnums.DataComeFrom) }, |
|||
{ name: 'dataComeFrom', label: '', type: 'select', options: Options.enum(DataComeFromEnums.UrlOpenType) }, |
|||
]" |
|||
> |
|||
</w-form> |
|||
</q-tab-panel> |
|||
<q-tab-panel name="codemirror"> |
|||
<q-input v-model="valueRef" label="please input number 1:" outlined dense clearable></q-input> |
|||
<w-code-mirror v-model="valueRef" label="please input SQL:" lang="sql" outlined dense></w-code-mirror> |
|||
<q-input v-model="valueRef" label="please input number 2:" outlined dense clearable></q-input> |
|||
<w-icon v-model="iconValueRef" label="please select icon:" lang="sql" outlined dense></w-icon> |
|||
</q-tab-panel> |
|||
</q-tab-panels> |
|||
</template> |
|||
</q-splitter> |
|||
<template #body="props"> |
|||
<q-tr :props="props"> |
|||
<q-td key="name" :props="props"> |
|||
{{ props.row.name }} |
|||
</q-td> |
|||
<q-td key="calories" :props="props"> |
|||
<q-badge color="green"> |
|||
{{ props.row.calories }} |
|||
</q-badge> |
|||
</q-td> |
|||
<q-td key="fat" :props="props"> |
|||
<q-badge color="purple"> |
|||
{{ props.row.fat }} |
|||
</q-badge> |
|||
</q-td> |
|||
<q-td key="carbs" :props="props"> |
|||
<q-badge color="orange"> |
|||
{{ props.row.carbs }} |
|||
</q-badge> |
|||
</q-td> |
|||
<q-td key="protein" :props="props"> |
|||
<q-badge color="primary"> |
|||
{{ props.row.protein }} |
|||
</q-badge> |
|||
</q-td> |
|||
<q-td key="sodium" :props="props"> |
|||
<q-badge color="teal"> |
|||
{{ props.row.sodium }} |
|||
</q-badge> |
|||
</q-td> |
|||
<q-td key="calcium" :props="props"> |
|||
<q-badge color="accent"> |
|||
{{ props.row.calcium }} |
|||
</q-badge> |
|||
</q-td> |
|||
<q-td key="iron" :props="props"> |
|||
<q-badge color="amber"> |
|||
{{ props.row.iron }} |
|||
</q-badge> |
|||
</q-td> |
|||
</q-tr> |
|||
</template> |
|||
</q-table> |
|||
</div> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
import { ref } from 'vue'; |
|||
import { EnumTools, Options } from '@/platform'; |
|||
|
|||
const selectedTab = ref('codemirror'); |
|||
const splitWidthRef = ref(20); |
|||
const valueRef = ref('xxxx'); |
|||
const iconValueRef = ref('8k_plus'); |
|||
<script> |
|||
import { ref } from 'vue'; |
|||
const columns = [ |
|||
{ |
|||
name: 'name', |
|||
required: true, |
|||
label: 'Dessert (100g serving)', |
|||
align: 'left', |
|||
field: (row) => row.name, |
|||
format: (val) => `${val}`, |
|||
sortable: true, |
|||
}, |
|||
{ name: 'calories', align: 'center', label: 'Calories', field: 'calories', sortable: true }, |
|||
{ name: 'fat', label: 'Fat (g)', field: 'fat', sortable: true }, |
|||
{ name: 'carbs', label: 'Carbs (g)', field: 'carbs' }, |
|||
{ name: 'protein', label: 'Protein (g)', field: 'protein' }, |
|||
{ name: 'sodium', label: 'Sodium (mg)', field: 'sodium' }, |
|||
{ name: 'calcium', label: 'Calcium (%)', field: 'calcium', sortable: true, sort: (a, b) => parseInt(a, 10) - parseInt(b, 10) }, |
|||
{ name: 'iron', label: 'Iron (%)', field: 'iron', sortable: true, sort: (a, b) => parseInt(a, 10) - parseInt(b, 10) }, |
|||
]; |
|||
const rows = []; |
|||
const rows2 = [ |
|||
{ |
|||
name: 'Frozen Yogurt', |
|||
calories: 159, |
|||
fat: 6.0, |
|||
carbs: 24, |
|||
protein: 4.0, |
|||
sodium: 87, |
|||
calcium: '14%', |
|||
iron: '1%', |
|||
}, |
|||
{ |
|||
name: 'Ice cream sandwich', |
|||
calories: 237, |
|||
fat: 9.0, |
|||
carbs: 37, |
|||
protein: 4.3, |
|||
sodium: 129, |
|||
calcium: '8%', |
|||
iron: '1%', |
|||
}, |
|||
{ |
|||
name: 'Eclair', |
|||
calories: 262, |
|||
fat: 16.0, |
|||
carbs: 23, |
|||
protein: 6.0, |
|||
sodium: 337, |
|||
calcium: '6%', |
|||
iron: '7%', |
|||
}, |
|||
{ |
|||
name: 'Cupcake', |
|||
calories: 305, |
|||
fat: 3.7, |
|||
carbs: 67, |
|||
protein: 4.3, |
|||
sodium: 413, |
|||
calcium: '3%', |
|||
iron: '8%', |
|||
}, |
|||
{ |
|||
name: 'Gingerbread', |
|||
calories: 356, |
|||
fat: 16.0, |
|||
carbs: 49, |
|||
protein: 3.9, |
|||
sodium: 327, |
|||
calcium: '7%', |
|||
iron: '16%', |
|||
}, |
|||
{ |
|||
name: 'Jelly bean', |
|||
calories: 375, |
|||
fat: 0.0, |
|||
carbs: 94, |
|||
protein: 0.0, |
|||
sodium: 50, |
|||
calcium: '0%', |
|||
iron: '0%', |
|||
}, |
|||
{ |
|||
name: 'Lollipop', |
|||
calories: 392, |
|||
fat: 0.2, |
|||
carbs: 98, |
|||
protein: 0, |
|||
sodium: 38, |
|||
calcium: '0%', |
|||
iron: '2%', |
|||
}, |
|||
{ |
|||
name: 'Honeycomb', |
|||
calories: 408, |
|||
fat: 3.2, |
|||
carbs: 87, |
|||
protein: 6.5, |
|||
sodium: 562, |
|||
calcium: '0%', |
|||
iron: '45%', |
|||
}, |
|||
{ |
|||
name: 'Donut', |
|||
calories: 452, |
|||
fat: 25.0, |
|||
carbs: 51, |
|||
protein: 4.9, |
|||
sodium: 326, |
|||
calcium: '2%', |
|||
iron: '22%', |
|||
}, |
|||
{ |
|||
name: 'KitKat', |
|||
calories: 518, |
|||
fat: 26.0, |
|||
carbs: 65, |
|||
protein: 7, |
|||
sodium: 54, |
|||
calcium: '12%', |
|||
iron: '6%', |
|||
}, |
|||
{ |
|||
name: 'KitKat', |
|||
calories: 518, |
|||
fat: 26.0, |
|||
carbs: 65, |
|||
protein: 7, |
|||
sodium: 54, |
|||
calcium: '12%', |
|||
iron: '6%', |
|||
}, |
|||
{ |
|||
name: 'KitKat', |
|||
calories: 518, |
|||
fat: 26.0, |
|||
carbs: 65, |
|||
protein: 7, |
|||
sodium: 54, |
|||
calcium: '12%', |
|||
iron: '6%', |
|||
}, |
|||
{ |
|||
name: 'KitKat', |
|||
calories: 518, |
|||
fat: 26.0, |
|||
carbs: 65, |
|||
protein: 7, |
|||
sodium: 54, |
|||
calcium: '12%', |
|||
iron: '6%', |
|||
}, |
|||
{ |
|||
name: 'KitKat', |
|||
calories: 518, |
|||
fat: 26.0, |
|||
carbs: 65, |
|||
protein: 7, |
|||
sodium: 54, |
|||
calcium: '12%', |
|||
iron: '6%', |
|||
}, |
|||
{ |
|||
name: 'KitKat', |
|||
calories: 518, |
|||
fat: 26.0, |
|||
carbs: 65, |
|||
protein: 7, |
|||
sodium: 54, |
|||
calcium: '12%', |
|||
iron: '6%', |
|||
}, |
|||
{ |
|||
name: 'KitKat', |
|||
calories: 518, |
|||
fat: 26.0, |
|||
carbs: 65, |
|||
protein: 7, |
|||
sodium: 54, |
|||
calcium: '12%', |
|||
iron: '6%', |
|||
}, |
|||
]; |
|||
|
|||
const DataComeFromEnums = await EnumTools.fetch(['io.sc.platform.orm.api.enums.DataComeFrom', 'io.sc.platform.system.enums.UrlOpenType']); |
|||
export default { |
|||
setup() { |
|||
return { |
|||
columns, |
|||
rows, |
|||
}; |
|||
}, |
|||
}; |
|||
</script> |
|||
|
Loading…
Reference in new issue