Porovnat revize

...

4 Revize
develop ... fzq

19 změnil soubory, kde provedl 717 přidání a 48 odebrání
  1. +10
    -6
      public/index.html
  2. +1
    -1
      src/components/base-detail-page/index.vue
  3. +20
    -5
      src/components/base-dialog/addOrUpdate/index.vue
  4. +14
    -0
      src/i18n/en.js
  5. +16
    -0
      src/i18n/zh-CN.js
  6. +2
    -2
      src/utils/request.js
  7. +355
    -0
      src/views/modules/monitoring/downloadLog.vue
  8. +26
    -2
      src/views/modules/monitoring/equipmentCurrentState.vue
  9. +1
    -1
      src/views/modules/monitoring/productionLine.vue
  10. +14
    -7
      src/views/modules/monitoring/qualityInspectionBoxBtn.vue
  11. +29
    -12
      src/views/modules/monitoring/qualityInspectionCurrent.vue
  12. +1
    -1
      src/views/modules/monitoring/qualityInspectionRecord.vue
  13. +2
    -2
      src/views/modules/monitoring/realtimeEquipment.vue
  14. +2
    -1
      src/views/modules/monitoring/reportDesign.vue
  15. +4
    -3
      src/views/modules/monitoring/reportPreview.vue
  16. +210
    -0
      src/views/modules/monitoring/unloadDetail.vue
  17. +2
    -1
      src/views/modules/oss/oss-upload.vue
  18. +2
    -1
      src/views/pages/login.vue
  19. +6
    -3
      vue.config.js

+ 10
- 6
public/index.html Zobrazit soubor

@@ -3,8 +3,8 @@
* @version:
* @Author: fzq
* @Date: 2022-11-25 09:51:46
* @LastEditors: fzq
* @LastEditTime: 2023-02-09 14:40:52
* @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
* @LastEditTime: 2023-09-20 11:15:04
-->
<!DOCTYPE html>
<html>
@@ -40,25 +40,29 @@
<% if (process.env.VUE_APP_NODE_ENV === 'dev') { %>
<script>
// window.SITE_CONFIG['apiURL'] = 'http://192.168.1.8';
window.SITE_CONFIG['apiURL'] = 'http://india.mes.picaiba.com/';
// window.SITE_CONFIG['apiURL'] = 'http://india.mes.picaiba.com/';
window.SITE_CONFIG['apiURL'] = 'http://127.0.0.1:8080/';
</script>
<% } %>
<!-- 集成测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod:sit') { %>
<script>
window.SITE_CONFIG['apiURL'] = 'http://india.mes.picaiba.com/';
// window.SITE_CONFIG['apiURL'] = 'http://india.mes.picaiba.com/';
window.SITE_CONFIG['apiURL'] = 'http://127.0.0.1:8080/';
</script>
<% } %>
<!-- 验收测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod:uat') { %>
<script>
window.SITE_CONFIG['apiURL'] = 'http://india.mes.picaiba.com/';
// window.SITE_CONFIG['apiURL'] = 'http://india.mes.picaiba.com/';
window.SITE_CONFIG['apiURL'] = 'http://127.0.0.1:8080/';
</script>
<% } %>
<!-- 生产环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod') { %>
<script>
window.SITE_CONFIG['apiURL'] = 'http://india.mes.picaiba.com/';
// window.SITE_CONFIG['apiURL'] = 'http://india.mes.picaiba.com/';
window.SITE_CONFIG['apiURL'] = 'http://127.0.0.1:8080/';
</script>
<% } %>
</head>


+ 1
- 1
src/components/base-detail-page/index.vue Zobrazit soubor

@@ -359,7 +359,7 @@ export default {
}).then(({ data: res }) => {
if (res && res.code === 0) {
const dataFormKeys = Object.keys(this.dataForm)
console.log('data form keys: ', dataFormKeys, pick(res.data, dataFormKeys))
// console.log('data form keys: ', dataFormKeys, pick(res.data, dataFormKeys))
this.dataForm = pick(res.data, dataFormKeys)

// LABEL: FILE_RELATED


+ 20
- 5
src/components/base-dialog/addOrUpdate/index.vue Zobrazit soubor

@@ -184,6 +184,8 @@ export default {
// },
data() {
return {
//按钮盒用
idMark: 1,
// 按钮防重复点击
isDisabled: false,
COLUMN_PER_ROW,
@@ -411,10 +413,10 @@ export default {
}).then(({ data: res }) => {
if (res && res.code === 0) {
const dataFormKeys = Object.keys(this.dataForm)
console.log('keys ===> ', dataFormKeys)
// console.log('keys ===> ', dataFormKeys)
// console.log('data form keys: ', dataFormKeys, pick(res.data, dataFormKeys))
this.dataForm = __pick(res.data, dataFormKeys)
console.log('pick(res.data, dataFormKeys) ===> ', __pick(res.data, dataFormKeys))
// console.log('pick(res.data, dataFormKeys) ===> ', __pick(res.data, dataFormKeys))
// LABEL: FILE_RELATED
/** 对文件下载进行分流 */
this.fileList = {}
@@ -469,6 +471,9 @@ export default {
this.dataForm[currentField.relatedField] = null
}
this.$emit('select-change', { name, id })

//按钮盒页面用
this.idMark = id
},

handleEditorReady(val) {},
@@ -510,9 +515,19 @@ export default {
}
this.$set(this.dataForm, 'fileIds', fileIds)
}

console.log('before send: ', this.dataForm)

// console.log('this.$route',this.$route);
// console.log('before send: ', this.dataForm)
//增加质量模块按钮盒多传参数的判断
if(this.$route.name == 'monitoring-qualityInspectionBoxBtn'){
// console.log('关键',this.configs.fields);
for(let i = 0;i<this.configs.fields[4].options.length;i++){
if (this.configs.fields[4].options[i].label == this.idMark) {
this.dataForm.inspectionDetId = this.configs.fields[4].options[i].inspectionDetId
}
}
}
// console.log('before send: ', this.dataForm)
this.$http({
url: this.$http.adornUrl(urls[btn.name].url),
method: btn.name === 'save' ? 'POST' : 'PUT',


+ 14
- 0
src/i18n/en.js Zobrazit soubor

@@ -27,6 +27,7 @@ t.routes['字典管理'] = 'Dict Management'
t.routes['PLC信息'] = 'PLC'
// Relations between
t.routes['设备与PLC关联配置'] = 'PLC & Equipments'
t.routes['下片监测'] = 'Unload Log'
t.routes['近24小时设备生产数据'] = 'Equipment Data'
t.routes['近24小时产线生产数据'] = 'Productline Data'
t.routes['近24小时质量检查数据'] = 'Quality Inspection Data'
@@ -67,6 +68,7 @@ t.routes['设备信息'] = 'Equipment Details'
t.routes['设备参数状态监控'] = 'Current Equipment State'
t.routes['设备分组报警信息'] = 'Equipment Group Alarm'
t.routes['设备历史参数'] = 'Equipment Historical Parameters'
t.routes['下片详情'] = 'Unload Detail'
t.routes['质量检测类型'] = 'Quality Inpection Types'
t.routes['质量检测信息'] = 'Quality Inpection Details'
t.routes['安灯检测盒'] = 'Andeng inspection box'
@@ -146,6 +148,11 @@ t.status = 'Status'
t.normal = 'Normal'
t.shutdown = 'Shut Down'
t.malfunction = 'Malfunction' // ?
t.stop = 'Stop'
t.run = 'Run'
t.unknown = 'Unknown'
t.buttonId = 'Button Number'
t.boxNo = 'Box Number'
t.diagram = 'Device Status Sequence Diagram'
t.diagram2 = 'Device Product Sequence Diagram'
t.addr = 'Address'
@@ -422,6 +429,13 @@ t.pl.choose = 'Please select equipment'
t.pl.confirm = 'Confirm'
t.pl.cancel = 'Cancel'
t.pl.success = 'The new device data is obtained successfully'
t.pl.paperLaying = 'Paper Laying Machine Number'
t.pl.robotNo = 'Robot Number'
t.pl.glassNumber = 'Pallet Glass Number'
t.pl.glassLength = 'Glass Length'
t.pl.glassWidth = 'Glass Width'
t.pl.thick = 'Glass Thcikness'
t.pl.quantity = 'Pallet Quantity'


t.prompt = {}


+ 16
- 0
src/i18n/zh-CN.js Zobrazit soubor

@@ -27,6 +27,7 @@ t.routes['设备'] = '设备'
t.routes['字典管理'] = '字典管理'
t.routes['PLC信息'] = 'PLC信息'
t.routes['设备与PLC关联配置'] = '设备与PLC关联配置' // ?
t.routes['下片监测'] = '下片监测'
t.routes['近24小时设备生产数据'] = '近24小时设备生产数据'
t.routes['近24小时产线生产数据'] = '近24小时产线生产数据'
t.routes['近24小时质量检查数据'] = '近24小时质量检查数据'
@@ -67,6 +68,7 @@ t.routes['设备信息'] = '设备信息'
t.routes['设备参数状态监控'] = '设备参数状态监控'
t.routes['设备分组报警信息'] = '设备分组报警信息'
t.routes['设备历史参数'] = '设备历史参数'
t.routes['下片详情'] = '下片详情'
t.routes['质量检测类型'] = '质量检测类型'
t.routes['质量检测信息'] = '质量检测信息'
t.routes['安灯检测盒'] = '安灯检测盒'
@@ -145,10 +147,16 @@ t.status = '状态' // 1
t.normal = '正常' // ?
t.shutdown = '停机' // ?
t.malfunction = '故障' // ?
t.stop = '停止'
t.run = '运行'
t.unknown = '未知'
t.buttonId = '网关号'
t.boxNo = '盒子编号'
t.diagram = '设备状态时序图'
t.diagram2 = '设备产量时序图'
t.addr = '地址' // 1
t.planStop = '计划停机' // ?

t.startTime = '开始时间' // 1
t.endTime = '结束时间' // 1
t.to = '至' // 1
@@ -423,6 +431,14 @@ t.pl.success = '新设备数据获取成功'
t.pl.choose = '请选择设备'
t.pl.confirm = '确定'
t.pl.cancel = '取消'
t.pl.paperLaying = '铺纸机名称'
t.pl.robotNo = '下片机名称'
t.pl.glassNumber = '木托玻璃数'
t.pl.glassLength = '玻璃长度'
t.pl.glassWidth = '玻璃宽度'
t.pl.thick = '玻璃厚度'
t.pl.quantity = '木托数量'



t.prompt = {}


+ 2
- 2
src/utils/request.js Zobrazit soubor

@@ -8,8 +8,8 @@ import merge from 'lodash/merge'

const http = axios.create({
// baseURL: window.SITE_CONFIG['apiURL'],
baseURL: '/api',
// baseURL: '/yd-monitor',
// baseURL: '/api',
baseURL: '/yd-monitor',
// baseURL: process.env.NODE_ENV === 'production' ? '/api' : '/yd-monitor',
timeout: 1000 * 180,
withCredentials: true


+ 355
- 0
src/views/modules/monitoring/downloadLog.vue Zobrazit soubor

@@ -0,0 +1,355 @@
<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="currentChangeHandle(1)" class="blueTip" size="small">
<el-form-item>
{{ $t('pl.name') }}
</el-form-item>
<el-form-item>
<!-- @input="getLineEqList($event)" -->
<el-select v-model="dataForm.lineId" :placeholder="$t('pl.name')" clearable filterable >
<el-option v-for="line in lineList" :key="line.code" :value="line.id" :label="line.name" />
</el-select>
</el-form-item>
<!-- <el-form-item>
{{ $t('eq.name') }}
</el-form-item>
<el-form-item>
<el-select v-model="dataForm.equipmentId" :placeholder="$t('eq.name')" clearable filterable>
<el-option v-for="eq in eqList" :key="eq.code" :value="eq.id" :label="eq.name" />
</el-select>
</el-form-item> -->
<el-form-item>
{{ $t('startTime') }}
</el-form-item>
<el-form-item>
<el-date-picker v-model="startTime" type="datetime" :placeholder="$t('hints.date')" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-ddTHH:mm:ss" />
</el-form-item>
<el-form-item>
{{ $t('endTime') }}
</el-form-item>
<el-form-item>
<el-date-picker v-model="endTime" type="datetime" :placeholder="$t('hints.date')" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-ddTHH:mm:ss" />
</el-form-item>
<el-form-item>
{{ $t('pl.thick') }}
</el-form-item>
<el-form-item>
<el-select v-model="glassThick" :placeholder="$t('pl.thick')">
<el-option
v-for="item in glassOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<!-- <el-button class="buttonColor" @click="currentChangeHandle(1)">{{ $t('query') }}</el-button> -->
<el-button class="buttonColor" @click="currentChangeHandle(1)">{{ $t('query') }}</el-button>
<!-- <el-button v-if="$hasPermission('monitoring:equipmentgroup:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> -->
</el-form-item>
</el-form>

<base-table
:data="dataList"
:table-head-configs="tableConfigs"
:max-height="calcMaxHeight(8)"
@operate-event="handleOperations"
@refreshDataList="getDataList" />
<!-- layout="total, sizes, prev, pager, next, jumper" -->
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper"
>
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" :configs="addOrUpdateConfigs" @refreshDataList="getDataList" @destory-dialog="handleDestroyDialog" />
</div>
</template>

<script>
import { calcMaxHeight } from '@/utils'
import { timeFilter } from '@/utils/filters'
import AddOrUpdate from '@/components/base-dialog/addOrUpdate'
// import AddOrUpdate from './equipmentGroup-add-or-update'
import i18n from '@/i18n'
import BaseTable from '@/components/base-table'
// import TableOperateComponent from '@/components/base-table/components/operationComponent'
import TableTextComponent from '@/components/base-table/components/detailComponent'

const tableConfigs = [
{
type: 'index',
width: 100,
name: i18n.t('index')
},
{ prop: 'lineName', name: i18n.t('pl.name') },
{ prop: 'location', name: i18n.t('pl.paperLaying') },
{ prop: 'equipmentName', name: i18n.t('pl.robotNo') },
{ prop: 'quantity', name: i18n.t('pl.quantity') },
{ prop: 'glassNumber', name: i18n.t('pl.glassNumber') },
{ prop: 'startTime', name: i18n.t('startTime') },
{ prop: 'endTime', name: i18n.t('endTime') },
{ prop: 'glassLength', name: i18n.t('pl.glassLength') },
{ prop: 'glassWidth', name: i18n.t('pl.glassWidth') },
{ prop: 'glassThickness', name: i18n.t('pl.thick') },
{
prop: 'detail',
name: i18n.t('detail'),
buttonContent: i18n.t('detail'),
subcomponent: TableTextComponent,
emitFullData: true,
actionName: 'view-detail'
}
// { prop: 'operations', name: i18n.t('handle'), fixed: 'right', width: 180, subcomponent: TableOperateComponent, options: ['edit', 'delete'] }
]

const addOrUpdateConfigs = {
type: 'dialog',
infoUrl: '/monitoring/downloadLog/getTimeDet',
fields: [{ name: 'equipmentName', label: i18n.t('eq.groupname') }, { name: 'equipmentName', label: i18n.t('eq.groupname') }],
operations: [
{ name: 'cancel', showAlways: true },
{ name: 'save', url: '/monitoring/equipmentGroup', permission: 'monitoring:equipmentgroup:save', showOnEdit: false },
{ name: 'update', url: '/monitoring/equipmentGroup', permission: 'monitoring:equipmentgroup:update', showOnEdit: true }
]
}

export default {
data() {
return {
addOrUpdateConfigs,
calcMaxHeight,
tableConfigs,
dataForm: {
equipmentId: '',
lineId: ''
},
dataList: [],
eqList: [],
lineList: [],
pageIndex: 1,
pageSize: 20,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false,
startTime: '',
endTime: '',
glassNumber: 95,
glassLength: 2261,
glassWidth: 1128,
glassThick: 3.2,
glassOptions: [{
value: 3.2,
label: '3.2mm'
}, {
value: 2,
label: '2mm'
}],
value: ''
}
},
components: {
AddOrUpdate,
BaseTable
},
activated() {
// this.getEqList()
this.getLineList()

this.getDataList()
},
methods: {
// destroy dialog
handleDestroyDialog() {
setTimeout(() => {
this.addOrUpdateVisible = false
}, /** after dialog animated */ 200)
},

// 产线对应设备
getLineEqList(event) {
// console.log(event)
this.$http({
url: this.$http.adornUrl('/monitoring/equipment/page'),
method: 'get',
params: this.$http.adornParams({
limit: 99999,
page: 1,
lineId: event
})
}).then(({ data }) => {
if (data && data.code === 0) {
let fileterEqList = data.data.list.filter((t) => {
return t.lineId == event
})
this.eqList = fileterEqList
} else {
this.eqList = []
}
})
},
// 产线
getLineList() {
this.$http({
url: this.$http.adornUrl('/monitoring/productionLine/list'),
method: 'get'
}).then(({ data }) => {
if (data && data.code === 0) {
this.lineList = data.data
} else {
this.lineList = []
}
})
},
// 获取数据列表
getDataList() {
this.addOrUpdateVisible = false
this.dataListLoading = true
// this.$http({
// url: this.$http.adornUrl('/monitoring/downloadLog/getTimeCount'),
// method: 'POST',
// params: this.$http.adornParams({
// // page: this.pageIndex,
// // limit: this.pageSize,
// // lineId: this.dataForm.lineId,
// 'startTime': this.startTime,
// 'endTime': this.endTime
// }
// )
this.$http({
url: this.$http.adornUrl('/monitoring/downloadLog/getTimeCount'),
method: 'POST',
data: {
page: this.pageIndex,
limit: this.pageSize,
// lineId: this.dataForm.lineId,
'startTime': this.startTime,
'endTime': this.endTime
}
}).then(({ data }) => {
if ((data && data.code === 0) && (this.dataForm.lineId != '')) {
// console.log('this.dataForm.lineId', this.dataForm.lineId);
let fileterLineList = data.data.filter((t) => {
return t.lineId == this.dataForm.lineId
})
this.dataList = fileterLineList
// this.dataList = data.data
this.totalPage = this.dataList.length
// console.log('this.totalPage',this.totalPage)
} else if (this.dataForm.lineId == '') {
this.dataList = data.data
this.totalPage = data.data.length
}
else {
this.dataList = []
this.totalPage = 0
}
for(let i =0;i<this.dataList.length;i++){
this.dataList[i].glassNumber = ( this.glassThick == 3.2 ) ? 95 :150
this.dataList[i].glassThickness = this.glassThick
this.dataList[i].glassLength = 2261
this.dataList[i].glassWidth = 1128
this.dataList[i].endTime = this.dataList[i].endTime == null ? '-' : this.dataList[i].endTime
this.dataList[i].startTime = this.dataList[i].startTime == null ? '-' : this.dataList[i].startTime
}
// console.log(this.dataList);
this.dataListLoading = false
})
},
// 每页数
sizeChangeHandle(val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
// 当前页
currentChangeHandle(val) {
this.pageIndex = val
this.getDataList()
},
// 多选
selectionChangeHandle(val) {
this.dataListSelections = val
},
handleOperations({ type, data }) {
switch (type) {
case 'view-detail':
const { equipmentId: id , equipmentName: name} = data
this.$router.push({
name: 'monitoring-unloadDetail',
params: { id, name }
})
break
// case 'edit':
// return this.addOrUpdateHandle(id)
// case 'delete':
// return this.deleteHandle(id)
}
},
// 新增 / 修改
addOrUpdateHandle(id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
// 删除
deleteHandle(id) {
var ids = id
? [id]
: this.dataListSelections.map((item) => {
return item.id
})
this.$confirm(`${i18n.t('prompt.info', { handle: id ? i18n.t('delete').toLowerCase() : i18n.t('deleteBatch').toLowerCase() })}`, i18n.t('prompt.title'), {
confirmButtonText: i18n.t('confirm'),
cancelButtonText: i18n.t('cancel'),
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl('/monitoring/equipmentGroup'),
method: 'delete',
data: this.$http.adornData(ids, false, 'raw')
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: i18n.t('prompt.success'),
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
})
}
}
}
</script>

<style>
.blueTip::before {
display: inline-block;
content: '';
width: 4px;
height: 24px;
background: #0b58ff;
border-radius: 1px;
margin-right: 8px;
margin-top: 4px;
}
.buttonColor {
color: #fff;
background: #0b58ff;
}
</style>

+ 26
- 2
src/views/modules/monitoring/equipmentCurrentState.vue Zobrazit soubor

@@ -5,7 +5,7 @@
{{ $t('pl.name') }}
</el-form-item>
<el-form-item>
<el-select v-model="dataForm.lineId" :placeholder="$t('pl.name')" clearable filterable>
<el-select v-model="dataForm.lineId" :placeholder="$t('pl.name')" clearable filterable @input="getLineEqList($event)">
<el-option v-for="line in lineList" :key="line.code" :value="line.id" :label="line.name" />
</el-select>
</el-form-item>
@@ -90,6 +90,7 @@ const tableConfigs = [
prop: 'status',
name: i18n.t('realtime.state'),
filter: (val) => {
if (val == 9) return i18n.t('unknown')
if (val !== null && val !== undefined) return [i18n.t('normal'), i18n.t('planStop'), i18n.t('malfunction')][+val]
}
},
@@ -150,8 +151,9 @@ export default {
BaseTable
},
activated() {
this.getEqList()
// this.getEqList()
this.getLineList()
this.getEqList()
this.getDataList()
},
methods: {
@@ -178,6 +180,28 @@ export default {
}
})
},
// 产线对应设备
getLineEqList(event) {
console.log(event)
this.$http({
url: this.$http.adornUrl('/monitoring/equipment/page'),
method: 'get',
params: this.$http.adornParams({
limit: 99999,
page: 1,
lineId: event
})
}).then(({ data }) => {
if (data && data.code === 0) {
let fileterEqList = data.data.list.filter((t) => {
return t.lineId == event
})
this.eqList = fileterEqList
} else {
this.eqList = []
}
})
},
// 产线
getLineList() {
this.$http({


+ 1
- 1
src/views/modules/monitoring/productionLine.vue Zobrazit soubor

@@ -61,7 +61,7 @@ const tableConfigs = [
{ prop: 'factoryName', name: i18n.t('factory.title') },
{ prop: 'name', name: i18n.t('pl.name') },
{ prop: 'code', name: i18n.t('pl.code') },
{ prop: 'status', name: i18n.t('pl.status'), filter: (val) => (val === 0 || val === 1 || val === 2) && ['停止', '运行', '未知'][val] },
{ prop: 'status', name: i18n.t('pl.status'), filter: (val) => (val === 0 || val === 1 || val === 2) && [i18n.t('stop'), i18n.t('run'), i18n.t('unknown')][val] },
{ prop: 'description', name: i18n.t('desc') },
{ prop: 'remark', name: i18n.t('remark') },
{ prop: 'operations', name: i18n.t('handle'), fixed: 'right', width: 180, subcomponent: TableOperateComponent, options: ['edit', 'delete'] }


+ 14
- 7
src/views/modules/monitoring/qualityInspectionBoxBtn.vue Zobrazit soubor

@@ -75,7 +75,7 @@ const tableConfigs = [
},
{ prop: 'inspectionDetContent', name: i18n.t('andeng.inspectContent') }, // name: '检测内容' },
{ prop: 'keyValue', name: i18n.t('andeng.btnVal') }, // name: '按钮值' },
{ prop: 'model', name: i18n.t('andeng.btnBoxModel') }, // name: '按钮盒模式' },
{ prop: 'buttonId', name: i18n.t('buttonId') }, // name: '网关号' },

{
prop: 'operations',
@@ -145,7 +145,9 @@ const addOrUpdateConfigs = {
required: true,
type: 'select',
options: []
}
},
{ name: 'buttonId', label: i18n.t('buttonId') },
{ name: 'boxNo', label: i18n.t('boxNo') }
],
operations: [
{ name: 'cancel', showAlways: true },
@@ -334,14 +336,15 @@ export default {
this.addOrUpdateConfigs.fields.forEach((item) => {
// console.log('item',item)
// console.log('res',res)
if (item.name === 'inspectionDetContent') item.options = res.data.list.map((item) => ({ label: item.content, value: item.content, inspectionDetId: item.code }))
// console.log('item',item)
if (item.name === 'inspectionDetContent') item.options = res.data.list.map((item) => ({ label: item.content, value: item.content, inspectionDetId: item.id }))
// console.log('this.addOrUpdateConfigs.fields[4].options', this.addOrUpdateConfigs.fields[4].options)
})
} else {
this.addOrUpdateConfigs.fields.forEach((item) => {
if (item.name === 'inspectionDetContent') item.options.splice(0)
})
}
// console.log('this.addOrUpdateConfigs.fields[4]检测内容',this.addOrUpdateConfigs)
})
},
// 每页数
@@ -375,16 +378,20 @@ export default {
}
case 'inspectionDetContent':
// this.dataForm.inspectionDetId = id
// console.log(id)
// console.log('name',name)
// console.log('id',id)
// console.log(this.addOrUpdateConfigs.fields[4].options)
for (var i = 0; i < this.addOrUpdateConfigs.fields[4].options.length; i++) {
if (this.addOrUpdateConfigs.fields[4].options[i].label == id) {
this.dataForm.inspectionDetId = this.addOrUpdateConfigs.fields[4].options[i].inspectionDetId
this.addOrUpdateConfigs.fields.inspectionDetId = this.addOrUpdateConfigs.fields[4].options[i].inspectionDetId
// this.addOrUpdateConfigs.fields[6].inspectionDetId = this.addOrUpdateConfigs.fields[4].options[i].inspectionDetId
// console.log('this.addOrUpdateConfigs.fields.inspectionDetId', this.addOrUpdateConfigs.fields)
// this.addOrUpdateConfigs.fields.push({name:'inspectionDetId'})
}
}
console.log('dataForm', this.dataForm)
console.log('addOrUpdateConfigs', this.addOrUpdateConfigs.fields)
// console.log('dataForm', this.dataForm)
// console.log('addOrUpdateConfigs', this.addOrUpdateConfigs.fields)
}
},
addSuccess() {


+ 29
- 12
src/views/modules/monitoring/qualityInspectionCurrent.vue Zobrazit soubor

@@ -1,21 +1,34 @@
<template>
<div class="mod-config">
<el-form :inline="true" @keyup.enter.native="getDataList()" class="blueTip" size="small">
<el-form-item>
<!-- <el-form-item>
{{ $t('time') }}
</el-form-item>
<el-form-item>
<!-- type="datetimerange" -->
type="datetimerange"
:default-time="['00:00:00', '23:59:59']"
<el-date-picker
type="daterange"
v-model="datetime"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-ddTHH:mm:ss"
:start-placeholder="$t('startTime')"
:end-placeholder="$t('endTime')"
:range-separator="$t('to')"
:default-time="['00:00:00', '23:59:59']"
:picker-options="quickOptions"
clearable />
</el-form-item> -->
<el-form-item>
{{ $t('startTime') }}
</el-form-item>
<el-form-item>
<el-date-picker v-model="startTime" type="datetime" :placeholder="$t('hints.date')" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-ddTHH:mm:ss" />
</el-form-item>
<el-form-item>
{{ $t('endTime') }}
</el-form-item>
<el-form-item>
<el-date-picker v-model="endTime" type="datetime" :placeholder="$t('hints.date')" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-ddTHH:mm:ss" />
</el-form-item>
<el-form-item>
<el-button class="buttonColor" @click="getDataList()">{{ $t('query') }}</el-button>
@@ -176,7 +189,7 @@ const FakeChart = {
},
defaultOpts: {
handler: function (val) {
console.log('defaullt opts change: ', val)
// console.log('defaullt opts change: ', val)
this.setOptions()
},
immediate: true,
@@ -222,6 +235,8 @@ export default {
dataType: dict[0], // 表格 | 图形
showGraph: false,
datetime: [],
startTime: '',
endTime: '',
quickOptions: {
shortcuts: [
{
@@ -267,8 +282,10 @@ export default {
this.echartCategories = null
this.echartCheckTypes.splice(0)
/** 设置默认日期 */
const startTime = this.datetime[0] || moment().set({ hour: 0, minute: 0, second: 0 }).format('yyyy-MM-DDTHH:mm:ss')
const endTime = this.datetime[1] || moment().set({ hour: 23, minute: 59, second: 59 }).format('yyyy-MM-DDTHH:mm:ss')
// const startTime = this.datetime[0] || moment().set({ hour: 0, minute: 0, second: 0 }).format('yyyy-MM-DDTHH:mm:ss')
// const endTime = this.datetime[1] || moment().set({ hour: 23, minute: 59, second: 59 }).format('yyyy-MM-DDTHH:mm:ss')
const startTime = this.startTime
const endTime = this.endTime

/** [1] 获取上下片数据 */
this.fetchList('sx', startTime, endTime).then(({ data: res }) => {
@@ -277,12 +294,12 @@ export default {
})
/** [2] 获取产线检测类型 */
this.fetchList('pl', startTime, endTime).then(({ data: res }) => {
console.log('res: ', res)
// console.log('res: ', res)
/** TODO: 解析 nameData */
this.parseTableProps(res.data.nameData)

this.dataListDynamic = this.parseDynamicData(res.data.data) || []
console.log('this.dataListDynamic', this.dataListDynamic)
// console.log('this.dataListDynamic', this.dataListDynamic)

this.buildGraphData()
})
@@ -337,9 +354,9 @@ export default {
this.echartCheckTypes.forEach((ect) => {
result.push({ name: ect, type: 'bar', data: [] })
})
console.log('result', result)
console.log('echartCheckTypes',this.echartCheckTypes);
console.log('this.echartCategories',this.echartCategories);
// console.log('result', result)
// console.log('echartCheckTypes',this.echartCheckTypes);
// console.log('this.echartCategories',this.echartCategories);
this.dataListDynamic.forEach((inspection, index) => {
// console.log('inspection: ', inspection)
this.echartCategories.forEach((cate) => {
@@ -357,7 +374,7 @@ export default {
// { name: '222', type: 'bar', data: [1, 2, 3] }
// ]

console.log('echarts data: ', this.echartsData)
// console.log('echarts data: ', this.echartsData)
},

fetchList(type, startTime, endTime) {


+ 1
- 1
src/views/modules/monitoring/qualityInspectionRecord.vue Zobrazit soubor

@@ -205,7 +205,7 @@ export default {
limit: 9999999
})
}).then(({ data: res }) => {
console.log('insdet:', res)
// console.log('insdet:', res)
const insDetOpt = this.addOrUpdateConfigs.fields.find((item) => item.name === 'inspectionDetId')
if (insDetOpt) {
insDetOpt.options = res.data.list.map((item) => ({ value: item.id, label: item.content })) || []


+ 2
- 2
src/views/modules/monitoring/realtimeEquipment.vue Zobrazit soubor

@@ -134,8 +134,8 @@ export default {
children: [
{ prop: obj.recordTime + '-inputNum', label: i18n.t('realtime.in') },
{ prop: obj.recordTime + '-outputNum', label: i18n.t('realtime.out') },
{ prop: obj.recordTime + '-scrapNum', label: i18n.t('realtime.data') },
{ prop: obj.recordTime + '-scrapRate', label: i18n.t('realtime.rate'), filter: val => (val !== '-' ? `${val.toFixed(2)}%` : '-') }
// { prop: obj.recordTime + '-scrapNum', label: i18n.t('realtime.data') },
// { prop: obj.recordTime + '-scrapRate', label: i18n.t('realtime.rate'), filter: val => (val !== '-' ? `${val.toFixed(2)}%` : '-') }
]
})
}


+ 2
- 1
src/views/modules/monitoring/reportDesign.vue Zobrazit soubor

@@ -14,7 +14,8 @@ export default {
// url: window.SITE_CONFIG['apiURL'] + this.$http.adornUrl('/ureport/designer')
// url: this.$http.adornUrl('/ureport/designer')
// url: (process.env.NODE_ENV === 'production' ? '/api' : '/yd-monitor') + '/ureport/designer'
url: '/api/ureport/designer'
// url: '/api/ureport/designer'
url: '/yd-monitor/ureport/designer'
}
},
mounted() {


+ 4
- 3
src/views/modules/monitoring/reportPreview.vue Zobrazit soubor

@@ -1,8 +1,8 @@
<!--
* @Author: gtz
* @Date: 2021-03-07 18:39:03
* @LastEditors: gtz
* @LastEditTime: 2022-02-24 16:35:51
* @LastEditors: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
* @LastEditTime: 2023-09-20 11:14:33
* @Description: file content
-->
<template>
@@ -24,7 +24,8 @@ export default {
// url: process.env.VUE_APP_REPORT_VIEW_URL
// url: window.SITE_CONFIG['apiURL'] + this.$http.adornUrl('/ureport/preview')
// url: (process.env.NODE_ENV === 'production' ? '/api' : '/yd-monitor') + '/ureport/preview'
url: '/api/ureport/preview'
// url: '/api/ureport/preview'
url: '/yd-monitor/ureport/preview'
}
},
mounted() {


+ 210
- 0
src/views/modules/monitoring/unloadDetail.vue Zobrazit soubor

@@ -0,0 +1,210 @@
<template>
<el-form :model="dataForm" :inline="true" class="blueTip" size="small">
<el-form-item>
{{ $t('pl.robotNo') }}
</el-form-item>
<!-- <el-form-item :label="$t('equCode')">
<strong>{{ equipmentCode }}</strong>
</el-form-item> -->
<el-form-item >
{{ equipmentName }}
</el-form-item>
<el-form-item>
{{ $t('startTime') }}
</el-form-item>
<el-form-item>
<el-date-picker v-model="startTime" type="datetime" :placeholder="$t('hints.date')" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-ddTHH:mm:ss" />
</el-form-item>
<el-form-item>
{{ $t('endTime') }}
</el-form-item>
<el-form-item>
<el-date-picker v-model="endTime" type="datetime" :placeholder="$t('hints.date')" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-ddTHH:mm:ss" />
</el-form-item>
<el-form-item>
{{ $t('pl.thick') }}
</el-form-item>
<el-form-item>
<el-select v-model="glassThick" :placeholder="$t('pl.thick')">
<el-option
v-for="item in glassOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<!-- <el-button class="buttonColor" @click="currentChangeHandle(1)">{{ $t('query') }}</el-button> -->
<el-button class="buttonColor" @click="currentChangeHandle(1)">{{ $t('query') }}</el-button>
<!-- <el-button v-if="$hasPermission('monitoring:equipmentgroup:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> -->
</el-form-item>
<base-table
:page="pageIndex"
:size="pageSize"
:data="dataList"
:table-head-configs="tableConfigs"
:max-height="calcMaxHeight(8)"
@refreshDataList="getDataList" />
<!-- layout="total, sizes, prev, pager, next, jumper" -->
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper"
>
</el-pagination>
</el-form>
</template>

<script>
import { calcMaxHeight } from '@/utils'
import { timeFilter } from '@/utils/filters'
import AddOrUpdate from '@/components/base-dialog/addOrUpdate'
import i18n from '@/i18n'
import BaseTable from '@/components/base-table'
import { pick } from 'lodash/object'
import equipmentVue from './equipment.vue'

const tableConfigs = [
{
type: 'index',
width: 100,
name: i18n.t('index')
},
{ prop: 'lineName', name: i18n.t('pl.name') },
{ prop: 'location', name: i18n.t('pl.paperLaying') },
{ prop: 'equipmentName', name: i18n.t('pl.robotNo') },
{ prop: 'glassNumber', name: i18n.t('pl.glassNumber') },
{ prop: 'startTime', name: i18n.t('startTime') },
{ prop: 'endTime', name: i18n.t('endTime') },
{ prop: 'glassLength', name: i18n.t('pl.glassLength') },
{ prop: 'glassWidth', name: i18n.t('pl.glassWidth') },
{ prop: 'glassThickness', name: i18n.t('pl.thick') },
// { prop: 'operations', name: i18n.t('handle'), fixed: 'right', width: 180, subcomponent: TableOperateComponent, options: ['edit', 'delete'] }
]

export default {
data() {
return {
calcMaxHeight,
tableConfigs,
dataForm: {
equipmentId: '',
lineId: ''
},
dataList: [],
eqList: [],
lineList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
equId: null,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false,
startTime: '',
endTime: '',
glassNumber: 95,
glassLength: 2261,
glassWidth: 1128,
glassThick: 3.2,
glassOptions: [{
value: 3.2,
label: '3.2mm'
}, {
value: 2,
label: '2mm'
}],
value: '',
equipmentName: this.$route.params.name
}
},
components: {
AddOrUpdate,
BaseTable
},
activated() {
this.getDataList()
},
mouted() {
this.getDataList()
},
created() {
// console.log('params',this.$route.params)
},
methods: {
// destroy dialog
handleDestroyDialog() {
setTimeout(() => {
this.addOrUpdateVisible = false
}, /** after dialog animated */ 200)
},
// 获取数据列表
getDataList() {
// console.log('this.$route.params.name',this.$route.params.name);
this.equipmentName = this.$route.params.name
this.dataListLoading = true
this.$http({
// url: this.$http.adornUrl(`/monitoring/downloadLog/getTimeDet/${this.$route.params.id}`),
url: this.$http.adornUrl('/monitoring/downloadLog/getTimeDet'),
method: 'POST',
data: {
page: this.pageIndex,
limit: this.pageSize,
// lineId: this.dataForm.lineId,
equId: this.$route.params.id,
'startTime': this.startTime,
'endTime': this.endTime
}
}).then(({ data }) => {
if (data && data.code === 0) {
// let fileterLineList = data.data.filter((t) => {
// return t.lineId == this.dataForm.lineId
// })
// this.dataList = fileterLineList
this.dataList = data.data.list
// this.totalPage = this.dataList.length
this.totalPage = data.data.total
console.log('data',data)
} else if (this.dataForm.lineId == '') {
this.dataList = data.data.list
this.totalPage = data.data.total
// console.log('this.dataList',this.dataList);
}
else {
this.dataList = []
this.totalPage = 0
}
for(let i =0;i<this.dataList.length;i++){
this.dataList[i].glassNumber = ( this.glassThick == 3.2 ) ? 95 :150
this.dataList[i].glassThickness = this.glassThick
this.dataList[i].glassLength = 2261
this.dataList[i].glassWidth = 1128
this.dataList[i].endTime = this.dataList[i].endTime == null ? '-' : this.dataList[i].endTime
this.dataList[i].startTime = this.dataList[i].startTime == null ? '-' : this.dataList[i].startTime
}
// console.log(this.dataList);
this.dataListLoading = false
}).catch(()=>{}) //---去除无效报错---
},
// 每页数
sizeChangeHandle(val) {
this.pageSize = val
this.pageIndex = 1
this.getDataList()
},
// 当前页
currentChangeHandle(val) {
this.pageIndex = val
this.getDataList()
}
}
}
</script>

+ 2
- 1
src/views/modules/oss/oss-upload.vue Zobrazit soubor

@@ -30,7 +30,8 @@ export default {
this.visible = true
// this.url = `${window.SITE_CONFIG['apiURL']}/sys/oss/upload?token=${Cookies.get('token')}`
// this.url = (process.env.NODE_ENV === 'production' ? '/api' : '/yd-monitor') + `/sys/oss/upload?token=${Cookies.get('token')}`
this.url = `/api/sys/oss/upload?token=${Cookies.get('token')}`
// this.url = `/api/sys/oss/upload?token=${Cookies.get('token')}`
this.url = `/yd-monitor/sys/oss/upload?token=${Cookies.get('token')}`
this.num = 0
this.fileList = []
},


+ 2
- 1
src/views/pages/login.vue Zobrazit soubor

@@ -166,7 +166,8 @@ export default {
this.dataForm.uuid = getUUID()
// this.captchaPath = `${window.SITE_CONFIG['apiURL']}/captcha?uuid=${this.dataForm.uuid}`
// this.captchaPath = (process.env.NODE_ENV === 'production' ? '/api' : '/yd-monitor') + `/captcha?uuid=${this.dataForm.uuid}`
this.captchaPath = `/api/captcha?uuid=${this.dataForm.uuid}`
// this.captchaPath = `/api/captcha?uuid=${this.dataForm.uuid}`
this.captchaPath = `/yd-monitor/captcha?uuid=${this.dataForm.uuid}`
},
// 表单提交
dataFormSubmitHandle: debounce(


+ 6
- 3
vue.config.js Zobrazit soubor

@@ -29,13 +29,16 @@ module.exports = {
},
proxy: {
'/api': {
target: 'http://india.mes.picaiba.com/'
// target: 'http://india.mes.picaiba.com/'
target: 'http://127.0.0.1:8080/'
},
'/yd-monitor': {
target: 'http://192.168.1.18:8080/' // 开发地址
// target: 'http://192.168.1.18:8080/' // 开发地址
target: 'http://127.0.0.1:8080/'
},
'/ureport': {
target: 'http://india.mes.picaiba.com/' // ureporter
// target: 'http://india.mes.picaiba.com/' // ureporter
target: 'http://127.0.0.1:8080/'
}
}
}


Načítá se…
Zrušit
Uložit