This commit is contained in:
hzz 2024-09-25 16:27:30 +08:00
parent 03bf0c839c
commit cabdf8658e
17 changed files with 158 additions and 2921 deletions

2981
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -34,9 +34,9 @@
"@vue/cli-plugin-router": "~5.0.0", "@vue/cli-plugin-router": "~5.0.0",
"@vue/cli-plugin-typescript": "~5.0.0", "@vue/cli-plugin-typescript": "~5.0.0",
"@vue/cli-service": "~5.0.0", "@vue/cli-service": "~5.0.0",
"node-sass": "^6.0.1",
"patch-package": "^6.5.1", "patch-package": "^6.5.1",
"sass-loader": "^10.2.0", "sass": "^1.79.1",
"sass-loader": "^16.0.1",
"typescript": "~4.5.5" "typescript": "~4.5.5"
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

View File

@ -10,10 +10,12 @@ const chart = ref(null)
const prop = defineProps({ const prop = defineProps({
title: String, title: String,
color: Array, color: Array,
percentage: Number percentage: Object
}) })
let pieChart = null let pieChart = null
const init = ()=>{ const init = ()=>{
let {accomplish,counts} = prop.percentage
let rate = Math.floor((accomplish / counts) * 100)
pieChart = proxy.$echarts.init(chart.value) pieChart = proxy.$echarts.init(chart.value)
let option = { let option = {
title: { title: {
@ -103,14 +105,14 @@ const init = ()=>{
}, },
data: [ data: [
{ {
value: prop.percentage, value: rate,
name: "345", name: "345",
title: {}, title: {},
detail: { detail: {
// title // title
offsetCenter: ["0%", "0%"], offsetCenter: ["0%", "0%"],
color: "#01F8FF", color: "#01F8FF",
formatter: "{value}%", formatter: accomplish + "/" + counts,
// borderColor: '#01F8FF', // borderColor: '#01F8FF',
// borderRadius: 20, // borderRadius: 20,
// borderWidth: 1, // borderWidth: 1,

View File

@ -16,11 +16,13 @@ export default function( ){
function gettime(){ function gettime(){
var time = new Date(); var time = new Date();
var year = time.getFullYear(); var year:number|string = time.getFullYear();
// 1月到12月(0-11) // 1月到12月(0-11)
var month = time.getMonth()+1; var month:number|string = time.getMonth()+1;
var dates = time.getDate(); var dates:number|string = time.getDate();
if (year < 10) year = "0" + year;
if (month < 10) month = "0" + month;
if (dates < 10) dates = "0" + dates;
// 周日-周六(0-6) 刚好对应数字下标 // 周日-周六(0-6) 刚好对应数字下标
var day = time.getDay(); var day = time.getDay();
if (getStoredLanguage() == 'English/USD') { if (getStoredLanguage() == 'English/USD') {

View File

@ -316,7 +316,7 @@ export default {
'月':'Mes', '月':'Mes',
'日':'Fecha', '日':'Fecha',
"再登软件工况物联系统": "GOATS Working Condition IoT", "再登软件工况物联系统": "GOATS Working Condition IoT",
"富怡立式墨切割机": "Richpeace inkjet cutting machine", "富怡立式墨切割机": "Richpeace inkjet cutting machine",
"富怡多功能绣花机": "Richpeace embroidery machine", "富怡多功能绣花机": "Richpeace embroidery machine",
"JUKI高速直驱平缝机": "JUKI lockstitch sewing machine", "JUKI高速直驱平缝机": "JUKI lockstitch sewing machine",
"Yamato包缝机": "Yamato overlock sewing machine", "Yamato包缝机": "Yamato overlock sewing machine",

View File

@ -325,7 +325,7 @@ export default {
'月':'Month', '月':'Month',
'日':'Date', '日':'Date',
"再登软件工况物联系统": "GOATS Working Condition IoT", "再登软件工况物联系统": "GOATS Working Condition IoT",
"富怡立式墨切割机": "Richpeace inkjet cutting machine", "富怡立式墨切割机": "Richpeace inkjet cutting machine",
"富怡多功能绣花机": "Richpeace embroidery machine", "富怡多功能绣花机": "Richpeace embroidery machine",
"JUKI高速直驱平缝机": "JUKI lockstitch sewing machine", "JUKI高速直驱平缝机": "JUKI lockstitch sewing machine",
"Yamato包缝机": "Yamato overlock sewing machine", "Yamato包缝机": "Yamato overlock sewing machine",

View File

@ -324,7 +324,7 @@ export default {
'月': '月', '月': '月',
'日': '日', '日': '日',
"再登软件工况物联系统": "再登软件工况物联系统", "再登软件工况物联系统": "再登软件工况物联系统",
"富怡立式啧墨切割机": "富怡立式啧墨切割机", "富怡立式喷墨切割机": "富怡立式喷墨切割机",
"富怡多功能绣花机": "富怡多功能绣花机", "富怡多功能绣花机": "富怡多功能绣花机",
"JUKI高速直驱平缝机": "JUKI高速直驱平缝机", "JUKI高速直驱平缝机": "JUKI高速直驱平缝机",
"Yamato包缝机": "Yamato包缝机", "Yamato包缝机": "Yamato包缝机",

View File

@ -17,7 +17,7 @@
</div> </div>
<div class="content"> <div class="content">
<div class="left"> <div class="left">
<BorderVue :title="t('messages.富怡立式墨切割机')"> <BorderVue :title="t('messages.富怡立式墨切割机')">
<div class="box"> <div class="box">
<img src="./images/pmqgj.png" class="fzmbj-img" alt=""> <img src="./images/pmqgj.png" class="fzmbj-img" alt="">
<div class="devcard-container"> <div class="devcard-container">

View File

@ -30,7 +30,7 @@
</div> </div>
</div> </div>
<div class="right"> <div class="right">
<NewBoder :title="'房设备'"> <NewBoder :title="'房设备'">
<BoardBar :data="banfang.value" :xData="banfang.chart.xData" :seriesData="banfang.chart.series" <BoardBar :data="banfang.value" :xData="banfang.chart.xData" :seriesData="banfang.chart.series"
:rowNum="4"></BoardBar> :rowNum="4"></BoardBar>
</NewBoder> </NewBoder>

View File

@ -62,7 +62,7 @@ let objList = reactive({
'裁剪设备': [], '裁剪设备': [],
'一次性拖鞋生产线': [], '一次性拖鞋生产线': [],
'缝中设备': [], '缝中设备': [],
'房设备': [], '房设备': [],
'座椅面套生产线': [] '座椅面套生产线': []
}) })
onMounted(() => { onMounted(() => {
@ -101,7 +101,7 @@ async function fetchPlanProduction(): Promise<any> {
objList.缝中设备.push(item) objList.缝中设备.push(item)
} else if (obj.banfang.includes(item.label)) { } else if (obj.banfang.includes(item.label)) {
item.unit = '版' item.unit = '版'
objList.房设备.push(item) objList.房设备.push(item)
} else if (obj.zuoyi.includes(item.label)) { } else if (obj.zuoyi.includes(item.label)) {
item.unit = '件' item.unit = '件'
objList.座椅面套生产线.push(item) objList.座椅面套生产线.push(item)

View File

@ -32,7 +32,8 @@ const echartsData = reactive<EDataPerson>({
const setData = (value: any, type: number) => { const setData = (value: any, type: number) => {
// //
let percentage = Math.floor((value.accomplish/value.counts)*100) let percentage = Math.floor((value.accomplish/value.counts)*100)
let accomplish = value.accomplish
let counts = value.counts
echartsData.installTable!.div = inTable.value; echartsData.installTable!.div = inTable.value;
echartsData.installTable!.title = props.title; echartsData.installTable!.title = props.title;
echartsData.installTable!.data = { echartsData.installTable!.data = {
@ -130,7 +131,7 @@ const setData = (value: any, type: number) => {
// title // title
offsetCenter: ["0%", "0%"], offsetCenter: ["0%", "0%"],
color: "#01F8FF", color: "#01F8FF",
formatter: "{value}%", formatter: accomplish + "/" + counts,
// borderColor: '#01F8FF', // borderColor: '#01F8FF',
// borderRadius: 20, // borderRadius: 20,
// borderWidth: 1, // borderWidth: 1,

View File

@ -71,7 +71,13 @@ function getWebsocket(val) {
let msg = arr.value.find(item=>item.num == data.msg.num) let msg = arr.value.find(item=>item.num == data.msg.num)
msg.status = data.msg.status === 0? t('messages.offline'):t('default.在线') msg.status = data.msg.status === 0? t('messages.offline'):t('default.在线')
}
if (data.type == "micSwingWorkingTime") {
console.log(arr.value,data.msg);
let msg = arr.value.find(item=>item.id == data.msg.deviceId)
msg.todayWorkTime = data.msg.todayWorkTime
msg.count = data.msg.in4TodayCount
} }
} catch (err) { } catch (err) {
@ -89,7 +95,7 @@ onMounted(()=>{
reqSewingBoard() reqSewingBoard()
timer = setInterval(() => { timer = setInterval(() => {
reqSewingBoard() reqSewingBoard()
}, 60000); }, 60000 * 60);
connectWebsocket(null, null, getWebsocket, errWebsocket); connectWebsocket(null, null, getWebsocket, errWebsocket);
}) })
onUnmounted(()=>{ onUnmounted(()=>{

View File

@ -18,15 +18,15 @@
<div>{{ data.countdown }}</div> <div>{{ data.countdown }}</div>
</div> </div>
<!-- <img :style="{width:itemSize.imgwidth}" :src="data.src" alt=""> --> <img :style="{width:itemSize.imgwidth}" :src="data.src" alt="">
<el-image :style="{ width: itemSize.imgwidth, height: '60%' }" :src="data.src ? imgurlAddXhr(data.src) : ''" <!-- <el-image :style="{ width: itemSize.imgwidth, height: '60%' }" :src="data.src ? imgurlAddXhr(data.src) : ''"
fit="contain"> fit="contain">
<template #error> <template #error>
<div class="image-slot"> <div class="image-slot">
<el-icon><icon-picture /></el-icon> <el-icon><icon-picture /></el-icon>
</div> </div>
</template> </template>
</el-image> </el-image> -->
<!-- <img :style="{width:itemSize.imgwidth,height:itemSize.imgheight}" src="../../../../assets/img/download.jpg" alt=""> --> <!-- <img :style="{width:itemSize.imgwidth,height:itemSize.imgheight}" src="../../../../assets/img/download.jpg" alt=""> -->
<!-- <ul class="uldianji"> <!-- <ul class="uldianji">
<li> <li>

View File

@ -89,7 +89,7 @@ function getNextMonth(date) {
let t2 = year2 + '年' + month2 + '月' + day2 + '日'; let t2 = year2 + '年' + month2 + '月' + day2 + '日';
return t2; return t2;
} }
let imgage = require("@/assets/img/3c92b5010e6845229311385a05f864aa.jpg");
async function getDeviceDetailfun() { async function getDeviceDetailfun() {
setTimeout(() => { setTimeout(() => {
let result = { let result = {
@ -146,7 +146,7 @@ async function getDeviceDetailfun() {
], ],
"imgTip": { "imgTip": {
"realityTime": "", "realityTime": "",
"src": "3c92b5010e6845229311385a05f864aa.png", "src": imgage,
"deliveryDate": "", "deliveryDate": "",
"prtDeliveryDate": "2023年11月01日", "prtDeliveryDate": "2023年11月01日",
"status": "调试中" "status": "调试中"

View File

@ -73,7 +73,7 @@ let { t } = useI18n();
const route = useRoute() const route = useRoute()
const router = useRouter() const router = useRouter()
let severdata = reactive([]) let severdata = reactive([])
let percentage = ref(0) let percentage = ref({})
//id //id
const deptId: any = route.params.deptId const deptId: any = route.params.deptId
const title = route.query.title const title = route.query.title
@ -87,7 +87,7 @@ let legion: any = {
'15': '医防军团' '15': '医防军团'
} }
let scrollBoardConfig = reactive({ let scrollBoardConfig = reactive({
header: [t('messages.SerialNum'), t('messages.productName'), t('messages.model'), t('messages.RackNum'), t('messages.type'), t('messages.InstallPhase'), t('messages.产品状态'), t('messages.AssemblyGroup'), t('messages.electronicGroup'), t('messages.inspector'), t('messages.deliveryDay')], header: [t('messages.SerialNum'), t('messages.productName'), t('messages.model'), t('messages.RackNum'), t('messages.DebugProgress'), t('messages.InstallPhase'), t('messages.产品状态'), t('messages.AssemblyGroup'), t('messages.electronicGroup'), t('messages.inspector'), t('messages.deliveryDay')],
headerBGC: 'rgb(52, 105, 243)', headerBGC: 'rgb(52, 105, 243)',
oddRowBGC: '#100c2a', oddRowBGC: '#100c2a',
evenRowBGC: '#100c2a', evenRowBGC: '#100c2a',
@ -103,7 +103,7 @@ const getList = (deptId) => {
let ringObj = {} let ringObj = {}
res.data.forEach((item: any, index: number) => { res.data.forEach((item: any, index: number) => {
let status = JSON.parse(item.deviceStatus) == true ? '在线' : '离线' let status = JSON.parse(item.deviceStatus) == true ? '在线' : '离线'
let temp = [index + 1, item.name, item.model, item.label, item.typeName, item.status, status, item.assemblyGroup, item.electricGroup, item.inspector, item.deliveryDate] let temp = [index + 1, item.name, item.model, item.label, item.progress + "%", item.status, status, item.assemblyGroup, item.electricGroup, item.inspector, item.deliveryDate]
scrollBoardConfig.data.push(temp) scrollBoardConfig.data.push(temp)
item.index = index + 1 item.index = index + 1
severdata.push(item) severdata.push(item)
@ -131,7 +131,12 @@ const getprogressOfCorpsfun = () => {
res.data.forEach((item: any) => { res.data.forEach((item: any) => {
if (item.deptId == deptId) { if (item.deptId == deptId) {
percentage.value = Math.floor((item.accomplish / item.counts) * 100) percentage.value = {
accomplish: item.accomplish,
counts: item.counts
}
} }
}) })
} }

View File

@ -1,5 +1,5 @@
/* /*
* @FilePath: \daping\vue.config.js * @FilePath: \screenFront\vue.config.js
* @Author: 王路平 * @Author: 王路平
* @文件版本: V1.0.0 * @文件版本: V1.0.0
* @Date: 2023-01-29 15:16:36 * @Date: 2023-01-29 15:16:36
@ -11,12 +11,19 @@ const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig( module.exports = defineConfig(
{ {
transpileDependencies: true, transpileDependencies: true,
css: {
loaderOptions: {
sass: {
// 这里的选项会传递给 sass-loader
},
},
},
devServer: { devServer: {
proxy: { proxy: {
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
// target: 'http://192.168.2.125:2222', // 想要请求的url地址 // target: 'http://192.168.110.167:9015', // 想要请求的url地址
target: 'http://8.130.165.100:9015', target: 'http://8.130.165.100:9015',
// target: 'http://192.168.110.238:9015', // target: 'http://192.168.110.19:8080',
ws: true, // 是否要开启代理 ws: true, // 是否要开启代理
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
@ -33,10 +40,19 @@ module.exports = defineConfig(
// localAddress:"xxx", // 要为传出连接绑定的本地接口字符串 // localAddress:"xxx", // 要为传出连接绑定的本地接口字符串
// agent:{}, // 传递给http(s).request的对象 // agent:{}, // 传递给http(s).request的对象
// ssl:{}, // 传递给https.createServer()的对象 // ssl:{}, // 传递给https.createServer()的对象
} },
'/socket/': {
// target: 'http://192.168.1.128:9011', // 想要请求的url地址
target: 'http://8.130.165.100:9019',
// target: 'http://192.168.110.19:8080',
ws: true, // 是否要开启代理
changeOrigin: true,
},
} }
} }
} }