ZengTao
2024-04-29 91e4ba507f9806c975a4273154d79f1a43b836c4
UI-Project/src/views/Returns/returns.vue
@@ -4,53 +4,54 @@
import {useRouter} from "vue-router"
const router = useRouter()
import type { TableColumnCtx } from 'element-plus'
// import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
const dialogFormVisible = ref(false)
const blind = ref(false)
const blinda = ref(false)
const blindb = ref(false)
const add = ref(false)
const adda = ref(false)
const flake = ref(false)
const flakea = ref(false)
// const value = ref('')
import request from "@/utils/request"
import { ref, onMounted } from "vue";
// import http from "@/http/index";
let ruleForm = ref({
  // engineeringId: '',
  workstationId: '',
  patternHeigth: '',
  patternWidth: '',
  filmsId: '',
  patternThickness: '',
  number: '',
})
const tableDataa = ref([])
  
 const requestData = {
    // projectNo:"P24030805",
    state:100
  };
  const tableData = reactive([]);
//   let filterData = ref({
//   damageDetails: {
//     state: '',
//   },
// })
// 发送获取表格数据的请求
const fetchTableData = async () => {
  try {
    // 发送获取表格数据的请求,并等待响应
    // const response = await request.post("/loadGlass/optimizeProject/listByState", requestData);
    const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
    // 检查响应状态
    if (response.code === 200) {
      // 更新表格数据
      console.log('成功获取表格数据:', response.data);
      tableData.splice(0, tableData.length, ...response.data);
      window.localStorage.setItem('engineeringId', response.data[0].engineeringId)
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
@@ -64,32 +65,93 @@
          if (res.code == 200) {
          console.log(res.data);
          tableDataa.value = res.data
          // workstationId.value = res.data[0].workstationId
      window.localStorage.setItem('patternWidth', res.data.patternWidth)
      window.localStorage.setItem('workstationId', res.data.workstationId)
      let workstationIda = window.localStorage.getItem('workstationId')
      let patternWidth = window.localStorage.getItem('patternWidth')
      if (patternWidth !== '' || workstationIda == '1') {
      flake.value = true
    } else if (patternWidth !== '' || workstationIda == '2') {
      flakea.value = true
    }
          } else {
          ElMessage.warning(res.msg)
          router.push("/login")
          // router.push("/login")
          }
          });
//定义接收加载表头下拉数据
const titleSelectJson = ref({
  processType: [],
})
// const getBasicData = ref({
//   id: '',
//   projectNo: '',
// })
// const requestData = {
//     // projectNo:"P24030805",
//     state:100
//   };
// request.post("/loadGlass/optimizeProject/listByState", requestData)
// .then((res) => {
//           if (res.code == 200) {
//     titleSelectJson.value.processType = res.data;
//           console.log(res.data);
//           } else {
//           ElMessage.warning(res.msg)
//           // router.push("/login")
//           }
//           });
          // 初始请求参数
const requestData = {
  state: 100
};
// 响应式数据
const selectedProjectNo = ref(''); // 当前选中的工程号
const options = ref<any[]>([]); // 下拉选项列表
// 调用接口获取选项数据的函数
const fetchOptions = async (queryString: string) => {
  try {
    // 发送请求到后端接口
    const response = await request.post('/loadGlass/optimizeProject/listByState', {
      ...requestData,
      query: queryString // 将查询字符串作为参数传递
    });
    if (response.code == 200) {
    titleSelectJson.value.processType = response.data;
})
const getBasicData = ref({
  id: '',
  projectNo: '',
})
request.post("/loadGlass/optimizeProject/listByState", requestData)
.then((res) => {
          if (res.code == 200) {
    titleSelectJson.value.processType = res.data;
          console.log(res.data);
          } else {
          ElMessage.warning(res.msg)
          router.push("/login")
          }
          });
    //   titleSelectJson.value.processType = response.data(item => ({
    //   // options.value = response.data.data.map(item => ({
    //     value: item.projectNo,
    //     // label: item.id // 假设后端返回的数据中有  字段作为显示标签
    //   }));
    console.log(response.data);
    } else {
      ElMessage.warning(response.data);
    }
  } catch (error) {
    console.error('Error fetching options:', error);
  }
};
// 处理用户输入变化的方法
const handleInputChange = async (value: string) => {
  if (value) {
    await fetchOptions(value);
  } else {
    options.value = []; // 清空选项列表
  }
};
// 初始化加载数据(如果需要)
onMounted(() => {
  // 在组件挂载后调用 fetchOptions('') 来加载初始数据(如果需要)
  fetchOptions('');
});
// const billall  = () => {
//   request.post("/loadGlass/optimizeProject/listByState", requestData)
//     .then((res: any) => {
@@ -105,26 +167,14 @@
let titleUploadData = ref({
  projectNo:'',
})
// const billall = {
//   data () {
//     return {
//       form: {
//         projectNo: '',
//       },
//       billall:[],
//     }
//   },
//   methods:{
//   }
// }
// const engineeringId = ref('');
const workstationId = ref('');
const patternHeigth = ref('');
const patternWidth = ref('');
const filmsId = ref('');
const patternThickness = ref('');
const number = ref('');
// 添加
    const handleConfirm = async () => {
  try {
@@ -136,11 +186,18 @@
      patternThickness: patternThickness.value,
      number: number.value
    }); 
    if (response.code == 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      add.value = false;
      window.localStorage.setItem('workstationId', response.data.workstationId)
      let workstationId = window.localStorage.getItem('workstationId')
      if (workstationId == '1') {
      flake.value = true
    } else if (workstationId == '2'){
      flakea.value = true
    }
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
@@ -161,11 +218,18 @@
      patternThickness: 0,
      number: 0
    }); 
    if (response.code == 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      adda.value = false;
      window.localStorage.setItem('workstationId', response.data.workstationId)
      let workstationId = window.localStorage.getItem('workstationId')
      if (workstationId == '1') {
      flake.value = false
    } else if (workstationId == '2'){
      flakea.value = false
    }
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
@@ -175,67 +239,154 @@
    console.error(error);
  }
};
onMounted(fetchTableData);
interface User {
  id: string
  name: string
  amount1: string
  amount2: string
  amount3: number
}
interface SpanMethodProps {
  row: User
  column: TableColumnCtx<User>
  rowIndex: number
  columnIndex: number
}
const objectSpanMethod = ({
  row,
  column,
  rowIndex,
  columnIndex,
}: SpanMethodProps) => {
  if (columnIndex === 0) {
    if (rowIndex % 2 === 0) {
      return {
        rowspan: 2,
        colspan: 1,
      }
// 开始上片
const handle = async () => {
  try  {
  let engineeringId = window.localStorage.getItem('engineeringId')
console.log(engineeringId);
if (engineeringId !== '') {
  const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
      engineeringId: engineeringId,
      state: 1,
    })
    if (response.code == 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      blind.value = false;
    } else {
      return {
        rowspan: 0,
        colspan: 0,
      }
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
    }
  }
}
const open = () => {
  ElMessageBox.confirm(
    '是否删除该条信息?',
    '提示',
    {
      confirmButtonText: '是',
      cancelButtonText: '取消',
      type: 'warning',
    }
  )
    .then(() => {
      ElMessage({
        type: 'success',
        message: '删除成功!',
      })
    })
    .catch(() => {
    else  {
      ElMessage({
        type: 'info',
        message: '删除失败',
        message: '工程号不能为空!',
      })
    })
    }
}
catch (error) {
    // 处理错误
    console.error(error);
  }
}
// 暂停
const handlea = async () => {
  try  {
  let engineeringId = window.localStorage.getItem('engineeringId')
console.log(engineeringId);
if (engineeringId !== '') {
  const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
      engineeringId: engineeringId,
      state: 0,
    })
    if (response.code == 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      blinda.value = false;
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
    }
  }
    else  {
      ElMessage({
        type: 'info',
        message: '工程号不能为空!',
      })
    }
}
catch (error) {
    // 处理错误
    console.error(error);
  }
}
// 开始上片
const handleb = async () => {
  try  {
  let engineeringId = window.localStorage.getItem('engineeringId')
console.log(engineeringId);
if (engineeringId !== '') {
  const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
      engineeringId: engineeringId,
      state: 0,
    })
    if (response.code == 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      blindb.value = false;
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
    }
  }
    else  {
      ElMessage({
        type: 'info',
        message: '工程号不能为空!',
      })
    }
}
catch (error) {
    // 处理错误
    console.error(error);
  }
}
onMounted(fetchTableData);
// const open = () => {
//   ElMessageBox.confirm(
//     '是否删除该条信息?',
//     '提示',
//     {
//       confirmButtonText: '是',
//       cancelButtonText: '取消',
//       type: 'warning',
//     }
//   )
//     .then(() => {
//       ElMessage({
//         type: 'success',
//         message: '删除成功!',
//       })
//     })
//     .catch(() => {
//       ElMessage({
//         type: 'info',
//         message: '删除失败',
//       })
//     })
// }
// 开始上片
const handleBind = (row) => {
  // engineeringId.value = row.engineeringId;
  blind.value = true; // 打开绑定架子对话框
};
// 暂停
const handleBinda = (row) => {
  // engineeringId.value = row.engineeringId;
  blinda.value = true; // 打开绑定架子对话框
};
// 停止任务
const handleBindb = (row) => {
  // engineeringId.value = row.engineeringId;
  blindb.value = true; // 打开绑定架子对话框
};
// 添加
const handleBindRack = (row) => {
  workstationId.value = row.workstationId; // 假设rackNumber是架号字段的属性名
  add.value = true; // 打开绑定架子对话框
};
// 删除
const handleBindRacka = (row) => {
  workstationId.value = row.workstationId; // 假设rackNumber是架号字段的属性名
  adda.value = true; // 打开绑定架子对话框
};
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
@@ -274,7 +425,7 @@
  ],
})
</script>
<template>
  <div>
    <div id="dotClass">
@@ -287,9 +438,10 @@
    <el-button style="margin-left: 30px;margin-top: -3px;" >手动确认</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">开始上片</el-button>
    <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" >暂停</el-button>
    <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="danger" >停止任务</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: 20px;"  id="searchButton" type="danger" @click="handleBindb">停止任务</el-button>
    <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
    <el-table
@@ -310,14 +462,48 @@
            min-width="80"
            prop="state"
          >
          <!-- <el-tag type="success" v-if="damageDetails.state === 1">就绪</el-tag> -->
          <!-- <el-tag type="danger" v-if="row.enableState==2">未就绪</el-tag> -->
          <template #default="scope">
            <el-tag type="success" >{{ scope.row.state==1?"就绪":"未就绪"  }}</el-tag>
          </template>
          </el-table-column>
    </el-table>
      </div>
    </el-card>
  <el-dialog v-model="blind" top="30vh" width="25%" title="是否开始上片?" >
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handle">
          确认
        </el-button>
        <el-button @click="blind = false">取消</el-button>
      </div>
    </template>
  </el-dialog>
  <el-dialog v-model="blinda" top="30vh" width="25%" title="是否暂停?" >
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handlea">
          确认
        </el-button>
        <el-button @click="blinda = false">取消</el-button>
      </div>
    </template>
  </el-dialog>
  <el-dialog v-model="blindb" top="30vh" width="25%" title="是否停止任务?" >
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleb">
          确认
        </el-button>
        <el-button @click="blindb = false">取消</el-button>
      </div>
    </template>
  </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: 60%"
@@ -328,39 +514,14 @@
          <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">
            <template #default>
              <el-button size="mini" type="text" plain @click="add = true">添加</el-button>
              <el-button size="mini" type="text" plain @click="adda = true">删除</el-button>
            <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>
            </template>
        </el-table-column>
        </el-table>
    </div>
        </div>
  <el-dialog v-model="dialogFormVisible" top="24vh" width="30%" title="工程" >
    <div style="margin-left: 50px;margin-bottom: 10px;">
      <el-form-item label="工程号:" :required="true">
        <el-select  v-model="getBasicData.projectNo" clearable placeholder="请选择工程" style="width: 220px"
                   >
            <el-option
                v-for="item in titleSelectJson['processType']"
                :key="item.id"
                :label="item.projectNo"
                :value="item.projectNo"
            />
          </el-select>
              </el-form-item>
          </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="dialogFormVisible = false">
          确认
        </el-button>
        <el-button @click="dialogFormVisible = false">取消</el-button>
      </div>
    </template>
  </el-dialog>
  <el-dialog v-model="add" top="23vh" width="45%" title="添加原片" >
    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
            <el-form  size="mini" label-width="150px">
@@ -419,7 +580,7 @@
      </div>
    </template>
  </el-dialog>
  <el-dialog v-model="adda" top="25vh" width="25%" title="是否删除" >
  <el-dialog v-model="adda" top="30vh" width="25%" title="是否删除该条信息?" >
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="handleConfirma">
@@ -429,10 +590,51 @@
      </div>
    </template>
  </el-dialog>
        </div>
  <el-dialog v-model="dialogFormVisible" top="24vh" width="30%" title="工程" >
    <div style="margin-left: 50px;margin-bottom: 10px;">
      <el-form-item label="工程号:" :required="true">
        <el-select
           v-model="selectedProjectNo"
           filterable
           clearable
           placeholder="请选择工程"
           style="width: 220px"
           @input="handleInputChange"
         >
      <el-option
         v-for="item in titleSelectJson['processType']"
         :key="item.id"
         :label="item.projectNo"
         :value="item.projectNo"
      />
    </el-select>
        <!-- <el-select  v-model="getBasicData.projectNo" clearable placeholder="请选择工程" style="width: 220px"
                   >
            <el-option
                v-for="item in titleSelectJson['processType']"
                :key="item.id"
                :label="item.projectNo"
                :value="item.projectNo"
            />
          </el-select> -->
              </el-form-item>
          </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="dialogFormVisible = false">
          确认
        </el-button>
        <el-button @click="dialogFormVisible = false">取消</el-button>
      </div>
    </template>
  </el-dialog>
</template>
<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{
@@ -457,8 +659,8 @@
  width: 212px;
  height: 15px;
  background-color: #529b2e;
  margin-top: -407px;
  margin-left: 171px;
  margin-top: -404px;
  margin-left: 542px;
}
#overlaya{
  position: absolute;
@@ -466,8 +668,8 @@
  width: 212px;
  height: 15px;
  background-color: #529b2e;
  margin-top: -40px;
  margin-left: 167px;
  margin-top: -38px;
  margin-left: 537px;
}
</style>