From a7bcda95f2c2d9ead0223395e18909a1cbd2925c Mon Sep 17 00:00:00 2001 From: marvzhang Date: Sun, 1 Mar 2020 10:24:31 +0800 Subject: [PATCH] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=85=B3=E9=97=AD=E6=95=99?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/conf/config.yml | 1 + backend/routes/setting.go | 10 ++++++---- docker-compose.yml | 1 + frontend/src/i18n/zh.js | 1 + frontend/src/store/modules/setting.js | 6 ++++++ frontend/src/utils/tour.js | 4 ++++ frontend/src/views/node/NodeDetail.vue | 2 +- frontend/src/views/schedule/ScheduleList.vue | 4 ++-- frontend/src/views/setting/Setting.vue | 20 +++++++++++++++++--- frontend/src/views/spider/SpiderDetail.vue | 4 ++-- frontend/src/views/spider/SpiderList.vue | 4 ++-- frontend/src/views/task/TaskDetail.vue | 2 +- frontend/src/views/task/TaskList.vue | 2 +- 13 files changed, 45 insertions(+), 16 deletions(-) diff --git a/backend/conf/config.yml b/backend/conf/config.yml index 321860a2..32fce297 100644 --- a/backend/conf/config.yml +++ b/backend/conf/config.yml @@ -38,6 +38,7 @@ other: version: 0.4.7 setting: allowRegister: "N" + enableTutorial: "N" notification: mail: server: '' diff --git a/backend/routes/setting.go b/backend/routes/setting.go index 4429873e..83976455 100644 --- a/backend/routes/setting.go +++ b/backend/routes/setting.go @@ -7,7 +7,8 @@ import ( ) type SettingBody struct { - AllowRegister string `json:"allow_register"` + AllowRegister string `json:"allow_register"` + EnableTutorial string `json:"enable_tutorial"` } func GetVersion(c *gin.Context) { @@ -21,9 +22,10 @@ func GetVersion(c *gin.Context) { } func GetSetting(c *gin.Context) { - allowRegister := viper.GetString("setting.allowRegister") - - body := SettingBody{AllowRegister: allowRegister} + body := SettingBody{ + AllowRegister: viper.GetString("setting.allowRegister"), + EnableTutorial: viper.GetString("setting.enableTutorial"), + } c.JSON(http.StatusOK, Response{ Status: "ok", diff --git a/docker-compose.yml b/docker-compose.yml index 752f162f..affdf7bb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,6 +24,7 @@ services: # CRAWLAB_TASK_WORKERS: 4 # number of task executors 任务执行器个数(并行执行任务数) # CRAWLAB_SERVER_LANG_NODE: "Y" # whether to pre-install Node.js 预安装 Node.js 语言环境 # CRAWLAB_SETTING_ALLOWREGISTER: "N" # whether to allow user registration 是否允许用户注册 + # CRAWLAB_SETTING_ENABLETUTORIAL: "N" # whether to enable tutorial 是否启用教程 # CRAWLAB_NOTIFICATION_MAIL_SERVER: smtp.exmaple.com # STMP server address STMP 服务器地址 # CRAWLAB_NOTIFICATION_MAIL_PORT: 465 # STMP server port STMP 服务器端口 # CRAWLAB_NOTIFICATION_MAIL_SENDEREMAIL: admin@exmaple.com # sender email 发送者邮箱 diff --git a/frontend/src/i18n/zh.js b/frontend/src/i18n/zh.js index e275afd0..10211c3d 100644 --- a/frontend/src/i18n/zh.js +++ b/frontend/src/i18n/zh.js @@ -448,6 +448,7 @@ export default { 'Key': '设置', 'Allow Sending Statistics': '允许发送统计信息', 'General': '通用', + 'Enable Tutorial': '启用教程', // 其他 tagsView: { diff --git a/frontend/src/store/modules/setting.js b/frontend/src/store/modules/setting.js index a44f7c9b..0d859447 100644 --- a/frontend/src/store/modules/setting.js +++ b/frontend/src/store/modules/setting.js @@ -16,6 +16,12 @@ const actions = { async getSetting ({ commit }) { const res = await request.get('/setting') commit('SET_SETTING', res.data.data) + + // set default enable_tutorial + const enableTutorial = res.data.data.enable_tutorial + if (localStorage.getItem('enableTutorial') === undefined) { + localStorage.setItem('enableTutorial', enableTutorial ? '1' : '0') + } } } diff --git a/frontend/src/utils/tour.js b/frontend/src/utils/tour.js index b974d692..33945603 100644 --- a/frontend/src/utils/tour.js +++ b/frontend/src/utils/tour.js @@ -18,6 +18,10 @@ export default { } return !!data[tourName] }, + startTour: (vm, tourName) => { + if (localStorage.getItem('enableTutorial') === '0') return + vm.$tours[tourName].start() + }, finishTour: (tourName) => { let data try { diff --git a/frontend/src/views/node/NodeDetail.vue b/frontend/src/views/node/NodeDetail.vue index 24b81b63..7f87a87e 100644 --- a/frontend/src/views/node/NodeDetail.vue +++ b/frontend/src/views/node/NodeDetail.vue @@ -124,7 +124,7 @@ export default { }, mounted () { if (!this.$utils.tour.isFinishedTour('node-detail')) { - this.$tours['node-detail'].start() + this.$utils.tour.startTour(this, 'node-detail') this.$st.sendEv('教程', '开始', 'node-detail') } } diff --git a/frontend/src/views/schedule/ScheduleList.vue b/frontend/src/views/schedule/ScheduleList.vue index 7308311c..adbfef56 100644 --- a/frontend/src/views/schedule/ScheduleList.vue +++ b/frontend/src/views/schedule/ScheduleList.vue @@ -467,7 +467,7 @@ export default { if (!this.$utils.tour.isFinishedTour('schedule-list-add')) { setTimeout(() => { - this.$tours['schedule-list-add'].start() + this.$utils.tour.startTour(this, 'schedule-list-add') this.$st.sendEv('教程', '开始', 'schedule-list-add') }, 500) } @@ -617,7 +617,7 @@ export default { mounted () { if (!this.isDisabledSpiderSchedule) { if (!this.$utils.tour.isFinishedTour('schedule-list')) { - this.$tours['schedule-list'].start() + this.$utils.tour.startTour(this, 'schedule-list') this.$st.sendEv('教程', '开始', 'schedule-list') } } diff --git a/frontend/src/views/setting/Setting.vue b/frontend/src/views/setting/Setting.vue index c341ccb7..86118e71 100644 --- a/frontend/src/views/setting/Setting.vue +++ b/frontend/src/views/setting/Setting.vue @@ -9,7 +9,7 @@ /> - + @@ -30,6 +30,7 @@ + @@ -49,6 +50,14 @@ inactive-color="#909399" /> + + +
@@ -213,7 +222,8 @@ export default { this.$utils.tour.nextStep('setting', currentStep) } }, - isAllowSendingStatistics: localStorage.getItem('useStats') === '1' + isAllowSendingStatistics: localStorage.getItem('useStats') === '1', + isEnableTutorial: localStorage.getItem('enableTutorial') === '1' } }, computed: { @@ -291,6 +301,10 @@ export default { } this.$message.success(this.$t('Saved successfully')) localStorage.setItem('useStats', value ? '1' : '0') + }, + onEnableTutorialChange (value) { + this.$message.success(this.$t('Saved successfully')) + localStorage.setItem('enableTutorial', value ? '1' : '0') } }, async created () { @@ -300,7 +314,7 @@ export default { }, mounted () { if (!this.$utils.tour.isFinishedTour('setting')) { - this.$tours['setting'].start() + this.$utils.tour.startTour(this, 'setting') this.$st.sendEv('教程', '开始', 'setting') } } diff --git a/frontend/src/views/spider/SpiderDetail.vue b/frontend/src/views/spider/SpiderDetail.vue index 787788d3..a69545b2 100644 --- a/frontend/src/views/spider/SpiderDetail.vue +++ b/frontend/src/views/spider/SpiderDetail.vue @@ -208,7 +208,7 @@ export default { if (!this.$utils.tour.isFinishedTour('spider-detail-config')) { setTimeout(() => { - this.$tours['spider-detail-config'].start() + this.$utils.tour.startTour(this, 'spider-detail-config') this.$st.sendEv('教程', '开始', 'spider-detail-config') }, 100) } @@ -260,7 +260,7 @@ export default { }, mounted () { if (!this.$utils.tour.isFinishedTour('spider-detail')) { - this.$tours['spider-detail'].start() + this.$utils.tour.startTour(this, 'spider-detail') this.$st.sendEv('教程', '开始', 'spider-detail') } } diff --git a/frontend/src/views/spider/SpiderList.vue b/frontend/src/views/spider/SpiderList.vue index a8996b8e..8e6a6ba9 100644 --- a/frontend/src/views/spider/SpiderList.vue +++ b/frontend/src/views/spider/SpiderList.vue @@ -887,7 +887,7 @@ export default { setTimeout(() => { if (!this.$utils.tour.isFinishedTour('spider-list-add')) { - this.$tours['spider-list-add'].start() + this.$utils.tour.startTour(this, 'spider-list-add') this.$st.sendEv('教程', '开始', 'spider-list-add') } }, 300) @@ -1241,7 +1241,7 @@ export default { }) if (!this.$utils.tour.isFinishedTour('spider-list')) { - this.$tours['spider-list'].start() + this.$utils.tour.startTour(this, 'spider-list') this.$st.sendEv('教程', '开始', 'spider-list') } }, diff --git a/frontend/src/views/task/TaskDetail.vue b/frontend/src/views/task/TaskDetail.vue index 11051ed0..422dc088 100644 --- a/frontend/src/views/task/TaskDetail.vue +++ b/frontend/src/views/task/TaskDetail.vue @@ -202,7 +202,7 @@ export default { }, mounted () { if (!this.$utils.tour.isFinishedTour('task-detail')) { - this.$tours['task-detail'].start() + this.$utils.tour.startTour(this, 'task-detail') this.$st.sendEv('教程', '开始', 'task-detail') } }, diff --git a/frontend/src/views/task/TaskList.vue b/frontend/src/views/task/TaskList.vue index 98b720b3..3cd564d9 100644 --- a/frontend/src/views/task/TaskList.vue +++ b/frontend/src/views/task/TaskList.vue @@ -412,7 +412,7 @@ export default { }, 5000) if (!this.$utils.tour.isFinishedTour('task-list')) { - this.$tours['task-list'].start() + this.$utils.tour.startTour(this, 'task-list') this.$st.sendEv('教程', '开始', 'task-list') } },