ZengTao
2025-03-13 75b98831417be414bc43e1832479d05d20cf6ac3
UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -7,18 +7,23 @@
import dayjs from 'dayjs';
import request from "@/utils/request"
import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
import { inject } from 'vue';
const router = useRouter()
const tableDataa = ref([])
const tableDatab = ref([])
const tableDatad = ref([])
const {t} = useI18n()
const add = ref(false)
const dialogFormVisiblea = ref(false)
const dialogFormVisibleb = ref(false)
const dialogFormVisiblec = ref(false)
const dialogFormVisiblee = ref(false)
const blindb = ref(false)
const Edit = ref(false)
const timeRange = ref([])
const timeRangea = ref([])
const selectValuesa = reactive([]);
const selectValuesb = reactive([]);
const patternWidth = ref('');
const patternHeight = ref('');
const patternThickness = ref('');
@@ -28,6 +33,7 @@
const leftingStation = ref('');
const loadingline = ref('');
let webSocket: WebSocket | null = null;  
const globalDate = inject('globalDate');
const value = ref('')
const options = [
  {
@@ -44,27 +50,29 @@
  taskState: '',
});
  let startTime = window.localStorage.getItem('startTime')
  let endTime = window.localStorage.getItem('endTime')
  request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest",{
  beginDate: startTime,
  endDate: endTime,
  endDate: globalDate,
}).then((response) => {
          if (response.code == 200) {
            tableDataa.value = response.data
            console.log(tableDataa.value);
          } else {
          ElMessage.warning(response.msg)
          }
          });
// 格式化后端时间并计算一周前的时间
const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
function parseAndSetTime() {
  const backendTime = new Date(globalDate);
  const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 减去7天
  console.log(formatTimestamp(oneWeekAgo));
  console.log(oneWeekAgo);
  timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
  timeRangea.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
  window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
}
  onMounted(() => {
  socket = initializeWebSocket(socketUrl, handleMessage);
  const endTime = dayjs().startOf('minute'); // 当前时间,精确到分钟
  const startTime = endTime.subtract(7, 'day').startOf('minute'); // 当前时间的前一天,精确到分钟
  // 设置时间范围为 [开始时间, 结束时间]
  timeRange.value = [startTime.format('YYYY-MM-DD HH:mm:ss'), endTime.format('YYYY-MM-DD HH:mm:ss')];
  window.localStorage.setItem('startTime', startTime.format('YYYY-MM-DD HH:mm:ss'))
  window.localStorage.setItem('endTime', endTime.format('YYYY-MM-DD HH:mm:ss'))
  parseAndSetTime();
});
let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
@@ -292,16 +300,94 @@
  }
};
// 格式化时间戳为年月日时间字符串的函数
function formatTimestamp(timestamp) {
function formatTimestamp(timestamp: number | Date): string {
  const date = new Date(timestamp);
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1,并补零
  const day = String(date.getDate()).padStart(2, '0'); // 补零
  const hours = String(date.getHours()).padStart(2, '0'); // 补零(如果需要显示时间)
  const minutes = String(date.getMinutes()).padStart(2, '0'); // 补零(如果需要显示时间)
  const seconds = String(date.getSeconds()).padStart(2, '0'); // 补零(如果需要显示时间)
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const day = String(date.getDate()).padStart(2, '0');
  const hours = String(date.getHours()).padStart(2, '0');
  const minutes = String(date.getMinutes()).padStart(2, '0');
  const seconds = String(date.getSeconds()).padStart(2, '0');
  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
// 历史任务
const iframeUrl = ref('');
const handlehistorical = (row) => {
  // historical()
  // window.localStorage.setItem('pagenumber', 1)
  blindb.value = true;
  iframeUrl.value = `${window.location.origin}/#/GlassStorage/rawhistory`;
};
// const historical = async () => {
//   try {
//   let startTime = window.localStorage.getItem('startTime')
//       const response = await request.post("/glassStorage/rawGlassStorageTask/queryRawGlassHistoryTask", {
//         pageNo: 1,
//         pageSize: 20,
//         taskState: [],
//         taskType: [],
//         beginDate: startTime,
//         endDate: globalDate
//     })
//       if (response.code == 200) {
//   window.localStorage.setItem('pagenumber', 1)
// } else {
//     }
// }
// catch (error) {
//     console.error(error);
//   }
// }
// 任务成功处理
const successfull = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.psuccessfullyprocessed'),
      t('workOrder.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
        cancelButtonText: t('workOrder.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
  var url="/glassStorage/rawGlassStorageTask/taskSuccess?taskId="+ row.id;
      const response = await request.post(url)
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
      ElMessage.error(response.msg);
      }
    }
  } catch (error) {
    console.error('发生错误:', error);
  }
};
// 任务失败处理
const handleptask = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.ptaskfailure'),
      t('workOrder.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
        cancelButtonText: t('workOrder.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
  var url="/glassStorage/rawGlassStorageTask/taskError?taskId="+ row.id;
      const response = await request.post(url)
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
      ElMessage.error(response.msg);
      }
    }
  } catch (error) {
    console.error('发生错误:', error);
  }
};
function getStatusType1(taskType) {  
switch (taskType) {  
  case 1:  
@@ -347,7 +433,7 @@
  case 2:  
    return t('film.fail');//失败
  case 1:  
  return t('film.finish');//完成
    return t('film.finish');//完成
}  
}
onBeforeUnmount(() => {
@@ -368,6 +454,10 @@
      </el-button>
      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBinde">{{
          $t('film.pwareout')
        }}
      </el-button>
      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handlehistorical">{{
          $t('searchOrder.historicaltasks')
        }}
      </el-button>
      <el-date-picker style="margin-left: 10px;" v-model="timeRange" type="datetimerange"
@@ -463,6 +553,17 @@
        </el-table-column>
        </el-table>
</el-dialog>
<!-- 历史任务 -->
<el-dialog v-model="blindb" top="10vh" width="90%">
     <iframe
     :src="iframeUrl"
     marginwidth="2000px"
     marginheight="2000px"
     width="100%"
     height="700px"
     frameborder="0"
     ></iframe>
  </el-dialog>
<el-dialog v-model="dialogFormVisibleb" top="23vh" width="55%" :title="$t('film.addglass')" >
    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
            <el-form  size="mini" label-width="150px">