From 2592dc279ec82bf3649a4dbe644c6416263a10ef Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 07 三月 2025 17:10:25 +0800
Subject: [PATCH] 各模块功能新增

---
 src/views/satellitetelemetry/component/AODImport.vue |  267 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 173 insertions(+), 94 deletions(-)

diff --git a/src/views/satellitetelemetry/component/AODImport.vue b/src/views/satellitetelemetry/component/AODImport.vue
index 26b107c..4bb397e 100644
--- a/src/views/satellitetelemetry/component/AODImport.vue
+++ b/src/views/satellitetelemetry/component/AODImport.vue
@@ -1,49 +1,105 @@
 <template>
   <!-- <CardDialog title="AOD鏁版嵁瀵煎叆" :model-value="modelValue" :width="420" @changed="handleChange"> -->
-    <div class="download">
-      <el-button @click="downloadTemplate" type="primary" class="el-button-custom" size="small"
-        v-loading="downloadLoading">涓嬭浇妯℃澘</el-button>
-    </div>
-    <el-form :model="formObj" :rules="rules" ref="formRef" label-position="right" label-width="60px">
-      <el-form-item label="鍖哄煙">
-        <OptionLocation2 :level="3" :initValue="true" :checkStrictly="false" :allOption="true" v-model="location"
-          width="200">
-        </OptionLocation2>
-      </el-form-item>
-      <OptionGridGroup ref="gridGroupRef" v-model="gridGroup"></OptionGridGroup>
-      <el-form-item label="鏃堕棿" prop="dateTime">
-        <el-date-picker v-model="formObj.dateTime" type="date" placeholder="閫夋嫨鏃堕棿" size="small" :clearable="false" />
-      </el-form-item>
-      <el-form-item label="">
-        <el-row>
-          <el-col>
-            <label><el-checkbox v-model="formObj.update" label="" size="small"
-                :disabled="hasGridAod == undefined || hasGridAod == false" />鍚屾剰</label>
-          </el-col>
-          <el-col>
-            <el-text class="mx-1" type="danger" v-if="hasGridAod == true">褰撴棩AOD鏁版嵁宸插瓨鍦紝璇峰嬀閫夊悓鎰忓悗杩涜鏁版嵁鏇存柊瑕嗙洊</el-text>
-            <el-text class="mx-1" type="success" v-else-if="hasGridAod == false">褰撴棩AOD鏃犳暟鎹紝鍙柊澧炲鍏�</el-text>
-          </el-col>
-        </el-row>
-      </el-form-item>
-      <el-form-item>
-        <el-upload v-model:file-list="formObj.file" accept=".xlsx" :limit="1" :auto-upload="false" ref="uploadRef"
-          :on-exceed="handleUploadExceed" :on-change="handleUploadChange">
-          <template #trigger>
-            <el-button :disabled="formObj.update == undefined || (hasGridAod == true && formObj.update == false)"
-              type="primary" class="el-button-custom select-file-button" size="small" accept=".xlsx">閫夋嫨鏂囦欢</el-button>
-          </template>
-          <el-button @click="onSubmit" type="primary" class="el-button-custom import-button" size="small"
-            :disabled="!formObj.file || formObj.file.length == 0" v-loading="loading">
-            瀵煎叆
-          </el-button>
-        </el-upload>
-      </el-form-item>
-      <el-form-item>
-        <el-text class="mx-1" type="danger">{{ errorTipMsg }}</el-text>
-        <el-text class="mx-1" type="success">{{ successTipMsg }}</el-text>
-      </el-form-item>
-    </el-form>
+  <div class="download">
+    <el-button
+      @click="downloadTemplate"
+      type="primary"
+      class="el-button-custom"
+      size="small"
+      v-loading="downloadLoading"
+      >涓嬭浇妯℃澘</el-button
+    >
+  </div>
+  <el-form
+    :model="formObj"
+    :rules="rules"
+    ref="formRef"
+    label-position="right"
+    label-width="60px"
+  >
+    <el-form-item label="鍖哄煙">
+      <OptionLocation2
+        :level="3"
+        :initValue="true"
+        :checkStrictly="false"
+        :allOption="true"
+        v-model="location"
+        width="200"
+      >
+      </OptionLocation2>
+    </el-form-item>
+    <OptionGridGroup ref="gridGroupRef" v-model="gridGroup"></OptionGridGroup>
+    <el-form-item label="鏃堕棿" prop="dateTime">
+      <el-date-picker
+        v-model="formObj.dateTime"
+        type="date"
+        placeholder="閫夋嫨鏃堕棿"
+        size="small"
+        :clearable="false"
+      />
+    </el-form-item>
+    <el-form-item label="">
+      <el-row>
+        <el-col>
+          <label
+            ><el-checkbox
+              v-model="formObj.update"
+              label=""
+              size="small"
+              :disabled="hasGridAod == undefined || hasGridAod == false"
+            />鍚屾剰</label
+          >
+        </el-col>
+        <el-col>
+          <el-text class="mx-1" type="danger" v-if="hasGridAod == true"
+            >褰撴棩AOD鏁版嵁宸插瓨鍦紝璇峰嬀閫夊悓鎰忓悗杩涜鏁版嵁鏇存柊瑕嗙洊</el-text
+          >
+          <el-text class="mx-1" type="success" v-else-if="hasGridAod == false"
+            >褰撴棩AOD鏃犳暟鎹紝鍙柊澧炲鍏�</el-text
+          >
+        </el-col>
+      </el-row>
+    </el-form-item>
+    <el-form-item>
+      <el-upload
+        v-model:file-list="formObj.file"
+        accept=".xlsx"
+        :limit="1"
+        :auto-upload="false"
+        ref="uploadRef"
+        :on-exceed="handleUploadExceed"
+        :on-change="handleUploadChange"
+      >
+        <template #trigger>
+          <el-button
+            :disabled="
+              formObj.update == undefined ||
+              (hasGridAod == true && formObj.update == false)
+            "
+            type="primary"
+            class="el-button-custom select-file-button"
+            size="small"
+            accept=".xlsx"
+            >閫夋嫨鏂囦欢</el-button
+          >
+        </template>
+        <el-button
+          @click="onSubmit"
+          type="primary"
+          class="el-button-custom import-button"
+          size="small"
+          :disabled="!formObj.file || formObj.file.length == 0"
+          v-loading="loading"
+        >
+          瀵煎叆
+        </el-button>
+      </el-upload>
+    </el-form-item>
+    <el-form-item>
+      <el-text class="mx-1" type="danger">{{ errorTipMsg }}</el-text>
+      <el-text class="mx-1" type="success">{{ successTipMsg }}</el-text>
+    </el-form-item>
+  </el-form>
   <!-- </CardDialog> -->
 </template>
 <script setup>
@@ -55,7 +111,7 @@
 
 const gridGroupRef = ref(null);
 const uploadRef = ref(null);
-// 鏄惁鏈夋暟鎹竷灏旂被鍨� 榛樿涓虹┖ 
+// 鏄惁鏈夋暟鎹竷灏旂被鍨� 榛樿涓虹┖
 const hasGridAod = ref(null);
 const location = ref({});
 const gridGroup = ref({});
@@ -81,24 +137,32 @@
 };
 
 const downloadTemplate = () => {
-  downloadLoading.value = true
-  gridApi.downloadAODTemplate().then(res => {
-    downloadLoading.value = false
-  }).catch(e => {
-    downloadLoading.value = false
-  });
+  downloadLoading.value = true;
+  gridApi
+    .downloadAODTemplate()
+    .then((res) => {
+      downloadLoading.value = false;
+    })
+    .catch((e) => {
+      downloadLoading.value = false;
+    });
 };
 
 // 閫氳繃缃戞牸缁勫拰鏃堕棿 鏌ヨ 鍦ㄨ繖涓や釜鍙傛暟鏉′欢涓嬫槸鍚︽湁缃戞牸鏁版嵁锛屽苟鎻愮ず鍦ㄧ晫闈腑鏈夋垨鑰呮病鏈�
 const checkEmpty = () => {
-  aodApi.fetchAOD(gridGroup.value.id, dayjs(formObj.value.dateTime).format('YYYY-MM-DD HH:mm:ss')).then(res => {
-    if (res.data && res.data.length > 0) {
-      hasGridAod.value = true;
-    } else {
-      formObj.value.update = false
-      hasGridAod.value = false;
-    }
-  })
+  aodApi
+    .fetchAOD(
+      gridGroup.value.id,
+      dayjs(formObj.value.dateTime).format('YYYY-MM-DD HH:mm:ss')
+    )
+    .then((res) => {
+      if (res.data && res.data.length > 0) {
+        hasGridAod.value = true;
+      } else {
+        formObj.value.update = false;
+        hasGridAod.value = false;
+      }
+    });
 };
 const handleImportClick = () => {
   loading.value = true;
@@ -109,7 +173,9 @@
   const reader = new FileReader();
   reader.readAsArrayBuffer(formObj.value.file[0].raw);
   reader.onload = async (theFile) => {
-    const binary = new Blob([theFile.target.result], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
+    const binary = new Blob([theFile.target.result], {
+      type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
+    });
     formData.append('excel', binary);
     formData.append('groupId', gridGroup.value.id);
     formData.append(
@@ -120,60 +186,60 @@
     gridApi
       .importAOD(formData)
       .then((res) => {
-        resetApiTipMsg()
+        resetApiTipMsg();
         loading.value = false;
         if (res && res.success == true) {
           // 瀵煎叆鎴愬姛锛�1.瀵煎叆鎴栬�呰鐩栨垚鍔燂紝鏄惁涓虹┖鐘舵�佹敼鍙樹簡锛岄噸鏂版鏌�
-          checkEmpty()
-          successTipMsg.value = res.data.result
+          checkEmpty();
+          successTipMsg.value = res.data.result;
         } else {
-          errorTipMsg.value = res.message
+          errorTipMsg.value = res.message;
         }
-      }).catch(e => {
-        loading.value = false;
-        errorTipMsg.value = e
       })
-  }
+      .catch((e) => {
+        loading.value = false;
+        errorTipMsg.value = e;
+      });
+  };
 };
 const resetApiTipMsg = () => {
-  successTipMsg.value = ''
-  errorTipMsg.value = ''
+  successTipMsg.value = '';
+  errorTipMsg.value = '';
 };
 // 褰撻�夋嫨鏂囦欢鍚庯細 1. 閲嶇疆鎻愮ず淇℃伅锛岄槻姝㈣瀵� 2.瀵规枃浠剁被鍨嬬殑妫�鏌�
 const handleUploadChange = (file, files) => {
-  resetApiTipMsg()
+  resetApiTipMsg();
   const fileType = file.raw.type;
   // 妫�鏌ユ枃浠剁被鍨嬫槸鍚︿负 'xlsx'
-  if (fileType !== 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
+  if (
+    fileType !==
+    'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
+  ) {
     ElMessage({
       message: '鏂囦欢绫诲瀷閿欒锛岃閲嶆柊涓婁紶xlsx绫诲瀷鏂囦欢',
       type: 'error'
-    })
+    });
     files.splice(0, 1); // 闃绘涓婁紶
   }
 };
 // 鏂伴�夋嫨鏂囦欢鏇挎崲鏃ф枃浠�
 const handleUploadExceed = (files) => {
-  const file = files[0]
-  uploadRef.value.clearFiles()
-  uploadRef.value.handleStart(file)
+  const file = files[0];
+  uploadRef.value.clearFiles();
+  uploadRef.value.handleStart(file);
 };
 const { formObj, formRef, edit, onSubmit, onCancel } = useFormConfirm({
   submit: {
     do: handleImportClick
   },
   cancel: {
-    do: () => {
-
-    }
+    do: () => {}
   }
 });
 
-
-
 watch(location, (nv, ov) => {
   if (nv != ov) {
-    resetApiTipMsg()
+    resetApiTipMsg();
     const area = {
       provinceCode: nv.pCode,
       provinceName: nv.pName,
@@ -184,21 +250,34 @@
       townCode: nv.tCode,
       townName: nv.tName
     };
-    gridGroupRef.value.fetchGridGroup(area);
+    gridGroupRef.value.fetchGridGroup(area, 'origin');
   }
 });
 
-watch(gridGroup, (nv) => {
-  if (nv && Object.keys(nv).length === 0 && formObj.value.dateTime && Object.keys(formObj.value.dateTime).length === 0) {
-    checkEmpty()
-  }
-}, { deep: true });
+watch(
+  gridGroup,
+  (nv) => {
+    if (
+      nv &&
+      Object.keys(nv).length === 0 &&
+      formObj.value.dateTime &&
+      Object.keys(formObj.value.dateTime).length === 0
+    ) {
+      checkEmpty();
+    }
+  },
+  { deep: true }
+);
 
-watch(formObj.value, (nv) => {
-  if (nv.dateTime && gridGroup.value) {
-    checkEmpty()
-  }
-}, { deep: true });
+watch(
+  formObj.value,
+  (nv) => {
+    if (nv.dateTime && gridGroup.value) {
+      checkEmpty();
+    }
+  },
+  { deep: true }
+);
 </script>
 <style scoped>
 .download {
@@ -225,4 +304,4 @@
 ::v-deep .el-select {
   width: 200px !important;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3