From 8bfd657326eb9d4bd9b63920cfe3bd362cea4445 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Fri, 10 Oct 2025 20:59:07 +0800
Subject: [PATCH] Merge branch 'feature/v6.0/6.0.4' into prod

---
 src/views/tickets/orderLog.vue |  216 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 120 insertions(+), 96 deletions(-)

diff --git a/src/views/tickets/orderLog.vue b/src/views/tickets/orderLog.vue
index 49f24ea..0b87bb0 100644
--- a/src/views/tickets/orderLog.vue
+++ b/src/views/tickets/orderLog.vue
@@ -138,7 +138,7 @@
 
               <div class="search-bar-box-item search-btn">
                 <el-button type="primary" icon="el-icon-search" @click="handleSearch"
-                  >搜索</el-button
+                >搜索</el-button
                 >
                 <el-button icon="el-icon-refresh" @click="handleReset">清空</el-button>
               </div>
@@ -178,10 +178,10 @@
                 type="primary"
                 icon="el-icon-plus"
                 @click="handleAdd"
-                >新建工单</el-button
+              >新建工单</el-button
               >
               <el-button type="success" plain icon="el-icon-download" @click="exportData"
-                >导出</el-button
+              >导出</el-button
               >
             </template>
 
@@ -193,7 +193,7 @@
                     type="text"
                     icon="el-icon-view"
                     @click="handleCheckDetail(row)"
-                    >审核</el-button
+                  >审核</el-button
                   >
                 </template>
                 <!-- v-if="
@@ -207,42 +207,42 @@
                     icon="el-icon-warning"
                     v-if="hasRecallPaddingBtnPermission()"
                     @click="orderLogRecall(row.id)"
-                    >撤回</el-button
+                  >撤回</el-button
                   >
                   <!-- <el-button type="text" icon="el-icon-view" @click="handleViewDetail(row)">详情</el-button> -->
                 </template>
                 <!--已驳回-->
                 <template v-if="row.status == 2">
                   <el-button type="text" icon="el-icon-warning" @click="rejectDetail(row.id)"
-                    >驳回原因</el-button
+                  >驳回原因</el-button
                   >
                   <el-button
                     v-if="userInfo.user_id == row.create_user"
                     type="text"
                     icon="el-icon-view"
                     @click="handleViewDetail(row)"
-                    >编辑</el-button
+                  >编辑</el-button
                   >
                   <el-button v-else type="text" icon="el-icon-view" @click="handleViewDetail(row)"
-                    >详情</el-button
+                  >详情</el-button
                   >
                 </template>
                 <!-- 已通过 -->
                 <template v-if="row.status == 3">
                   <el-button type="text" icon="el-icon-view" @click="handleViewDetail(row)"
-                    >详情</el-button
+                  >详情</el-button
                   >
                 </template>
                 <!--草稿-->
                 <template v-if="row.status == 0">
                   <el-button type="text" icon="el-icon-edit" @click="handleViewDetail(row)"
-                    >编辑</el-button
+                  >编辑</el-button
                   >
                   <el-button type="text" icon="el-icon-position" @click="userPublishPush(row.id)"
-                    >发布</el-button
+                  >发布</el-button
                   >
                   <el-button type="text" icon="el-icon-delete" @click="deleteOrderLog(row.id)"
-                    >删除</el-button
+                  >删除</el-button
                   >
                 </template>
               </div>
@@ -281,7 +281,7 @@
               ></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+          <el-col :span="6">
             <el-form-item label="关联航线" prop="file_id">
               <el-select
                 v-model="form.file_id"
@@ -298,15 +298,15 @@
               </el-select>
             </el-form-item>
           </el-col>
-<!--          <el-col :span="6">-->
-<!--            <el-form-item label="安全返航真高" prop="rth_altitude">-->
-<!--              <el-input-number-->
-<!--                v-model="form.rth_altitude"-->
-<!--                :min="30"-->
-<!--                :max="300"-->
-<!--              ></el-input-number>-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
+          <el-col :span="6">
+            <el-form-item label="安全返航真高" prop="rth_altitude">
+              <el-input-number
+                v-model="form.rth_altitude"
+                :min="50"
+                :max="300"
+              ></el-input-number>
+            </el-form-item>
+          </el-col>
         </el-row>
         <el-row :gutter="20">
           <el-col :span="12">
@@ -394,13 +394,13 @@
           </el-col>
         </el-row>
 
-<!--        <el-row>-->
-<!--          <div class="add-box-btns">-->
-<!--            <el-button type="danger" @click="submitForm(1)">发起</el-button>-->
-<!--            <el-button type="primary" @click="submitForm(0)">存草稿</el-button>-->
-<!--            <el-button @click="dialogVisible = false">取消</el-button>-->
-<!--          </div>-->
-<!--        </el-row>-->
+        <!--        <el-row>-->
+        <!--          <div class="add-box-btns">-->
+        <!--            <el-button type="danger" @click="submitForm(1)">发起</el-button>-->
+        <!--            <el-button type="primary" @click="submitForm(0)">存草稿</el-button>-->
+        <!--            <el-button @click="dialogVisible = false">取消</el-button>-->
+        <!--          </div>-->
+        <!--        </el-row>-->
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -558,7 +558,8 @@
 
           <el-col :span="3">
             <el-time-picker
-              style="width: 100px"
+            class="timeStyle"
+        :style="{width:pxToRem(140)}"
               v-model="form.deal_time"
               prop="deal_time"
               value-format="HH:mm"
@@ -624,7 +625,7 @@
           >驳回</el-button
           >
         </div>
-        </template>
+      </template>
     </el-dialog>
 
     <!-- 工单详情 -->
@@ -800,39 +801,40 @@
 
       </el-form>
       <template #footer>
-      <div class="dialog-footer">
-        <el-button
-          type="danger"
-          v-if="form.status == 0 || (form.status == 2 && userInfo.user_id == form.create_user)"
-          @click="submitForm(1)"
-          icon="el-icon-position"
-        >发布</el-button
-        >
-        <!-- <el-button type="primary" v-if="form.status == 0 || userInfo.user_id == form.create_user"
-                        @click="submitForm(0)">保存</el-button> -->
+        <div class="dialog-footer">
+          <el-button
+            type="danger"
+            v-if="form.status == 0 || (form.status == 2 && userInfo.user_id == form.create_user)"
+            @click="submitForm(1)"
+            icon="el-icon-position"
+          >发布</el-button
+          >
+          <!-- <el-button type="primary" v-if="form.status == 0 || userInfo.user_id == form.create_user"
+                          @click="submitForm(0)">保存</el-button> -->
 
-        <el-button
-          type="primary"
-          v-if="form.status == 1 && hasPaddingBtnPermission()"
-          @click="orderLogPass(form.id)"
-          icon="el-icon-check"
-        >通过</el-button
-        >
-        <el-button
-          type="danger"
-          v-if="form.status == 1 && hasRejectionBtnPermission()"
-          @click="orderLogReject(form.id)"
-          icon="el-icon-close"
-        >驳回</el-button
-        >
-        <el-button @click="detailVisibleCopy = false" icon="el-icon-circle-close">取消</el-button>
-      </div>
-        </template>
+          <el-button
+            type="primary"
+            v-if="form.status == 1 && hasPaddingBtnPermission()"
+            @click="orderLogPass(form.id)"
+            icon="el-icon-check"
+          >通过</el-button
+          >
+          <el-button
+            type="danger"
+            v-if="form.status == 1 && hasRejectionBtnPermission()"
+            @click="orderLogReject(form.id)"
+            icon="el-icon-close"
+          >驳回</el-button
+          >
+          <el-button @click="detailVisibleCopy = false" icon="el-icon-circle-close">取消</el-button>
+        </div>
+      </template>
     </el-dialog>
   </basic-container>
 </template>
 
 <script>
+import { pxToRem, pxToRemNum } from '@/utils/rem'
 import { calculateDefaultRange } from '@/utils/util';
 import {
   getList,
@@ -861,9 +863,13 @@
 import weekday from 'dayjs/plugin/weekday';
 import elTooltipCopy from '@/components/ElTooltipCopy.vue';
 import { CircleClose, Promotion, Select } from '@element-plus/icons-vue';
-
+import { useStore } from 'vuex';
+import _ from 'lodash'
+// const store = useStore()
 dayjs.extend(weekday);
 dayjs.locale('zh-cn');
+
+// const lastHeight = computed(() => store.state.common.lastHeight)
 
 export default {
   components: { elTooltipCopy },
@@ -871,7 +877,7 @@
   data() {
     return {
       activeTab: 'all',
-
+      getlastHeight: 0,
       tabs: [
         { label: '全部工单', name: 'all', value: null, count: 0 },
         { label: '待审核', name: 'WAIT_AUDIT', value: 1, count: 0 },
@@ -913,7 +919,7 @@
         indexLabel: '序号',
         indexFixed: true,
 
-        align: 'center',
+        align: 'left',
         border: true,
         stripe: false,
         searchShow: true,
@@ -1095,6 +1101,10 @@
       return CircleClose
     },
     ...mapGetters(['userInfo', 'permission']),
+    lastHeight() {
+      const height = this.$store.state.common.lastHeight;
+      return Number(height) || 0; // 确保是数字类型
+    },
     filteredTabs() {
       // rejection_and_draft 权限控制“已驳回”和“草稿”tab
       // console.log(this.permission, '权限信息')
@@ -1269,43 +1279,53 @@
               return this.$message.warning('任务时间不能小于当前时间');
             }
           }
+          const maxItem = this.device_sns.reduce((max, item) => {
+            return item.drone_height > max.drone_height ? item : max;
+          });
+          console.log(maxItem, '高度')
+          let result = _.round((maxItem.drone_height + this.form.rth_altitude), 2)
 
-          const submitData = {
-            ...this.form,
-            status: status,
-            ai_types: this.form.ai_types?.length ? this.form.ai_types : [],
-          };
-          // 判断该值this.form.date_range[0] 周几 和rep_fre_type 是不是相等
-          // if (this.form.deal_time) {
-          //    const weekday = dayjs(this.form.date_range[0]).format('dddd');
-          //    console.log('444', weekday)
-          //   //  form.rep_fre_type
-          //   const now = new Date()
-          //   const today = now.toDateString()
-          //   const selectedDate = new Date(this.form.date_range[0]).toDateString()
+          if (this.lastHeight > result) {
+            this.$confirm(`安全返航高度${result}米低于航线返航点高度${this.lastHeight}米为确保返航路径安全,建议您进行调整后再发布`, '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning'
+            }).then(async () => {
+              const submitData = {
+                ...this.form,
+                status: status,
+                ai_types: this.form.ai_types?.length ? this.form.ai_types : [],
+              };
+              await saveUpdateOrderLog(submitData);
+              let id = this.form.id;
+              if (id) {
+                this.$message.success('工单发布成功');
+              } else {
+                this.$message.success('工单创建成功');
+              }
+              this.dialogVisible = false;
+              this.detailVisible = false;
+              (this.device_sns = []), (this.wayLineList = []), this.fetchTableData();
+            }).catch(() => {
 
-          //   if (today === selectedDate) {
-          //     const [hours, minutes] = this.form.deal_time.split(':')
-          //     const selectedTime = new Date()
-          //     selectedTime.setHours(parseInt(hours), parseInt(minutes))
-
-          //     if (selectedTime < now) {
-          //       return this.$message.warning('任务时间不能小于当前时间')
-
-          //     }
-          //   }
-          // }
-
-          await saveUpdateOrderLog(submitData);
-          let id = this.form.id;
-          if (id) {
-            this.$message.success('工单发布成功');
+            });
           } else {
-            this.$message.success('工单创建成功');
+            const submitData = {
+              ...this.form,
+              status: status,
+              ai_types: this.form.ai_types?.length ? this.form.ai_types : [],
+            };
+            await saveUpdateOrderLog(submitData);
+            let id = this.form.id;
+            if (id) {
+              this.$message.success('工单发布成功');
+            } else {
+              this.$message.success('工单创建成功');
+            }
+            this.dialogVisible = false;
+            this.detailVisible = false;
+            (this.device_sns = []), (this.wayLineList = []), this.fetchTableData();
           }
-          this.dialogVisible = false;
-          this.detailVisible = false;
-          (this.device_sns = []), (this.wayLineList = []), this.fetchTableData();
         }
       });
     },
@@ -1411,6 +1431,7 @@
 
     handleAdd() {
       this.form = {};
+      this.form.rth_altitude = 120;
       this.dialogVisible = true;
 
       this.$nextTick(() => {
@@ -1615,7 +1636,6 @@
 
       this.initMapLine({}, async polygon => {
         const currentLine = that.wayLineList.find(item => item.wayline_id === waylineId);
-
         //按照航线来
         const params = {
           type: ['2', '4', '5'].includes(currentLine.wayline_type) ? 2 : 0,
@@ -1677,8 +1697,11 @@
       });
     },
   },
-
   watch: {
+    // lastHeight(newVal, oldVal) {
+    //   console.log('lastHeight', newVal, oldVal);
+    //   this.getlastHeight = newVal;
+    // },
     tableData: {
       handler() {
         // this.updateTabCounts()
@@ -1690,6 +1713,7 @@
 </script>
 
 <style lang="scss" scoped>
+
 :deep(.el-input-number) {
   width: 200px;
 }

--
Gitblit v1.9.3