sen
2026-03-13 ea3197fc04afe64d7c34bcf1aee3226838a1f2c3
ui/admin-ui3/src/views/tms/tmsDispatchOrder/index.vue
@@ -91,42 +91,83 @@
      <template #menu="{ row, index, size }">
        <el-tooltip content="查看" placement="top" :enterable="false">
          <el-link type="primary" icon="el-icon-view" :underline="false" class="link-btn"
            @click="$refs.crudRef.rowView(row, index)">
            v-hasPermi="['tms:tmsDispatchOrder:query']" @click="$refs.crudRef.rowView(row, index)">
          </el-link>
        </el-tooltip>
        <el-tooltip content="删除" placement="top" :enterable="false">
          <el-link type="primary" icon="el-icon-delete" :underline="false" class="link-btn"
            v-hasPermi="['tms:tmsDispatchOrder:remove']" v-if="row.status == 0"
            @click="$refs.crudRef.rowDel(row, index)">
          </el-link>
        </el-tooltip>
        <el-tooltip content="编辑" placement="top" :enterable="false">
          <el-link type="primary" icon="el-icon-edit" :underline="false" class="link-btn"
            v-hasPermi="['tms:tmsDispatchOrder:edit']" v-if="[0, 1].includes(row.status)"
            @click="$refs.crudRef.rowEdit(row, index)">
          </el-link>
        </el-tooltip>
      </template>
      <template #menu-before="{ row }">
        <el-tooltip content="运输货品登记" placement="top">
          <el-link size="small" type="primary" @click="handleAddGoods(row)" class="link-btn"
            v-hasPermi="['tms:tmsGoodsDetail:add']" v-if="[0, 1, 2].includes(row.status)" :underline="false"
            icon="el-icon-document-add">
          </el-link>
        </el-tooltip>
        <el-tooltip content="实际运输记录" placement="top">
          <el-link size="small" type="primary" @click="handleActual(row)" class="link-btn"
            v-hasPermi="['tms:tmsDispatchOrder:update']" v-if="[0, 1, 2].includes(row.status)" :underline="false"
            icon="el-icon-set-up">
          </el-link>
        </el-tooltip>
        <el-tooltip content="确定" placement="top">
          <el-link size="small" type="primary" v-if="row.status == 0" @click="handleConfirm(row)" class="link-btn"
            v-hasPermi="['tms:tmsDispatchOrder:confirmOrder']" :underline="false" icon="el-icon-pointer">
          </el-link>
        </el-tooltip>
        <el-tooltip content="作废" placement="top">
          <el-link size="small" type="primary" v-if="[0, 1, 2].includes(row.status)" @click="handleClose(row)"
            class="link-btn" v-hasPermi="['tms:tmsDispatchOrder:closeOrder']" :underline="false" icon="el-icon-close">
          </el-link>
        </el-tooltip>
        <el-tooltip content="复制" placement="top">
          <el-link size="small" type="primary" @click="handleCopy(row)" class="link-btn" :underline="false"
            v-hasPermi="['tms:tmsDispatchOrder:copyOrder']" icon="el-icon-connection">
          </el-link>
        </el-tooltip>
        <el-tooltip content="日志" placement="top">
          <el-link size="small" type="primary" @click="handleLog(row)" class="link-btn" :underline="false"
            icon="el-icon-tickets">
        <el-tooltip content="上传行程" placement="top">
          <el-link size="small" type="primary" v-if="[1, 2].includes(row.status)" @click="handleUploadItinerary(row)"
            v-hasPermi="['tms:tmsTrip:add']" class="link-btn" :underline="false" icon="el-icon-upload">
          </el-link>
        </el-tooltip>
        <el-tooltip content="查看行程" placement="top">
          <el-link size="small" type="primary" v-if="![0, 1].includes(row.status)" @click="handleLogItinerary(row)"
            v-hasPermi="['tms:tmsTrip:list']" class="link-btn" :underline="false" icon="el-icon-view">
          </el-link>
        </el-tooltip>
        <el-tooltip content="完成行程" placement="top">
          <el-link size="small" type="primary" v-if="[2].includes(row.status)" @click="handleOk(row)" class="link-btn"
            v-hasPermi="['tms:tmsDispatchOrder:okOrder']" :underline="false" icon="el-icon-circle-check">
          </el-link>
        </el-tooltip>
        <el-tooltip content="完成行程" placement="top">
          <el-link size="small" type="primary" v-if="[2].includes(row.status)" @click="handleOk(row)" class="link-btn"
            v-hasPermi="['tms:tmsDispatchOrder:okOrder']" :underline="false" icon="el-icon-circle-check">
          </el-link>
        </el-tooltip>
        <el-tooltip content="日志" placement="top">
          <el-link size="small" type="primary" @click="handleFlow(row)" class="link-btn"
            v-hasPermi="['cwgl:estimatedReceivable:flog']"   :underline="false" icon="el-icon-document">
          </el-link>
        </el-tooltip>
      </template>
      <!-- <template #menu="{row}">
@@ -524,10 +565,16 @@
      <avue-crud :data="importLogData" :option="importLogOption" :table-loading="importLogLoading"
        @on-load="getImportLogList"></avue-crud>
    </el-dialog>
     <flowLog ref="flowLogIshow" :isShow="false" :flowParams="flowParams"></flowLog>
  </basicContainer>
</template>
<script setup name="tmsDispatchOrder" lang="ts">
import { listTmsDispatchOrderLog } from "@/api/tms/tmsDispatchOrderLog";
import {
  TmsDispatchOrderI,
  addTmsDispatchOrder,
@@ -536,6 +583,7 @@
  getTmsDispatchOrder,
  listTmsDispatchOrder,
  updateTmsDispatchOrder,
  tmsDispatchOrderRecord,
  confirmOrder,
  copyOrder,
  okOrder,
@@ -586,6 +634,7 @@
import { pushTmsQuoteFee } from "@/api/tms/tmsQuoteFee";
import { $Print } from '@smallwei/avue'
import { getToken } from "@/utils/auth";
import { useAvueTableShowHide } from "@/hooks/useAvueTableShowHide";
const { appContext } = getCurrentInstance();
@@ -650,6 +699,7 @@
  menuType: 'icon',
  viewBtn: false, // 关闭原生查看
  editBtn: false, // 关闭原生编辑
  delBtn: false, // 关闭原生编辑
  searchIndex: 7, // 关键:折叠时显示的个数(根据你的字段数量调整)
  searchIcon: true, // 关键:显示折叠/展开按钮
@@ -1681,7 +1731,7 @@
  column: {
    dispatchNo: {
      label: '调度单号', minWidth: 120,
      label: '调度单号', minWidth: 180,
      display: false,
      search: true,
    },
@@ -1692,7 +1742,7 @@
    },
    customerName: {
      label: '客户',
      display: false, minWidth: 120,
      display: false, minWidth: 250,
      search: true,
    },
    mainDriverName: {
@@ -1729,12 +1779,12 @@
    },
    projectName: {
      label: '项目名称',
      display: false, minWidth: 120,
      display: false, minWidth: 250,
      search: true,
    },
    contractName: {
      label: '关联合同名称', minWidth: 120,
      label: '关联合同名称', minWidth: 250,
      display: false,
      search: true,
    },
@@ -1790,7 +1840,7 @@
    },
    isPrint: {
      label: '是否打印承运单',
      display: false, minWidth: 100,
      display: false, minWidth: 120,
      search: true,
      type: 'select', dicUrl: '/system/dict/data/type/sys_number_is', dataType: 'string',
@@ -1814,11 +1864,11 @@
    shipperName: {
      label: '装货点名称',
      display: false, minWidth: 120,
      display: false, minWidth: 200,
      search: true,
    },
    receiverName: {
      label: '卸货点名称', minWidth: 120,
      label: '卸货点名称', minWidth: 200,
      display: false,
      search: true,
    },
@@ -2955,6 +3005,9 @@
  }
})
useAvueTableShowHide(option.value);
const handleConfirm = (row: any) => {
  ElMessageBox.confirm("是否对调度单号" + row.dispatchNo + "确定 ?", '系统提示', {
    confirmButtonText: '确定',
@@ -3024,7 +3077,7 @@
      vehicleId: row.vehicleId,
    }
    console.log(boxForm.value);
  })
}
const cancelBox = () => {
@@ -3294,7 +3347,7 @@
}
const submitForm3 = () => {
  updateTmsDispatchOrder(actualForm.value).then(res => {
  tmsDispatchOrderRecord(actualForm.value).then(res => {
    ElMessage({
      message: "操作成功!",
      type: 'success'
@@ -3923,7 +3976,7 @@
    //boxForm.value.rowItems = boxTableData.value;
    // console.log(tmsFinanceDetails.value);
    // console.log(boxForm.value);
// 1. 提取填写了金额的数据(金额大于0)
    // 1. 提取填写了金额的数据(金额大于0)
    const validDetails = tmsFinanceDetails.value.filter(item => item.actualFeeAmount && item.actualFeeAmount > 0);
    if (validDetails.length === 0) {
@@ -3954,8 +4007,8 @@
        message: "操作成功!",
        type: 'success'
      })
        open4.value = false;
        onLoad(page.value)
      open4.value = false;
      onLoad(page.value)
      boxFormRef.value?.resetFields();
      getTab4Data();
    })
@@ -4551,6 +4604,21 @@
  }
  done(); // 必须调用 done 结束上传状态
};
const flowLogIshow = ref()
const flowParams = ref([])
const handleFlow = (row: string) => {
  let data = {
    headId: row.id,
  }
  listTmsDispatchOrderLog(data).then((res) => {
    flowParams.value = res.rows
    flowLogIshow.value.openModel()
  })
}
</script>
<style lang="scss" scoped>
::v-deep .cydprint .el-dialog__body {
@@ -4622,4 +4690,8 @@
  padding: 1px 11px;
  box-shadow: 0 0 0 1px var(--el-disabled-border-color) inset;
}
</style>
.link-btn {
  font-size: 18px;
}
</style>