wu
2024-09-27 03baf3dc978f9e71d9e96a45978a42b932fbd505
UI-Project/src/views/GlassStorage/rawfilmstorage.vue
@@ -17,46 +17,81 @@
const dialogFormVisiblea = ref(false)
const dialogFormVisibleb = ref(false)
const dialogFormVisiblec = ref(false)
const timeRange = ref(["2022-01-01", "2025-01-01"])
const timeRange = ref(["2022-01-01 00:00:00", "2025-01-01 00:00:00"])
const selectValuesa = reactive([]);
let webSocket: WebSocket | null = null;
  const patternWidth = ref('');
  const patternHeight = ref('');
  const patternThickness = ref('');
  const filmsId = ref('');
  const remainQuantity = ref('');
  const slot = ref('');
  let webSocket: WebSocket | null = null;
const value = ref('')
const options = [
  {
    value: t('film.warehousing1'),
    value: 1,
    label: t('film.warehousing1'),
  },
  {
    value: t('film.warehousing2'),
    value: 2,
    label: t('film.warehousing2'),
  }
]
const report = ref({
  enableType: '',
  enableState: '',
  taskType: '',
  taskState: '',
});
request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest",{
      beginDate: "2022-01-01 00:00:00",
      endDate: "2025-01-01 00:00:00",
}).then((response) => {
          if (response.code == 200) {
            tableDataa.value = response.data
            console.log(tableDataa.value);
          } else {
          ElMessage.warning(response.msg)
          }
          });
onMounted(() => {
  // closeWebSocket();
  debugger
  // console.log("--------------webSocket")
    socket = initializeWebSocket(socketUrl, handleMessage);
});
  onUnmounted(() => {
    if (socket) {
    closeWebSocket(socket);
    }
    });
let socket = null;
const socketUrl = `ws://${WebSocketHost}:${host}/api/glassStorage/api/talk/rawGlass`;
const handleMessage = (data) => {
  if(data.tasks !=null){
  tableDataa.value = data.tasks[0]
  console.log(data.tasks[0]);
  }
  if(data.rack !=null){
  tableDatab.value = data.rack[0]
  if(data.rawStationDetailsList !=null){
  tableDatab.value = data.rawStationDetailsList[0]
  }
};
// 修改数量
const handleConfirmb = async () => {
  let slotId = window.localStorage.getItem('slotId')
  try {
    const response = await request.post('/glassStorage/rawGlassStorageDetails/updateQuantity', {
      slotId: slotId,
      remainQuantity: remainQuantity.value,
  }
  );
    if (response.code === 200) {
      ElMessage.success(response.message);
      dialogFormVisiblec.value = false;
      tableDatab.value = response.data;
    } else {
      ElMessage.error(response.message);
    }
  } catch (error) {
    console.error(error);
  }
};
  // 删除 
 const opena = async(row) => {
 const deleteWarehousing = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(  
      t('film.dedelete'), 
@@ -68,7 +103,10 @@
      } 
    );
    if (confirmResult === 'confirm') {
      const response = await request.post("/loadGlass/sys/user/deleteUser",  [row.id])
    var url="/glassStorage/rawGlassStorageDetails/deleteWarehousing?slotId="+row.slotId;
    const response = await request.post(url)
      // const response = await request.post("/glassStorage/rawGlassStorageDetails/deleteWarehousing",[row.slotId])
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
@@ -79,30 +117,7 @@
    console.error('发生错误:', error);  
  }  
};  
  // 禁用
  const openb = async(row) => {
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('film.dedisable'),
      t('productStock.prompt'),
      {
        confirmButtonText: t('productStock.yes'),
        cancelButtonText: t('productStock.cancel'),
        type: 'warning',
      }
    );
    if (confirmResult === 'confirm') {
      const response = await request.post("/loadGlass/sys/user/deleteUser",  [row.id])
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
      ElMessage.error(response.msg);
      }
    }
  } catch (error) {
    console.error('发生错误:', error);
  }
};
  // 出库 
  const openc = async(row) => {  
  try {
@@ -116,12 +131,14 @@
      } 
    );
    if (confirmResult === 'confirm') {
      const response = await request.post("/loadGlass/sys/user/deleteUser",  [row.id])
      var url="/glassStorage/rawGlassStorageDetails/outWarehousing?slotId="+row.slotId;
      const response = await request.post(url)
      // const response = await request.post("/glassStorage/rawGlassStorageDetails/outWarehousing",[row.slotId])
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {
      ElMessage.error(response.msg);
      }
      }
    }  
  } catch (error) {
    console.error('发生错误:', error);  
@@ -141,45 +158,74 @@
      stateList=[selectValuesa[1]];
    }
  }
  const response = await request.post("/glassStorage/raw_glass_storage_task/selectRawglasstask", {
    createTime: timeRange.value[0],
    patternQuantity: timeRange.value[1],
    enableType: stateList,
    enableState: celllist
  const response = await request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest", {
    beginDate: timeRange.value[0],
    endDate: timeRange.value[1],
    taskState: stateList,
    taskType: celllist
  })
  if (response.code === 200) {
    tableDataa.value = response.data;
    // tableDataa.value = response.data;
    ElMessage.success(response.message);
  } 
  else {
    ElMessage.error(response.message);
  }
};
// 入库
const handleConfirma = async () => {
  try {
    const response = await request.post('/glassStorage/rawGlassStorageDetails/patternWarehousing', {
      patternWidth: patternWidth.value,
      patternHeight: patternHeight.value,
      patternThickness: patternThickness.value,
      filmsId: filmsId.value,
      remainQuantity: remainQuantity.value,
      slotId: slot.value,
    });
    if (response.code === 200) {
      ElMessage.success(response.message);
      dialogFormVisibleb.value = false;
      patternWidth.value = '';
      patternHeight.value = '';
      patternThickness.value = '';
      filmsId.value = '';
      remainQuantity.value = '';
      slot.value = '';
    } else {
      ElMessage.error(response.message);
    }
  } catch (error) {
    console.error(error);
  }
};
// 是否禁用
const toggleEnableState = async (row: any) => {
const toggleEnableState = async (row: any) => {
  if (!row.deviceId) {  
    ElMessage.error(t('basicData.updatanull'));  
    return;
  }  
  const newState = row.enableState === 1 ? 0 : 1;
  try {
    // 发送请求到后端更新状态
    const response = await request.post('/glassStorage/rawGlassStorageDetails/updateEnableState', { deviceId: row.deviceId, enableState: newState });
  const newState = row.state === 1 ? 0 : 1;
  try {
    var url="/glassStorage/rawGlassStorageStation/updateSlotState?slot="+row.deviceId + "&state=" + newState;
    const response = await request.post(url)
    if (response.code === 200) {  
      ElMessage.success(response.message);  
      row.enableState = newState;
      row.state = newState;
    } else {  
      ElMessage.error(response.message);  
    }  
  } catch (error) {
  row.state = newState;
} catch (error) {
    ElMessage.error(t('basicData.glassnull'));   
  }  
}; 
const handleEdit = (row) => {
  window.localStorage.setItem('slotId', row.slotId)
  dialogFormVisiblec.value = true;
};
function getStatusType1(enableType) {
switch (enableType) {
function getStatusType1(taskType) {
switch (taskType) {
  case 1:  
    return 'info';  
  case 2:  
@@ -188,8 +234,8 @@
    return 'success';  
}  
}
function getStatusText1(enableType) {
switch (enableType) {
function getStatusText1(taskType) {
switch (taskType) {
  case 1:  
    return t('film.stocke');//入库
  case 2:  
@@ -198,8 +244,8 @@
  return t('film.dispatch');//调度
}  
}
function getStatusType2(enableState) {
switch (enableState) {
function getStatusType2(taskState) {
switch (taskState) {
  case 1:  
    return 'info';  
  case 2:  
@@ -208,8 +254,8 @@
    return 'success';  
}  
}
function getStatusText2(enableState) {
switch (enableState) {
function getStatusText2(taskState) {
switch (taskState) {
  case 1:  
    return t('film.built');//新建
  case 2:  
@@ -218,6 +264,11 @@
  return t('film.finish');//完成
}  
}
// onUnmounted(() => {
//     if (socket) {
//     closeWebSocket(socket);
//     }
//     });
onBeforeUnmount(() => {
  closeWebSocket();
}); 
@@ -227,8 +278,12 @@
  <div style="display: flex; flex-direction: row; align-items: center; margin-top: 20px;">  
    <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="dialogFormVisiblea = true">{{ $t('film.mes') }}</el-button>
  <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('film.warehousing') }}</el-button>
    <el-date-picker style="margin-left: 10px;"  v-model="timeRange" type="daterange" format="YYYY/MM/DD" value-format="YYYY-MM-DD"
      :start-placeholder="$t('film.starttime')" :end-placeholder="$t('film.endtime')" :default-time="defaultTime" />
    <el-date-picker style="margin-left: 10px;"  v-model="timeRange" type="datetimerange"
        format="YYYY/MM/DD HH:mm:ss"
        value-format="YYYY-MM-DD HH:mm:ss"
        :start-placeholder="$t('film.starttime')"
        :end-placeholder="$t('film.endtime')"
        :default-time="defaultTime" />
    <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" style="margin-left: 10px;" >
      <el-option :label="$t('film.built')" value="1"></el-option>
      <el-option :label="$t('film.execution')" value="2"></el-option>
@@ -245,29 +300,29 @@
      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
        <el-table height="300" ref="table"
        :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
          <el-table-column prop="enableId" align="center" :label="$t('film.enableid')"/>
          <el-table-column prop="id" align="center" :label="$t('film.enableid')"/>
          <el-table-column prop="originateSlot" align="center" :label="$t('film.originateslot')"/>
          <el-table-column prop="endSlot" align="center" :label="$t('film.endslot')"/>
          <el-table-column prop="patternQuantity" align="center" :label="$t('film.patternquantity')"/>
          <el-table-column
          align="center"
          :label="$t('film.enabletype')"
          prop="enableType"
          prop="taskType"
        >
        <template #default="scope">  
      <el-tag :type="getStatusType1(scope.row.enableType)">
        {{ getStatusText1(scope.row.enableType) }}
      <el-tag :type="getStatusType1(scope.row.taskType)">
        {{ getStatusText1(scope.row.taskType) }}
      </el-tag>  
    </template> 
        </el-table-column>
        <el-table-column
          align="center"
          :label="$t('film.enablestate')"
          prop="enableState"
          :label="$t('film.taskstatus')"
          prop="taskState"
        >
        <template #default="scope">  
      <el-tag :type="getStatusType2(scope.row.enableState)">
        {{ getStatusText2(scope.row.enableState) }}
      <el-tag :type="getStatusType2(scope.row.taskState)">
        {{ getStatusText2(scope.row.taskState) }}
      </el-tag>  
    </template> 
        </el-table-column>
@@ -284,6 +339,7 @@
    <el-table  ref="table" style="margin-top: 20px;height: 700px;"
        :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
          <el-table-column prop="deviceId" fixed align="center" :label="$t('film.station')" min-width="80"/>
          <el-table-column prop="slotId" fixed align="center" :label="$t('film.slot')" min-width="80"/>
          <el-table-column prop="patternWidth" align="center" :label="$t('film.width')"  min-width="80" />
          <el-table-column prop="patternHeight" align="center" :label="$t('film.height')" min-width="80" />
          <el-table-column prop="patternThickness" align="center" :label="$t('film.thickness')" min-width="80" />
@@ -293,36 +349,36 @@
          align="center"
            :label="$t('film.enablestate')"
            min-width="80"
            prop="enablestate"
            prop="state"
          >
          <template #default="scope">  
          <el-tag  
            :type="scope.row.enableState == 1 ? 'success' : 'danger'"
            :type="scope.row.state == 1 ? 'success' : 'danger'"
            @click="toggleEnableState(scope.row)"  
            >  
            {{ scope.row.enableState == 1 ? $t('film.start') : $t('film.disable')}}
            {{ scope.row.state == 1 ? $t('film.start') : $t('film.disable')}}
          </el-tag>  
        </template> 
          </el-table-column>
          <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270">
            <template #default="scope">
              <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('film.exit') }}</el-button>
              <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('film.delete') }}</el-button>
              <el-button size="mini" type="text" plain @click="deleteWarehousing(scope.row)">{{ $t('film.delete') }}</el-button>
              <el-button size="mini" type="text" plain @click="openc(scope.row)">{{ $t('film.outbound') }}</el-button>
            </template>
        </el-table-column>
        </el-table>
</el-dialog>
<el-dialog v-model="dialogFormVisibleb" top="15vh" width="60%">
  <div style="margin-top: 10px;margin-bottom: 10px;">
      <el-form size="mini" label-width="150px">
      <el-form label-width="70vm" label-position="right">
        <el-row >
<el-dialog v-model="dialogFormVisibleb" top="23vh" width="55%" :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="100px" label-position="right">
        <el-row style="margin-top: -15px;margin-bottom: -2px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('film.widtha')" :required="true" style="width: 17vw;">
                <el-input :placeholder="$t('film.inwidth')" v-model="number" autocomplete="off" />
                <el-input :placeholder="$t('film.inwidth')" v-model="patternWidth" autocomplete="off" />
              </el-form-item>
              </div></div>
          </el-col>
@@ -330,7 +386,7 @@
            <div id="dta" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('film.heighta')" :required="true" style="width: 17vw;">
                <el-input :placeholder="$t('film.inheight')" v-model="number" autocomplete="off" />
                <el-input :placeholder="$t('film.inheight')" v-model="patternHeight" autocomplete="off" />
              </el-form-item></div>
              </div>
          </el-col>
@@ -340,14 +396,14 @@
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('film.thicknessa')" :required="true" style="width: 17vw;">
                <el-input :placeholder="$t('film.inthickness')" v-model="number" autocomplete="off" />
                <el-input :placeholder="$t('film.inthickness')" v-model="patternThickness" 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('film.filmsa')" :required="true" style="width: 17vw;">
                <el-input :placeholder="$t('film.infilms')" v-model="number" autocomplete="off" />
                <el-input :placeholder="$t('film.infilms')" v-model="filmsId" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
@@ -355,24 +411,26 @@
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item :label="$t('film.quantitya')" :required="true" style="width: 17vw;">
                <el-input :placeholder="$t('film.inquantity')" v-model="number" autocomplete="off" />
          <el-form-item :label="$t('film.quantitya')" :required="true" style="width: 17vw;">
                <el-input :placeholder="$t('film.inquantity')" v-model="remainQuantity" 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('film.inwarehousing')" :required="true" style="width: 17vw">
            <el-select :placeholder="$t('film.selectwarehousing')">
      <el-option
        v-for="item in options"
        :key="item.value"
        :label="item.label"
        :value="item.value"
      />
            <el-select
            :placeholder="$t('film.selectwarehousing')"
             style="width: 270px"
             v-model="slot">
               <el-option
                v-for="item in options"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              />
          </el-select>
              </el-form-item></div>
              </div>
              </el-form-item></div></div>
          </el-col>
        </el-row>
        </el-form>
@@ -380,26 +438,26 @@
          </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleConfirm">
        <el-button type="primary" @click="handleConfirma">
          {{ $t('basicData.confirm') }}
        </el-button>
        <el-button @click="dialogFormVisibleb = false">{{ $t('basicData.cancel') }}</el-button>
      </div>
    </template>
</el-dialog>
  </el-dialog>
<el-dialog v-model="dialogFormVisiblec" top="21vh" width="40%">
    <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
      <el-form size="mini" label-width="100px">
        <el-form label-width="210px" label-position="right">
          <el-form-item :label="$t('film.thickremainquantity')" :required="true" style="width: 25vw">
            <el-input v-model="workstationId" autocomplete="off" />
            <el-input v-model="remainQuantity" autocomplete="off" />
          </el-form-item>
        </el-form>
      </el-form>
    </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleConfirm">
        <el-button type="primary" @click="handleConfirmb">
          {{ $t('reportWork.sure') }}
        </el-button>
        <el-button @click="dialogFormVisiblec = false">{{ $t('reportWork.cancel') }}</el-button>