wlzboy
2026-02-26 f5c900c58513bad824381e69750ac7667ef35de0
ruoyi-ui/src/views/task/general/detail.vue
@@ -129,6 +129,16 @@
            @click="syncDispatchOrder"
            style="margin-left: 10px;"
          >同步调度单</el-button>
          <!-- 从旧系统同步数据到新系统按钮 -->
          <el-button
            v-if="taskDetail.emergencyInfo.legacyServiceOrdId && taskDetail.emergencyInfo.legacyDispatchOrdId"
            type="success"
            size="mini"
            icon="el-icon-download"
            :loading="syncingFromLegacy"
            @click="syncFromLegacySystem"
            style="margin-left: 10px;"
          >从旧系统同步</el-button>
        </el-descriptions-item>
        <el-descriptions-item label="调度单号">
          <span v-if="taskDetail.emergencyInfo.legacyDispatchOrdId">
@@ -788,7 +798,7 @@
</template>
<script>
import { getTask, updateTask, assignTask, changeTaskStatus, uploadAttachment, deleteAttachment, getTaskVehicles, getAvailableVehicles, assignVehiclesToTask, unassignVehicleFromTask, getPaymentInfo, syncServiceOrder, syncDispatchOrder, syncTaskStatus } from "@/api/task";
import { getTask, updateTask, assignTask, changeTaskStatus, uploadAttachment, deleteAttachment, getTaskVehicles, getAvailableVehicles, assignVehiclesToTask, unassignVehicleFromTask, getPaymentInfo, syncServiceOrder, syncDispatchOrder, syncTaskStatus, syncFromLegacySystem, checkTaskInvoice } from "@/api/task";
import { listUser } from "@/api/system/user";
import { getToken } from "@/utils/auth";
@@ -881,6 +891,7 @@
      // 同步加载状态
      syncingServiceOrder: false,
      syncingDispatchOrder: false,
      syncingFromLegacy: false,
      syncingTaskStatus: false,
      // 发票申请状态
      hasInvoiceApplied: false,
@@ -1226,6 +1237,32 @@
        this.syncingDispatchOrder = false;
      });
    },
    /** 从旧系统同步数据到新系统 */
    syncFromLegacySystem() {
      // 检查是否同时有serviceOrdID和dispatchOrdID
      if (!this.taskDetail.emergencyInfo.legacyServiceOrdId || !this.taskDetail.emergencyInfo.legacyDispatchOrdId) {
        this.$modal.msgError("缺少必要的旧系统ID信息");
        return;
      }
      this.$modal.confirm('是否确认从旧系统同步数据到新系统?').then(() => {
        this.syncingFromLegacy = true;
        return syncFromLegacySystem(
          this.taskDetail.emergencyInfo.legacyServiceOrdId,
          this.taskDetail.emergencyInfo.legacyDispatchOrdId
        );
      }).then(() => {
        this.$modal.msgSuccess("从旧系统同步成功");
        // 重新加载任务详情
        this.getTaskDetail();
      }).catch((error) => {
        if (error !== 'cancel') {
          this.$modal.msgError("同步失败: " + (error.message || "未知错误"));
        }
      }).finally(() => {
        this.syncingFromLegacy = false;
      });
    },
    /** 手动同步任务状态 */
    syncTaskStatus() {
      this.$modal.confirm('是否确认同步任务状态到旧系统?').then(() => {
@@ -1245,7 +1282,7 @@
    /** 检查发票申请状态 */
    checkInvoiceStatus() {
      // 调用后端接口检查该任务是否已申请发票
      this.$axios.get(`/system/invoice/checkTaskInvoice/${this.$route.params.taskId}`)
      checkTaskInvoice(this.$route.params.taskId)
        .then(response => {
          if (response.code === 200 && response.data) {
            this.hasInvoiceApplied = true;