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/CompEditException.vue |  361 +++++++++++++++++++++++++++++++++------------------
 1 files changed, 234 insertions(+), 127 deletions(-)

diff --git a/src/views/data_management/components/CompEditException.vue b/src/views/data_management/components/CompEditException.vue
index 4e3d846..6c34a19 100644
--- a/src/views/data_management/components/CompEditException.vue
+++ b/src/views/data_management/components/CompEditException.vue
@@ -1,157 +1,264 @@
 <script>
-import TimeSinglePicker from '@/sfc/TimeSinglePicker.vue'
+import exceptionSetting from '@/api/setting/exceptionSetting.js'
+import { useCommonFunction } from '@/utils/common.js'
 export default {
-  props: ['modelValue'],
-  emits: ['update:modelValue'],
-  components: {
-    TimeSinglePicker
+  props: {
+    userName: {
+      type: String,
+      default: ''
+    }
   },
+
   computed: {
-    visible: {
-      get() {
-        return this.modelValue
-      },
-      set(value) {
-        this.$emit('update:modelValue', value)
+    formDataAfterCal() {
+      return {
+        user: this.userName,
+        region: this.form.region,
+        // 鏄慨鏀圭姸鎬�-->璇ヨ褰曠殑鐗堟湰鍙�  鏄柊澧炵姸鎬�--> 閰嶇疆琛ㄨ〃鏈�澶х殑鐗堟湰鍙�
+        version: this.modify ? this.form.version : this.maxVersion,
+
+        missDataMinutes: this.form.missDataMinutes,
+        dataLow: this.form.dataLow,
+        longTimeNoChange: this.form.longTimeNoChange,
+        mutationNum: this.form.mutationNum,
+        mutationRate: this.form.mutationRate,
+        nearExceedLowValue: this.form.nearExceedLowValue,
+        nearExceedHighValue: this.form.nearExceedHighValue,
+        nearExceedNum: this.form.nearExceedNum,
+        dayExceedBorderlineLowNum: this.form.dayExceedBorderlineLowNum,
+        dayExceedBorderlineHighNum: this.form.dayExceedBorderlineHighNum,
+        changeTrendGroup: this.form.changeTrendGroup,
+        changeTrendInterval: this.form.changeTrendInterval,
+        changeTrendRate: this.form.changeTrendRate,
+        changeTrendTimes: this.form.changeTrendTimes,
+        exceedingStandard: this.form.exceedingStandard
       }
+    }
+  },
+  watch: {
+    formData: {
+      handler() {
+        if (Object.keys(this.formData).length != 0)
+          this.form = JSON.parse(JSON.stringify(this.formData))
+      },
+      deep: true
     }
   },
   data() {
     return {
-      form: {
-        user: 'admin',
-        updateTime: '2023-10-10 09:16:41',
-        region: '閲戝北鍖�',
-        version: '1.0',
-
-        missDataMinutes: 45,
-        dataLow: 0.02,
-        longTimeNoChange: 5,
-        mutationNum: 2,
-        mutationRate: 1,
-        nearExceedLowValue: 0.7,
-        nearExceedHighValue: 1,
-        nearExceedNum: 4,
-        dayExceedBorderlineLowNum: 6,
-        dayExceedBorderlineHighNum: 7,
-        changeTrendGroup: 12,
-        changeTrendInterval: 12,
-        changeTrendRate: 1,
-        changeTrendTimes: 3,
-        exceedingStandard: 1
-      },
-      describe: null
+      form: {},
+      // 鏈�楂樼殑鐗堟湰鍙�
+      maxVersion: null,
+      loading: false,
+      // 淇敼鐘舵��
+      modify: false
     }
   },
-
-  mounted() {
-    this.operation()
+  setup() {
+    const { findMaxValue } = useCommonFunction()
+    return { findMaxValue }
   },
+  mounted() {
+    this.queryException()
+  },
+
   methods: {
     // 鎻愪氦
-    submit() {
-      this.visible = false
+    async submitForm() {
+      // 鍙戦�佷慨鏀圭殑璇锋眰
+      await exceptionSetting.submitExceptionSetting(this.formDataAfterCal)
+
+      this.$message.success('鎻愪氦鎴愬姛')
+
+      // 鏁版嵁鎻愪氦鍚庡埛鏂拌〃鍗�
+      this.queryException()
     },
-    // 鍙栨秷
-    cancel_1() {
-      this.visible = false
-    },
-    // 瀵硅薄澶勭悊
-    operation() {
-      // console.log(Object.keys(this.form));
-      // console.log(Object.values(this.form));
-      console.log(Object.entries(this.form))
-      let temp = []
-      let arr = Object.entries(this.form)
-      for (let item of arr) {
-        let obj = {}
-        obj.label = item[0]
-        obj.value = item[1]
-        temp.push(obj)
+
+    /**
+     * 鍥為��鍒伴粯璁ら厤缃�
+     * @param锛�
+     * @returns锛�
+     */
+    async defaultSetting() {
+      if (this.form.version == '1.0') {
+        this.$message.info('褰撳墠宸茬粡鏄粯璁ょ殑鐗堟湰')
+        return
       }
-      this.describe = temp
-      console.log(temp)
+      this.loading = true
+      await exceptionSetting.queryDefaultSetting().then((Response) => {
+        this.form = {}
+        this.form = Response.data.data[0]
+      })
+
+      this.modify = true
+      // 璁剧疆鐗堟湰1.0 鐨勬洿鏂版椂闂�
+      exceptionSetting.alertExceptionSetting(this.formDataAfterCal)
+      this.modify = false
+      this.loading = false
+
+      this.$message.success('鍥為��鎴愬姛')
+    },
+
+    /**
+     * 鏌ヨ璇锋眰璁剧疆鐨勬暟鎹�
+     * @param锛�
+     * @returns锛�
+     */
+    queryException() {
+      this.loading = true
+      exceptionSetting.queryExceptionSetting().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)
+      })
+    },
+    /**
+     * 鍙栨秷鎸夐挳
+     * @param锛�
+     * @returns锛�
+     */
+    cancelEvent() {
+      this.$message.info('宸插彇娑�')
     }
+
   }
 }
 </script>
 <template>
-  <el-dialog v-model="visible" title="璇锋眰鏁版嵁" align-center>
-    <el-form :model="form" label-width="120px">
-      <el-form-item label="鐢ㄦ埛鍚�">
-        <el-input v-model="form.user" disabled />
-      </el-form-item>
-      <el-form-item label="寮�濮嬫椂闂�">
-        <TimeSinglePicker @submit-time="(n) => (form.requestStartTime = n)"></TimeSinglePicker>
-      </el-form-item>
-      <el-form-item label="缁撴潫鏃堕棿">
-        <TimeSinglePicker @submit-time="(n) => (form.requestEndTime = n)"></TimeSinglePicker>
-      </el-form-item>
-      <el-form-item label="鑾峰彇棰戠巼">
-        <el-input-number v-model="num" :min="1" :max="24" @change="handleChange" />
-      </el-form-item>
-      <el-form-item label="鍒嗘鏃堕暱">
-        <el-input-number v-model="num" :min="1" :max="10" @change="handleChange" />
-      </el-form-item>
-      <el-form-item label="鍒嗘鎵ц鏃剁殑姣忔鐨勯棿闅旀椂闂�">
-        <el-input-number v-model="num" :min="1" :max="10" @change="handleChange" />
-      </el-form-item>
-      <el-form-item label="鑾峰彇鏁版嵁浠诲姟寮傚父鏃跺啀娆″皾璇曢棿闅�">
-        <el-input-number v-model="num" :min="1" :max="10" @change="handleChange" />
-      </el-form-item>
-      <el-form-item label="鑾峰彇鏁版嵁澶辫触鏃跺啀娆″皾璇曠殑鎬绘鏁�">
-        <el-input-number v-model="num" :min="1" :max="10" @change="handleChange" />
-      </el-form-item>
-      <el-form-item label="鏃ョ粺璁�">
-        <TimeSinglePicker @submit-time="(n) => (form.staticsDailyTime = n)" />
-      </el-form-item>
-      <el-form-item label="鏈堢粺璁�">
-        <TimeSinglePicker @submit-time="(n) => (form.staticsMonthlyTime = n)" />
-      </el-form-item>
-      <el-form-item label="鐧诲綍澶辫触绛夊緟鏃堕暱">
-        <el-input-number v-model="num" :min="1" :max="10" @change="handleChange" />
-      </el-form-item>
-      <el-form-item label="鐧诲綍澶辫触灏濊瘯娆℃暟">
-        <el-input-number v-model="num" :min="1" :max="10" @change="handleChange" />
-      </el-form-item>
-      <el-form-item label="浠诲姟閲嶆柊寮�濮嬪皾璇曠瓑寰呮椂闂�">
-        <el-input-number v-model="num" :min="1" :max="10" @change="handleChange" />
-      </el-form-item>
-      <el-form-item label="鏁版嵁鑾峰彇寮�濮嬫椂闂寸浉瀵瑰綋鏃ュ線鍓嶅亸绉�">
-        <el-input-number v-model="num" :min="1" :max="10" @change="handleChange" />
-      </el-form-item>
-    </el-form>
 
-    <template #footer>
-      <el-button @click="cancel_1">鍙栨秷</el-button>
-      <el-button type="primary" @click="submit">鎻愪氦</el-button>
+  <div class="my-header">
+    <el-text tag="b"> 姝e湪浣跨敤鐨勭増鏈細{{ form.version }}</el-text>
+  </div>
+  <el-form :model="form" label-width="230px" v-loading="loading">
+    <el-form-item label="鐢ㄦ埛鍚�">
+      <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="(鏁版嵁缂哄け)缂哄け鐨勫垎閽熸暟">
+      <el-input v-model.number="form.missDataMinutes">
+        <template #append>鍒嗛挓</template>
+      </el-input>
+    </el-form-item>
+    <el-form-item label="(鏁版嵁瓒呬綆)棰楃矑鐗╂祿搴﹀�煎皬浜嶺">
+      <el-input v-model="form.dataLow">
+        <template #append>mg/m鲁</template>
+      </el-input>
+    </el-form-item>
+    <el-form-item label="(鏁版嵁闀挎椂闂存棤娉㈠姩)杩炵画X涓�肩浉绛�">
+      <el-input v-model.number="form.longTimeNoChange">
+        <template #append>涓�</template>
+      </el-input>
+    </el-form-item>
+    <el-form-item label="(閲忕骇绐佸彉)杩炵画N涓�15鍒嗛挓">
+      <el-input v-model.number="form.mutationNum">
+        <template #append>鍒嗛挓</template>
+      </el-input>
+    </el-form-item>
+    <el-form-item label="(閲忕骇绐佸彉)鍙樺寲鐜囪秴杩嘪">
+      <el-input v-model="form.mutationRate">
+        <template #append>姣旂巼</template>
+      </el-input>
+    </el-form-item>
+    <el-form-item label="(涓磋繎瓒呮爣寮傚父)澶勪簬[a,b]鐨勫乏杈圭晫">
+      <el-input v-model="form.nearExceedLowValue">
+        <template #append>mg/m鲁</template>
+      </el-input>
+    </el-form-item>
+    <el-form-item label="(涓磋繎瓒呮爣)澶勪簬[a,b]鐨勫彸杈圭晫">
+      <el-input v-model="form.nearExceedHighValue">
+        <template #append>mg/m鲁</template>
+      </el-input>
+    </el-form-item>
+    <el-form-item label="(涓磋繎瓒呮爣)娆℃暟瓒呰繃X涓�">
+      <el-input v-model.number="form.nearExceedNum">
+        <template #append>娆�</template>
+      </el-input>
+    </el-form-item>
+    <el-form-item label="(鍗曟棩瓒呮爣娆℃暟涓寸晫)瓒呮爣娆℃暟杈綳娆�">
+      <el-input v-model.number="form.dayExceedBorderlineLowNum">
+        <template #append>娆�</template>
+      </el-input>
+    </el-form-item>
+    <el-form-item label="(鍗曟棩瓒呮爣娆℃暟涓寸晫)浣嗘湭杈惧埌Y娆�">
+      <el-input v-model.number="form.dayExceedBorderlineHighNum">
+        <template #append>娆�</template>
+      </el-input>
+    </el-form-item>
+    <el-form-item label="(鍙樺寲瓒嬪娍寮傚父)N涓竴缁�">
+      <el-input v-model.number="form.changeTrendGroup">
+        <template #append>涓�</template>
+      </el-input>
+    </el-form-item>
+    <el-form-item label="(鍙樺寲瓒嬪娍寮傚父)闂撮殧M">
+      <el-input v-model.number="form.changeTrendInterval">
+        <template #append>涓�</template>
+      </el-input>
+    </el-form-item>
+    <el-form-item label="(鍙樺寲瓒嬪娍寮傚父)骞冲潎鍊肩浉宸甕">
+      <el-input v-model="form.changeTrendRate">
+        <template #append>mg/m鲁</template>
+      </el-input>
+    </el-form-item>
+
+    <el-form-item label="(鍙樺寲瓒嬪娍寮傚父)杩炵画鐨勬鏁�">
+      <el-input v-model.number="form.changeTrendTimes">
+        <template #append>娆�</template>
+      </el-input>
+    </el-form-item>
+
+    <el-form-item label="(瓒呮爣)瓒呰繃鏍囧噯鍊�">
+      <el-input v-model="form.exceedingStandard">
+        <template #append>mg/m鲁</template>
+      </el-input>
+    </el-form-item>
+  </el-form>
+
+  <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-button @click="operation">瀵硅薄澶勭悊</el-button> -->
-
-  <el-descriptions title="寮傚父鍒嗘瀽閰嶇疆" :column="4" size="large" border>
-    <el-descriptions-item
-      v-for="item in describe"
-      :key="item.label"
-      :label="item.label"
-      label-align="left"
-      align="center"
-      class-name="content-text"
-      label-class-name="label-text"
-    >
-      {{ item.value }}
-    </el-descriptions-item>
-  </el-descriptions>
+  <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>
-:deep(.label-text) {
-  font-size: 14px !important;
-  font-weight: bold !important;
-  color: #333333 !important;
+.my-header {
+  margin-bottom: 20px;
 }
-:deep(.content-text) {
-  color: #333333 !important;
+span {
+  font-size: 16px;
+  color: #0a0a0a;
+}
+.version-text {
+  margin-left: 20px;
+}
+.el-input {
+  width: 50%;
 }
 </style>

--
Gitblit v1.9.3