艺术家
2025-06-04 772190e7b2e3f6ef0695ba54d9209324acdcb30a
ÏîÄ¿´úÂë/ÉìËõ¸Ë/client/src/views/tts/DataLogging/Datalogging.vue
@@ -1,146 +1,258 @@
<template>
  <div class="Datalogging">
    <div class="content">
      <div class="checkbox" :style="{ width: roleINFO == 1 ? '22rem' : '15rem' }">
        <div :class="['item', isactive == 1 ? 'isactive' : '']" @click="changeactive(1)">
      <div
        class="checkbox"
        :style="{ width: roleINFO == 1 ? '22rem' : '15rem' }"
      >
        <div
          :class="['item', isactive == 1 ? 'isactive' : '']"
          @click="changeactive(1)"
        >
          æ£€ä¿®è®¾ç½®è®°å½•
        </div>
        <div :class="['item', isactive == 2 ? 'isactive' : '']" @click="changeactive(2)">
          æ£€ä¿®æ“ä½œè®°å½•
        <div
          :class="['item', isactive == 2 ? 'isactive' : '']"
          @click="changeactive(2)"
        >
          æŽˆæƒè®°å½•
        </div>
        <div v-if="roleINFO == 1" :class="['item', isactive == 3 ? 'isactive' : '']" @click="changeactive(3)">
        <div
          v-if="roleINFO == 1"
          :class="['item', isactive == 3 ? 'isactive' : '']"
          @click="changeactive(3)"
        >
          ç™»å½•记录
        </div>
      </div>
      <div class="serch">
        <div class="time_box">
          <div class="time">{{ isactive == 1 ? "分配时间" : "操作时间" }}</div>
          <el-date-picker v-model="queryForm.selectTime" prefix-icon="none" clear-icon="none" style="
          <el-date-picker
            v-model="queryForm.selectTime"
            prefix-icon="none"
            clear-icon="none"
            style="
              font-size: 0.75rem !important;
              border: 0.06rem solid rgba(222, 222, 222, 1);
              border-radius: 0 0.25rem 0.25rem 0;
              box-shadow: none;
              width: 19rem;
              height: 2rem;
              border-left: 0;
            " format="YYYY-MM-DD HH:mm:ss" type="datetimerange" range-separator="~" start-placeholder="起始日期"
            end-placeholder="截止日期" size="small" />
            "
            class="time_picker"
            format="YYYY-MM-DD HH:mm:ss"
            type="datetimerange"
            range-separator="~"
            start-placeholder="起始日期"
            end-placeholder="截止日期"
            size="small"
          />
        </div>
        <div class="serch_box">
          <div class="serchb">全局搜索</div>
          <input v-model="queryForm.selectInput" placeholder="请输入关键词搜索" style="border-left: 0.06rem solid #e2e2e2" />
          <input
            @focus="focusInput"
            v-model="queryForm.selectInput"
            placeholder="请输入关键词搜索"
            style="border-left: 0.06rem solid #e2e2e2"
            ref="inputRef"
          />
        </div>
        <el-button @click="handleQuery" type="primary" size="small"
          style="margin-left: 0.98rem; height: 2rem">查询</el-button>
        <el-button size="small" style="height: 2rem" @click="resetQuery">重置</el-button>
        <el-button
          @click="handleQuery"
          type="primary"
          size="small"
          style="margin-left: 0.98rem; height: 2rem"
          >查询</el-button
        >
        <el-button size="small" style="height: 2rem" @click="resetQuery"
          >重置</el-button
        >
      </div>
      <div class="btns">
        <div style="display: flex; align-items: center">
          <el-button size="small" style="width: 5.5rem; height: 2rem; font-size: 0.88rem"
            @click="printExcel">批量导出</el-button>
          <el-button
            size="small"
            style="width: 5.5rem; height: 2rem; font-size: 0.88rem"
            @click="printExcel"
            >批量导出</el-button
          >
        </div>
      </div>
      <div style="margin-top: 1rem; height: 100%">
        <!-- æ£€ä¿®è®¾ç½®è®°å½• -->
        <el-table empty-text="暂无数据" v-if="isactive == 1" :data="tableData" height="450" style="width: 100%"
        <el-table
          empty-text="暂无数据"
          v-if="isactive == 1"
          :data="tableData"
          height="450"
          style="width: 100%"
          :header-cell-style="{
            background: 'rgba(250,250,250,1)',
            color: '#101010',
            fontSize: '0.88rem',
            fontSize: '1.25rem',
            height: '3rem',
            border: 'none',
          }" :row-style="{
          }"
          :row-style="{
            color: '#101010',
            fontSize: '0.88rem',
            fontSize: '1.25rem',
            height: '3rem',
          }">
            WWWW,
          }"
        >
          <el-table-column type="selection" align="center" />
          <el-table-column prop="operatorName" label="姓名" align="center" />
          <el-table-column prop="teamName" label="班组" align="center" />
          <el-table-column prop="headImageUrl" label="人脸" align="center">
          <!-- <el-table-column prop="teamName" label="组别" align="center" /> -->
          <el-table-column prop="" label="组员类型" align="center">
            <template #default="scope">
              <el-image style="width: 5rem; height: 5rem" :src="'http://192.168.0.80:1598' + scope.row.headImageUrl"
                show-progress :initial-index="4" fit="cover" />
              <span v-if="scope.row.isLeader == 0">组员</span>
              <span v-else-if="scope.row.isLeader == 1">组长</span>
            </template>
          </el-table-column>
          <el-table-column prop="distributionTime" label="分配时间" align="center" />
          <el-table-column prop="" label="分配检修员" align="center">
            <template #default> {{ userName }} </template>
          <el-table-column prop="dept_Id" label="检修道" align="center">
            <template #default="scope">
              <div>{{ scope.row.dept_Id }}</div>
            </template></el-table-column
          >
          <el-table-column prop="headImageUrl" label="人脸" align="center">
            <template #default="scope">
              <el-image
                style="width: 5rem; height: 5rem"
                :src="'http://192.168.1.103:9093' + scope.row.headImageUrl"
                show-progress
                :initial-index="4"
                fit="cover"
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="distributionTime"
            label="分配时间"
            align="center"
          />
          <!-- <el-table-column prop="Creater" label="分配检修员" align="center">
          </el-table-column> -->
          <el-table-column
            prop="ipAddress"
            label="设备IP"
            align="center"
          ></el-table-column>
        </el-table>
        <!-- æ£€ä¿®æ“ä½œè®°å½•记录 -->
        <el-table empty-text="暂无数据" v-if="isactive == 2" :data="tableData" height="450" style="width: 100%"
        <!-- å§“名 userName,单位 uerUnit,班组 userTeam,操作人 modifier,启用时间 enableTime,停用时间  disableTime-->
        <!-- æŽˆæƒè®°å½• -->
        <el-table
          empty-text="暂无数据"
          v-if="isactive == 2"
          :data="tableData"
          height="450"
          style="width: 100%"
          :header-cell-style="{
            background: 'rgba(250,250,250,1)',
            color: '#101010',
            fontSize: '0.88rem',
            fontSize: '1.25rem',
            height: '3rem',
            border: 'none',
          }" :row-style="{
          }"
          :row-style="{
            color: '#101010',
            fontSize: '0.88rem',
            fontSize: '1.25rem',
            height: '3rem',
          }">
          }"
        >
          <el-table-column type="selection" align="center" />
          <el-table-column prop="userTrueName" label="姓名" align="center" />
          <el-table-column prop="userName" label="姓名" align="center" />
          <el-table-column prop="uerUnit" label="单位" align="center" />
          <el-table-column prop="userteam" label="班组" align="center" />
          <el-table-column prop="headImageUrl" label="人脸" align="center">
            <template #default="scope">
              <el-image style="width: 5rem; height: 5rem" :src="'http://192.168.0.80:1598' + scope.row.headImageUrl"
                show-progress :initial-index="4" fit="cover" />
            </template>
          </el-table-column>
          <el-table-column prop="maintenancStartTime" label="进入检修时间" align="center" />
          <el-table-column prop="maintenancEendTime" label="退出检修时间" align="center" />
          <el-table-column prop="" label="检修道号" align="center">
          <el-table-column prop="enableTime" label="启用时间" align="center" />
          <el-table-column prop="disableTime" label="禁用时间" align="center" />
          <el-table-column prop="modifier" label="操作人" align="center">
          </el-table-column>
        </el-table>
        <!-- ç™»å½•记录 -->
        <el-table empty-text="暂无数据" v-if="isactive == 3" :data="tableData" height="450" style="width: 100%"
        <el-table
          empty-text="暂无数据"
          v-if="isactive == 3"
          :data="tableData"
          height="450"
          style="width: 100%"
          :header-cell-style="{
            background: 'rgba(250,250,250,1)',
            color: '#101010',
            fontSize: '0.88rem',
            fontSize: '1.25rem',
            height: '3rem',
            border: 'none',
          }" :row-style="{
          }"
          :row-style="{
            color: '#101010',
            fontSize: '0.88rem',
            fontSize: '1.25rem',
            height: '3rem',
          }">
          }"
        >
          <el-table-column type="selection" align="center" />
          <el-table-column prop="userTrueName" label="姓名" align="center" />
          <el-table-column prop="opCenten" label="单位" align="center" />
          <el-table-column prop="userteam" label="班组" align="center" />
          <!-- <el-table-column prop="opCenten" label="单位" align="center" /> -->
          <!-- <el-table-column prop="userteam" label="组别" align="center" /> -->
          <el-table-column prop="headImageUrl" label="人脸" align="center">
            <template #default="scope">
              <el-image style="width: 5rem; height: 5rem" :src="'http://192.168.0.80:1598' + scope.row.headImageUrl"
                show-progress :initial-index="4" fit="cover" />
              <el-image
                style="width: 5rem; height: 5rem"
                :src="'http://192.168.1.103:9093' + scope.row.headImageUrl"
                show-progress
                :initial-index="4"
                fit="cover"
              />
            </template>
          </el-table-column>
          <el-table-column prop="loginTiem" label="登录时间" align="center" />
          <el-table-column prop="outTiem" label="退出时间" align="center" />
          <el-table-column label="操作内容" align="center" />
          <!-- <el-table-column prop="outTiem" label="退出时间" align="center" /> -->
          <!-- <el-table-column label="操作内容" align="center" /> -->
        </el-table>
      </div>
      <div style="
      <div
        style="
          display: flex;
          justify-content: right;
          align-self: flex-end;
          margin-bottom: 1.19rem;
          margin-right: 1.25rem;
        ">
        <el-pagination v-if="isactive == 1" size="small" background layout="prev, pager, next"
          :current-page="pageQuery.page" :page-size="pageQuery.rows" :total="pageTotal" @size-change="handleSizeChange"
          @current-change="handleCurrentChange" />
        <el-pagination v-if="isactive == 2" size="small" background layout="prev, pager, next"
          :current-page="pageQuery1.page" :page-size="pageQuery1.rows" :total="pageTotal1"
          @size-change="handleSizeChange" @current-change="handleCurrentChange" />
        <el-pagination v-if="isactive == 3" size="small" background layout="prev, pager, next"
          :current-page="pageQuery2.page" :page-size="pageQuery2.rows" :total="pageTotal2"
          @size-change="handleSizeChange" @current-change="handleCurrentChange" />
        "
      >
        <el-pagination
          v-if="isactive == 1"
          size="small"
          background
          layout="prev, pager, next"
          :current-page="pageQuery.page"
          :page-size="pageQuery.rows"
          :total="pageTotal"
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
        />
        <el-pagination
          v-if="isactive == 2"
          size="small"
          background
          layout="prev, pager, next"
          :current-page="pageQuery1.page"
          :page-size="pageQuery1.rows"
          :total="pageTotal1"
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
        />
        <el-pagination
          v-if="isactive == 3"
          size="small"
          background
          layout="prev, pager, next"
          :current-page="pageQuery2.page"
          :page-size="pageQuery2.rows"
          :total="pageTotal2"
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
        />
      </div>
    </div>
  </div>
@@ -156,7 +268,7 @@
} from "@/api/newapi/Datalogging";
import {
  MaintenanceSettingRecord,
  MaintenanceOperationRecord,
  AuthGetPageData,
} from "@/api/newapi/MaintenanceTeam";
const obj = {
  selectTime: [], // æ—¶é—´èŒƒå›´
@@ -172,6 +284,21 @@
const pageTotal = ref(0);
const pageTotal1 = ref(0);
const pageTotal2 = ref(0);
const inputRef = ref(null);
const focusInput = () => {
  if (typeof Windows !== "undefined") {
    const textInputPane =
      Windows.UI.ViewManagement.InputPane.getForCurrentView();
    // æ˜¾ç¤ºè™šæ‹Ÿé”®ç›˜
    textInputPane.show();
    // éšè—è™šæ‹Ÿé”®ç›˜
    textInputPane.hide();
  }
  inputRef.value?.focus();
  console.log("focusInput called", inputRef.value);
};
//分页请求参数
const pageQuery = ref({
  page: 1, //当前页面
@@ -240,6 +367,9 @@
  },
];
const selectoptions = ref([]);
const account = localStorage.getItem("user")
  ? JSON.parse(localStorage.getItem("user")).userName
  : ""; //获取账号
selectoptions.value = tasklogging;
const changeactive = (index) => {
@@ -317,6 +447,7 @@
        : "",
    sortField: "distributionTime",
    sortOrder: "desc",
    account: account,
  }).then((res) => {
    tableData.value = res.data.items;
    pageTotal.value = res.data.totalCount;
@@ -336,23 +467,12 @@
    { name: "createTime", value: startTime, displayType: "ThanOrEqual" },
    { name: "createTime", value: endTime, displayType: "LessOrEqual" },
  ];
  MaintenanceOperationRecord({
    pageIndex: pageQuery1.value.page,
    pageSize: pageQuery1.value.rows,
    searchKeyword: queryForm.value.selectInput,
    startDate:
      queryForm.value.selectTime.length != 0
        ? queryForm.value.selectTime[0]
        : "",
    endDate:
      queryForm.value.selectTime.length != 0
        ? queryForm.value.selectTime[1]
        : "",
    sortField: "maintenancStartTime",
    sortOrder: "desc",
  AuthGetPageData({
    ...pageQuery.value,
    filter,
  }).then((res) => {
    tableData.value = res.data.items;
    pageTotal1.value = res.data.totalCount;
    tableData.value = res.rows;
    pageTotal1.value = res.total;
  });
};
//登录记录
@@ -383,6 +503,7 @@
        : "",
    sortField: "loginTime",
    sortOrder: "desc",
    account: account,
  }).then((res) => {
    tableData.value = res.data.items;
    pageTotal2.value = res.data.totalCount;
@@ -570,6 +691,118 @@
    border-bottom: 0.06rem solid rgba(233, 233, 233, 1);
  }
}
@media screen and (max-width: 1080px) {
  .Datalogging {
    display: flex;
    background-color: #fff;
    .content {
      width: 100%;
      display: flex;
      flex-direction: column;
      .checkbox {
        width: 40rem !important;
        display: flex;
        justify-content: space-between;
        margin-top: 1rem;
        margin-left: 1.31rem;
        .item {
          width: 12rem;
          height: 2.88rem;
          border-radius: 0.25rem;
          background-color: rgba(190, 199, 209, 1);
          color: rgba(255, 255, 255, 1);
          font-size: 1.25rem;
          text-align: center;
          line-height: 2.88rem;
          cursor: pointer;
        }
        .isactive {
          background-color: rgba(16, 16, 16, 1);
          color: rgba(255, 255, 255, 1);
        }
      }
      .serch {
        display: flex;
        margin-top: 1.31rem;
        align-items: center;
        .time_box {
          display: flex;
          align-items: center;
          text-align: center;
          margin-left: 0.98rem;
          .time {
            box-sizing: border-box;
            width: 7rem;
            height: 2.5rem;
            text-align: center;
            border: 0.06rem solid rgba(222, 222, 222, 1);
            border-radius: 0.25rem 0 0 0.25rem;
            font-size: 1.25rem;
            display: flex;
            align-items: center;
            justify-content: center;
          }
        }
        .serch_box {
          display: flex;
          align-items: center;
          text-align: center;
          margin-left: 0.98rem;
          border-radius: 0.38rem;
          .serchb {
            box-sizing: border-box;
            width: 6.88rem;
            height: 2.5rem;
            text-align: center;
            font-size: 1.25rem;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 0.06rem solid rgba(222, 222, 222, 1);
          }
          input {
            box-sizing: border-box;
            outline: none;
            width: 19rem;
            height: 2.5rem;
            border: 0.06rem solid rgba(222, 222, 222, 1);
            border-radius: 0 0.25rem 0.25rem 0;
            padding-left: 0.3125rem;
            font-size: 1rem;
          }
        }
      }
      .btns {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-top: 1.31rem;
        margin-left: 1.13rem;
        padding-right: 2rem;
        box-sizing: border-box;
      }
    }
    .my-header {
      height: 3.84rem;
      display: flex;
      justify-content: space-between;
      border-bottom: 0.06rem solid rgba(233, 233, 233, 1);
    }
  }
}
</style>
<style>
.confirmButtonClass {