无人机管理后台前端(已迁走)
rjg
2025-04-12 dce7074c544a3d03aca45e149be2c1efb6b67ada
fix:增加进度条
1 files modified
105 ■■■■ changed files
src/views/tickets/orderLog.vue 105 ●●●● patch | view | raw | blame | history
src/views/tickets/orderLog.vue
@@ -259,6 +259,38 @@
      @close="resetForm"
    >
      <el-form :model="form" ref="form" label-width="100px">
 <div class="custom-steps-container">
  <!-- 标题行 -->
  <div class="steps-titles"  >
  <div  v-for="(record, index) in form.record_list" :class="{ 'active': record.user_id >=0  }" :key="index" class="step-title" >{{record.status_str}}</div>
  </div>
  <!-- Element Steps 组件 -->
  <el-steps :active="form.active" align-center class="custom-steps" >
   <el-step v-for="(record, index) in form.record_list"  :key="index">
      <template #description>
        <div class="step-description">{{record.user_name}}</div>
      </template>
    </el-step>
  </el-steps>
</div>
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="工单名称" prop="name">
@@ -356,6 +388,7 @@
          <el-col :span="3">
            <el-time-picker
               style="width: 100px"
              v-model="form.deal_time"
              prop="deal_time"
              value-format="HH:mm"
@@ -378,7 +411,7 @@
  orderLogRecall,
  orderLogReject,
  orderLogPass,
  orderLogExport
  orderLogExport,
} from '@/api/tickets/orderLog';
import { getDictionary } from '@/api/system/dictbiz';
import{getWaylineFileListByArea} from '@/api/resource/wayline';
@@ -499,14 +532,12 @@
    var word_order_typeResponse = await getDictionary({ code: 'WORK_ORDER_TYPE' });
    this.ai_types = response.data.data;
    this.types=word_order_typeResponse.data.data;
  },
  mounted() {
    this.fetchTableData();
  },
  computed: {
    ...mapGetters(['userInfo']),
  },
  methods: {
@@ -543,7 +574,6 @@
    formatCycleTime(row) {
      return row.begin_time + '-' + row.end_time + ' ' + row.rep_rule_val;
    },
    async fetchTableData() {
      this.loading = true;
@@ -601,7 +631,6 @@
        return params;
    },
    async submitForm(status) {
      this.$refs.form.validate(async valid => {
        if (valid) {
@@ -625,9 +654,7 @@
          }
          this.dialogVisible = false;
          this.detailVisible = false;
          this.device_sns=[],
          this.wayLineList=[],
          this.fetchTableData();
          (this.device_sns = []), (this.wayLineList = []), this.fetchTableData();
        }
      });
    },
@@ -638,15 +665,13 @@
      this.$confirm(data.remark, '驳回原因', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        type: 'warning',
        }).then(() => {
           this.form = {
        ...response.data.data,
      };
        this.detailVisible = true;
        })
      });
    },
    formatDate(date) {
      if (!date) return undefined;
@@ -786,7 +811,6 @@
    },
 //导出
    async exportData() {
         this.$confirm('是否智飞工单数据?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
@@ -799,10 +823,7 @@
          NProgress.done();
        });
      });
  },
    refreshChange() {
      this.fetchTableData();
@@ -811,7 +832,6 @@
 async asyncgetWaylineFileListByArea(name){
      var wayLineListResponse= await getWaylineFileListByArea(this.userInfo.detail.areaCode);
    this.wayLineList=wayLineListResponse.data.data;
},
  //可飞行机巢列表
 async getFlyingNestBy(waylineId){
@@ -819,10 +839,9 @@
 const params = {
      type:0,
      waylineId:waylineId,
 }
      };
   var wayLineListResponse= await getFlyingNestBy(params);
   this.device_sns=wayLineListResponse.data.data;
},
    //撤回
@@ -951,4 +970,52 @@
  color: #909399;
  margin-top: 7px;
}
.custom-steps-container {
  width: 100%;
  margin: 20px 0;
}
.steps-titles {
  display: flex;
  justify-content: space-between;
  margin-bottom: 16px;
  position: relative;
}
.step-title {
  text-align: center;
  flex: 1;
  font-size: 16px;
  color: #999;
  position: relative;
  padding-bottom: 10px;
}
.step-title.active {
  color: #409EFF;
  font-weight: bold;
}
.custom-steps {
  margin-top: -20px; /* 向上移动与标题重叠 */
}
.el-step__head {
  margin-top: 0;
}
.el-step__description {
  margin-top: 8px;
  padding: 0 20px;
}
.step-description {
  font-size: 14px;
  color: #666;
  line-height: 1.5;
}
</style>