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