| | |
| | | <script lang="ts" setup> |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | import {reactive} from "vue"; |
| | | import {onBeforeUnmount, onMounted, reactive, ref} from "vue"; |
| | | import {useRouter} from "vue-router" |
| | | const router = useRouter() |
| | | import type { TableColumnCtx } from 'element-plus' |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | import { useI18n } from 'vue-i18n' |
| | | import { WebSocketHost ,host} from '@/utils/constants' |
| | | import {ElMessage, ElMessageBox} from 'element-plus' |
| | | import {useI18n} from 'vue-i18n' |
| | | import {host, WebSocketHost} from '@/utils/constants' |
| | | import dayjs from 'dayjs'; |
| | | import request from "@/utils/request" |
| | | import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService'; |
| | | import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue"; |
| | | import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService'; |
| | | const router = useRouter() |
| | | const tableDataa = ref([]) |
| | | const tableDatab = ref([]) |
| | | const { t } = useI18n() |
| | | const {t} = useI18n() |
| | | const add = ref(false) |
| | | const dialogFormVisiblea = ref(false) |
| | | const dialogFormVisibleb = ref(false) |
| | | const dialogFormVisiblec = ref(false) |
| | | const timeRange = ref(["2022-01-01 00:00:00", "2025-01-01 00:00:00"]) |
| | | const dialogFormVisiblee = ref(false) |
| | | const Edit = ref(false) |
| | | const timeRange = ref([]) |
| | | const selectValuesa = reactive([]); |
| | | const patternWidth = ref(''); |
| | | const patternHeight = ref(''); |
| | | const patternThickness = ref(''); |
| | | const filmsId = ref(''); |
| | | const remainQuantity = ref(''); |
| | | const slot = ref(''); |
| | | let webSocket: WebSocket | null = null; |
| | | const patternWidth = ref(''); |
| | | const patternHeight = ref(''); |
| | | const patternThickness = ref(''); |
| | | const filmsId = ref(''); |
| | | const remainQuantity = ref(''); |
| | | const slot = ref(''); |
| | | const leftingStation = ref(''); |
| | | const loadingline = ref(''); |
| | | let webSocket: WebSocket | null = null; |
| | | const value = ref('') |
| | | const options = [ |
| | | { |
| | | value: 1, |
| | | value: 98, |
| | | label: t('film.warehousing1'), |
| | | }, |
| | | { |
| | | value: 2, |
| | | value: 99, |
| | | label: t('film.warehousing2'), |
| | | } |
| | | ] |
| | |
| | | taskType: '', |
| | | taskState: '', |
| | | }); |
| | | request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest",{ |
| | | beginDate: "2022-01-01 00:00:00", |
| | | endDate: "2025-01-01 00:00:00", |
| | | let startTime = window.localStorage.getItem('startTime') |
| | | let endTime = window.localStorage.getItem('endTime') |
| | | request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest",{ |
| | | beginDate: startTime, |
| | | endDate: endTime, |
| | | }).then((response) => { |
| | | if (response.code == 200) { |
| | | tableDataa.value = response.data |
| | |
| | | |
| | | } |
| | | }); |
| | | onMounted(() => { |
| | | // closeWebSocket(); |
| | | debugger |
| | | // console.log("--------------webSocket") |
| | | socket = initializeWebSocket(socketUrl, handleMessage); |
| | | onMounted(() => { |
| | | socket = initializeWebSocket(socketUrl, handleMessage); |
| | | const endTime = dayjs().startOf('minute'); // 当前时间,精确到分钟 |
| | | const startTime = endTime.subtract(7, 'day').startOf('minute'); // 当前时间的前一天,精确到分钟 |
| | | // 设置时间范围为 [开始时间, 结束时间] |
| | | timeRange.value = [startTime.format('YYYY-MM-DD HH:mm:ss'), endTime.format('YYYY-MM-DD HH:mm:ss')]; |
| | | window.localStorage.setItem('startTime', startTime.format('YYYY-MM-DD HH:mm:ss')) |
| | | window.localStorage.setItem('endTime', endTime.format('YYYY-MM-DD HH:mm:ss')) |
| | | }); |
| | | |
| | | 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] |
| | | } |
| | | const formattedTasks = data.tasks[0].map(task => { |
| | | if (task && task.createTime) { |
| | | return { ...task, createTime: formatTimestamp(task.createTime) }; |
| | | } |
| | | return task; |
| | | }); |
| | | tableDataa.value = formattedTasks; |
| | | 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 handleEdit = (row) => { |
| | | window.localStorage.setItem('deviceId', row.deviceId) |
| | | window.localStorage.setItem('slot', row.slot) |
| | | Edit.value = true; |
| | | }; |
| | | const handleBinda = (row) => { |
| | | dialogFormVisibleb.value = true; |
| | | }; |
| | | const handleBindc = (row) => { |
| | | dialogFormVisiblec.value = true; |
| | | }; |
| | | const handleBinde = (row) => { |
| | | dialogFormVisiblee.value = true; |
| | | }; |
| | | // 删除 |
| | | const deleteWarehousing = async(row) => { |
| | |
| | | } |
| | | ); |
| | | if (confirmResult === 'confirm') { |
| | | |
| | | var url="/glassStorage/rawGlassStorageDetails/deleteWarehousing?slotId="+row.slotId; |
| | | var url="/glassStorage/rawGlassStorageDetails/deleteWarehousing?slot="+row.slot; |
| | | const response = await request.post(url) |
| | | // const response = await request.post("/glassStorage/rawGlassStorageDetails/deleteWarehousing",[row.slotId]) |
| | | if (response.code === 200) { |
| | |
| | | } catch (error) { |
| | | console.error('发生错误:', error); |
| | | } |
| | | }; |
| | | |
| | | }; |
| | | // 原片入库 |
| | | const handleup = 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, |
| | | slot: 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 handleupc = async () => { |
| | | try { |
| | | var url="/glassStorage/rawGlassStorageDetails/warehousingRequest?leftingStation="+leftingStation.value; |
| | | const response = await request.post(url) |
| | | if (response.code == 200) { |
| | | ElMessage.success(response.message); |
| | | dialogFormVisiblec.value = false; |
| | | leftingStation.value = ''; |
| | | } else { |
| | | // 请求失败,显示错误消息 |
| | | ElMessage.error(response.msg); |
| | | } |
| | | } |
| | | catch (error) { |
| | | // 处理错误 |
| | | console.error(error); |
| | | } |
| | | } |
| | | // 出库请求 |
| | | const handleupe = async () => { |
| | | try { |
| | | var url="/glassStorage/rawGlassStorageDetails/outWarehousingRequest?leftingStation="+leftingStation.value; |
| | | const response = await request.post(url) |
| | | if (response.code == 200) { |
| | | ElMessage.success(response.message); |
| | | dialogFormVisiblee.value = false; |
| | | leftingStation.value = ''; |
| | | } else { |
| | | // 请求失败,显示错误消息 |
| | | ElMessage.error(response.msg); |
| | | } |
| | | } |
| | | catch (error) { |
| | | // 处理错误 |
| | | console.error(error); |
| | | } |
| | | } |
| | | // 出库 |
| | | const openc = async(row) => { |
| | | try { |
| | |
| | | } |
| | | ); |
| | | if (confirmResult === 'confirm') { |
| | | var url="/glassStorage/rawGlassStorageDetails/outWarehousing?slotId="+row.slotId; |
| | | var url="/glassStorage/rawGlassStorageDetails/outWarehousing?slotId="+row.slot; |
| | | const response = await request.post(url) |
| | | // const response = await request.post("/glassStorage/rawGlassStorageDetails/outWarehousing",[row.slotId]) |
| | | if (response.code === 200) { |
| | |
| | | } |
| | | } |
| | | const response = await request.post("/glassStorage/rawGlassStorageTask/setRawGlassTaskRequest", { |
| | | beginDate: timeRange.value[0], |
| | | endDate: timeRange.value[1], |
| | | taskState: stateList, |
| | | taskType: celllist |
| | | beginDate: (timeRange.value && timeRange.value[0]) || '', |
| | | endDate: (timeRange.value && timeRange.value[1]) || '', |
| | | taskState: celllist, |
| | | taskType: stateList |
| | | }) |
| | | if (response.code === 200) { |
| | | // tableDataa.value = response.data; |
| | |
| | | } |
| | | 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 newState = row.state === 1 ? 0 : 1; |
| | | try { |
| | | var url="/glassStorage/rawGlassStorageStation/updateSlotState?slot="+row.deviceId + "&state=" + newState; |
| | | var url="/glassStorage/rawGlassStorageStation/updateSlotState?slot="+row.slot + "&state=" + newState; |
| | | const response = await request.post(url) |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | |
| | | ElMessage.error(t('basicData.glassnull')); |
| | | } |
| | | }; |
| | | const handleEdit = (row) => { |
| | | window.localStorage.setItem('slotId', row.slotId) |
| | | dialogFormVisiblec.value = true; |
| | | // 修改数量 |
| | | const Editclick = async () => { |
| | | let slot = window.localStorage.getItem('slot') |
| | | let deviceId = window.localStorage.getItem('deviceId') |
| | | try { |
| | | const response = await request.post('/glassStorage/rawGlassStorageDetails/updateQuantity', { |
| | | deviceId: deviceId, |
| | | slot: slot, |
| | | remainQuantity: remainQuantity.value, |
| | | filmsId: filmsId.value, |
| | | patternThickness: patternThickness.value, |
| | | patternHeight: patternHeight.value, |
| | | patternWidth: patternWidth.value, |
| | | } |
| | | ); |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | | Edit.value = false; |
| | | tableDatab.value = response.data; |
| | | patternWidth.value = ''; |
| | | patternHeight.value = ''; |
| | | patternThickness.value = ''; |
| | | filmsId.value = ''; |
| | | remainQuantity.value = ''; |
| | | } else { |
| | | ElMessage.error(response.message); |
| | | } |
| | | } catch (error) { |
| | | console.error(error); |
| | | } |
| | | }; |
| | | // 格式化时间戳为年月日时间字符串的函数 |
| | | function formatTimestamp(timestamp) { |
| | | const date = new Date(timestamp); |
| | | const year = date.getFullYear(); |
| | | const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1,并补零 |
| | | const day = String(date.getDate()).padStart(2, '0'); // 补零 |
| | | const hours = String(date.getHours()).padStart(2, '0'); // 补零(如果需要显示时间) |
| | | const minutes = String(date.getMinutes()).padStart(2, '0'); // 补零(如果需要显示时间) |
| | | const seconds = String(date.getSeconds()).padStart(2, '0'); // 补零(如果需要显示时间) |
| | | return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | } |
| | | function getStatusType1(taskType) { |
| | | switch (taskType) { |
| | | case 1: |
| | |
| | | } |
| | | function getStatusType2(taskState) { |
| | | switch (taskState) { |
| | | case 1: |
| | | case 0: |
| | | return 'info'; |
| | | case 2: |
| | | return 'warning'; |
| | | case 3: |
| | | case 1: |
| | | return 'success'; |
| | | } |
| | | } |
| | | function getStatusText2(taskState) { |
| | | switch (taskState) { |
| | | case 1: |
| | | case 0: |
| | | return t('film.built');//新建 |
| | | case 2: |
| | | return t('film.execution');//执行中 |
| | | case 3: |
| | | return t('film.fail');//失败 |
| | | case 1: |
| | | return t('film.finish');//完成 |
| | | } |
| | | } |
| | | // onUnmounted(() => { |
| | | // if (socket) { |
| | | // closeWebSocket(socket); |
| | | // } |
| | | // }); |
| | | onBeforeUnmount(() => { |
| | | closeWebSocket(); |
| | | }); |
| | | </script> |
| | | <template> |
| | | <div> |
| | | <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="datetimerange" |
| | | format="YYYY/MM/DD HH:mm:ss" |
| | | <div style="height: 500px;"> |
| | | <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="handleBinda"> |
| | | {{ $t('film.warehousing') }} |
| | | </el-button> |
| | | <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBindc"> |
| | | {{ $t('film.pwarehousing') }} |
| | | </el-button> |
| | | <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleBinde">{{ |
| | | $t('film.pwareout') |
| | | }} |
| | | </el-button> |
| | | <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')" |
| | | :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> |
| | | <el-option :label="$t('film.finish')" value="3"></el-option> |
| | | <el-option :label="$t('film.built')" value="0"></el-option> |
| | | <el-option :label="$t('film.finish')" value="1"></el-option> |
| | | <el-option :label="$t('film.fail')" value="2"></el-option> |
| | | </el-select> |
| | | <el-select v-model="selectValuesa[1]" clearable :placeholder="$t('film.tasktype')" style="margin-left: 10px;" > |
| | | <el-option :label="$t('film.stocke')" value="1"></el-option> |
| | |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | <div class="awatch"> |
| | | <img src="../../assets/ypcc.png" alt="" style="width: 100%;height: 120%;margin-left: 10px;position: relative;margin-top: -20px;"> |
| | | |
| | | </div> |
| | | <div class="img-dlpl"> |
| | | <div class="img-car1" :style="'z-index:999;top:250px;left:' + 20 + 'px;position:absolute;'"> |
| | | </div> |
| | | </div> |
| | | <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%" > |
| | | <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="slot" 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" /> |
| | |
| | | <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="deleteWarehousing(scope.row)">{{ $t('film.delete') }}</el-button> |
| | | <el-button size="mini" type="text" plain @click="openc(scope.row)">{{ $t('film.outbound') }}</el-button> |
| | | <el-button :disabled="!scope.row.remainQuantity" size="mini" type="text" plain @click="deleteWarehousing(scope.row)">{{ $t('film.delete') }}</el-button> |
| | | <el-button :disabled="!scope.row.remainQuantity || scope.row.remainQuantity === 0" 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="23vh" width="55%" :title="$t('basicData.addglass')" > |
| | | <el-dialog v-model="dialogFormVisibleb" top="23vh" width="55%" :title="$t('film.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"> |
| | |
| | | </div> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="handleConfirma"> |
| | | <el-button type="primary" @click="handleup"> |
| | | {{ $t('basicData.confirm') }} |
| | | </el-button> |
| | | <el-button @click="dialogFormVisibleb = false">{{ $t('basicData.cancel') }}</el-button> |
| | | </div> |
| | | </template> |
| | | </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="remainQuantity" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-form> |
| | | <el-dialog v-model="dialogFormVisiblec" top="24vh" width="30%" :title="$t('film.pwarehousing')"> |
| | | <div style="margin-left: 50px;margin-bottom: 10px;"> |
| | | <el-form-item :label="$t('film.position')" :required="true"> |
| | | <el-select v-model="leftingStation" clearable :placeholder="$t('film.cposition')" style="margin-left: 20px;" > |
| | | <el-option :label="$t('film.position1')" value="98"></el-option> |
| | | <el-option :label="$t('film.position2')" value="99"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="handleConfirmb"> |
| | | {{ $t('reportWork.sure') }} |
| | | <el-button type="primary" @click="handleupc"> |
| | | {{ $t('basicData.confirm') }} |
| | | </el-button> |
| | | <el-button @click="dialogFormVisiblec = false">{{ $t('reportWork.cancel') }}</el-button> |
| | | <el-button @click="dialogFormVisiblec = false">{{ $t('basicData.cancel') }}</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <el-dialog v-model="dialogFormVisiblee" top="24vh" width="30%" :title="$t('film.pwareout')"> |
| | | <div style="margin-left: 50px;margin-bottom: 10px;"> |
| | | <el-form-item :label="$t('film.position')" :required="true"> |
| | | <el-select v-model="leftingStation" clearable :placeholder="$t('film.cposition')" style="margin-left: 20px;" > |
| | | <el-option :label="$t('film.position1')" value="98"></el-option> |
| | | <el-option :label="$t('film.position2')" value="99"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="handleupe"> |
| | | {{ $t('basicData.confirm') }} |
| | | </el-button> |
| | | <el-button @click="dialogFormVisiblee = false">{{ $t('basicData.cancel') }}</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <el-dialog v-model="Edit" top="23vh" width="55%" :title="$t('film.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="patternWidth" 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.heighta')" :required="true" style="width: 17vw;"> |
| | | <el-input :placeholder="$t('film.inheight')" v-model="patternHeight" 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('film.thicknessa')" :required="true" style="width: 17vw;"> |
| | | <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="filmsId" 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 label-width="210px"> |
| | | <el-form-item :label="$t('film.thickremainquantity')" :required="true" style="width: 44.5vw;margin-left: -40px;"> |
| | | <el-input v-model="remainQuantity" autocomplete="off" :placeholder="$t('film.inquantity')"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div></div> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </el-form> |
| | | </div> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="Editclick"> |
| | | {{ $t('basicData.confirm') }} |
| | | </el-button> |
| | | <el-button @click="Edit = 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%;} |
| | | .awatch{ |
| | |
| | | text-align: center; |
| | | margin-top: -15px; |
| | | } |
| | | .img-dlpl{ |
| | | margin-left: 330px; |
| | | margin-top: 10px; |
| | | background-image:url('../../assets/ypcc.png'); |
| | | background-repeat: no-repeat; |
| | | background-attachment: local; |
| | | min-height: 700px; |
| | | width: 800px; |
| | | max-width: 100%; |
| | | background-size: 800px 700px; |
| | | overflow: hidden; |
| | | position:relative |
| | | } |
| | | .img-car1{ |
| | | display: flex; |
| | | background-image:url('../../assets/C1.png'); |
| | | position: absolute; |
| | | background-repeat: no-repeat; |
| | | background-attachment: local; |
| | | min-height: 150px; |
| | | width: 70px; |
| | | max-width: 100%; |
| | | background-size: 70px 150px; |
| | | overflow: hidden; |
| | | position:relative |
| | | } |
| | | </style> |