huang
2025-05-12 e8794c0f920960a2584ba62a64e389f2bb99e259
阿尔及利亚
1个文件已修改
1个文件已添加
792 ■■■■■ 已修改文件
UI-Project/src/router/index.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Returns/upreturns3.vue 785 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/router/index.js
@@ -54,7 +54,12 @@
            path: '/Returns/upreturns2',
            name: 'upreturns2',
            component: () => import('../views/Returns/upreturns2.vue')
          }
          },
          {
            path: '/Returns/upreturns3',
            name: 'upreturns3',
            component: () => import('../views/Returns/upreturns3.vue')
          },
        ]
      },
      /*----------- 掰片/识别 ----------------*/
UI-Project/src/views/Returns/upreturns3.vue
New file
@@ -0,0 +1,785 @@
<script lang="ts" setup>
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 request from "@/utils/request"
import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService';
const router = useRouter()
const { t } = useI18n()
const selectValuesa = reactive([]);
const selectedProjectNo = ref('');
const stationCell = ref('1');
const filmRemove = ref('');
const dialogFormVisible = ref(false)
const blind = ref(false)
const blinda = ref(false)
const ReportData = ref(true);
const blindb = ref(false)
const blindbd = ref(false)
const canSelectProjecta = ref(true);
const canSelectProjectb = ref(true);
const canSelectProjectc = ref(false);
const tableDatad = ref([])
const upstatus = ref(t('basicData.machineaa'));
const cuttingMachineStatusColor = ref('#911005');
const tableDataa = ref<any[]>([]);
const tableDatab = ref<any[]>([]);
const tableData = ref([])
const dialogFormVisiblea = ref(false)
const titleSelectJson = ref({
  engineerId: [],
})
request.post("/loadGlass/up-patten-usage/setUpPattenRequest", {
  state: null,
  stationCell: 6
}).then((response) => {
  if (response.code == 200) {
  } else {
    // ElMessage.warning(response.msg)
  }
});
const selectproject = () => {
  dialogFormVisible.value = true;
  selectgong();
};
const markingMachineStatus = ref('#911005');
const cuttingMachineStatus = ref('#911005');
const confirmMarkingMachine = () => {
  markingMachineStatus.value = 'green';
};
const confirmCuttingMachine = () => {
  cuttingMachineStatus.value = 'green';
};
//获取原片仓储信息
let socketB = null;
const socketUrlB = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
// 添加新的消息处理函数
const handleMessageB = (data) => {
  if (data.rawStationDetailsList != null) {
    tableDatab.value = data.rawStationDetailsList[0];
  }
};
onMounted(() => {
  socket = initializeWebSocket(socketUrl, handleMessage);
  socketB = initializeWebSocket(socketUrlB, handleMessageB);
});
onUnmounted(() => {
  if (socket) {
    closeWebSocket(socket);
  }
  if (socketB) {
    closeWebSocket(socketB);
  }
});
const fetchTableData = async () => {
  try {
    const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
    if (response.code === 200) {
      tableData.splice(0, tableData.length, ...response.data);
      // ElMessage.error(response.message);
      window.localStorage.setItem('engineeringIda', tableData[0].engineeringId)
    }
  } catch (error) {
  }
};
let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassOne`;
const handleMessage = (data: any) => {
  if (data.inkageState != null) {
    cuttingMachineStatusColor.value = data.inkageState[0] === 1 ? 'green' : '#911005';
  }
  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.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();
});
// // 结束工程
// const handledelete = (row) => {
//   blindb.value = true;
// };
// const requestData = {
//   state: 100
// };
// const selectgong = async (queryString: string) => {
//   try {
//     const response = await request.post('/up-patten-usage/deleteTask', {
//       ...requestData,
//       query: queryString
//     });
//     if (response.code == 200) {
//       titleSelectJson.value.engineerId = response.data;
//     } else {
//       ElMessage.error(response.message);
//     }
//   } catch (error) {
//     console.error(error);
//   }
// };
// 架子复位
const handleptask = async (workstationId: number) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('basicData.prackreset'),
      t('workOrder.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
        cancelButtonText: t('workOrder.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      const slot = workstationId === 3 ? 103 : (workstationId === 4 ? 104 : null);
      if (slot !== null) {
        const response = await request.post('/glassStorage/rawGlassStorageDetails/shelfReset', {
          slot: slot,
        })
        if (response.code === 200) {
          ElMessage.success(response.message);
        } else {
          ElMessage.error(response.message);
        }
      } else {
      }
    }
  } catch (error) {
  }
};
//选择工程预览确认
// const handlesure = async () => {
//   try {
//     const response = await request.post('/loadGlass/up-patten-usage/selectUpPattenUsage', {
//       stationCell: 6,
//       engineerId: selectedProjectNo.value,
//       filmRemove: parseInt(filmRemove.value, 10),
//     })
//     window.localStorage.setItem('engineeringIda', selectedProjectNo.value)
//     window.localStorage.setItem('filmRemove', filmRemove.value)
//     if (response.code == 200) {
//       ElMessage.success(response.message);
//       closeWebSocket(socket);
//       tableData.value = response.data;
//       dialogFormVisible.value = false;
//       selectedProjectNo.value = '';
//       filmRemove.value = '';
//       markingMachineStatus.value = '#911005';
//       cuttingMachineStatus.value = '#911005';
//       ReportData.value = false;
//     } else {
//       ElMessage.error(response.message);
//     }
//   } catch (error) {
//     console.error(error);
//   }
// }
// 结束工程
const deleteTask = async () => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.pdeleteTask'),
      t('workOrder.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
        cancelButtonText: t('workOrder.cancel'),
        type: 'warning',
      }
    );
    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 {
          ElMessage.error(response.message);
        }
      } else {
      }
    }
  } catch (error) {
  }
};
// 开始上片按钮
const handleBind = (row) => {
  const quantity = inputQuantities.value[row.slot];
  if (!quantity) {
    ElMessage.warning('请输入数量');
    return;
  }
  handleon(parseInt(row.slot), quantity);
};
const inputQuantities = ref<{ [key: string]: string }>({});  // 用于存储输入数量
const currentRow = ref(null);
// 开始上片
const handleon = async (slot: number, quantity: string) => {
  try {
    // 转换为整数
    const quantityNum = Number(quantity);
    const slotNum = Number(slot);
    // 验证是否为有效整数
    if (!Number.isInteger(quantityNum) || !Number.isInteger(slotNum)) {
      ElMessage.warning('数量和架位号必须是整数');
      return;
    }
    const response = await request.post('/loadGlass/up-patten-usage/insertTask?quantity=' + quantityNum + '&slot=' + slotNum);
    if (response.code == 200) {
      ElMessage.success(response.message);
      blind.value = false;
      dialogFormVisiblea.value = false;
      inputQuantities.value[slot] = '';
    } else {
      ElMessage.error(response.message);
    }
  } catch (error) {
    console.error(error);
    ElMessage.error('操作失败');
  }
};
// 暂停
const handleup = async () => {
  try {
    let filmRemove = window.localStorage.getItem('filmRemove')
    let engineeringId = window.localStorage.getItem('engineeringIda')
    if (engineeringId !== '') {
      const response = await request.post('/loadGlass/engineering/engineering/pause', {
        stationCell: 6,
        filmRemove: filmRemove,
        engineerId: engineeringId,
        state: 0,
      })
      if (response.code == 200) {
        ElMessage.success(response.message);
        blinda.value = false;
      } else {
        ElMessage.error(response.message);
      }
    } else {
      ElMessage({
        type: 'info',
        message: t('basicData.infonull'),
      })
    }
  } catch (error) {
    console.error(error);
  }
}
// 查询数据
const selectReportData = async () => {
  let stateList = []
  if (selectValuesa[0] != null && selectValuesa[0] != 'undefined') {
    if (selectValuesa[0] != "") {
      stateList = [selectValuesa[0]];
    }
  }
  const response = await request.post("/loadGlass/up-patten-usage/setUpPattenRequest", {
    state: selectValuesa[0],
    stationCell: 6
  })
  if (response.code === 200) {
    tableData.value = response.data;
    ElMessage.success(response.message);
  } else {
    ElMessage.error(response.message);
  }
};
onMounted(fetchTableData);
// 暂停
const handleBinda = (row) => {
  blinda.value = true;
};
const toggleEnableState = async (row: any) => {
  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 });
    if (response.code === 200) {
      ElMessage.success(response.message);
      row.state = newState;
    } else {
      ElMessage.error(response.message);
    }
  } catch (error) {
    ElMessage.error(t('basicData.glassnull'));
  }
};
// 破损
const opena = async (row) => {
  try {
    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: 6,
        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',
      }
    );
    if (confirmResult === 'confirm') {
      const response = await request.post('/loadGlass/engineering/engineering/identControls', {
        glassId: row.glassId,
        line: 6,
        status: 1,
        state: 9,
        workingProcedure: '上片',
      })
      if (response.code === 200) {
        ElMessage.success(response.message);
      } else {
        ElMessage.error(response.msg);
      }
    }
  } catch (error) {
    console.error('发生错误:', error);
  }
};
// 历史任务
const iframeUrl = ref('');
const handlehistorical = (row) => {
  blindbd.value = true;
  iframeUrl.value = `${window.location.origin}/#/Returns/upreturnhistory`;
};
function getStatusType2(filmRemove) {
  switch (filmRemove) {
    case 0:
      return 'success';
    case 1:
      return 'info';
    case 2:
      return 'warning';
  }
}
function getStatusText2(filmRemove) {
  switch (filmRemove) {
    case 0:
      return t('Mounting.noremoval');//完成
    case 1:
      return t('Mounting.coarselyground');//新建
    case 2:
      return t('Mounting.finegrinding');//执行中
  }
}
// 输入框限制
const handleInput = (row) => {
  const inputValue = parseInt(row.filmRemove);
  const maxValue = row.remainQuantity;
  if (inputValue > maxValue) {
    row.filmRemove = maxValue;
  }
};
// 架子数据对比
const tableRowClassName = ({
  row,
}: {
  row: any;
  rowIndex: number
}) => {
  // 直接获取第一条数据,然后判断状态
  const firstData = tableData.value[0];
  // 如果第一条数据存在且状态不是100,进行比对
  if (firstData && firstData.state !== 100 && row && row.patternWidth) {
    const isMatch =
      row.patternWidth === firstData.width &&
      row.patternHeight === firstData.height &&
      row.patternThickness === firstData.thickness &&
      row.filmsId === firstData.filmsId;
    return !isMatch ? 'danger-row' : '';
  }
  return '';
}
// 删除任务
const deleteWarehousing = async (row: any) => {
  try {
    // 确认提示
    await ElMessageBox.confirm(
      t('basicData.deletemessage'),
      t('sorter.prompt'),
      {
        confirmButtonText: t('basicData.confirm'),
        cancelButtonText: t('basicData.cancel'),
        type: 'warning',
      }
    );
    // 转换为整数
    const id = Number(row.id);
    const response = await request.post('/loadGlass/up-patten-usage/deleteTask?id=' + id);
    if (response.code === 200) {
      ElMessage.success(response.message);
    } else {
      ElMessage.error(response.message);
    }
  } catch (error) {
    console.error(error);
    // 如果是用户取消操作,不显示错误提示
    if (error !== 'cancel') {
      ElMessage.error('删除失败');
    }
  }
};
</script>
<template>
  <div style="height: 500px;">
    <div>
      <div id="dotClass">
        <!-- <div>{{ $t('basicData.laserprinting') }}</div>
        <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')
        }}
        </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>
        <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;">{{
          $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 style="margin-top: 5px;margin-left: 20px;" type="primary" @click="dialogFormVisiblea = true">{{
        $t('basicData.startloading') }}</el-button>
      <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
        <el-table ref="table" style="margin-top: 20px;height: 700px;" :data="tableDatab"
          :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
          <el-table-column prop="deviceId" fixed align="center" :label="$t('film.station')" min-width="80" />
          <el-table-column prop="slot" fixed align="center" :label="$t('film.slot')" min-width="80" />
          <el-table-column prop="patternWidth" align="center" :label="$t('film.width')" min-width="80" />
          <el-table-column prop="patternHeight" align="center" :label="$t('film.height')" min-width="80" />
          <el-table-column prop="patternThickness" align="center" :label="$t('film.thickness')" min-width="80" />
          <el-table-column prop="filmsId" align="center" :label="$t('film.films')" min-width="80" />
          <el-table-column prop="remainQuantity" align="center" :label="$t('film.remainquantity')" min-width="120" />
          <el-table-column align="center" :label="$t('film.enablestate')" min-width="80" prop="state">
            <template #default="scope">
              <el-tag :type="scope.row.state == 1 ? 'success' : 'danger'" @click="toggleEnableState(scope.row)">
                {{ scope.row.state == 1 ? $t('film.start') : $t('film.disable') }}
              </el-tag>
            </template>
          </el-table-column>
          <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270">
            <template #default="scope">
              <el-input v-model="inputQuantities[scope.row.slot]" type="number" min="0" @input="handleInput(scope.row)"
                :placeholder="$t('basicData.selectquantity')" :disabled="scope.row.slot > 100" style="width: 120px; margin-right: 10px;">
              </el-input>
              <el-button type="text" :disabled="scope.row.slot > 100" @click="handleBind(scope.row)">
                {{ $t('basicData.startloading') }} </el-button>
            </template>
          </el-table-column>
        </el-table>
      </el-dialog>
      <!--暂停-->
      <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton"
        type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</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.twoloadingline')"
        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="120" align="center" />
            <el-table-column prop="width" :label="$t('film.width')" width="200" align="center" />
            <el-table-column prop="height" :label="$t('film.height')" align="center" />
            <el-table-column prop="thickness" :label="$t('film.thickness')" align="center" />
            <el-table-column prop="filmsId" :label="$t('film.films')" 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-column align="center" :label="$t('film.operate')" min-width="80" prop="state">
              <template #default="scope">
                <el-button type="text" plain @click="deleteWarehousing(scope.row)">{{
                  $t('film.delete') }}</el-button>
              </template>
            </el-table-column>
          </el-table>
        </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' }" :row-class-name="tableRowClassName">
              <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="65" />
              <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="75" />
              <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="75" />
              <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" width="100">
                <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>
      <!-- 历史任务 -->
      <el-dialog v-model="blindbd" top="5vh" width="95%" @close="iframeUrl = ''">
        <iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="750px"
          frameborder="0"></iframe>
      </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 type="danger" @click="deleteTask()">{{ $t('searchOrder.deleteTask') }}</el-button>
            <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>
  </div>
</template>
<style scoped>
:deep(.el-table .danger-row) {
  background-color: var(--el-color-danger-light-9);
}
.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 {
  text-align: center;
  margin-top: -15px;
}
#dotClass {
  display: flex;
  margin-left: 20px;
  size: 50px;
  margin-top: 20px;
  margin-bottom: 10px;
}
</style>