projects/mes-zhp #418
@ -78,3 +78,11 @@ export function deleteLogDet(id) {
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function getEqMaintainPlanPageData(query) {
|
||||
return request({
|
||||
url: '/base/equipment-maintain-plan-det/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
@ -109,7 +109,9 @@ export default {
|
||||
}
|
||||
},
|
||||
// 处理搜索栏按钮
|
||||
handleSearchBarBtnClick(btn) {
|
||||
handleSearchBarBtnClick(btn) {
|
||||
console.log(btn);
|
||||
|
||||
// const keys = ['name', 'createTime']; // timeVal // 已被 searchBarKeys 替代
|
||||
switch (btn.btnName) {
|
||||
case 'search':
|
||||
|
@ -119,12 +119,12 @@ export default {
|
||||
return {
|
||||
searchBarKeys: ['groupId', 'equipmentName'],
|
||||
tableBtn: [
|
||||
this.$auth.hasPermi('equipment:bind-group:update')
|
||||
? {
|
||||
type: 'detail',
|
||||
btnName: '查看报警',
|
||||
}
|
||||
: undefined,
|
||||
// this.$auth.hasPermi('equipment:bind-group:update')
|
||||
// ? {
|
||||
// type: 'detail',
|
||||
// btnName: '查看报警',
|
||||
// }
|
||||
// : undefined,
|
||||
this.$auth.hasPermi('equipment:bind-group:update')
|
||||
? {
|
||||
type: 'edit',
|
||||
@ -371,8 +371,8 @@ export default {
|
||||
},
|
||||
handleTableBtnClick({ data, type }) {
|
||||
switch (type) {
|
||||
case 'edit':
|
||||
this.handleDetail(data, 'edit');
|
||||
case 'edit':
|
||||
this.handleUpdate(data)
|
||||
break;
|
||||
case 'delete':
|
||||
this.handleDelete(data);
|
||||
@ -397,7 +397,7 @@ export default {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = '添加设备与分组绑定';
|
||||
},
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
@ -432,19 +432,19 @@ export default {
|
||||
});
|
||||
},
|
||||
// 查看报警
|
||||
handleDetail(row, mode = 'detail') {
|
||||
const { equipmentId, equipmentName, groupCode, groupId, groupName, id } =
|
||||
row;
|
||||
// 打开抽屉
|
||||
this.editMode = mode;
|
||||
this.alarmForm.id = groupId;
|
||||
this.alarmForm.equipmentGroupCode = groupCode;
|
||||
this.alarmForm.equipmentGroupName = groupName;
|
||||
this.editVisible = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs['drawer'].init();
|
||||
});
|
||||
},
|
||||
// handleDetail(row, mode = 'detail') {
|
||||
// const { equipmentId, equipmentName, groupCode, groupId, groupName, id } =
|
||||
// row;
|
||||
// // 打开抽屉
|
||||
// this.editMode = mode;
|
||||
// this.alarmForm.id = groupId;
|
||||
// this.alarmForm.equipmentGroupCode = groupCode;
|
||||
// this.alarmForm.equipmentGroupName = groupName;
|
||||
// this.editVisible = true;
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs['drawer'].init();
|
||||
// });
|
||||
// },
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const id = row.id;
|
||||
|
@ -198,8 +198,8 @@ export default {
|
||||
},
|
||||
{
|
||||
type: 'select',
|
||||
label: '关联表编码',
|
||||
placeholder: '请选择关联表编码',
|
||||
label: '标识名称',
|
||||
placeholder: '请选择标识名称',
|
||||
param: 'plcId',
|
||||
selectOptions: [],
|
||||
filterable: true,
|
||||
|
@ -195,7 +195,9 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
/** 批量确认 */
|
||||
async searchBarClicked(btn) {
|
||||
async handleSearchBarBtnClick(btn) {
|
||||
console.log(11111);
|
||||
|
||||
switch (btn.btnName) {
|
||||
case 'batchConfirm':
|
||||
if (this.$refs['waiting-list-table'].selectedPlan.length == 0) {
|
||||
@ -258,7 +260,16 @@ export default {
|
||||
res.code == 0 && this.$modal.msgSuccess('确认成功');
|
||||
res.code != 0 && this.$modal.msgError('确认失败');
|
||||
})
|
||||
.catch(() => {});
|
||||
.catch(() => { });
|
||||
break;
|
||||
case 'search':
|
||||
this.getList()
|
||||
break;
|
||||
case 'add':
|
||||
this.addOrUpdateVisible = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.addOrUpdate.init();
|
||||
});
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
@ -201,7 +201,7 @@ export default {
|
||||
this.groupOptions =
|
||||
res1.data.map((item) => {
|
||||
item.label =
|
||||
item.name + ' - ' + getDictDataLabel('workshop', item.roomNameDict);
|
||||
item.name + (getDictDataLabel('workshop', item.roomNameDict) ? ' - ' + getDictDataLabel('workshop', item.roomNameDict) : '')
|
||||
return item;
|
||||
}) || [];
|
||||
// const res = await getEquipmentAll()
|
||||
|
@ -29,9 +29,9 @@ export default {
|
||||
},
|
||||
created() {
|
||||
},
|
||||
mounted() {
|
||||
this.getDataList()
|
||||
},
|
||||
// mounted() {
|
||||
// this.getDataList()
|
||||
// },
|
||||
methods: {
|
||||
// 获取数据列表
|
||||
getDataList() {
|
||||
|
@ -39,7 +39,7 @@ export default {
|
||||
const t = new Date();
|
||||
const [y, m, d] = [t.getFullYear(), t.getMonth(), t.getDate()];
|
||||
return {
|
||||
searchBarKeys: ['equipmentName', 'createTime'],
|
||||
searchBarKeys: ['equipmentTypeId'],
|
||||
equipmentTypeList:[],
|
||||
tableBtn: [
|
||||
{
|
||||
@ -124,7 +124,7 @@ export default {
|
||||
created() {
|
||||
this.initSearchBar()
|
||||
this.getList();
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
/** 查询列表 */
|
||||
getList() {
|
||||
@ -230,13 +230,14 @@ export default {
|
||||
return;
|
||||
}
|
||||
// 添加的提交
|
||||
this.post(this.form).then((response) => {
|
||||
this.post(this.form).then((res) => {
|
||||
console.log('res', res)
|
||||
this.$modal.msgSuccess('新增成功');
|
||||
this.open = false;
|
||||
this.getList()
|
||||
this.showDetailVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.showDetail.init(this.form.equipmentTypeId)
|
||||
this.$refs.showDetail.init(res.data)
|
||||
})
|
||||
});
|
||||
});
|
||||
|
@ -100,9 +100,10 @@ export default {
|
||||
// console.log(this.tableData)
|
||||
},
|
||||
getDataList(id) {
|
||||
console.log(id)
|
||||
this.dataListLoading = true;
|
||||
this.queryParams.equipmentTypeId = id
|
||||
console.log(id);
|
||||
console.log(this.queryParams.equipmentTypeId)
|
||||
this.urlOptions.getDataListURL(this.queryParams).then(response => {
|
||||
this.tableData = response.data.list;
|
||||
this.listQuery.total = response.data.total;
|
||||
|
@ -37,8 +37,8 @@
|
||||
</el-form>
|
||||
<div class="blue-title">保养内容</div>
|
||||
<base-table v-loading="dataListLoading" :table-props="tableProps" :table-data="tableData">
|
||||
<method-btn v-if="tableBtn.length" slot="handleBtn" :width="80" label="操作" :method-list="tableBtn"
|
||||
@clickBtn="handleClick" />
|
||||
<!-- <method-btn v-if="tableBtn.length" slot="handleBtn" :width="80" label="操作" :method-list="tableBtn"
|
||||
@clickBtn="handleClick" /> -->
|
||||
</base-table>
|
||||
</div>
|
||||
</el-drawer>
|
||||
|
@ -289,7 +289,7 @@ export default {
|
||||
const id = row.id;
|
||||
this.info({ id }).then((response) => {
|
||||
this.form = response.data;
|
||||
this.form.responsible = this.form.responsible ? this.form.responsible.split(',') : undefined
|
||||
// this.form.responsible = this.form.responsible ? this.form.responsible.split(',') : undefined
|
||||
this.open = true;
|
||||
this.title = '修改备品备件配置';
|
||||
});
|
||||
@ -300,7 +300,7 @@ export default {
|
||||
if (!valid) {
|
||||
return;
|
||||
}
|
||||
this.form.responsible = this.form.responsible.join(',')
|
||||
// this.form.responsible = this.form.responsible.join(',')/
|
||||
// 修改的提交
|
||||
if (this.form.id != null) {
|
||||
this.put(this.form).then((response) => {
|
||||
|
@ -136,8 +136,8 @@ export default {
|
||||
select: true,
|
||||
label: '备件名称',
|
||||
prop: 'productMaterialId',
|
||||
url: '/base/core-product-material/listAll', // TODO: 供应商
|
||||
// options: [],
|
||||
// url: '/base/core-product-material/listAll', // TODO: 供应商
|
||||
options: [],
|
||||
bind: {
|
||||
filterable: true,
|
||||
clearable: false,
|
||||
@ -404,19 +404,19 @@ export default {
|
||||
.catch(() => {});
|
||||
},
|
||||
async getDict() {
|
||||
const materRes = await getMaterialTree(); //
|
||||
let typeId = materRes.data.find((item) => item.product === 2).id;
|
||||
const listQuery = {
|
||||
typeId: typeId,
|
||||
};
|
||||
const materData = await getMaterialList(listQuery);
|
||||
this.rows[0][0].options = (materData.data || []).map((item) => ({
|
||||
label: item.name,
|
||||
value: item.id,
|
||||
...item
|
||||
}));
|
||||
// const materRes = await getMaterialTree();
|
||||
// let typeId = materRes.data.find((item) => item.product === 2);
|
||||
// const listQuery = {
|
||||
// typeId: typeId,
|
||||
// };
|
||||
const materData = await getMaterialList();
|
||||
this.rows[0][0].options = (materData.data || []).filter(item => item.typeId === 3)
|
||||
.map(item => ({ label: item.name, value: item.id,...item }))
|
||||
console.log(this.rows[0][0].options);
|
||||
|
||||
},
|
||||
updateDialogFormZ(val) {
|
||||
updateDialogFormZ(val) {
|
||||
// console.log(this.rows[0][0].options)
|
||||
const selectData = this.rows[0][0].options.find(
|
||||
(item) => item.id === val.productMaterialId
|
||||
);
|
||||
|
@ -61,9 +61,9 @@ function getTodayStart(today) {
|
||||
|
||||
/** 颜色配置 */
|
||||
const types = [
|
||||
{ name: '运行', color: '#288AFF' },
|
||||
{ name: '故障', color: '#FC9C91' },
|
||||
{ name: '运行', color: '#288AFF' },
|
||||
{ name: '计划停机', color: '#FFDC94' },
|
||||
{ name: '故障', color: '#FC9C91' },
|
||||
{ name: '空白', color: '#F2F4F9' },
|
||||
];
|
||||
|
||||
@ -251,7 +251,7 @@ export default class GanttGraph {
|
||||
y: 0,
|
||||
},
|
||||
data: arr.map(item => ({
|
||||
name: ['运行', '故障', '计划停机'][item.status],
|
||||
name: ['运行', '计划停机', '故障'][item.status],
|
||||
value: [0, item.startTime, item.startTime + item.duration * 60 * 1000, 0],
|
||||
itemStyle: {
|
||||
color: types[item.status].color,
|
||||
|
@ -6,29 +6,19 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div
|
||||
class="status-timegraph-container"
|
||||
style="background: #f2f4f9; flex: 1; display: flex; flex-direction: column">
|
||||
<el-row
|
||||
class=""
|
||||
style="
|
||||
<div class="status-timegraph-container" style="background: #f2f4f9; flex: 1; display: flex; flex-direction: column">
|
||||
<el-row class="" style="
|
||||
margin-bottom: 12px;
|
||||
background: #fff;
|
||||
padding: 16px 16px 0;
|
||||
border-radius: 8px;
|
||||
">
|
||||
<div class="blue-title">生产节拍时序图</div>
|
||||
<SearchBar
|
||||
:formConfigs="searchBarFormConfig"
|
||||
ref="search-bar"
|
||||
:remove-blue="true"
|
||||
@select-changed="handleSearchBarSelectChange"
|
||||
@headBtnClick="handleSearchBarBtnClick" />
|
||||
</el-row>
|
||||
<div class="blue-title">生产节拍时序图</div>
|
||||
<SearchBar :formConfigs="searchBarFormConfig" ref="search-bar" :remove-blue="true"
|
||||
@select-changed="handleSearchBarSelectChange" @headBtnClick="handleSearchBarBtnClick" />
|
||||
</el-row>
|
||||
|
||||
<el-row
|
||||
class=""
|
||||
style="
|
||||
<el-row class="" style="
|
||||
height: 1px;
|
||||
flex: 1;
|
||||
margin-bottom: 12px;
|
||||
@ -38,60 +28,40 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
<div class="blue-title">设备状态时序图</div>
|
||||
</el-col>
|
||||
<el-col :span="18" class="legend-row">
|
||||
<div class="legend">
|
||||
<div class="icon running"></div>
|
||||
<div>运行中</div>
|
||||
</div>
|
||||
<div class="legend">
|
||||
<div class="icon fault"></div>
|
||||
<div>故障</div>
|
||||
</div>
|
||||
<div class="legend">
|
||||
<div class="icon stop"></div>
|
||||
<div>计划停机</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div
|
||||
class="main-area"
|
||||
style="flex: 1; display: flex; flex-direction: column">
|
||||
<div
|
||||
class="graphs"
|
||||
v-show="graphList.length"
|
||||
id="status-chart"
|
||||
style="height: 1px; flex: 1"></div>
|
||||
<h2 v-if="!graphList || graphList.length == 0" class="no-data-bg"></h2>
|
||||
</div>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
<div class="blue-title">设备状态时序图</div>
|
||||
</el-col>
|
||||
<el-col :span="18" class="legend-row">
|
||||
<div class="legend">
|
||||
<div class="icon running"></div>
|
||||
<div>运行中</div>
|
||||
</div>
|
||||
<div class="legend">
|
||||
<div class="icon stop"></div>
|
||||
<div>计划停机</div>
|
||||
</div>
|
||||
<div class="legend">
|
||||
<div class="icon fault"></div>
|
||||
<div>故障</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="main-area" style="flex: 1; display: flex; flex-direction: column">
|
||||
<div class="graphs" v-show="graphList.length" id="status-chart" style="height: 1px; flex: 1"></div>
|
||||
<h2 v-if="!graphList || graphList.length == 0" class="no-data-bg"></h2>
|
||||
</div>
|
||||
</el-row>
|
||||
|
||||
<!-- 对话框(添加 / 修改) -->
|
||||
<base-dialog
|
||||
dialogTitle="添加设备"
|
||||
:dialogVisible="open"
|
||||
width="500px"
|
||||
@close="open = false"
|
||||
@cancel="open = false"
|
||||
@confirm="submitForm">
|
||||
<el-select
|
||||
v-if="open"
|
||||
style="width: 100%"
|
||||
filterable
|
||||
clearable
|
||||
v-model="queryParams.equipmentId"
|
||||
placeholder="请选择一个设备">
|
||||
<el-option
|
||||
v-for="eq in eqList"
|
||||
:key="eq.id"
|
||||
:value="eq.id"
|
||||
:label="eq.name"></el-option>
|
||||
</el-select>
|
||||
</base-dialog>
|
||||
</div>
|
||||
<!-- 对话框(添加 / 修改) -->
|
||||
<base-dialog dialogTitle="添加设备" :dialogVisible="open" width="500px" @close="open = false" @cancel="open = false"
|
||||
@confirm="submitForm">
|
||||
<el-select v-if="open" style="width: 100%" filterable clearable v-model="queryParams.equipmentId"
|
||||
placeholder="请选择一个设备">
|
||||
<el-option v-for="eq in eqList" :key="eq.id" :value="eq.id" :label="eq.name"></el-option>
|
||||
</el-select>
|
||||
</base-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@ -103,12 +73,6 @@ export default {
|
||||
components: {},
|
||||
props: {},
|
||||
data() {
|
||||
const today = new Date();
|
||||
const todayStart = new Date(
|
||||
today.getFullYear(),
|
||||
today.getMonth(),
|
||||
today.getDate()
|
||||
);
|
||||
return {
|
||||
chart: null,
|
||||
searchBarFormConfig: [
|
||||
@ -138,7 +102,7 @@ export default {
|
||||
placeholder: '选择日期',
|
||||
param: 'recordTime',
|
||||
required: true,
|
||||
defaultSelect: moment(todayStart).format('YYYY-MM-DD HH:mm:ss'),
|
||||
defaultSelect:null,
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
@ -191,14 +155,24 @@ export default {
|
||||
// ],
|
||||
};
|
||||
},
|
||||
computed: {},
|
||||
created() {
|
||||
this.initProductline();
|
||||
this.initWorksection();
|
||||
this.initEquipment();
|
||||
computed: {},
|
||||
created () {
|
||||
this.initProductline();
|
||||
this.initWorksection();
|
||||
this.initEquipment();
|
||||
},
|
||||
mounted() {
|
||||
const today = new Date();
|
||||
const todayStart = new Date(
|
||||
today.getFullYear(),
|
||||
today.getMonth(),
|
||||
today.getDate()
|
||||
);
|
||||
this.searchBarFormConfig[2].defaultSelect = moment(todayStart).format('YYYY-MM-DD HH:mm:ss')
|
||||
console.log('111111', this.searchBarFormConfig[2].defaultSelect)
|
||||
// this.getList();
|
||||
},
|
||||
mounted() {},
|
||||
// mounted() {},
|
||||
watch: {
|
||||
graphList: {
|
||||
handler(val) {
|
||||
@ -246,7 +220,7 @@ export default {
|
||||
});
|
||||
},
|
||||
|
||||
async getList() {
|
||||
async getList() {
|
||||
const { code, data } = await this.$axios({
|
||||
url: '/monitoring/equipment-monitor/status-series',
|
||||
method: 'get',
|
||||
@ -312,7 +286,7 @@ export default {
|
||||
if (!value) {
|
||||
this.searchBarFormConfig[1].selectOptions = [];
|
||||
return;
|
||||
}
|
||||
}
|
||||
switch (param) {
|
||||
case 'lineId':
|
||||
this.$axios({
|
||||
@ -322,7 +296,8 @@ export default {
|
||||
id: value,
|
||||
},
|
||||
}).then(({ code, data }) => {
|
||||
if (code == 0) {
|
||||
if (code == 0) {
|
||||
this.searchBarFormConfig[2].defaultSelect = null
|
||||
this.searchBarFormConfig[1].selectOptions = data.map((item) => {
|
||||
return {
|
||||
name: item.name,
|
||||
|
@ -91,7 +91,13 @@ export default {
|
||||
btnName: '查询',
|
||||
name: 'search',
|
||||
color: 'primary',
|
||||
},
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
btnName: '返回',
|
||||
name: 'return',
|
||||
color: 'primary',
|
||||
},
|
||||
],
|
||||
queryParams: {
|
||||
equipmentId: null,
|
||||
@ -278,19 +284,24 @@ export default {
|
||||
);
|
||||
},
|
||||
|
||||
async handleSearchBarBtnClick({ btnName, timeVal }) {
|
||||
if (timeVal && timeVal.length > 0) {
|
||||
console.log('nihc ', timeVal)
|
||||
if (new Date(timeVal[1]).getTime() - new Date(timeVal[0]).getTime() <= 30 * 60 * 1000) {
|
||||
this.queryParams.recordTime = timeVal;
|
||||
await this.handleQuery();
|
||||
} else {
|
||||
this.$message.warning('时间范围最大30分钟限制!')
|
||||
}
|
||||
} else {
|
||||
this.queryParams.recordTime = [];
|
||||
this.$message.warning('时间段必选!')
|
||||
}
|
||||
async handleSearchBarBtnClick({ btnName, timeVal }) {
|
||||
console.log(btnName);
|
||||
if (btnName === 'search') {
|
||||
if (timeVal && timeVal.length > 0) {
|
||||
console.log('nihc ', timeVal)
|
||||
if (new Date(timeVal[1]).getTime() - new Date(timeVal[0]).getTime() <= 30 * 60 * 1000) {
|
||||
this.queryParams.recordTime = timeVal;
|
||||
await this.handleQuery();
|
||||
} else {
|
||||
this.$message.warning('时间范围最大30分钟限制!')
|
||||
}
|
||||
} else {
|
||||
this.queryParams.recordTime = [];
|
||||
this.$message.warning('时间段必选!')
|
||||
}
|
||||
} else {
|
||||
this.$router.go(-1)
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user