index.vue 2.05 KB
<template>
  <div v-loading="loading">
    <el-form :inline="true">
      <el-form-item label="工号" width="50px">
        <span>{{ info.jobCode }}</span>
      </el-form-item>
      <el-form-item label="姓名" width="50px">
        <span>{{ info.name }}</span>
      </el-form-item>
      <el-form-item label="路牌" width="50px">
        <span>{{ info.lpName }}</span>
      </el-form-item>
      <el-form-item label="车队" width="50px">
        <span>{{ info.fleetName }}</span>
      </el-form-item>
    </el-form>
    <span type="primary" style="text-align: center;" class="mx-1" size="large">打卡详情</span>
    <el-table :data="tableData" style="width: 100%;background-color: aliceblue;">
      <el-table-column prop="date" label="打卡时间" width="120" />
      <el-table-column prop="address" label="打卡地点" />
      <el-table-column prop="result" label="打卡结果" />
    </el-table>
  </div>
</template>

<script setup>
const loading = ref(false);
const props = defineProps({
  // 请求参数
  jobCode: {
    type: String,
    required: true,
  },
  showFlag: {
    type: Boolean,
    required: true
  }
})
/** 签到信息 */
const info = ref()
info.value = {
  name: "",
  lpName: "",
  jobCode: "",
  fleetName: ""
}

const tableData = ref(
  [
    {
      date: "今天 10:33:33",
      result: "正常",
      address: "背景"
    },
    {
      date: "今天 10:33:33",
      result: "正常",
      address: "背景"
    },
    {
      date: "今天 10:33:33",
      result: "正常",
      address: "背景"
    }
  ]
)
/** 处理信息 */
const handleInfo = (val) => {
  loading.value = true
  setTimeout(() => {
    loading.value = false;
    info.value = {
      name: "张三",
      lpName: "路牌",
      jobCode: val,
      fleetName: "三车队"
    }
  }, 1000);
}

const reset = () => {
  info.value = {
    name: "",
    lpName: "",
    jobCode: "",
    fleetName: ""
  }
}

watch(
  () => props.showFlag,
  (count, prevCount) => {
    if (props.showFlag) {
      handleInfo(props.jobCode);
    } else {
      reset()
    }
  }
)
</script>