Change App Selection Component

This commit is contained in:
dt
2023-09-17 23:34:24 +08:00
parent f4ea3eaccb
commit 01b64f1aba
2 changed files with 45 additions and 108 deletions

View File

@@ -1,42 +1,42 @@
<template>
<q-list separator>
<q-virtual-scroll
ref="virtualListRef"
style="max-height: 10em"
:items="list"
separator
v-slot="{ item, index }"
>
<q-item clickable v-ripple :key="index" :active="index === activeIndex">
<q-item-section>{{ item }}</q-item-section>
</q-item>
</q-virtual-scroll>
</q-list>
<div
class="row"
style="
border-radius: 2px;
box-shadow: rgba(255, 255, 255, 0.1) 0px 0px 0px 1px inset,
rgba(0, 0, 0, 0.3) 0px 0px 0px 1px;
"
>
<q-icon
class="self-center q-ma-sm"
name="widgets"
color="grey-9"
style="font-size: 2em"
/>
<div class="col-7 self-center ellipsis">
{{ actName }}
</div>
<div class="self-center">
<q-btn
outline
dense
label="変 更"
padding="none sm"
color="primary"
></q-btn>
</div>
</div>
</template>
<script>
import { onMounted, ref } from 'vue';
const list = [];
for (let i = 0; i < 100; i++) {
list.push(`勤怠管理 - ${i}`);
}
import { computed } from 'vue';
export default {
setup() {
const activeIndex = ref(4);
const virtualListRef = ref(null);
onMounted(() => {
virtualListRef.value.scrollTo(activeIndex.value);
});
return {
list,
activeIndex,
virtualListRef,
};
props: ['actName'],
setup(props) {
const actName = computed(() => props.actName);
},
};
</script>

View File

@@ -13,10 +13,11 @@
</q-breadcrumbs>
<q-separator vertical class="q-mr-xs" />
<q-btn
outline
unelevated
class="q-py-sm"
padding="none md none sm"
color="primary"
color="blue-1"
text-color="primary"
size="md"
@click="drawerLeft = !drawerLeft"
label="変 更"
@@ -61,25 +62,11 @@
<div class="q-mt-lg q-pa-sm">
<q-card-section>
<p class="text-h6 q-pl-md">アクション選択</p>
<div>
<q-btn
label="アクション選択"
color="primary"
@click="showDg()"
v-if="addshow"
/>
<show-dialog
v-model:visible="show"
name="アクション"
@close="closeDg"
>
<action-select
ref="appDg"
name="アクション"
type="single"
></action-select>
</show-dialog>
<div class="flex-center">
<div class="row q-pl-md">
<p class="text-h6">アクション選択</p>
</div>
<ItemSelector :actName="actName" />
</div>
</q-card-section>
</div>
@@ -114,61 +101,11 @@
import FlowChartTest from 'pages/FlowChartTest.vue';
import ControlPanel from 'components/flowEditor/left/ControlPanelC.vue';
import ItemSelector from 'components/flowEditor/left/ItemSelector.vue';
import { computed, ref } from 'vue';
import ShowDialog from 'components/ShowDialog.vue';
import ActionSelect from 'components/ActionSelect.vue';
const show = ref(false);
const addshow = ref(true);
const appDg = ref();
interface FlowEditorPageProps {
actName: string;
flowNames: string[];
}
const props = withDefaults(defineProps<FlowEditorPageProps>(), {
actName: '勤怠管理 - 4',
flowNames: () => ['レコードを追加画面', '保存をクリックした時'],
});
const actName = computed(() => props.actName);
const flowNames = computed(() => props.flowNames);
import { ref } from 'vue';
const actName = ref('勤怠管理 - 4');
const flowNames = ref(['レコードを追加画面', '保存をクリックした時']);
const drawerLeft = ref(false);
const showDg = () => {
show.value = true;
};
const closeDg = (val: string) => {
if (val == 'OK') {
//alert(JSON.stringify(appDg.value.selected[0].content));
let oDiv1 = document.getElementById('action');
let oDiv2 = document.createElement('div');
oDiv2.setAttribute('class', 'action');
if (oDiv1 !== null) {
oDiv2.innerHTML = appDg.value.selected[0].content;
oDiv1?.append(oDiv2);
// let oAdd = oDiv2.getElementsByClassName('next')[0];
// oAdd.addEventListener('mouseenter', mouseenter);
// oAdd.addEventListener('mouseleave', mouseleave);
// let oDel = oDiv2.getElementsByClassName('del')[0];
// oDel.addEventListener('click', clickdel);
}
if (document.getElementsByClassName('action').length > 0) {
addshow.value = false;
}
};
};
</script>
<style lang="sass">
.ItemSelector
border: 0.15em solid rgba(#999, .4)
border-radius: 0.4em
</style>
<style lang="sass"></style>