<script lang="ts" setup>
|
import {Search} from "@element-plus/icons-vue";
|
import {reactive} from "vue";
|
import {useRouter} from "vue-router"
|
const router = useRouter()
|
import type { TableColumnCtx } from 'element-plus'
|
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)
|
import { WebSocketHost ,host} from '@/utils/constants'
|
import request from "@/utils/request"
|
const ida = ref(null);
|
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
|
import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue";
|
// 响应式数据
|
const selectedProjectNo = ref(''); // 当前选中的工程号
|
const selectedProjectNoa = ref(''); // 当前选中的工程号
|
const selectedValue = ref(''); // 当前选中的宽
|
const selectedValuea = ref('');
|
const selectedValueb = ref('');
|
const selectedValuec = ref('');
|
const upstatus = ref('上片机手动状态:'); // 假设这个用于显示自动/手动状态
|
const cuttingMachine = ref(''); // 假设这个用于存储后端返回的状态值(0或1)
|
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);
|
// window.localStorage.setItem('engineeringId', response.data[0].engineeringId)
|
// 获取唯一值
|
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, // 假设这是你想要作为value的属性
|
label: width, // 假设这是你想要显示的label
|
}));
|
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.msg);
|
}
|
} catch (error) {
|
// 处理请求失败的情况
|
// ElMessage.error('获取表格数据失败,请重试');
|
}
|
};
|
request.get("/loadGlass/LoadGlass/list").then((res) => {
|
window.localStorage.setItem('patternWidth', res.data.patternWidth)
|
window.localStorage.setItem('workstationId', res.data.workstationId)
|
if (res.code == 200) {
|
console.log(res.data);
|
tableDataa.value = res.data
|
console.log(res.data.patternWidth);
|
|
let workstationId = window.localStorage.getItem('workstationId')
|
let patternWidth = window.localStorage.getItem('patternWidth')
|
if (patternWidth !== '' || workstationId == '1') {
|
flake.value = true
|
} else if (patternWidth !== '' || workstationId == '2') {
|
flakea.value = true
|
}
|
} else {
|
ElMessage.warning(res.msg)
|
// router.push("/login")
|
}
|
});
|
//定义接收加载表头下拉数据
|
const titleSelectJson = ref({
|
processType: [],
|
})
|
const titleSelectJsona = ref({
|
processTypea: [],
|
})
|
const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
|
// 定义消息处理函数,更新 receivedData 变量
|
const handleMessage = (data) => {
|
// 更新 tableData 的数据
|
|
tableData.splice(0, tableData.length, ...data.prioritylist[0]);
|
tableDataa.value = data.list[0]
|
// console.log("更新后数据", tableData);
|
};
|
const requestData = {
|
state: 100
|
};
|
// 调用接口获取选项数据的函数
|
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 = []; // 清空选项列表
|
}
|
};
|
// 初始化加载数据(如果需要)
|
onMounted(() => {
|
fetchOptions('');
|
initializeWebSocket(socketUrl, handleMessage);
|
});
|
onBeforeUnmount(() => {
|
console.log("关闭了")
|
closeWebSocket();
|
});
|
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 handleBindRack = (row) => {
|
workstationId.value = row.workstationId; // 假设rackNumber是架号字段的属性名
|
ida.value = row.id;
|
console.log(ida.value);
|
add.value = true; // 打开绑定架子对话框
|
};
|
// 添加
|
const handleConfirm = async () => {
|
console.log(ida.value);
|
// console.log('id.value:', id.value);
|
if ((ida.value === 2 || ida.value === 4) && (parseInt(patternHeight.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);
|
// window.location.reload()
|
add.value = false;
|
tableDataa.value = response.data;
|
selectedValuea.value = '';
|
selectedValue.value = '';
|
selectedValueb.value = '';
|
selectedValuec.value = '';
|
number.value = '';
|
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);
|
}
|
} catch (error) {
|
// 处理请求错误
|
console.error(error);
|
alert('请求失败,请稍后再试!');
|
}
|
}
|
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);
|
// window.location.reload()
|
add.value = false;
|
tableDataa.value = response.data;
|
selectedValuea.value = '';
|
selectedValue.value = '';
|
selectedValueb.value = '';
|
selectedValuec.value = '';
|
number.value = '';
|
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);
|
}
|
} catch (error) {
|
// 处理请求错误
|
console.error(error);
|
alert('请求失败,请稍后再试!');
|
}
|
}
|
else {
|
ElMessage({
|
type: 'info',
|
message: '第二行和第四行的高必须大于2700才能保存!',
|
})
|
}
|
|
};
|
// 删除
|
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;
|
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);
|
}
|
} 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);
|
// window.location.reload()
|
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, // 假设这是你想要作为value的属性
|
label: width, // 假设这是你想要显示的label
|
}));
|
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.msg);
|
}
|
}
|
catch (error) {
|
// 处理错误
|
console.error(error);
|
}
|
}
|
// 开始上片
|
const handle = async () => {
|
if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
|
|
try {
|
let engineeringId = window.localStorage.getItem('engineeringId')
|
console.log(engineeringId);
|
|
const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
|
engineerId: engineeringId,
|
state: 1,
|
})
|
if (response.code == 200) {
|
// 绑定成功,处理逻辑
|
ElMessage.success(response.message);
|
// window.location.reload()
|
blind.value = false;
|
selectedProjectNoa.value = ''
|
} else {
|
// 请求失败,显示错误消息
|
ElMessage.error(response.msg);
|
}
|
}
|
catch (error) {
|
// 处理错误
|
console.error(error);
|
}
|
} else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {
|
// 提示用户打标机未就绪
|
ElMessage.warning('请确认打标机和切割机的就绪状态!');
|
}
|
}
|
// 暂停
|
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.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/pauseTask', {
|
engineeringId: engineeringId,
|
state: 0,
|
})
|
if (response.code == 200) {
|
// 绑定成功,处理逻辑
|
ElMessage.success(response.message);
|
// window.location.reload()
|
blindb.value = false;
|
tableData.splice([]);
|
|
// 请求失败,显示错误消息
|
ElMessage.error(response.msg);
|
}
|
}
|
else {
|
ElMessage({
|
type: 'info',
|
message: '工程号不能为空!',
|
})
|
}
|
}
|
catch (error) {
|
// 处理错误
|
console.error(error);
|
}
|
}
|
onMounted(fetchTableData);
|
function getStatusText(state: number) {
|
switch (state) {
|
case 0:
|
return '等待中';
|
case 1:
|
return '上片中';
|
case 2:
|
return '上片中';
|
case 100:
|
return '已完成';
|
}
|
}
|
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 wsUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
|
const ws = new WebSocket(wsUrl);
|
ws.onopen = () => {
|
console.log('WebSocket连接已打开');
|
};
|
|
// 监听WebSocket的错误事件
|
ws.onerror = (error) => {
|
console.error('WebSocket发生错误:', error);
|
};
|
|
// 监听WebSocket的关闭事件
|
ws.onclose = (event) => {
|
if (event.wasClean) {
|
console.log('WebSocket连接已正常关闭');
|
} else {
|
console.error('WebSocket连接异常关闭');
|
}
|
};
|
|
// 监听WebSocket的消息事件
|
ws.onmessage = (event) => {
|
try {
|
const data = JSON.parse(event.data); // 解析消息为JSON
|
|
if (data && Array.isArray(data.InkageStatus) && data.InkageStatus.length > 0) {
|
const status = data.InkageStatus[0];
|
cuttingMachine.value = status;
|
upstatus.value = status === '1' ? '上片机联机状态:' : '上片机手动状态:';
|
cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';
|
inKageWord.value = status === '1' ? 0 : 1;
|
} else {
|
// 处理错误情况或无效数据
|
console.error('接收到的数据无效', data);
|
}
|
} catch (error) {
|
console.error('解析WebSocket消息时发生错误', error);
|
}
|
};
|
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' ? '上片机联机状态:' : '上片机手动状态:';
|
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>
|
<div id="dotClass">
|
<div>打标机就绪状态:</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>
|
<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>
|
<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>
|
|
</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: 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="150"
|
ref="table"
|
: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
|
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>
|
</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: 70%"
|
: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">
|
<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>
|
|
<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">
|
<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="宽:" :required="true" style="width: 14vw">
|
<el-select
|
v-model="selectedValue"
|
filterable
|
clearable
|
placeholder="请选择宽"
|
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="高:" :required="true" style="width: 14vw">
|
<el-select
|
v-model="selectedValuea"
|
filterable
|
clearable
|
placeholder="请选择高"
|
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="膜系:" :required="true" style="width: 14vw;">
|
<el-select
|
v-model="selectedValueb"
|
filterable
|
clearable
|
placeholder="请选择膜系"
|
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="厚度:" :required="true" style="width: 14vw">
|
<el-select
|
v-model="selectedValuec"
|
filterable
|
clearable
|
placeholder="请选择厚度"
|
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="数量:" :required="true" style="width: 14vw;">
|
<el-input 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">
|
确认
|
</el-button>
|
<el-button @click="add = false">取消</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
<el-dialog v-model="adda" top="30vh" width="25%" title="是否删除该条信息?" >
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="handleConfirma">
|
确认
|
</el-button>
|
<el-button @click="adda = false">取消</el-button>
|
</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-form-item>
|
</div>
|
<template #footer>
|
<div id="dialog-footer">
|
<el-button type="primary" @click="handleup">
|
确认
|
</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{
|
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
|
}
|
#overlay{
|
position: absolute;
|
z-index: 1;
|
width: 212px;
|
height: 15px;
|
background-color: #529b2e;
|
margin-top: -404px;
|
margin-left: 542px;
|
}
|
#overlaya{
|
position: absolute;
|
z-index: 1;
|
width: 212px;
|
height: 15px;
|
background-color: #529b2e;
|
margin-top: -38px;
|
margin-left: 537px;
|
}
|
|
</style>
|