index.vue 3.2 KB
<template>
  <div v-loading="loading">
    <div class="person-info">
      <div class="font-box">
        <span class="label">
          工号:
        </span>
        <div class="content-box">
          <span class="content-text"> {{ info.jobCode }}</span>
        </div>
      </div>
      <div class="font-box">
        <span class="label">
          工号:
        </span>
        <div class="content-box">
          <span class="content-text"> {{ info.jobCode }}</span>
        </div>
      </div>

      <div class="font-box">
        <span class="label">
          工号:
        </span>
        <div class="content-box">
          <span class="content-text"> {{ info.jobCode }}</span>
        </div>
      </div>

      <div class="font-box">
        <span class="label">
          工号:
        </span>
        <div class="content-box">
          <span class="content-text"> {{ info.jobCode }}</span>
        </div>
      </div>
    </div>
    <div style="display: flex;align-items: center;margin-bottom: 7px; color: #0CFCFC; font-size: 13px; margin-top: 15px;">
      打卡详情</div>
    <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>
<style scoped lang="scss">
.person-info {
  width: 300px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;

  .font-box {
    width: 50%;
    box-sizing: border-box;
    margin-top: 4px;
    font-size: 13px;
    display: flex;
    align-items: center;

    .label {
      color: #0CFCFC;
      font-family: "黑体", "圆体";
      font-weight: 500;
      width: 39px;
    }

    .content-box {
      color: white;
      width: 80px;
      box-sizing: border-box;
      padding: 2px;
      text-align: center;
      background-color: #03113F;

      .content-text {
        display: flex;
        justify-content: center;
        align-items: center;
      }
    }
  }
}
</style>