<script lang="ts" setup>
|
import {onBeforeUnmount, onMounted, onUnmounted, reactive, ref} from "vue";
|
import {useRouter} from "vue-router"
|
import {ElMessage} from 'element-plus'
|
import {useI18n} from 'vue-i18n'
|
import {host, WebSocketHost} from '@/utils/constants'
|
import request from "@/utils/request"
|
import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService';
|
|
const router = useRouter()
|
const {t} = useI18n()
|
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 flakeb = ref(false)
|
const flakec = ref(false)
|
const dialoglea = ref(false)
|
const tableDatax = ref([])
|
const user = ref('');
|
const projectNo = ref('');
|
const workstationId = ref('');
|
const id = ref('');
|
const patternHeight = ref('');
|
const patternWidth = ref('');
|
const filmsId = ref('');
|
const patternThickness = ref('');
|
const number = ref('');
|
const canSelectProject = ref(true);
|
const canStartLoading = ref(false);
|
const ida = ref(null);
|
const selectedProjectNo = ref('');
|
const selectedProjectNoa = ref('');
|
const selectedValue = ref('');
|
const selectedValuea = ref('');
|
const selectedValueb = ref('');
|
const selectedValuec = ref('');
|
const upstatus = ref(t('basicData.machineaa'));
|
const cuttingMachine = ref('');
|
const cuttingMachineStatusColor = ref('#911005'); // 用于动态设置i标签的背景色
|
const inKageWord = ref(0); // 用于存储要传递给接口的inKageWord值
|
const options = ref<any[]>([]);
|
const selectOptions = ref<Array<any>>([]);
|
const selectOptionsa = ref<Array<any>>([]);
|
const selectOptionsb = ref<Array<any>>([]);
|
const selectOptionsc = ref<Array<any>>([]);
|
const tableDataa = ref([])
|
const tableData = reactive([]);
|
const fetchTableData = async () => {
|
try {
|
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);
|
const uniqueWidths = new Set(response.data.map(item => item.width));
|
const uniqueHeights = new Set(response.data.map(item => item.height));
|
const uniqueFilmsIds = new Set(response.data.map(item => item.filmsId));
|
const uniqueThicknesses = new Set(response.data.map(item => item.thickness));
|
|
selectOptions.value = Array.from(uniqueWidths).map(width => ({
|
value: width,
|
label: width,
|
}));
|
selectOptionsa.value = Array.from(uniqueHeights).map(height => ({
|
value: height,
|
label: height,
|
}));
|
selectOptionsb.value = Array.from(uniqueFilmsIds).map(filmsId => ({
|
value: filmsId,
|
label: filmsId,
|
}));
|
selectOptionsc.value = Array.from(uniqueThicknesses).map(thickness => ({
|
value: thickness,
|
label: thickness,
|
}));
|
} else {
|
ElMessage.error(response.message);
|
}
|
} catch (error) {
|
// 处理请求失败的情况
|
// ElMessage.error('获取表格数据失败,请重试');
|
}
|
};
|
const handlezhiban = () => {
|
dialoglea.value = true;
|
fetchFlowCardId();
|
};
|
const selectproject = () => {
|
dialogFormVisible.value = true;
|
selectgong();
|
};
|
// 值班信息
|
const fetchFlowCardId = async () => {
|
try {
|
const response = await request.post('/loadGlass/work_assignment/selectWorkAssignment',{
|
line: 2001,
|
workingProcedure : '冷加工'
|
})
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
tableDatax.value = response.data;
|
} else {
|
ElMessage.error(response.message);
|
}
|
}
|
catch (error) {
|
console.error(error);
|
}
|
}
|
const handleConfirmb = async () => {
|
const response = await request.post("/loadGlass/work_assignment/updateWorkAssignment", tableDatax.value)
|
if (response.code === 200) {
|
ElMessage.success(response.message);
|
dialoglea.value = false;
|
} else {
|
ElMessage.error(response.message);
|
}
|
};
|
onMounted(() => {
|
list('');
|
fetchOptions('');
|
socket = initializeWebSocket(socketUrl, handleMessage);
|
});
|
onUnmounted(() => {
|
if (socket) {
|
closeWebSocket(socket);
|
}
|
});
|
const list = async () => {
|
try {
|
const response = await request.get('/loadGlass/LoadGlass/list');
|
if (response.code == 200) {
|
tableDataa.value = response.data
|
if (tableDataa.value.length === 4) {
|
if (tableDataa.value[0].patternHeight > 0 && tableDataa.value[0].patternWidth > 0 && tableDataa.value[0].number > 0) {
|
flake.value = true;
|
}
|
if (tableDataa.value[1].patternHeight > 0 && tableDataa.value[1].patternWidth > 0 && tableDataa.value[1].number > 0) {
|
flakea.value = true;
|
}
|
if (tableDataa.value[2].patternHeight > 0 && tableDataa.value[2].patternWidth > 0 && tableDataa.value[2].number > 0) {
|
flakeb.value = true;
|
}
|
if (tableDataa.value[3].patternHeight > 0 && tableDataa.value[3].patternWidth > 0 && tableDataa.value[3].number > 0) {
|
flakec.value = true;
|
}
|
}
|
} else {
|
ElMessage.warning(response.data);
|
}
|
} catch (error) {
|
console.error('Error fetching options:', error);
|
}
|
};
|
const titleSelectJson = ref({
|
processType: [],
|
})
|
const titleSelectJsona = ref({
|
processTypea: [],
|
})
|
let socket = null;
|
const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
|
const handleMessage = (data) => {
|
if(data.prioritylist!=null){
|
tableData.splice(0, tableData.length, ...data.prioritylist[0]);
|
}
|
if(data.list!=null){
|
tableDataa.value = data.list[0]
|
}
|
if(data.engineering ){
|
if ( Array.isArray(data.engineering) && data.engineering.length !== 0) {
|
canSelectProject.value = false;
|
canStartLoading.value = true;
|
}else{
|
canSelectProject.value = true;
|
canStartLoading.value = false;
|
}
|
}
|
if (data.InkageStatus) {
|
if(data.InkageStatus!=null){
|
const status = data.InkageStatus[0];
|
cuttingMachine.value = status;
|
upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa');
|
cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';
|
inKageWord.value = status === '1' ? 0 : 1;
|
}
|
}
|
};
|
const requestData = {
|
state: 100
|
};
|
const selectgong = async (queryString: string) => {
|
try {
|
const response = await request.post('/loadGlass/optimizeProject/listByState',{
|
...requestData,
|
projectNo: queryString
|
})
|
if (response.code == 200) {
|
titleSelectJson.value.processType = response.data;
|
} else {
|
ElMessage.error(response.message);
|
}
|
}
|
catch (error) {
|
console.error(error);
|
}
|
}
|
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;
|
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 = [];
|
}
|
};
|
// 处理用户输入变化的方法
|
const handleInputChangea = async (value: string) => {
|
if (value) {
|
await fetchOptionsa(value);
|
} else {
|
options.value = []; // 清空选项列表
|
}
|
};
|
onBeforeUnmount(() => {
|
closeWebSocket();
|
});
|
// 添加
|
const handleBindRack = (row) => {
|
workstationId.value = row.workstationId;
|
ida.value = row.id;
|
add.value = true;
|
};
|
// 添加
|
const handleConfirm = async () => {
|
if ((ida.value === 2 || ida.value === 4) && (parseInt(selectedValuea.value, 10) >= 2700)) {
|
try {
|
const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
|
id: workstationId.value,
|
workstationId: workstationId.value,
|
patternHeight: selectedValuea.value,
|
patternWidth: selectedValue.value,
|
filmsId: selectedValueb.value,
|
patternThickness: selectedValuec.value,
|
number: number.value
|
});
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
add.value = false;
|
tableDataa.value = response.data;
|
if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '1') {
|
flake.value = true
|
} else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '2'){
|
flakea.value = true
|
}else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '3'){
|
flakeb.value = true
|
}else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '4'){
|
flakec.value = true
|
}
|
selectedValuea.value = '';
|
selectedValue.value = '';
|
selectedValueb.value = '';
|
selectedValuec.value = '';
|
number.value = '';
|
list()
|
} else {
|
ElMessage.error(response.message);
|
}
|
} catch (error) {
|
// 处理请求错误
|
}
|
}
|
else if( ida.value === 1 || ida.value === 3){
|
try {
|
const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
|
id: workstationId.value,
|
workstationId: workstationId.value,
|
patternHeight: selectedValuea.value,
|
patternWidth: selectedValue.value,
|
filmsId: selectedValueb.value,
|
patternThickness: selectedValuec.value,
|
number: number.value
|
});
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
add.value = false;
|
tableDataa.value = response.data;
|
if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '1') {
|
flake.value = true
|
} else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '2'){
|
flakea.value = true
|
}else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '3'){
|
flakeb.value = true
|
}else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '4'){
|
flakec.value = true
|
}
|
selectedValuea.value = '';
|
selectedValue.value = '';
|
selectedValueb.value = '';
|
selectedValuec.value = '';
|
number.value = '';
|
list()
|
} else {
|
// 请求失败,显示错误消息
|
ElMessage.error(response.message);
|
}
|
} catch (error) {
|
// 处理请求错误
|
}
|
}
|
else {
|
ElMessage({
|
type: 'info',
|
message: t('basicData.pause'),
|
})
|
}
|
};
|
// 删除
|
const handleConfirma = async () => {
|
try {
|
const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
|
workstationId: workstationId.value,
|
patternHeight: 0,
|
patternWidth: 0,
|
filmsId: "",
|
patternThickness: 0,
|
number: 0
|
});
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
adda.value = false;
|
tableDataa.value = response.data;
|
if (workstationId.value == '1') {
|
flake.value = false
|
} else if (workstationId.value == '2') {
|
flakea.value = false
|
} else if (workstationId.value == '3') {
|
flakeb.value = false
|
} else if (workstationId.value == '4') {
|
flakec.value = false
|
}
|
list()
|
} else {
|
ElMessage.error(response.message);
|
}
|
} catch (error) {
|
console.error(error);
|
}
|
};
|
// 选择工程确认
|
const handleup = async () => {
|
try {
|
const response = await request.post('/loadGlass/up-patten-usage/selectUpPattenUsage', {
|
engineerId: selectedProjectNo.value,
|
})
|
window.localStorage.setItem('engineeringId', selectedProjectNo.value)
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
dialogFormVisible.value = false;
|
tableData.splice(0, tableData.length, ...response.data);
|
selectedProjectNo.value = ''
|
markingMachineStatus.value = '#911005';
|
cuttingMachineStatus.value = '#911005';
|
const uniqueWidths = new Set(response.data.map(item => item.width));
|
const uniqueHeights = new Set(response.data.map(item => item.height));
|
const uniqueFilmsIds = new Set(response.data.map(item => item.filmsId));
|
const uniqueThicknesses = new Set(response.data.map(item => item.thickness));
|
selectOptions.value = Array.from(uniqueWidths).map(width => ({
|
value: width,
|
label: width,
|
}));
|
selectOptionsa.value = Array.from(uniqueHeights).map(height => ({
|
value: height,
|
label: height,
|
}));
|
selectOptionsb.value = Array.from(uniqueFilmsIds).map(filmsId => ({
|
value: filmsId,
|
label: filmsId,
|
}));
|
selectOptionsc.value = Array.from(uniqueThicknesses).map(thickness => ({
|
value: thickness,
|
label: thickness,
|
}));
|
} else {
|
ElMessage.error(response.message);
|
}
|
}
|
catch (error) {
|
console.error(error);
|
}
|
}
|
// 开始上片
|
const handle = async () => {
|
if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
|
try {
|
let engineeringId = window.localStorage.getItem('engineeringId')
|
const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
|
engineerId: engineeringId,
|
state: 1,
|
})
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
blind.value = false;
|
selectedProjectNoa.value = '';
|
} else {
|
ElMessage.error(response.message);
|
}
|
}
|
catch (error) {
|
console.error(error);
|
}
|
} else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {
|
// 提示用户打标机未就绪
|
ElMessage.warning(t('basicData.pausea'));
|
}
|
}
|
// 暂停
|
const handlea = async () => {
|
try {
|
let engineeringId = window.localStorage.getItem('engineeringId')
|
console.log(engineeringId);
|
if (engineeringId !== '') {
|
const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
|
engineeringId: engineeringId,
|
state: 0,
|
})
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
blinda.value = false;
|
// tableData.splice([]);
|
} else {
|
ElMessage.error(response.message);
|
}
|
}
|
else {
|
ElMessage({
|
type: 'info',
|
message: t('basicData.infonull'),
|
})
|
}
|
}
|
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/pauseTask', {
|
engineeringId: engineeringId,
|
state: 0,
|
})
|
if (response.code == 200) {
|
ElMessage.success(response.message);
|
blindb.value = false;
|
tableData.splice([]);
|
ElMessage.error(response.message);
|
}
|
}
|
else {
|
ElMessage({
|
type: 'info',
|
message: t('basicData.infonull'),
|
})
|
}
|
}
|
catch (error) {
|
console.error(error);
|
}
|
}
|
onMounted(fetchTableData);
|
function getStatusText(state: number) {
|
switch (state) {
|
case 0:
|
return t('basicData.waiting');
|
case 1:
|
return t('basicData.up');
|
case 2:
|
return t('basicData.up');
|
case 100:
|
return t('basicData.finish');
|
}
|
}
|
function getStatusType(state: number) {
|
switch (state) {
|
case 0:
|
return 'warning';
|
case 1:
|
return 'primary';
|
case 2:
|
return 'primary';
|
case 100:
|
return 'success';
|
}
|
}
|
// 开始上片
|
const handleBind = (row) => {
|
blind.value = true;
|
};
|
// 暂停
|
const handleBinda = (row) => {
|
blinda.value = true;
|
};
|
// 停止任务
|
const handleBindb = (row) => {
|
blindb.value = true;
|
};
|
// 删除
|
const handleBindRacka = (row) => {
|
workstationId.value = row.workstationId;
|
adda.value = true;
|
};
|
// 定义一个响应式引用,用于存储颜色状态
|
const markingMachineStatus = ref('#911005');
|
const cuttingMachineStatus = ref('#911005');
|
// 定义一个方法来改变颜色状态
|
const confirmMarkingMachine = () => {
|
markingMachineStatus.value = 'green';
|
};
|
const confirmCuttingMachine = () => {
|
cuttingMachineStatus.value = 'green';
|
};
|
const toggleEnableState = async (row: any) => {
|
// 检查 id 是否为空
|
if (!row.id) {
|
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) {
|
// 处理请求错误
|
ElMessage.error(t('basicData.glassnull'));
|
}
|
};
|
const confirmCutting = async () => {
|
try {
|
const response = await request.post('/loadGlass/LoadGlass/updateMesInkageLoad',
|
inKageWord.value
|
);
|
if (response.code == 200) {
|
const status = response.data.status;
|
upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa');
|
cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';
|
ElMessage.success(response.message);
|
} else {
|
ElMessage.error(response.message || '请求失败');
|
}
|
} catch (error) {
|
console.error('请求时发生错误', error);
|
ElMessage.error('请求时发生错误');
|
}
|
};
|
</script>
|
<template>
|
<div style="height: 500px;">
|
<div>
|
<div id="dotClass">
|
<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;">{{
|
$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;">{{
|
$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;">{{
|
$t('basicData.change')
|
}}
|
</el-button>
|
|
</div>
|
<el-button :disabled="!canSelectProject" style="margin-top: 5px;margin-left: 15px;" type="primary" @click="selectproject">{{ $t('basicData.selectproject') }}</el-button>
|
<el-button :disabled="!canSelectProject" :style="{ backgroundColor: canStartLoading ? 'green' : 'initial',color: canStartLoading ? 'white' : 'black', }" style="margin-top: 5px;margin-left: 20px;" @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="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</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
|
height="350"
|
ref="table"
|
:header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
|
:data="tableData"
|
>
|
<el-table-column prop="layoutSequence" :label="$t('basicData.layoutSequence')" width="100" 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 :label="$t('basicData.quantity')" align="center">
|
<template #default="{ row }">
|
<!-- 这里总是显示 1 -->
|
<span>{{ 1 }}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="thickness" :label="$t('basicData.thickness')" align="center"/>
|
<!-- <el-table-column
|
align="center"
|
label="状态"
|
min-width="80"
|
prop="state"
|
>
|
<template #default="scope">
|
<el-tag :type="getStatusType(scope.row.state)">
|
{{ getStatusText(scope.row.state) }}
|
</el-tag>
|
</template> -->
|
<el-table-column
|
align="center"
|
:label="$t('basicData.startstatus')"
|
min-width="80"
|
prop="state"
|
>
|
<template #default="scope">
|
<el-tag
|
:type="scope.row.state === 100 ? 'success' : 'warning'"
|
@click="toggleEnableState(scope.row)"
|
>
|
{{ 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="$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">{{ $t('basicData.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')">
|
<el-table ref="table" style="margin-top: 20px;height: 300px;"
|
:data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
|
<el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')"/>
|
<el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')" />
|
<el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')">
|
<template #default="{ row }">
|
<el-input v-model="row.teamsGroupsName" autocomplete="off" min-width="150"/>
|
</template>
|
</el-table-column>
|
<el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')">
|
<template #default="{ row }">
|
<el-input v-model="row.deviceName" autocomplete="off" min-width="150"/>
|
</template>
|
</el-table-column>
|
</el-table>
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="handleConfirm">
|
{{ $t('searchOrder.add') }}
|
</el-button>
|
<el-button @click="dialoglea = false">{{ $t('searchOrder.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<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">{{ $t('basicData.cancel') }}</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/shangpian.png" alt="" style="max-width: 40%;max-height: 40%;margin-top: 20px;margin-left: 340px;">
|
<div id="overlay" v-show="flake"></div>
|
<div id="overlaya" v-show="flakea"></div>
|
<div id="overlayb" v-show="flakeb"></div>
|
<div id="overlayc" v-show="flakec"></div>
|
</div>
|
<div style="margin-top: -300px;margin-left: 680px;">
|
<el-table :data="tableDataa" border style="width: 85%"
|
:header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
|
>
|
<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)">{{ $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="$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">
|
<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('basicData.widtha')" :required="true" style="width: 14vw">
|
<el-select
|
v-model="selectedValue"
|
filterable
|
clearable
|
:placeholder="$t('basicData.selectwidth')"
|
style="width: 220px"
|
@input="handleInputChangea"
|
>
|
<el-option
|
v-for="item in selectOptions"
|
:key="item.id"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
</el-form-item>
|
</div></div>
|
</el-col>
|
<el-col :span="9">
|
<div id="dta" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('basicData.heighta')" :required="true" style="width: 14vw">
|
<el-select
|
v-model="selectedValuea"
|
filterable
|
clearable
|
:placeholder="$t('basicData.selectheight')"
|
style="width: 220px"
|
@input="handleInputChangea"
|
>
|
<el-option
|
v-for="item in selectOptionsa"
|
:key="item.id"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
</el-form-item></div>
|
</div>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 10px;">
|
<el-col :span="6">
|
<div id="dt" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('basicData.coatingtypesa')" :required="true" style="width: 14vw;">
|
<el-select
|
v-model="selectedValueb"
|
filterable
|
clearable
|
:placeholder="$t('basicData.selectcoatingtypes')"
|
style="width: 220px"
|
@input="handleInputChangea"
|
>
|
<el-option
|
v-for="item in selectOptionsb"
|
:key="item.id"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
</el-form-item></div></div>
|
</el-col>
|
<el-col :span="9">
|
<div id="dta" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('basicData.thicknessa')" :required="true" style="width: 14vw">
|
<el-select
|
v-model="selectedValuec"
|
filterable
|
clearable
|
:placeholder="$t('basicData.selectthickness')"
|
style="width: 220px"
|
@input="handleInputChangea"
|
>
|
<el-option
|
v-for="item in selectOptionsc"
|
:key="item.id"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
<!-- <el-input v-model="patternThickness" autocomplete="off" /> -->
|
</el-form-item></div></div>
|
</el-col>
|
</el-row>
|
<el-row style="margin-top: 10px;">
|
<el-col :span="6">
|
<div id="dt" style="font-size: 15px;">
|
<div>
|
<el-form-item :label="$t('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>
|
</el-form>
|
</el-form>
|
</div>
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="handleConfirm">
|
{{ $t('basicData.confirm') }}
|
</el-button>
|
<el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<el-dialog v-model="adda" top="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">{{ $t('basicData.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
</div>
|
<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="$t('basicData.projectnumber')" :required="true">
|
<el-select
|
v-model="selectedProjectNo"
|
filterable
|
clearable
|
:placeholder="$t('basicData.plselectproject')"
|
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-form-item>
|
</div>
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="handleup">
|
{{ $t('basicData.confirm') }}
|
</el-button>
|
<el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
</div>
|
</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{
|
text-align: center;
|
margin-top: -15px;
|
}
|
#dotClass {
|
display: flex;
|
margin-left: 20px;
|
size: 50px;
|
margin-top: 20px;
|
margin-bottom: 10px;
|
}
|
#parent{
|
position: relative;
|
width: 1500px;
|
margin-left: -300px
|
}
|
#overlayb{
|
position: absolute;
|
z-index: 1;
|
width: 228px;
|
height: 16px;
|
background-color: #529b2e;
|
margin-top: -303px;
|
margin-left: 355px;
|
}
|
#overlayc{
|
position: absolute;
|
z-index: 1;
|
width: 228px;
|
height: 16px;
|
background-color: #529b2e;
|
margin-top: -303px;
|
margin-left:703px;
|
}
|
#overlay{
|
position: absolute;
|
z-index: 1;
|
width: 228px;
|
height: 16px;
|
background-color: #529b2e;
|
margin-top: -45px;
|
margin-left: 355px;
|
}
|
#overlaya{
|
position: absolute;
|
z-index: 1;
|
width: 228px;
|
height: 16px;
|
background-color: #529b2e;
|
margin-top: -45px;
|
margin-left: 703px;
|
}
|
</style>
|