wangfei
2025-03-26 e553bf03da95027fc26ac06384e17ef43dd3ccf4
UI-Project/src/views/Returns/upreturns.vue
@@ -1,13 +1,13 @@
<script lang="ts" setup>
import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref, computed} from "vue";
import {useRouter} from "vue-router"
import { onBeforeUnmount, onMounted, onUnmounted, reactive, ref, computed } from "vue";
import { useRouter } from "vue-router"
import { ElMessage, ElMessageBox } from 'element-plus'
import {useI18n} from 'vue-i18n'
import {host, WebSocketHost} from '@/utils/constants'
import { useI18n } from 'vue-i18n'
import { host, WebSocketHost } from '@/utils/constants'
import request from "@/utils/request"
import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService';
const router = useRouter()
const {t} = useI18n()
const { t } = useI18n()
const selectValuesa = reactive([]);
const selectedProjectNo = ref('');
const stationCell = ref('1');
@@ -36,15 +36,15 @@
const titleSelectJson = ref({
  engineerId: [],
})
request.post("/loadGlass/up-patten-usage/setUpPattenRequest",{
request.post("/loadGlass/up-patten-usage/setUpPattenRequest", {
  state: null,
  stationCell: 5
}).then((response) => {
          if (response.code == 200) {
          } else {
          // ElMessage.warning(response.msg)
          }
          });
  if (response.code == 200) {
  } else {
    // ElMessage.warning(response.msg)
  }
});
const selectproject = () => {
  dialogFormVisible.value = true;
  selectgong();
@@ -65,50 +65,38 @@
    closeWebSocket(socket);
  }
});
const fetchTableData = async () => {
  try {
    const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
    if (response.code === 200) {
      tableData.value = response.data
      // tableData.splice(0, tableData.length, ...response.data);
      // ElMessage.error(response.message);
     window.localStorage.setItem('engineeringIda', tableData[0].engineeringId)
}
  } catch (error) {
    // ElMessage.error(response.message);
  }
};
let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassOne`;
const handleMessage = (data: any) => {
  if (data.LoadOneState != null) {
    cuttingMachineStatusColor.value = data.LoadOneState[0] == 1 ? 'green' : '#911005';
  if (data.inkageState != null) {
    cuttingMachineStatusColor.value = data.inkageState[0] === 1 ? 'green' : '#911005';
  }
if (data.stationOne!=null) {
const processedData = [...data.stationOne[0]];
 if (processedData.length > 0) {
   processedData[0] = { ...processedData[0], workstationId: 1 };
 }
 if (processedData.length > 1) {
   processedData[1] = { ...processedData[1], workstationId: 2 };
 }
  tableDataa.value = processedData;
  }else {
  if (data.stationList.length != 0) {
    const processedData = [...data.stationList[0]];
    if (processedData.length > 0) {
      processedData[0] = { ...processedData[0], workstationId: 1 };
    }
    if (processedData.length > 1) {
      processedData[1] = { ...processedData[1], workstationId: 2 };
    }
    tableDataa.value = processedData;
  } else {
    tableDataa.value = []
  }
  if(data.loadTask1!=null){
  tableData.value = data.loadTask1[0]
  window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId)
  canSelectProjecta.value = false;
  canSelectProjectb.value = false;
  canSelectProjectc.value = true;
}
else {
  canSelectProjecta.value = true;
  canSelectProjectb.value = true;
  canSelectProjectc.value = false;
  tableData.value = '';
}
  if (data.upPattenUsages.length != 0) {
    tableData.value = data.upPattenUsages[0]
    window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId)
    canSelectProjecta.value = false;
    canSelectProjectb.value = false;
    canSelectProjectc.value = true;
  }
  else {
    canSelectProjecta.value = true;
    canSelectProjectb.value = true;
    canSelectProjectc.value = false;
    tableData.value = [];
    window.localStorage.setItem('engineeringIda', '')
  }
};
onBeforeUnmount(() => {
  closeWebSocket();
@@ -171,14 +159,14 @@
        state: 1,
      })
      if (response.code == 200) {
        ElMessage.success(response.message);
        ElMessage.success(response.message);
        canSelectProjecta.value = false;
        canSelectProjectb.value = false;
        canSelectProjectc.value = true;
        socket = initializeWebSocket(socketUrl, handleMessage);
        blind.value = false;
        ReportData.value = true;
    } else {
      } else {
        ElMessage.error(response.message);
      }
    } catch (error) {
@@ -235,7 +223,6 @@
    ElMessage.error(response.message);
  }
};
onMounted(fetchTableData);
// 开始上片
const handleBind = (row) => {
  blind.value = true;
@@ -245,13 +232,13 @@
  blinda.value = true;
};
const toggleEnableState = async (row: any) => {
  if (!row.id) {
    ElMessage.error(t('basicData.updatanull'));
  if (!row.id) {
    ElMessage.error(t('basicData.updatanull'));
    return;
  }
  }
  const newState = row.state === 100 ? 0 : 100;
  try {
    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', {id: row.id, state: newState});
    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });
    if (response.code === 200) {
      ElMessage.success(response.message);
      row.state = newState;
@@ -263,69 +250,69 @@
  }
};
// 破损
const opena = async(row) => {
const opena = async (row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.broke'),
      t('productStock.prompt'),
      {
        confirmButtonText: t('productStock.yes'),
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.broke'),
      t('productStock.prompt'),
      {
        confirmButtonText: t('productStock.yes'),
        cancelButtonText: t('productStock.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
     const response = await request.post('/loadGlass/engineering/engineering/identControls', {
       glassId: row.glassId,
       line: 5,
       status: 1,
       state: 8,
       workingProcedure: '上片',
    })
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
      ElMessage.error(response.msg);
      }
    }
  } catch (error) {
    console.error('发生错误:', error);
  }
};
// 人工拿走
const openb = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('order.takeawaya'),
      t('productStock.prompt'),
      {
        confirmButtonText: t('productStock.yes'),
        cancelButtonText: t('productStock.cancel'),
        type: 'warning',
      }
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      const response = await request.post('/loadGlass/engineering/engineering/identControls', {
       glassId: row.glassId,
       line: 5,
       status: 1,
       state: 9,
       workingProcedure: '上片',
    })
    if (response.code === 200) {
      ElMessage.success(response.message);
        glassId: row.glassId,
        line: 5,
        status: 1,
        state: 8,
        workingProcedure: '上片',
      })
      if (response.code === 200) {
        ElMessage.success(response.message);
      } else {
      ElMessage.error(response.msg);
      }
    }
        ElMessage.error(response.msg);
      }
    }
  } catch (error) {
    console.error('发生错误:', error);
  }
};
    console.error('发生错误:', error);
  }
};
// 人工拿走
const openb = async (row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('order.takeawaya'),
      t('productStock.prompt'),
      {
        confirmButtonText: t('productStock.yes'),
        cancelButtonText: t('productStock.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      const response = await request.post('/loadGlass/engineering/engineering/identControls', {
        glassId: row.glassId,
        line: 5,
        status: 1,
        state: 9,
        workingProcedure: '上片',
      })
      if (response.code === 200) {
        ElMessage.success(response.message);
      } else {
        ElMessage.error(response.msg);
      }
    }
  } catch (error) {
    console.error('发生错误:', error);
  }
};
// 架子复位
const handleptask = async (workstationId: number) => {
      try {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('basicData.prackreset'),
      t('workOrder.prompt'),
@@ -336,12 +323,12 @@
      }
    );
    if (confirmResult === 'confirm') {
      const slot = workstationId === 1 ? 101 : (workstationId === 2 ? 102 : null);
      if (slot !== null) {
        const response = await request.post('/glassStorage/rawGlassStorageDetails/shelfReset', {
          slot: slot,
    })
        })
        // const url = `/loadGlass/rawGlassStorageDetails/shelfReset?slot=${slot}`;
        // const response = await request.post(url);
        if (response.code === 200) {
@@ -357,7 +344,7 @@
};
// 结束工程
const deleteTask = async () => {
      try {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.pdeleteTask'),
      t('workOrder.prompt'),
@@ -368,19 +355,19 @@
      }
    );
    if (confirmResult === 'confirm') {
    let engineeringId = window.localStorage.getItem('engineeringIda')
    if (engineeringId !== '') {
      const response = await request.post('/loadGlass/engineering/engineering/deleteTask', {
        engineerId: engineeringId,
      })
      if (response.code == 200) {
        ElMessage.success(response.message);
        canSelectProjecta.value = true;
        canSelectProjectb.value = true;
        canSelectProjectc.value = false;
        blindb.value = true;
        tableDatad.value = response.data;
      } else {
      let engineeringId = window.localStorage.getItem('engineeringIda')
      if (engineeringId !== '') {
        const response = await request.post('/loadGlass/engineering/engineering/deleteTask', {
          engineerId: engineeringId,
        })
        if (response.code == 200) {
          ElMessage.success(response.message);
          canSelectProjecta.value = true;
          canSelectProjectb.value = true;
          canSelectProjectc.value = false;
          blindb.value = true;
          tableDatad.value = response.data;
        } else {
          ElMessage.error(response.message);
        }
      } else {
@@ -421,222 +408,226 @@
    <div>
      <div id="dotClass">
        <div>{{ $t('basicData.laserprinting') }}</div>
        <i :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
        <i
          :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
        <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">{{
            $t('basicData.yes')
          }}
          $t('basicData.yes')
        }}
        </el-button>
        <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</div>
        <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
        <i
          :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
        <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;">{{
            $t('basicData.yes')
          }}
          $t('basicData.yes')
        }}
        </el-button>
        <div style="margin-left: 70px;">{{ upstatus }}</div>
        <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
  </div>
    <el-button :disabled="!canSelectProjecta" style="margin-top: 5px;margin-left: 15px;"  type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
    <el-button :disabled="!canSelectProjectb" style="margin-top: 5px;margin-left: 20px;" type="success" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
    <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
    <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="danger" @click="deleteTask">{{ $t('searchOrder.deleteTask') }}</el-button>
    <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button>
    <el-select disabled v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.oneloadingline')"
               style="margin-top: 5px;margin-left: 20px;">
      <el-option :label="$t('Mounting.all')" value="0"></el-option>
      <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
      <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
    </el-select>
    <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" style="margin-top: 5px;margin-left: 20px;" >
      <el-option :label="$t('Mounting.all')" value="null"></el-option>
      <el-option :label="$t('Mounting.waiting')" value="0"></el-option>
      <el-option :label="$t('Mounting.pass')" value="100"></el-option>
    </el-select>
    <el-button :disabled="!ReportData" type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('Mounting.setparameters') }}</el-button>
    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;">
      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
        <el-table
            height="400"
            ref="table"
            :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
            :data="tableData"
        >
          <el-table-column prop="engineeringId" :label="$t('Mounting.project')" width="100" align="center"/>
          <el-table-column prop="width" :label="$t('Mounting.width')" width="200" align="center"/>
          <el-table-column prop="height" :label="$t('Mounting.height')" align="center"/>
          <el-table-column prop="thickness" :label="$t('Mounting.thickness')" align="center"/>
          <el-table-column prop="filmsId" :label="$t('Mounting.loadinglinea')" align="center"/>
          <el-table-column prop="layoutSequence" :label="$t('Mounting.projectnumber')" align="center"/>
          <el-table-column
              align="center"
              :label="$t('Mounting.state')"
            min-width="80"
            prop="state"
          >
          <template #default="scope">
            <el-tag
                :type="scope.row.state === 100 ? 'success' : 'warning'"
                @click="toggleEnableState(scope.row)"
            >
              {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }}
            </el-tag>
          </template>
      </el-table-column>
    </el-table>
        <i
          :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>
      </div>
    </el-card>
    <div style="display: flex;">
      <div style="width: 49%;float: left;margin-left: 300px;">
        <div style="display: flex;">
          <img src="../../assets/shangpianji.png" alt=""
               style="max-width: 20%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
          <el-table :data="tableDataa" border style="margin-top: 10%;margin-left: 8%;" width="500"
                    :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" >
            <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="50"/>
            <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80"/>
            <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80"/>
            <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80"/>
            <el-table-column prop="remainQuantity" align="center" :label="$t('basicData.quantity')" min-width="80"/>
            <el-table-column prop="patternThickness" align="center" :label="$t('basicData.thickness')" min-width="60"/>
            <el-table-column fixed="right" :label="$t('film.operate')" align="center">
            <template #default="scope">
          <el-button size="mini" :disabled="(!scope.row.patternThickness)" type="text" plain @click="handleptask(scope.row.workstationId)">{{ $t('basicData.rackreset') }}</el-button>
            </template>
        </el-table-column>
          </el-table>
    </div>
  </div>
</div>
  <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleon">
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
<!-- 结束工程 -->
  <el-dialog v-model="blindb" top="10vh" width="80%">
    <el-table ref="table" style="margin-top: 20px;height: 450px;" :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
        <el-table-column prop="engineerId" fixed align="center" :label="$t('basicData.projectnumber')"/>
        <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')"/>
        <el-table-column prop="temperingLayoutId" fixed align="center" :label="$t('searchOrder.layoutID')"/>
        <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')"/>
        <el-table-column prop="width" align="center" :label="$t('basicData.width')"/>
        <el-table-column prop="height" align="center" :label="$t('basicData.height')"/>
        <el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')"/>
        <el-table-column prop="filmsid" align="center" :label="$t('basicData.coatingtypes')"/>
        <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')"/>
        <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="200">
            <template #default="scope">
              <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('order.dilapidation') }}</el-button>
              <el-button size="mini" type="text" plain @click="openb(scope.row)">{{ $t('order.takeaway') }}</el-button>
            </template>
        </el-table-column>
        </el-table>
        <template #footer>
      <div id="dialog-footer">
        <el-button @click="blindb = false">{{ $t('large.close') }}</el-button>
      </div>
    </template>
  </el-dialog>
  <el-dialog v-model="blinda" top="24vh" width="30%" :title="$t('basicData.whetherpause')">
    <div style="margin-left: 50px;margin-bottom: 10px;">
    <el-form-item :label="$t('Mounting.loadingline')" :required="true">
      <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')" style="margin-left: 20px;">
      <el-button :disabled="!canSelectProjecta" style="margin-top: 5px;margin-left: 15px;" type="primary"
        @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
      <el-button :disabled="!canSelectProjectb" style="margin-top: 5px;margin-left: 20px;" type="success"
        @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
      <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton"
        type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
      <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton"
        type="danger" @click="deleteTask">{{ $t('searchOrder.deleteTask') }}</el-button>
      <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlehistorical">{{
        $t('searchOrder.historicaltasks') }}</el-button>
      <el-select disabled v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.oneloadingline')"
        style="margin-top: 5px;margin-left: 20px;">
        <el-option :label="$t('Mounting.all')" value="0"></el-option>
        <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
        <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
      </el-select>
    </el-form-item>
    </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleup">
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
      <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')"
        style="margin-top: 5px;margin-left: 20px;">
        <el-option :label="$t('Mounting.all')" value="null"></el-option>
        <el-option :label="$t('Mounting.waiting')" value="0"></el-option>
        <el-option :label="$t('Mounting.pass')" value="100"></el-option>
      </el-select>
      <el-button :disabled="!ReportData" type="primary" style="margin-left: 10px;" @click="selectReportData()">{{
        $t('Mounting.setparameters') }}</el-button>
      <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;">
        <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
          <el-table height="400" ref="table" :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"
            :data="tableData">
            <el-table-column prop="engineeringId" :label="$t('Mounting.project')" width="100" align="center" />
            <el-table-column prop="width" :label="$t('Mounting.width')" width="200" align="center" />
            <el-table-column prop="height" :label="$t('Mounting.height')" align="center" />
            <el-table-column prop="thickness" :label="$t('Mounting.thickness')" align="center" />
            <el-table-column prop="filmsId" :label="$t('Mounting.loadinglinea')" align="center" />
            <el-table-column prop="layoutSequence" :label="$t('Mounting.projectnumber')" align="center" />
            <el-table-column align="center" :label="$t('Mounting.state')" min-width="80" prop="state">
              <template #default="scope">
                <el-tag :type="scope.row.state === 100 ? 'success' : 'warning'" @click="toggleEnableState(scope.row)">
                  {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }}
                </el-tag>
              </template>
            </el-table-column>
          </el-table>
        </div>
  <el-dialog v-model="dialogFormVisible" top="24vh" width="70%">
    <div class="flex-container" style="margin-left: 50px;margin-bottom: 10px;">
      <el-form-item :label="$t('Mounting.loadingline')" :required="true">
        <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')">
          <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
          <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item :label="$t('Mounting.projecta')" :required="true">
        <el-select
            v-model="selectedProjectNo"
            filterable
            clearable
            :placeholder="$t('basicData.plselectproject')"
            style="width: 220px"
            @input="handleInputChange"
        >
          <el-option
              v-for="item in titleSelectJson['engineerId']"
              :key="item.id"
              :label="item.projectNo"
              :value="item.projectNo"
          />
        </el-select>
      </el-form-item>
      <el-form-item :label="$t('Mounting.removalmethoda')" :required="true">
        <el-select v-model="filmRemove" clearable :placeholder="$t('Mounting.removalmethod')">
          <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
          <el-option :label="$t('Mounting.coarselyground')" value="1"></el-option>
          <el-option :label="$t('Mounting.finegrinding')" value="2"></el-option>
        </el-select>
      </el-form-item>
    </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handlesure">
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
      </el-card>
      <div style="display: flex;">
        <div style="width: 49%;float: left;margin-left: 300px;">
          <div style="display: flex;">
            <img src="../../assets/shangpianji.png" alt=""
              style="max-width: 20%;max-height: 25%;margin-left: 10%;margin-top: 5%;">
            <el-table :data="tableDataa" border style="margin-top: 10%;margin-left: 8%;" width="500"
              :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
              <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="50" />
              <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
              <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
              <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
              <el-table-column prop="remainQuantity" align="center" :label="$t('basicData.quantity')" min-width="80" />
              <el-table-column prop="patternThickness" align="center" :label="$t('basicData.thickness')"
                min-width="60" />
              <el-table-column fixed="right" :label="$t('film.operate')" align="center">
                <template #default="scope">
                  <el-button :disabled="(!scope.row.patternThickness)" type="text" plain
                    @click="handleptask(scope.row.workstationId)">{{ $t('basicData.rackreset') }}</el-button>
                </template>
              </el-table-column>
            </el-table>
          </div>
        </div>
      </div>
    </template>
  </el-dialog>
      <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
        <template #footer>
          <div id="dialog-footer">
            <el-button type="primary" @click="handleon">
              {{ $t('basicData.confirm') }}
            </el-button>
            <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
          </div>
        </template>
      </el-dialog>
      <!-- 结束工程 -->
      <el-dialog v-model="blindb" top="10vh" width="80%">
        <el-table ref="table" style="margin-top: 20px;height: 450px;" :data="tableDatad"
          :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
          <el-table-column prop="engineerId" fixed align="center" :label="$t('basicData.projectnumber')" />
          <el-table-column prop="glassId" fixed align="center" :label="$t('searchOrder.glassID')" />
          <el-table-column prop="temperingLayoutId" fixed align="center" :label="$t('searchOrder.layoutID')" />
          <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" />
          <el-table-column prop="width" align="center" :label="$t('basicData.width')" />
          <el-table-column prop="height" align="center" :label="$t('basicData.height')" />
          <el-table-column prop="thickness" align="center" :label="$t('basicData.thickness')" />
          <el-table-column prop="filmsid" align="center" :label="$t('basicData.coatingtypes')" />
          <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')" />
          <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="200">
            <template #default="scope">
              <el-button type="text" plain @click="opena(scope.row)">{{ $t('order.dilapidation') }}</el-button>
              <el-button type="text" plain @click="openb(scope.row)">{{ $t('order.takeaway') }}</el-button>
            </template>
          </el-table-column>
        </el-table>
        <template #footer>
          <div id="dialog-footer">
            <el-button @click="blindb = false">{{ $t('large.close') }}</el-button>
          </div>
        </template>
      </el-dialog>
      <el-dialog v-model="blinda" top="24vh" width="30%" :title="$t('basicData.whetherpause')">
        <div style="margin-left: 50px;margin-bottom: 10px;">
          <el-form-item :label="$t('Mounting.loadingline')" :required="true">
            <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')"
              style="margin-left: 20px;">
              <el-option :label="$t('Mounting.all')" value="0"></el-option>
              <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
              <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
            </el-select>
          </el-form-item>
        </div>
        <template #footer>
          <div id="dialog-footer">
            <el-button type="primary" @click="handleup">
              {{ $t('basicData.confirm') }}
            </el-button>
            <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
          </div>
        </template>
      </el-dialog>
    </div>
    <el-dialog v-model="dialogFormVisible" top="24vh" width="70%">
      <div class="flex-container" style="margin-left: 50px;margin-bottom: 10px;">
        <el-form-item :label="$t('Mounting.loadingline')" :required="true">
          <el-select disabled v-model="stationCell" clearable :placeholder="$t('Mounting.inloadingline')">
            <el-option :label="$t('Mounting.oneloadingline')" value="1"></el-option>
            <el-option :label="$t('Mounting.twoloadingline')" value="2"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item :label="$t('Mounting.projecta')" :required="true">
          <el-select v-model="selectedProjectNo" filterable clearable :placeholder="$t('basicData.plselectproject')"
            style="width: 220px" @input="handleInputChange">
            <el-option v-for="item in titleSelectJson['engineerId']" :key="item.id" :label="item.projectNo"
              :value="item.projectNo" />
          </el-select>
        </el-form-item>
        <el-form-item :label="$t('Mounting.removalmethoda')" :required="true">
          <el-select v-model="filmRemove" clearable :placeholder="$t('Mounting.removalmethod')">
            <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
            <el-option :label="$t('Mounting.coarselyground')" value="1"></el-option>
            <el-option :label="$t('Mounting.finegrinding')" value="2"></el-option>
          </el-select>
        </el-form-item>
      </div>
      <template #footer>
        <div id="dialog-footer">
          <el-button type="primary" @click="handlesure">
            {{ $t('basicData.confirm') }}
          </el-button>
          <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
        </div>
      </template>
    </el-dialog>
    <!-- 历史任务 -->
<el-dialog v-model="blindbd" top="10vh" width="71%">
     <iframe
     :src="iframeUrl"
     marginwidth="2000px"
     marginheight="2000px"
     width="100%"
     height="700px"
     frameborder="0"
     ></iframe>
  </el-dialog>
    <el-dialog v-model="blindbd" top="10vh" width="71%">
      <iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="700px"
        frameborder="0"></iframe>
    </el-dialog>
  </div>
</template>
<style scoped>
 .flex-container {
  display: flex;
.flex-container {
  display: flex;
  align-items: center;
}
.flex-container .el-form-item {
  flex: 1;
  margin-right: 0; /* 移除默认的右侧边距 */
}
.flex-container .el-form-item:last-child {
  margin-left: 20px; /* 为第二个表单项添加左侧边距 */
}
#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
#dialog-footer{
.flex-container .el-form-item {
  flex: 1;
  margin-right: 0;
  /* 移除默认的右侧边距 */
}
.flex-container .el-form-item:last-child {
  margin-left: 20px;
  /* 为第二个表单项添加左侧边距 */
}
#dt {
  display: block;
  float: left;
  line-height: 20px;
  margin-left: 100px;
}
#dta {
  display: block;
  float: left;
  line-height: 20px;
  margin-left: 80%;
}
#dialog-footer {
  text-align: center;
  margin-top: -15px;
}
#dotClass {
  display: flex;
  margin-left: 20px;
  margin-left: 20px;
  size: 50px;
  margin-top: 20px;
  margin-bottom: 10px;