From b8b2820d1a0a55a5555434a3ec95f8bbec1db06d Mon Sep 17 00:00:00 2001
From: zmc <zmc_li@foxmail.com>
Date: 星期四, 14 十二月 2023 15:22:54 +0800
Subject: [PATCH] 1.飞行巡检和审核辅助页面中的对话框写成组件 2.增加了数据请求和异常分析配置参数的可视化页面 3.修改了站点输入框,使能够模糊匹配

---
 src/views/data_management/components/CompEditRequest.vue |  276 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 154 insertions(+), 122 deletions(-)

diff --git a/src/views/data_management/components/CompEditRequest.vue b/src/views/data_management/components/CompEditRequest.vue
index 65edd1b..0daf92d 100644
--- a/src/views/data_management/components/CompEditRequest.vue
+++ b/src/views/data_management/components/CompEditRequest.vue
@@ -1,41 +1,32 @@
 <script>
 import TimeSinglePicker from '@/sfc/TimeSinglePicker.vue'
+import OnlyTimePick from '@/sfc/OnlyTimePick.vue'
 import requestTaskSetting from '@/api/setting/requestTaskSetting.js'
+import { useCommonFunction } from '@/utils/common.js'
 export default {
   components: {
-    TimeSinglePicker
+    TimeSinglePicker,
+    OnlyTimePick
   },
   props: {
-    modelValue: {
-      type: Boolean,
-      default: false
-    },
-    tableData: {
-      type: Object,
-      default: {}
+    userName: {
+      type: String,
+      default: ''
     }
   },
-  emits: ['update:modelValue'],
 
   computed: {
-    value: {
-      get() {
-        return this.modelValue
-      },
-      set(value) {
-        this.$emit('update:modelValue', value)
-      }
-    },
     formDataAfterCal() {
       return {
-        user: this.form.user,
-        updateTime: this.form.updateTime,
+        user: this.userName,
         region: this.form.region,
-        version: this.form.version,
+        // 鏄慨鏀圭姸鎬�-->璇ヨ褰曠殑鐗堟湰鍙�  鏄柊澧炵姸鎬�--> 閰嶇疆琛ㄨ〃鏈�澶х殑鐗堟湰鍙�
+        version: this.modify ? this.form.version : this.maxVersion,
+
         requestStartTime: this.form.requestStartTime,
         requestEndTime: this.form.requestEndTime,
 
-        requestIntervalSeconds: this.form.requestIntervalSeconds * 3600,
+        requestIntervalSeconds: this.requestIntervalSeconds,
         requestRangeHour: this.form.requestRangeHour,
         requestRangeIntervalSeconds: this.form.requestRangeIntervalSeconds,
         requestFailWaitSeconds: this.form.requestFailWaitSeconds,
@@ -51,121 +42,131 @@
     }
   },
 
+  watch: {
+    'form.requestIntervalSeconds': function (val, oldVal) {
+      if (this.form.requestIntervalSeconds != '' && this.form.requestIntervalSeconds != null) {
+        this.requestIntervalSeconds = this.form.requestIntervalSeconds / 3600
+      }
+    }
+  },
+  setup() {
+    const { findMaxValue } = useCommonFunction()
+    return { findMaxValue }
+  },
   data() {
     return {
-      form: {
-        user: 'admin',
-        updateTime: '2023-10-10 09:16:41',
-        region: '閲戝北鍖�',
-        version: '1.0',
-        requestStartTime: '2023-10-12 08:43:00',
-        requestEndTime: null,
-        requestIntervalSeconds: 12,
-        requestRangeHour: 8,
-        requestRangeIntervalSeconds: 5,
-        requestFailWaitSeconds: 120,
-        requestRetryTimes: 4,
-        requestCookieValidDuration: 48,
-        staticsDailyTime: '2023-10-11 09:00:00',
-        staticsMonthlyTime: '2023-10-01 10:00:00',
-        loginFailWaitSeconds: 5,
-        loginRetryTimes: 5,
-        taskRetryWaitSeconds: 120,
-        firstRequestOffsetDays: 30
-      },
-      rules: {
-        requestIntervalSeconds: [{ validator: this.checkRequestIntervalSeconds, trigger: 'blur' }],
-        requestRangeHour: [
-          { type: 'number', pattern: '/^\d+$/', message: '璇疯緭鍏ユ暟瀛�', trigger: 'blur' }
-          // {pattern:'/^[0-9]+$/'}
-        ]
-        // requestRangeIntervalSeconds: [{ validator: this.checkRequestRangeIntervalSeconds, trigger: 'blur' }],
-        // requestFailWaitSeconds: [{ validator: this.checkRequestFailWaitSeconds, trigger: 'blur' }],
-        // requestRetryTimes: [{ validator: this.checkRequestRetryTimes, trigger: 'blur' }],
-        // loginFailWaitSeconds: [{ validator: this.checkLoginFailWaitSeconds, trigger: 'blur' }],
-        // loginRetryTimes: [{ validator: this.checkLoginRetryTimes, trigger: 'blur' }],
-        // taskRetryWaitSeconds: [{ validator: this.checkTaskRetryWaitSeconds, trigger: 'blur' }],
-        // firstRequestOffsetDays: [{ validator: this.checkFirstRequestOffsetDays, trigger: 'blur' }],
-      }
+      form: {},
+      requestIntervalSeconds: null,
+      maxVersion: null,
+      loading: false,
+      // 淇敼鐘舵��
+      modify: false,
+      // // 琛ㄥ崟鏁版嵁鏄惁琚慨鏀�
+      // isFormModify:false,
     }
   },
 
   mounted() {
-    // const { ...temp } = this.tableData
-    // this.form = temp
+    this.queryRequest()
   },
   methods: {
-    // 鎻愪氦
-    /*   submitForm() {
-      // 鍙戦�佷慨鏀圭殑璇锋眰
-      requestTaskSetting.submitRequestSetting(this.form)
+    /**
+     * 鎻愪氦
+     * @param锛�
+     * @returns锛�
+     */
+    async submitForm() {
+        await requestTaskSetting.submitRequestSetting(this.formDataAfterCal)
 
-      this.$message.success('鎻愪氦鎴愬姛')
-      
-      
-      this.value = false
+        this.$message.success('鎻愪氦鎴愬姛')
 
-      
+        // 鏁版嵁鎻愪氦鍚庡埛鏂拌〃鍗�
+        this.queryRequest()
 
-    }, */
+        // 缃� 琛ㄥ崟淇敼缁撴潫鏍囪
+        this.isFormModify = false
 
-    async submitForm(formEl) {
-      if (!formEl) return
-      await formEl.validate((valid, fields) => {
-        if (valid) {
-          console.log('submit!')
-        } else {
-          console.log('error submit!', fields)
-        }
+    },
+
+    // 鍥為��鍒伴粯璁ら厤缃�
+    async defaultSetting() {
+      if (this.form.version == '1.0') {
+        this.$message.info('褰撳墠宸茬粡鏄粯璁ょ殑鐗堟湰')
+        return
+      }
+      this.loading = true
+      await requestTaskSetting.queryDefaultSetting().then((Response) => {
+        this.form = Response.data.data[0]
+      })
+      this.modify = true
+      // 璁剧疆璇锋眰閰嶇疆琛ㄧ増鏈�1.0 鐨勬洿鏂版椂闂�
+      requestTaskSetting.alertRequestSetting(this.formDataAfterCal)
+      this.modify = false
+      this.loading = false
+
+      this.$message.success('鍥為��鎴愬姛')
+    },
+
+    /**
+     * 鏌ヨ璇锋眰璁剧疆鐨勬暟鎹�
+     * @param锛�
+     * @returns锛�
+     */
+    queryRequest() {
+      this.loading = true
+      requestTaskSetting.queryRequestSetting().then((Response) => {
+        this.loading = false
+        this.form = Response.data.data[0]
+
+        // 鎵惧埌鏈�澶х殑鐗堟湰
+        const versions = Response.data.data.map((item) => item.version)
+        this.maxVersion = this.findMaxValue(versions)
       })
     },
-
-    // 鍙栨秷
-    cancel_1() {
-      this.value = false
-    },
-
-    checkRequestIntervalSeconds(rule, value, callback) {
-      if (!value) {
-        return callback(new Error('璇疯緭鍏ユ湁鏁堝��'))
-      }
-      setTimeout(() => {
-        if (!Number.isInteger(value)) {
-          callback(new Error('璇疯緭鍏ユ暟瀛�'))
-        } else {
-          if (value < 2 || value > 24) {
-            callback(new Error('鑼冨洿鍦�2~24'))
-          } else {
-            callback()
-          }
-        }
-      }, 300)
+    /**
+     * 鍙栨秷鎸夐挳
+     * @param锛�
+     * @returns锛�
+     */
+    cancelEvent() {
+      this.$message.info('宸插彇娑�')
     }
   }
 }
 </script>
+
 <template>
-  <el-dialog v-model="value" title="鏁版嵁鑾峰彇閰嶇疆鍙傛暟淇敼" close-delay="200" align-center>
-    <el-form :model="form" ref="ruleFormRef" label-width="210px" status-icon :rules="rules">
+
+    <div class="my-header">
+      <el-text tag="b"> 姝e湪浣跨敤鐨勭増鏈細{{ form.version }}</el-text>
+    </div>
+    <el-form :model="form" label-width="210px" status-icon v-loading="loading" >
       <el-form-item label="鐢ㄦ埛鍚�">
-        <el-input v-model="form.user" disabled />
+        <el-input :value="userName" disabled />
       </el-form-item>
+
+      <el-form-item label="鍖哄幙">
+        <el-input :value="form.region" disabled />
+      </el-form-item>
+
       <el-form-item label="寮�濮嬫椂闂�">
         <TimeSinglePicker
-          :selectedTime="form.requestStartTime"
+          :selected-time="form.requestStartTime"
+          :isUTC="true"
           @submit-time="(n) => (form.requestStartTime = n)"
         ></TimeSinglePicker>
       </el-form-item>
+
       <el-form-item label="缁撴潫鏃堕棿">
         <TimeSinglePicker
-          @submit-time="(n) => (form.requestEndTime = n)"
           :selected-time="form.requestEndTime"
+          :isUTC="true"
+          @submit-time="(n) => (form.requestEndTime = n)"
         ></TimeSinglePicker>
       </el-form-item>
 
-      <!-- ---------------------------------------------------------- -->
       <el-form-item label="鑾峰彇棰戠巼" prop="requestIntervalSeconds">
-        <el-input v-model.number="form.requestIntervalSeconds">
+        <el-input v-model.number="requestIntervalSeconds">
           <template #append>灏忔椂/娆�</template>
         </el-input>
       </el-form-item>
@@ -190,15 +191,24 @@
           <template #append>娆℃暟</template>
         </el-input>
       </el-form-item>
+
+      <el-form-item label="cookie鏈夋晥鏃堕暱" prop="requestCookieValidDuration">
+        <el-input v-model.number="form.requestCookieValidDuration" :min="1" :max="10">
+          <template #append>灏忔椂</template>
+        </el-input>
+      </el-form-item>
+
       <el-form-item label="鏃ョ粺璁�">
-        <TimeSinglePicker
+        <OnlyTimePick
           @submit-time="(n) => (form.staticsDailyTime = n)"
+          :isUTC="true"
           :selected-time="form.staticsDailyTime"
         />
       </el-form-item>
       <el-form-item label="鏈堢粺璁�">
-        <TimeSinglePicker
+        <OnlyTimePick
           @submit-time="(n) => (form.staticsMonthlyTime = n)"
+          :isUTC="true"
           :selected-time="form.staticsMonthlyTime"
         />
       </el-form-item>
@@ -224,25 +234,47 @@
       </el-form-item>
     </el-form>
 
-    <template #footer>
-      <el-button @click="cancel_1">鍙栨秷</el-button>
-      <el-button type="primary" @click="submitForm(ruleFormRef)">鎻愪氦</el-button>
+  <el-popconfirm
+    confirm-button-text="纭畾"
+    cancel-button-text="鍙栨秷"
+    icon-color="#626AEF"
+    title="纭鍥為��鍚楋紵"
+    @confirm="defaultSetting"
+    @cancel="cancelEvent"
+  >
+    <template #reference>
+      <el-button  :disabled="form.version=='1.0'">鍥為��鍒伴粯璁よ缃�</el-button>
     </template>
-  </el-dialog>
+  </el-popconfirm>
+
+  <el-popconfirm
+    confirm-button-text="纭畾"
+    cancel-button-text="鍙栨秷"
+    icon-color="#626AEF"
+    title="纭淇敼鍚楋紵"
+    @confirm="submitForm"
+    @cancel="cancelEvent"
+  >
+    <template #reference>
+      <el-button type="primary">淇敼</el-button>
+    </template>
+  </el-popconfirm>
 </template>
 
 <style scoped>
-/* .el-form {
-    display: flex;
-    flex-direction: column;
-  }
-   */
-/* .el-form-item {
-    display: flex;
-    margin-top: 5px;
-  } */
-/* .el-input {
-    width: 700px;
-  }
-   */
+.my-header {
+  margin-bottom: 20px;
+}
+span {
+  font-size: 16px;
+  color: #0a0a0a;
+}
+.version-text {
+  margin-left: 20px;
+}
+.el-input {
+  width: 50%;
+}
 </style>
+
+

--
Gitblit v1.9.3