无人机管理后台前端(已迁走)
张含笑
2025-06-10 e4c7bca105e64c047fbcd6bbb53ff5d32b0c5fd6
src/views/tickets/orderLog.vue
@@ -31,12 +31,7 @@
              </div>
              <div class="search-bar-box-item">
                <el-select
                  placeholder="请选择所属单位"
                  v-model="filters.create_dept"
                  clearable
                >
                <el-select placeholder="请选择所属单位" v-model="filters.create_dept" clearable>
                  <el-option
                    v-for="dept in departments"
                    :key="dept.value"
@@ -181,13 +176,11 @@
                    >审核</el-button
                  >
                </template>
                <template
                  v-if="
                <!-- v-if="
                    (userInfo.user_id == row.create_user || hasRecallPaddingBtnPermission()) &&
                    row.status == 1
                  "
                >
                  " -->
                <template v-if="row.status == 1">
                  <!--待审核状态-->
                  <el-button type="text" icon="el-icon-warning" @click="orderLogRecall(row.id)"
                    >撤回</el-button
@@ -198,20 +191,26 @@
                  <el-button type="text" icon="el-icon-warning" @click="rejectDetail(row.id)"
                    >驳回原因</el-button
                  >
                </template>
                <!--草稿-->
                <el-button type="text" icon="el-icon-edit" @click="handleViewDetail(row)"
                  >编辑</el-button
                >
                <el-button type="text" icon="el-icon-position" @click="userPublishPush(row.id)"
                  >发起</el-button
                >
                <el-button type="text" icon="el-icon-delete" @click="deleteOrderLog(row.id)"
                  >删除</el-button
                >
                <template v-if="row.status == 3 || row.status == 1 || row.status == 2">
                  <el-button type="text" icon="el-icon-view" @click="handleViewDetail(row)"
                    >详情</el-button
                  >
                </template>
                <!-- 已通过 -->
                <template v-if="row.status == 3">
                  <el-button type="text" icon="el-icon-view" @click="handleViewDetail(row)"
                    >详情</el-button
                  >
                </template>
                <!--草稿-->
                <template v-if="row.status == 0">
                  <el-button type="text" icon="el-icon-edit" @click="handleViewDetail(row)"
                    >编辑</el-button
                  >
                  <el-button type="text" icon="el-icon-position" @click="userPublishPush(row.id)"
                    >发布</el-button
                  >
                  <el-button type="text" icon="el-icon-delete" @click="deleteOrderLog(row.id)"
                    >删除</el-button
                  >
                </template>
              </div>
@@ -382,16 +381,8 @@
                  {{ record.user_name }}
                </span>
                <span
                  style="
                    position: absolute;
                    left: 80%;
                    top: 50%;
                    transform: translateY(-50%);
                    width: 100px;
                    margin-left: 4px;
                    color: #666;
                    font-size: 12px;
                  "
                  class="step-timer "
                >
                  {{ record.interval_time_str }}
                </span>
@@ -567,16 +558,8 @@
                  {{ record.user_name }}
                </span>
                <span
                  style="
                    position: absolute;
                    left: 80%;
                    top: 50%;
                    transform: translateY(-50%);
                    width: 100px;
                    margin-left: 4px;
                    color: #666;
                    font-size: 12px;
                  "
                  class="step-timer "
                >
                  {{ record.interval_time_str }}
                </span>
@@ -907,11 +890,12 @@
  mounted() {
    this.fetchTableData();
    const id = this.$route.query.id;
   if (id) { // 确保 id 存在
    this.handleViewDetail({ id });
  } else {
    console.error('工单ID不存在!');
  }
    if (id) {
      // 确保 id 存在
      this.handleViewDetail({ id });
    } else {
      console.error('工单ID不存在!');
    }
  },
  computed: {
    ...mapGetters(['userInfo', 'permission']),
@@ -1205,6 +1189,20 @@
      this.detailVisible = true;
  // 更新航线列表,追加 wayline_file_region_vo 数据
  if (data.wayline_file_region_vo) {
    const newWayline = data.wayline_file_region_vo;
    // 检查是否已经存在于 this.wayLineList 中
    const isDuplicate = this.wayLineList.some(
      (item) => item.wayline_id === newWayline.wayline_id
    );
    if (!isDuplicate) {
      this.wayLineList.push(newWayline);
    }
  }
      this.initMapLine(data.device_map_infos);
    },
    async handleCheckDetail(row) {
@@ -1213,7 +1211,20 @@
      this.form = {
        ...data,
      };
  // 更新航线列表,追加 wayline_file_region_vo 数据
  // 更新航线列表,追加 wayline_file_region_vo 数据
  if (data.wayline_file_region_vo) {
    const newWayline = data.wayline_file_region_vo;
    // 检查是否已经存在于 this.wayLineList 中
    const isDuplicate = this.wayLineList.some(
      (item) => item.wayline_id === newWayline.wayline_id
    );
    if (!isDuplicate) {
      this.wayLineList.push(newWayline);
    }
  }
      // 更新机巢列表
      this.device_sns = data.device_list;
      this.detailVisibleCopy = true;
@@ -1247,6 +1258,7 @@
    hasRecallPaddingBtnPermission() {
      // undefined 或 false 都返回 false,只有 true 返回 true
      // console.log('权限检查:', this.permission)
      // 智飞工单撤回
      return this.permission && this.permission.order_log_recall === true;
    },
    //驳回按钮权限
@@ -1394,8 +1406,29 @@
  },
};
</script>
<style></style>
<style lang="scss" scoped>
 :deep(){
    .avue-crud__body{
      .el-form{
        height: 625px;
        overflow: auto;
      }
    }
  }
:deep(.el-pagination .el-select ){
width: 128px !important;
}
.step-timer {
  position: absolute;
  left: 80%;
  top: 50%;
  transform: translateY(-50%);
  width: 100px;
  margin-left: 4px;
  color: #666;
  font-size: 12px;
}
:deep(.el-textarea__inner) {
  padding: 8px 12px;
}
@@ -1558,7 +1591,7 @@
    & > ::v-deep(.el-button) {
      flex: 1;
      max-width: 44px;
      margin-right: 10px;
      &:nth-child(4n) {
        margin-left: 0;
      }