ダイアログに検索追加
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -3,13 +3,15 @@
|
|||||||
<div v-if="!isLoaded" class="spinner flex flex-center">
|
<div v-if="!isLoaded" class="spinner flex flex-center">
|
||||||
<q-spinner color="primary" size="3em" />
|
<q-spinner color="primary" size="3em" />
|
||||||
</div>
|
</div>
|
||||||
<q-table v-else row-key="name" :selection="type" v-model:selected="selected" :columns="columns" :rows="rows"
|
<q-table v-else row-key="index" :selection="type" v-model:selected="selected" :columns="columns" :rows="rows"
|
||||||
class="action-table"
|
class="action-table"
|
||||||
flat bordered
|
flat bordered
|
||||||
virtual-scroll
|
virtual-scroll
|
||||||
:pagination="pagination"
|
:pagination="pagination"
|
||||||
:rows-per-page-options="[0]"
|
:rows-per-page-options="[0]"
|
||||||
/>
|
:filter="filter"
|
||||||
|
>
|
||||||
|
</q-table>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@@ -20,9 +22,10 @@ export default {
|
|||||||
name: 'actionSelect',
|
name: 'actionSelect',
|
||||||
props: {
|
props: {
|
||||||
name: String,
|
name: String,
|
||||||
type: String
|
type: String,
|
||||||
|
filter:String
|
||||||
},
|
},
|
||||||
setup() {
|
setup(props) {
|
||||||
const isLoaded=ref(false);
|
const isLoaded=ref(false);
|
||||||
const columns = [
|
const columns = [
|
||||||
{ name: 'name', required: true,label: 'アクション名',align: 'left',field: 'name',sortable: true},
|
{ name: 'name', required: true,label: 'アクション名',align: 'left',field: 'name',sortable: true},
|
||||||
@@ -32,9 +35,9 @@ export default {
|
|||||||
const rows = reactive([])
|
const rows = reactive([])
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
const res =await api.get('api/actions');
|
const res =await api.get('api/actions');
|
||||||
res.data.forEach((item) =>
|
res.data.forEach((item,index) =>
|
||||||
{
|
{
|
||||||
rows.push({name:item.name,desc:item.title,outputPoints:item.outputpoints,property:item.property});
|
rows.push({index,name:item.name,desc:item.title,outputPoints:item.outputpoints,property:item.property});
|
||||||
});
|
});
|
||||||
isLoaded.value=true;
|
isLoaded.value=true;
|
||||||
});
|
});
|
||||||
@@ -54,5 +57,6 @@ export default {
|
|||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.action-table{
|
.action-table{
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
max-height: 540px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -3,7 +3,19 @@
|
|||||||
<div v-if="!isLoaded" class="spinner flex flex-center">
|
<div v-if="!isLoaded" class="spinner flex flex-center">
|
||||||
<q-spinner color="primary" size="3em" />
|
<q-spinner color="primary" size="3em" />
|
||||||
</div>
|
</div>
|
||||||
<q-table v-else :selection="type" v-model:selected="selected" :columns="columns" :rows="rows" >
|
<q-table v-else
|
||||||
|
class="app-table"
|
||||||
|
:selection="type"
|
||||||
|
row-key="id"
|
||||||
|
v-model:selected="selected"
|
||||||
|
flat bordered
|
||||||
|
virtual-scroll
|
||||||
|
:columns="columns"
|
||||||
|
:rows="rows"
|
||||||
|
:pagination="pagination"
|
||||||
|
:rows-per-page-options="[0]"
|
||||||
|
:filter="filter"
|
||||||
|
>
|
||||||
<template v-slot:body-cell-description="props">
|
<template v-slot:body-cell-description="props">
|
||||||
<q-td :props="props">
|
<q-td :props="props">
|
||||||
<q-scroll-area class="description-cell">
|
<q-scroll-area class="description-cell">
|
||||||
@@ -23,7 +35,8 @@ export default {
|
|||||||
name: 'AppSelect',
|
name: 'AppSelect',
|
||||||
props: {
|
props: {
|
||||||
name: String,
|
name: String,
|
||||||
type: String
|
type: String,
|
||||||
|
filter:String
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const columns = [
|
const columns = [
|
||||||
@@ -63,7 +76,10 @@ export default {
|
|||||||
columns,
|
columns,
|
||||||
rows,
|
rows,
|
||||||
selected: ref([]),
|
selected: ref([]),
|
||||||
isLoaded
|
isLoaded,
|
||||||
|
pagination:ref({
|
||||||
|
rowsPerPage:10
|
||||||
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -81,4 +97,8 @@ export default {
|
|||||||
min-height: 300px;
|
min-height: 300px;
|
||||||
min-width: 400px;
|
min-width: 400px;
|
||||||
}
|
}
|
||||||
|
.app-table{
|
||||||
|
height: 100%;
|
||||||
|
max-height: 600px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<show-dialog v-model:visible="showflg" name="条件エディタ" @close="closeDg" width="60vw" height="60vh">
|
<show-dialog v-model:visible="showflg" name="条件エディタ" @close="closeDg" min-width="60vw" min-height="60vh">
|
||||||
<template v-slot:toolbar>
|
<template v-slot:toolbar>
|
||||||
<q-btn flat round dense icon="more_vert" >
|
<q-btn flat round dense icon="more_vert" >
|
||||||
<q-menu auto-close anchor="bottom start">
|
<q-menu auto-close anchor="bottom start">
|
||||||
|
|||||||
@@ -14,7 +14,14 @@
|
|||||||
</template>
|
</template>
|
||||||
</q-field>
|
</q-field>
|
||||||
<show-dialog v-model:visible="show" name="条件設定項目一覧" @close="closeDg" width="600px">
|
<show-dialog v-model:visible="show" name="条件設定項目一覧" @close="closeDg" width="600px">
|
||||||
<condition-objects ref="appDg" name="フィールド" type="single" :appId="store.appInfo?.appId" :vars="vars"></condition-objects>
|
<template v-slot:toolbar>
|
||||||
|
<q-input dense debounce="200" v-model="filter" placeholder="検索" clearable>
|
||||||
|
<template v-slot:before>
|
||||||
|
<q-icon name="search" />
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
<condition-objects ref="appDg" name="フィールド" type="single" :filter="filter" :appId="store.appInfo?.appId" :vars="vars"></condition-objects>
|
||||||
</show-dialog>
|
</show-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -48,7 +55,7 @@
|
|||||||
if(store.currentFlow!==undefined && store.activeNode!==undefined ){
|
if(store.currentFlow!==undefined && store.activeNode!==undefined ){
|
||||||
vars =store.currentFlow.getVarNames(store.activeNode);
|
vars =store.currentFlow.getVarNames(store.activeNode);
|
||||||
}
|
}
|
||||||
|
const filter=ref('');
|
||||||
const showDg = () => {
|
const showDg = () => {
|
||||||
show.value = true;
|
show.value = true;
|
||||||
};
|
};
|
||||||
@@ -71,7 +78,8 @@
|
|||||||
closeDg,
|
closeDg,
|
||||||
selectedObject,
|
selectedObject,
|
||||||
vars:reactive(vars),
|
vars:reactive(vars),
|
||||||
isSelected
|
isSelected,
|
||||||
|
filter
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<q-tab-panels v-model="tab" animated>
|
<q-tab-panels v-model="tab" animated>
|
||||||
<q-tab-panel name="fields">
|
<q-tab-panel name="fields">
|
||||||
<field-list v-model="selected" type="single" :appId="appId"></field-list>
|
<field-list v-model="selected" type="single" :filter="filter" :appId="appId"></field-list>
|
||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
|
|
||||||
<q-tab-panel name="vars" >
|
<q-tab-panel name="vars" >
|
||||||
@@ -44,7 +44,8 @@ export default {
|
|||||||
name: String,
|
name: String,
|
||||||
type: String,
|
type: String,
|
||||||
appId: Number,
|
appId: Number,
|
||||||
vars: Array
|
vars: Array,
|
||||||
|
filter:String
|
||||||
},
|
},
|
||||||
setup(props) {
|
setup(props) {
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
<q-table flat bordered :loading="!isLoaded" row-key="name" :selection="type"
|
<q-table flat bordered :loading="!isLoaded" row-key="name" :selection="type"
|
||||||
:selected="modelValue"
|
:selected="modelValue"
|
||||||
@update:selected="$emit('update:modelValue', $event)"
|
@update:selected="$emit('update:modelValue', $event)"
|
||||||
|
:filter="filter"
|
||||||
:columns="columns" :rows="rows" />
|
:columns="columns" :rows="rows" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -16,7 +17,8 @@ export default {
|
|||||||
name: String,
|
name: String,
|
||||||
type: String,
|
type: String,
|
||||||
appId: Number,
|
appId: Number,
|
||||||
modelValue:Array
|
modelValue:Array,
|
||||||
|
filter:String
|
||||||
},
|
},
|
||||||
emits:[
|
emits:[
|
||||||
'update:modelValue'
|
'update:modelValue'
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- <div class="q-pa-md q-gutter-sm" > -->
|
<!-- <div class="q-pa-md q-gutter-sm" > -->
|
||||||
<q-dialog :model-value="visible" persistent bordered>
|
<q-dialog :model-value="visible" persistent bordered>
|
||||||
<q-card :style="{minWidth : width}" >
|
<q-card :style="cardStyle" >
|
||||||
<q-toolbar class="bg-grey-4">
|
<q-toolbar class="bg-grey-4">
|
||||||
<q-toolbar-title>{{ name }}</q-toolbar-title>
|
<q-toolbar-title>{{ name }}</q-toolbar-title>
|
||||||
<q-space></q-space>
|
<q-space></q-space>
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
<q-card-section>
|
<q-card-section>
|
||||||
<!-- <div class="text-h6">{{ name }}</div> -->
|
<!-- <div class="text-h6">{{ name }}</div> -->
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-section class="q-pt-none" :style="{...(height? {minHeight:height}:{}) }">
|
<q-card-section class="q-pt-none" :style="sectionStyle">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="right" class="text-primary">
|
<q-card-actions align="right" class="text-primary">
|
||||||
@@ -23,14 +23,16 @@
|
|||||||
<!-- </div> -->
|
<!-- </div> -->
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import {computed} from 'vue'
|
||||||
export default {
|
export default {
|
||||||
name: 'ShowDialog',
|
name: 'ShowDialog',
|
||||||
props: {
|
props: {
|
||||||
name:String,
|
name:String,
|
||||||
visible: Boolean,
|
visible: Boolean,
|
||||||
width:String,
|
width:String,
|
||||||
height:String
|
height:String,
|
||||||
|
minWidth:String,
|
||||||
|
minHeight:String
|
||||||
},
|
},
|
||||||
emits: [
|
emits: [
|
||||||
'close'
|
'close'
|
||||||
@@ -41,8 +43,20 @@ export default {
|
|||||||
context.emit('close', val);
|
context.emit('close', val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const cardStyle = computed(() => ({
|
||||||
|
minWidth: props.minWidth,
|
||||||
|
width: props.width
|
||||||
|
}));
|
||||||
|
|
||||||
|
const sectionStyle = computed(() => ({
|
||||||
|
height: props.height,
|
||||||
|
minHeight: props.minHeight
|
||||||
|
}));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
CloseDialogue
|
CloseDialogue,
|
||||||
|
cardStyle,
|
||||||
|
sectionStyle
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,8 +22,15 @@
|
|||||||
></q-btn>
|
></q-btn>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ShowDialog v-model:visible="showSelectApp" name="アプリ選択" @close="closeDg" width="600px" >
|
<ShowDialog v-model:visible="showSelectApp" name="アプリ選択" @close="closeDg" min-width="680px" min-height="600px" height="600px">
|
||||||
<AppSelect ref="appDg" name="アプリ" type="single"></AppSelect>
|
<template v-slot:toolbar>
|
||||||
|
<q-input dense debounce="300" v-model="filter" placeholder="検索" clearable>
|
||||||
|
<template v-slot:before>
|
||||||
|
<q-icon name="search" />
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
<AppSelect ref="appDg" name="アプリ" type="single" :filter="filter"></AppSelect>
|
||||||
</ShowDialog>
|
</ShowDialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -73,7 +80,8 @@ export default defineComponent({
|
|||||||
showSelectApp,
|
showSelectApp,
|
||||||
showAppDialog,
|
showAppDialog,
|
||||||
closeDg,
|
closeDg,
|
||||||
appDg
|
appDg,
|
||||||
|
filter:ref('')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1 +1,25 @@
|
|||||||
// app global css in SCSS form
|
// app global css in SCSS form
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
height: 12px;
|
||||||
|
width: 14px;
|
||||||
|
background: transparent;
|
||||||
|
z-index: 12;
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-thumb {
|
||||||
|
width: 10px;
|
||||||
|
background-color: #c1c1c1;
|
||||||
|
border-radius: 10px;
|
||||||
|
z-index: 12;
|
||||||
|
border: 4px solid rgba(0, 0, 0, 0);
|
||||||
|
background-clip: padding-box;
|
||||||
|
transition: background-color .32s ease-in-out;
|
||||||
|
margin: 4px;
|
||||||
|
min-height: 32px;
|
||||||
|
min-width: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-thumb:hover {
|
||||||
|
background: #c1c1c1;
|
||||||
|
}
|
||||||
|
|||||||
@@ -33,8 +33,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<PropertyPanel :actionNode="store.activeNode" v-model:drawerRight="drawerRight"></PropertyPanel>
|
<PropertyPanel :actionNode="store.activeNode" v-model:drawerRight="drawerRight"></PropertyPanel>
|
||||||
</q-layout>
|
</q-layout>
|
||||||
<ShowDialog v-model:visible="showAddAction" name="アクション" @close="closeDg" width="350px">
|
<ShowDialog v-model:visible="showAddAction" name="アクション" @close="closeDg" min-width="500px" min-height="500px">
|
||||||
<action-select ref="appDg" name="model" type="single"></action-select>
|
<template v-slot:toolbar>
|
||||||
|
<q-input dense debounce="200" v-model="filter" placeholder="検索" clearable>
|
||||||
|
<template v-slot:before>
|
||||||
|
<q-icon name="search" />
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
<action-select ref="appDg" name="model" :filter="filter" type="single"></action-select>
|
||||||
</ShowDialog>
|
</ShowDialog>
|
||||||
|
|
||||||
</q-page>
|
</q-page>
|
||||||
@@ -70,6 +77,7 @@ const prevNodeIfo = ref({
|
|||||||
// const refFlow = ref<ActionFlow|null>(null);
|
// const refFlow = ref<ActionFlow|null>(null);
|
||||||
const showAddAction = ref(false);
|
const showAddAction = ref(false);
|
||||||
const drawerRight = ref(false);
|
const drawerRight = ref(false);
|
||||||
|
const filter=ref("");
|
||||||
const model = ref("");
|
const model = ref("");
|
||||||
const addActionNode = (action: IActionNode) => {
|
const addActionNode = (action: IActionNode) => {
|
||||||
// refFlow.value?.actionNodes.push(action);
|
// refFlow.value?.actionNodes.push(action);
|
||||||
|
|||||||
Reference in New Issue
Block a user