Compare commits

..

No commits in common. "aa582495de5f2e3eebb758d109bc1bfe8dceb482" and "75309dd9eab8559835ab45a4db3a77e666955f5d" have entirely different histories.

40 changed files with 341 additions and 627 deletions

View File

@ -5,13 +5,4 @@ export function getLineAll() {
url: '/base/core-production-line/listAll', url: '/base/core-production-line/listAll',
method: 'get' method: 'get'
}) })
} }
// 根据车间获得所有工厂产线列表
export function getLinelistByRoom(query) {
return request({
url: '/base/core-production-line/listFilter',
method: 'get',
params: query
})
}

View File

@ -1,7 +1,7 @@
/* /*
* @Author: zhp * @Author: zhp
* @Date: 2023-12-04 14:10:37 * @Date: 2023-12-04 14:10:37
* @LastEditTime: 2024-03-19 15:02:49 * @LastEditTime: 2023-12-14 10:06:03
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
*/ */
@ -26,11 +26,10 @@ export function updateQualityInspectionBoxBtn(data) {
} }
// 删除安灯按钮16键对应 // 删除安灯按钮16键对应
export function deleteQualityInspectionBoxBtn(query) { export function deleteQualityInspectionBoxBtn(id) {
return request({ return request({
url: 'base/quality-inspection-box-btn/deleteByLineSection', url: '/base/quality-inspection-box-btn/delete?id=' + id,
method: 'delete', method: 'delete'
params: query
}) })
} }

View File

@ -1,7 +1,7 @@
/* /*
* @Author: zhp * @Author: zhp
* @Date: 2023-10-18 09:33:57 * @Date: 2023-10-18 09:33:57
* @LastEditTime: 2024-03-20 15:39:27 * @LastEditTime: 2024-03-15 15:18:09
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
*/ */
@ -36,7 +36,7 @@ export function exportEnergyPlcExcel(query) {
export function exportEquipmentTraceabilityExcel(query) { export function exportEquipmentTraceabilityExcel(query) {
return request({ return request({
url: '/analysis/equipment-analysis/export-efficiency', url: '/analysis/equipment-analysis/export-excel',
method: 'get', method: 'get',
params: query, params: query,
responseType: 'blob' responseType: 'blob'

View File

@ -123,7 +123,6 @@
filterable filterable
clearable clearable
style="width: 100%" style="width: 100%"
@change="setLine"
placeholder="请选择车间名称"> placeholder="请选择车间名称">
<el-option <el-option
v-for="(dict, index) in getDictDatas('workshop')" v-for="(dict, index) in getDictDatas('workshop')"
@ -164,7 +163,7 @@
import { getProductAll } from '@/api/base/product' import { getProductAll } from '@/api/base/product'
import { getProcessFlowList, workOrderList } from '@/api/base/orderManage' import { getProcessFlowList, workOrderList } from '@/api/base/orderManage'
import { createCoreWO, updateCoreWO, getCode, getCoreWO } from '@/api/base/coreWorkOrder' import { createCoreWO, updateCoreWO, getCode, getCoreWO } from '@/api/base/coreWorkOrder'
import { getLinelistByRoom, getLineAll } from '@/api/base/productionLine' import { getLineAll } from '@/api/base/productionLine'
import basicAdd from '../../core/mixins/basic-add'; import basicAdd from '../../core/mixins/basic-add';
export default { export default {
@ -226,14 +225,6 @@ export default {
this.getDict() this.getDict()
}, },
methods: { methods: {
setLine() {
// 线
getLinelistByRoom({
room: this.dataForm.roomNameDict
}).then(res => {
this.productLineList = res.data || []
})
},
// //
materialMethodChange(val) { materialMethodChange(val) {
if (val === 2 && !this.dataForm.processFlowId) { if (val === 2 && !this.dataForm.processFlowId) {

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: DY * @LastEditors: DY
* @LastEditTime: 2024-03-15 15:34:58 * @LastEditTime: 2024-03-13 14:47:44
* @Description: * @Description:
--> -->
<template> <template>
@ -17,47 +17,30 @@
</small-title> </small-title>
<div class="content"> <div class="content">
<div class="formContent"> <div class="formContent">
<el-form :model="dataForm" ref="dataForm" label-width="120px" label-position="top" class="demo-ruleForm" :rules="rules"> <el-row :gutter="20">
<el-row :gutter="20"> <el-col :span="8">
<el-col :span="8"> <div class="blodTip">工单名称</div>
<el-form-item label="工单名称" prop="name"> <div class="lightTip">{{ dataForm.name }}</div>
<!-- <el-input v-model="dataForm.name" autocomplete="off"></el-input> --> </el-col>
<span>{{ dataForm.name }}</span> <el-col :span="8">
</el-form-item> <div class="blodTip">工单编码</div>
</el-col> <div class="lightTip">{{ dataForm.code }}</div>
<el-col :span="8"> </el-col>
<el-form-item label="工单编码" prop="code"> <el-col :span="8">
<span>{{ dataForm.code }}</span> <div class="blodTip">产品名称</div>
</el-form-item> <div class="lightTip">{{ dataForm.productName }}</div>
</el-col> </el-col>
<el-col :span="8"> </el-row>
<el-form-item label="产品名称" prop="productName"> <el-row :gutter="20">
<span>{{ dataForm.productName }}</span> <el-col :span="8">
</el-form-item> <div class="blodTip">产品规格</div>
</el-col> <div class="lightTip">{{ dataForm.specifications }}</div>
</el-row> </el-col>
<el-row :gutter="20"> <el-col :span="8">
<el-col :span="8"> <div class="blodTip">实际生产数量</div>
<el-form-item label="产品规格" prop="specifications"> <div class="lightTip">{{ dataForm.expectedTime }}</div>
<span>{{ dataForm.specifications }}</span> </el-col>
</el-form-item> </el-row>
</el-col>
<el-col :span="8">
<el-form-item label="实际生产数量" prop="actualQuantity">
<el-input v-model.number="dataForm.actualQuantity" autocomplete="off" style="width: 80%" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实际生产完成时间" prop="finishProduceTime">
<el-date-picker
v-model="dataForm.finishProduceTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期时间" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div> </div>
<div class="attr-list"> <div class="attr-list">
@ -116,11 +99,11 @@
</div> </div>
<div class="drawer-body__footer"> <div class="drawer-body__footer">
<el-button style="" @click="goback()">取消</el-button> <el-button style="" type="primary" @click="goback()">关闭</el-button>
<!-- <el-button v-if="isdetail" type="primary" @click="goEdit()"> <!-- <el-button v-if="isdetail" type="primary" @click="goEdit()">
编辑 编辑
</el-button> --> </el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button> <el-button v-else type="primary" @click="dataFormSubmit()">确定</el-button> -->
</div> </div>
</div> </div>
@ -134,7 +117,7 @@
<script> <script>
import basicAdd from '../../core/mixins/basic-add'; import basicAdd from '../../core/mixins/basic-add';
import { getConOrderList, updateConCoreWOr, getCoreWO, statusChange } from '@/api/base/coreWorkOrder'; import { getConOrderList, updateConCoreWOr, getCoreWO } from '@/api/base/coreWorkOrder';
import SmallTitle from '../material/SmallTitle'; import SmallTitle from '../material/SmallTitle';
// import { parseTime } from '../../core/mixins/code-filter'; // import { parseTime } from '../../core/mixins/code-filter';
// import attrAdd from './attr-add'; // import attrAdd from './attr-add';
@ -165,43 +148,11 @@ export default {
tableData: [], tableData: [],
visible: false, visible: false,
isdetail: false, isdetail: false,
idAttrShow: false, idAttrShow: false
rules: {
name: [{ required: true, message: "工单名称不能为空", trigger: "blur" }],
finishProduceTime: [{ required: true, message: "实际生产完成时间不能为空", trigger: "change" }]
},
}; };
}, },
mounted() {}, mounted() {},
methods: { methods: {
//
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
//
if (this.dataForm.id) {
statusChange({
id: this.dataForm.id,
status: 4,
finishProduceTime: this.dataForm.finishProduceTime,
actualQuantity: this.dataForm.actualQuantity
}).then(response => {
this.$modal.msgSuccess("操作成功!工单状态稍后将会更新!");
this.visible = false;
this.$emit("refreshDataList");
});
return;
}
//
// this.urlOptions.createURL(this.dataForm).then(response => {
// this.$modal.msgSuccess("");
// this.visible = false;
// this.$emit("refreshDataList");
// });
});
},
initData() { initData() {
// this.materialAttrList.splice(0); // this.materialAttrList.splice(0);
this.listQuery.total = 0; this.listQuery.total = 0;
@ -304,9 +255,6 @@ export default {
}; };
</script> </script>
<style scoped> <style scoped>
/* .item .el-form-item__label {
color: red;
} */
.drawer >>> .el-drawer { .drawer >>> .el-drawer {
border-radius: 8px 0 0 8px; border-radius: 8px 0 0 8px;
display: flex; display: flex;
@ -315,7 +263,6 @@ export default {
.drawer >>> .el-form-item__label { .drawer >>> .el-form-item__label {
padding: 0; padding: 0;
font-weight: 600;
} }
.drawer >>> .el-drawer__header { .drawer >>> .el-drawer__header {

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: DY * @LastEditors: DY
* @LastEditTime: 2024-03-15 15:40:24 * @LastEditTime: 2024-03-13 14:42:32
* @Description: * @Description:
--> -->
<template> <template>
@ -97,10 +97,6 @@
<div class="blodTip">关联工艺</div> <div class="blodTip">关联工艺</div>
<div class="lightTip">{{ dataForm.processFlowName }}</div> <div class="lightTip">{{ dataForm.processFlowName }}</div>
</el-col> </el-col>
<el-col :span="3">
<div class="blodTip">车间名称</div>
<div class="lightTip">{{ (dataForm.roomNameDict || dataForm.roomNameDict === 0) ? getDictDataLabel('workshop', dataForm.roomNameDict) : '-' }}</div>
</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>

View File

@ -431,33 +431,28 @@ export default {
opration = '终止' opration = '终止'
} }
console.log('22',val) console.log('22',val)
if (param.status !== 4) { this.$confirm(`确定${opration}${'"工单' + val.data.name + '"'}?`, "提示", {
this.$confirm(`确定${opration}${'"工单' + val.data.name + '"'}?`, "提示", { confirmButtonText: "确定",
confirmButtonText: "确定", cancelButtonText: "取消",
cancelButtonText: "取消", type: "warning",
type: "warning", })
}) .then(() => {
.then(() => { statusChange(param).then(({ data }) => {
statusChange(param).then(({ data }) => { this.$message({
this.$message({ message: '操作成功!工单状态稍后将会更新!',
message: '操作成功!工单状态稍后将会更新!', type: 'success',
type: 'success', duration: 1500,
duration: 1500, onClose: () => {
onClose: () => { this.getDataList();
this.getDataList(); //
// if (param.status === 4) {
// if (param.status === 4) { this.allocationOrder(param);
// this.allocationOrder(param); }
// } },
},
});
}); });
}) });
.catch(() => { }); })
} else { .catch(() => { });
//
this.allocationOrder(param);
}
} }
}, },
allocationOrder(val) { allocationOrder(val) {
@ -465,25 +460,20 @@ export default {
getConOrderList({ getConOrderList({
workOrderId: val.id, workOrderId: val.id,
}).then((response) => { }).then((response) => {
if (response.data.length > 0) {
this.$confirm('工单结束,可分配产量', "提示", { this.$confirm('工单结束,可分配产量', "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",
}) })
.then(() => { .then(() => {
this.allocationVisible = true; this.allocationVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
if (response.data.length > 0) { this.$refs.allocation.init(val.id, true);
// id });
this.$refs.allocation.init(val.id); })
} else { .catch(() => { });
this.$refs.allocation.init(); }
}
});
})
.catch(() => { });
// this.listQuery.total = response.data.total; // this.listQuery.total = response.data.total;
}); });
}, },

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-10-17 16:50:19 * @Date: 2023-10-17 16:50:19
* @LastEditTime: 2024-03-20 08:36:01 * @LastEditTime: 2024-01-22 09:55:32
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -23,7 +23,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="标签类型" prop="typeId"> <el-form-item label="标签类型" prop="typeId">
<el-select v-model="dataForm.typeId" style="width: 100%;" placeholder="请选择标签类型" clearable> <el-select v-model="dataForm.typeId" style="width: 100%;" placeholder="请选择打印方式" clearable>
<el-option v-for="dict in typeList" :key="dict.id" :label="dict.name" :value="dict.id" /> <el-option v-for="dict in typeList" :key="dict.id" :label="dict.name" :value="dict.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>

View File

@ -46,7 +46,6 @@
import BalanceChart from '../balanceChart'; import BalanceChart from '../balanceChart';
import basicPageMixin from '@/mixins/lb/basicPageMixin'; import basicPageMixin from '@/mixins/lb/basicPageMixin';
import AnalysisChart from './chart.vue'; import AnalysisChart from './chart.vue';
import { parseTime } from '@/utils/ruoyi'
export default { export default {
components: { components: {
@ -83,7 +82,7 @@ export default {
{ {
type: 'datePicker', type: 'datePicker',
label: '时间', label: '时间',
dateType: 'month', dateType: 'monthrange',
format: 'yyyy-MM', format: 'yyyy-MM',
valueFormat: 'timestamp', valueFormat: 'timestamp',
rangeSeparator: '-', rangeSeparator: '-',
@ -256,13 +255,13 @@ export default {
const date = eq.dynamicName; const date = eq.dynamicName;
eq.children.forEach((sub) => { eq.children.forEach((sub) => {
if (sub.dynamicName == '设备CT') if (sub.dynamicName == '设备CT')
row[date + '_eq_ct'] = sub?.dynamicValue?.toFixed(2); row[date + '_eq_ct'] = sub.dynamicValue;
if (sub.dynamicName == '设备TT') if (sub.dynamicName == '设备TT')
row[date + '_eq_tt'] = sub?.dynamicValue?.toFixed(2); row[date + '_eq_tt'] = sub.dynamicValue;
if (sub.dynamicName == '产线CT') if (sub.dynamicName == '产线CT')
row[date + '_pl_ct'] = sub.dynamicValue?.toFixed(2); row[date + '_pl_ct'] = sub.dynamicValue;
if (sub.dynamicName == '产线TT') if (sub.dynamicName == '产线TT')
row[date + '_pl_tt'] = sub.dynamicValue?.toFixed(2); row[date + '_pl_tt'] = sub.dynamicValue;
}); });
}); });
this.tableData.push(row); this.tableData.push(row);
@ -370,63 +369,21 @@ export default {
// this.dataListLoading = false; // this.dataListLoading = false;
}); });
}, },
changeTime(val) {
console.log(val)
if(val) {
const timeStamp = new Date(val).getMonth(); //
console.log('沃尔沃', timeStamp)
const fullyear = new Date(val).getFullYear()
let days = 0
switch (timeStamp) {
case 0:
case 2:
case 4:
case 6:
case 7:
case 9:
case 11:
days = 31
break
case 3:
case 4:
case 8:
case 10:
days = 30
break
case 1:
if ((fullyear % 400 === 0) || (fullyear % 4 === 0 && fullyear % 100 !== 0)) {
days = 29
} else {
days = 28
}
break
}
this.queryParams.startTime = new Date(fullyear, timeStamp, 1, 0, 0, 0).getTime() //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.queryParams.endTime = new Date(fullyear, timeStamp, days, 23, 59, 59).getTime() //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
} else {
this.queryParams.startTime = undefined
this.queryParams.endTime = undefined
}
},
handleSearchBarBtnClick(btn) { handleSearchBarBtnClick(btn) {
switch (btn.btnName) { switch (btn.btnName) {
case 'search': case 'search':
this.queryParams.lineId = btn.lineIds || null; this.queryParams.lineId = btn.lineIds || null;
console.log('2222', new Date(btn.timeArr).getFullYear()) this.queryParams.startTime = btn.timeArr ? btn.timeArr[0] : null;
this.changeTime(btn.timeArr) this.queryParams.endTime = btn.timeArr ? btn.timeArr[1] : null;
// this.queryParams.startTime = btn.timeArr ? btn.timeArr[0] : null;
// this.queryParams.endTime = btn.timeArr ? btn.timeArr[1] : null;
if (!btn.lineIds || !btn.timeArr) { if (!btn.lineIds || !btn.timeArr.length) {
this.$message({ this.$message({
message: '请选择产线和时间', message: '请选择产线和时间',
type: 'warning', type: 'warning',
}); });
} else {
this.getList();
} }
this.getList();
break; break;
} }
}, },

View File

@ -4,23 +4,38 @@
<el-col :span='12'> <el-col :span='12'>
<el-form-item label="能源类型" prop="energyTypeId"> <el-form-item label="能源类型" prop="energyTypeId">
<el-select v-model="form.energyTypeId" placeholder="请选择" style="width: 100%;" filterable> <el-select v-model="form.energyTypeId" placeholder="请选择" style="width: 100%;" filterable>
<el-option v-for="item in this.energyTypeList" :key="item.id" :label="item.name" :value="item.id"> <el-option
v-for="item in this.energyTypeList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span='12'> <el-col :span='12'>
<el-form-item label="抄表日期" prop="recordTime"> <el-form-item label="抄表日期" prop="recordTime">
<el-date-picker v-model="form.recordTime" type="date" format="yyyy-MM-dd" value-format="timestamp" <el-date-picker
placeholder="选择日期" style="width: 100%;"> v-model="form.recordTime"
type="date"
format="yyyy-MM-dd"
value-format="timestamp"
placeholder="选择日期"
style="width: 100%;">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span='24'> <el-col :span='24'>
<base-table border :table-props="tableProps" :table-data="tableData" :add-button-show="addButtonShow" <base-table
@emitFun="inputChange" @emitButtonClick="emitButtonClick" /> border
:table-props="tableProps"
:table-data="tableData"
:add-button-show="addButtonShow"
@emitFun="inputChange"
@emitButtonClick="emitButtonClick"
/>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -31,17 +46,17 @@ import moment from 'moment'
import InputArea from './InputArea' import InputArea from './InputArea'
import SelectArea from './SelectArea' import SelectArea from './SelectArea'
const tableProps = [ const tableProps = [
{ {
prop: 'tableName', prop: 'tableName',
label: '表名*', label: '表名',
subcomponent: SelectArea subcomponent: SelectArea
}, },
{ {
prop: 'readingQuantity', prop: 'readingQuantity',
label: '抄表数*', label: '抄表数',
subcomponent: InputArea subcomponent: InputArea
} }
] ]
export default { export default {
name: 'EnergyQuantityManualAdd', name: 'EnergyQuantityManualAdd',
props: { props: {
@ -57,7 +72,7 @@ export default {
return { return {
tableProps, tableProps,
tableData: [], tableData: [],
addButtonShow: '新增', addButtonShow:'新增',
form: { form: {
id: '', id: '',
energyTypeId: '', energyTypeId: '',
@ -83,16 +98,16 @@ export default {
obj.tableName = params.tableName + '' obj.tableName = params.tableName + ''
obj.readingQuantity = 0 obj.readingQuantity = 0
this.tableData.push(obj) this.tableData.push(obj)
} else { }else {
this.isEdit = true this.isEdit = true
this.form.id = params.id this.form.id = params.id
this.addButtonShow = '' this.addButtonShow = ''
energyQuantityManualGet({ id: this.form.id }).then(res => { energyQuantityManualGet({id: this.form.id}).then(res => {
if (res.code === 0) { if (res.code === 0) {
this.form.energyTypeId = res.data.energyTypeId this.form.energyTypeId = res.data.energyTypeId
this.form.recordTime = res.data.recordTime ? res.data.recordTime : null this.form.recordTime = res.data.recordTime ? res.data.recordTime : null
let obj = {} let obj = {}
obj.tableName = res.data.tableName ? res.data.tableName + '' : '' obj.tableName = res.data.tableName ? res.data.tableName+'' : ''
obj.readingQuantity = res.data.readingQuantity obj.readingQuantity = res.data.readingQuantity
this.tableData.push(obj) this.tableData.push(obj)
} }
@ -115,10 +130,10 @@ export default {
if (this.tableData.length === 0) { if (this.tableData.length === 0) {
this.$modal.msgError("抄表数据不能为空"); this.$modal.msgError("抄表数据不能为空");
return false return false
} else { }else{
for (let item of this.tableData) { for (let item of this.tableData) {
console.log(item) console.log(item)
if (!item.tableName || (!item.readingQuantity && item.readingQuantity !== 0)) { if (!item.tableName || (!item.readingQuantity && item.readingQuantity!==0)) {
this.$modal.msgError("抄表数据有空值,请检查"); this.$modal.msgError("抄表数据有空值,请检查");
return false return false
} }
@ -127,11 +142,11 @@ export default {
if (this.isEdit) { if (this.isEdit) {
// //
energyQuantityManualUpdate({ energyQuantityManualUpdate({
id: this.form.id, id:this.form.id,
energyTypeId: this.form.energyTypeId, energyTypeId:this.form.energyTypeId,
recordTime: this.form.recordTime, recordTime:this.form.recordTime,
tableName: this.tableData[0].tableName, tableName:this.tableData[0].tableName,
readingQuantity: this.tableData[0].readingQuantity readingQuantity:this.tableData[0].readingQuantity
}).then((res) => { }).then((res) => {
if (res.code === 0) { if (res.code === 0) {
this.$modal.msgSuccess("操作成功"); this.$modal.msgSuccess("操作成功");
@ -140,9 +155,9 @@ export default {
}) })
} else { } else {
energyQuantityManualCreate({ energyQuantityManualCreate({
energyTypeId: this.form.energyTypeId, energyTypeId:this.form.energyTypeId,
recordTime: this.form.recordTime, recordTime:this.form.recordTime,
data: this.tableData data:this.tableData
}).then((res) => { }).then((res) => {
if (res.code === 0) { if (res.code === 0) {
this.$modal.msgSuccess("操作成功"); this.$modal.msgSuccess("操作成功");

View File

@ -185,7 +185,7 @@ export default {
break break
default: default:
this.$modal.confirm('是否确认导出').then(() => { this.$modal.confirm('是否确认导出').then(() => {
return energyQuantityManualExport({ energyTypeId: this.queryParams.energyTypeId, recordTime: this.queryParams.recordTime }); return energyQuantityManualExport({ ...this.queryParams });
}).then(response => { }).then(response => {
this.$download.excel(response, '能源报表.xls'); this.$download.excel(response, '能源报表.xls');
}).catch(() => { }) }).catch(() => { })

View File

@ -2,12 +2,27 @@
<div class="app-container"> <div class="app-container">
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> <search-bar
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick"
/>
<!-- 列表 --> <!-- 列表 -->
<base-table :page="queryParams.pageNo" :limit="queryParams.pageSize" :table-props="tableProps" :table-data="list" <base-table
:selectWidth="55" :max-height="tableH" @selection-change="selectChange" /> :page="queryParams.pageNo"
<pagination :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" :total="total" :limit="queryParams.pageSize"
@pagination="getList" /> :table-props="tableProps"
:table-data="list"
:selectWidth="55"
:max-height="tableH"
@selection-change="selectChange"
/>
<pagination
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
:total="total"
@pagination="getList"
/>
</div> </div>
</template> </template>
@ -56,8 +71,7 @@ export default {
type: 'select', type: 'select',
label: '能源类型', label: '能源类型',
selectOptions: [], selectOptions: [],
param: 'energyTypeId', param: 'energyTypeId'
filterable: true
}, },
{ {
type: 'datePicker', type: 'datePicker',
@ -115,7 +129,7 @@ export default {
let arr = location.href.split('?')[1].split('&') let arr = location.href.split('?')[1].split('&')
this.formConfig[1].defaultSelect = [arr[0].split('=')[1], arr[1].split('=')[1]] this.formConfig[1].defaultSelect = [arr[0].split('=')[1], arr[1].split('=')[1]]
} else { } else {
this.formConfig[1].defaultSelect = [Date.now() - 7 * 24 * 3600000, Date.now()] this.formConfig[1].defaultSelect = [Date.now() - 7*24*3600000, Date.now()]
} }
this.queryParams.startTime = this.formConfig[1].defaultSelect[0] this.queryParams.startTime = this.formConfig[1].defaultSelect[0]
this.queryParams.endTime = this.formConfig[1].defaultSelect[1] this.queryParams.endTime = this.formConfig[1].defaultSelect[1]
@ -132,7 +146,7 @@ export default {
let arr = location.href.split('?')[1].split('&') let arr = location.href.split('?')[1].split('&')
this.formConfig[1].defaultSelect = [arr[0].split('=')[1], arr[1].split('=')[1]] this.formConfig[1].defaultSelect = [arr[0].split('=')[1], arr[1].split('=')[1]]
} else { } else {
this.formConfig[1].defaultSelect = [Date.now() - 7 * 24 * 3600000, Date.now()] this.formConfig[1].defaultSelect = [Date.now() - 7*24*3600000, Date.now()]
} }
this.queryParams.startTime = this.formConfig[1].defaultSelect[0] this.queryParams.startTime = this.formConfig[1].defaultSelect[0]
this.queryParams.endTime = this.formConfig[1].defaultSelect[1] this.queryParams.endTime = this.formConfig[1].defaultSelect[1]

View File

@ -127,11 +127,9 @@ export default {
name: '', name: '',
code: '', code: '',
unit: '', unit: '',
singlePrice: 0,
pricingMethod: 2, pricingMethod: 2,
dim: '', leaderName: '',
push: false, push: false
description: ''
}, },
isEdit: false, // isEdit: false, //
rules: { rules: {
@ -164,15 +162,14 @@ export default {
this.form.code = res.data.code this.form.code = res.data.code
this.form.unit = res.data.unit this.form.unit = res.data.unit
this.form.pricingMethod = res.data.pricingMethod this.form.pricingMethod = res.data.pricingMethod
this.form.leaderName = res.data.leaderName
this.form.push = res.data.push ? true : false this.form.push = res.data.push ? true : false
this.form.description = res.data.description
switch (this.form.pricingMethod) { switch (this.form.pricingMethod) {
case 0: case 0:
this.tableData1 = res.data.segPriceList || [] this.tableData1 = res.data.segPriceList || []
break; break;
case 1: case 1:
this.tableData2 = res.data.usedPriceList || [] this.tableData2 = res.data.usedPriceList || []
this.form.dim = res.data.dim
break; break;
default: default:
this.form.singlePrice = res.data.singlePrice || 0 this.form.singlePrice = res.data.singlePrice || 0

View File

@ -35,20 +35,20 @@ import {
} from '@/api/equipment/analysis/statistics'; } from '@/api/equipment/analysis/statistics';
const tableProps = [ const tableProps = [
// { {
// prop: 'recordTime', prop: 'recordTime',
// label: '', label: '时间段',
// filter: (val) => { filter: (val) => {
// if (val && val.length > 0) { if (val && val.length > 0) {
// return ( return (
// moment(val[0]).format('YYYY-MM-DD HH:mm:ss') + moment(val[0]).format('YYYY-MM-DD HH:mm:ss') +
// ' ~ ' + ' ~ ' +
// moment(val[1]).format('YYYY-MM-DD HH:mm:ss') moment(val[1]).format('YYYY-MM-DD HH:mm:ss')
// ); );
// } }
// return '-'; return '-';
// }, },
// }, },
{ {
prop: 'lineName', prop: 'lineName',
label: '产线', label: '产线',
@ -158,7 +158,7 @@ export default {
: '', : '',
btnName: '导出', btnName: '导出',
name: 'export', name: 'export',
color: 'primary', color: 'warning',
plain: true, plain: true,
}, },
], ],

View File

@ -19,7 +19,6 @@
:page="queryParams.pageNo" :page="queryParams.pageNo"
:limit="queryParams.pageSize" :limit="queryParams.pageSize"
:table-data="list" :table-data="list"
max-height="600"
@emitFun="handleEmitFun"> @emitFun="handleEmitFun">
<!-- <method-btn <!-- <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
@ -94,29 +93,17 @@ export default {
{ prop: 'downCount', label: '故障次数' }, { prop: 'downCount', label: '故障次数' },
], ],
searchBarFormConfig: [ searchBarFormConfig: [
// {
// type: 'select',
// label: '',
// placeholder: '',
// param: 'month',
// selectOptions: Array(12)
// .fill(0)
// .map((v, i) => ({
// id: i + 1,
// name: `${i + 1}`,
// })),
// },
{ {
type: 'datePicker', type: 'select',
label: '时间', label: '请选择月份',
dateType: 'month', placeholder: '请选择月份',
format: 'yyyy-MM',
valueFormat: 'yyyy-MM-dd HH:mm:ss',
rangeSeparator: '-',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
width: 240,
param: 'month', param: 'month',
selectOptions: Array(12)
.fill(0)
.map((v, i) => ({
id: i + 1,
name: `${i + 1}`,
})),
}, },
{ {
__index: 'line', __index: 'line',
@ -124,7 +111,6 @@ export default {
label: '产线', label: '产线',
placeholder: '请选择产线', placeholder: '请选择产线',
param: 'lineId', param: 'lineId',
filterable: true
}, },
{ {
type: 'button', type: 'button',
@ -178,13 +164,7 @@ export default {
}, },
}); });
if (code === 0) { if (code === 0) {
this.list = data.map(item => { this.list = data;
item.mtbf = item.mtbf?.toFixed(2)
item.mttr = item.mttr?.toFixed(2)
item.workTime = item.workTime?.toFixed(2)
item.downTime = item.downTime?.toFixed(2)
return item
});
} else { } else {
this.list.splice(0); this.list.splice(0);
} }
@ -194,14 +174,12 @@ export default {
switch (btn.btnName) { switch (btn.btnName) {
case 'search': case 'search':
if (btn.month) { if (btn.month) {
// this.queryParams.recordTime = [ this.queryParams.recordTime = [
// moment() moment()
// .month(btn.month - 1) .month(btn.month - 1)
// .format('YYYY-MM') + '-01 00:00:00', .format('YYYY-MM') + '-01 00:00:00',
// moment().month(btn.month).format('YYYY-MM') + '-01 00:00:00', moment().month(btn.month).format('YYYY-MM') + '-01 00:00:00',
// ]; ];
this.queryParams.recordTime = [btn.month, moment().month(new Date(btn.month).getMonth() + 1).format('YYYY-MM') + '-01 00:00:00']
console.log(btn.month, moment().month(new Date(btn.month).getMonth() + 1).format('YYYY-MM') + '-01 00:00:00')
} else { } else {
this.queryParams.recordTime = null; this.queryParams.recordTime = null;
} }

View File

@ -464,9 +464,7 @@ export default {
this.reset(); this.reset();
this.open = true; this.open = true;
this.title = '添加设备采集配置'; this.title = '添加设备采集配置';
this.$nextTick(() => { this.$refs.addOrUpdate.init()
this.$refs.addOrUpdate.init()
})
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: DY * @LastEditors: DY
* @LastEditTime: 2024-03-15 18:54:23 * @LastEditTime: 2024-03-13 16:47:02
* @Description: * @Description:
--> -->
<template> <template>

View File

@ -99,7 +99,7 @@
<el-option <el-option
v-for="plc in plcList" v-for="plc in plcList"
:key="plc.id" :key="plc.id"
:label="plc.plcTableName" :label="plc.name"
:value="plc.id"></el-option> :value="plc.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -404,9 +404,9 @@ export default {
this.eqList = data; this.eqList = data;
}); });
this.$axios({ this.$axios({
url: '/base/equipment-plc/listAll', url: '/base/equipment-plc/page',
}).then(({ code, data }) => { }).then(({ code, data }) => {
this.plcList = data; this.plcList = data.list;
}); });
} }
for (const section of this.sections) { for (const section of this.sections) {

View File

@ -2,15 +2,14 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: DY * @LastEditors: DY
* @LastEditTime: 2024-03-18 15:47:20 * @LastEditTime: 2024-03-04 11:14:28
* @Description: * @Description:
--> -->
<template> <template>
<el-drawer <el-drawer
:visible.sync="visible" :visible.sync="visible"
:show-close="false" :show-close="false"
:wrapper-closable="true" :wrapper-closable="isdetail"
:before-close="beforeClose"
class="drawer" class="drawer"
size="60%"> size="60%">
<small-title slot="title" :no-padding="true"> <small-title slot="title" :no-padding="true">
@ -270,17 +269,6 @@ export default {
this.getDict() this.getDict()
}, },
methods: { methods: {
beforeClose(done) {
if (!this.isdetail) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
} else {
done()
}
},
async getDict() { async getDict() {
// //
const res = await groupClassesListAll(); const res = await groupClassesListAll();
@ -384,7 +372,6 @@ export default {
if (id) { if (id) {
this.idAttrShow = true this.idAttrShow = true
} else { } else {
this.dataForm.checkPerson = [this.$store.getters.nickname]
this.idAttrShow = false this.idAttrShow = false
} }

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: DY * @LastEditors: DY
* @LastEditTime: 2024-03-15 18:38:52 * @LastEditTime: 2024-03-01 19:44:59
* @Description: * @Description:
--> -->
<template> <template>
@ -27,7 +27,7 @@
<el-form-item <el-form-item
label="部门" label="部门"
prop="departmentId" prop="departmentId"
:rules="[{ required: false, message: '请选择部门', trigger: 'blur' }]"> :rules="[{ required: true, message: '请选择部门', trigger: 'blur' }]">
<el-select <el-select
v-model="dataForm.departmentId" v-model="dataForm.departmentId"
:placeholder="`请选择部门`" :placeholder="`请选择部门`"

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>
@ -52,7 +52,6 @@ import basicPageMixin from '@/mixins/lb/basicPageMixin';
import addOrUpdata from './add-or-updata.vue'; import addOrUpdata from './add-or-updata.vue';
import add from './add.vue'; import add from './add.vue';
import { parseTime } from '../../../../core/mixins/code-filter'; import { parseTime } from '../../../../core/mixins/code-filter';
import { groupClassesListAll } from '@/api/monitoring/teamProduction';
// import { publicFormatter } from '@/utils/dict'; // import { publicFormatter } from '@/utils/dict';
// const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'); // const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss');
@ -112,12 +111,6 @@ export default {
width: 150, width: 150,
filter: parseTime, filter: parseTime,
}, },
{
prop: 'checkPeriod',
label: '巡检频率(天/次)',
width: 150,
showOverflowtooltip: true,
},
{ {
prop: 'confirmTimeLimit', prop: 'confirmTimeLimit',
label: '确认时限', label: '确认时限',

View File

@ -220,7 +220,7 @@
label="维修工" label="维修工"
prop="repairman" prop="repairman"
:rules="[ :rules="[
{ required: false, message: '维修工不能为空', trigger: 'blur' }, { required: true, message: '维修工不能为空', trigger: 'blur' },
]"> ]">
<el-select <el-select
v-model="form.repairman" v-model="form.repairman"
@ -262,7 +262,7 @@
prop="repairMode" prop="repairMode"
:rules="[ :rules="[
{ {
required: false, required: true,
message: '维修方式不能为空', message: '维修方式不能为空',
trigger: 'blur', trigger: 'blur',
}, },

View File

@ -83,41 +83,33 @@ export default {
data() { data() {
return { return {
tableProps: [ tableProps: [
{ prop: 'equipmentName', label: '设备名称', minWidth: 100, showOverflowtooltip: true }, { prop: 'equipmentName', label: '设备名称' },
{ prop: 'equipmentCode', label: '设备编码', minWidth: 150, showOverflowtooltip: true }, { prop: 'equipmentCode', label: '设备编码' },
{ prop: 'inQuantity', label: '投入数', minWidth: 80, showOverflowtooltip: true }, { prop: 'inQuantity', label: '投入数' },
{ prop: 'outQuantity', label: '产出数', minWidth: 80, showOverflowtooltip: true }, { prop: 'outQuantity', label: '产出数' },
{ {
prop: 'run', prop: 'run',
label: '是否运行', label: '是否运行',
filter: (val) => (val != null ? (val ? '是' : '否') : ''), filter: (val) => (val != null ? (val ? '是' : '否') : ''),
minWidth: 100,
showOverflowtooltip: true
}, },
{ {
prop: 'status', prop: 'status',
label: '状态', label: '状态',
filter: (val) => filter: (val) =>
val != null ? ['正常', '计划停机', '故障'][val] : '', val != null ? ['正常', '计划停机', '故障'][val] : '',
minWidth: 90,
showOverflowtooltip: true
}, },
{ {
prop: 'error', prop: 'error',
label: '是否故障', label: '是否故障',
filter: (val) => (val != null ? (val ? '是' : '否') : ''), filter: (val) => (val != null ? (val ? '是' : '否') : ''),
minWidth: 100,
showOverflowtooltip: true
}, },
{ {
prop: 'quantityRecordTime', prop: 'quantityRecordTime',
label: '生产量记录时间', label: '生产量记录时间',
filter: parseTime, filter: parseTime,
minWidth: 150,
showOverflowtooltip: true
}, },
{ prop: 'statusRecordTime', label: '状态记录时间', filter: parseTime, minWidth: 150, showOverflowtooltip: true }, { prop: 'statusRecordTime', label: '状态记录时间', filter: parseTime },
// { prop: 'opt1', label: '', name: '', subcomponent: btn }, { prop: 'opt1', label: '状态可视化', name: '查看', subcomponent: btn },
{ prop: 'opt2', label: '参数监控', name: '查看', subcomponent: btn }, { prop: 'opt2', label: '参数监控', name: '查看', subcomponent: btn },
], ],
searchBarForm: { searchBarForm: {

View File

@ -17,7 +17,7 @@
padding: 16px 16px 0; padding: 16px 16px 0;
border-radius: 8px; border-radius: 8px;
"> ">
<!-- <div class="blue-title">生产节拍时序图</div> --> <div class="blue-title">生产节拍时序图</div>
<!-- <h1>设备状态时序图</h1> --> <!-- <h1>设备状态时序图</h1> -->
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<SearchBar <SearchBar
@ -76,7 +76,6 @@
<script> <script>
import LineChart from './components/lineChart.vue'; import LineChart from './components/lineChart.vue';
import moment from 'moment';
// import response from './response.json'; // import response from './response.json';
export default { export default {
@ -85,7 +84,6 @@ export default {
props: {}, props: {},
data() { data() {
return { return {
moment,
startTime: null, // new Date(2023, 8, 26, 0, 0, 0, 0).getTime(), startTime: null, // new Date(2023, 8, 26, 0, 0, 0, 0).getTime(),
accumulators: new Map(), accumulators: new Map(),
searchBarFormConfig: [ searchBarFormConfig: [
@ -96,7 +94,6 @@ export default {
selectOptions: [], selectOptions: [],
param: 'lineId', param: 'lineId',
onchange: true, onchange: true,
filterable: true
}, },
{ {
type: 'select', type: 'select',
@ -104,12 +101,11 @@ export default {
placeholder: '请选择工段', placeholder: '请选择工段',
selectOptions: [], selectOptions: [],
param: 'sectionId', param: 'sectionId',
filterable: true
}, },
// //
{ {
type: 'datePicker', type: 'datePicker',
label: '日期', label: '时间段',
dateType: 'date', // datetimerange dateType: 'date', // datetimerange
// format: 'yyyy-MM-dd HH:mm:ss', // format: 'yyyy-MM-dd HH:mm:ss',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
@ -267,11 +263,7 @@ export default {
this.initProductline(); this.initProductline();
this.initWorksection(); this.initWorksection();
this.initEquipment(); this.initEquipment();
let end = moment().format('YYYY-MM-DD 23:59:59') // this.getList();
let start = moment().format('YYYY-MM-DD 00:00:00')
this.searchBarFormConfig[2].defaultSelect = start
this.queryParams.recordTime = [start, end]
this.getList();
}, },
methods: { methods: {
handleSearchBarBtnClick({ btnName, ...payload }) { handleSearchBarBtnClick({ btnName, ...payload }) {
@ -301,10 +293,8 @@ export default {
}, },
handleSearchBarChanged({ param, value }) { handleSearchBarChanged({ param, value }) {
this.searchBarFormConfig[1].defaultSelect = null
if (!value) { if (!value) {
this.searchBarFormConfig[1].selectOptions = []; this.searchBarFormConfig[1].selectOptions = [];
// this.searchBarFormConfig[1].defaultSelect = null
return; return;
} }
switch (param) { switch (param) {
@ -496,10 +486,7 @@ export default {
const { code, data } = await this.$axios({ const { code, data } = await this.$axios({
url: '/monitoring/equipment-monitor/quantity-series', url: '/monitoring/equipment-monitor/quantity-series',
method: 'get', method: 'get',
params: { params: this.queryParams,
equipmentId: this.queryParams.equipmentId,
recordTime: this.queryParams.recordTime
}
}); });
this.queryParams.equipmentId = null; // this.queryParams.equipmentId = null; //

View File

@ -17,7 +17,7 @@
padding: 16px 16px 0; padding: 16px 16px 0;
border-radius: 8px; border-radius: 8px;
"> ">
<!-- <div class="blue-title">生产节拍时序图</div> --> <div class="blue-title">生产节拍时序图</div>
<SearchBar <SearchBar
:formConfigs="searchBarFormConfig" :formConfigs="searchBarFormConfig"
ref="search-bar" ref="search-bar"
@ -119,7 +119,6 @@ export default {
selectOptions: [], selectOptions: [],
param: 'lineId', param: 'lineId',
onchange: true, onchange: true,
filterable: true
}, },
{ {
type: 'select', type: 'select',
@ -127,7 +126,6 @@ export default {
placeholder: '请选择工段', placeholder: '请选择工段',
selectOptions: [], selectOptions: [],
param: 'sectionId', param: 'sectionId',
filterable: true
}, },
// //
{ {

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2024-03-20 09:18:30 * @LastEditTime: 2023-12-08 13:59:20
* @Description: * @Description:
--> -->
<template> <template>
@ -12,47 +12,49 @@
</small-title> </small-title>
<div class="content"> <div class="content">
<!-- <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="24"> <el-row :gutter="24">
<el-col :span="8"> <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="请选择设备名称">
<el-option v-for="dict in equipmentList" :key=" dict.id" :label="dict.name" :value="dict.id" /> <el-option v-for="dict in equipmentList" :key=" dict.id" :label="dict.name" :value="dict.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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-col :span="8"> <el-col :span="8">
<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-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <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-col :span="8"> <el-col :span="8">
<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-select v-model="dataForm.enabled" filterable :disabled="isdetail" style="width: 100%"
</el-switch> placeholder="请选择当前状态">
</el-form-item> <el-option v-for="dict in enableList" :key=" dict.id" :label="dict.name" :value="dict.id" />
</el-col> </el-select>
<el-col :span="8"> </el-form-item>
<el-form-item label="备注" prop="remark"> </el-col>
<el-input v-model="dataForm.remark" :disabled="isdetail" clearable placeholder="请输入备注" /> <el-col :span="8">
</el-form-item> <el-form-item label="备注" prop="remark">
</el-col> <el-input v-model="dataForm.remark" :disabled="isdetail" clearable placeholder="请输入备注" />
</el-row> </el-form-item>
</el-form> </el-col>
</el-row>
</el-form>
<!-- </div> --> <!-- </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">
@ -75,9 +77,9 @@
:limit.sync="listQuery.pageSize" :page-sizes="[5, 10, 15]" @pagination="getList" /> :limit.sync="listQuery.pageSize" :page-sizes="[5, 10, 15]" @pagination="getList" />
</div> </div>
</div> </div>
<div class="drawer-body__footer"> <div class="drawer-body__footer">
<el-button style="" @click="goback()">取消</el-button> <el-button style="" @click="goback()">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button> <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
</div> </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>

View File

@ -93,7 +93,6 @@ export default {
labelField: 'name', labelField: 'name',
valueField: 'id', valueField: 'id',
param: 'equipmentId', param: 'equipmentId',
filterable: true
}, },
{ {
type: 'input', type: 'input',
@ -147,26 +146,6 @@ export default {
}); });
} }
}, },
deleteHandle(id, name, index) {
this.$confirm(`是否确认删除设备物料bom${name}`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.urlOptions.deleteURL(id).then(({ data }) => {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
},
});
});
})
.catch(() => { });
},
getDict() { getDict() {
getEquipmentList().then((res) => { getEquipmentList().then((res) => {
// console.log(res); // console.log(res);

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: zhp * @LastEditors: zhp
* @LastEditTime: 2024-03-20 09:17:11 * @LastEditTime: 2024-03-08 09:14:38
* @Description: * @Description:
--> -->
<template> <template>
@ -12,53 +12,51 @@
</small-title> </small-title>
<div class="content"> <div class="content">
<!-- <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="24"> <el-row :gutter="24">
<el-col :span="8"> <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="请选择设备名称">
<el-option v-for="dict in equipmentList" :key=" dict.id" :label="dict.name" :value="dict.id" /> <el-option v-for="dict in equipmentList" :key=" dict.id" :label="dict.name" :value="dict.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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-col :span="8"> <el-col :span="8">
<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-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <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-col :span="8"> <el-col :span="8">
<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%" <el-select v-model="dataForm.enabled" filterable :disabled="isdetail" style="width: 100%"
placeholder="请选择当前状态"> placeholder="请选择当前状态">
<el-option v-for="dict in enableList" :key=" dict.id" :label="dict.name" :value="dict.id" /> <el-option v-for="dict in enableList" :key=" dict.id" :label="dict.name" :value="dict.id" />
</el-select> --> </el-select>
<el-switch v-model="dataForm.enabled" :active-value="1" :inactive-value="0"> </el-form-item>
</el-switch> </el-col>
</el-form-item> <el-col :span="8">
</el-col> <el-form-item label="备注" prop="remark">
<el-col :span="8"> <el-input v-model="dataForm.remark" :disabled="isdetail" clearable placeholder="请输入备注" />
<el-form-item label="备注" prop="remark"> </el-form-item>
<el-input v-model="dataForm.remark" :disabled="isdetail" clearable placeholder="请输入备注" /> </el-col>
</el-form-item> </el-row>
</el-col>
</el-row>
</el-form> </el-form>
<!-- </div> --> <!-- </div> -->
<!-- <div v-if="!isdetail" class="drawer-body__footer"> <!-- <div v-if="!isdetail" class="drawer-body__footer">
@ -85,7 +83,7 @@
:limit.sync="listQuery.pageSize" :page-sizes="[5, 10, 15]" @pagination="getList" /> :limit.sync="listQuery.pageSize" :page-sizes="[5, 10, 15]" @pagination="getList" />
</div> </div>
</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 style="" @click="goback()">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button> <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
</div> </div>

View File

@ -93,8 +93,6 @@ export default {
labelField: 'name', labelField: 'name',
valueField: 'id', valueField: 'id',
param: 'equipmentId', param: 'equipmentId',
filterable: true
// filter
}, },
{ {
type: 'input', type: 'input',
@ -160,26 +158,6 @@ export default {
}) })
}) })
}, },
deleteHandle(id, name, index) {
this.$confirm(`是否确认删除设备参数bom${ name}`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.urlOptions.deleteURL(id).then(({ data }) => {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.getDataList();
},
});
});
})
.catch(() => { });
},
// //
getDataList() { getDataList() {
this.dataListLoading = true; this.dataListLoading = true;

View File

@ -1,8 +1,8 @@
<!-- <!--
filename: index.vue filename: index.vue
author: liubin author: liubin
date: 2023-10-19 10:03:42 date: 2023-10-19 10:03:42
description: description:
--> -->
<template> <template>
@ -189,7 +189,7 @@ export default {
input: true, input: true,
label: '工艺编码', label: '工艺编码',
prop: 'code', prop: 'code',
url: '/extend/process-flow/getCode', // url: '/base/core-equipment/getCode',
}, },
], ],
[ [

View File

@ -272,7 +272,7 @@ export default {
{ prop: 'lineName', label: '产线' }, { prop: 'lineName', label: '产线' },
{ prop: 'sectionName', label: '工段' }, { prop: 'sectionName', label: '工段' },
// { prop: 'externalCode', label: '' }, // { prop: 'externalCode', label: '' },
{ prop: 'equipmentCode', label: '设备编码' }, { prop: 'equipmentId', label: '设备编码' },
{ prop: 'equipmentName', label: '设备名称' }, { prop: 'equipmentName', label: '设备名称' },
{ prop: 'totalQuantity', label: '加工数量' }, { prop: 'totalQuantity', label: '加工数量' },
], ],

View File

@ -166,20 +166,13 @@ export default {
this.resetForm('form'); this.resetForm('form');
}, },
deleteHandle(id, name, index, data) { deleteHandle(id, name, index, data) {
console.log(data)
// const params = new URLSearchParams();
// params.append('productionLineId', data.productionLineId)
// params.append('sectionId', data.sectionId);
this.$confirm(`确认要删除产线名为${data.productionLineName}的数据项?`, "提示", { this.$confirm(`确认要删除产线名为${data.productionLineName}的数据项?`, "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",
}) })
.then(() => { .then(() => {
this.urlOptions.deleteURL({ this.urlOptions.deleteURL(data.id).then(({ data }) => {
'productionLineId': data.productionLineId,
'sectionId': data.sectionId,
}).then(({ data }) => {
this.$message({ this.$message({
message: "操作成功", message: "操作成功",
type: "success", type: "success",

View File

@ -34,7 +34,6 @@ import basicPage from './basic-page';
import moment from 'moment'; import moment from 'moment';
import addOrUpdate from './dialogForm.vue'; import addOrUpdate from './dialogForm.vue';
import ProcessBomList from './ProcessBomList.vue'; import ProcessBomList from './ProcessBomList.vue';
import row from './row.vue';
export default { export default {
name: 'QualityInspectionBoxBtn', name: 'QualityInspectionBoxBtn',
mixins: [basicPage], mixins: [basicPage],
@ -116,8 +115,7 @@ export default {
}, },
{ {
prop: 'datas', prop: 'datas',
label: '产线及工段', label: '产线及工段',
subcomponent: row
} }
], ],
// //
@ -170,7 +168,7 @@ export default {
this.urlOptions.getDataListURL(this.listQuery).then(res => { this.urlOptions.getDataListURL(this.listQuery).then(res => {
this.tableData = res.data.list.map((item) => { this.tableData = res.data.list.map((item) => {
return { return {
datas: item.strList || null, datas: item.strList ? item.strList.toString() : null,
nickName: item.nickName, nickName: item.nickName,
userName: item.userName, userName: item.userName,
userId: item.userId userId: item.userId

View File

@ -1,46 +0,0 @@
<!--
* @Author: zhp
* @Date: 2024-03-20 10:01:01
* @LastEditTime: 2024-03-20 10:03:39
* @LastEditors: zhp
* @Description:
-->
<template>
<div class="tableInner">
<div v-for="(item,index) in injectData.datas" :key="index">
<span> {{ item }} </span>
</div>
<!-- <el-input-number v-model="list[itemProp]" @blur="changeInput" :min="0" :max="100000000" style="width: 100%" :controls='false'></el-input-number> -->
</div>
</template>
<script>
export default {
name: 'InputArea',
props: {
injectData: {
type: Object,
default: () => ({})
},
itemProp: {
type: String
}
},
data() {
return {
list: this.injectData
}
},
methods: {
// changeInput() {
// this.$emit('emitData', this.list)
// }
}
}
</script>
<style lang="scss">
// .tableInner .el-input__inner {
// border: none;
// padding: 0;
// height: 33px;
// }
</style>

View File

@ -59,18 +59,12 @@ const tableProps = [
}, },
{ {
prop: 'materialGrade', prop: 'materialGrade',
label: '原料等级', label: '原料等级'
filter: (val) => val == 1 ? 'A' : val == 2 ? 'B' : 'C',
}, },
{ {
prop: 'checkerName', prop: 'checkerName',
label: '检测人员' label: '检测人员'
}, },
{
prop: 'checkTime',
label: '检测时间',
filter: parseTime
},
]; ];
export default { export default {
@ -118,19 +112,6 @@ export default {
labelField: 'name', labelField: 'name',
valueField: 'id', valueField: 'id',
param: 'materialId', param: 'materialId',
},
{
type: 'datePicker',
label: '时间段',
dateType: 'daterange',
format: 'yyyy-MM-dd HH:mm:ss',
valueFormat: "yyyy-MM-dd HH:mm:ss",
rangeSeparator: '-',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
param: 'checkTime',
defaultSelect: [],
width: 250
}, },
{ {
type: 'button', type: 'button',
@ -178,7 +159,7 @@ export default {
}); });
}, },
deleteHandle(id, name, index, data) { deleteHandle(id, name, index, data) {
this.$confirm(`确认要删除序号${index}?`, "提示", { this.$confirm(`确认要删除序号${index}的数据项?`, "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",
@ -208,7 +189,7 @@ export default {
this.listQuery.pageNo = 1; this.listQuery.pageNo = 1;
this.listQuery.pageSize = 10; this.listQuery.pageSize = 10;
this.listQuery.materialId = val.materialId ? val.materialId : undefined; this.listQuery.materialId = val.materialId ? val.materialId : undefined;
this.listQuery.checkTime = val.checkTime ? val.checkTime : undefined; // this.listQuery.typeId = val.typeId ? val.typeId : undefined;
this.getDataList(); this.getDataList();
break; break;
case 'reset': case 'reset':

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-11-06 15:15:30 * @Date: 2023-11-06 15:15:30
* @LastEditTime: 2024-03-20 09:38:10 * @LastEditTime: 2024-03-15 14:31:10
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -22,8 +22,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="报废时间" prop="logTime"> <el-form-item label="报废时间" prop="logTime">
<el-date-picker style="width: 100%;" v-model="dataForm.logTime" type="datetime" value-format="timestamp" <el-date-picker style="width: 100%;" v-model="dataForm.logTime" type="datetime" value-format="timestamp" placeholder="选择日期">
placeholder="选择日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -52,17 +51,18 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="8">
<el-form-item label="描述" prop="description"> <el-form-item label="描述" prop="description">
<el-input v-model="dataForm.description" type="textarea" :rows="4" placeholder="请输入描述" /> <el-input v-model="dataForm.description" placeholder="请输入描述" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" placeholder="备注" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" placeholder="备注" />
</el-form-item>
</el-col>
</el-form> </el-form>
</template> </template>

View File

@ -1,7 +1,7 @@
/* /*
* @Author: zhp * @Author: zhp
* @Date: 2024-02-28 09:51:25 * @Date: 2024-02-28 09:51:25
* @LastEditTime: 2024-03-20 09:42:46 * @LastEditTime: 2024-03-15 14:34:29
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
*/ */
@ -24,9 +24,10 @@ export default {
} }
}, },
created() { created() {
this.dataForm.logTime = this.format(new Date().getTime())
console.log(this.dataForm.logTime); console.log(this.dataForm.logTime);
}, },
mounted() { mounted () {
}, },
// activated() { // activated() {
// }, // },
@ -49,8 +50,7 @@ export default {
this.getArr() this.getArr()
} }
this.$nextTick(() => { this.$nextTick(() => {
this.$refs["dataForm"].resetFields() this.$refs["dataForm"].resetFields();
this.dataForm.logTime = new Date()
if (this.dataForm.id) { if (this.dataForm.id) {
this.urlOptions.infoURL(id).then(response => { this.urlOptions.infoURL(id).then(response => {
console.log(response) console.log(response)

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-11-06 15:15:30 * @Date: 2023-11-06 15:15:30
* @LastEditTime: 2024-03-20 09:40:42 * @LastEditTime: 2024-03-15 14:33:12
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -57,17 +57,18 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="24"> <el-col :span="8">
<el-form-item label="描述" prop="description"> <el-form-item label="描述" prop="description">
<el-input v-model="dataForm.description" type="textarea" :rows="4" placeholder="请输入描述" /> <el-input v-model="dataForm.description" placeholder="请输入描述" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" placeholder="备注" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" placeholder="备注" />
</el-form-item>
</el-col>
</el-form> </el-form>
</el-dialog> </el-dialog>

View File

@ -59,7 +59,7 @@ const tableProps = [
{ {
prop: 'detContent', prop: 'detContent',
label: '报废原因' label: '报废原因'
}, },
{ {
prop: 'source', prop: 'source',
label: '来源', label: '来源',

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: 2024-03-20 09:25:40 * @LastEditTime: 2024-03-15 15:22:59
* @Description: * @Description:
--> -->
<template> <template>
@ -124,7 +124,7 @@ export default {
label: '时间段', label: '时间段',
dateType: 'daterange', dateType: 'daterange',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd',
valueFormat: "timestamp", valueFormat: "yyyy-MM-dd",
rangeSeparator: '-', rangeSeparator: '-',
startPlaceholder: '开始时间', startPlaceholder: '开始时间',
endPlaceholder: '结束时间', endPlaceholder: '结束时间',
@ -251,8 +251,8 @@ export default {
this.listQuery.orderName = val.orderName ? val.orderName :undefined this.listQuery.orderName = val.orderName ? val.orderName :undefined
// this.queryParams.status = val.status // this.queryParams.status = val.status
if (val.timeVal && val.timeVal.length != 0 ) { if (val.timeVal && val.timeVal.length != 0 ) {
this.listQuery.startTime = val.timeVal[0] this.listQuery.startTime = val.timeVal[0] + ' 00:00:00'
this.listQuery.endTime = val.timeVal[1] this.listQuery.endTime = val.timeVal[1] + ' 23:59:59'
} else { } else {
this.listQuery.startTime = undefined this.listQuery.startTime = undefined
this.listQuery.endTime = undefined this.listQuery.endTime = undefined