UI-Project/src/views/hollow/hellowslicecagehistory.vue
@@ -2,8 +2,8 @@
  <div>  
<div style="display: flex;width: 1770px;">
  <el-input v-model="glassId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('searchOrder.inglassID')" />
  <el-input v-model="startSlot" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('film.originateslot')" />
  <el-input v-model="targetSlot" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" :placeholder="$t('film.endslot')" />
  <el-input v-model="startSlot" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" @input="handleInputa" :placeholder="$t('film.originateslot')" />
  <el-input v-model="targetSlot" clearable style="margin-left: 10px;margin-bottom: 10px;width: 200px;" @input="handleInputb" :placeholder="$t('film.endoriginateslot')" />
        <el-select v-model="selectValuesa[0]" filterable :placeholder="$t('searchOrder.taskstatus')" clearable
        style="width: 200px;margin-left: 10px;">
        <el-option :label="$t('searchOrder.begin')" value="0"></el-option>
@@ -13,20 +13,59 @@
      </el-select>
      <el-select v-model="selectValuesa[1]" filterable :placeholder="$t('film.enabletype')" clearable
        style="width: 200px;margin-left: 10px;">
        <el-option :label="$t('searchOrder.inkage')" value="1"></el-option>
        <el-option :label="$t('searchOrder.outfilm')" value="2"></el-option>
        <el-option :label="$t('film.dispatch')" value="3"></el-option>
        <el-option :label="$t('searchOrder.inkage')" value="4"></el-option>
        <el-option :label="$t('searchOrder.outfilm')" value="5"></el-option>
        <el-option :label="$t('film.dispatch')" value="6"></el-option>
      </el-select>
          <el-date-picker v-model="timeRange" type="datetimerange" range-separator="至" :start-placeholder="$t('reportmanage.starttime')"
           style="margin-left: 15px;" value-format = "YYYY-MM-DD hh:mm:ss"
            :end-placeholder="$t('reportmanage.endtime')">
          </el-date-picker>
        <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="sethistorical()">{{$t('reportmanage.inquire')}}</el-button>
      <el-date-picker
            style="margin-left: 15px;"
             v-model="timeRange"
             type="datetimerange"
             :shortcuts="shortcuts"
             range-separator="至"
             :start-placeholder="$t('reportmanage.starttime')"
             :end-placeholder="$t('reportmanage.endtime')"
           />
        <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="handleClick()">{{$t('reportmanage.inquire')}}</el-button>
   </div>
  <div style="margin-bottom: 10px;margin-top: 20px;margin-left: 20px;">
      <el-form>
        <el-row style="margin-top: -15px;margin-bottom: -2px;">
          <el-col :span="5">
              <div id="dt" style="font-size: 15px;">
              <el-form-item :label="$t('hellow.hollowCountOutOne')"  style="width: 14vw">
                {{ hollowCountOutOne }}
              </el-form-item>
              </div>
          </el-col>
          <el-col :span="5">
              <div id="dt" style="font-size: 15px;">
              <el-form-item :label="$t('hellow.hollowTotalAreaOutOne')" style="width: 14vw">
                {{ hollowTotalAreaOutOne }}
              </el-form-item>
              </div>
          </el-col>
          <el-col :span="5">
            <div id="dta" style="font-size: 15px;">
          <el-form-item :label="$t('hellow.hollowCountOutTwo')" style="width: 14vw">
                {{ hollowCountOutTwo }}
              </el-form-item>
              </div>
          </el-col>
          <el-col :span="4">
              <div id="dt" style="font-size: 15px;">
              <el-form-item :label="$t('hellow.hollowTotalAreaOutTwo')" style="width: 14vw">
                {{ hollowTotalAreaOutTwo }}
              </el-form-item>
              </div>
          </el-col>
        </el-row>
      </el-form>
    </div>
      <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
    <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="80" />
    <el-table-column prop="startSlot" align="center" :label="$t('film.originateslot')" min-width="80" />
        <el-table-column prop="targetSlot" align="center" :label="$t('film.endslot')" min-width="80" />
        <el-table-column prop="targetSlot" align="center" :label="$t('film.endoriginateslot')" min-width="80" />
        <el-table-column
          align="center"
          :label="$t('film.taskstatus')"
@@ -51,8 +90,8 @@
      </el-tag>  
    </template> 
        </el-table-column>
        <el-table-column prop="createTime" align="center" :label="$t('reportmanage.starttime')" min-width="100" />
        <el-table-column prop="updateTime" align="center" :label="$t('reportmanage.endtime')" min-width="100" />
        <el-table-column prop="formattedCreateTime" align="center" :label="$t('reportmanage.starttime')" min-width="100" />
        <el-table-column prop="formattedUpdateTime" align="center" :label="$t('reportmanage.endtime')" min-width="100" />
      </el-table>
<div style="margin-top: 20px;margin-left: 40%;">
      <el-pagination
@@ -86,10 +125,57 @@
const tableDatax = ref([])
const currentPage2 = ref(1)
const totalRecords = ref(0)
const hollowCountOutOne = ref(0)
const hollowCountOutTwo = ref(0)
const hollowTotalAreaOutOne = ref(0)
const hollowTotalAreaOutTwo = ref(0)
const glassId = ref('');
const startSlot = ref('');
const targetSlot = ref('');
let getglobalDate = window.localStorage.getItem('getglobalDate')
// 处理输入事件
const handleInputa = (value: string) => {
  const isNumeric = /^\d*$/.test(value);
  if (isNumeric) {
    startSlot.value = value;
  } else {
    startSlot.value = '';
  }
};
const handleInputb = (value: string) => {
  const isNumeric = /^\d*$/.test(value);
  if (isNumeric) {
    targetSlot.value = value;
  } else {
    targetSlot.value = '';
  }
};
const Daily = async () => {
try {
let startTime = window.localStorage.getItem('startTime')
    const response = await request.post("/hollowGlass/hollowBigStorageCageHistoryTask/queryHollowDailyProduction", {
      pageNo: 1,
      pageSize: 20,
      glassId: '',
      startSlot: 0,
      targetSlot: 0,
      taskStateList: [],
      taskTypeList: [],
      beginDate: startTime,
      endDate: getglobalDate
  })
    if (response.code == 200) {
      hollowCountOutOne.value = response.data.hollowCountOutOne
      hollowCountOutTwo.value = response.data.hollowCountOutTwo
      hollowTotalAreaOutOne.value = response.data.hollowTotalAreaOutOne
      hollowTotalAreaOutTwo.value = response.data.hollowTotalAreaOutTwo
    } else {
      ElMessage.error(response.message);
  }
}
catch (error) {
}
}
const historical = async () => {
try {
let startTime = window.localStorage.getItem('startTime')
@@ -106,53 +192,138 @@
  })
    if (response.code == 200) {
      ElMessage.success(response.message);
      tableDatax.value = response.data.records;
      console.log(response.data.pages);
        const formattedData = response.data.records.map(record => ({
        ...record,
        formattedCreateTime: formatTimestamp(record.createTime),
        formattedUpdateTime: formatTimestamp(record.updateTime),
      }));
        // tableDatax.value = response.data.records;
        tableDatax.value = formattedData;
      totalRecords.value = response.data.total/2 || 0
    } else {
      ElMessage.error(response.message);
  }
}
catch (error) {
  console.error(error);
}
}
const handlePageChange2 = (newPage) => {
currentPage2.value = newPage;
console.log(currentPage2.value);
window.localStorage.setItem('pagenumber', currentPage2.value)
historicala(currentPage2.value);
Dailya(currentPage2.value);
};
const historicala = async (page) => {
try { 
let celllist=[]
let stateList=[]
let pstartSlot= ''
let ptargetSlot=''
if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
  if(selectValuesa[0]!=""){
    celllist=[selectValuesa[0]];
  }
}
if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
  if(selectValuesa[1]!=""){
    stateList=[selectValuesa[1]];
  }
}
if(startSlot.value != ""){
  pstartSlot = startSlot.value
}else{
  pstartSlot = '0'
}
if(targetSlot.value != ""){
  ptargetSlot = targetSlot.value
}else{
  ptargetSlot = '0'
}
let page = window.localStorage.getItem('pagenumber')
let startTime = window.localStorage.getItem('startTime')
    const response = await request.post("/hollowGlass/hollowBigStorageCageHistoryTask/queryHollowBigStorageCageHistoryTask", {
      pageNo: page,
      pageSize: 20,
      glassId: glassId.value,
      startSlot: 0,
      targetSlot: 0,
      taskStateList: [],
      taskTypeList: [],
      beginDate: startTime,
      endDate: getglobalDate
      startSlot: pstartSlot,
      targetSlot: ptargetSlot,
      taskStateList: celllist,
      taskTypeList: stateList,
      beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
      endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
  })
    if (response.code == 200) {
      ElMessage.success(response.message);
      tableDatax.value = response.data.records;
      console.log(response.data.pages);
        const formattedData = response.data.records.map(record => ({
        ...record,
        formattedCreateTime: formatTimestamp(record.createTime),
        formattedUpdateTime: formatTimestamp(record.updateTime),
      }));
        // tableDatax.value = response.data.records;
        tableDatax.value = formattedData;
      totalRecords.value = response.data.total/2 || 0
    } else {
      ElMessage.error(response.message);
  }
}
catch (error) {
  console.error(error);
}
}
const Dailya = async (page) => {
try {
let celllist=[]
let stateList=[]
let pstartSlot= ''
let ptargetSlot=''
if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
  if(selectValuesa[0]!=""){
    celllist=[selectValuesa[0]];
  }
}
if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
  if(selectValuesa[1]!=""){
    stateList=[selectValuesa[1]];
  }
}
if(startSlot.value != ""){
  pstartSlot = startSlot.value
}else{
  pstartSlot = '0'
}
if(targetSlot.value != ""){
  ptargetSlot = targetSlot.value
}else{
  ptargetSlot = '0'
}
let page = window.localStorage.getItem('pagenumber')
let startTime = window.localStorage.getItem('startTime')
    const response = await request.post("/hollowGlass/hollowBigStorageCageHistoryTask/queryHollowDailyProduction", {
      pageNo: page,
      pageSize: 20,
      glassId: glassId.value,
      startSlot: pstartSlot,
      targetSlot: ptargetSlot,
      taskStateList: celllist,
      taskTypeList: stateList,
      beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
      endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
  })
    if (response.code == 200) {
      hollowCountOutOne.value = response.data.hollowCountOutOne
      hollowCountOutTwo.value = response.data.hollowCountOutTwo
      hollowTotalAreaOutOne.value = response.data.hollowTotalAreaOutOne
      hollowTotalAreaOutTwo.value = response.data.hollowTotalAreaOutTwo
    } else {
      ElMessage.error(response.message);
  }
}
catch (error) {
}
}
const handleClick = async () => {
  await sethistorical();
  await Dailyhistorical();
};
// 历史查询
const sethistorical = async () => {
try { 
@@ -183,25 +354,82 @@
}
let page = window.localStorage.getItem('pagenumber')
const response = await request.post("/hollowGlass/hollowBigStorageCageHistoryTask/queryHollowBigStorageCageHistoryTask", {
      pageNo: page,
      pageNo: 1,
      pageSize: 20,
      glassId: glassId.value,
      startSlot: pstartSlot,
      targetSlot: ptargetSlot,
      taskStateList: celllist,
      taskTypeList: stateList,
      beginDate: startTime,
      endDate: getglobalDate
      beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
      endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
  })
    if (response.code == 200) {
      ElMessage.success(response.message);
      tableDatax.value = response.data.records;
        currentPage2.value = 1
        ElMessage.success(response.message);
        const formattedData = response.data.records.map(record => ({
        ...record,
        formattedCreateTime: formatTimestamp(record.createTime),
        formattedUpdateTime: formatTimestamp(record.updateTime),
      }));
        tableDatax.value = formattedData;
      totalRecords.value = response.data.total/2 || 0
    } else {
      ElMessage.error(response.message);
  }
}
catch (error) {
  console.error(error);
}
}
const Dailyhistorical = async () => {
try {
let startTime = window.localStorage.getItem('startTime')
let celllist=[]
let stateList=[]
let pstartSlot= ''
let ptargetSlot=''
if(selectValuesa[0]!=null&&selectValuesa[0]!='undefined'){
  if(selectValuesa[0]!=""){
    celllist=[selectValuesa[0]];
  }
}
if(selectValuesa[1]!=null&&selectValuesa[1]!='undefined'){
  if(selectValuesa[1]!=""){
    stateList=[selectValuesa[1]];
  }
}
if(startSlot.value != ""){
  pstartSlot = startSlot.value
}else{
  pstartSlot = '0'
}
if(targetSlot.value != ""){
  ptargetSlot = targetSlot.value
}else{
  ptargetSlot = '0'
}
let page = window.localStorage.getItem('pagenumber')
const response = await request.post("/hollowGlass/hollowBigStorageCageHistoryTask/queryHollowDailyProduction", {
      pageNo: 1,
      pageSize: 20,
      glassId: glassId.value,
      startSlot: pstartSlot,
      targetSlot: ptargetSlot,
      taskStateList: celllist,
      taskTypeList: stateList,
      beginDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[0])) || '',
      endDate: (formatTimestamp(timeRange.value) && formatTimestamp(timeRange.value[1])) || '',
  })
    if (response.code == 200) {
      hollowCountOutOne.value = response.data.hollowCountOutOne
      hollowCountOutTwo.value = response.data.hollowCountOutTwo
      hollowTotalAreaOutOne.value = response.data.hollowTotalAreaOutOne
      hollowTotalAreaOutTwo.value = response.data.hollowTotalAreaOutTwo
    } else {
      ElMessage.error(response.message);
  }
}
catch (error) {
}
}
@@ -216,13 +444,47 @@
const seconds = String(date.getSeconds()).padStart(2, '0'); // 补零(如果需要显示时间)
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
const shortcuts = [
  {
    text: '最近一周',
    value: () => {
      const backendTime = new Date(getglobalDate)
      const oneWeekAgo = new Date(getglobalDate)
      oneWeekAgo.setHours(0, 0, 0, 0);
      oneWeekAgo.setDate(oneWeekAgo.getDate() - 7)
      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
    },
  },
  {
    text: '最近一个月',
    value: () => {
      const backendTime = new Date(getglobalDate)
      const oneWeekAgo = new Date(getglobalDate)
      oneWeekAgo.setHours(0, 0, 0, 0);
      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 1)
      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
    },
  },
  {
    text: '最近三个月',
    value: () => {
      const backendTime = new Date(getglobalDate)
      const oneWeekAgo = new Date(getglobalDate)
      oneWeekAgo.setHours(0, 0, 0, 0);
      oneWeekAgo.setMonth(oneWeekAgo.getMonth() - 3)
      timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)]
      window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
},
  },
]
// 格式化后端时间并计算一周前的时间
const defaultTime = ref<[Date, Date]>([new Date(), new Date()]);
function parseAndSetTime() {
const backendTime = new Date(getglobalDate);
const oneWeekAgo = new Date(backendTime.getTime() - 7 * 24 * 60 * 60 * 1000); // 减去7天
console.log(formatTimestamp(oneWeekAgo));
console.log(oneWeekAgo);
const oneWeekAgo = new Date(backendTime.getTime() - 0 * 24 * 60 * 60 * 1000); // 减去7天
oneWeekAgo.setHours(0, 0, 0, 0);
timeRange.value = [formatTimestamp(oneWeekAgo), formatTimestamp(backendTime)];
window.localStorage.setItem('startTime', formatTimestamp(oneWeekAgo))
}
@@ -252,27 +514,28 @@
}
function getStatusTypea(taskType: number) {  
switch (taskType) {  
  case 1:
  case 4:
    return 'primary';  
  case 2:
  case 5:
    return 'success';  
  case 3:
  case 6:
    return 'warning';  
}  
}  
function getStatusTexta(taskType: number) {
switch (taskType) {
  case 1:
  case 4:
    return t('searchOrder.inkage');
  case 2:
  case 5:
  return t('searchOrder.outfilm');
  case 3:
  case 6:
  return t('film.dispatch');
}  
}
onMounted(() => {
parseAndSetTime();
historical();
Daily()
});
</script>
<style scoped>