上片模块主页面、钢化前理片笼-理片笼信息按钮和中空三条线-缺片详情新增loading效果,中空历史任务删除字段,中空三条线-缺片详情页面改造,中空理片笼页面改造
17个文件已修改
674 ■■■■ 已修改文件
UI-Project/src/lang/en.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/kr.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/py.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/zh.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/utils/constants.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/utils/request.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/ReportWork/reportWork.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Returns/upreturns.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Returns/upreturns2.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/Slicecage/slicecage.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hellowquiphistory.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hellowquipthreehistory.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hellowquiptwohistory.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowequipment.vue 155 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowequipmenthree.vue 164 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowequipmenttwo.vue 148 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowslicecage.vue 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/en.js
@@ -131,12 +131,15 @@
        projectnumber: 'Please enter the project number',
        noGlassToDamage:'No broken glass!',
        dilapidation: 'Breakage',
        dilapidationDetails:'Damage details',
        dilapidationAll:'One-click damage',
        dilapidationWhether:'Whether it is broken with one click?',
        takeaway: 'Manual removal',
        takeawaya: 'Should the information be manually taken away?',
        takeon: 'The arrangement is complete',
    },
    searchOrder: {
        loadingText: 'Loading data, please wait...',
        firstLinePriority: 'First-line priority',
        secondLinePriority: 'second-line priority',
        hollowPriority:'Hollow priority',
@@ -520,6 +523,7 @@
        createTime: 'Return date',
    },
    large: {
        patchCount:'Quantity Replenished',
        Productionsituation:'Production situation',
        Productionandoperationstatus:'Production and operation status',
        cuttingState:'Operation status on the day of cutting',
UI-Project/src/lang/kr.js
@@ -130,12 +130,15 @@
          projectnumber:'프로젝트 번호를 입력해 주세요',
          noGlassToDamage:'깨진 유리 없음!',
          dilapidation:'파손',
          dilapidationDetails:'파손 상세',
          dilapidationAll:'원터치 파손',
          dilapidationWhether:'한 번의 클릭으로 깨졌는지 여부?',
          takeaway:'수동 제거',
          takeawaya:'정보가 수동으로 수집되었는지 여부?',
          takeon:'준비가 완료되었습니다',
      },
      searchOrder:{
        loadingText: '데이터를 불러오는 중입니다. 잠시만 기다려 주세요....',
          firstLinePriority: '일선 우선 순위',
          secondLinePriority: '2선 우선순위',
          hollowPriority:'중공 우선 순위',
@@ -520,6 +523,7 @@
          createTime :'반환 날짜',
      },
      large:{
        patchCount:'보충 수량',
        Productionsituation:'생산 상황',
        Productionandoperationstatus:'운영 상태',
        cuttingState:'가공 당일 상태',
UI-Project/src/lang/py.js
@@ -131,11 +131,14 @@
        takeon:'摆片完成',
        noGlassToDamage:'Никакого битого стекла!',
        dilapidation: 'Повреждение',
          dilapidationDetails:'Детали повреждения',
        dilapidationAll:'Одна кнопка для повреждения',
        dilapidationWhether:'Сломается ли он одним кликом?',
        takeawaya:'是否人工拿走该条信息?',
        takeaway: 'Взять вручную',
    },
    searchOrder: {
        loadingText: '数据加载中,请稍候...',
        firstLinePriority: 'Приоритет первой линии',
        secondLinePriority: 'Приоритет второй линии',
        hollowPriority:'中空优先级',
@@ -517,6 +520,7 @@
        createTime :'返库日期',
    },
    large:{
        patchCount:'已补数量',
        slice:'片',
        time: '次破时间',
        tionnumber: '订单号',
UI-Project/src/lang/zh.js
@@ -130,12 +130,15 @@
          projectnumber:'请输入工程号',
          noGlassToDamage:'没有可破损的玻璃!',
          dilapidation:'破损',
          dilapidationDetails:'破损详情',
          dilapidationAll:'一键破损',
          dilapidationWhether:'是否一键破损?',
          takeaway:'人工拿走',
          takeawaya:'是否人工拿走该条信息?',
          takeon:'摆片完成',
      },
      searchOrder:{
          loadingText: '数据加载中,请稍候...',
          firstLinePriority: '一线优先',
          secondLinePriority: '二线优先',
          hollowPriority:'中空优先级',
@@ -522,6 +525,7 @@
          createTime :'返库日期',
      },
      large:{
        patchCount:'已补数量',
        Productionsituation:'生产情况',
        Productionandoperationstatus:'生产运行情况',
        cuttingState:'切割当天运行情况',
UI-Project/src/utils/constants.js
@@ -1,9 +1,10 @@
 export const WebSocketHost = "192.168.2.100";
//  export const WebSocketHost = "192.168.2.100";
 export const WebSocketHost = "10.153.19.179";
// export const WebSocketHost = "192.168.0.39";
// export const WebSocketHost = "10.153.19.150";
// export const WebSocketHost = "10.153.19.218";
// export const WebSocketHost = "10.153.19.162";
// export const WebSocketHost = "127.0.0.1";
export const host = "88";
export const ErpIp = "192.168.2.100";
export const ErpIp = "10.153.19.179";
export const ErpHost = "8086";
UI-Project/src/utils/request.js
@@ -13,7 +13,8 @@
request.interceptors.request.use(config => {
   config.headers['Content-Type'] = 'application/json;charset=utf-8';
   if(userStore.user){
      config.headers['token'] = userStore.user.token;
      config.headers['Authorization'] = `Bearer ${userStore.user.token}`;
      // config.headers['token'] = userStore.user.token;
   }
   // 设置请求头
   return config
UI-Project/src/views/ReportWork/reportWork.vue
@@ -7,6 +7,7 @@
              :end-placeholder="$t('reportmanage.endtime')">
            </el-date-picker>
      <el-select v-model="report.type" :placeholder="$t('reportmanage.ctype')" style="margin-left: 10px;">
        <el-option :label="$t('reportmanage.completed')" value="1"></el-option>
        <el-option :label="$t('reportmanage.broke')" value="8"></el-option>
        <el-option :label="$t('reportmanage.takeout')" value="9"></el-option>
      </el-select>
UI-Project/src/views/Returns/upreturns.vue
@@ -18,6 +18,7 @@
const blindb = ref(false)
const blindbd = ref(false)
const ReportData = ref(true);
const isLoading = ref(true);
const canSelectProjecta = ref(true);
const canSelectProjectb = ref(true);
const canSelectProjectc = ref(false);
@@ -68,8 +69,7 @@
let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassOne`;
const handleMessage = (data: any) => {
  console.log(data.stationList);
  isLoading.value = true;
  if (data.inkageState != null) {
    cuttingMachineStatusColor.value = data.inkageState[0] === 1 ? 'green' : '#911005';
  }
@@ -86,6 +86,7 @@
    tableDataa.value = []
  }
  if (data.upPattenUsages.length != 0) {
    isLoading.value = false;
    tableData.value = data.upPattenUsages[0]
    window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId)
    canSelectProjecta.value = false;
@@ -93,12 +94,13 @@
    canSelectProjectc.value = true;
  }
  else {
    isLoading.value = false;
    canSelectProjecta.value = true;
    canSelectProjectb.value = true;
    canSelectProjectc.value = false;
    tableData.value = [];
    window.localStorage.setItem('engineeringIda', '')
  }
  }
};
onBeforeUnmount(() => {
  closeWebSocket();
@@ -459,6 +461,7 @@
      </el-select>
      <el-button :disabled="!ReportData" type="primary" style="margin-left: 10px;" @click="selectReportData()">{{
        $t('Mounting.setparameters') }}</el-button>
  <div v-loading="isLoading" class="loading-container" :element-loading-text="$t('searchOrder.loadingText')" >
      <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;">
        <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
          <el-table height="400" ref="table" :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"
@@ -480,6 +483,7 @@
          </el-table>
        </div>
      </el-card>
    </div>
      <div style="display: flex;margin-left:5%">
        <div style="width: 55%;float: left;margin-left: 300px;">
          <div style="display: flex;">
@@ -644,4 +648,12 @@
  margin-top: 20px;
  margin-bottom: 10px;
}
.loading-container {
  position: relative;
  height: 100%;
}
/* 确保遮罩层在最顶层 */
.el-loading-mask {
  z-index: 2000 !important;
}
</style>
UI-Project/src/views/Returns/upreturns2.vue
@@ -15,6 +15,7 @@
const dialogFormVisible = ref(false)
const blind = ref(false)
const blinda = ref(false)
const isLoading = ref(true);
const ReportData = ref(true);
const blindb = ref(false)
const blindbd = ref(false)
@@ -73,6 +74,8 @@
let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassTwo`;
const handleMessage = (data: any) => {
  isLoading.value = true;
  if (data.stationList.length != 0) {
    const processedData = [...data.stationList[0]];
 if (processedData.length > 0) {
@@ -89,6 +92,7 @@
    cuttingMachineStatusColor.value = data.inkageState[0] === 1 ? 'green' : '#911005';
  }
  if (data.upPattenUsages.length != 0) {
  isLoading.value = false;
  tableData.value = data.upPattenUsages[0]
  window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId)
  canSelectProjecta.value = false;
@@ -96,6 +100,7 @@
  canSelectProjectc.value = true;
}
else {
  isLoading.value = false;
  tableData.value = [];
  canSelectProjecta.value = true;
  canSelectProjectb.value = true;
@@ -453,6 +458,7 @@
      <el-option :label="$t('Mounting.pass')" value="100"></el-option>
    </el-select>
    <el-button :disabled="!ReportData" type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('Mounting.setparameters') }}</el-button>
  <div v-loading="isLoading" class="loading-container" :element-loading-text="$t('searchOrder.loadingText')" >
    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;">
      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
        <el-table
@@ -486,6 +492,7 @@
        </el-table>
      </div>
    </el-card>
    </div>
    <div style="display: flex;margin-left:5%">
      <div style="width: 55%;float: left;margin-left: 300px;">
        <div style="display: flex;">
@@ -645,4 +652,12 @@
  margin-top: 20px;
  margin-bottom: 10px;
}
.loading-container {
  position: relative;
  height: 100%;
}
/* 确保遮罩层在最顶层 */
.el-loading-mask {
  z-index: 2000 !important;
}
</style>
UI-Project/src/views/Slicecage/slicecage.vue
@@ -18,6 +18,7 @@
const dialogFormVisiblee = ref(false)
const dialogFormVisiblef = ref(false)
const dialogFormVisibles = ref(false)
const isLoading = ref(true)
const blindb = ref(false)
const inkageEntity = ref('#911005');
const requestEntity = ref('#911005');
@@ -504,6 +505,7 @@
  fetchFlow(); 
};
const handlexiang = () => {
  isLoading.value = true;  // 开启加载状态
  dialogFormVisiblea.value = true;
  fetchxiang(); 
  currentPage2.value = 1;
@@ -552,20 +554,26 @@
}); 
// 理片笼信息
const fetchxiang = async () => {
  try {
    isLoading.value = true;
  try {
    const response = await request.post('/cacheVerticalGlass/bigStorageCage/querybigStorageCageDetail',{
        // deviceId: page,
        filmsId: filmsId.value,
        flowCardId: flowCardId.value,
    })
    if (response.code === 200) {
    // 模拟最小加载时间
    await new Promise(resolve => setTimeout(resolve, 300));
    if (response.code === 200) {
      ElMessage.success(response.message);
      tableDataa.value = response.data
    } else {  
      ElMessage.warning(response.msg)
    }  
  } catch (error) {
  }
  } finally {
    isLoading.value = false;
  }
}
const fetchxianga = async () => {
  let page = window.localStorage.getItem('pagenumber')
@@ -1121,6 +1129,16 @@
  const seconds = String(date.getSeconds()).padStart(2, '0'); // 补零(如果需要显示时间)
  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
const svg = `
        <path class="path" d="
          M 30 15
          L 28 17
          M 25.61 25.61
          A 15 15, 0, 0, 1, 15 30
          A 15 15, 0, 1, 1, 27.99 7.5
          L 15 15
        " style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>
      `
onBeforeUnmount(() => {
  closeWebSocket();
});
@@ -1384,7 +1402,9 @@
        </el-table>
      </div>
  </el-dialog>
<el-dialog v-model="dialogFormVisiblea" top="2vh" width="95%" :title="$t('searchOrder.cageinformation')">
  <el-dialog v-model="dialogFormVisiblea" top="2vh" width="95%"
  :title="$t('searchOrder.cageinformation')">
  <div v-loading="isLoading" class="loading-container" :element-loading-text="$t('searchOrder.loadingText')" >
  <div style="display: flex;">
    <el-input v-model="flowCardId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.incardnumber')" />
    <el-input v-model="filmsId" clearable style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('film.infilms')"/>
@@ -1486,6 +1506,7 @@
          @current-change="handlePageChange2"
        />
    </div> -->
  </div>
  </div>
  </el-dialog>
<!-- 历史任务 -->
@@ -1910,4 +1931,12 @@
#app-container {
  padding-top: 60px; /* 根据alert高度调整 */
}
.loading-container {
  position: relative;
  height: 100%;
}
/* 确保遮罩层在最顶层 */
.el-loading-mask {
  z-index: 2000 !important;
}
</style>
UI-Project/src/views/hollow/hellowquiphistory.vue
@@ -26,6 +26,7 @@
   </div>
      <el-table ref="table" style="margin-top: 20px;height: 580px;width: 99%;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
    <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')" min-width="50" />
    <el-table-column prop="cell" align="center" :label="$t('searchOrder.line')" min-width="50" />
    <el-table-column prop="totalLayer" align="center" :label="$t('hellow.totalLayer')" min-width="20" />
    <el-table-column prop="totalPairQuantity" align="center" :label="$t('hellow.totalPairQuantity')" min-width="50" />
        <el-table-column
UI-Project/src/views/hollow/hellowquipthreehistory.vue
@@ -26,6 +26,7 @@
   </div>
      <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
    <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')" min-width="80" />
    <el-table-column prop="cell" align="center" :label="$t('searchOrder.line')" min-width="50" />
    <el-table-column prop="totalLayer" align="center" :label="$t('hellow.totalLayer')" min-width="80" />
    <el-table-column prop="totalPairQuantity" align="center" :label="$t('hellow.totalPairQuantity')" min-width="80" />
        <el-table-column
UI-Project/src/views/hollow/hellowquiptwohistory.vue
@@ -26,6 +26,7 @@
   </div>
      <el-table ref="table" style="margin-top: 20px;height: 580px;width: 1770px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
    <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.processcards')" min-width="80" />
    <el-table-column prop="cell" align="center" :label="$t('searchOrder.line')" min-width="50" />
    <el-table-column prop="totalLayer" align="center" :label="$t('hellow.totalLayer')" min-width="80" />
    <el-table-column prop="totalPairQuantity" align="center" :label="$t('hellow.totalPairQuantity')" min-width="80" />
        <el-table-column
UI-Project/src/views/hollow/hollowequipment.vue
@@ -79,12 +79,14 @@
        </el-button>
  </div>  
      <!-- 动态表格 -->
      <el-table
      <el-table
        height="630"
        :data="tab.tableDataa"
        :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
      >
         <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center" />
          <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" />
          <el-table-column prop="slot" :label="$t('film.slot')" align="center" />
          <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center" />
          <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center" />
          <el-table-column prop="layer" :label="$t('hellow.layer')" align="center" />
@@ -758,6 +760,7 @@
  </el-dialog>
  <!-- 缺片详情 -->
  <el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
  <div v-loading="isLoading" class="loading-container" :element-loading-text="$t('searchOrder.loadingText')" >
    <div style="margin-top: -20px;text-align: center;margin-left: 400px;">
      <el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
        {{ currentRow.flowCardId }}
@@ -765,20 +768,36 @@
    </div>
    <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDatac"
      :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
      <el-table-column prop="flowCardId" align="center" :label="$t('hellow.flowCardId')" min-width="100" />
      <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="100" />
      <el-table-column prop="layer" align="center" :label="$t('hellow.layer')" min-width="80" />
      <el-table-column prop="glassType" align="center" :label="$t('reportmanage.number')" min-width="80" />
      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" />
      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80" />
      <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80" />
      <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80" />
      <!-- <el-table-column prop="totalCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/> -->
      <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80" />
      <!-- <el-table-column prop="damageCount" align="center" :label="$t('hellow.brokenpieces')" min-width="80"/> -->
      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" />
      <el-table-column prop="workingProcedure" align="center" :label="$t('reportmanage.process')" min-width="80" />
      <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center">
            <template #default="scope">
              <el-button type="text" plain  @click="handleBroke(scope.row)">{{ $t('order.dilapidation') }}</el-button>
            </template>
      </el-table-column>
      <div style="float: right;margin-bottom: 5px;">
        <el-pagination layout="prev, pager, next" :total="50" />
      </div>
    </el-table>
    <div style="display: flex;margin-left: 40%;margin-top: 10px;">
      <el-pagination background size="large" layout="prev, pager, next" :total="30" :current-page.sync="currentPage2"
        @current-change="handlePageChange2" />
      <div class="custom-page-buttons">
      <button
        v-for="page in pageList"
      :key="page"
        @click="switchPage(page)"
        :class="{ 'active-page': currentPage === page }"
        class="page-btn"
      >
        {{ page }}
      </button>
    </div>
    </div>
  </el-dialog>
  <!-- 开始任务 -->
@@ -983,6 +1002,7 @@
const blindb = ref(false)
const blindc = ref(false)
const mulan = ref(false)
const isLoading = ref(true)
const activeTab = ref('')
const tabList = ref([])
const internalInstance = getCurrentInstance()
@@ -1005,7 +1025,6 @@
const thickness = ref('')
const productName = ref('')
const customerName = ref('')
const flowCardId = ref('')
const casFour = ref('')
const casOne = ref('')
const casThree = ref('')
@@ -1027,6 +1046,13 @@
const intervalFrameWidthThree = ref('')
const intervalFrameWidthFour = ref('')
const sealInsert = ref('')
const totalPages = ref(0)
const pageList = ref([]);
const allData = ref({});
const currentData = ref([]);
const flowCardId = ref('')
const freeone = ref('#911005');
const dialogFormVisiblea = ref(false)
const dialogFormVisibleb = ref(false)
@@ -1035,7 +1061,6 @@
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('');
@@ -1068,10 +1093,6 @@
const currentPageKey = computed(() => `93${currentPage.value - 1}`);
const handlePageChange1 = (newPage) => {
  currentPage.value = newPage;
};
const handlePageChange2 = (newPage) => {
  currentPage2.value = newPage;
  fetchFlowBind(currentRow.flowCardId, currentPage2.value);
};
const handleMessage = (data) => {
  const rawData = data.queueInfo[0]
@@ -1362,11 +1383,12 @@
};
// 缺片详情
const handleBindRack = (row) => {
  currentPage2.value = 1;
  let currentPageLack = window.localStorage.getItem('currentPageLack')
  const { flowCardId } = row;
  currentRow.flowCardId = row.flowCardId;
  isLoading.value = true;
  dialogFormVisibleb.value = true;
  fetchFlowBind(flowCardId, currentPage2.value);
  fetchFlowBind(currentRow.flowCardId);
};
// 领取任务
const handletake = (row) => {
@@ -1380,6 +1402,40 @@
  dialogFormVisibled.value = true;
  fetchmulan()
};
// 缺片详情-破损
const handleBroke = async (row) => {
  try {
     const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.broke'),
      t('workOrder.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
        cancelButtonText: t('workOrder.cancel'),
        type: 'warning',
      }
    );
    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/hollowBigStorageGlassDamage', {
      flowCardId: row.flowCardId,
      glassType: row.glassType,
      glassId: row.glassId,
      layer: row.layer,
      state: 8,
      line: 1,
      workingProcedure: '中空',
      remark: '中空'
    })
    if (response.code == 200) {
      ElMessage.success(response.message);
      const { flowCardId } = row;
      fetchFlowBind();
      fetchFlowCardId()
    } else {
      ElMessage.error(response.msg);
    }
  } catch (error) {
    console.error(error);
  }
}
// 创建任务
const fetchFlowCardId = async () => {
  try {
@@ -1671,18 +1727,31 @@
    };
  });
};
const fetchFlowBind = async (flowCardId, page) => {
const fetchFlowBind = async (flowCardId) => {
  try {
    var url = "/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId=" + flowCardId + "&layer=" + 1;
    const response = await request.post(url)
    if (response.code == 200) {
      tableDatac.value = response.data[page];
      ElMessage.success(response.message);
    const url = `/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId=${flowCardId}`;
    const response = await request.post(url);
    if (response.code === 200) {
      isLoading.value = false;
      allData.value = response.data;
    // 提取并排序页码
    pageList.value = Object.keys(response.data)
      .map(Number)
      .sort((a, b) => a - b);
    // 初始化第一页数据
    currentPage.value = pageList.value[0];
    tableDatac.value = response.data[pageList.value[0]] || [];
    } else {
    }
  } catch (error) {
  }
}
};
// 页面切换处理
const switchPage = (page) => {
  currentPage.value = page;
  tableDatac.value = allData.value[page] || []; // 切换数据
};
// 开始任务
const handlea = async () => {
  try {
@@ -1784,11 +1853,9 @@
  } catch (error) {
  }
}
onBeforeUnmount(() => {
  closeWebSocket();
});
import requestErp from "@/utils/requestErp";
import { hiprint } from "vue-plugin-hiprint";
import PrintCustomLabelXJ from './PrintCustomLabelTwo.vue'
@@ -1904,4 +1971,44 @@
::v-deep(.row-red-background) {
  background-color: rgb(224.6, 242.8, 215.6) !important;
}
.custom-page-buttons {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}
.custom-page-buttons {
  display: flex;
  gap: 10px;
  margin: 20px 0;
  flex-wrap: wrap;
}
.page-btn {
  padding: 8px 16px;
  min-width: 40px;
  border: 1px solid #dcdfe6;
  border-radius: 4px;
  background: #f5f7fa;
  cursor: pointer;
  transition: all 0.3s;
}
.page-btn:hover {
  background: #e6f1ff;
}
.page-btn.active-page {
  background: #409eff;
  color: white;
  border-color: #409eff;
}
.loading-container {
  position: relative;
  height: 100%;
}
/* 确保遮罩层在最顶层 */
.el-loading-mask {
  z-index: 2000 !important;
}
</style>
UI-Project/src/views/hollow/hollowequipmenthree.vue
@@ -45,11 +45,13 @@
  </div>  
      <!-- 动态表格 -->
      <el-table 
        height="630"
        :data="tab.tableDataa"
        :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
      >
         <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center" />
          <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" />
          <el-table-column prop="slot" :label="$t('film.slot')" align="center" />
          <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center" />
          <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center" />
          <el-table-column prop="layer" :label="$t('hellow.layer')" align="center" />
@@ -380,6 +382,7 @@
  </el-dialog>
  <!-- 缺片详情 -->
  <el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
  <div v-loading="isLoading" class="loading-container" :element-loading-text="$t('searchOrder.loadingText')" >
    <div style="margin-top: -20px;text-align: center;margin-left: 400px;">
      <el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
        {{ currentRow.flowCardId }}
@@ -387,27 +390,37 @@
    </div>
    <el-table ref="table" style="margin-top: 20px;height: 400px;"
          :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/>
      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/>
      <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80"/>
      <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80"/>
      <!-- <el-table-column prop="totalCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/> -->
      <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80"/>
      <!-- <el-table-column prop="damageCount" align="center" :label="$t('hellow.brokenpieces')" min-width="80"/> -->
      <el-table-column prop="flowCardId" align="center" :label="$t('hellow.flowCardId')" min-width="100" />
      <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="100" />
      <el-table-column prop="layer" align="center" :label="$t('hellow.layer')" min-width="80" />
      <el-table-column prop="glassType" align="center" :label="$t('reportmanage.number')" min-width="80" />
      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" />
      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80" />
      <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80" />
      <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80" />
      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" />
      <el-table-column prop="workingProcedure" align="center" :label="$t('reportmanage.process')" min-width="80" />
      <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center">
            <template #default="scope">
              <el-button type="text" plain  @click="handleBroke(scope.row)">{{ $t('order.dilapidation') }}</el-button>
            </template>
      </el-table-column>
      <div style="float: right;margin-bottom: 5px;">
        <el-pagination layout="prev, pager, next" :total="50"/>
      </div>
    </el-table>
    <div style="display: flex;margin-left: 40%;margin-top: 10px;">
  <el-pagination
          background
          size="large"
          layout="prev, pager, next"
          :total="30"
          :current-page.sync="currentPage2"
          @current-change="handlePageChange2"
        />
  </div>
      <div class="custom-page-buttons">
      <button
        v-for="page in pageList"
      :key="page"
        @click="switchPage(page)"
        :class="{ 'active-page': currentPage === page }"
        class="page-btn"
      >
        {{ page }}
      </button>
    </div>
    </div>
  </el-dialog>
  <!-- 开始任务 -->
  <el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('hellow.pstarttask')">
@@ -540,6 +553,7 @@
const blindb = ref(false)
const blindc = ref(false)
const mulan = ref(false)
const isLoading = ref(true)
const activeTab = ref('')
const tabList = ref([])
const internalInstance = getCurrentInstance()
@@ -560,7 +574,6 @@
const rightRemove = ref('')
const topRemove = ref('')
const filmsId = ref('')
const flowCardId = ref('')
const pairTotal = ref()
const productName = ref('')
const customerName = ref('')
@@ -572,7 +585,10 @@
const dialogFormVisiblee = ref(false)
const add = ref(false)
const adda = ref(false)
const currentPage2 = ref(1)
const pageList = ref([]);
const allData = ref({});
const currentData = ref([]);
const flowCardId = ref('')
const currentRow = reactive({});
const formattedProcessType = ref([]);
let selectedFormulaId = ref(null);
@@ -607,10 +623,6 @@
const currentPageKey = computed(() => `93${currentPage.value - 1}`);
const handlePageChange1 = (newPage) => {
  currentPage.value = newPage;
};
const handlePageChange2 = (newPage) => {
  currentPage2.value = newPage;
  fetchFlowBind(currentRow.flowCardId, currentPage2.value);
};
const handleMessage = (data) => {
  const rawData = data.queueInfo[0]
@@ -732,11 +744,12 @@
};
// 缺片详情
const handleBindRack = (row) => {
  currentPage2.value = 1;
  const { flowCardId} = row;
  currentRow.flowCardId  = row.flowCardId;
  let currentPageLack = window.localStorage.getItem('currentPageLack')
  const { flowCardId } = row;
  currentRow.flowCardId = row.flowCardId;
  isLoading.value = true;
  dialogFormVisibleb.value = true;
  fetchFlowBind(flowCardId, currentPage2.value);
  fetchFlowBind(currentRow.flowCardId);
};
// 领取任务
const handletake = (row) => {
@@ -943,18 +956,65 @@
    };
  });
};
const fetchFlowBind = async (flowCardId, page) => {
// 缺片详情-破损
const handleBroke = async (row) => {
  try {
    var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + 1;
    const response = await request.post(url)
     const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.broke'),
      t('workOrder.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
        cancelButtonText: t('workOrder.cancel'),
        type: 'warning',
      }
    );
    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/hollowBigStorageGlassDamage', {
      flowCardId: row.flowCardId,
      glassType: row.glassType,
      glassId: row.glassId,
      layer: row.layer,
      state: 8,
      line: 1,
      workingProcedure: '中空',
      remark: '中空'
    })
    if (response.code == 200) {
      tableDatac.value = response.data[page];
      ElMessage.success(response.message);
      const { flowCardId } = row;
      fetchFlowBind();
      fetchFlowCardId()
    } else {
      ElMessage.error(response.msg);
    }
  } catch (error) {
    console.error(error);
  }
}
const fetchFlowBind = async (flowCardId) => {
  try {
    const url = `/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId=${flowCardId}`;
    const response = await request.post(url);
    if (response.code === 200) {
      isLoading.value = false;
      allData.value = response.data;
    // 提取并排序页码
    pageList.value = Object.keys(response.data)
      .map(Number)
      .sort((a, b) => a - b);
    // 初始化第一页数据
    currentPage.value = pageList.value[0];
    tableDatac.value = response.data[pageList.value[0]] || [];
    } else {
    }
  } catch (error) {
  }
}
};
// 页面切换处理
const switchPage = (page) => {
  currentPage.value = page;
  tableDatac.value = allData.value[page] || []; // 切换数据
};
// 开始任务
const handlea = async () => {
  try {
@@ -1150,4 +1210,44 @@
::v-deep(.row-red-background) {
  background-color: rgb(224.6, 242.8, 215.6) !important;
}
.custom-page-buttons {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}
.custom-page-buttons {
  display: flex;
  gap: 10px;
  margin: 20px 0;
  flex-wrap: wrap;
}
.page-btn {
  padding: 8px 16px;
  min-width: 40px;
  border: 1px solid #dcdfe6;
  border-radius: 4px;
  background: #f5f7fa;
  cursor: pointer;
  transition: all 0.3s;
}
.page-btn:hover {
  background: #e6f1ff;
}
.page-btn.active-page {
  background: #409eff;
  color: white;
  border-color: #409eff;
}
.loading-container {
  position: relative;
  height: 100%;
}
/* 确保遮罩层在最顶层 */
.el-loading-mask {
  z-index: 2000 !important;
}
</style>
UI-Project/src/views/hollow/hollowequipmenttwo.vue
@@ -47,11 +47,13 @@
  </div>  
      <!-- 动态表格 -->
      <el-table 
        height="630"
        :data="tab.tableDataa"
        :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"
      >
         <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center" />
          <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" />
          <el-table-column prop="slot" :label="$t('film.slot')" align="center" />
          <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center" />
          <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center" />
          <el-table-column prop="layer" :label="$t('hellow.layer')" align="center" />
@@ -362,6 +364,7 @@
  </el-dialog>
  <!-- 缺片详情 -->
  <el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
  <div v-loading="isLoading" class="loading-container" :element-loading-text="$t('searchOrder.loadingText')" >
    <div style="margin-top: -20px;text-align: center;margin-left: 400px;">
      <el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
        {{ currentRow.flowCardId }}
@@ -369,20 +372,36 @@
    </div>
    <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDatac"
      :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
      <el-table-column prop="flowCardId" align="center" :label="$t('hellow.flowCardId')" min-width="100" />
      <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="100" />
      <el-table-column prop="layer" align="center" :label="$t('hellow.layer')" min-width="80" />
      <el-table-column prop="glassType" align="center" :label="$t('reportmanage.number')" min-width="80" />
      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" />
      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80" />
      <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80" />
      <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80" />
      <!-- <el-table-column prop="totalCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/> -->
      <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80" />
      <!-- <el-table-column prop="damageCount" align="center" :label="$t('hellow.brokenpieces')" min-width="80"/> -->
      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" />
      <el-table-column prop="workingProcedure" align="center" :label="$t('reportmanage.process')" min-width="80" />
      <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center">
            <template #default="scope">
              <el-button type="text" plain  @click="handleBroke(scope.row)">{{ $t('order.dilapidation') }}</el-button>
            </template>
      </el-table-column>
      <div style="float: right;margin-bottom: 5px;">
        <el-pagination layout="prev, pager, next" :total="50" />
      </div>
    </el-table>
    <div style="display: flex;margin-left: 40%;margin-top: 10px;">
      <el-pagination background size="large" layout="prev, pager, next" :total="30" :current-page.sync="currentPage2"
        @current-change="handlePageChange2" />
      <div class="custom-page-buttons">
      <button
        v-for="page in pageList"
      :key="page"
        @click="switchPage(page)"
        :class="{ 'active-page': currentPage === page }"
        class="page-btn"
      >
        {{ page }}
      </button>
    </div>
    </div>
  </el-dialog>
  <!-- 开始任务 -->
@@ -504,6 +523,7 @@
const blindb = ref(false)
const blindc = ref(false)
const mulan = ref(false)
const isLoading = ref(true)
const activeTab = ref('')
const tabList = ref([])
const internalInstance = getCurrentInstance()
@@ -527,7 +547,6 @@
const pairTotal = ref()
const productName = ref('')
const customerName = ref('')
const flowCardId = ref('')
const freetwo = ref('#911005');
const dialogFormVisiblea = ref(false)
const dialogFormVisibleb = ref(false)
@@ -536,7 +555,10 @@
const dialogFormVisiblee = ref(false)
const add = ref(false)
const adda = ref(false)
const currentPage2 = ref(1)
const pageList = ref([]);
const allData = ref({});
const currentData = ref([]);
const flowCardId = ref('')
const currentRow = reactive({});
const formattedProcessType = ref([]);
const selectedFormulaName = ref('');
@@ -592,10 +614,6 @@
const currentPageKey = computed(() => `93${currentPage.value - 1}`);
const handlePageChange1 = (newPage) => {
  currentPage.value = newPage;
};
const handlePageChange2 = (newPage) => {
  currentPage2.value = newPage;
  fetchFlowBind(currentRow.flowCardId, currentPage2.value);
};
const handleMessage = (data) => {
  const rawData = data.queueInfo[0]
@@ -711,11 +729,12 @@
};
// 缺片详情
const handleBindRack = (row) => {
  currentPage2.value = 1;
  let currentPageLack = window.localStorage.getItem('currentPageLack')
  const { flowCardId } = row;
  currentRow.flowCardId = row.flowCardId;
  isLoading.value = true;
  dialogFormVisibleb.value = true;
  fetchFlowBind(flowCardId, currentPage2.value);
  fetchFlowBind(currentRow.flowCardId);
};
// 领取任务
const handletake = (row) => {
@@ -971,18 +990,30 @@
    };
  });
};
const fetchFlowBind = async (flowCardId, page) => {
const fetchFlowBind = async (flowCardId) => {
  try {
    var url = "/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId=" + flowCardId + "&layer=" + 1;
    const response = await request.post(url)
    if (response.code == 200) {
      tableDatac.value = response.data[page];
      ElMessage.success(response.message);
    const url = `/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId=${flowCardId}`;
    const response = await request.post(url);
    if (response.code === 200) {
      isLoading.value = false;
      allData.value = response.data;
    // 提取并排序页码
    pageList.value = Object.keys(response.data)
      .map(Number)
      .sort((a, b) => a - b);
    // 初始化第一页数据
    currentPage.value = pageList.value[0];
    tableDatac.value = response.data[pageList.value[0]] || [];
    } else {
    }
  } catch (error) {
  }
}
};
// 页面切换处理
const switchPage = (page) => {
  currentPage.value = page;
  tableDatac.value = allData.value[page] || []; // 切换数据
};
// 开始任务
const handlea = async () => {
  try {
@@ -1057,6 +1088,41 @@
    } else {
    }
  } catch (error) {
  }
}
// 缺片详情-破损
const handleBroke = async (row) => {
  try {
     const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.broke'),
      t('workOrder.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
        cancelButtonText: t('workOrder.cancel'),
        type: 'warning',
      }
    );
    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/hollowBigStorageGlassDamage', {
      flowCardId: row.flowCardId,
      glassType: row.glassType,
      glassId: row.glassId,
      layer: row.layer,
      state: 8,
      line: 1,
      workingProcedure: '中空',
      remark: '中空'
    })
    if (response.code == 200) {
      ElMessage.success(response.message);
      const { flowCardId } = row;
      fetchFlowBind();
      fetchFlowCardId()
    } else {
      ElMessage.error(response.msg);
    }
  } catch (error) {
    console.error(error);
  }
}
// 强制出片
@@ -1172,4 +1238,44 @@
::v-deep(.row-red-background) {
  background-color: rgb(224.6, 242.8, 215.6) !important;
}
.custom-page-buttons {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}
.custom-page-buttons {
  display: flex;
  gap: 10px;
  margin: 20px 0;
  flex-wrap: wrap;
}
.page-btn {
  padding: 8px 16px;
  min-width: 40px;
  border: 1px solid #dcdfe6;
  border-radius: 4px;
  background: #f5f7fa;
  cursor: pointer;
  transition: all 0.3s;
}
.page-btn:hover {
  background: #e6f1ff;
}
.page-btn.active-page {
  background: #409eff;
  color: white;
  border-color: #409eff;
}
.loading-container {
  position: relative;
  height: 100%;
}
/* 确保遮罩层在最顶层 */
.el-loading-mask {
  z-index: 2000 !important;
}
</style>
UI-Project/src/views/hollow/hollowslicecage.vue
@@ -29,6 +29,7 @@
const carPosition = ref([])
const tableDatass = ref([])
const tableDataLack = ref([])
const tableDataMiss = ref([])
// 响应式状态
const showAlert = ref(false)
const alertMessage = ref('')
@@ -83,14 +84,29 @@
  window.localStorage.setItem('slot', row.slot)
  add.value = true;
};
// 缺片详情
// const handleMissingFilms = (row) => {
//   currentPage2.value = 1;
//   const { flowCardId } = row;
//   currentLack.flowCardId = row.flowCardId;
//   dialogFormVisibleb.value = true;
//   fetchFlowBind(flowCardId, currentPage2.value);
// };
// 多条破损数据
const handleMissingFilms = (row) => {
  dialogFormVisibleb.value = true;
  handleAllMissing(row)
};
const handleAllMissing = async (row) => {
  try  {
  const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryLackGlassByFlowCard', {
    flowCardId: row.flowCardId,
    layer: row.layer,
    orderSort: row.glassType,
    //  glassId: row.glassId
    });
    if (response.code == 200) {
      ElMessage.success(response.message);
      tableDataMiss.value = response.data
    } else {
      ElMessage.error(response.message);
    }
}
catch (error) {
  }
}
const handlePageChange2 = (newPage) => {
  currentPage2.value = newPage;
  fetchFlowBind(currentLack.flowCardId, currentPage2.value);
@@ -204,6 +220,39 @@
  try {
     const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.broke'),
      t('workOrder.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
        cancelButtonText: t('workOrder.cancel'),
        type: 'warning',
      }
    );
    const response = await request.post('/hollowGlass/hollowGlassRelationInfo/hollowBigStorageGlassDamage', {
      flowCardId: row.flowCardId,
      glassType: row.glassType,
      glassId: row.glassId,
      layer: row.layer,
      state: 8,
      line: 1,
      workingProcedure: '中空',
      remark: '中空'
    })
    if (response.code == 200) {
      ElMessage.success(response.message);
      const { flowCardId } = row;
      fetchFlowBind(flowCardId, currentPage2.value);
    } else {
      ElMessage.error(response.msg);
    }
  } catch (error) {
    console.error(error);
  }
}
// 缺片详情-一键破损
const handleAllBroke = async (row) => {
  try {
     const confirmResult = await ElMessageBox.confirm(
      t('order.dilapidationWhether'),
      t('workOrder.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
@@ -1015,18 +1064,20 @@
      max-height="calc(500px - 35px)"
      style="width: 100%;"
    >
      <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="140" />
      <el-table-column prop="layer" align="center" :label="$t('reportmanage.layer')" min-width="40" />
      <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="139" />
      <el-table-column prop="layer" align="center" :label="$t('reportmanage.layer')" min-width="38" />
      <el-table-column prop="glassType" align="center" :label="$t('large.serialnumber')" min-width="80" />
      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="70" />
      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="70" />
      <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80" />
      <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80" />
      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="52" />
      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="62"/>
      <!-- <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="62" show-overflow-tooltip/> -->
      <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="55" />
      <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="55" />
      <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80" />
      <el-table-column prop="damageCount" align="center" :label="$t('large.brokenNum')"/>
      <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center">
      <!-- <el-table-column prop="patchCount" align="center" :label="$t('large.patchCount')"/> -->
      <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center"  min-width="82">
            <template #default="scope">
              <el-button type="text" plain  @click="handleBroke(scope.row)">{{ $t('order.dilapidation') }}</el-button>
              <el-button type="text" plain  @click="handleMissingFilms(scope.row)">{{ $t('hellow.missingfilms') }}</el-button>
            </template>
        </el-table-column>
    </el-table>
@@ -1235,35 +1286,23 @@
        <div>
  </div>
  </el-dialog>
  <!-- 缺片详情 -->
  <el-dialog v-model="dialogFormVisibleb" top="7vh" width="70%" height="500">
    <div style="margin-top: -20px;text-align: center;margin-left: 400px;">
      <el-form-item :label="$t('hellow.cardnumbera')" style="width: 14vw">
        {{ currentLack.flowCardId }}
      </el-form-item>
    </div>
    <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDataLack"
  <!-- 多条破损数据 -->
  <el-dialog v-model="dialogFormVisibleb" top="15vh" width="70%" height="500">
    <el-button plain  @click="handleAllBroke">{{ $t('order.dilapidationAll') }}</el-button>
    <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDataMiss"
      :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
      <el-table-column prop="glassType" align="center" :label="$t('large.serialnumber')" min-width="80" />
      <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="80" />
      <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" />
      <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80" />
      <el-table-column prop="filmsid" align="center" :label="$t('searchOrder.process')" min-width="80" />
      <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80" />
      <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80" />
      <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80" />
      <el-table-column prop="damageCount" align="center" :label="$t('large.brokenNum')"/>
      <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center">
            <template #default="scope">
              <el-button type="text" plain  @click="handleBroke(scope.row)">{{ $t('order.dilapidation') }}</el-button>
            </template>
        </el-table-column>
      <div style="float: right;margin-bottom: 5px;">
        <el-pagination layout="prev, pager, next" :total="50" />
      </div>
      </el-table-column>
    </el-table>
    <div style="display: flex;margin-left: 40%;margin-top: 10px;">
      <el-pagination background size="large" layout="prev, pager, next" :total="30" :current-page.sync="currentPage2"
        @current-change="handlePageChange2" />
    </div>
  </el-dialog>
  <!-- 历史任务 -->
<el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl=''">