瀏覽代碼

增加设置NTP

dygapp 4 年之前
父節點
當前提交
71f58734c1
共有 2 個文件被更改,包括 48 次插入22 次删除
  1. 13 1
      src/store/index.js
  2. 35 21
      src/views/systemctl/date.vue

+ 13 - 1
src/store/index.js

@@ -46,7 +46,9 @@ const api = {
   secclientquery: '/api/secclientquery',
   ipsecservicequery: '/api/ipsecservicequery',
   // 恢复默认配置
-  recover: '/api/recover'
+  recover: '/api/recover',
+  // NTP配置
+  ntp: '/api/ntp'
 }
 export default new Vuex.Store({
   state: {
@@ -286,6 +288,16 @@ export default new Vuex.Store({
     async recover ({ commit }) {
       const res = await axios.get(api.recover)
       return res.data || res
+    },
+    // 设置NTP
+    async setntp ({ commit }, payload) {
+      const res = await axios.post(api.ntp, payload)
+      return res.data
+    },
+    // 获取NTP状态
+    async getntp ({ commit }, payload) {
+      const res = await axios.get(api.ntp)
+      return res.data
     }
   },
   modules: {

+ 35 - 21
src/views/systemctl/date.vue

@@ -6,17 +6,16 @@
     <el-main class="main">
       <el-form ref="form" :model="form" label-width="150px">
         <el-form-item label="VPN服务器同步开关:">
-          <el-switch v-model="form.type" :active-value="'0'" :inactive-value="'1'" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
+          <el-switch v-model="form.ntp" :active-value="'yes'" :inactive-value="'no'" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
         </el-form-item>
-        <el-form-item label="服务器地址:" v-if="form.type == '0'">
-          <el-input v-model="form.ip" />
-        </el-form-item>
-        <el-form-item label="服务器地址:" v-else>
-          <el-date-picker v-model="form.date" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期时间"></el-date-picker>
+        <!-- <el-form-item label="服务器地址:" v-if="form.type == 'yes'">
+          <el-input v-model="form.host" />
+        </el-form-item> -->
+        <el-form-item label="服务器时间:">
+          <el-date-picker v-model="form.date" :disabled="form.ntp == 'yes'" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期时间"></el-date-picker>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="syncdate" v-if="form.type == '0'">执行同步</el-button>
-          <el-button type="primary" @click="setupdate" v-else>保存</el-button>
+          <el-button type="primary" @click="onSave">保存设置</el-button>
         </el-form-item>
       </el-form>
     </el-main>
@@ -30,23 +29,38 @@ export default {
   components: {},
   data () {
     return {
-      form: {}
+      form: {},
+      ntp: 'no'
+    }
+  },
+  async mounted () {
+    const res = await this.getntp()
+    if (res && res.errcode === 0) {
+      this.ntp = res.data || 'no'
+      this.form.ntp = this.ntp
     }
   },
-  mounted () {},
   methods: {
-    ...mapActions(['setdate']),
-    // 同步时间
-    syncdate () {
-      console.log('同步时间')
-    },
-    // 设置时间
-    async setupdate () {
-      console.log(this.form)
-      const res = await this.setdate(this.form)
-      if (res && res.errcode === 0) {
-        this.$message.success('设置成功')
+    ...mapActions(['setdate', 'setntp', 'getntp']),
+    async onSave () {
+      console.debug(this.form)
+      let msg = null
+      // 设置时间
+      if (this.form.ntp !== 'yes' && this.form.date) {
+        const res = await this.setdate(this.form)
+        if (!res || res.errcode !== 0) {
+          return
+        }
+        msg = '设置时间成功'
+      }
+      // 设置NTP
+      if (this.ntp !== this.form.ntp) {
+        const res = await this.setntp({ status: this.form.ntp || 'no' })
+        if (!res || res.errcode !== 0) {
+          return
+        }
       }
+      this.$message.success(msg || '保存设置成功!')
     }
   }
 }