From a623394c7e5d67556ce63d0fb6d6e45b8dee959d Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Thu, 25 Sep 2025 10:08:49 +0800
Subject: [PATCH] Merge branch 'feature/v6.0/6.0.3' into feature/v6.0/6.0.4

---
 src/types/device-cmd.js                           |    2 
 src/option/job/jobserver.js                       |    4 
 src/views/tickets/ticket.vue                      |   32 +-
 src/api/logs.js                                   |   52 +++++
 src/views/tickets/orderLog.vue                    |   33 ++
 src/views/job/components/TaskTop/TaskIndustry.vue |    8 
 src/views/dataCenter/dataCenter.vue               |    3 
 src/views/device/addDevice.vue                    |    4 
 src/views/monitor/log/flightLog.vue               |  393 +++++++++++++++++++++++++++++++++++++++
 src/views/device/airport.vue                      |   13 
 10 files changed, 510 insertions(+), 34 deletions(-)

diff --git a/src/api/logs.js b/src/api/logs.js
index 40f602d..c3cd115 100644
--- a/src/api/logs.js
+++ b/src/api/logs.js
@@ -62,3 +62,55 @@
     },
   });
 };
+// 历史轨迹记录
+export const getHistoryTrack = (params) => {
+  return request({
+    url: '/drone-device-core/log/droneFlightLog/page',
+    method: 'get',
+    params
+  })
+}
+// 导出飞行日志
+export const exportFlyLog = data => {
+  return request({
+    url: '/drone-device-core/log/droneFlightLogInfo/export',
+    method: 'post',
+    data
+  })
+}
+// 收藏
+export const addStar = data => {
+  return request({
+    url: '/drone-device-core/log/favorite/add',
+    method: 'post',
+    data
+  })
+}
+// 收藏列表
+export const starPage = (params) => {
+  return request({
+    url: '/drone-device-core/log/favorite/page',
+    method: 'post',
+    params
+  })
+}
+export const updateDroneFlight = (data) => {
+  return request({
+    url: '/drone-device-core/log/droneFlightLog/updateDroneFlight',
+    method: 'post',
+    data
+  })
+}
+export const cancelStar = data => {
+  return request({
+    url: '/drone-device-core/log/favorite/cancel/'+data,
+    method: 'get',
+  })
+}
+export const droneFlightLogInfoPage = params => {
+  return request({
+    url: '/drone-device-core/log/droneFlightLogInfo/page',
+    method: 'get',
+    params
+  })
+}
diff --git a/src/option/job/jobserver.js b/src/option/job/jobserver.js
index ebf0fc2..adfcb9e 100644
--- a/src/option/job/jobserver.js
+++ b/src/option/job/jobserver.js
@@ -11,7 +11,9 @@
 export default {
   tip: false,
   searchShow: true,
-  searchMenuSpan: 6,
+  // searchGutter: 10,
+  searchMenuPosition: 'right',
+  searchMenuSpan: 12,
   border: true,
   index: true,
   viewBtn: true,
diff --git a/src/types/device-cmd.js b/src/types/device-cmd.js
index cfa417b..357b354 100644
--- a/src/types/device-cmd.js
+++ b/src/types/device-cmd.js
@@ -146,7 +146,7 @@
     disabled: true,
   },
   {
-    label: '4g 增强',
+    label: '4G 增强',
     status: '--',
     operateText: '开启',
     cmdKey: DeviceCmd.SdrWorkModeSwitch,
diff --git a/src/views/dataCenter/dataCenter.vue b/src/views/dataCenter/dataCenter.vue
index 052a8d8..32c1d85 100644
--- a/src/views/dataCenter/dataCenter.vue
+++ b/src/views/dataCenter/dataCenter.vue
@@ -35,7 +35,7 @@
               }}
             </template>
           </el-table-column>
-          <el-table-column property="recordName" label="任务名称" show-overflow-tooltip />
+          <el-table-column property="name" label="任务名称" show-overflow-tooltip />
            <el-table-column property="regionName" label="所属区域">
              <template #default="scope">
               <span>{{scope.row.city_name ? scope.row.city_name :'--'}},{{scope.row.area_name ? scope.row.area_name :'--'}}</span>
@@ -500,6 +500,7 @@
 		.then(res => {
     folderList.value = res.data.data.records.map(i => ({ ...i, checked: false }))
     total.value = res.data.data.total
+
 		})
 		.finally(() => {
 		  loadings.value = false;
diff --git a/src/views/device/addDevice.vue b/src/views/device/addDevice.vue
index 3c32c25..8745e8c 100644
--- a/src/views/device/addDevice.vue
+++ b/src/views/device/addDevice.vue
@@ -74,8 +74,8 @@
                 searchGutter: 30,
                 tip: false,
                 searchShow: true,
-                searchMenuSpan: 6,
-                searchGutter: 30,
+                searchMenuPosition: 'right',
+                searchMenuSpan: 10,
                 border: true,
                 index: true,
                 indexLabel: '序号',
diff --git a/src/views/device/airport.vue b/src/views/device/airport.vue
index c5753eb..79db3c0 100644
--- a/src/views/device/airport.vue
+++ b/src/views/device/airport.vue
@@ -306,7 +306,9 @@
         searchGutter: 30,
         tip: false,
         searchShow: true,
-        searchMenuSpan: 6,
+        // searchMenuSpan: 16,
+        searchMenuPosition: 'right',
+        searchMenuSpan: 8,
         border: true,
         index: true,
         indexLabel: '序号',
@@ -465,8 +467,8 @@
             ],
           },
           {
-            label: '是否激活',
-            prop: 'esim_activate_state',
+            label: '4G增强',
+            prop: 'link_workmode',
             labelWidth: 145,
             width: 160,
             overHidden: true,
@@ -475,9 +477,8 @@
             align: 'center',
             formatter: (row, column, cellValue) => {
               const statusMap = {
-                0: '未知',
-                1: '未激活',
-                2: '已激活'
+                0: '关',
+                1: '开',
               };
               return statusMap[cellValue] || '/';
             }
diff --git a/src/views/job/components/TaskTop/TaskIndustry.vue b/src/views/job/components/TaskTop/TaskIndustry.vue
index c4ac73f..58c3ed8 100644
--- a/src/views/job/components/TaskTop/TaskIndustry.vue
+++ b/src/views/job/components/TaskTop/TaskIndustry.vue
@@ -29,8 +29,8 @@
 			color: '#363636',
 			fontSize: 12,
 		},
-		itemWidth: 2, // 减小图例标记的宽度
-		itemHeight: 6, // 减小图例标记的高度
+		itemWidth: 8, // 减小图例标记的宽度
+		itemHeight: 8, // 减小图例标记的高度
 		itemGap: 8, // 减小图例项之间的间距
 		formatter: '{name}', // 简化图例文本
 	},
@@ -43,14 +43,14 @@
       center: ['30%', '50%'],
 			data: [],
 			label: {
-				show: true,
+				show: false,
 				position: 'outside',
 				formatter: '{c}',
 				fontSize: 12,
 				color: '#000',
 			},
 			labelLine: {
-				show: true,
+				show: false,
 				length: 10,
 				length2: 10,
 				lineStyle: {
diff --git a/src/views/monitor/log/flightLog.vue b/src/views/monitor/log/flightLog.vue
new file mode 100644
index 0000000..ce69d6c
--- /dev/null
+++ b/src/views/monitor/log/flightLog.vue
@@ -0,0 +1,393 @@
+<!-- 飞行日志 -->
+<template>
+  <div class="flight">
+    <div class="ztzf-search-mange">
+      <el-form :model="params" inline>
+        <div class="search-contain">
+          <div>
+            <el-form-item label="任务名称:">
+              <el-input v-model="params.jobName" placeholder="请输入任务名称" clearable />
+            </el-form-item>
+            <el-form-item label="任务编号:">
+              <el-input v-model="params.jobInfoNum" placeholder="请输入任务编号" clearable />
+            </el-form-item>
+            <el-form-item label="日期:">
+              <el-date-picker
+                v-model="rangTime"
+                type="daterange"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                clearable
+                @change="changeselect"
+              />
+            </el-form-item>
+          </div>
+          <div class="btns">
+            <el-button type="primary" @click="getList" :icon="Search">搜索</el-button>
+            <el-button @click="cancelSearch" :icon="Delete">清空</el-button>
+          </div>
+        </div>
+      </el-form>
+    </div>
+    <div class="mange-table">
+<!--      <el-tabs v-model="tabType" class="demo-tabs" @tab-click="handleTabClick">-->
+<!--        <el-tab-pane label="全部" name="全部"></el-tab-pane>-->
+<!--        <el-tab-pane label="我的收藏" name="收藏"></el-tab-pane>-->
+<!--        -->
+<!--      </el-tabs>-->
+      <el-table border :data="tableList" class="custom-header">
+        <el-table-column label="序号" type="index" width="60"></el-table-column>
+        <el-table-column prop="job_name" label="任务名称" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="job_info_num" label="任务编号" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="title" label="飞行类型" align="center" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="device_name" label="无人机" align="center"></el-table-column>
+        <el-table-column prop="start_time" label="开始时间" align="center">
+          <template #default="scope">
+            {{ timeFormatConvert(scope.row.start_time) }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="end_time" label="结束时间" align="center">
+          <template #default="scope">
+            {{ timeFormatConvert(scope.row.end_time) }}
+          </template>
+        </el-table-column>
+<!--        <el-table-column prop="end_time" label="标签" align="center">-->
+<!--          <template #default="scope">-->
+<!--            <el-select v-model="scope.row.label_id" @change="handleUpdateLabel(scope.row)" clearable>-->
+<!--              <el-option-->
+<!--                v-for="item in tagList"-->
+<!--                :key="item.id"-->
+<!--                :label="item.label_name"-->
+<!--                :value="item.id"-->
+<!--              ></el-option>-->
+<!--            </el-select>-->
+<!--          </template>-->
+<!--        </el-table-column>-->
+        <el-table-column label="操作" width="300" align="center">
+          <template #default="scope">
+            <el-button icon="el-icon-view" type="text" @click="handleDetail(scope.row)">查看</el-button>
+            <el-button icon="el-icon-delete" type="text" @click="handleDelete(scope.row)">删除</el-button>
+<!--            <el-button type="text" @click="handleStar(scope.row)">-->
+<!--              <el-icon><Star /></el-icon>-->
+<!--              {{ scope.row.is_favorite ? '取消收藏':'收藏' }}</el-button>-->
+            <el-button type="text" @click="handleExport(scope.row)"><el-icon><Download /></el-icon>导出</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+
+    <div class="pagination">
+      <el-pagination class="ztzf-pagination" popper-class="custom-pagination-dropdown" background
+                     :page-sizes="[10, 20, 30, 40, 50, 100]" :size="size" v-model:current-page="params.page"
+                     v-model:page-size="params.page_size" layout="total, sizes, prev, pager, next, jumper" :total="total"
+                     @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+    </div>
+  </div>
+  <el-dialog class="ztzf-dialog" append-to-body v-model="isShowView" title="查看"
+             :width="pxToRem(1000)" :close-on-click-modal="false" :destroy-on-close="true">
+    <!-- <div class="content"> -->
+    <el-table border :data="tableDataDetails" height="466">
+      <el-table-column label="序号" type="index" width="60"></el-table-column>
+      <el-table-column prop="flight_type" label="飞行类型" align="center" show-overflow-tooltip></el-table-column>
+      <el-table-column prop="latitude" label="经度" align="center"></el-table-column>
+      <el-table-column prop="longitude" label="纬度" align="center"></el-table-column>
+      <el-table-column prop="height" label="高度" align="center"></el-table-column>
+      <el-table-column prop="elevation" label="海拔高度" align="center"></el-table-column>
+    </el-table>
+    <div class="pagination" style="display: flex;justify-content: end;margin-top: 10px;">
+      <el-pagination class="ztzf-pagination" popper-class="custom-pagination-dropdown" background
+                     :page-sizes="[10, 20, 30, 40, 50, 100]" :size="size" v-model:current-page="detailParams.current"
+                     v-model:page-size="detailParams.size" layout="total, sizes, prev, pager, next, jumper" :total="detailTotal"
+                     @size-change="handleSizeChangeDetails" @current-change="handleCurrentChangeDetails" />
+      <!-- </div> -->
+    </div>
+  </el-dialog>
+</template>
+<script setup>
+import { getHistoryTrack, cancelStar, addStar, updateDroneFlight, droneFlightLogInfoPage } from '@/api/logs';
+// import { flightLogPage } from '@/api/airspace/airspace';
+import { downloadXls } from '@/utils/util';
+import { exportBlob } from '@/api/common'
+import { ElMessage, ElMessageBox, ElLoading } from 'element-plus';
+import { Delete, Search } from '@element-plus/icons-vue';
+
+const total = ref(0)
+let rangTime = ref([])
+const params = ref({
+  isFavorite: false,
+  page: 1,
+  page_size: 10,
+  startTime: '',
+  endTime: '',
+  jobName: '',
+  jobInfoNum: '',
+});
+
+let tableList = ref([])
+
+let isShowView = ref(false)
+
+let tabType = ref('全部')
+
+function timeFormatConvert(time) {
+  if (!time) return '/'
+  const date = new Date(time);
+  return date.toLocaleString();
+}
+
+function cancelSearch() {
+  rangTime.value = []
+  params.value = {
+    startTime: '',
+    endTime: '',
+    isFavorite: tabType.value === '收藏' ? true : false,
+    page: '1',
+    page_size: '10',
+    jobName: '',
+    jobInfoNum: '',
+  }
+  getList()
+}
+
+function getList() {
+  params.value.startTime = rangTime.value?.length ? rangTime.value[0].getTime() : ''
+  params.value.endTime = rangTime.value?.length? new Date(
+    rangTime.value[1].getFullYear(),
+    rangTime.value[1].getMonth(),
+    rangTime.value[1].getDate(),
+    23, 59, 59
+  ).getTime() : ''
+  getHistoryTrack(params.value).then(res => {
+    tableList.value = res.data.data.list || []
+    total.value = res.data.data.pagination.total || 0
+  })
+}
+
+function handleAll() {
+  params.value.isFavorite = false
+  params.value.page = 1
+  tabType.value = '全部'
+  getList()
+}
+// 查看
+let tableDataDetails = ref([])
+let detailTotal = ref(0)
+let detailParams = ref({
+  current: 1,
+  size: 10,
+  flightId: ''
+})
+function handleDetail(row) {
+  isShowView.value = true
+  detailParams.value.current = 1
+  detailParams.value.flightId = row.id
+  detailTotal.value = 0
+  droneFlightLogInfoPage(detailParams.value).then(res => {
+    tableDataDetails.value = res.data.data.records
+    detailTotal.value = res.data.data.total
+  })
+}
+// 分页
+function handleSizeChangeDetails(val) {
+  detailParams.value.size = val
+  detailParams.value.current = 1
+  droneFlightLogInfoPage(detailParams.value).then(res => {
+    tableDataDetails.value = res.data.data.records
+    detailTotal.value = res.data.data.total
+  })
+}
+function handleCurrentChangeDetails(val) {
+  detailParams.value.current = val
+  droneFlightLogInfoPage(detailParams.value).then(res => {
+    tableDataDetails.value = res.data.data.records
+    detailTotal.value = res.data.data.total
+  })
+}
+
+
+function handleStartList() {
+  params.value.isFavorite = true
+  tabType.value = '收藏'
+  params.value.page = 1
+  getList()
+}
+
+// function handleTabClick() {
+//   if (tabType.value === '全部') {
+//     handleAll()
+//   } else if (tabType.value === '收藏') {
+//     handleStartList()
+//   }
+// }
+
+// 收藏
+function handleStar(row) {
+  if (row.is_favorite) {
+    cancelStar(row.id).then(res => {
+      ElMessage.success('取消收藏成功')
+      getList()
+    })
+  } else {
+    addStar({ flight_log_id: row.id }).then(res => {
+      ElMessage.success('收藏成功')
+      getList()
+    })
+  }
+}
+
+// 打标签
+function handleUpdateLabel(row) {
+  updateDroneFlight({ id: row.id, label_id: row.label_id }).then(res => {
+    // getList()
+    ElMessage.success('设置标签成功')
+  })
+}
+
+// 删除
+function handleDelete(row) {
+  ElMessageBox.confirm('确定删除该条数据?', '提示', {
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+    type: 'warning',
+  }).then(() => {
+    updateDroneFlight({ is_deleted: 1, id: row.id }).then(res => {
+      ElMessage.success('删除成功')
+      getList()
+    })
+  }).catch(() => {
+    ElMessage({
+      type: 'info',
+      message: '已取消删除'
+    })
+  })
+}
+
+// 导出
+function handleExport(row) {
+  exportBlob(
+    `/drone-device-core/log/droneFlightLogInfo/export/${row.id}`
+  ).then(res => {
+    downloadXls(res.data, `${row.job_name}.xlsx`)
+  })
+}
+
+// 日期选择
+// const changeselect = () => {
+//   params.value.startTime = rangTime.value[0] ? rangTime.value[0].getTime() : ''
+//   params.value.endTime = rangTime.value[1]? rangTime.value[1].getTime() : ''
+//   getList()
+// };
+
+function handleSizeChange(val) {
+  params.value.page_size = val
+  getList()
+}
+function handleCurrentChange(val) {
+  params.value.page = val
+  getList()
+}
+let tagList = ref([])
+function tagManageList() {
+  flightLogPage({ current:1, size: 99 }).then(res => {
+    tagList.value = res.data.data.records || []
+  })
+}
+
+onMounted(() => {
+  // tagManageList()
+  getList()
+})
+</script>
+
+<style lang="scss" scoped>
+.flight {
+  height: 0;
+  flex: 1;
+  margin: 0 10px 10px 10px;
+  background-color: #ffffff;
+  padding: 10px 20px;
+  border-radius: 5px;
+  display: flex;
+  flex-direction: column;
+  //.search-box {
+  //  height: 30px;
+  //}
+
+  :deep(.el-input) {
+    .el-input__wrapper {
+      width: 200px;
+    }
+  }
+
+  // 表格
+  .mange-table {
+    height: 0;
+    flex: 1;
+    margin-top: 18px;
+    overflow: auto;
+  }
+  :deep(.el-pagination) {
+    display: flex;
+    justify-content: right;
+  }
+
+  :deep(.el-pagination button) {
+    background: center center no-repeat none !important;
+    color: #8eb8ea !important;
+  }
+  :deep(.ztzf-select){
+    .el-select__selection {
+      width: 200px;
+    }
+  }
+}
+
+.content {
+  padding: 20px;
+
+  .view-table {
+    width: 100%;
+    border-collapse: collapse;
+    border: 1px solid #EBEEF5;
+
+    tr {
+      &:not(:last-child) {
+        border-bottom: 1px solid #EBEEF5;
+      }
+
+      td {
+        padding: 12px 10px;
+
+        &.label {
+          width: 140px;
+          text-align: right;
+          // color: #909399;
+          // background-color: #F5F7FA;
+          border-right: 1px solid #EBEEF5;
+        }
+
+        &.value {
+          width: 180px;
+          // color: #303133;
+        }
+      }
+    }
+  }
+}
+.content-edit {
+  .el-form {
+    .el-form-item {
+      width: 300px;
+      :deep(.el-form-item__label) {
+        width: 120px;
+      }
+
+    }
+    .btns {
+      display: flex;
+      justify-content: center
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/tickets/orderLog.vue b/src/views/tickets/orderLog.vue
index 9b7ac72..5d9ac66 100644
--- a/src/views/tickets/orderLog.vue
+++ b/src/views/tickets/orderLog.vue
@@ -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"
@@ -296,6 +296,15 @@
                   :value="item.wayline_id"
                 />
               </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-row>
@@ -395,9 +404,9 @@
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="danger" @click="submitForm(1)">发起</el-button>
-          <el-button type="primary" @click="submitForm(0)">存草稿</el-button>
-          <el-button @click="dialogVisible = false" :icon="CircleClose">取消</el-button>
+          <el-button type="danger" @click="submitForm(1)" icon="el-icon-position">发起</el-button>
+          <el-button type="primary" @click="submitForm(0)" icon="el-icon-document-add">存草稿</el-button>
+          <el-button @click="dialogVisible = false" icon="el-icon-circle-close">取消</el-button>
         </div>
       </template>
     </el-dialog>
@@ -589,12 +598,14 @@
             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 || (form.status == 2 && userInfo.user_id == form.create_user)"
             @click="submitForm(0)"
+            icon="el-icon-plus"
           >保存</el-button
           >
           <!-- <el-button type="primary" v-if="form.status == 0 || userInfo.user_id == form.create_user"
@@ -794,6 +805,7 @@
           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"
@@ -803,15 +815,17 @@
           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">取消</el-button>
+        <el-button @click="detailVisibleCopy = false" icon="el-icon-circle-close">取消</el-button>
       </div>
         </template>
     </el-dialog>
@@ -846,7 +860,8 @@
 import 'dayjs/locale/zh-cn'; // 导入中文语言包
 import weekday from 'dayjs/plugin/weekday';
 import elTooltipCopy from '@/components/ElTooltipCopy.vue';
-import { CircleClose } from '@element-plus/icons-vue';
+import { CircleClose, Promotion, Select } from '@element-plus/icons-vue';
+import fqSvg  from '@/assets/images/fq.svg'
 
 dayjs.extend(weekday);
 dayjs.locale('zh-cn');
@@ -1669,6 +1684,12 @@
 </script>
 
 <style lang="scss" scoped>
+:deep(.el-input-number) {
+  width: 200px;
+}
+:deep(.el-form-item__label) {
+  width: 100px !important;
+}
 ::v-deep(.el-tabs) {
   height: 100%;
   display: flex;
diff --git a/src/views/tickets/ticket.vue b/src/views/tickets/ticket.vue
index eb4823c..5011d18 100644
--- a/src/views/tickets/ticket.vue
+++ b/src/views/tickets/ticket.vue
@@ -415,12 +415,12 @@
       </el-form>
       <template #footer>
         <div class="dialog-footer-new">
-          <el-button type="danger" :loading="submitLoading" @click="submitForm">发布</el-button>
-          <el-button type="infoprimary" plain :loading="draftLoading" @click="saveDraft"
+          <el-button type="danger" :loading="submitLoading" @click="submitForm" icon="el-icon-position">发布</el-button>
+          <el-button type="infoprimary" plain :loading="draftLoading" @click="saveDraft"  icon="el-icon-document-add"
             >存草稿</el-button
           >
 
-          <el-button @click="handleCancel" :icon="CircleClose">取 消</el-button>
+          <el-button @click="handleCancel" icon="el-icon-circle-close">取 消</el-button>
         </div>
       </template>
     </el-dialog>
@@ -644,7 +644,7 @@
                       :src="getThumbUrl(currentDetail.mediaUrl)"
                       :preview-src-list="[getPreviewUrl(currentDetail.mediaUrl)]"
                       fit="contain"
-                      style="width: 700px; height: 520px; cursor: pointer"
+                      style="pxToRemNum(width: 700px); pxToRemNum(height: 520px); cursor: pointer"
                     >
                       <template #placeholder>
                         <div class="image-placeholder">
@@ -736,6 +736,7 @@
                 type="primary"
                 :loading="approveLoading"
                 @click="approveTicket"
+                icon="el-icon-check"
                 >通过</el-button
               >
               <el-button
@@ -743,9 +744,10 @@
                 type="danger"
                 :loading="rejectLoading"
                 @click="rejectTicket"
+                icon="el-icon-close"
                 >不通过</el-button
               >
-              <el-button @click="detailVisible = false":icon="CircleClose">取消</el-button>
+              <el-button @click="detailVisible = false" icon="el-icon-circle-close">取消</el-button>
             </template>
             <template v-else-if="currentDetail.status === 0">
               <el-button
@@ -753,6 +755,7 @@
                 type="primary"
                 :loading="dispatchLoading"
                 @click="approveAndDispatch"
+                icon="el-icon-check"
                 >受理</el-button
               >
               <el-button
@@ -760,9 +763,10 @@
                 type="danger"
                 :loading="rejectLoading"
                 @click="rejectTicket"
+                icon="el-icon-close"
                 >不受理</el-button
               >
-              <el-button @click="detailVisible = false">取消</el-button>
+              <el-button @click="detailVisible = false" icon="el-icon-circle-close">取消</el-button>
             </template>
             <template v-if="currentDetail.status === 3">
               <!-- 处理中 -->
@@ -771,15 +775,16 @@
                 type="primary"
                 :loading="completeLoading"
                 @click="completeTicket"
+                icon="el-icon-circle-check"
                 >完成工单</el-button
               >
-              <el-button @click="detailVisible = false">取消</el-button>
+              <el-button @click="detailVisible = false" icon="el-icon-circle-close">取消</el-button>
             </template>
             <template v-else-if="currentDetail.status === 4">
               <!-- 已完成 -->
               <!-- <el-button v-if="hasProcessedAndOverBtnPermission()" type="primary" :loading="finalizeLoading"
               @click="finalizeTicket">完结工单</el-button> -->
-              <el-button @click="detailVisible = false">取消</el-button>
+              <el-button @click="detailVisible = false" icon="el-icon-circle-close">取消</el-button>
             </template>
           </div>
           <div
@@ -832,7 +837,7 @@
         </el-form-item>
       </el-form>
       <template #footer>
-        <el-button @click="dispatchDialogVisible = false">取消</el-button>
+        <el-button @click="dispatchDialogVisible = false" icon="el-icon-circle-close">取消</el-button>
         <el-button type="primary" :loading="dispatchLoading" @click="submitDispatch"
           >确认派发</el-button
         >
@@ -909,9 +914,9 @@
 
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="primary" @click="handleBatchApprove">通过</el-button>
-          <el-button type="danger" @click="handleBatchReject">不通过</el-button>
-          <el-button @click="cancleBatchReject">取消</el-button>
+          <el-button type="primary" @click="handleBatchApprove" icon="el-icon-check">通过</el-button>
+          <el-button type="danger" @click="handleBatchReject" icon="el-icon-close">不通过</el-button>
+          <el-button @click="cancleBatchReject" icon="el-icon-circle-close">取消</el-button>
         </div>
       </template>
     </el-dialog>
@@ -935,6 +940,7 @@
 </template>
 
 <script>
+import { pxToRem, pxToRemNum } from '@/utils/rem'
 import { getSmallImg, getShowImg } from '@/utils/util';
 import { ElMessageBox, ElLoading } from 'element-plus';
 import { calculateDefaultRange } from '@/utils/util';
@@ -3572,7 +3578,7 @@
   opacity: 0.3 !important;
 }
 .PopUpTableScrolls {
-  height: 600px;
+  max-height: 600px;
   overflow-y: scroll;
   overflow-x: hidden;
 }

--
Gitblit v1.9.3