浏览代码

Работа над BookmarkSettings

Book Pauk 4 年之前
父节点
当前提交
f69cc6f1b1

+ 21 - 3
client/components/ExternalLibs/BookmarkSettings/BookmarkSettings.vue

@@ -103,11 +103,14 @@ class BookmarkSettings extends BookmarkSettingsProps {
     get nodes() {
         const result = [];
 
-        this.expanded = [];
+        const expanded = [];
+        this.links = {};
         let i = 0;
         this.libs.groups.forEach(group => {
             const rkey = `${i}`;
             const g = {label: group.r, key: rkey, children: []};
+            this.links[rkey] = group.r;
+
             let j = 0;
             group.list.forEach(link => {
                 const key = `${i}-${j}`;
@@ -115,8 +118,10 @@ class BookmarkSettings extends BookmarkSettingsProps {
                     label: (link.c ? link.c + ' ': '') + lu.removeOrigin(link.l),
                     key
                 });
-                if (link.l == this.libs.startLink && this.expanded.indexOf(rkey) < 0) {
-                    this.expanded.push(rkey);
+
+                this.links[key] = link.l;
+                if (link.l == this.libs.startLink && expanded.indexOf(rkey) < 0) {
+                    expanded.push(rkey);
                 }
 
                 j++;
@@ -126,6 +131,10 @@ class BookmarkSettings extends BookmarkSettingsProps {
             i++;
         });
 
+        this.$nextTick(() => {
+            this.expanded = expanded;
+        });
+
         return result;
     }
 
@@ -135,6 +144,15 @@ class BookmarkSettings extends BookmarkSettingsProps {
     }
 
     openSelected() {
+        if (!this.selected)
+            return;
+        if (this.selected.indexOf('-') < 0) {//rootLink
+            this.$emit('do-action', {action: 'setRootLink', data: this.links[this.selected]});
+        } else {//selectedLink
+            this.$emit('do-action', {action: 'setSelectedLink', data: this.links[this.selected]});
+        }
+
+        //this.close();
     }
 
     openOptions() {

+ 10 - 2
client/components/ExternalLibs/ExternalLibs.vue

@@ -47,7 +47,7 @@
                         <q-btn class="q-mr-xs" round dense color="blue" icon="la la-home" @click="goToLink(libs.startLink)" size="12px">
                             <q-tooltip :delay="1500" anchor="bottom middle" content-style="font-size: 80%">Вернуться на стартовую страницу</q-tooltip>
                         </q-btn>
-                        <q-btn round dense color="blue" icon="la la-angle-double-down" @click="openBookUrlInFrame" size="12px">
+                        <q-btn round dense color="blue" icon="la la-angle-double-down" @click="openBookUrlInFrame" size="12px" :disabled="!bookUrl">
                             <q-tooltip :delay="1500" anchor="bottom middle" content-style="font-size: 80%">Загрузить URL во фрейм</q-tooltip>
                         </q-btn>
                     </template>
@@ -97,7 +97,7 @@
                 </template>
             </Dialog>
         </div>
-        <BookmarkSettings v-if="bookmarkSettingsActive" ref="bookmarkSettings" :libs="libs" @close="closeBookmarkSettings"></BookmarkSettings>
+        <BookmarkSettings v-if="bookmarkSettingsActive" ref="bookmarkSettings" :libs="libs" @do-action="doAction" @close="closeBookmarkSettings"></BookmarkSettings>
     </Window>
 </template>
 
@@ -292,6 +292,14 @@ class ExternalLibs extends Vue {
         this.updateSelectedLink();
     }
 
+    doAction(event) {
+        switch (event.action) {
+            case 'setLibs': this.commitLibs(event.data); break;
+            case 'setRootLink': this.rootLink = event.data; this.rootLinkInput(); break;
+            case 'setSelectedLink': this.selectedLink = event.data; this.selectedLinkInput(); break;
+        }
+    }
+
     get mode() {
         return this.$store.state.config.mode;
     }