Fix select app
This commit is contained in:
@@ -26,7 +26,7 @@
|
|||||||
<template v-slot:body-cell-actions="p">
|
<template v-slot:body-cell-actions="p">
|
||||||
<q-td :props="p">
|
<q-td :props="p">
|
||||||
<q-btn-group flat>
|
<q-btn-group flat>
|
||||||
<q-btn flat color="primary" padding="xs" size="1em" icon="edit_note" @click="editFlow(p.row)" />
|
<q-btn flat color="primary" padding="xs" size="1em" icon="edit_note" @click="toEditFlowPage(p.row)" />
|
||||||
<q-btn disabled flat color="primary" padding="xs" size="1em" icon="history" @click="showHistory(p.row)" />
|
<q-btn disabled flat color="primary" padding="xs" size="1em" icon="history" @click="showHistory(p.row)" />
|
||||||
<q-btn disabled flat color="negative" padding="xs" size="1em" icon="delete_outline" @click="removeRow(p.row)" />
|
<q-btn disabled flat color="negative" padding="xs" size="1em" icon="delete_outline" @click="removeRow(p.row)" />
|
||||||
</q-btn-group>
|
</q-btn-group>
|
||||||
@@ -70,16 +70,15 @@ interface IAppDisplay{
|
|||||||
|
|
||||||
const authStore = useAuthStore();
|
const authStore = useAuthStore();
|
||||||
const numberStringSorting = (a: string, b: string) => parseInt(a, 10) - parseInt(b, 10);
|
const numberStringSorting = (a: string, b: string) => parseInt(a, 10) - parseInt(b, 10);
|
||||||
const addedRowHighlightClass = (row: IAppDisplay) => row.id === addedRowId.value ? 'highlight-row' : '';
|
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
{ name: 'id', label: 'アプリID', field: 'id', align: 'left', sortable: true, sort: numberStringSorting, classes: addedRowHighlightClass },
|
{ name: 'id', label: 'アプリID', field: 'id', align: 'left', sortable: true, sort: numberStringSorting },
|
||||||
{ name: 'name', label: 'アプリ名', field: 'name', align: 'left', sortable: true, classes: addedRowHighlightClass },
|
{ name: 'name', label: 'アプリ名', field: 'name', align: 'left', sortable: true },
|
||||||
{ name: 'url', label: 'URL', field: 'url', align: 'left', sortable: true, classes: addedRowHighlightClass },
|
{ name: 'url', label: 'URL', field: 'url', align: 'left', sortable: true },
|
||||||
{ name: 'user', label: '最後更新者', field: 'user', align: 'left', sortable: true, classes: addedRowHighlightClass},
|
{ name: 'user', label: '最後更新者', field: 'user', align: 'left', sortable: true},
|
||||||
{ name: 'updatetime', label: '最後更新日', field: 'updatetime', align: 'left', sortable: true, classes: addedRowHighlightClass },
|
{ name: 'updatetime', label: '最後更新日', field: 'updatetime', align: 'left', sortable: true},
|
||||||
{ name: 'version', label: 'バージョン', field: 'version', align: 'left', sortable: true, sort: numberStringSorting, classes: addedRowHighlightClass },
|
{ name: 'version', label: 'バージョン', field: 'version', align: 'left', sortable: true, sort: numberStringSorting },
|
||||||
{ name: 'actions', label: '操作', field: 'actions', classes: addedRowHighlightClass }
|
{ name: 'actions', label: '操作', field: 'actions' }
|
||||||
];
|
];
|
||||||
|
|
||||||
const pagination = ref({ sortBy: 'id', descending: true, rowsPerPage: 20 });
|
const pagination = ref({ sortBy: 'id', descending: true, rowsPerPage: 20 });
|
||||||
@@ -92,7 +91,6 @@ const store = useFlowEditorStore();
|
|||||||
const appDialog = ref();
|
const appDialog = ref();
|
||||||
const showSelectApp=ref(false);
|
const showSelectApp=ref(false);
|
||||||
const isAdding = ref(false);
|
const isAdding = ref(false);
|
||||||
const addedRowId = ref('');
|
|
||||||
|
|
||||||
const getApps = async () => {
|
const getApps = async () => {
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
@@ -126,29 +124,7 @@ const closeSelectAppDialog = async (val: 'OK'|'Cancel') => {
|
|||||||
showSelectApp.value = true;
|
showSelectApp.value = true;
|
||||||
if (val == 'OK' && appDialog.value.selected[0]) {
|
if (val == 'OK' && appDialog.value.selected[0]) {
|
||||||
isAdding.value = true;
|
isAdding.value = true;
|
||||||
const data = appDialog.value.selected[0];
|
toEditFlowPage(appDialog.value.selected[0]);
|
||||||
const appInfo = {
|
|
||||||
domainurl: authStore.currentDomain.kintoneUrl,
|
|
||||||
appid: data.id ,
|
|
||||||
appname: data.name
|
|
||||||
};
|
|
||||||
const result = await api.post('api/apps', appInfo);
|
|
||||||
const item = result?.data;
|
|
||||||
if (item) {
|
|
||||||
// binarysearch is better
|
|
||||||
const newItem = appToAppDisplay(item)
|
|
||||||
const index = rows.value.findIndex(element => element.sortId >= newItem.sortId);
|
|
||||||
if (index === -1) {
|
|
||||||
rows.value.push(newItem);
|
|
||||||
} else {
|
|
||||||
rows.value.splice(index, 0, newItem);
|
|
||||||
}
|
|
||||||
rowIds.add(newItem.id);
|
|
||||||
addedRowId.value = newItem.id;
|
|
||||||
setTimeout(() => {
|
|
||||||
addedRowId.value = ''
|
|
||||||
}, 2000);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
showSelectApp.value = false;
|
showSelectApp.value = false;
|
||||||
isAdding.value = false;
|
isAdding.value = false;
|
||||||
@@ -174,7 +150,7 @@ const appToAppDisplay = (app: IManagedApp) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const editFlow = (app:IAppDisplay) => {
|
const toEditFlowPage = (app:IAppDisplay) => {
|
||||||
store.setApp({
|
store.setApp({
|
||||||
appId: app.id,
|
appId: app.id,
|
||||||
name: app.name
|
name: app.name
|
||||||
@@ -183,13 +159,3 @@ const editFlow = (app:IAppDisplay) => {
|
|||||||
router.push('/FlowChart/' + app.id);
|
router.push('/FlowChart/' + app.id);
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
|
||||||
.q-table td.highlight-row {
|
|
||||||
animation: breathe 0.6s ease-in-out 2 forwards;
|
|
||||||
}
|
|
||||||
@keyframes breathe {
|
|
||||||
0% { background-color: #ffffff; }
|
|
||||||
50% { background-color: #fffde7; }
|
|
||||||
100% { background-color: #ffffff; }
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -328,8 +328,22 @@ const fetchData = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const fetchAppById = async(id: string) => {
|
const fetchAppById = async(id: string) => {
|
||||||
const result = await api.get('api/apps');
|
try {
|
||||||
return result.data.find((item: IManagedApp) => item.appid === id ) as IManagedApp;
|
const result = await api.get('api/apps');
|
||||||
|
return result.data.find((item: IManagedApp) => item.appid === id ) as IManagedApp;
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
const result = await api.get(`api/v1/app?app=${id}`);
|
||||||
|
const data = result?.data;
|
||||||
|
if (data?.message) {
|
||||||
|
$q.notify({
|
||||||
|
type: 'negative',
|
||||||
|
caption: "エラー",
|
||||||
|
message: data.message
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return { appid: data.appId, appname: data.name };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const onClearFilter=()=>{
|
const onClearFilter=()=>{
|
||||||
|
|||||||
Reference in New Issue
Block a user