中空模块新增多个功能及页面样式更改,卧式缓存样式及接口更改新增,上片模块新增获取工程号方式区分
11个文件已修改
1780 ■■■■■ 已修改文件
UI-Project/src/lang/en.js 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/py.js 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/zh.js 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Caching/cachingbefore.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Caching/cachingun.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Returns/upreturns.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Returns/upreturns2.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Slicecage/slicecage.vue 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowequipment.vue 956 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowequipmenttwo.vue 463 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowslicecage.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/en.js
@@ -127,6 +127,8 @@
          takeon:'The arrangement is complete',
      },
      searchOrder:{
          partask:'任务重置',
          partasks:'是否任务重置?',
          empty:'默认空任务',
          historicaltasks:'历史任务',
          cagedetails:'笼内详情',
@@ -669,14 +671,78 @@
          removalmethodp: '除膜方式',
          removalmethoda: '除膜方式:',
          noremoval: '不除膜',
          removal: '除膜',
          coarselyground: '粗磨',
          finegrinding: '精磨',
      },
      hellow: {
          casFour: '气体4',
          casFourb: '气体4:',
          casFoura: '请选择气体4',
          casOne: '气体1',
          casOneb: '气体1:',
          casOnea: '请选择气体1',
          casThree: '气体3',
          casThreeb: '气体3:',
          casThreea: '请选择气体3',
          casTwo: '气体2',
          casTwob: '气体2:',
          casTwoa: '请选择气体2',
          Y: '有',
          F: '无',
          frameFour: '间隔板4',
          frameFourb: '间隔板4:',
          frameFoura: '请输入间隔板4',
          frameOne: '间隔板1',
          frameOneb: '间隔板1:',
          frameOnea: '请输入间隔板1',
          frameThree: '间隔板3',
          frameThreeb: '间隔板3:',
          frameThreea: '请输入间隔板3',
          frameTwo: '间隔板2',
          frameTwob: '间隔板2:',
          frameTwoa: '请输入间隔板2',
          intervalFrameHeight: '间隔框高度',
          intervalFrameHeighta: '请输入间隔框高度',
          intervalFrameHeightb: '间隔框高度:',
          intervalFrameType: '间隔框类型',
          intervalFrameTypec: '请选择间隔框类型',
          intervalFrameTyped: '间隔框类型:',
          intervalFrameTypea: 'tps胶',
          intervalFrameTypeb: '铝间隔条',
          intervalFrameWidth: '间隔框宽度',
          intervalFrameWidtha: '请输入间隔框宽度',
          intervalFrameWidthb: '间隔框宽度:',
          sealInsert: '密封嵌入',
          sealInsertb: '密封嵌入:',
          sealInserta: '请输入密封嵌入',
          hollowformula: '中空配方',
          hollowformuldet: '是否删除该中空配方?',
          hollowtaskdet: '是否删除该任务?',
          taskdet: '删除任务',
          edithollowformula: '修改中空配方',
          phollowformula: '请选择中空配方',
          hollowformulp: '中空配方:',
          bottomRemove: '下侧除膜量:',
          bottomRemovep: '下侧除膜量',
          bottomRemovea: '请输入下侧除膜量',
          topRemove: '上侧除膜量:',
          topRemovep: '上侧除膜量',
          topRemovea: '请输入上侧除膜量',
          leftRemove: '左侧除膜量:',
          leftRemovep: '左侧除膜量',
          leftRemovea: '请输入左侧除膜量',
          rightRemove: '右侧除膜量:',
          rightRemovep: '右侧除膜量',
          rightRemovea: '请输入右侧除膜量',
          formulaNamep: '配方名',
          formulaName: '配方名:',
          formulaNamea: '请输入配方名',
          stopproject: '暂停任务',
          pstopproject: '是否暂停任务?',
          reviewproject: '预览工程',
          line: '线路',
          linea: '线路:',
          line1: '线路一',
          line2: '线路二',
          line3: '线路三',
@@ -690,19 +756,20 @@
          linenumber: '进入中空线数量:',
          order: '出片顺序',
          flowCardId: '流程卡',
          thickness: 'Thickness',
          coatingtypes: 'Coating types',
          thickness: '厚度',
          coatingtypes: '膜系',
          layer: '层数',
          height: '长',
          width: 'Width',
          state: 'Status',
          cardnumber: 'Process card number',
          cardnumbera: 'Process card number:',
          width: '宽',
          state: '状态',
          cardnumber: '流程卡号',
          cardnumbera: '流程卡号:',
          layernumber: '层号',
          totalnumber: '总片数',
          pairsnumber: '已配对数量',
          missingnumber: '缺片数量',
          operate: 'Operate',
          damagenumber: '破损数量',
          operate: '操作',
          claimquest: '领取任务',
          pclaimquest: '是否领取任务?',
          missingfilms: '缺片详情',
UI-Project/src/lang/py.js
@@ -127,7 +127,9 @@
        takeaway: 'Взять вручную',
    },
    searchOrder: {
        partasks:'是否任务重置?',
        empty:'默认空任务',
        partask:'任务重置',
        historicaltasks:'历史任务',
        cagedetails:'笼内详情',
        inkageEntity:'进片联机状态:',
@@ -669,14 +671,78 @@
        removalmethodp: '除膜方式',
        removalmethoda: '除膜方式:',
        noremoval: '不除膜',
        removal: '除膜',
        coarselyground: '粗磨',
        finegrinding: '精磨',
    },
  hellow: {
        casFour: '气体4',
        casFourb: '气体4:',
        casFoura: '请选择气体4',
        casOne: '气体1',
        casOneb: '气体1:',
        casOnea: '请选择气体1',
        casThree: '气体3',
        casThreeb: '气体3:',
        casThreea: '请选择气体3',
        casTwo: '气体2',
        casTwob: '气体2:',
        casTwoa: '请选择气体2',
        Y: '有',
        F: '无',
        frameFour: '间隔板4',
        frameFourb: '间隔板4:',
        frameFoura: '请输入间隔板4',
        frameOne: '间隔板1',
        frameOneb: '间隔板1:',
        frameOnea: '请输入间隔板1',
        frameThree: '间隔板3',
        frameThreeb: '间隔板3:',
        frameThreea: '请输入间隔板3',
        frameTwo: '间隔板2',
        frameTwob: '间隔板2:',
        frameTwoa: '请输入间隔板2',
        intervalFrameHeight: '间隔框高度',
        intervalFrameHeighta: '请输入间隔框高度',
        intervalFrameHeightb: '间隔框高度:',
        intervalFrameType: '间隔框类型',
        intervalFrameTypec: '请选择间隔框类型',
        intervalFrameTyped: '间隔框类型:',
        intervalFrameTypea: 'tps胶',
        intervalFrameTypeb: '铝间隔条',
        intervalFrameWidth: '间隔框宽度',
        intervalFrameWidtha: '请输入间隔框宽度',
        intervalFrameWidthb: '间隔框宽度:',
        sealInsert: '密封嵌入',
        sealInsertb: '密封嵌入:',
        sealInserta: '请输入密封嵌入',
        hollowformula: '中空配方',
        hollowformuldet: '是否删除该中空配方?',
        hollowtaskdet: '是否删除该任务?',
        taskdet: '删除任务',
        edithollowformula: '修改中空配方',
        phollowformula: '请选择中空配方',
        hollowformulp: '中空配方:',
        bottomRemove: '下侧除膜量:',
        bottomRemovep: '下侧除膜量',
        bottomRemovea: '请输入下侧除膜量',
        topRemove: '上侧除膜量:',
        topRemovep: '上侧除膜量',
        topRemovea: '请输入上侧除膜量',
        leftRemove: '左侧除膜量:',
        leftRemovep: '左侧除膜量',
        leftRemovea: '请输入左侧除膜量',
        rightRemove: '右侧除膜量:',
        rightRemovep: '右侧除膜量',
        rightRemovea: '请输入右侧除膜量',
        formulaNamep: '配方名',
        formulaName: '配方名:',
        formulaNamea: '请输入配方名',
      stopproject: '暂停任务',
      pstopproject: '是否暂停任务?',
      reviewproject: '预览工程',
      line: '线路',
        linea: '线路:',
      line1: '线路一',
      line2: '线路二',
      line3: '线路三',
@@ -690,19 +756,20 @@
      linenumber: '进入中空线数量:',
      order: '出片顺序',
      flowCardId: '流程卡',
      thickness: 'Толщина',
      coatingtypes: 'Типы покрытий',
        thickness: '厚度',
        coatingtypes: '膜系',
      layer: '层数',
      height: '长',
      width: 'Ширина',
      state: 'Состояние',
      cardnumber: 'Номер карточки процесса',
      cardnumbera: 'Номер карточки процесса:',
        width: '宽',
        state: '状态',
        cardnumber: '流程卡号',
        cardnumbera: '流程卡号:',
      layernumber: '层号',
      totalnumber: '总片数',
      pairsnumber: '已配对数量',
      missingnumber: '缺片数量',
      operate: 'Операция',
        damagenumber: '破损数量',
        operate: '操作',
      claimquest: '领取任务',
      pclaimquest: '是否领取任务?',
      missingfilms: '缺片详情',
UI-Project/src/lang/zh.js
@@ -127,6 +127,8 @@
          takeon:'摆片完成',
      },
      searchOrder:{
          partask:'任务重置',
          partasks:'是否任务重置?',
          empty:'默认空任务',
          historicaltasks:'历史任务',
          cagedetails:'笼内详情',
@@ -669,14 +671,78 @@
          removalmethodp: '除膜方式',
          removalmethoda: '除膜方式:',
          noremoval: '不除膜',
          removal: '除膜',
          coarselyground: '粗磨',
          finegrinding: '精磨',
      },
    hellow: {
        casFour: '气体4',
        casFourb: '气体4:',
        casFoura: '请选择气体4',
        casOne: '气体1',
        casOneb: '气体1:',
        casOnea: '请选择气体1',
        casThree: '气体3',
        casThreeb: '气体3:',
        casThreea: '请选择气体3',
        casTwo: '气体2',
        casTwob: '气体2:',
        casTwoa: '请选择气体2',
        Y: '有',
        F: '无',
        frameFour: '间隔板4',
        frameFourb: '间隔板4:',
        frameFoura: '请输入间隔板4',
        frameOne: '间隔板1',
        frameOneb: '间隔板1:',
        frameOnea: '请输入间隔板1',
        frameThree: '间隔板3',
        frameThreeb: '间隔板3:',
        frameThreea: '请输入间隔板3',
        frameTwo: '间隔板2',
        frameTwob: '间隔板2:',
        frameTwoa: '请输入间隔板2',
        intervalFrameHeight: '间隔框高度',
        intervalFrameHeighta: '请输入间隔框高度',
        intervalFrameHeightb: '间隔框高度:',
        intervalFrameType: '间隔框类型',
        intervalFrameTypec: '请选择间隔框类型',
        intervalFrameTyped: '间隔框类型:',
        intervalFrameTypea: 'tps胶',
        intervalFrameTypeb: '铝间隔条',
        intervalFrameWidth: '间隔框宽度',
        intervalFrameWidtha: '请输入间隔框宽度',
        intervalFrameWidthb: '间隔框宽度:',
        sealInsert: '密封嵌入',
        sealInsertb: '密封嵌入:',
        sealInserta: '请输入密封嵌入',
        hollowformula: '中空配方',
        hollowformuldet: '是否删除该中空配方?',
        hollowtaskdet: '是否删除该任务?',
        taskdet: '删除任务',
        edithollowformula: '修改中空配方',
        phollowformula: '请选择中空配方',
        hollowformulp: '中空配方:',
        bottomRemove: '下侧除膜量:',
        bottomRemovep: '下侧除膜量',
        bottomRemovea: '请输入下侧除膜量',
        topRemove: '上侧除膜量:',
        topRemovep: '上侧除膜量',
        topRemovea: '请输入上侧除膜量',
        leftRemove: '左侧除膜量:',
        leftRemovep: '左侧除膜量',
        leftRemovea: '请输入左侧除膜量',
        rightRemove: '右侧除膜量:',
        rightRemovep: '右侧除膜量',
        rightRemovea: '请输入右侧除膜量',
        formulaNamep: '配方名',
        formulaName: '配方名:',
        formulaNamea: '请输入配方名',
        stopproject: '暂停任务',
        pstopproject: '是否暂停任务?',
        reviewproject: '预览工程',
        line: '线路',
        linea: '线路:',
        line1: '线路一',
        line2: '线路二',
        line3: '线路三',
UI-Project/src/views/Caching/cachingbefore.vue
@@ -145,6 +145,31 @@
    console.error('发生错误:', error);  
  }  
}; 
// 任务重置
const handleptask = async() => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('workOrder.partasks'),
      t('workOrder.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
        cancelButtonText: t('workOrder.cancel'),
        type: 'warning',
      }
    );
 if (confirmResult === 'confirm') {
  var url="/cacheGlass/edgStorageDeviceTask/resetTask?deviceId="+ 1;
      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 handledelete = async(row) => {  
  try {
@@ -353,6 +378,11 @@
          </el-table-column>
          <el-table-column prop="formattedCreateTime" align="center" :label="$t('film.createtime')" min-width="120" />
          <el-table-column prop="formattedupdateTime" align="center" :label="$t('sorter.updateTime')" min-width="120" />
          <el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="150">
        <template #default="scope">
          <el-button size="mini" type="text" plain @click="handleptask()">{{ $t('searchOrder.partask') }}</el-button>
        </template>
      </el-table-column>
        </el-table>
      </div>
    </el-card>
UI-Project/src/views/Caching/cachingun.vue
@@ -144,6 +144,31 @@
    console.error('发生错误:', error);  
  }  
}; 
// 任务重置
const handleptask = async() => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('workOrder.partasks'),
      t('workOrder.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
        cancelButtonText: t('workOrder.cancel'),
        type: 'warning',
      }
    );
 if (confirmResult === 'confirm') {
  var url="/cacheGlass/edgStorageDeviceTask/resetTask?deviceId="+ 1;
      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 handledelete = async(row) => {  
  try {
@@ -352,6 +377,11 @@
          </el-table-column>
          <el-table-column prop="formattedCreateTime" align="center" :label="$t('film.createtime')" min-width="120" />
          <el-table-column prop="formattedupdateTime" align="center" :label="$t('sorter.updateTime')" min-width="120" />
          <el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="150">
        <template #default="scope">
          <el-button size="mini" type="text" plain @click="handleptask()">{{ $t('searchOrder.partask') }}</el-button>
        </template>
      </el-table-column>
        </el-table>
      </div>
    </el-card>
UI-Project/src/views/Returns/upreturns.vue
@@ -60,6 +60,7 @@
    if (response.code === 200) {
      tableData.splice(0, tableData.length, ...response.data);
      ElMessage.error(response.message);
     window.localStorage.setItem('engineeringId', tableData[0].engineeringId)
    }
  } catch (error) {
  }
@@ -78,6 +79,7 @@
  canSelectProjecta.value = true;
  canSelectProjectb.value = true;
  canSelectProjectc.value = false;
  tableData.value = '';
}
};
onBeforeUnmount(() => {
@@ -113,7 +115,7 @@
      engineerId: selectedProjectNo.value,
      filmRemove: parseInt(filmRemove.value, 10),
    })
    window.localStorage.setItem('engineeringId', selectedProjectNo.value)
    window.localStorage.setItem('engineeringIda', selectedProjectNo.value)
    window.localStorage.setItem('filmRemove', filmRemove.value)
    if (response.code == 200) {
      ElMessage.success(response.message);
@@ -165,13 +167,13 @@
// 开始上片
const handleon = async () => {
  let filmRemove = window.localStorage.getItem('filmRemove')
  let engineeringId = window.localStorage.getItem('engineeringId')
  let engineeringIda = window.localStorage.getItem('engineeringIda')
  if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
    try {
      const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
        stationCell: 5,
        filmRemove: filmRemove,
        engineerId: engineeringId,
        engineerId: engineeringIda,
        state: 1,
      })
      if (response.code == 200) {
UI-Project/src/views/Returns/upreturns2.vue
@@ -60,6 +60,7 @@
    if (response.code === 200) {
      tableData.splice(0, tableData.length, ...response.data);
      ElMessage.error(response.message);
      window.localStorage.setItem('engineeringId', tableData[0].engineeringId)
    }
  } catch (error) {
  }
@@ -75,6 +76,7 @@
  canSelectProjectc.value = true;
}
else {
  tableData.value = '';
  canSelectProjecta.value = true;
  canSelectProjectb.value = true;
  canSelectProjectc.value = false;
@@ -113,7 +115,7 @@
      engineerId: selectedProjectNo.value,
      filmRemove: parseInt(filmRemove.value, 10),
    })
    window.localStorage.setItem('engineeringId', selectedProjectNo.value)
    window.localStorage.setItem('engineeringIda', selectedProjectNo.value)
    window.localStorage.setItem('filmRemove', filmRemove.value)
    if (response.code == 200) {
      ElMessage.success(response.message);
@@ -165,13 +167,13 @@
// 开始上片
const handleon = async () => {
  let filmRemove = window.localStorage.getItem('filmRemove')
  let engineeringId = window.localStorage.getItem('engineeringId')
  let engineeringIda = window.localStorage.getItem('engineeringIda')
  if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
    try {
      const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
        stationCell: 6,
        filmRemove: filmRemove,
        engineerId: engineeringId,
        engineerId: engineeringIda,
        state: 1,
      })
      if (response.code == 200) {
UI-Project/src/views/Slicecage/slicecage.vue
UI-Project/src/views/hollow/hollowequipment.vue
@@ -2,16 +2,27 @@
  <div style="height: 600px;">
    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" v-loading="loading">
      <div style="display: flex; flex-direction: row; align-items: center; margin-bottom: 10px;">
        <el-button id="searchButton" type="success" @click="handlezhiban">
        <el-button id="searchButton" type="primary" @click="handleormulan">
          {{ $t('hellow.hollowformula') }}
        </el-button>
        <el-button id="searchButton" type="primary" @click="handlezhiban">
          {{ $t('hellow.createtask') }}
        </el-button>
        <el-button type="success" @click="selectproject">
          {{ $t('basicData.selectproject') }}
        <el-button type="primary" @click="selectproject">
          {{ $t('hellow.reviewproject') }}
        </el-button>
    <el-button style="margin-left: 10px;" id="searchButton" type="success" @click="handleBinda">
          {{ $t('hellow.starttask') }}
        </el-button>
        <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBindb">{{
        <el-button style="margin-left: 10px;" id="searchButton" type="info" @click="handleBindd">{{
            $t('hellow.taskdet')
          }}
        </el-button>
        <el-button style="margin-left: 10px;" id="searchButton" type="warning" @click="handleBindc">{{
            $t('hellow.stopproject')
          }}
        </el-button>
        <el-button style="margin-left: 10px;" id="searchButton" type="danger" @click="handleBindb">{{
            $t('hellow.stoptask')
          }}
        </el-button>
@@ -21,21 +32,21 @@
        <el-form>
          <el-row>
            <el-col :span="4">
              <div id="dt" style="font-size: 15px;">
              <div  style="font-size: 15px;">
                <el-form-item :label="$t('hellow.currenttask')" style="width: 14vw">
                  {{ temperingtotal }}
                </el-form-item>
              </div>
            </el-col>
            <el-col :span="5">
              <div id="dta" style="font-size: 15px;">
              <div style="font-size: 15px;">
                <el-form-item :label="$t('hellow.claimednumber')" style="width: 14vw">
                  {{ glasstotal }}
                </el-form-item>
              </div>
            </el-col>
            <el-col :span="4">
              <div id="dt" style="font-size: 15px;">
              <div style="font-size: 15px;">
                <el-form-item :label="$t('hellow.linenumber')" style="width: 14vw">
                  {{ fulltotals }}
                </el-form-item>
@@ -60,7 +71,7 @@
            </template>
          </el-table-column>
        </el-table>
      <div style="display: flex;margin-left: 40%;margin-top: 10px;">
      <!-- <div style="display: flex;margin-left: 40%;margin-top: 10px;">
      <div style="margin-top: 5px;margin-right: 5px;">{{ $t('hellow.line') }}</div>
    <el-pagination
          background
@@ -70,12 +81,18 @@
          :current-page.sync="currentPage"
          @current-change="handlePageChange1"
        />
      </div>
      </div> -->
  </div>
    </el-card>
  </div>
  <!-- 创建任务 -->
  <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
    <div style="display: flex;">
    <el-input v-model="flowCardId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.incardnumber')" />
    <el-input v-model="filmsId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('film.infilms')"/>
    <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchFlowCardsearch">
      {{$t('reportmanage.inquire')}}</el-button>
  </div>
  <el-table
    ref="table"
    style="margin-top: 20px; height: 700px;"
@@ -83,7 +100,6 @@
    :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
    row-key="projectNumber"
  >
    <!-- <el-table-column type="expand"> -->
    <el-table-column>
    <template #default="props">
      <el-table :data="props.row.records" style="width: 100%">
@@ -113,6 +129,386 @@
      </el-table-column>
  </el-table>
</el-dialog>
<!-- 中空配方添加 -->
<el-dialog v-model="add" top="13vh" width="55%" :title="$t('hellow.hollowformula')" >
    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
     <el-form  size="mini" label-width="150px">
      <el-form label-width="150px" label-position="right">
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('Mounting.removalmethoda')" :required="true" style="width: 16vw;">
            <el-select v-model="filmRemove" clearable  style="width: 220px" :placeholder="$t('Mounting.removalmethod')">
        <el-option :label="$t('Mounting.removal')" value="1"></el-option>
        <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
      </el-select>
              </el-form-item>
            </div>
              </div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.topRemove')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" />
           </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.rightRemove')" :required="true" style="width: 16vw;">
            <el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" />
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.casOneb')" :required="true" style="width: 16vw;">
            <el-select v-model="casOne" clearable :placeholder="$t('hellow.casOnea')" style="width: 220px">
              <el-option :label="$t('hellow.F')" value="0"></el-option>
              <el-option :label="$t('hellow.Y')" value="1"></el-option>
            </el-select>
           </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.casTwob')" :required="true" style="width: 16vw;">
            <el-select v-model="casTwo" clearable :placeholder="$t('hellow.casTwoa')" style="width: 220px">
              <el-option :label="$t('hellow.F')" value="0"></el-option>
              <el-option :label="$t('hellow.Y')" value="1"></el-option>
            </el-select>
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.casThreeb')" :required="true" style="width: 16vw;">
            <el-select v-model="casThree" clearable :placeholder="$t('hellow.casThreea')" style="width: 220px">
              <el-option :label="$t('hellow.F')" value="0"></el-option>
              <el-option :label="$t('hellow.Y')" value="1"></el-option>
            </el-select>
           </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.casFourb')" :required="true" style="width: 16vw;">
            <el-select v-model="casFour" clearable :placeholder="$t('hellow.casFoura')" style="width: 220px">
              <el-option :label="$t('hellow.F')" value="0"></el-option>
              <el-option :label="$t('hellow.Y')" value="1"></el-option>
            </el-select>
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.frameOneb')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.frameOnea')" v-model="frameOne" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.frameTwob')" :required="true" style="width: 16vw;">
            <el-input :placeholder="$t('hellow.frameTwoa')" v-model="frameTwo" autocomplete="off" />
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.frameThreeb')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.frameThreea')" v-model="frameThree" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.frameFourb')" :required="true" style="width: 16vw;">
            <el-input :placeholder="$t('hellow.frameFoura')" v-model="frameFour" autocomplete="off" />
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.intervalFrameHeightb')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.intervalFrameHeightb')" v-model="intervalFrameHeight" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.intervalFrameWidthb')" :required="true" style="width: 16vw;">
            <el-input :placeholder="$t('hellow.intervalFrameWidtha')" v-model="intervalFrameWidth" autocomplete="off" />
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item :label="$t('hellow.sealInsertb')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.sealInserta')" v-model="sealInsert" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.intervalFrameTyped')" :required="true" style="width: 16vw;">
            <el-select v-model="intervalFrameType" clearable  style="width: 220px" :placeholder="$t('hellow.intervalFrameTypec')">
        <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
        <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
      </el-select>
              </el-form-item>
            </div>
              </div>
          </el-col>
        </el-row>
        </el-form>
            </el-form>
          </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleConfirm">
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
<!-- 中空配方修改 -->
<el-dialog v-model="adda" top="13vh" width="55%" :title="$t('hellow.edithollowformula')" >
    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
     <el-form  size="mini" label-width="150px">
      <el-form label-width="150px" label-position="right">
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('Mounting.removalmethoda')" :required="true" style="width: 16vw;">
            <el-select v-model="filmRemove" clearable  style="width: 220px" :placeholder="$t('Mounting.removalmethod')">
        <el-option :label="$t('Mounting.removal')" value="1"></el-option>
        <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
      </el-select>
              </el-form-item>
            </div>
              </div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.topRemove')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" />
           </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.rightRemove')" :required="true" style="width: 16vw;">
            <el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" />
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.casOneb')" :required="true" style="width: 16vw;">
            <el-select v-model="casOne" clearable :placeholder="$t('hellow.casOnea')" style="width: 220px">
              <el-option :label="$t('hellow.F')" value="0"></el-option>
              <el-option :label="$t('hellow.Y')" value="1"></el-option>
            </el-select>
           </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.casTwob')" :required="true" style="width: 16vw;">
            <el-select v-model="casTwo" clearable :placeholder="$t('hellow.casTwoa')" style="width: 220px">
              <el-option :label="$t('hellow.F')" value="0"></el-option>
              <el-option :label="$t('hellow.Y')" value="1"></el-option>
            </el-select>
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.casThreeb')" :required="true" style="width: 16vw;">
            <el-select v-model="casThree" clearable :placeholder="$t('hellow.casThreea')" style="width: 220px">
              <el-option :label="$t('hellow.F')" value="0"></el-option>
              <el-option :label="$t('hellow.Y')" value="1"></el-option>
            </el-select>
           </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.casFourb')" :required="true" style="width: 16vw;">
            <el-select v-model="casFour" clearable :placeholder="$t('hellow.casFoura')" style="width: 220px">
              <el-option :label="$t('hellow.F')" value="0"></el-option>
              <el-option :label="$t('hellow.Y')" value="1"></el-option>
            </el-select>
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.frameOneb')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.frameOnea')" v-model="frameOne" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.frameTwob')" :required="true" style="width: 16vw;">
            <el-input :placeholder="$t('hellow.frameTwoa')" v-model="frameTwo" autocomplete="off" />
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.frameThreeb')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.frameThreea')" v-model="frameThree" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.frameFourb')" :required="true" style="width: 16vw;">
            <el-input :placeholder="$t('hellow.frameFoura')" v-model="frameFour" autocomplete="off" />
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.intervalFrameHeightb')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.intervalFrameHeightb')" v-model="intervalFrameHeight" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.intervalFrameWidthb')" :required="true" style="width: 16vw;">
            <el-input :placeholder="$t('hellow.intervalFrameWidtha')" v-model="intervalFrameWidth" autocomplete="off" />
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item :label="$t('hellow.sealInsertb')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.sealInserta')" v-model="sealInsert" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.intervalFrameTyped')" :required="true" style="width: 16vw;">
            <el-select v-model="intervalFrameType" clearable  style="width: 220px" :placeholder="$t('hellow.intervalFrameTypec')">
        <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option>
        <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option>
      </el-select>
              </el-form-item>
            </div>
              </div>
          </el-col>
        </el-row>
        </el-form>
            </el-form>
          </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handledit">
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="adda = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
  <!-- 领取任务 -->
  <el-dialog v-model="dialogFormVisiblec" top="21vh" width="40%" :title="$t('hellow.claimquest')">
    <div style="margin-left: 20px;margin-top: 10px;margin-bottom: 10px;">
@@ -123,7 +519,8 @@
          </el-form-item>
          <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
            <el-select 
            :placeholder="$t('hellow.croute')"
            :placeholder="$t('hellow.line1')"
            disabled
             style="width: 270px"  
             v-model="cell">
               <el-option
@@ -131,6 +528,23 @@
                :key="item.value"
                :label="item.label"
                :value="item.value"
              />
          </el-select>
          </el-form-item>
          <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;">
        <el-select
            v-model="selectedFormulaName"
            filterable
            clearable
            :placeholder="$t('hellow.phollowformula')"
            style="width: 270px"
            @change="handleFormulaChange"
        >
          <el-option
              v-for="item in titleformulaName"
              :key="item.id"
              :label="item.formulaName"
              :value="item.formulaName"
              />
          </el-select>
          </el-form-item>
@@ -156,7 +570,8 @@
          </el-form-item>
          <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
            <el-select 
            :placeholder="$t('hellow.croute')"
            :placeholder="$t('hellow.line1')"
            disabled
             style="width: 270px"  
             v-model="cella">
               <el-option
@@ -164,6 +579,23 @@
                :key="item.value"
                :label="item.label"
                :value="item.value"
              />
          </el-select>
          </el-form-item>
          <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;">
        <el-select
            v-model="selectedFormulaName"
            filterable
            clearable
            :placeholder="$t('hellow.phollowformula')"
            style="width: 270px"
            @change="handleFormulaChange"
        >
          <el-option
              v-for="item in titleformulaName"
              :key="item.id"
              :label="item.formulaName"
              :value="item.formulaName"
              />
          </el-select>
          </el-form-item>
@@ -225,15 +657,37 @@
  <el-dialog v-model="blindb" top="30vh" width="25%" :title="$t('hellow.pstoptask')">
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handlea">
        <el-button type="primary" @click="handleb">
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="blindb = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
  <!-- 暂停任务 -->
  <el-dialog v-model="blindc" top="30vh" width="25%" :title="$t('hellow.pstopproject')">
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handlec">
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="blindc = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
  <!-- 删除任务 -->
  <el-dialog v-model="blindd" top="30vh" width="25%" :title="$t('hellow.hollowtaskdet')">
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handled">
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="blindd = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
  <!-- 预览 -->
  <el-dialog v-model="dialogFormVisiblee" top="24vh" width="30%" :title="$t('basicData.project')" >
  <el-dialog v-model="dialogFormVisiblee" top="24vh" width="25%" :title="$t('hellow.reviewproject')" >
    <div style="margin-left: 50px;margin-bottom: 10px;">
      <el-form-item :label="$t('basicData.projectnumber')" :required="true">
        <el-select
@@ -241,7 +695,7 @@
            filterable
            clearable
            :placeholder="$t('basicData.plselectproject')"
            style="width: 220px"
            style="width: 260px"
            @input="handleInputChange"
        >
          <el-option
@@ -262,9 +716,85 @@
      </div>
    </template>
  </el-dialog>
  <!-- 中空配方 -->
  <el-dialog v-model="mulan" top="15vh" width="80%" :title="$t('hellow.hollowformula')">
    <el-button id="searchButton" type="primary"  @click="add = true">
          {{ $t('basicData.add') }}
        </el-button>
      <el-table ref="table" style="margin-top: 20px;height: 400px;"
                :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
        <el-table-column prop="formulaName" fixed align="center" :label="$t('hellow.formulaNamep')" min-width="120"/>
        <el-table-column prop="filmRemove" align="center" :label="$t('Mounting.removalmethodp')"/>
        <el-table-column prop="casOne" align="center" :label="$t('hellow.casOne')">
          <template #default="scope">
          <el-tag
            :type="scope.row.casOne === 1 ? 'success' : 'danger'"
          >
          {{ scope.row.casOne === 1 ? $t('hellow.Y') : $t('hellow.F') }}
          </el-tag>
        </template>
        </el-table-column>
        <el-table-column prop="casTwo" align="center" :label="$t('hellow.casTwo')">
          <template #default="scope">
          <el-tag
            :type="scope.row.casTwo === 1 ? 'success' : 'danger'"
          >
          {{ scope.row.casTwo === 1 ? $t('hellow.Y') : $t('hellow.F') }}
          </el-tag>
        </template>
        </el-table-column>
        <el-table-column prop="casThree" align="center" :label="$t('hellow.casThree')">
          <template #default="scope">
          <el-tag
            :type="scope.row.casThree === 1 ? 'success' : 'danger'"
          >
          {{ scope.row.casThree === 1 ? $t('hellow.Y') : $t('hellow.F') }}
          </el-tag>
        </template>
        </el-table-column>
        <el-table-column prop="casFour" align="center" :label="$t('hellow.casFour')">
          <template #default="scope">
          <el-tag
            :type="scope.row.casFour === 1 ? 'success' : 'danger'"
          >
          {{ scope.row.casFour === 1 ? $t('hellow.Y') : $t('hellow.F') }}
          </el-tag>
        </template>
        </el-table-column>
        <el-table-column prop="frameOne" align="center" :label="$t('hellow.frameOne')"/>
        <el-table-column prop="frameTwo" align="center" :label="$t('hellow.frameTwo')"/>
        <el-table-column prop="frameThree" align="center" :label="$t('hellow.frameThree')"/>
        <el-table-column prop="frameFour" align="center" :label="$t('hellow.frameFour')"/>
        <el-table-column prop="intervalFrameHeight" align="center" :label="$t('hellow.intervalFrameHeight')" min-width="95"/>
        <el-table-column prop="intervalFrameType" align="center" :label="$t('hellow.intervalFrameType')" min-width="95">
          <template #default="scope">
         <el-tag :type="getStatusType(scope.row.intervalFrameType)">
          {{ getStatusText(scope.row.intervalFrameType) }}
        </el-tag>
      </template>
        </el-table-column>
        <el-table-column prop="intervalFrameWidth" align="center" :label="$t('hellow.intervalFrameWidth')" min-width="95"/>
        <el-table-column prop="sealInsert" align="center" :label="$t('hellow.sealInsert')"/>
        <el-table-column prop="topRemove" align="center" :label="$t('hellow.topRemovep')" min-width="95"> </el-table-column>
        <el-table-column prop="bottomRemove" align="center" :label="$t('hellow.bottomRemovep')" min-width="95"> </el-table-column>
        <el-table-column prop="leftRemove" align="center" :label="$t('hellow.leftRemovep')" min-width="95"> </el-table-column>
        <el-table-column prop="rightRemove" align="center" :label="$t('hellow.rightRemovep')" min-width="95"> </el-table-column>
        <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270">
            <template #default="scope">
              <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button>
              <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button>
            </template>
        </el-table-column>
        </el-table>
        <template #footer>
      <div id="dialog-footer">
        <el-button @click="mulan = false">{{ $t('large.close') }}</el-button>
      </div>
    </template>
</el-dialog>
</template>
<script setup>
import {ElMessage} from 'element-plus'
import { ElMessage, ElMessageBox } from 'element-plus'
import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive, watch, computed} from "vue";
import request from "@/utils/request"
import {host, WebSocketHost} from '@/utils/constants'
@@ -273,25 +803,53 @@
const {t} = useI18n()
const blinda = ref(false)
const blindb = ref(false)
const blindc = ref(false)
const blindd = ref(false)
const mulan = ref(false)
const tableDataa = ref([])
const tableDatab = ref([])
const tableDatac = ref([])
const allData = ref({})
const flowCard = ref('')
const tableDatax = ref([])
const cell = ref('')
const cella = ref('')
const selectedProjectNo = ref('');
const ganghua = ref(true)
const totalPairQuantity = ref('')
const totalPairQuantitya = ref('')
const bottomRemove = ref('')
const filmRemove = ref('')
const formulaName = ref('')
const leftRemove = ref('')
const rightRemove = ref('')
const topRemove = ref('')
const filmsId = ref('')
const flowCardId = ref('')
const  casFour = ref('')
const  casOne = ref('')
const  casThree = ref('')
const  casTwo = ref('')
const  frameFour = ref('')
const  frameOne = ref('')
const  frameThree = ref('')
const  frameTwo = ref('')
const  intervalFrameHeight = ref('')
const  intervalFrameType = ref('')
const  intervalFrameWidth = ref('')
const  sealInsert = ref('')
const dialogFormVisiblea = ref(false)
const dialogFormVisibleb = ref(false)
const dialogFormVisiblec = ref(false)
const dialogFormVisibled = ref(false)
const dialogFormVisiblee = ref(false)
const add = ref(false)
const adda = ref(false)
const currentPage2 = ref(1)
const currentRow = reactive({});
const formattedProcessType = ref([]);
const selectedFormulaName = ref('');
let selectedFormulaId = ref(null);
const formulaNameid = ref({ id: null });
const titleformulaName = ref({ formulaName: [] ,formulaId: []});
const titleSelectJson = ref({ processType: [] });
const options = [
  {
@@ -301,10 +859,6 @@
  {
    value: 931,
    label: t('hellow.line2'),
  },
  {
    value: 932,
    label: t('hellow.line3'),
  }
]
let socket = null;
@@ -325,14 +879,15 @@
};
const handleMessage = (data) => {
  try {
      tableDataa.value = data[930][0];
    const allPageData = data;
    const currentPageKeyValue = currentPageKey.value;
    const currentPageData = allPageData[currentPageKeyValue];
    if (currentPageData && Array.isArray(currentPageData) && currentPageData.length > 0) {
      tableDataa.value = currentPageData[0];
    } else {
      console.warn('No data for the current page key:', currentPageKeyValue);
    }
    // if (currentPageData && Array.isArray(currentPageData) && currentPageData.length > 0) {
    //   tableDataa.value = currentPageData[0];
    // } else {
    //   console.warn('No data for the current page key:', currentPageKeyValue);
    // }
  } catch (error) {
    console.error('Error parsing WebSocket message:', error);
  }
@@ -353,10 +908,73 @@
const handleBindb = (row) => {
  blindb.value = true;
};
// 暂停任务
const handleBindc = (row) => {
  blindc.value = true;
};
// 删除任务
const handleBindd = (row) => {
  blindd.value = true;
};
const removalMethodMap = {
  1: t('Mounting.removal'),
  0: t('Mounting.noremoval')
};
const removalcas = {
  1: t('hellow.Y'),
  0: t('hellow.F')
}
const removalinterval = {
  1: t('hellow.intervalFrameTypeb'),
  5: t('hellow.intervalFrameTypea')
}
// 处理编辑按钮点击
function handleEdit(row) {
    formulaName.value = row.formulaName;
    filmRemove.value = removalMethodMap[row.filmRemove];
    bottomRemove.value = row.bottomRemove;
    leftRemove.value = row.leftRemove;
    rightRemove.value = row.rightRemove;
    topRemove.value = row.topRemove;
    casFour.value = removalcas[row.casFour];
    casOne.value = removalcas[row.casOne];
    casThree.value = removalcas[row.casThree];
    casTwo.value = removalcas[row.casTwo];
    frameFour.value = row.frameFour;
    frameOne.value = row.frameOne;
    frameThree.value = row.frameThree;
    frameTwo.value = row.frameTwo;
    intervalFrameHeight.value = row.intervalFrameHeight;
    intervalFrameType.value = removalinterval[row.intervalFrameType];
    intervalFrameWidth.value = row.intervalFrameWidth;
    sealInsert.value = row.sealInsert;
    adda.value = true;
}
const handlezhiban = () => {
  dialogFormVisiblea.value = true;
  fetchFlowCardId();
};
const handleormulan = () => {
  mulan.value = true;
  fetchmulan();
};
function getStatusType(intervalFrameType) {
  switch (intervalFrameType) {
    case 1:
      return 'success';
    case 5:
      return 'warning';
  }
}
function getStatusText(intervalFrameType) {
  switch (intervalFrameType) {
    case 1:
      return t('hellow.intervalFrameTypeb');
    case 5:
      return t('hellow.intervalFrameTypea');
  }
}
// 预览
const selectproject = () => {
  dialogFormVisiblee.value = true;
@@ -374,16 +992,21 @@
const handletake = (row) => {
  window.localStorage.setItem('flowCardId', row.projectNumber)
  dialogFormVisiblec.value = true;
  fetchmulan()
};
// 强制出片
const handleout = (row) => {
  window.localStorage.setItem('flowCardId', row.projectNumber)
  dialogFormVisibled.value = true;
  fetchmulan()
};
// 创建任务
const fetchFlowCardId = async () => {
  try {
    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard');
    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{
      filmsId: '',
      flowCardId: '',
    });
    if (response.code == 200) {
      ElMessage.success(response.message);
      const newData = parseData(response.data);
@@ -395,10 +1018,176 @@
    ElMessage.error('Error fetching data');
  }
};
const fetchFlowCardsearch = async () => {
  try {
    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{
      filmsId: filmsId.value,
      flowCardId: flowCardId.value,
    });
    if (response.code == 200) {
      ElMessage.success(response.message);
      const newData = parseData(response.data);
      tableDatab.value = newData;
    } else {
      ElMessage.error('Failed to fetch data');
    }
  } catch (error) {
    ElMessage.error('Error fetching data');
  }
};
// 中空配方
const fetchmulan = async () => {
  try {
    var url="/hollowGlass/hollowFormulaDetails/listFormulaDetails?keyword="+'';
    const response = await request.post(url)
    if (response.code == 200) {
      ElMessage.success(response.message);
      tableDatax.value = response.data;
      titleformulaName.value = response.data.map(item => ({ formulaId: item.id, formulaName: item.formulaName }));
    } else {
      ElMessage.error('Failed to fetch data');
    }
  } catch (error) {
    ElMessage.error('Error fetching data');
  }
};
const handleFormulaChange = (value) => {
  const selectedItem = titleformulaName.value.find(item => item.formulaName === value);
  if (selectedItem) {
    formulaNameid.value = { id: selectedItem.formulaId };
    window.localStorage.setItem('id', formulaNameid.value.id)
  } else {
    formulaNameid.value = { id: null };
  }
};
// 中空配方添加
const handleConfirm = async () => {
  try {
    const response = await request.post('/hollowGlass/hollowFormulaDetails/saveFormulaDetails',{
      formulaName: formulaName.value,
      filmRemove: filmRemove.value,
      bottomRemove: bottomRemove.value,
      leftRemove: leftRemove.value,
      rightRemove: rightRemove.value,
      topRemove: topRemove.value,
      casFour: casFour.value,
      casOne: casOne.value,
      casThree: casThree.value,
      casTwo: casTwo.value,
      frameFour: frameFour.value,
      frameOne: frameOne.value,
      frameThree: frameThree.value,
      frameTwo: frameTwo.value,
      intervalFrameHeight: intervalFrameHeight.value,
      intervalFrameType: intervalFrameType.value,
      intervalFrameWidth: intervalFrameWidth.value,
      sealInsert: sealInsert.value,
    });
    if (response.code == 200) {
      ElMessage.success(response.message);
      tableDatax.value = response.data;
      add.value = false
      formulaName.value = '';
      filmRemove.value = '';
      bottomRemove.value = '';
      leftRemove.value = '';
      rightRemove.value = '';
      topRemove.value = '';
      casFour.value = '';
      casOne.value = '';
      casThree.value = '';
      casTwo.value = '';
      frameFour.value = '';
      frameOne.value = '';
      frameThree.value = '';
      frameTwo.value = '';
      intervalFrameHeight.value = '';
      intervalFrameType.value = '';
      intervalFrameWidth.value = '';
      sealInsert.value = '';
    } else {
      ElMessage.error('Failed to fetch data');
    }
  } catch (error) {
    ElMessage.error('Error fetching data');
  }
};
const removalMethodMapa = {
  [t('Mounting.removal')]: 1,
  [t('Mounting.noremoval')]: 0,
};
const removalcasa = {
  [t('hellow.Y')]: 1,
  [t('hellow.F')]: 0,
}
const removalintervala = {
  [t('hellow.intervalFrameTypeb')]: 1,
  [t('hellow.intervalFrameTypea')]: 5,
}
// 中空配方修改
const handledit = async () => {
  try {
    const response = await request.post('/hollowGlass/hollowFormulaDetails/updateFormulaDetails',{
      formulaName: formulaName.value,
      filmRemove: removalMethodMapa[filmRemove.value],
      bottomRemove: bottomRemove.value,
      leftRemove: leftRemove.value,
      rightRemove: rightRemove.value,
      topRemove: topRemove.value,
      casFour: removalcasa[casFour.value],
      casOne: removalcasa[casOne.value],
      casThree: removalcasa[casThree.value],
      casTwo: removalcasa[casTwo.value],
      frameFour: frameFour.value,
      frameOne: frameOne.value,
      frameThree: frameThree.value,
      frameTwo: frameTwo.value,
      intervalFrameHeight: intervalFrameHeight.value,
      intervalFrameType: removalintervala[intervalFrameType.value],
      intervalFrameWidth: intervalFrameWidth.value,
      sealInsert: sealInsert.value,
    });
    if (response.code == 200) {
      ElMessage.success(response.message);
      adda.value = false
      fetchmulan()
    } else {
      ElMessage.error('Failed to fetch data');
    }
  } catch (error) {
    ElMessage.error('Error fetching data');
  }
};
// 中空配方删除
 const opena = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('hellow.hollowformuldet'),
      t('productStock.prompt'),
      {
        confirmButtonText: t('productStock.yes'),
        cancelButtonText: t('productStock.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
    var url="/hollowGlass/hollowFormulaDetails/deleteFormulaDetails?idList="+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 selectgong = async () => {
  try {
    var url="/hollowGlass/hollowGlassOutRelationInfo/hollowTaskList?cell="+ 931;
    var url="/hollowGlass/hollowGlassOutRelationInfo/hollowTaskList?cell="+ 930;
    const response = await request.post(url)
    if (response.code == 200) {
      const processTypes = response.data.map((projectNo, index) => ({
@@ -406,6 +1195,25 @@
        label: projectNo
      }));
      titleSelectJson.value.processType = processTypes;
    } else {
      ElMessage.error('Failed to fetch data');
    }
  } catch (error) {
    ElMessage.error('Error fetching data');
  }
};
// 预览
const handleup = async () => {
  try {
    var url="/hollowGlass/hollowGlassOutRelationInfo/appointHollowTaskDetails?cell="+ 930 + "&flowCardId=" + selectedProjectNo.value;
  window.localStorage.setItem('flowCardId', selectedProjectNo.value)
  const response = await request.post(url)
    if (response.code == 200) {
      ElMessage.success(response.message);
      tableDataa.value = response.data;
      dialogFormVisiblee.value = false
      selectedProjectNo.value = ''
      closeWebSocket(socket);
    } else {
      ElMessage.error('Failed to fetch data');
    }
@@ -436,13 +1244,10 @@
// 开始任务
const handlea = async () => {
  try {
    let engineeringId = window.localStorage.getItem('engineeringId')
    console.log(engineeringId);
    if (engineeringId !== '') {
      const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
        engineeringId: engineeringId,
        state: 0,
      })
    let flowCardId = window.localStorage.getItem('flowCardId')
    if (flowCardId !== '') {
    var url="/hollowGlass/hollowGlassOutRelationInfo/startTask?flowCardId="+flowCardId + "&cell=" + 930;
    const response = await request.post(url)
      if (response.code == 200) {
        ElMessage.success(response.message);
        blinda.value = false;
@@ -459,16 +1264,87 @@
    console.error(error);
  }
}
// 结束任务
const handleb = async () => {
  try {
    let flowCardId = window.localStorage.getItem('flowCardId')
    if (flowCardId !== '') {
    var url="/hollowGlass/hollowGlassOutRelationInfo/finishTask?flowCardId="+flowCardId + "&cell=" + 930;
    const response = await request.post(url)
      if (response.code == 200) {
        ElMessage.success(response.message);
        blindb.value = false;
      } else {
        ElMessage.error(response.message);
      }
    } else {
      ElMessage({
        type: 'info',
        message: t('basicData.infonull'),
      })
    }
  } catch (error) {
    console.error(error);
  }
}
// 暂停任务
const handlec = async () => {
  try {
    let flowCardId = window.localStorage.getItem('flowCardId')
    if (flowCardId !== '') {
    var url="/hollowGlass/hollowGlassOutRelationInfo/pauseTask?flowCardId="+flowCardId + "&cell=" + 930;
    const response = await request.post(url)
      if (response.code == 200) {
        ElMessage.success(response.message);
        blindc.value = false;
      } else {
        ElMessage.error(response.message);
      }
    } else {
      ElMessage({
        type: 'info',
        message: t('basicData.infonull'),
      })
    }
  } catch (error) {
    console.error(error);
  }
}
// 删除任务
const handled = async () => {
  try {
    let flowCardId = window.localStorage.getItem('flowCardId')
    if (flowCardId !== '') {
    var url="/hollowGlass/hollowGlassOutRelationInfo/deleteHollowTaskDetails?flowCardId="+flowCardId + "&cell=" + 930;
    const response = await request.post(url)
      if (response.code == 200) {
        ElMessage.success(response.message);
        blindd.value = false;
      } else {
        ElMessage.error(response.message);
      }
    } else {
      ElMessage({
        type: 'info',
        message: t('basicData.infonull'),
      })
    }
  } catch (error) {
    console.error(error);
  }
}
// 领取任务
const finisha = async () => {
  let flowCardId = window.localStorage.getItem('flowCardId')
  let id = window.localStorage.getItem('id')
  try {
      var url="/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell="+cell.value + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value;
      var url="/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell="+ 930 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value+ "&formulaId=" + id;
      const response = await request.post(url)
    if (response.code == 200) {
      ElMessage.success(response.message);
      dialogFormVisiblec.value = false;
      cell.value = '';
      formulaName.value = '';
      totalPairQuantity.value = '';
    } else {
          ElMessage.error(response.message);
@@ -480,8 +1356,9 @@
// 强制出片
const finishb = async () => {
  let flowCardId = window.localStorage.getItem('flowCardId')
  let id = window.localStorage.getItem('id')
  try {
      var url="/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell="+cella.value + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value;
      var url="/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell="+ 930 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value+ "&formulaId=" + id;
      const response = await request.post(url)
    if (response.code == 200) {
      ElMessage.success(response.message);
@@ -501,7 +1378,6 @@
    const body = {  
      flag: ganghua.value,
    }; 
  var url="/hollowGlass/hollowGlassOutRelationInfo/dispatchHollowSwitch?flag="+ganghua.value;
  const response = await request.post(url)
    if (response.code == 200) {
@@ -521,6 +1397,8 @@
});
</script>
<style scoped>
#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;
UI-Project/src/views/hollow/hollowequipmenttwo.vue
@@ -2,6 +2,9 @@
  <div style="height: 600px;">
    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" v-loading="loading">
      <div style="display: flex; flex-direction: row; align-items: center; margin-bottom: 10px;">
        <el-button id="searchButton" type="primary" @click="handleormulan">
          {{ $t('hellow.hollowformula') }}
        </el-button>
        <el-button id="searchButton" type="primary" @click="handlezhiban">
          {{ $t('hellow.createtask') }}
        </el-button>
@@ -10,6 +13,10 @@
        </el-button>
    <el-button style="margin-left: 10px;" id="searchButton" type="success" @click="handleBinda">
          {{ $t('hellow.starttask') }}
        </el-button>
        <el-button style="margin-left: 10px;" id="searchButton" type="info" @click="handleBindd">{{
            $t('hellow.taskdet')
          }}
        </el-button>
        <el-button style="margin-left: 10px;" id="searchButton" type="warning" @click="handleBindc">{{
            $t('hellow.stopproject')
@@ -25,21 +32,21 @@
        <el-form>
          <el-row>
            <el-col :span="4">
              <div id="dt" style="font-size: 15px;">
              <div  style="font-size: 15px;">
                <el-form-item :label="$t('hellow.currenttask')" style="width: 14vw">
                  {{ temperingtotal }}
                </el-form-item>
              </div>
            </el-col>
            <el-col :span="5">
              <div id="dta" style="font-size: 15px;">
              <div style="font-size: 15px;">
                <el-form-item :label="$t('hellow.claimednumber')" style="width: 14vw">
                  {{ glasstotal }}
                </el-form-item>
              </div>
            </el-col>
            <el-col :span="4">
              <div id="dt" style="font-size: 15px;">
              <div style="font-size: 15px;">
                <el-form-item :label="$t('hellow.linenumber')" style="width: 14vw">
                  {{ fulltotals }}
                </el-form-item>
@@ -64,7 +71,7 @@
            </template>
          </el-table-column>
        </el-table>
      <div style="display: flex;margin-left: 40%;margin-top: 10px;">
      <!-- <div style="display: flex;margin-left: 40%;margin-top: 10px;">
      <div style="margin-top: 5px;margin-right: 5px;">{{ $t('hellow.line') }}</div>
    <el-pagination
          background
@@ -74,12 +81,18 @@
          :current-page.sync="currentPage"
          @current-change="handlePageChange1"
        />
      </div>
      </div> -->
  </div>
    </el-card>
  </div>
  <!-- 创建任务 -->
  <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
    <div style="display: flex;">
    <el-input v-model="flowCardId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.incardnumber')" />
    <el-input v-model="filmsId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('film.infilms')"/>
    <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchFlowCardsearch">
      {{$t('reportmanage.inquire')}}</el-button>
  </div>
  <el-table
    ref="table"
    style="margin-top: 20px; height: 700px;"
@@ -117,6 +130,150 @@
      </el-table-column>
  </el-table>
</el-dialog>
<!-- 中空配方添加 -->
<el-dialog v-model="add" top="23vh" width="55%" :title="$t('hellow.hollowformula')" >
    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
     <el-form  size="mini" label-width="150px">
      <el-form label-width="150px" label-position="right">
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('Mounting.removalmethoda')" :required="true" style="width: 16vw;">
            <el-select v-model="filmRemove" clearable  style="width: 220px" :placeholder="$t('Mounting.removalmethod')">
        <el-option :label="$t('Mounting.removal')" value="1"></el-option>
        <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
      </el-select>
              </el-form-item>
            </div>
              </div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.topRemove')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" />
           </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.rightRemove')" :required="true" style="width: 16vw;">
            <el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" />
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        </el-form>
            </el-form>
          </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleConfirm">
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
<!-- 中空配方修改 -->
<el-dialog v-model="adda" top="23vh" width="55%" :title="$t('hellow.edithollowformula')" >
    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
     <el-form  size="mini" label-width="150px">
      <el-form label-width="150px" label-position="right">
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('Mounting.removalmethoda')" :required="true" style="width: 16vw;">
            <el-select v-model="filmRemove" clearable  style="width: 220px" :placeholder="$t('Mounting.removalmethod')">
        <el-option :label="$t('Mounting.removal')" value="1"></el-option>
        <el-option :label="$t('Mounting.noremoval')" value="0"></el-option>
      </el-select>
              </el-form-item>
            </div>
              </div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.topRemove')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" />
           </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 16vw;">
                <el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('hellow.rightRemove')" :required="true" style="width: 16vw;">
            <el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" />
              </el-form-item>
            </div></div>
          </el-col>
        </el-row>
        </el-form>
            </el-form>
          </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handledit">
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="adda = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
  <!-- 领取任务 -->
  <el-dialog v-model="dialogFormVisiblec" top="21vh" width="40%" :title="$t('hellow.claimquest')">
    <div style="margin-left: 20px;margin-top: 10px;margin-bottom: 10px;">
@@ -127,7 +284,8 @@
          </el-form-item>
          <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
            <el-select 
            :placeholder="$t('hellow.croute')"
            :placeholder="$t('hellow.line2')"
            disabled
             style="width: 270px"  
             v-model="cell">
               <el-option
@@ -135,6 +293,23 @@
                :key="item.value"
                :label="item.label"
                :value="item.value"
              />
          </el-select>
          </el-form-item>
          <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;">
        <el-select
            v-model="selectedFormulaName"
            filterable
            clearable
            :placeholder="$t('hellow.phollowformula')"
            style="width: 270px"
            @change="handleFormulaChange"
        >
          <el-option
              v-for="item in titleformulaName"
              :key="item.id"
              :label="item.formulaName"
              :value="item.formulaName"
              />
          </el-select>
          </el-form-item>
@@ -160,7 +335,8 @@
          </el-form-item>
          <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;">
            <el-select 
            :placeholder="$t('hellow.croute')"
            :placeholder="$t('hellow.line2')"
            disabled
             style="width: 270px"  
             v-model="cella">
               <el-option
@@ -168,6 +344,23 @@
                :key="item.value"
                :label="item.label"
                :value="item.value"
              />
          </el-select>
          </el-form-item>
          <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;">
        <el-select
            v-model="selectedFormulaName"
            filterable
            clearable
            :placeholder="$t('hellow.phollowformula')"
            style="width: 270px"
            @change="handleFormulaChange"
        >
          <el-option
              v-for="item in titleformulaName"
              :key="item.id"
              :label="item.formulaName"
              :value="item.formulaName"
              />
          </el-select>
          </el-form-item>
@@ -247,6 +440,17 @@
      </div>
    </template>
  </el-dialog>
  <!-- 删除任务 -->
  <el-dialog v-model="blindd" top="30vh" width="25%" :title="$t('hellow.hollowtaskdet')">
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handled">
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="blindd = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
  <!-- 预览 -->
  <el-dialog v-model="dialogFormVisiblee" top="24vh" width="25%" :title="$t('hellow.reviewproject')" >
    <div style="margin-left: 50px;margin-bottom: 10px;">
@@ -277,9 +481,35 @@
      </div>
    </template>
  </el-dialog>
  <!-- 中空配方 -->
  <el-dialog v-model="mulan" top="15vh" width="70%" :title="$t('hellow.hollowformula')">
    <el-button id="searchButton" type="primary"  @click="add = true">
          {{ $t('basicData.add') }}
        </el-button>
      <el-table ref="table" style="margin-top: 20px;height: 400px;"
                :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
        <el-table-column prop="formulaName" fixed align="center" :label="$t('hellow.formulaNamep')"/>
        <el-table-column prop="filmRemove" fixed align="center" :label="$t('Mounting.removalmethodp')"/>
        <el-table-column prop="topRemove" align="center" :label="$t('hellow.topRemovep')"> </el-table-column>
        <el-table-column prop="bottomRemove" align="center" :label="$t('hellow.bottomRemovep')"> </el-table-column>
        <el-table-column prop="leftRemove" align="center" :label="$t('hellow.leftRemovep')"> </el-table-column>
        <el-table-column prop="rightRemove" align="center" :label="$t('hellow.rightRemovep')"> </el-table-column>
        <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270">
            <template #default="scope">
              <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button>
              <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button>
            </template>
        </el-table-column>
        </el-table>
        <template #footer>
      <div id="dialog-footer">
        <el-button @click="mulan = false">{{ $t('large.close') }}</el-button>
      </div>
    </template>
</el-dialog>
</template>
<script setup>
import {ElMessage} from 'element-plus'
import { ElMessage, ElMessageBox } from 'element-plus'
import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive, watch, computed} from "vue";
import request from "@/utils/request"
import {host, WebSocketHost} from '@/utils/constants'
@@ -289,25 +519,40 @@
const blinda = ref(false)
const blindb = ref(false)
const blindc = ref(false)
const blindd = ref(false)
const mulan = ref(false)
const tableDataa = ref([])
const tableDatab = ref([])
const tableDatac = ref([])
const allData = ref({})
const flowCard = ref('')
const tableDatax = ref([])
const cell = ref('')
const cella = ref('')
const selectedProjectNo = ref('');
const ganghua = ref(true)
const totalPairQuantity = ref('')
const totalPairQuantitya = ref('')
const bottomRemove = ref('')
const filmRemove = ref('')
const formulaName = ref('')
const leftRemove = ref('')
const rightRemove = ref('')
const topRemove = ref('')
const filmsId = ref('')
const flowCardId = ref('')
const dialogFormVisiblea = ref(false)
const dialogFormVisibleb = ref(false)
const dialogFormVisiblec = ref(false)
const dialogFormVisibled = ref(false)
const dialogFormVisiblee = ref(false)
const add = ref(false)
const adda = ref(false)
const currentPage2 = ref(1)
const currentRow = reactive({});
const formattedProcessType = ref([]);
const selectedFormulaName = ref('');
let selectedFormulaId = ref(null);
const formulaNameid = ref({ id: null });
const titleformulaName = ref({ formulaName: [] ,formulaId: []});
const titleSelectJson = ref({ processType: [] });
const options = [
  {
@@ -317,10 +562,6 @@
  {
    value: 931,
    label: t('hellow.line2'),
  },
  {
    value: 932,
    label: t('hellow.line3'),
  }
]
let socket = null;
@@ -341,14 +582,15 @@
};
const handleMessage = (data) => {
  try {
      tableDataa.value = data[931][0];
    const allPageData = data;
    const currentPageKeyValue = currentPageKey.value;
    const currentPageData = allPageData[currentPageKeyValue];
    if (currentPageData && Array.isArray(currentPageData) && currentPageData.length > 0) {
      tableDataa.value = currentPageData[0];
    } else {
      console.warn('No data for the current page key:', currentPageKeyValue);
    }
    // if (currentPageData && Array.isArray(currentPageData) && currentPageData.length > 0) {
    //   tableDataa.value = currentPageData[0];
    // } else {
    //   console.warn('No data for the current page key:', currentPageKeyValue);
    // }
  } catch (error) {
    console.error('Error parsing WebSocket message:', error);
  }
@@ -373,9 +615,31 @@
const handleBindc = (row) => {
  blindc.value = true;
};
// 删除任务
const handleBindd = (row) => {
  blindd.value = true;
};
const removalMethodMap = {
  1: t('Mounting.removal'),
  0: t('Mounting.noremoval')
};
// 处理编辑按钮点击
function handleEdit(row) {
    formulaName.value = row.formulaName;
    filmRemove.value = removalMethodMap[row.filmRemove];
    bottomRemove.value = row.bottomRemove;
    leftRemove.value = row.leftRemove;
    rightRemove.value = row.rightRemove;
    topRemove.value = row.topRemove;
    adda.value = true;
}
const handlezhiban = () => {
  dialogFormVisiblea.value = true;
  fetchFlowCardId();
};
const handleormulan = () => {
  mulan.value = true;
  fetchmulan();
};
// 预览
const selectproject = () => {
@@ -394,16 +658,21 @@
const handletake = (row) => {
  window.localStorage.setItem('flowCardId', row.projectNumber)
  dialogFormVisiblec.value = true;
  fetchmulan()
};
// 强制出片
const handleout = (row) => {
  window.localStorage.setItem('flowCardId', row.projectNumber)
  dialogFormVisibled.value = true;
  fetchmulan()
};
// 创建任务
const fetchFlowCardId = async () => {
  try {
    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard');
    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{
      filmsId: '',
      flowCardId: '',
    });
    if (response.code == 200) {
      ElMessage.success(response.message);
      const newData = parseData(response.data);
@@ -413,6 +682,127 @@
    }
  } catch (error) {
    ElMessage.error('Error fetching data');
  }
};
const fetchFlowCardsearch = async () => {
  try {
    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{
      filmsId: filmsId.value,
      flowCardId: flowCardId.value,
    });
    if (response.code == 200) {
      ElMessage.success(response.message);
      const newData = parseData(response.data);
      tableDatab.value = newData;
    } else {
      ElMessage.error('Failed to fetch data');
    }
  } catch (error) {
    ElMessage.error('Error fetching data');
  }
};
// 中空配方
const fetchmulan = async () => {
  try {
    var url="/hollowGlass/hollowFormulaDetails/listFormulaDetails?keyword="+'';
    const response = await request.post(url)
    if (response.code == 200) {
      ElMessage.success(response.message);
      tableDatax.value = response.data;
      titleformulaName.value = response.data.map(item => ({ formulaId: item.id, formulaName: item.formulaName }));
    } else {
      ElMessage.error('Failed to fetch data');
    }
  } catch (error) {
    ElMessage.error('Error fetching data');
  }
};
const handleFormulaChange = (value) => {
  const selectedItem = titleformulaName.value.find(item => item.formulaName === value);
  if (selectedItem) {
    formulaNameid.value = { id: selectedItem.formulaId };
    window.localStorage.setItem('id', formulaNameid.value.id)
  } else {
    formulaNameid.value = { id: null };
  }
};
// 中空配方添加
const handleConfirm = async () => {
  try {
    const response = await request.post('/hollowGlass/hollowFormulaDetails/saveFormulaDetails',{
      formulaName: formulaName.value,
      filmRemove: filmRemove.value,
      bottomRemove: bottomRemove.value,
      leftRemove: leftRemove.value,
      rightRemove: rightRemove.value,
      topRemove: topRemove.value,
    });
    if (response.code == 200) {
      ElMessage.success(response.message);
      tableDatax.value = response.data;
      add.value = false
      formulaName.value = '';
      filmRemove.value = '';
      bottomRemove.value = '';
      leftRemove.value = '';
      rightRemove.value = '';
      topRemove.value = '';
    } else {
      ElMessage.error('Failed to fetch data');
    }
  } catch (error) {
    ElMessage.error('Error fetching data');
  }
};
const removalMethodMapa = {
  [t('Mounting.removal')]: 1,
  [t('Mounting.noremoval')]: 0,
};
// 中空配方修改
const handledit = async () => {
  try {
    const response = await request.post('/hollowGlass/hollowFormulaDetails/updateFormulaDetails',{
      formulaName: formulaName.value,
      filmRemove: removalMethodMapa[filmRemove.value],
      bottomRemove: bottomRemove.value,
      leftRemove: leftRemove.value,
      rightRemove: rightRemove.value,
      topRemove: topRemove.value,
    });
    if (response.code == 200) {
      ElMessage.success(response.message);
      adda.value = false
      fetchmulan()
    } else {
      ElMessage.error('Failed to fetch data');
    }
  } catch (error) {
    ElMessage.error('Error fetching data');
  }
};
// 中空配方删除
 const opena = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('hellow.hollowformuldet'),
      t('productStock.prompt'),
      {
        confirmButtonText: t('productStock.yes'),
        cancelButtonText: t('productStock.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
    var url="/hollowGlass/hollowFormulaDetails/deleteFormulaDetails?idList="+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);
  }
};
// 工程号
@@ -444,6 +834,7 @@
      tableDataa.value = response.data;
      dialogFormVisiblee.value = false
      selectedProjectNo.value = ''
      closeWebSocket(socket);
    } else {
      ElMessage.error('Failed to fetch data');
    }
@@ -540,16 +931,41 @@
    console.error(error);
  }
}
// 删除任务
const handled = async () => {
  try {
    let flowCardId = window.localStorage.getItem('flowCardId')
    if (flowCardId !== '') {
    var url="/hollowGlass/hollowGlassOutRelationInfo/deleteHollowTaskDetails?flowCardId="+flowCardId + "&cell=" + 931;
    const response = await request.post(url)
      if (response.code == 200) {
        ElMessage.success(response.message);
        blindd.value = false;
      } else {
        ElMessage.error(response.message);
      }
    } else {
      ElMessage({
        type: 'info',
        message: t('basicData.infonull'),
      })
    }
  } catch (error) {
    console.error(error);
  }
}
// 领取任务
const finisha = async () => {
  let flowCardId = window.localStorage.getItem('flowCardId')
  let id = window.localStorage.getItem('id')
  try {
      var url="/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell="+cell.value + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value;
      var url="/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell="+ 931 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value+ "&formulaId=" + id;
      const response = await request.post(url)
    if (response.code == 200) {
      ElMessage.success(response.message);
      dialogFormVisiblec.value = false;
      cell.value = '';
      formulaName.value = '';
      totalPairQuantity.value = '';
    } else {
          ElMessage.error(response.message);
@@ -561,8 +977,9 @@
// 强制出片
const finishb = async () => {
  let flowCardId = window.localStorage.getItem('flowCardId')
  let id = window.localStorage.getItem('id')
  try {
      var url="/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell="+cella.value + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value;
      var url="/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell="+ 931 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value+ "&formulaId=" + id;
      const response = await request.post(url)
    if (response.code == 200) {
      ElMessage.success(response.message);
@@ -602,6 +1019,8 @@
});
</script>
<style scoped>
#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;
UI-Project/src/views/hollow/hollowslicecage.vue
@@ -110,7 +110,11 @@
      } 
    ); 
    if (confirmResult === 'confirm') {
      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/deleteBigStorageCageDetails",row)
      const response = await request.post("/hollowGlass/hollowBigStorageCageDetails/deleteHollowBigStorageCageDetails",{
        deviceId: row.deviceId,
        glassId: row.glassId,
        slot: row.slot,
      })
    if (response.code === 200) {
     tableDataa.value = response.data;
     ElMessage.success(response.message);
@@ -135,7 +139,17 @@
      } 
    ); 
    if (confirmResult === 'confirm') {  
      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/damageBigStorageCageDetails?status="+8, row)
    // var url="/hollowGlass/hollowBigStorageCageDetails/damageHollowBigStorageCageDetails?status="+ 8
    // + "&deviceId=" + row.deviceId
    // + "&glassId=" + row.glassId
    // + "&slot=" + row.slot;
    // const response = await request.post(url)
      const response = await request.post("/hollowGlass/hollowBigStorageCageDetails/damageHollowBigStorageCageDetails",{
        status: 8,
        deviceId: row.deviceId,
        glassId: row.glassId,
        slot: row.slot,
      })
    if (response.code === 200) {
     tableDataa.value = response.data;
     ElMessage.success(response.message);
@@ -160,33 +174,14 @@
      } 
    ); 
    if (confirmResult === 'confirm') {  
      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/damageBigStorageCageDetails?status="+9, row)
      const response = await request.post("/hollowGlass/hollowBigStorageCageDetails/damageHollowBigStorageCageDetails",{
        status: 9,
        deviceId: row.deviceId,
        glassId: row.glassId,
        slot: row.slot,
      })
    if (response.code === 200) {
     tableDataa.value = response.data;
     ElMessage.success(response.message);
      } else {
      ElMessage.error(response.message);
      }
    }
  } catch (error) {
    console.error('发生错误:', error);
  }
};
 // 出片
 const outfil = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.outfil'),
      t('searchOrder.prompt'),
      {
        confirmButtonText: t('searchOrder.yes'),
        cancelButtonText: t('searchOrder.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/outBigStorageCageDetails", row)
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {  
      ElMessage.error(response.message);
@@ -216,14 +211,13 @@
        deviceId: deviceId,
        slot: slot
      };  
      const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/insertBigStorageCageDetails", dataToSend)
      const response = await request.post("/cacheVerticalGlass/hollowBigStorageCageDetails/insertHollowBigStorageCageDetails", dataToSend)
    if (response.code === 200) {
      tableDataa.value = response.data;
      add.value = false;
      ElMessage.success(response.message);
      glassId.value = '';
      tableDataf.value = '';
      } else {  
      ElMessage.error(response.message);
      }  
@@ -876,11 +870,6 @@
              <el-button size="mini" type="text" plain @click="broke(scope.row)">{{ $t('searchOrder.breakage') }}</el-button>
              <el-button size="mini" type="text" plain @click="brokec(scope.row)">{{ $t('searchOrder.takeout') }}</el-button>
              <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('searchOrder.delete') }}</el-button>
              <el-button size="mini" type="text"
              :disabled="!((props.row.hollowBigStorageCageDetails[0].state !== 102 && scope.$index == 0 ) || (props.row.hollowBigStorageCageDetails[(scope.$index - 1)<0?0:scope.$index-1].state==102)&&(scope.row.state!=102))"
               plain @click="outfil(scope.row)">
               {{ $t('searchOrder.outfilm') }}
              </el-button>
            </template>
        </el-table-column>
                </el-table>