Compare commits

..

14 Commits

Author SHA1 Message Date
gtz
be430ebbff Merge branch 'projects/mes-test' of git.picaiba.com:mt-fe-group/yudao-dev into projects/mes-test 2023-11-30 09:08:59 +08:00
gtz
61b4bf784b Merge branch 'projects/mes-test' of git.picaiba.com:mt-fe-group/yudao-dev into projects/mes-test 2023-11-29 10:17:02 +08:00
gtz
b0f10b9002 '1' 2023-11-29 10:16:58 +08:00
gtz
e6b9d75f16 Merge branch 'projects/mes-test' of git.picaiba.com:mt-fe-group/yudao-dev into projects/mes-test 2023-11-28 09:03:13 +08:00
gtz
d9f3434712 Merge branch 'projects/mes-test' of git.picaiba.com:mt-fe-group/yudao-dev into projects/mes-test 2023-11-27 09:31:52 +08:00
gtz
de15716b7c Merge branch 'projects/mes-test' of git.picaiba.com:mt-fe-group/yudao-dev into projects/mes-test 2023-11-22 14:53:49 +08:00
gtz
c736992a34 '1' 2023-11-22 14:49:56 +08:00
gtz
dcbb2c719b Merge branch 'projects/mes-test' of git.picaiba.com:mt-fe-group/yudao-dev into projects/mes-test 2023-11-22 14:15:39 +08:00
gtz
bc2940ca99 Merge branch 'projects/mes-test' of git.picaiba.com:mt-fe-group/yudao-dev into projects/mes-test 2023-11-21 17:30:38 +08:00
gtz
76938951ed Merge branch 'projects/mes-test' of git.picaiba.com:mt-fe-group/yudao-dev into projects/mes-test 2023-11-20 16:07:12 +08:00
gtz
8b91e7812f '1' 2023-11-17 10:38:44 +08:00
gtz
9cffa01414 Merge branch 'projects/mes-test' of git.picaiba.com:mt-fe-group/yudao-dev into projects/mes-test 2023-11-17 10:38:35 +08:00
gtz
905479d5f4 'del_dist' 2023-11-17 10:29:23 +08:00
gtz
c1ae248234 '1' 2023-11-17 10:28:39 +08:00
30 changed files with 344 additions and 364 deletions

View File

@@ -15,15 +15,14 @@ VUE_APP_TITLE = MES系统
VUE_APP_BASE_API = '/prod-api' VUE_APP_BASE_API = '/prod-api'
# 积木报表指向地址 # 积木报表指向地址
VUE_APP_JIMU_API = 'http://192.168.0.33:48082' VUE_APP_JIMU_API = 'http://10.70.2.2:8080'
# 根据服务器或域名修改 # 根据服务器或域名修改
# PUBLIC_PATH = 'http://my-pi.com:8888/yudao-admin/' PUBLIC_PATH = 'http://10.70.2.32'
PUBLIC_PATH = 'http://192.168.0.33:8889/'
# 二级部署路径 # 二级部署路径
VUE_APP_APP_NAME ='yudao-admin' # VUE_APP_APP_NAME ='yudao-admin'
# 多租户的开关 # 多租户的开关
VUE_APP_TENANT_ENABLE = true VUE_APP_TENANT_ENABLE = true

View File

@@ -1,16 +1,21 @@
NODE_ENV = production # 生产环境配置
ENV = 'production'
# 页面标题 # 页面标题
VUE_APP_TITLE = 产线监控系统 VUE_APP_TITLE = MES系统
# 测试环境配置 # 芋道管理系统/生产环境
ENV = 'staging' VUE_APP_BASE_API = '/prod-api'
# 芋道管理系统/测试环境 # 积木报表指向地址
VUE_APP_BASE_API = 'http://api-dashboard.yudao.iocoder.cn' VUE_APP_JIMU_API = 'http://192.168.0.33:48082'
# 静态资源地址
PUBLIC_PATH = 'http://static.yudao.iocoder.cn/' # 根据服务器或域名修改
PUBLIC_PATH = 'http://192.168.0.33:8889/'
# 二级部署路径
# VUE_APP_APP_NAME ='yudao-admin'
# 多租户的开关 # 多租户的开关
VUE_APP_TENANT_ENABLE = true VUE_APP_TENANT_ENABLE = true
@@ -20,4 +25,3 @@ VUE_APP_DOC_ENABLE = false
# 百度统计 # 百度统计
VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

View File

@@ -360,6 +360,7 @@ export default {
ts: Date.now(), // 现在的时间戳 ts: Date.now(), // 现在的时间戳
} }
reqGet(data).then(res => { reqGet(data).then(res => {
console.log(1)
if (res.repCode === '0000') { if (res.repCode === '0000') {
this.backImgBase = res.repData.originalImageBase64 this.backImgBase = res.repData.originalImageBase64
this.blockBackImgBase = res.repData.jigsawImageBase64 this.blockBackImgBase = res.repData.jigsawImageBase64

View File

@@ -78,6 +78,7 @@ export default {
return this.http(this.infoUrl == '' ? this.infoPath : this.infoUrl, 'get', payload); return this.http(this.infoUrl == '' ? this.infoPath : this.infoUrl, 'get', payload);
}, },
del(payload) { del(payload) {
debugger;
return this.http(this.deleteUrl == '' ? this.deletePath : this.deleteUrl, 'delete', payload); return this.http(this.deleteUrl == '' ? this.deletePath : this.deleteUrl, 'delete', payload);
}, },

View File

@@ -104,7 +104,7 @@ export const constantRoutes = [
// this generates a separate chunk (about.[hash].js) for this route // this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited. // which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "about" */ '@/views/OperationalOverview/coldBoard.vue') component: () => import(/* webpackChunkName: "about" */ '@/views/OperationalOverview/coldBoard.vue')
}, },
{ {
path: '/processingBoard', path: '/processingBoard',
name: 'processingBoard', name: 'processingBoard',

View File

@@ -1,349 +1,324 @@
<template> <template>
<div class="choicepart-container"> <div class="choicepart-container">
<navbar /> <navbar />
<div class="choicepart-wrapper"> <div class="choicepart-wrapper">
<div <div class="choicepart-box" id="choicepartBox" :style="'transform:scale('+scale+');width:1574px;height:538px;'" v-show="showItem">
class="choicepart-box" <div class="choicepart-line1">
id="choicepartBox" <div
:style="'transform:scale(' + scale + ');width:1574px;height:538px;'" v-for="(item, index) in menuArr1"
v-show="showItem"> :key="index"
<div class="choicepart-line1"> class="choicepart-item"
<div @click="handelClick(item, item.choicepart)"
v-for="(item, index) in menuArr1" :style="{opacity: item.visible?1:0.4, pointerEvents:item.visible?'auto':'none'}"
:key="index" >
class="choicepart-item" <div>
@click="handelClick(item, item.choicepart)" <img :src="require(`../../assets/images/choicepart/${item.name}.png`)" alt="">
:style="{ </div>
opacity: item.visible ? 1 : 0.4, <div class="choicepart-item-title">{{item.meta.title}}</div>
pointerEvents: item.visible ? 'auto' : 'none', </div>
}"> </div>
<div> <div class="choicepart-line2">
<img <div
:src=" v-for="(item, index) in menuArr2"
require(`../../assets/images/choicepart/${item.name}.png`) :key="index"
" class="choicepart-item"
alt="" /> @click="handelClick(item, item.choicepart)"
</div> :style="{opacity: item.visible?1:0.4, pointerEvents:item.visible?'auto':'none'}"
<div class="choicepart-item-title">{{ item.meta.title }}</div> >
</div> <div>
</div> <img :src="require(`../../assets/images/choicepart/${item.name}.png`)" alt="">
<div class="choicepart-line2"> </div>
<div <div class="choicepart-item-title">{{item.meta.title}}</div>
v-for="(item, index) in menuArr2" </div>
:key="index" </div>
class="choicepart-item" </div>
@click="handelClick(item, item.choicepart)" </div>
:style="{ <div class="choicepart-footer">&copy; 中建材智能自动化研究院有限公司</div>
opacity: item.visible ? 1 : 0.4, </div>
pointerEvents: item.visible ? 'auto' : 'none',
}">
<div>
<img
:src="
require(`../../assets/images/choicepart/${item.name}.png`)
"
alt="" />
</div>
<div class="choicepart-item-title">{{ item.meta.title }}</div>
</div>
</div>
</div>
</div>
<div class="choicepart-footer">&copy; 中建材智能自动化研究院有限公司</div>
</div>
</template> </template>
<script> <script>
import Navbar from './components/Navbar'; import Navbar from './components/Navbar'
import { debounce } from '@/utils/debounce'; import { debounce } from '@/utils/debounce'
export default { export default {
components: { Navbar }, components: { Navbar },
name: 'choicePart', name: 'choicePart',
data() { data() {
return { return {
boxReset: '', boxReset: '',
scale: 1, scale: 1,
menuArr1: [ menuArr1: [
{ {
name: 'Core', name: 'Core',
title: '基础核心', title: '基础核心',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, },
{ {
name: 'Order', name: 'Order',
title: '订单管理', title: '订单管理',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, },
{ {
name: 'Equipment', name: 'Equipment',
title: '设备管理', title: '设备管理',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, },
{ {
name: 'Group', name: 'Group',
title: '班组管理', title: '班组管理',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, },
{ {
name: 'Quality', name: 'Quality',
title: '质量管理', title: '质量管理',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, },
{ {
name: 'Warehouse', name: 'Warehouse',
title: '仓库管理', title: '仓库管理',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, },
{ {
name: 'Energy', name: 'Energy',
title: '能源管理', title: '能源管理',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, }
], ],
menuArr2: [ menuArr2: [
{ {
name: 'Packaging', name: 'Packaging',
title: '包装管理', title: '包装管理',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, },
{ {
name: 'Material', name: 'Material',
title: '物料管理', title: '物料管理',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, },
{ {
name: 'Extend', name: 'Extend',
title: '工艺管理', title: '工艺管理',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, },
{ {
name: 'Delivery', name: 'Delivery',
title: '成品发货', title: '成品发货',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, },
{ {
name: 'Report', name: 'Report',
title: '报表管理', title: '报表管理',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, },
{ {
name: 'System', name: 'System',
title: '系统管理', title: '系统管理',
visible: false, visible: false,
meta: { meta: {
title: '', title: ''
}, }
}, }
{ ],
name: 'Devconfig', showItem: false
title: '开发配置', }
visible: false, },
meta: { // computed:{
title: '', // ...mapGetters(['sidebarRouters'])
}, // },
}, mounted() {
], this.getMsg()
showItem: false, this.boxReset = debounce(() => {
}; this.resetSize()
}, }, 300)
// computed:{ this.boxReset()
// ...mapGetters(['sidebarRouters']) window.addEventListener('resize', () => {
// }, this.boxReset()
mounted() { })
this.getMsg(); },
this.boxReset = debounce(() => { methods: {
this.resetSize(); getMsg() {
}, 300); let menuList = this.$store.state.permission.sidebarRouters
this.boxReset(); console.log(menuList)
window.addEventListener('resize', () => { if (menuList.length > 0) {
this.boxReset(); for (let i = 0; i < menuList.length; i ++) {
}); for (let k = 0; k < 7; k++) {
}, if (menuList[i].name === this.menuArr1[k].name) {
methods: { this.menuArr1[k].visible = true
getMsg() { this.menuArr1[k].id = menuList[i].id
let menuList = this.$store.state.permission.sidebarRouters; this.menuArr1[k].choicepart = i
console.log(menuList); this.menuArr1[k].children = menuList[i].children
if (menuList.length > 0) { this.menuArr1[k].meta = menuList[i].meta
for (let i = 0; i < menuList.length; i++) { }
for (let k = 0; k < 7; k++) { }
if (menuList[i].name === this.menuArr1[k].name) { for (let j = 0; j < 6; j++) {
this.menuArr1[k].visible = true; if (menuList[i].name === this.menuArr2[j].name) {
this.menuArr1[k].id = menuList[i].id; this.menuArr2[j].visible = true
this.menuArr1[k].choicepart = i; this.menuArr2[j].id = menuList[i].id
this.menuArr1[k].children = menuList[i].children; this.menuArr2[j].choicepart = i
this.menuArr1[k].meta = menuList[i].meta; this.menuArr2[j].children = menuList[i].children
} this.menuArr2[j].meta = menuList[i].meta
} }
for (let j = 0; j < 7; j++) { }
if (menuList[i].name === this.menuArr2[j].name) { }
this.menuArr2[j].visible = true; }
this.menuArr2[j].id = menuList[i].id; console.log(this.menuArr1)
this.menuArr2[j].choicepart = i; console.log(this.menuArr2)
this.menuArr2[j].children = menuList[i].children; },
this.menuArr2[j].meta = menuList[i].meta; handelClick(item, index) {
} // this.$router.push({name: 'SystemUser'})
} this.$store.dispatch('app/setChoicepart', index)
} this.toRouter(item)
} // if (item.meta.unuse) {
console.log(this.menuArr1); // this.$message.warning(this.$t('暂无数据'))
console.log(this.menuArr2); // } else {
}, // this.toRouter(item)
handelClick(item, index) { // }
// this.$router.push({name: 'SystemUser'}) },
this.$store.dispatch('app/setChoicepart', index); toRouter(item) {
this.toRouter(item); console.log(item)
// if (item.meta.unuse) { if (item.children) {
// this.$message.warning(this.$t('暂无数据')) this.toRouter(item.children[0])
// } else { } else {
// this.toRouter(item) this.$router.push({ name: item.name })
// } }
}, },
toRouter(item) { resetSize() {
console.log(item); let _this = this
if (item.children) { _this.showItem = false
this.toRouter(item.children[0]); _this.loading = true
} else { let choicepartBox = document.querySelector('#choicepartBox')
this.$router.push({ name: item.name }); let rw = parseFloat(window.innerWidth)
} let rh = parseFloat(window.innerHeight)
}, let bw = parseFloat(choicepartBox.style.width)
resetSize() { let bh = parseFloat(choicepartBox.style.height)
let _this = this; let wx = 0.82/(bw / rw)
_this.showItem = false; let hx = 0.56/(bh / rh)
_this.loading = true; _this.scale = wx > hx ? hx : wx
let choicepartBox = document.querySelector('#choicepartBox'); setTimeout(_this.showItemFun, 700)
let rw = parseFloat(window.innerWidth); },
let rh = parseFloat(window.innerHeight); showItemFun() {
let bw = parseFloat(choicepartBox.style.width); this.loading = false
let bh = parseFloat(choicepartBox.style.height); this.showItem = true
let wx = 0.82 / (bw / rw); }
let hx = 0.56 / (bh / rh); },
_this.scale = wx > hx ? hx : wx; beforeDestroy() {
setTimeout(_this.showItemFun, 700); this.showItem = false
}, }
showItemFun() {
this.loading = false;
this.showItem = true;
},
},
beforeDestroy() {
this.showItem = false;
},
};
</script>
<style lang="scss" scoped>
.choicepart-container {
position: relative;
width: 100%;
height: 100%;
background: url('../../assets/images/choicepart/choicepart-back.png') repeat;
background-size: 100% 100%;
.choicepart-wrapper {
width: 100vw;
height: calc(100vh - 94px);
display: flex;
justify-content: center;
align-items: center;
}
.choicepart-box {
// transition: all 0.3s linear;
.choicepart-line1 {
width: 100%;
margin-bottom: 80px;
display: flex;
flex-flow: row nowrap;
}
.choicepart-line2 {
width: 100%;
display: flex;
flex-flow: row nowrap;
justify-content: center;
}
.choicepart-item {
width: 184px;
height: 224px;
background: url('../../assets/images/choicepart/choice-item-back.png')
no-repeat;
background-size: 100% 100%;
border-radius: 5px;
overflow: hidden;
cursor: pointer;
position: relative;
margin: 0 20px;
img {
width: 184px;
height: 224px;
}
.choicepart-item-title {
overflow: hidden;
padding: 0 10px;
text-overflow: ellipsis;
white-space: nowrap;
position: absolute;
bottom: 0;
left: 2px;
right: 2px;
text-align: center;
color: #fff;
font-size: 16px;
line-height: 40px;
height: 40px;
letter-spacing: 2px;
background-color: rgba($color: #0b58ff, $alpha: 0.45);
}
}
.choicepart-item:hover {
.choicepart-item-title {
background-color: rgba($color: #0b58ff, $alpha: 1);
}
}
}
.choicepart-footer {
position: absolute;
width: 100%;
color: #c7c7c7;
user-select: none;
font-size: 12px;
letter-spacing: 1px;
height: 30px;
display: grid;
place-content: center;
bottom: 0;
opacity: 0.5;
}
} }
</style> </script>
<style lang='scss' scoped>
.choicepart-container {
position: relative;
width: 100%;
height: 100%;
background: url('../../assets/images/choicepart/choicepart-back.png') repeat;
background-size: 100% 100%;
.choicepart-wrapper {
width: 100vw;
height: calc(100vh - 94px);
display: flex;
justify-content: center;
align-items: center;
}
.choicepart-box {
// transition: all 0.3s linear;
.choicepart-line1 {
width: 100%;
margin-bottom: 80px;
display: flex;
flex-flow: row nowrap;
}
.choicepart-line2 {
width: 100%;
display: flex;
flex-flow: row nowrap;
justify-content: center;
}
.choicepart-item {
width: 184px;
height: 224px;
background: url('../../assets/images/choicepart/choice-item-back.png') no-repeat;
background-size: 100% 100%;
border-radius: 5px;
overflow: hidden;
cursor: pointer;
position: relative;
margin: 0 20px;
img {
width: 184px;
height: 224px;
}
.choicepart-item-title {
overflow: hidden;
padding: 0 10px;
text-overflow: ellipsis;
white-space: nowrap;
position: absolute;
bottom: 0;
left: 2px;
right: 2px;
text-align: center;
color: #fff;
font-size: 16px;
line-height: 40px;
height: 40px;
letter-spacing: 2px;
background-color: rgba($color: #0b58ff, $alpha: 0.45);
}
}
.choicepart-item:hover {
.choicepart-item-title {
background-color: rgba($color: #0b58ff, $alpha: 1);
}
}
}
.choicepart-footer {
position: absolute;
width: 100%;
color: #C7C7C7;
user-select: none;
font-size: 12px;
letter-spacing: 1px;
height: 30px;
display: grid;
place-content: center;
bottom: 0;
opacity: 0.5;
}
}
</style>

View File

@@ -94,7 +94,7 @@ export default {
return { return {
readOnly: false, readOnly: false,
chosedLogId: false, chosedLogId: false,
searchBarKeys: ['equipmentName', 'createTime'], searchBarKeys: ['equipmentName', 'recordTime'],
tableBtn: [ tableBtn: [
// this.$auth.hasPermi('equipment:spare-parts-config:update') // this.$auth.hasPermi('equipment:spare-parts-config:update')
// ? { // ? {
@@ -124,11 +124,11 @@ export default {
label: '报警级别', label: '报警级别',
filter: publicFormatter(this.DICT_TYPE.EQU_ALARM_LEVEL), filter: publicFormatter(this.DICT_TYPE.EQU_ALARM_LEVEL),
}, },
{ prop: 'createTime', label: '报警时间', filter: timeFilter }, { prop: 'createTime', label: '报警时间', filter: timeFilter }, // 接口缺
{ prop: 'alarmCode', label: '设备报警码' }, { prop: 'alarmCode', label: '设备报警码' }, // 接口缺
{ prop: 'alarmContent', label: '报警内容' }, { prop: 'alarmContent', label: '报警内容' },
{ prop: 'opt1', label: '处理记录', name: '查看', subcomponent: btn }, { prop: 'opt1', label: '处理记录', name: '查看', subcomponent: btn },
{ prop: 'opt2', label: '处理', name: '报警处理', subcomponent: btn }, { prop: 'opt2', label: '处理', name: '报警处理', subcomponent: btn }, // TODO: 是否换成按钮, 群里问
// { prop: 'remark', label: '备注' }, // { prop: 'remark', label: '备注' },
], ],
searchBarFormConfig: [ searchBarFormConfig: [
@@ -145,8 +145,8 @@ export default {
dateType: 'daterange', // datetimerange dateType: 'daterange', // datetimerange
// format: 'yyyy-MM-dd HH:mm:ss', // format: 'yyyy-MM-dd HH:mm:ss',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
// valueFormat: 'timestamp', valueFormat: 'timestamp',
valueFormat: 'yyyy-MM-dd HH:mm:ss', // valueFormat: 'yyyy-MM-dd HH:mm:ss',
rangeSeparator: '-', rangeSeparator: '-',
startPlaceholder: '开始日期', startPlaceholder: '开始日期',
endPlaceholder: '结束日期', endPlaceholder: '结束日期',