Просмотр исходного кода

Глобальный рефакторинг SettingsPage (в процессе)

Book Pauk 2 лет назад
Родитель
Сommit
5827d7a246

+ 0 - 3
client/components/Reader/SettingsPage/ResetTab.inc

@@ -1,3 +0,0 @@
-<div class="item row">
-    <q-btn class="col q-ma-sm" dense no-caps @click="setDefaults">Установить по умолчанию</q-btn>
-</div>

+ 41 - 0
client/components/Reader/SettingsPage/ResetTab/ResetTab.vue

@@ -0,0 +1,41 @@
+<template>
+    <div class="fit sets-tab-panel">
+        <div class="sets-item row">
+            <q-btn class="col q-ma-sm" dense no-caps @click="setDefaults">
+                Установить по умолчанию
+            </q-btn>
+        </div>
+    </div>
+</template>
+
+<script>
+//-----------------------------------------------------------------------------
+import vueComponent from '../../../vueComponent.js';
+
+const componentOptions = {
+    components: {
+    },
+};
+class ResetTab {
+    _options = componentOptions;
+    _props = {
+        form: Object,
+    };
+
+    created() {
+    }
+
+    mounted() {
+    }
+
+    setDefaults() {
+        this.$emit('tab-event', {action: 'set-defaults'});
+    }
+}
+
+export default vueComponent(ResetTab);
+//-----------------------------------------------------------------------------
+</script>
+
+<style scoped>
+</style>

+ 14 - 8
client/components/Reader/SettingsPage/SettingsPage.vue

@@ -94,10 +94,8 @@
                 <UpdateTab v-if="selectedTab == 'update'" :form="form" />
                 <!-- Прочее ---------------------------------------------------------------------->
                 <OthersTab v-if="selectedTab == 'others'" :form="form" />
-                <!-- Сброс ----------------------------------------------------------------------->
-                <!--div v-if="selectedTab == 'reset'" class="fit tab-panel">
-                    @@include('./ResetTab.inc');
-                </div-->
+                <!-- Сброс ----------------------------------------------------------------------->                
+                <ResetTab v-if="selectedTab == 'reset'" :form="form" @tab-event="tabEvent" />
             </div>
         </div>
     </Window>
@@ -127,6 +125,7 @@ import PageMoveTab from './PageMoveTab/PageMoveTab.vue';
 import ConvertTab from './ConvertTab/ConvertTab.vue';
 import UpdateTab from './UpdateTab/UpdateTab.vue';
 import OthersTab from './OthersTab/OthersTab.vue';
+import ResetTab from './ResetTab/ResetTab.vue';
 
 const hex = /^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/;
 
@@ -141,6 +140,7 @@ const componentOptions = {
         ConvertTab,
         UpdateTab,
         OthersTab,
+        ResetTab,
     },
     watch: {
         settings: function() {
@@ -390,16 +390,22 @@ class SettingsPage {
     async setDefaults() {
         try {
             if (await this.$root.stdDialog.confirm('Подтвердите установку настроек по умолчанию:', ' ')) {
-                this.form = Object.assign({}, rstore.settingDefaults);
-                for (let prop in rstore.settingDefaults) {
-                    this[prop] = this.form[prop];
-                }
+                this.form = _.cloneDeep(rstore.settingDefaults);
             }
         } catch (e) {
             //
         }
     }
 
+    tabEvent(event) {
+        if (!event || !event.action)
+            return;
+
+        switch (event.action) {
+            case 'set-defaults': this.setDefaults(); break;
+        }
+    }
+
     loadWallpaperFileClick() {
         this.$refs.file.click();
     }