projects/mesxc-zhp #143

Merged
gtz217 merged 3 commits from projects/mesxc-zhp into projects/mesxc-test 2023-12-13 17:08:40 +08:00
36 changed files with 591 additions and 538 deletions
Showing only changes of commit 4e48eae2a7 - Show all commits

View File

@ -142,9 +142,6 @@ function findMaxLabelWidth(rows) {
if (!opt.label) return 0; if (!opt.label) return 0;
if (opt.label.length > max) { if (opt.label.length > max) {
max = opt.label.length; max = opt.label.length;
if (opt.label.includes('(')) {
max = max - 3
}
} }
}); });
}); });
@ -242,7 +239,7 @@ export default {
size: { size: {
type: String, type: String,
default: '', default: '',
} },
}, },
data() { data() {
return { return {

View File

@ -83,7 +83,7 @@ export default {
], ],
}, },
placeholder: '请输入内容', placeholder: '请输入内容',
// readOnly: false, readOnly: true,
}, },
}; };
}, },
@ -123,13 +123,11 @@ export default {
const editor = this.$refs.editor; const editor = this.$refs.editor;
this.Quill = new Quill(editor, this.options); this.Quill = new Quill(editor, this.options);
// start // start
this.Quill?.enable(false);
this.$nextTick(() => { this.$nextTick(() => {
this.Quill?.enable(true);
this.Quill?.blur(); this.Quill?.blur();
// if (!this.readOnly) { if (!this.readOnly) {
// this.Quill?.enable(); this.Quill?.enable();
// } }
}); });
// //
if (this.type === 'url') { if (this.type === 'url') {
@ -198,7 +196,7 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style>
.editor-wrapper { .editor-wrapper {
position: relative; position: relative;
cursor: not-allowed; cursor: not-allowed;

View File

@ -360,7 +360,6 @@ 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

@ -119,9 +119,9 @@ export default {
this.queryParams['startTime'] = btn.timeVal[0]; this.queryParams['startTime'] = btn.timeVal[0];
this.queryParams['endTime'] = btn.timeVal[1]; this.queryParams['endTime'] = btn.timeVal[1];
return; return;
} }
this.queryParams[key] = btn[key] || null; this.queryParams[key] = btn[key] || null;
}); });
this.handleQuery(); this.handleQuery();
break; break;
case 'add': case 'add':

View File

@ -273,12 +273,20 @@ export default {
$('.hiprint-printTemplate').empty() $('.hiprint-printTemplate').empty()
// const templates = this.$ls.get('KEY_TEMPLATES', {}) // const templates = this.$ls.get('KEY_TEMPLATES', {})
const template = provider.value const template = provider.value
// console.log(template) // console.log(template)
if (this.modelData) {
hiprintTemplate = new hiprint.PrintTemplate({ hiprintTemplate = new hiprint.PrintTemplate({
template: this.modelData != '' ? JSON.parse(this.modelData) : {}, template: JSON.parse(this.modelData),
settingContainer: '#PrintElementOptionSetting', settingContainer: '#PrintElementOptionSetting',
paginationContainer: '.hiprint-printPagination' paginationContainer: '.hiprint-printPagination'
}) })
} else {
hiprintTemplate = new hiprint.PrintTemplate({
template:{},
settingContainer: '#PrintElementOptionSetting',
paginationContainer: '.hiprint-printPagination'
})
}
// } // }
hiprintTemplate.design('#hiprint-printTemplate') hiprintTemplate.design('#hiprint-printTemplate')
// console.log(hiprintTemplate) // console.log(hiprintTemplate)

View File

@ -1,18 +1,18 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-10-17 16:50:19 * @Date: 2023-10-17 16:50:19
* @LastEditTime: 2023-10-30 10:47:13 * @LastEditTime: 2023-12-01 16:48:53
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<el-dialog :visible.sync="visible" :show-close="false" :wrapper-closable="false" width="40%"> <el-dialog class="baseDialog" :visible.sync="visible" :show-close="false" :wrapper-closable="false" width="40%" show-close="true">
<small-title slot="title" :no-padding="true"> <small-title slot="title" :no-padding="true">
{{ !dataForm.id ? '新增' : '编辑' }} {{ !dataForm.id ? '新增' : '编辑' }}
</small-title> </small-title>
<!--
<div class="content"> <div class="content">
<div class="visual-part"> <div class="visual-part"> -->
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="100px" <el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="100px"
@keyup.enter.native="dataFormSubmit"> @keyup.enter.native="dataFormSubmit">
<el-row :gutter="20"> <el-row :gutter="20">
@ -96,8 +96,8 @@
:page-sizes="[5, 10, 15]" :page-sizes="[5, 10, 15]"
@pagination="getList" /> @pagination="getList" />
</div> --> </div> -->
</div> <!-- </div> -->
</div> <!-- </div> -->
<!-- <div style="position: absolute; bottom: 24px; right: 24px"> <!-- <div style="position: absolute; bottom: 24px; right: 24px">
<el-button style="margin-right: 10px" @click="goback()">返回</el-button> <el-button style="margin-right: 10px" @click="goback()">返回</el-button>
@ -416,3 +416,34 @@ export default {
padding: 18px; padding: 18px;
} }
</style> --> </style> -->
<style>
.baseDialog .el-dialog__header {
font-size: 16px;
color: rgba(0, 0, 0, 0.85);
font-weight: 500;
padding: 13px 24px;
border-bottom: 1px solid #e9e9e9;
}
.baseDialog .el-dialog__header .titleStyle::before{
content: '';
display: inline-block;
width: 4px;
height: 16px;
background-color: #0B58FF;
border-radius: 1px;
margin-right: 8px;
position: relative;
top: 2px;
}
.baseDialog .el-dialog__body {
padding-left: 24px;
padding-right: 24px;
}
.baseDialog .btnTextStyle {
letter-spacing:6px;
padding: 9px 10px 9px 16px;
font-size: 14px;
}
</style>

View File

@ -1,12 +1,12 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-10-17 16:50:19 * @Date: 2023-10-17 16:50:19
* @LastEditTime: 2023-10-30 10:41:07 * @LastEditTime: 2023-12-04 13:43:19
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<el-dialog :visible.sync="visible" :show-close="false" :wrapper-closable="false" width="30%"> <el-dialog class="baseDialog" :visible.sync="visible" :show-close="false" :wrapper-closable="false" width="30%" show-close="true">
<small-title slot="title" :no-padding="true"> <small-title slot="title" :no-padding="true">
{{ !dataForm.id ? '新增' : '编辑' }} {{ !dataForm.id ? '新增' : '编辑' }}
</small-title> </small-title>
@ -46,7 +46,7 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="模板设计" prop="content"> <el-form-item label="模板设计" prop="content">
<el-button type="primary" @click="btnClickDesign()">模板设计</el-button> <el-button icon="el-icon-edit" @click="btnClickDesign()">模板设计</el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="12"> <!-- <el-col :span="12">
@ -439,3 +439,36 @@ export default {
padding: 18px; padding: 18px;
} }
</style> --> </style> -->
<style>
.baseDialog .el-dialog__header {
font-size: 16px;
color: rgba(0, 0, 0, 0.85);
font-weight: 500;
padding: 13px 24px;
border-bottom: 1px solid #e9e9e9;
}
.baseDialog .el-dialog__header .titleStyle::before{
content: '';
display: inline-block;
width: 4px;
height: 16px;
background-color: #0B58FF;
border-radius: 1px;
margin-right: 8px;
position: relative;
top: 2px;
}
.baseDialog .el-dialog__body {
padding-left: 24px;
padding-right: 24px;
}
.baseDialog .btnTextStyle {
letter-spacing:6px;
padding: 9px 10px 9px 16px;
font-size: 14px;
}
</style>

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-01 14:55:51 * @Date: 2023-08-01 14:55:51
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-22 14:40:07 * @LastEditTime: 2023-12-04 13:38:45
* @Description: * @Description:
--> -->
<template> <template>
@ -71,7 +71,7 @@ export default {
modelShow:false, modelShow:false,
tableBtn: [ tableBtn: [
{ {
type: 'print', type: 'detail',
btnName: '查看', btnName: '查看',
}, },
this.$auth.hasPermi(`base:packaging-print-model:update`) this.$auth.hasPermi(`base:packaging-print-model:update`)
@ -121,11 +121,12 @@ export default {
// name: 'reset', // name: 'reset',
// }, // },
{ {
type: 'separate', type: 'label',
label:'标签模板',
}, },
{ {
type: this.$auth.hasPermi('base:packaging-print-model:create') ? 'button' : '', type: this.$auth.hasPermi('base:packaging-print-model:create') ? 'button' : '',
btnName: '新增模板', btnName: '新增',
name: 'add', name: 'add',
color: 'success', color: 'success',
plain: true, plain: true,

View File

@ -1,19 +1,19 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-10-17 16:50:19 * @Date: 2023-10-17 16:50:19
* @LastEditTime: 2023-10-18 16:07:39 * @LastEditTime: 2023-12-04 13:45:45
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<el-dialog :visible.sync="visible" :show-close="false" :wrapper-closable="false" width="40%"> <el-dialog class="baseDialog" :visible.sync="visible" :show-close="false" :wrapper-closable="false" width="40%" show-close="true">
<small-title slot="title" :no-padding="true"> <small-title slot="title" :no-padding="true">
{{ !dataForm.id ? '新增' : '编辑' }} {{ !dataForm.id ? '新增' : '编辑' }}
</small-title> </small-title>
<div class="content"> <div class="content">
<div class="visual-part"> <div class="visual-part">
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="100px" <el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="auto"
@keyup.enter.native="dataFormSubmit"> @keyup.enter.native="dataFormSubmit">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
@ -345,3 +345,37 @@ export default {
padding: 18px; padding: 18px;
} }
</style> --> </style> -->
<style>
.baseDialog .el-dialog__header {
font-size: 16px;
color: rgba(0, 0, 0, 0.85);
font-weight: 500;
padding: 13px 24px;
border-bottom: 1px solid #e9e9e9;
}
.baseDialog .el-dialog__header .titleStyle::before{
content: '';
display: inline-block;
width: 4px;
height: 16px;
background-color: #0B58FF;
border-radius: 1px;
margin-right: 8px;
position: relative;
top: 2px;
}
.baseDialog .el-dialog__body {
padding-left: 24px;
padding-right: 24px;
}
.baseDialog .btnTextStyle {
letter-spacing:6px;
padding: 9px 10px 9px 16px;
font-size: 14px;
}
</style>

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-01 14:55:51 * @Date: 2023-08-01 14:55:51
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-22 14:36:33 * @LastEditTime: 2023-12-04 13:44:01
* @Description: * @Description:
--> -->
<template> <template>
@ -122,7 +122,8 @@ export default {
// name: 'reset', // name: 'reset',
// }, // },
{ {
type: 'separate', type: 'label',
label: '标签类型'
}, },
{ {
type: this.$auth.hasPermi('base:packaging-print-type:create') ? 'button' : '', type: this.$auth.hasPermi('base:packaging-print-type:create') ? 'button' : '',

View File

@ -9,8 +9,7 @@
<el-drawer <el-drawer
:visible="visible" :visible="visible"
:show-close="false" :show-close="false"
:wrapper-closable="mode.includes('detail') ? true : false" :wrapper-closable="false"
:before-close="handleCancel"
class="drawer" class="drawer"
custom-class="mes-drawer" custom-class="mes-drawer"
:size="size || '50%'" :size="size || '50%'"
@ -130,12 +129,13 @@
</section> </section>
</div> </div>
<div v-if="!mode.includes('detail')" class="drawer-body__footer"> <div class="drawer-body__footer">
<el-button style="" @click="handleCancel">取消</el-button> <el-button style="" @click="handleCancel">返回</el-button>
<el-button <el-button
type="primary" type="primary"
v-if="!mode.includes('detail')"
@click="handleSave"> @click="handleSave">
确定 保存
</el-button> </el-button>
</div> </div>
</div> </div>

View File

@ -9,8 +9,7 @@
<el-drawer <el-drawer
:visible="visible" :visible="visible"
:show-close="false" :show-close="false"
:wrapper-closable="mode.includes('detail') ? true : false" :wrapper-closable="false"
:before-close="handleCancel"
class="drawer" class="drawer"
custom-class="mes-drawer" custom-class="mes-drawer"
:size="size || '50%'" :size="size || '50%'"
@ -129,10 +128,11 @@
</section> </section>
</div> </div>
<div v-if="!mode.includes('detail')" class="drawer-body__footer"> <div class="drawer-body__footer">
<el-button style="" @click="handleCancel">取消</el-button> <el-button style="" @click="handleCancel">取消</el-button>
<el-button <el-button
type="primary" type="primary"
v-if="!mode.includes('detail')"
@click="handleCancel"> @click="handleCancel">
确定 确定
</el-button> </el-button>

View File

@ -34,7 +34,7 @@
<base-dialog <base-dialog
:dialogTitle="title" :dialogTitle="title"
:dialogVisible="open" :dialogVisible="open"
width="30%" width="700px"
@close="cancel" @close="cancel"
@cancel="cancel" @cancel="cancel"
@confirm="submitForm"> @confirm="submitForm">

View File

@ -25,7 +25,6 @@
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
label="操作" label="操作"
:width="90"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleTableBtnClick" /> @clickBtn="handleTableBtnClick" />
</base-table> </base-table>
@ -42,7 +41,7 @@
<base-dialog <base-dialog
:dialogTitle="title" :dialogTitle="title"
:dialogVisible="open" :dialogVisible="open"
width="45%" width="700px"
@close="cancel" @close="cancel"
@cancel="cancel" @cancel="cancel"
@confirm="submitForm"> @confirm="submitForm">
@ -128,7 +127,7 @@ export default {
// width: 180, // width: 180,
// filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'), // filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'),
// }, // },
{ prop: 'code', label: '编码', showOverflowtooltip: true }, { prop: 'code', label: '编码' },
{ prop: 'plcTableName', label: '关联表名' }, { prop: 'plcTableName', label: '关联表名' },
{ prop: 'name', label: '标识名称' }, { prop: 'name', label: '标识名称' },
{ prop: 'enName', label: '英文名称' }, { prop: 'enName', label: '英文名称' },
@ -137,7 +136,7 @@ export default {
label: '是否采集', label: '是否采集',
subcomponent: switchBtn, subcomponent: switchBtn,
}, },
{ prop: 'description', label: '描述', showOverflowtooltip: true }, { prop: 'description', label: '描述' },
], ],
searchBarFormConfig: [ searchBarFormConfig: [
{ {
@ -214,28 +213,16 @@ export default {
}, },
], ],
[ [
// {
// switch: true,
// label: '', // 0 , 1
// prop: 'collection',
// bind: {
// 'active-value': 1,
// 'inactive-value': 0,
// value: 1,
// },
// },
{ {
select: true, switch: true,
options: [ label: '是否采集', // 0 , 1
{ label: '否', value: 0 },
{ label: '是', value: 1 }
],
label: '是否采集',
prop: 'collection', prop: 'collection',
bind: { bind: {
clearable: true, filterable: true 'active-value': 1,
} 'inactive-value': 0,
} value: 1,
},
},
], ],
[ [
{ {

View File

@ -9,8 +9,7 @@
<el-drawer <el-drawer
:visible="visible" :visible="visible"
:show-close="false" :show-close="false"
:wrapper-closable="mode.includes('detail') ? true : false" :wrapper-closable="false"
:before-close="handleCancel"
class="drawer" class="drawer"
custom-class="mes-drawer" custom-class="mes-drawer"
:size="size || '50%'" :size="size || '50%'"
@ -148,12 +147,13 @@
</section> </section>
</div> </div>
<div v-if="!mode.includes('detail')" class="drawer-body__footer"> <div class="drawer-body__footer">
<el-button style="" @click="handleCancel">取消</el-button> <el-button style="" @click="handleCancel">取消</el-button>
<el-button <el-button
type="primary" type="primary"
v-if="!mode.includes('detail')"
@click="handleSave"> @click="handleSave">
确定 保存
</el-button> </el-button>
</div> </div>
</div> </div>

View File

@ -12,8 +12,7 @@
:show-close="false" :show-close="false"
:wrapper-closable="isdetail" :wrapper-closable="isdetail"
class="drawer" class="drawer"
size="60%" size="60%">
@closed="$emit('destroy')">
<small-title slot="title" :no-padding="true"> <small-title slot="title" :no-padding="true">
{{ isdetail ? '查看详情' : !dataForm.id ? '新增' : '编辑' }} {{ isdetail ? '查看详情' : !dataForm.id ? '新增' : '编辑' }}
</small-title> </small-title>
@ -266,7 +265,6 @@ export default {
this.fileName = this.dataForm.files[0].fileName this.fileName = this.dataForm.files[0].fileName
} }
this.setConfig() this.setConfig()
this.setInspectionContet()
}); });
} else { } else {
// if (this.urlOptions.isGetCode) { // if (this.urlOptions.isGetCode) {

View File

@ -49,8 +49,7 @@
<addRecord <addRecord
v-if="addOrUpdateVisible" v-if="addOrUpdateVisible"
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="getList" @refreshDataList="getList" />
@destroy="addOrUpdateVisible = false" />
</div> </div>
</template> </template>

View File

@ -49,7 +49,7 @@
<script> <script>
import { publicFormatter } from '@/utils/dict'; import { publicFormatter } from '@/utils/dict';
// import moment from 'moment'; import moment from 'moment';
import basicPageMixin from '@/mixins/lb/basicPageMixin'; import basicPageMixin from '@/mixins/lb/basicPageMixin';
import { exportMaintainMonitorExcel } from '@/api/equipment/base/maintain/record' import { exportMaintainMonitorExcel } from '@/api/equipment/base/maintain/record'
import { parseTime } from '@/utils/ruoyi' import { parseTime } from '@/utils/ruoyi'
@ -67,7 +67,7 @@ const remainBox = {
color() { color() {
if (this.value) { if (this.value) {
const v = +this.value; const v = +this.value;
return v < 0 ? '#FF5454' : v >= 0 && v < 2 ? '#FFD767' : '#37D97F'; return v < 0 ? 'red' : v >= 0 && v < 2 ? 'yellow' : 'green';
} }
return 'unset'; return 'unset';
}, },
@ -78,10 +78,9 @@ const remainBox = {
style={`background: ${ style={`background: ${
this.color this.color
}; position:absolute; inset: 0; padding: 0 10px; display: flex; align-items: center; color: ${ }; position:absolute; inset: 0; padding: 0 10px; display: flex; align-items: center; color: ${
// this.color == 'red' ? '#fff' : 'unset' this.color == 'red' ? '#fff' : 'unset'
'#fff'
}`}> }`}>
{ this.injectData[this.injectData.prop]?.toFixed(0) || '' } {this.injectData[this.injectData.prop] || ''}
</div> </div>
); );
}, },
@ -122,35 +121,30 @@ export default {
// width: 180, // width: 180,
// filter: parseTime(createTime), // filter: parseTime(createTime),
// }, // },
{ prop: 'name', label: '保养计划', minWidth: 100, showOverflowtooltip: true }, { prop: 'name', label: '保养计划' },
{ prop: 'lineName', label: '产线名', minWidth: 100, showOverflowtooltip: true }, { prop: 'lineName', label: '产线名' },
{ prop: 'sectionName', label: '工段名', minWidth: 100, showOverflowtooltip: true }, { prop: 'sectionName', label: '工段名' },
{ prop: 'equipmentName', label: '设备名称', minWidth: 100, showOverflowtooltip: true }, { prop: 'equipmentName', label: '设备名称' },
{ prop: 'equipmentCode', label: '设备编码', minWidth: 100, showOverflowtooltip: true }, { prop: 'equipmentCode', label: '设备编码' },
{ prop: 'maintenancePeriod', label: '保养频率' }, { prop: 'maintenancePeriod', label: '保养频率' },
{ {
prop: 'maintainType', prop: 'maintainType',
label: '保养类型', label: '保养类型',
showOverflowtooltip: true,
filter: publicFormatter(this.DICT_TYPE.MAINTAIN_TYPE), filter: publicFormatter(this.DICT_TYPE.MAINTAIN_TYPE),
}, },
{ {
prop: 'lastMaintainTime', prop: 'lastMaintainTime',
label: '上次保养时间', label: '上次保养时间',
filter: parseTime, filter: parseTime,
minWidth: 150,
showOverflowtooltip: true
}, },
{ prop: 'nextMaintainTime', label: '计划下次保养时间', filter: parseTime, minWidth: 150, showOverflowtooltip: true }, { prop: 'nextMaintainTime', label: '计划下次保养时间', filter: parseTime },
{ {
prop: 'remainDays', prop: 'remainDays',
label: '距离保养时间(天)', label: '距离保养时间(天)',
subcomponent: remainBox, subcomponent: remainBox,
minWidth: 150,
// showOverflowtooltip: true
}, },
{ prop: 'opt1', label: '设备保养', name: '操作', subcomponent: btn, width: 100 }, { prop: 'opt1', label: '设备保养', name: '操作', subcomponent: btn },
{ prop: 'opt2', label: '保养记录', name: '查看详情', subcomponent: btn, width: 100 }, { prop: 'opt2', label: '保养记录', name: '查看详情', subcomponent: btn },
], ],
searchBarFormConfig: [ searchBarFormConfig: [
{ {
@ -182,7 +176,6 @@ export default {
: '', : '',
btnName: '导出', btnName: '导出',
name: 'export', name: 'export',
plain: true,
color: 'warning', color: 'warning',
}, },
], ],

View File

@ -99,24 +99,23 @@ export default {
prop: 'createTime', prop: 'createTime',
label: '添加时间', label: '添加时间',
fixed: true, fixed: true,
width: 150, width: 180,
filter: timeFilter, filter: timeFilter,
}, },
{ prop: 'maintainOrderNumber', label: '设备保养单号', width: 110, showOverflowtooltip: true }, { prop: 'maintainOrderNumber', label: '设备保养单号' },
{ prop: 'startTime', label: '开始时间', filter: timeFilter, minWidth: 150, showOverflowtooltip: true }, { prop: 'startTime', label: '开始时间', filter: timeFilter },
{ prop: 'endTime', label: '结束时间', filter: timeFilter, minWidth: 150, showOverflowtooltip: true }, { prop: 'endTime', label: '结束时间', filter: timeFilter },
{ prop: 'equipmentName', label: '设备名称', minWidth: 100, showOverflowtooltip: true }, { prop: 'equipmentName', label: '设备名称' },
{ prop: 'maintainWorker', label: '保养人员', minWidth: 100, showOverflowtooltip: true }, { prop: 'maintainWorker', label: '保养人员' },
{ {
prop: 'relatePlan', prop: 'relatePlan',
label: '是否计划保养', label: '是否计划保养',
width: 120,
filter: (v) => (v != null ? ['', '是', '否'][v] : ''), filter: (v) => (v != null ? ['', '是', '否'][v] : ''),
}, },
{ prop: 'planName', label: '保养计划名称', minWidth: 120, showOverflowtooltip: true }, { prop: 'planName', label: '保养计划名称' },
{ prop: 'maintainDuration', label: '计划保养用时(h)', minWidth: 130, showOverflowtooltip: true }, { prop: 'maintainDuration', label: '计划保养用时(h)' },
{ prop: 'timeUsed', label: '实际保养用时(h)', minWidth: 130 }, { prop: 'timeUsed', label: '实际保养用时(h)' },
{ prop: 'remark', label: '备注', minWidth: 100, showOverflowtooltip: true }, { prop: 'remark', label: '备注' },
], ],
searchBarFormConfig: [ searchBarFormConfig: [
{ {
@ -163,15 +162,6 @@ export default {
{ {
type: 'separate', type: 'separate',
}, },
{
type: this.$auth.hasPermi('equipment:maintain-record:export')
? 'button'
: '',
btnName: '导出',
name: 'export',
plain: true,
color: 'warning',
},
{ {
type: this.$auth.hasPermi('equipment:maintain-record:create') type: this.$auth.hasPermi('equipment:maintain-record:create')
? 'button' ? 'button'
@ -181,6 +171,14 @@ export default {
plain: true, plain: true,
color: 'success', color: 'success',
}, },
{
type: this.$auth.hasPermi('equipment:maintain-record:export')
? 'button'
: '',
btnName: '导出',
name: 'export',
color: 'warning',
},
], ],
rows: [ rows: [
[ [
@ -215,29 +213,17 @@ export default {
}, },
], ],
[ [
// {
// switch: true,
// label: '',
// prop: 'relatePlan',
// bind: {
// 'active-value': 1,
// 'inactive-value': 2,
// },
// rules: [{ required: true, message: '', trigger: 'blur' }],
// },
{ {
select: true, switch: true,
options: [
{ label: '是', value: 1 },
{ label: '否', value: 2 }
],
label: '是否计划保养', label: '是否计划保养',
prop: 'relatePlan', prop: 'relatePlan',
bind: { bind: {
clearable: true, filterable: true 'active-value': 1,
'inactive-value': 2,
}, },
rules: [{ required: true, message: '是否计划保养不能为空', trigger: 'blur' }], rules: [{ required: true, message: '是否计划保养不能为空', trigger: 'blur' }],
}, },
{},
{ {
select: true, select: true,
label: '所属计划', label: '所属计划',
@ -248,11 +234,6 @@ export default {
clearable: true, clearable: true,
}, },
}, },
{
input: true,
label: '保养用时',
prop: 'timeUsed',
},
], ],
[ [
{ {
@ -279,7 +260,11 @@ export default {
clearable: true, clearable: true,
}, },
}, },
{} {
input: true,
label: '保养用时',
prop: 'timeUsed',
},
], ],
[ [

View File

@ -9,168 +9,166 @@
<el-drawer <el-drawer
:visible.sync="visible" :visible.sync="visible"
:show-close="false" :show-close="false"
:wrapper-closable="disabled" :wrapper-closable="false"
class="drawer" class="drawer"
custom-class="mes-drawer" size="60%">
size="65%"
@closed="$emit('destroy')">
<small-title slot="title" :no-padding="true"> <small-title slot="title" :no-padding="true">
{{ disabled ? '查看详情' : !dataForm.maintenanceStatus ? '修改' : '完成' }} {{ disabled ? '查看详情' : !dataForm.maintenanceStatus ? '修改' : '完成' }}
</small-title> </small-title>
<div class="drawer-body flex"> <el-form
<div class="drawer-body__content"> ref="form"
<el-form :model="dataForm"
ref="form" label-width="100px"
:model="dataForm" label-position="top"
label-width="100px" v-loading="formLoading">
label-position="top" <el-row :gutter="20">
v-loading="formLoading"> <el-col :span="8">
<el-row :gutter="20"> <el-form-item label="维修单号" prop="repairOrderNumber">
<el-col :span="8"> <span>{{ dataForm.repairOrderNumber }}</span>
<el-form-item label="维修单号" prop="repairOrderNumber"> </el-form-item>
<span>{{ dataForm.repairOrderNumber }}</span> </el-col>
</el-form-item> <el-col :span="8">
</el-col> <el-form-item label="设备名称" prop="equipmentName">
<el-col :span="8"> <span>{{ dataForm.equipmentName }}</span>
<el-form-item label="设备名称" prop="equipmentName"> </el-form-item>
<span>{{ dataForm.equipmentName }}</span> </el-col>
</el-form-item> <el-col :span="8">
</el-col> <el-form-item label="维修工" prop="repairman">
<el-col :span="8"> <span>{{ dataForm.repairman }}</span>
<el-form-item label="维修工" prop="repairman"> </el-form-item>
<span>{{ dataForm.repairman }}</span> </el-col>
</el-form-item> </el-row>
</el-col> <el-row :gutter="20">
</el-row> <el-col :span="8">
<el-row :gutter="20"> <el-form-item label="故障发生时间" prop="faultTime">
<el-col :span="8"> <span>{{ parseTime(dataForm.faultTime) }}</span>
<el-form-item label="故障发生时间" prop="faultTime"> </el-form-item>
<span>{{ parseTime(dataForm.faultTime) }}</span> </el-col>
</el-form-item> <el-col :span="8">
</el-col> <el-form-item label="故障级别" prop="faultLevel">
<el-col :span="8"> <span>{{ getDictDataLabel('fault-level', dataForm.faultLevel) }}</span>
<el-form-item label="故障级别" prop="faultLevel"> </el-form-item>
<span>{{ getDictDataLabel('fault-level', dataForm.faultLevel) }}</span> </el-col>
</el-form-item> <el-col :span="8">
</el-col> <el-form-item label="联系方式" prop="repairmanPhone">
<el-col :span="8"> <span>{{ dataForm.repairmanPhone }}</span>
<el-form-item label="联系方式" prop="repairmanPhone"> </el-form-item>
<span>{{ dataForm.repairmanPhone }}</span> </el-col>
</el-form-item> </el-row>
</el-col> <small-title style="margin: 16px 0; padding-left: 8px" :no-padding="true">
</el-row> {{ '可编辑信息' }}
</small-title>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item
label="维修开始时间"
prop="maintenanceStartTime"
:rules="[{ required: true, message: '维修开始时间不能为空', trigger: 'blur' }]">
<el-date-picker
v-model="dataForm.maintenanceStartTime"
type="datetime"
:disabled="disabled"
placeholder="请选择维修开始时间"
value-format="timestamp" />
</el-form-item>
</el-col>
<el-divider style="margin-top: -10px" /> <el-col :span="8">
<el-form-item
label="维修结束时间"
prop="maintenanceFinishTime"
:rules="[{ required: true, message: '维修结束时间不能为空', trigger: 'blur' }]">
<el-date-picker
v-model="dataForm.maintenanceFinishTime"
type="datetime"
:disabled="disabled"
placeholder="请选择维修开始时间"
value-format="timestamp" />
</el-form-item>
</el-col>
<small-title style="margin: 16px 0; padding-left: 8px" :no-padding="true"> <el-col :span="8">
{{ '设备维修信息' }} <el-form-item
</small-title> label="维修方式"
<el-row :gutter="20"> prop="repairMode"
<el-col :span="6"> :rules="[{ required: true, message: '维修方式不能为空', trigger: 'blur' }]">
<el-form-item <el-select
label="维修开始时间" :disabled="disabled"
prop="maintenanceStartTime" v-model="dataForm.repairMode"
:rules="[{ required: true, message: '维修开始时间不能为空', trigger: 'blur' }]"> placeholder="请选择维修方式">
<el-date-picker <el-option
v-model="dataForm.maintenanceStartTime" v-for="opt in getDictDatas('repair-mode')"
type="datetime" :key="opt.value"
:disabled="disabled" :label="opt.label"
placeholder="请选择维修开始时间" :value="opt.value" />
value-format="timestamp" /> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> </el-row>
<el-form-item <el-row :gutter="20">
label="维修结束时间" <el-col :span="8">
prop="maintenanceFinishTime" <el-form-item label="故障类型" prop="faultType">
:rules="[{ required: true, message: '维修结束时间不能为空', trigger: 'blur' }]"> <el-select
<el-date-picker :disabled="disabled"
v-model="dataForm.maintenanceFinishTime" v-model="dataForm.faultType"
type="datetime" placeholder="请选择故障类型">
:disabled="disabled" <el-option
placeholder="请选择维修开始时间" v-for="opt in getDictDatas('fault-type')"
value-format="timestamp" /> :key="opt.value"
</el-form-item> :label="opt.label"
</el-col> :value="opt.value" />
<el-col :span="6"> </el-select>
<el-form-item </el-form-item>
label="维修方式" </el-col>
prop="repairMode" </el-row>
:rules="[{ required: true, message: '维修方式不能为空', trigger: 'blur' }]">
<el-select
:disabled="disabled"
v-model="dataForm.repairMode"
placeholder="请选择维修方式">
<el-option
v-for="opt in getDictDatas('repair-mode')"
:key="opt.value"
:label="opt.label"
:value="opt.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="故障类型" prop="faultType">
<el-select
:disabled="disabled"
v-model="dataForm.faultType"
placeholder="请选择故障类型">
<el-option
v-for="opt in getDictDatas('fault-type')"
:key="opt.value"
:label="opt.label"
:value="opt.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col> <el-col>
<el-form-item <el-form-item
label="故障明细" label="故障明细"
prop="faultDetail" prop="faultDetail"
:rules="[{ required: true, message: '故障明细不能为空', trigger: 'blur' }]"> :rules="[{ required: true, message: '故障明细不能为空', trigger: 'blur' }]">
<!-- // --> <!-- // -->
<editor v-model="dataForm.faultDetail" :read-only="disabled" :min-height="150"/> <editor v-model="dataForm.faultDetail" :read-only="disabled" :min-height="380"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col> <el-col>
<el-form-item label="维修记录" prop="maintenanceDetail"> <el-form-item label="维修记录" prop="maintenanceDetail">
<!-- // --> <!-- // -->
<editor v-model="dataForm.maintenanceDetail" :read-only="disabled" :min-height="150"/> <editor v-model="dataForm.maintenanceDetail" :read-only="disabled" :min-height="380"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col> <el-col>
<el-form-item label="维修附件" prop="file"> <el-form-item label="维修附件" prop="file">
<FileUpload v-model="file" :limit="1" :f-name="fileName" :disabled="disabled" @name="setFileName" /> <FileUpload v-model="file" :limit="1" :f-name="fileName" :disabled="disabled" @name="setFileName" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col> <el-col>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input <el-input
v-model="dataForm.remark" v-model="dataForm.remark"
:placeholder="`请输入备注`" :placeholder="`请输入备注`"
:disabled="disabled" /> :disabled="disabled" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div v-if="!disabled" class="drawer-body__footer"> <div class="drawer-body__footer">
<el-button style="" @click="goback()">取消</el-button> <el-button style="" @click="goback()">{{ disabled ? '返回' : '取消' }}</el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button> <!-- <el-button v-if="disabled" type="primary" @click="goEdit()">
</div> 编辑
</div> </el-button> -->
<el-button v-if="!disabled" type="primary" @click="dataFormSubmit()">确定</el-button>
</div> </div>
</el-drawer> </el-drawer>
</template> </template>
@ -302,39 +300,56 @@ export default {
</script> </script>
<style scoped> <style scoped>
.el-date-editor,
.el-select {
width: 100%;
}
.drawer-body__footer {
display: flex;
justify-content: flex-end;
padding: 18px;
}
.drawer >>> .el-drawer { .drawer >>> .el-drawer {
border-radius: 8px 0 0 8px; border-radius: 8px 0 0 8px;
display: flex;
flex-direction: column;
}
.drawer >>> .el-form-item__label {
padding: 0;
} }
.drawer >>> .el-drawer__header { .drawer >>> .el-drawer__header {
margin: 0; margin: 0;
padding: 32px 32px 24px; padding: 32px 32px 24px;
border-bottom: 1px solid #dcdfe6; border-bottom: 1px solid #dcdfe6;
margin-bottom: 0px;
} }
.drawer >>> .el-drawer__body {
.small-title::before { flex: 1;
content: ''; height: 1px;
display: inline-block;
vertical-align: top;
width: 4px;
height: 22px;
border-radius: 1px;
margin-right: 8px;
background-color: #0b58ff;
}
.drawer-body {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%;
} }
.drawer-body__content { .drawer >>> .content {
padding: 30px 24px;
flex: 1; flex: 1;
/* background: #eee; */ display: flex;
padding: 20px 30px; flex-direction: column;
overflow-y: auto; /* height: 100%; */
}
.drawer >>> .visual-part {
flex: 1 auto;
max-height: 76vh;
overflow: hidden;
overflow-y: scroll;
padding-right: 10px; /* 调整滚动条样式 */
}
.drawer >>> .el-form,
.drawer >>> .attr-list {
padding: 0 16px;
} }
.drawer-body__footer { .drawer-body__footer {

View File

@ -17,7 +17,7 @@
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
label="操作" label="操作"
:width="120" :width="180"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleTableBtnClick" /> @clickBtn="handleTableBtnClick" />
</base-table> </base-table>
@ -48,8 +48,7 @@
<CustomDialogForm <CustomDialogForm
v-if="addOrUpdateVisible" v-if="addOrUpdateVisible"
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="getList" @refreshDataList="getList" />
@destroy="addOrUpdateVisible = false" />
</div> </div>
</template> </template>
@ -70,6 +69,12 @@ export default {
addOrUpdateVisible: false, addOrUpdateVisible: false,
searchBarKeys: ['maintenanceStatus', 'createTime', 'equipmentId'], searchBarKeys: ['maintenanceStatus', 'createTime', 'equipmentId'],
tableBtn: [ tableBtn: [
this.$auth.hasPermi('equipment:repair:update')
? {
type: 'detail',
btnName: '详情',
}
: undefined,
this.$auth.hasPermi('equipment:repair:finish') this.$auth.hasPermi('equipment:repair:finish')
? { ? {
type: 'finish', type: 'finish',
@ -78,16 +83,10 @@ export default {
: undefined, : undefined,
this.$auth.hasPermi('equipment:repair:update') this.$auth.hasPermi('equipment:repair:update')
? { ? {
type: 'detail', type: 'edit',
btnName: '详情', btnName: '修改',
} }
: undefined, : undefined,
// this.$auth.hasPermi('equipment:repair:update')
// ? {
// type: 'edit',
// btnName: '',
// }
// : undefined,
this.$auth.hasPermi('equipment:repair:delete') this.$auth.hasPermi('equipment:repair:delete')
? { ? {
type: 'delete', type: 'delete',
@ -100,31 +99,29 @@ export default {
prop: 'createTime', prop: 'createTime',
label: '添加时间', label: '添加时间',
fixed: true, fixed: true,
width: 150, width: 180,
filter: parseTime, filter: parseTime,
}, },
{ prop: 'repairOrderNumber', label: '设备维修单号', minWidth: 100, showOverflowtooltip: true }, { prop: 'repairOrderNumber', label: '设备维修单号' },
{ prop: 'maintenanceStartTime', label: '开始时间', filter: parseTime, minWidth: 150, showOverflowtooltip: true }, { prop: 'maintenanceStartTime', label: '开始时间', filter: parseTime },
{ {
prop: 'maintenanceFinishTime', prop: 'maintenanceFinishTime',
label: '结束时间', label: '结束时间',
filter: parseTime, filter: parseTime,
minWidth: 150,
showOverflowtooltip: true
}, },
{ {
prop: 'maintenanceStatus', prop: 'maintenanceStatus',
label: '维修状态', label: '维修状态',
filter: (v) => (v != null ? ['未完成', '完成', '进行中'][v] : ''), filter: (v) => (v != null ? ['未完成', '完成', '进行中'][v] : ''),
}, },
{ prop: 'maintenanceDuration', label: '维修时长(h)', width: 110 }, { prop: 'maintenanceDuration', label: '维修时长(h)' },
{ prop: 'lineName', label: '产线' }, { prop: 'lineName', label: '产线' },
{ prop: 'sectionName', label: '工段' }, { prop: 'sectionName', label: '工段' },
{ prop: 'equipmentName', label: '设备名称', minWidth: 100, showOverflowtooltip: true }, { prop: 'equipmentName', label: '设备名称' },
{ prop: 'maintenanceDetail', label: '维修明细' }, { prop: 'maintenanceDetail', label: '维修明细' },
{ prop: 'repairman', label: '维修工', minWidth: 100, showOverflowtooltip: true }, { prop: 'repairman', label: '维修工' },
{ prop: 'repairmanPhone', label: '联系方式', minWidth: 100, showOverflowtooltip: true }, { prop: 'repairmanPhone', label: '联系方式' },
{ prop: 'remark', label: '备注', minWidth: 120, showOverflowtooltip: true }, { prop: 'remark', label: '备注' },
], ],
searchBarFormConfig: [ searchBarFormConfig: [
{ {
@ -179,7 +176,6 @@ export default {
type: this.$auth.hasPermi('equipment:repair:export') ? 'button' : '', type: this.$auth.hasPermi('equipment:repair:export') ? 'button' : '',
btnName: '导出', btnName: '导出',
name: 'export', name: 'export',
plain: true,
color: 'warning', color: 'warning',
}, },
], ],

View File

@ -1,13 +1,8 @@
<!-- <!--
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
<<<<<<< HEAD
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-28 10:09:20 * @LastEditTime: 2023-12-04 14:02:52
=======
* @LastEditors: DY
* @LastEditTime: 2023-11-27 16:37:17
>>>>>>> projects/mes-test
* @Description: * @Description:
--> -->
<template> <template>
@ -19,8 +14,8 @@
<div class="visual-part"> <div class="visual-part">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"
label-width="100px" label-position="top"> label-width="100px" label-position="top">
<el-row :gutter="20"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="8">
<el-form-item label="设备名称" prop="equipmentId"> <el-form-item label="设备名称" prop="equipmentId">
<el-select v-model="dataForm.equipmentId" filterable :disabled="isdetail" style="width: 100%" <el-select v-model="dataForm.equipmentId" filterable :disabled="isdetail" style="width: 100%"
@change="getCode" placeholder="请选择设备名称"> @change="getCode" placeholder="请选择设备名称">
@ -28,53 +23,55 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="设备编码" prop="equipmentCode"> <el-form-item label="设备编码" prop="equipmentCode">
<el-input v-model="dataForm.equipmentCode" clearable :disabled="isdetail" placeholder="请输入设备编码" /> <el-input v-model="dataForm.equipmentCode" clearable :disabled="isdetail" placeholder="请输入设备编码" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="8">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="参数Bom编码" prop="code"> <el-form-item label="参数Bom编码" prop="code">
<el-input v-model="dataForm.code" clearable :disabled="isdetail" placeholder="请输入参数Bom编码" /> <el-input v-model="dataForm.code" clearable :disabled="isdetail" placeholder="请输入参数Bom编码" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> </el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="设备参数BOM名称" prop="name"> <el-form-item label="设备参数BOM名称" prop="name">
<el-input v-model="dataForm.name" clearable :disabled="isdetail" placeholder="请输入设备参数BOM名称" /> <el-input v-model="dataForm.name" clearable :disabled="isdetail" placeholder="请输入设备参数BOM名称" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="8">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="当前状态" prop="enabled"> <el-form-item label="当前状态" prop="enabled">
<el-switch v-model="dataForm.enabled" :active-value="1" :inactive-value="0" /> <!-- <el-switch v-model="dataForm.enabled" :active-value="1" :inactive-value="0" /> -->
<el-select v-model="dataForm.enabled" filterable :disabled="isdetail" style="width: 100%"
placeholder="请选择当前状态">
<el-option v-for="dict in enableList" :key=" dict.id" :label="dict.name" :value="dict.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" :disabled="isdetail" clearable placeholder="请输入备注" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" :disabled="isdetail" clearable placeholder="请输入备注" />
</el-form-item>
</el-form> </el-form>
</div> </div>
<div v-if="!isdetail" class="drawer-body__footer"> <!-- <div v-if="!isdetail" class="drawer-body__footer">
<el-button style="" @click="goback()">取消</el-button>
<el-button v-if="isdetail" type="primary" @click="goEdit()"> </div> -->
编辑
</el-button>
<el-button v-else type="primary" @click="dataFormSubmit()">确定</el-button>
</div>
<div class="attr-list" v-if="idAttrShow"> <div class="attr-list" v-if="idAttrShow">
<small-title style="margin: 16px 0; padding-left: 8px" :no-padding="true"> <small-title style="margin: 16px 0; padding-left: 8px" :no-padding="true">
设备参数 设备参数
<el-button type="success" plain="true" @click="addNew()" icon="el-icon-plus">新增</el-button>
</small-title> </small-title>
<div v-if="!isdetail" class="action_btn"> <div v-if="!isdetail" class="action_btn">
<template> <template>
<span style="display: inline-block;"> <span style="display: inline-block;">
<el-button type="text" @click="addNew()" icon="el-icon-plus">新增</el-button>
</span> </span>
</template> </template>
</div> </div>
@ -85,14 +82,12 @@
</base-table> </base-table>
<pagination v-show="listQuery.total > 0" :total="listQuery.total" :page.sync="listQuery.pageNo" <pagination v-show="listQuery.total > 0" :total="listQuery.total" :page.sync="listQuery.pageNo"
:limit.sync="listQuery.pageSize" :page-sizes="[5, 10, 15]" @pagination="getList" /> :limit.sync="listQuery.pageSize" :page-sizes="[5, 10, 15]" @pagination="getList" />
<div class="drawer-body__footer">
<el-button type="primary" @click="goback()">关闭</el-button>
</div>
</div> </div>
</div> </div>
<div class="drawer-body__footer">
<el-button style="" @click="goback()">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
</div>
<attr-add v-if="addOrUpdateVisible" ref="addOrUpdate" :product-id="dataForm.id" @refreshDataList="getList" /> <attr-add v-if="addOrUpdateVisible" ref="addOrUpdate" :product-id="dataForm.id" @refreshDataList="getList" />
</el-drawer> </el-drawer>
</template> </template>
@ -173,7 +168,17 @@ export default {
tableBtn, tableBtn,
tableProps, tableProps,
topBtnConfig, topBtnConfig,
addOrUpdateVisible: false, addOrUpdateVisible: false,
enableList: [
{
id: 0,
name: '停用'
},
{
id: 1,
name:'启用'
}
],
urlOptions: { urlOptions: {
isGetCode: false, isGetCode: false,
// codeURL: getCode, // codeURL: getCode,
@ -274,7 +279,29 @@ export default {
} else { } else {
this.addNew(raw.data.id); this.addNew(raw.data.id);
} }
}, },
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
//
if (this.dataForm.id) {
this.urlOptions.updateURL(this.dataForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.visible = false;
this.$emit("refreshDataList");
});
return;
}
//
this.urlOptions.createURL(this.dataForm).then(response => {
this.$modal.msgSuccess("新增成功");
this.idAttrShow = true;
this.$emit("refreshDataList");
});
});
},
getList() { getList() {
// //
processEquValueBomDetPage({ processEquValueBomDetPage({

View File

@ -37,70 +37,7 @@
]"> ]">
<el-input v-model="dataForm.buttonId" @change="$emit('update', dataForm)" placeholder="请输入整数" /> <el-input v-model="dataForm.buttonId" @change="$emit('update', dataForm)" placeholder="请输入整数" />
</el-form-item> </el-form-item>
<el-form-item </el-col>
label="产线"
prop="productionLineId"
:rules="[
{ required: true, message: '产线不能为空', trigger: 'blur' },
]">
<el-select
v-model="dataForm.productionLineId"
placeholder="请选择产线"
filterable
@change="handleProductlineChange">
<el-option
v-for="opt in productionLineList"
:key="opt.value"
:label="opt.label"
:value="opt.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="工段"
prop="sectionId"
:rules="[
{ required: true, message: '工段不能为空', trigger: 'blur' },
]">
<el-select
v-model="dataForm.sectionId"
placeholder="请选择工段"
filterable
@change="$emit('update', dataForm)">
<el-option
v-for="opt in workshopSectionList"
:key="opt.value"
:label="opt.label"
:value="opt.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="按钮盒识别码"
prop="buttonId"
:rules="[
{
required: true,
message: '按钮盒识别码不能为空',
trigger: 'blur',
},
{
type: 'number',
message: '请输入整数',
trigger: 'blur',
transform: (val) => Number.isInteger(Number(val)) && Number(val),
},
]">
<el-input
v-model="dataForm.buttonId"
@change="$emit('update', dataForm)"
placeholder="请输入整数" />
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="按钮值" prop="keyValue" :rules="[ <el-form-item label="按钮值" prop="keyValue" :rules="[
{ required: true, message: '不能为空', trigger: 'blur' }, { required: true, message: '不能为空', trigger: 'blur' },
@ -121,8 +58,9 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="检测内容" prop="inspectionDetId"> <el-form-item label="检测内容" prop="inspectionDetContent"
<el-select v-model="dataForm.inspectionDetId" placeholder="请选择检测内容" filterable :rules="[{ required: true, message: '不能为空', trigger: 'change' }]">
<el-select v-model="dataForm.inspectionDetContent" placeholder="请选择检测内容" filterable
@change="$emit('update', dataForm)"> @change="$emit('update', dataForm)">
<el-option v-for="opt in inspectionDetList" :key="opt.value" :label="opt.label" :value="opt.value" /> <el-option v-for="opt in inspectionDetList" :key="opt.value" :label="opt.label" :value="opt.value" />
</el-select> </el-select>
@ -206,7 +144,7 @@ export default {
if (res.code == 0) { if (res.code == 0) {
this.inspectionDetList = res.data.map((item) => ({ this.inspectionDetList = res.data.map((item) => ({
label: item.content, label: item.content,
value: item.id, value: item.content,
})); }));
} }
this.formLoading = false; this.formLoading = false;

View File

@ -222,7 +222,7 @@ export default {
form: { form: {
id: null, id: null,
buttonId: null, buttonId: null,
inspectionDetId: null, inspectionDetContent: null,
productionLineId: null, productionLineId: null,
sectionId: null, sectionId: null,
model: null, model: null,

View File

@ -15,7 +15,7 @@
@pagination="getList" /> @pagination="getList" />
<!-- 对话框(添加 / 修改) --> <!-- 对话框(添加 / 修改) -->
<base-dialog :dialogTitle="title" :dialogVisible="open" width="40%" @close="cancel" @cancel="cancel" <base-dialog :dialogTitle="title" :dialogVisible="open" width="30%" @close="cancel" @cancel="cancel"
@confirm="submitForm"> @confirm="submitForm">
<DialogForm v-if="open" ref="form" v-model="form" :rows="[ <DialogForm v-if="open" ref="form" v-model="form" :rows="[
[ [

View File

@ -1,12 +1,12 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-11-06 15:15:30 * @Date: 2023-11-06 15:15:30
* @LastEditTime: 2023-11-07 19:38:13 * @LastEditTime: 2023-12-01 10:58:25
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<el-dialog :visible.sync="dialogVisible" width="50%" :before-close="handleClose"> <el-dialog :visible.sync="visible" width="50%">
<small-title slot="title" :no-padding="true"> <small-title slot="title" :no-padding="true">
{{ '详情' }} {{ '详情' }}
</small-title> </small-title>
@ -118,7 +118,7 @@ export default {
name: '自动', name: '自动',
} }
], ],
dialogVisible:false, visible:false,
dataForm: { dataForm: {
id: undefined, id: undefined,
logTime: undefined, logTime: undefined,
@ -144,79 +144,79 @@ export default {
}; };
}, },
mounted() { mounted() {
// this.getDict() this.getDict()
console.log('我看看', this.dataForm) console.log('我看看', this.dataForm)
this.getCurrentTime() this.getCurrentTime()
}, },
methods: { methods: {
init() { // init() {
this.dialogVisible = true // this.dialogVisible = true
}, // },
getCurrentTime() { getCurrentTime() {
// new Date().Format("yyyy-MM-dd HH:mm:ss") // new Date().Format("yyyy-MM-dd HH:mm:ss")
this.dataForm.logTime = new Date() this.dataForm.logTime = new Date()
// this.dataForm.logTime = year + "-" + month + "-" + day; // this.dataForm.logTime = year + "-" + month + "-" + day;
console.log(this.dataForm.logTime); console.log(this.dataForm.logTime);
}, },
// async getDict() { async getDict() {
// // //
// const res = await getList() const res = await getList()
// this.typeList = res.data this.typeList = res.data
// getWorkOrderList().then((res) => { getWorkOrderList().then((res) => {
// console.log(res); console.log(res);
// // console.log(response); // console.log(response);
// this.workOrderList = res.data.map((item) => { this.workOrderList = res.data.map((item) => {
// return { return {
// name: item.name, name: item.name,
// id: item.id id: item.id
// } }
// }) })
// // console.log(this.formConfig[0].selectOptions); // console.log(this.formConfig[0].selectOptions);
// // this.listQuery.total = response.data.total; // this.listQuery.total = response.data.total;
// }) })
// getLineList().then((res) => { getLineList().then((res) => {
// console.log(res); console.log(res);
// // console.log(response); // console.log(response);
// this.lineList = res.data.map((item) => { this.lineList = res.data.map((item) => {
// return { return {
// name: item.name, name: item.name,
// id: item.id id: item.id
// } }
// }) })
// // console.log(this.formConfig[0].selectOptions); // console.log(this.formConfig[0].selectOptions);
// // this.listQuery.total = response.data.total; // this.listQuery.total = response.data.total;
// }) })
// getDetList().then((res) => { getDetList().then((res) => {
// console.log(res); console.log(res);
// // console.log(response); // console.log(response);
// this.workOrderList = res.data.map((item) => { this.workOrderList = res.data.map((item) => {
// return { return {
// name: item.name, name: item.name,
// id: item.id id: item.id
// } }
// }) })
// // console.log(this.formConfig[0].selectOptions); // console.log(this.formConfig[0].selectOptions);
// // this.listQuery.total = response.data.total; // this.listQuery.total = response.data.total;
// }) })
// getTeamList().then((res) => { getTeamList().then((res) => {
// console.log(res); console.log(res);
// // console.log(response); // console.log(response);
// this.teamList = res.data.map((item) => { this.teamList = res.data.map((item) => {
// return { return {
// name: item.name, name: item.name,
// id: item.id id: item.id
// } }
// }) })
// // console.log(this.formConfig[0].selectOptions); // console.log(this.formConfig[0].selectOptions);
// // this.listQuery.total = response.data.total; // this.listQuery.total = response.data.total;
// }) })
// }, },
// setMaterialCode() { setMaterialCode() {
// const chooseM = this.materialList.filter(item => { const chooseM = this.materialList.filter(item => {
// return item.id === this.dataForm.materialId return item.id === this.dataForm.materialId
// }) })
// this.dataForm.materialCode = chooseM[0].code this.dataForm.materialCode = chooseM[0].code
// } }
}, },
}; };
</script> </script>

View File

@ -40,7 +40,7 @@ const tableProps = [
label: '工单' label: '工单'
}, },
{ {
prop: 'teamId', prop: 'teamName',
label: '班组' label: '班组'
}, },
{ {

View File

@ -1,19 +1,20 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-11-06 15:15:30 * @Date: 2023-11-06 15:15:30
* @LastEditTime: 2023-11-24 08:42:18 * @LastEditTime: 2023-12-01 16:33:41
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
<template> <template>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"> <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"
label-width="110px">
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="报废类型编码" prop="code"> <el-form-item label="报废类型编码" prop="code">
<el-input v-model="dataForm.code" placeholder="请输入报废类型编码" /> <el-input v-model="dataForm.code" placeholder="请输入报废类型编码" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="11">
<el-form-item label="报废类型" prop="name"> <el-form-item label="报废类型" prop="name">
<el-input v-model="dataForm.name" placeholder="请输入报废类型" /> <el-input v-model="dataForm.name" placeholder="请输入报废类型" />
</el-form-item> </el-form-item>
@ -21,12 +22,12 @@
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="描述类型" prop="description"> <el-form-item label="描述类型" prop="description" label-width="110px">
<el-input v-model="dataForm.description" clearable placeholder="描述类型" /> <el-input v-model="dataForm.description" clearable placeholder="描述类型" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="11">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark" label-width="110px">
<el-input v-model="dataForm.remark" clearable placeholder="请输入备注" /> <el-input v-model="dataForm.remark" clearable placeholder="请输入备注" />
</el-form-item> </el-form-item>
</el-col> </el-col>

View File

@ -307,6 +307,10 @@ export default {
type: 'category', type: 'category',
data: arrXAxis data: arrXAxis
}, },
grid: {
left: '5%',
top:'2%'
},
yAxis: { yAxis: {
type: 'value' type: 'value'
}, },

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-01 14:55:51 * @Date: 2023-08-01 14:55:51
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-24 10:55:54 * @LastEditTime: 2023-12-01 16:41:40
* @Description: * @Description:
--> -->
<template> <template>
@ -57,7 +57,8 @@ const tableProps = [
}, },
{ {
prop: 'userName', prop: 'userName',
label: '操作人' label: '操作人',
showOverflowtooltip: true
}, },
{ {
prop: 'source', prop: 'source',
@ -128,7 +129,7 @@ export default {
}, },
{ {
type: 'button', type: 'button',
btnName: '搜索', btnName: '查询',
name: 'search', name: 'search',
color: 'primary', color: 'primary',
}, },
@ -161,7 +162,8 @@ export default {
type: this.$auth.hasPermi('monitoring:materiel-date-from:export') ? 'button' : '', type: this.$auth.hasPermi('monitoring:materiel-date-from:export') ? 'button' : '',
btnName: '导出', btnName: '导出',
name: 'export', name: 'export',
color: 'warning', color: 'primary',
plain: true
}, },
], ],
}; };

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-01 14:55:51 * @Date: 2023-08-01 14:55:51
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-28 10:51:44 * @LastEditTime: 2023-12-01 16:43:10
* @Description: * @Description:
--> -->
<template> <template>
@ -134,7 +134,7 @@ export default {
}, },
{ {
type: 'button', type: 'button',
btnName: '搜索', btnName: '查询',
name: 'search', name: 'search',
color: 'primary', color: 'primary',
}, },

View File

@ -124,7 +124,8 @@ export default {
// immediate: true, // immediate: true,
// }, // },
dataForm: { dataForm: {
handler: function (dataForm) { handler: function (dataForm) {
console.log(dataForm);
this.innerDataForm = Object.assign({}, dataForm); this.innerDataForm = Object.assign({}, dataForm);
if (dataForm.productionLineId) if (dataForm.productionLineId)

View File

@ -66,7 +66,19 @@ export default {
mixins: [basicPageMixin], mixins: [basicPageMixin],
data() { data() {
return { return {
rows: [ rows: [
[
{
select: true,
label: '工单名称',
url: 'base/core-work-order/listbyfilter',
prop: 'workOrderId',
rules: [{ required: true, message: '工单名称不能为空', trigger: 'change' }],
bind: {
filterable: true,
},
}
],
[ [
{ {
select: true, select: true,
@ -122,18 +134,7 @@ export default {
label: '检测人员', label: '检测人员',
prop: 'checkPerson', prop: 'checkPerson',
}, },
{
datetime: true,
label: '检测时间',
prop: 'checkTime',
rules: [{ required: true, message: '检测时间不能为空', trigger: 'blur' }],
bind: {
format: 'yyyy-MM-dd HH:mm:ss',
'value-format': 'timestamp',
// 'value-format': 'yyyy-MM-dd HH:mm:ss',
clearable: true,
},
},
], ],
[{ textarea: true, label: '描述', prop: 'explainText' }], [{ textarea: true, label: '描述', prop: 'explainText' }],
[{ input: true, label: '备注', prop: 'remark' }], [{ input: true, label: '备注', prop: 'remark' }],
@ -224,7 +225,7 @@ export default {
}, },
{ {
// width: 128, // width: 128,
prop: 'lineName', prop: 'productionLineName',
label: '产线', label: '产线',
}, },
{ {
@ -247,9 +248,10 @@ export default {
}, },
], ],
// keys, queryParams pageNo, pageSize key // keys, queryParams pageNo, pageSize key
searchBarKeys: ['inspectionDetContent', 'checkTime', 'productionLineId'], searchBarKeys: ['inspectionDetContent', 'checkTime', 'workOrderId'],
form: { form: {
id: undefined, id: undefined,
// workOrderId:undefined,
inspectionDetId: undefined, inspectionDetId: undefined,
inspectionDetContent: undefined, inspectionDetContent: undefined,
productionLineId: undefined, productionLineId: undefined,
@ -354,7 +356,8 @@ export default {
inspectionDetContent: undefined, inspectionDetContent: undefined,
sectionId: undefined, sectionId: undefined,
checkPerson: undefined, checkPerson: undefined,
checkTime: undefined, checkTime: undefined,
workOrderId:undefined,
source: undefined, source: undefined,
explainText: undefined, explainText: undefined,
remark: undefined, remark: undefined,
@ -383,12 +386,14 @@ export default {
this.reset(); this.reset();
const id = row.id; const id = row.id;
getQualityInspectionRecord(id).then((response) => { getQualityInspectionRecord(id).then((response) => {
/** 因为后端返回的时间是时间戳格式,需转换 */ /** 因为后端返回的时间是时间戳格式,需转换 */
console.log(response.data);
const info = {} const info = {}
Object.keys(this.form).forEach(key => { Object.keys(this.form).forEach(key => {
info[key] = response.data[key] info[key] = response.data[key]
}); });
this.form = info; this.form = info;
console.log(this.form);
this.open = true; this.open = true;
this.title = '修改质量检查信息记录表'; this.title = '修改质量检查信息记录表';
}); });

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-01 14:55:51 * @Date: 2023-08-01 14:55:51
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2023-11-10 16:26:45 * @LastEditTime: 2023-12-01 16:38:00
* @Description: * @Description:
--> -->
<template> <template>
@ -123,7 +123,7 @@ export default {
// }, // },
{ {
type: 'button', type: 'button',
btnName: '搜索', btnName: '查询',
name: 'search', name: 'search',
color: 'primary', color: 'primary',
}, },

View File

@ -351,7 +351,7 @@ export default {
...keyValuePairs, ...keyValuePairs,
sumInput: item.sumInput, sumInput: item.sumInput,
productionName: item.productionName, productionName: item.productionName,
workOrderId: item.workOrderId, workOrderName: item.workOrderName,
scrapRatio: item.scrapRatio, scrapRatio: item.scrapRatio,
}; };
}); });