严智鑫
2024-07-05 c7093edbf1fb3c91107c457ea13935305e1a9458
UI-Project/src/views/Returns/returns.vue
@@ -5,6 +5,8 @@
const router = useRouter()
import type { TableColumnCtx } from 'element-plus'
import { ElMessage, ElMessageBox } from 'element-plus'
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
const dialogFormVisible = ref(false)
const blind = ref(false)
const blinda = ref(false)
@@ -25,7 +27,8 @@
const selectedValuea = ref('');  
const selectedValueb = ref('');
const selectedValuec = ref(''); 
const upstatus = ref('上片机手动状态:'); // 假设这个用于显示自动/手动状态
// const upstatus = ref('上片机手动状态:'); // 假设这个用于显示自动/手动状态
const upstatus = ref(t('basicData.machineaa'));
const cuttingMachine = ref(''); // 假设这个用于存储后端返回的状态值(0或1)  
const cuttingMachineStatusColor = ref('#911005'); // 用于动态设置i标签的背景色 
const inKageWord = ref(0); // 用于存储要传递给接口的inKageWord值 
@@ -260,7 +263,7 @@
  else  {
      ElMessage({
        type: 'info',
        message: '第二行和第四行的高必须大于2700才能保存!',
        message: t('basicData.pause'),
      })
    }
   
@@ -320,8 +323,8 @@
      const uniqueThicknesses = new Set(response.data.map(item => item.thickness));  
  
      selectOptions.value = Array.from(uniqueWidths).map(width => ({ 
      value: width, // 假设这是你想要作为value的属性
      label: width, // 假设这是你想要显示的label
      value: width,
      label: width,
    }));  
      selectOptionsa.value = Array.from(uniqueHeights).map(height => ({ 
      value: height, 
@@ -375,7 +378,7 @@
  }
    } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {  
      // 提示用户打标机未就绪  
      ElMessage.warning('请确认打标机和切割机的就绪状态!');
      ElMessage.warning(t('basicData.pausea'));
    } 
}
// 暂停
@@ -400,7 +403,7 @@
    else  {
      ElMessage({
        type: 'info',
        message: '工程号不能为空!',
        message: t('basicData.infonull'),
      })
    }
}
@@ -433,7 +436,7 @@
    else  {
      ElMessage({
        type: 'info',
        message: '工程号不能为空!',
        message: t('basicData.infonull'),
      })
    }
}
@@ -446,13 +449,13 @@
function getStatusText(state: number) {
  switch (state) {
    case 0:  
      return '等待中';
      return t('basicData.waiting');
    case 1:  
      return '上片中';
      return t('basicData.up');
    case 2:  
      return '上片中';
    return t('basicData.up');
    case 100:  
      return '已完成';
    return t('basicData.finish');
  }  
}  
function getStatusType(state: number) {  
@@ -498,27 +501,24 @@
const toggleEnableState = async (row: any) => {  
  // 检查 id 是否为空  
  if (!row.id) {  
    ElMessage.error('该工程未保存到上片表!');
    ElMessage.error(t('basicData.updatanull'));
    return; // 如果 id 为空,则不执行后续操作  
  }  
  const newState = row.state === 100 ? 0 : 100;  
  try {  
    // 发送请求到后端更新状态  
    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });  
    if (response.code === 200) {  
      ElMessage.success(response.message);  
      row.state = newState;
    } else {  
      ElMessage.error(response.message);  
    }  
  } catch (error) {  
    // 处理请求错误  
    console.error('更新玻璃状态请求失败:', error);
    ElMessage.error('更新玻璃状态时发生错误');
    ElMessage.error(t('basicData.glassnull'));
  }  
};  
const wsUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
const ws = new WebSocket(wsUrl);  
ws.onopen = () => {  
@@ -547,7 +547,7 @@
    if (data && Array.isArray(data.InkageStatus) && data.InkageStatus.length > 0) {  
      const status = data.InkageStatus[0]; 
      cuttingMachine.value = status; 
      upstatus.value = status === '1' ? '上片机联机状态:' : '上片机手动状态:';
            upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa');
      cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';  
      inKageWord.value = status === '1' ? 0 : 1;  
    } else {  
@@ -565,7 +565,7 @@
  );  
    if (response.code == 200) {  
      const status = response.data.status; 
      upstatus.value = status === '1' ? '上片机联机状态:' : '上片机手动状态:';
      upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa');
      cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';  
      // 显示成功消息  
      ElMessage.success(response.message);  
@@ -583,20 +583,20 @@
<template>
  <div>
    <div id="dotClass">
      <div>打标机就绪状态:</div>
      <div>{{ $t('basicData.laserprinting') }}</div>
    <i :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
    <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">确认</el-button>
    <div style="margin-left: 70px;">切割机就绪状态:</div>
    <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">{{ $t('basicData.yes') }}</el-button>
    <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</div>
    <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
    <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;" >确认</el-button>
    <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;" >{{ $t('basicData.yes') }}</el-button>
    <div style="margin-left: 70px;">{{ upstatus  }} </div>
    <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
    <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;" >切换</el-button>
    <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;" >{{ $t('basicData.change') }}</el-button>
   
  </div>
    <el-button style="margin-top: 5px;margin-left: 15px;"   id="searchButton" type="primary" @click="dialogFormVisible = true">选择工程</el-button>
    <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="primary" @click="handleBind">开始上片</el-button>
    <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" @click="handleBinda">暂停</el-button>
    <el-button style="margin-top: 5px;margin-left: 15px;"   id="searchButton" type="primary" @click="dialogFormVisible = true">{{ $t('basicData.selectproject') }}</el-button>
    <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="primary" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
    <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
    <!-- <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="danger" @click="handleBindb">停止任务</el-button> -->
    
    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
@@ -607,12 +607,12 @@
     :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
      :data="tableData"
    >
    <el-table-column prop="engineeringId" label="工程号" width="200" align="center"/>
      <el-table-column prop="width" label="原片宽" align="center"/>
      <el-table-column prop="height" label="原片高" align="center"/>
      <el-table-column prop="filmsId" label="膜系" align="center"/>
      <el-table-column prop="layoutSequence" label="数量" align="center"/>
      <el-table-column prop="thickness" label="厚度" align="center"/>
    <el-table-column prop="engineeringId" :label="$t('basicData.projectnumber')" width="200" align="center"/>
      <el-table-column prop="width" :label="$t('basicData.glasswidth')" align="center"/>
      <el-table-column prop="height" :label="$t('basicData.glassheight')" align="center"/>
      <el-table-column prop="filmsId" :label="$t('basicData.coatingtypes')" align="center"/>
      <el-table-column prop="layoutSequence" :label="$t('basicData.quantity')" align="center"/>
      <el-table-column prop="thickness" :label="$t('basicData.thickness')" align="center"/>
      <!-- <el-table-column
            align="center"
            label="状态"
@@ -626,7 +626,7 @@
      </template>  -->
      <el-table-column
          align="center"
            label="启用状态"
            :label="$t('basicData.startstatus')"
            min-width="80"
            prop="state"
          >
@@ -635,34 +635,34 @@
            :type="scope.row.state === 100 ? 'success' : 'warning'"  
            @click="toggleEnableState(scope.row)"  
          >  
            {{ scope.row.state === 100 ? '通过' : '等待中' }}
            {{ scope.row.state === 100 ? $t('basicData.pass') : $t('basicData.waiting') }}
          </el-tag>  
        </template> 
          </el-table-column>
    </el-table>
      </div>
    </el-card>
  <el-dialog v-model="blind" top="30vh" width="25%" title="是否开始上片?" >
  <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handle">
          确认
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="blind = false">取消</el-button>
        <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
  <el-dialog v-model="blinda" top="30vh" width="25%" title="是否暂停?" >
  <el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('basicData.whetherpause')">
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handlea">
          确认
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="blinda = false">取消</el-button>
        <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
  <el-dialog v-model="blindb" top="30vh" width="25%" title="是否停止任务?" >
  <!-- <el-dialog v-model="blindb" top="30vh" width="25%" title="是否停止任务?" >
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleb">
@@ -671,31 +671,31 @@
        <el-button @click="blindb = false">取消</el-button>
      </div>
    </template>
  </el-dialog>
  </el-dialog> -->
      <div id="parent">
        <img src="../../assets/shangpianji.png" alt="" style="max-width: 20%;max-height: 20%;margin-top: 20px;margin-left: 500px;">
        <div id="overlay" v-show="flake"></div>
        <div id="overlaya" v-show="flakea"></div>
      </div>
      <div style="margin-top: -350px;margin-left: 650px;">
        <el-table :data="tableDataa" border style="width: 70%"
        <el-table :data="tableDataa" border style="width: 85%"
     :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
        >
          <el-table-column prop="workstationId" align="center" label="工位" min-width="50" />
          <el-table-column prop="patternWidth" align="center" label="宽" min-width="80" />
          <el-table-column prop="patternHeight" align="center" label="高" min-width="80" />
          <el-table-column prop="filmsId" align="center" label="膜系" min-width="80" />
          <el-table-column prop="number" align="center" label="数量" min-width="80" />
          <el-table-column fixed="right" label="操作" align="center" width="150">
          <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" />
          <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
          <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
          <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
          <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" />
          <el-table-column fixed="right" :label="$t('basicData.operate')" align="center" width="150">
            <template #default="scope">
              <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">添加</el-button>
              <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">删除</el-button>
              <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">{{ $t('basicData.add') }}</el-button>
              <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">{{ $t('basicData.delete') }}</el-button>
            </template>
        </el-table-column>
        </el-table>
    </div>
    
  <el-dialog v-model="add" top="23vh" width="45%" title="添加原片" >
  <el-dialog v-model="add" top="23vh" width="45%" :title="$t('basicData.addglass')" >
    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
            <el-form  size="mini" label-width="150px">
      <el-form label-width="70px" label-position="right">
@@ -703,12 +703,12 @@
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item label="宽:" :required="true" style="width: 14vw">
              <el-form-item :label="$t('basicData.widtha')" :required="true" style="width: 14vw">
               <el-select  
                      v-model="selectedValue"  
                      filterable  
                      clearable  
                      placeholder="请选择宽"
                      :placeholder="$t('basicData.selectwidth')"
                      style="width: 220px"  
                      @input="handleInputChangea"  
                    >  
@@ -725,12 +725,12 @@
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item label="高:" :required="true" style="width: 14vw">
          <el-form-item :label="$t('basicData.heighta')" :required="true" style="width: 14vw">
            <el-select  
                      v-model="selectedValuea"  
                      filterable  
                      clearable  
                      placeholder="请选择高"
                      :placeholder="$t('basicData.selectheight')"
                      style="width: 220px"  
                      @input="handleInputChangea"  
                    >  
@@ -749,12 +749,12 @@
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item label="膜系:" :required="true" style="width: 14vw;">
              <el-form-item :label="$t('basicData.coatingtypesa')"  :required="true" style="width: 14vw;">
                <el-select  
                      v-model="selectedValueb"  
                      filterable  
                      clearable  
                      placeholder="请选择膜系"
                      :placeholder="$t('basicData.selectcoatingtypes')"
                      style="width: 220px"  
                      @input="handleInputChangea"  
                    >  
@@ -770,12 +770,12 @@
          <el-col :span="9">
            <div id="dta" style="font-size: 15px;">
        <div>
              <el-form-item label="厚度:" :required="true" style="width: 14vw">
              <el-form-item :label="$t('basicData.thicknessa')" :required="true" style="width: 14vw">
                <el-select  
                      v-model="selectedValuec"  
                      filterable  
                      clearable  
                      placeholder="请选择厚度"
                      :placeholder="$t('basicData.selectthickness')"
                      style="width: 220px"  
                      @input="handleInputChangea"  
                    >  
@@ -794,8 +794,8 @@
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item label="数量:" :required="true" style="width: 14vw;">
                <el-input  v-model="number" autocomplete="off" />
              <el-form-item :label="$t('basicData.quantitya')" :required="true" style="width: 14vw;">
                <el-input :placeholder="$t('basicData.selectquantity')" v-model="number" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
@@ -805,31 +805,31 @@
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleConfirm">
          确认
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="add = false">取消</el-button>
        <el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
  <el-dialog v-model="adda" top="30vh" width="25%" title="是否删除该条信息?" >
  <el-dialog v-model="adda" top="30vh" width="25%" :title="$t('basicData.deletemessage')">
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleConfirma">
          确认
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="adda = false">取消</el-button>
        <el-button @click="adda = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>
        </div>
  <el-dialog v-model="dialogFormVisible" top="24vh" width="30%" title="工程" >
  <el-dialog v-model="dialogFormVisible" top="24vh" width="30%" :title="$t('basicData.project')" >
    <div style="margin-left: 50px;margin-bottom: 10px;">
      <el-form-item label="工程号:" :required="true">
      <el-form-item :label="$t('basicData.projectnumber')" :required="true">
        <el-select  
           v-model="selectedProjectNo"  
           filterable  
           clearable  
           placeholder="请选择工程"
           :placeholder="$t('basicData.plselectproject')"
           style="width: 220px"  
           @input="handleInputChange"  
         >  
@@ -845,9 +845,9 @@
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleup">
          确认
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="dialogFormVisible = false">取消</el-button>
        <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>