Compare commits

..

No commits in common. "2a07a7de2f80804b5c1df860cb944f8378c89f1a" and "3951623f7e46aee12a0d3e76877462c84dd0e69f" have entirely different histories.

19 changed files with 211 additions and 416 deletions

View File

@ -1,8 +1,8 @@
### ###
# @Author: Do not edit # @Author: Do not edit
# @Date: 2023-08-29 09:40:39 # @Date: 2023-08-29 09:40:39
# @LastEditTime: 2024-03-22 10:28:37 # @LastEditTime: 2024-03-21 14:45:52
# @LastEditors: DY # @LastEditors: zhp
# @Description: # @Description:
### ###
# 开发环境配置 # 开发环境配置

View File

@ -1,7 +1,7 @@
/* /*
* @Author: Do not edit * @Author: Do not edit
* @Date: 2023-10-21 11:50:46 * @Date: 2023-10-21 11:50:46
* @LastEditTime: 2024-03-21 10:49:24 * @LastEditTime: 2023-11-15 17:19:19
* @LastEditors: DY * @LastEditors: DY
* @Description: * @Description:
*/ */
@ -118,24 +118,6 @@ export function getCoreWOMaPage(query) {
}) })
} }
// 获得工单预使用原料分页----根据产品id
export function getlistByProductId(query) {
return request({
url: '/base/material-product-bom-det/listByProductId',
method: 'get',
params: query
})
}
// 获得工单预使用原料分页----根据工艺流程
export function getlistByFlowId(query) {
return request({
url: '/extend/process-equ-material-bom-det/listByFlowId',
method: 'get',
params: query
})
}
// 获得预计用料信息分页 // 获得预计用料信息分页
export function getMaterialBomPage(query) { export function getMaterialBomPage(query) {
return request({ return request({
@ -180,12 +162,3 @@ export function updateConCoreWOr(data) {
data: data data: data
}) })
} }
// 修改分配产量----批量
export function updateBatchConCoreWOr(data) {
return request({
url: '/base/core-order-con-work-order/updateBatch',
method: 'put',
data: data
})
}

View File

@ -94,7 +94,7 @@
:show-file-list="false" :show-file-list="false"
icon="el-icon-upload2" icon="el-icon-upload2"
:disabled="disabled" :disabled="disabled"
:before-upload="col.uploadTips ? beforeUploadPic : beforeUpload" :before-upload="beforeUpload"
:on-success=" :on-success="
(response, file, fileList) => { (response, file, fileList) => {
handleUploadSuccess(response, file, col.prop); handleUploadSuccess(response, file, col.prop);
@ -110,7 +110,7 @@
上传文件 上传文件
</el-button> </el-button>
<div class="el-upload__tip" slot="tip" v-if="col.uploadTips"> <div class="el-upload__tip" slot="tip" v-if="col.uploadTips">
{{ '只能上传jpg/png文件, 大小不超过2MB' }} {{ col.uploadTips || '只能上传jpg/png文件, 大小不超过2MB' }}
</div> </div>
</el-upload> </el-upload>
@ -416,26 +416,6 @@ export default {
// //
beforeUpload(file) { beforeUpload(file) {
const checkFileSize = () => {
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isLt2M) {
this.$modal.msgError('上传文件大小不能超过 2MB!');
}
return isLt2M;
};
// const checkFileType = () => {
// const isJPG =
// file.type === 'image/jpeg' ||
// file.type === 'image/png' ||
// file.type === 'image/jpg';
// return isJPG;
// };
// return checkFileSize() && checkFileType();
return checkFileSize();
},
// ----
beforeUploadPic(file) {
const checkFileSize = () => { const checkFileSize = () => {
const isLt2M = file.size / 1024 / 1024 < 2; const isLt2M = file.size / 1024 / 1024 < 2;
if (!isLt2M) { if (!isLt2M) {
@ -448,9 +428,6 @@ export default {
file.type === 'image/jpeg' || file.type === 'image/jpeg' ||
file.type === 'image/png' || file.type === 'image/png' ||
file.type === 'image/jpg'; file.type === 'image/jpg';
if (!isJPG) {
this.$modal.msgError('只能上传jpg/png文件!');
}
return isJPG; return isJPG;
}; };
return checkFileSize() && checkFileType(); return checkFileSize() && checkFileType();

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-20 16:20:39 * @LastEditTime: 2023-12-12 16:04:44
* @Description: * @Description:
--> -->
<template> <template>
@ -130,11 +130,6 @@ export default {
if (this.dataForm.id) { if (this.dataForm.id) {
this.urlOptions.infoURL(id).then(response => { this.urlOptions.infoURL(id).then(response => {
this.dataForm = response.data; this.dataForm = response.data;
const tempPic = []
this.dataForm.files?.forEach(item => {
tempPic.push(item.fileUrl)
})
this.files = tempPic.join(',')
if (this.setData) { if (this.setData) {
this.setDataForm() this.setDataForm()
} }
@ -155,8 +150,8 @@ export default {
} }
this.dataForm.files = [] this.dataForm.files = []
if (this.files.split(',').length > 0) { if (this.files.length > 0) {
this.files.split(',').forEach(item => { this.files.forEach(item => {
const temp = { const temp = {
fileType: 1, fileType: 1,
fileUrl: item fileUrl: item

View File

@ -387,7 +387,6 @@ export default {
label: '设备图片', label: '设备图片',
prop: 'files2', prop: 'files2',
fileType: 1, fileType: 1,
uploadTips: true
}, },
], ],
[{ input: true, label: '备注', prop: 'remark' }], [{ input: true, label: '备注', prop: 'remark' }],

View File

@ -161,7 +161,7 @@ export default {
{ {
upload: true, upload: true,
label: '上传资料', label: '上传资料',
prop: 'files' prop: 'files',
}, },
], ],
[{ input: true, label: '备注', prop: 'remark' }], [{ input: true, label: '备注', prop: 'remark' }],

View File

@ -186,8 +186,8 @@ export default {
code: '', code: '',
planProductId: '', planProductId: '',
specifications: '', specifications: '',
planStartTime: undefined, planStartTime: '',
planFinishTime: undefined, planFinishTime: '',
planAssignQuantity: 0, planAssignQuantity: 0,
planQuantity: 0, planQuantity: 0,
processFlowId: '', processFlowId: '',
@ -248,31 +248,7 @@ export default {
this.dataForm.materialMethod = 1 this.dataForm.materialMethod = 1
} }
}, },
reset() {
this.dataForm = {
id: undefined,
workOrderId: '',
name: '',
code: '',
planProductId: '',
specifications: '',
planStartTime: undefined,
planFinishTime: undefined,
planAssignQuantity: 0,
planQuantity: 0,
processFlowId: '',
materialMethod: 1,
triggerOrigin: 1,
priority: '',
productLineIds: [],
type: '',
workers: '',
roomNameDict: '',
status: 1
}
},
init(id) { init(id) {
this.reset();
this.dataForm.id = id || ""; this.dataForm.id = id || "";
this.visible = true; this.visible = true;
if (this.urlOptions.getOption) { if (this.urlOptions.getOption) {
@ -280,7 +256,6 @@ export default {
} }
this.$nextTick(() => { this.$nextTick(() => {
this.$refs["dataForm"].resetFields(); this.$refs["dataForm"].resetFields();
console.log('222', this.dataForm)
this.planStartTime = '' this.planStartTime = ''
this.planFinishTime = '' this.planFinishTime = ''
if (this.dataForm.id) { if (this.dataForm.id) {
@ -289,12 +264,6 @@ export default {
if (this.dataForm.priority !== undefined) { if (this.dataForm.priority !== undefined) {
this.dataForm.priority = String(this.dataForm.priority) this.dataForm.priority = String(this.dataForm.priority)
} }
if (this.dataForm.planStartTime === 0) {
this.dataForm.planStartTime = undefined
}
if (this.dataForm.planFinishTime === 0) {
this.dataForm.planFinishTime = undefined
}
if (this.dataForm.roomNameDict !== undefined) { if (this.dataForm.roomNameDict !== undefined) {
this.dataForm.roomNameDict = String(this.dataForm.roomNameDict) this.dataForm.roomNameDict = String(this.dataForm.roomNameDict)
} }

View File

@ -2,19 +2,16 @@
* @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-22 08:53:20 * @LastEditTime: 2024-03-15 15:34:58
* @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="false"
class="drawer" class="drawer"
size="55%" size="55%">
:before-close="beforeClose"
@closed="$emit('destroy')"
>
<small-title slot="title" :no-padding="true"> <small-title slot="title" :no-padding="true">
{{ '分配产量' }} {{ '分配产量' }}
</small-title> </small-title>
@ -55,21 +52,18 @@
<el-date-picker <el-date-picker
v-model="dataForm.finishProduceTime" v-model="dataForm.finishProduceTime"
type="datetime" type="datetime"
value-format="timestamp" value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择实际生产完成时间" /> placeholder="选择日期时间" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</div> </div>
<div v-show="!isdetail" class="attr-list"> <div class="attr-list">
<!-- <el-button v-show="!isdetail" type="success" size="small" style="float: right" @click="addRow()">添加一行</el-button> --> <!-- <el-button v-show="!isdetail" type="success" size="small" style="float: right" @click="addRow()">添加一行</el-button> -->
<el-form ref="tableForm" :model="form" style="padding: 0">
<el-table <el-table
ref="table" :data="tableData"
:data="form.tableData"
row-key="id"
style="width: 100%"> style="width: 100%">
<el-table-column type="index" label="序号" /> <el-table-column type="index" label="序号" />
<el-table-column prop="orderName" label="订单名称" /> <el-table-column prop="orderName" label="订单名称" />
@ -77,25 +71,41 @@
<el-table-column prop="priority" label="优先级" /> <el-table-column prop="priority" label="优先级" />
<el-table-column prop="planAssignmentQuantity" label="计划分配数量" > <el-table-column prop="planAssignmentQuantity" label="计划分配数量" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-form-item prop="planAssignmentQuantity"> <el-input v-model="scope.row.planAssignmentQuantity" :disabled="scope.row.isallocation"></el-input>
<el-input v-model.number="scope.row.planAssignmentQuantity" :disabled="scope.row.isallocation"></el-input>
</el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="*实际分配数量"> <el-table-column prop="actualAssignmentQuantity" label="实际分配数量">
<template slot-scope="scope"> <template slot-scope="scope">
<el-form-item :prop="`tableData.${scope.$index}.actualAssignmentQuantity`" :rules="[{ required: true, message: '实际分配数量不能为空', trigger: 'blur' }]"> <el-input v-model="scope.row.actualAssignmentQuantity" :disabled="scope.row.isallocation"></el-input>
<el-input v-model.number="scope.row.actualAssignmentQuantity" :disabled="scope.row.isallocation"></el-input>
</el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column label="操作"> <el-table-column label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" size="small" @click="saveData(scope.row)">保存</el-button> <el-button type="text" size="small" @click="saveData(scope.row)">保存</el-button>
<!-- <el-tooltip v-if="!scope.row.isEdit" placement="top" content="编辑">
<el-button
type="text"
:style="{color:'#0B58FF'}"
size="mini"
@click="edit(scope.row)"
>
<svg-icon style="width: 18px; height: 18px" class="item-icon" icon-class="edit" />
</el-button>
</el-tooltip> -->
<!-- <el-tooltip placement="top" content="删除">
<el-button
type="text"
:style="{color:'#FF5454'}"
size="mini"
@click="deleteDetail(scope.row)"
>
<svg-icon style="width: 18px; height: 18px" class="item-icon" icon-class="table_delete" />
</el-button>
</el-tooltip> -->
</template> </template>
</el-table-column> --> </el-table-column>
</el-table> </el-table>
</el-form>
<pagination <pagination
v-show="listQuery.total > 0" v-show="listQuery.total > 0"
:total="listQuery.total" :total="listQuery.total"
@ -124,7 +134,7 @@
<script> <script>
import basicAdd from '../../core/mixins/basic-add'; import basicAdd from '../../core/mixins/basic-add';
import { getConOrderList, updateConCoreWOr, updateBatchConCoreWOr, getCoreWO, statusChange } from '@/api/base/coreWorkOrder'; import { getConOrderList, updateConCoreWOr, getCoreWO, statusChange } 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';
@ -148,10 +158,6 @@ export default {
code: undefined, code: undefined,
productId: '', productId: '',
remark: undefined, remark: undefined,
},
form: {
tableData: []
}, },
productList: [], productList: [],
materialAttrList: [], materialAttrList: [],
@ -168,44 +174,13 @@ export default {
}, },
mounted() {}, mounted() {},
methods: { methods: {
beforeClose(done) {
// if (this.mode.includes('edit')) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
// //
dataFormSubmit() { dataFormSubmit() {
// console.log('', this.$refs['table'])
console.log('nihc ', this.form.tableData)
// this.$refs['tableForm'].validate((valid) => {
// if (valid) {
// alert('!');
// } else {
// alert('!');
// return false;
// }
// });
this.$refs["dataForm"].validate((valid) => { this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.$refs['tableForm'].validate((valid) => {
if (!valid) { if (!valid) {
return false; return false;
} }
// //
console.log('aaaaaaa', this.form.tableData)
//
let num = 0
const tempList = this.form.tableData.map((item) => {
item.workOrderId = this.dataForm.id
num += item.actualAssignmentQuantity
return item
})
if (num <= this.dataForm.actualQuantity) {
if (this.dataForm.id) { if (this.dataForm.id) {
statusChange({ statusChange({
id: this.dataForm.id, id: this.dataForm.id,
@ -214,31 +189,11 @@ export default {
actualQuantity: this.dataForm.actualQuantity actualQuantity: this.dataForm.actualQuantity
}).then(response => { }).then(response => {
this.$modal.msgSuccess("操作成功!工单状态稍后将会更新!"); this.$modal.msgSuccess("操作成功!工单状态稍后将会更新!");
this.saveData(tempList)
this.visible = false; this.visible = false;
this.$emit("refreshDataList"); this.$emit("refreshDataList");
}); });
return; return;
} }
} else {
this.$message.error('实际分配数量超过实际生产数量!')
}
console.log('2111', num, tempList)
});
//
// 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.urlOptions.createURL(this.dataForm).then(response => {
// this.$modal.msgSuccess(""); // this.$modal.msgSuccess("");
@ -254,14 +209,30 @@ export default {
edit(row) { edit(row) {
row.isEdit = true row.isEdit = true
}, },
saveData(list) { saveData(row) {
console.log('你好', list) if (row.actualAssignmentQuantity) {
if (row.id) {
// updateMaterialPBDet({
// ...row
// }).then((response) => {
// this.$modal.msgSuccess('');
// // this.visible = false;
// this.getList();
// });
// return;
}
// //
updateBatchConCoreWOr(list).then((response) => { updateConCoreWOr({
...row,
workOrderId: this.dataForm.id
}).then((response) => {
this.$modal.msgSuccess('分配成功'); this.$modal.msgSuccess('分配成功');
// this.visible = false; // this.visible = false;
this.getList(); this.getList();
}); });
} else {
this.$message.warning('请填写实际分配数量');
}
}, },
getList() { getList() {
// //
@ -274,7 +245,6 @@ export default {
item.isallocation = item.actualAssignmentQuantity ? true : false item.isallocation = item.actualAssignmentQuantity ? true : false
return item return item
}); });
this.$set(this.form, 'tableData', this.tableData)
this.listQuery.total = response.data.length; this.listQuery.total = response.data.length;
}); });
}, },

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-21 16:52:46 * @LastEditTime: 2024-03-15 15:40:24
* @Description: * @Description:
--> -->
<template> <template>
@ -16,13 +16,7 @@
<!-- <small-title slot="title" :no-padding="true"> <!-- <small-title slot="title" :no-padding="true">
{{ isdetail ? '详情' : !dataForm.id ? '新增' : '编辑' }} {{ isdetail ? '详情' : !dataForm.id ? '新增' : '编辑' }}
</small-title> --> </small-title> -->
<div v-show="workOrderButton.length" style="position: relative;padding-right: 90px;"> <div v-show="workOrderButton.length" class="buttonDiv">
<topTabVue :orderIdList='workOrderButton' :orderId="workorderId" @emitFun='toggleName' />
<el-button type="primary" plain size="small"
style="position: absolute;right: 0; top: 0;height: 48px;font-size: 14px;" @click="goback"><svg-icon
icon-class="return" /> 返回</el-button>
</div>
<!-- <div v-show="workOrderButton.length" class="buttonDiv">
<div style="display: flex; width: 100%;"> <div style="display: flex; width: 100%;">
<el-button v-show="showScroll" type="text" style="width: 30px; background: white; margin-right: 8px" @click="scrollLeft" icon="el-icon-caret-left"></el-button> <el-button v-show="showScroll" type="text" style="width: 30px; background: white; margin-right: 8px" @click="scrollLeft" icon="el-icon-caret-left"></el-button>
<div ref="content" class="scrollDiv"> <div ref="content" class="scrollDiv">
@ -33,7 +27,7 @@
<svg-icon icon-class="return"/>返回 <svg-icon icon-class="return"/>返回
</el-button> </el-button>
</div> </div>
</div> --> </div>
<div class="content"> <div class="content">
<div class="card"> <div class="card">
<div class="boxTitle"> <div class="boxTitle">
@ -163,7 +157,7 @@
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
<div class="blodTip">废片数量</div> <div class="blodTip">废片数量</div>
<div class="lightTip">{{ dataForm.nokNum }}</div> <div class="lightTip">{{ dataForm.nokQuantity }}</div>
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
<div class="blodTip">检测瑕疵数</div> <div class="blodTip">检测瑕疵数</div>
@ -228,13 +222,12 @@
<script> <script>
// import basicAdd from '../../core/mixins/basic-add'; // import basicAdd from '../../core/mixins/basic-add';
import { getCoreWO, getCoreWOMaPage, getlistByProductId, getlistByFlowId, getConOrderList, getCoreWOListById } from "@/api/base/coreWorkOrder"; import { getCoreWO, getCoreWOMaPage, getConOrderList, getCoreWOListById } from "@/api/base/coreWorkOrder";
// import { orderList } from "@/api/base/orderManage"; // import { orderList } from "@/api/base/orderManage";
import { getProcessFlowList } from '@/api/base/orderManage' import { getProcessFlowList } from '@/api/base/orderManage'
import SmallTitle from './SmallTitle'; import SmallTitle from './SmallTitle';
import { publicFormatter } from "@/utils/dict"; import { publicFormatter } from "@/utils/dict";
import { parseTime } from '@/utils/ruoyi' import { parseTime } from '@/utils/ruoyi'
import topTabVue from '../../order/base/orderManage/components/topTab.vue';
const tableBtn = [ const tableBtn = [
{ {
@ -272,9 +265,9 @@ const tableProps = [
const tableProps1 = [ const tableProps1 = [
{ {
prop: 'materialName', prop: 'material',
label: '物料名称' label: '物料名称',
// filter: publicFormatter('material') filter: publicFormatter('material')
}, },
{ {
prop: 'unit', prop: 'unit',
@ -292,7 +285,7 @@ const tableProps1 = [
]; ];
export default { export default {
components: { SmallTitle, topTabVue }, components: { SmallTitle },
data() { data() {
return { return {
tableBtn, tableBtn,
@ -315,7 +308,6 @@ export default {
dataForm: {}, dataForm: {},
orderList: [], orderList: [],
materialList: [], materialList: [],
workorderId: '',
// orderArray: [], // orderArray: [],
visible: false, visible: false,
isdetail: false, isdetail: false,
@ -339,15 +331,13 @@ export default {
name: work.name name: work.name
} }
}) })
this.workorderId = this.workOrderButton[0].id const contentRef = this.$refs.content
console.log('wawa ew', this.workorderId, this.workOrderButton) if (contentRef.scrollWidth > contentRef.clientWidth) {
// const contentRef = this.$refs.content this.showScroll = true
// if (contentRef.scrollWidth > contentRef.clientWidth) { } else {
// this.showScroll = true this.showScroll = false
// } else { }
// this.showScroll = false console.log(contentRef.scrollWidth, contentRef.clientWidth)
// }
// console.log(contentRef.scrollWidth, contentRef.clientWidth)
this.init(this.workOrderButton[0].id, true) this.init(this.workOrderButton[0].id, true)
}) })
} else { } else {
@ -355,11 +345,6 @@ export default {
} }
}, },
methods: { methods: {
// tab
toggleName(val) {
this.workorderId = val
this.init(val, true)
},
scrolRight() { scrolRight() {
// let contentRef = this.$refs.content // let contentRef = this.$refs.content
// console.log('', contentRef.scrollWidth, contentRef.clientWidth) // console.log('', contentRef.scrollWidth, contentRef.clientWidth)
@ -457,38 +442,17 @@ export default {
// 使 // 使
console.log() console.log()
if (this.dataForm.id) { if (this.dataForm.id) {
if (this.dataForm.materialMethod === 1) { getCoreWOMaPage({
// workOrderId: this.dataForm.id,
getlistByProductId({ pageNo: 1,
id: this.dataForm.planProductId pageSize: 100
}).then((response) => { }).then((response) => {
this.materialList = response.data.map((item) => { this.materialList = response.data.records.map((item) => {
item.remaining = item?.num * this.dataForm.remainingQuantity || 0 item.remaining = item?.num * this.dataForm.remainingQuantity || 0
return item return item
}); });
// this.listQuery.total = response.data.length;
}); });
} else {
//
getlistByFlowId({
id: this.dataForm.processFlowId
}).then((response) => {
this.materialList = response.data.map((item) => {
item.remaining = item?.num * this.dataForm.remainingQuantity || 0
return item
});
});
}
// getCoreWOMaPage({
// workOrderId: this.dataForm.id,
// pageNo: 1,
// pageSize: 100
// }).then((response) => {
// this.materialList = response.data.records.map((item) => {
// item.remaining = item?.num * this.dataForm.remainingQuantity || 0
// return item
// });
// // this.listQuery.total = response.data.length;
// });
} }
// //
// orderList({ // orderList({

View File

@ -43,8 +43,7 @@
<allocation <allocation
v-if="allocationVisible" v-if="allocationVisible"
ref="allocation" ref="allocation"
@refreshDataList="searchStatus" @refreshDataList="getDataList" />
@destroy="allocationVisible = false" />
</div> </div>
</template> </template>
@ -354,11 +353,6 @@ export default {
this.getDataList() this.getDataList()
}, },
methods: { methods: {
searchStatus() {
setTimeout(() => {
this.getDataList()
}, 20000)
},
getWorkOrder() { getWorkOrder() {
getCoreWOList().then(res => { getCoreWOList().then(res => {
this.formConfig[0].selectOptions = res.data.map(item => { this.formConfig[0].selectOptions = res.data.map(item => {
@ -450,7 +444,7 @@ export default {
type: 'success', type: 'success',
duration: 1500, duration: 1500,
onClose: () => { onClose: () => {
this.searchStatus(); this.getDataList();
// //
// if (param.status === 4) { // if (param.status === 4) {
// this.allocationOrder(param); // this.allocationOrder(param);
@ -484,7 +478,7 @@ export default {
// id // id
this.$refs.allocation.init(val.id); this.$refs.allocation.init(val.id);
} else { } else {
this.$refs.allocation.init(val.id, true); this.$refs.allocation.init();
} }
}); });
}) })

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-21 15:21:32 * @LastEditTime: 2024-02-21 09:41:39
* @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">
@ -257,17 +256,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 listData({ // const res = await listData({

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-21 14:39:52 * @LastEditTime: 2023-11-27 19:50:36
* @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="70%"> size="70%">
<small-title slot="title" :no-padding="true"> <small-title slot="title" :no-padding="true">
@ -197,17 +196,6 @@ export default {
this.getDict() this.getDict()
}, },
methods: { methods: {
beforeClose(done) {
if (!this.isdetail) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
} else {
done()
}
},
handleClick(raw) { handleClick(raw) {
if (raw.type === 'delete') { if (raw.type === 'delete') {
this.deleteDetail(raw.data); this.deleteDetail(raw.data);
@ -258,7 +246,7 @@ export default {
}); });
}, },
initData() { initData() {
this.tableData.splice(0); // this.materialAttrList.splice(0);
this.listQuery.total = 0; this.listQuery.total = 0;
}, },
deleteDetail(raw) { deleteDetail(raw) {
@ -296,18 +284,18 @@ export default {
}); });
}, },
// //
// addRow() { addRow() {
// const row = { const row = {
// bomId: this.dataForm.id, bomId: this.dataForm.id,
// materialId: '', materialId: '',
// num: 0, num: 0,
// materialCode: undefined, materialCode: undefined,
// unit: undefined, unit: undefined,
// remark: '', remark: '',
// isEdit: true isEdit: true
// } }
// this.tableData.push(row) this.tableData.push(row)
// }, },
init(id, isdetail) { init(id, isdetail) {
this.initData(); this.initData();
this.isdetail = isdetail || false; this.isdetail = isdetail || false;

View File

@ -17,7 +17,6 @@
:table-props="tableProps" :table-props="tableProps"
:table-data="tableData" :table-data="tableData"
@emitFun="handleEmitFun" @emitFun="handleEmitFun"
:max-height="tableH"
/> />
</div> </div>
</div> </div>
@ -46,7 +45,6 @@ export default {
arr: [], arr: [],
spanArr: [], spanArr: [],
timeList: [], timeList: [],
tableH: this.tableHeight(240),
tableData: [], tableData: [],
tableProps: [], tableProps: [],
spanInfo: {}, spanInfo: {},
@ -56,9 +54,6 @@ export default {
}, },
computed: {}, computed: {},
mounted() { mounted() {
window.addEventListener('resize', () => {
this.tableH = this.tableHeight(240)
})
this.getList(); this.getList();
}, },
methods: { methods: {
@ -153,9 +148,6 @@ export default {
lineData['spec'] = Array.from(new Set(specs)).join(',') lineData['spec'] = Array.from(new Set(specs)).join(',')
this.tableData.push(lineData) this.tableData.push(lineData)
}) })
this.tableData.forEach((item, index) => {
item._index = index + 1
})
console.log('打印', this.tableData) console.log('打印', this.tableData)
// this.setRowSpan(sectionArr) // this.setRowSpan(sectionArr)
// console.log('', sectionArr) // console.log('', sectionArr)
@ -184,26 +176,22 @@ export default {
console.log('看看数据', res) console.log('看看数据', res)
this.ResData = res.data this.ResData = res.data
this.arr = [ this.arr = [
{
prop: '_index',
label: '序号'
},
{ {
prop: 'proLineName', prop: 'proLineName',
label: '生产线', label: '生产线',
// fixed: 'left', fixed: 'left',
'show-overflow-tooltip': true 'show-overflow-tooltip': true
}, },
{ {
prop: 'workOrderName', prop: 'workOrderName',
label: '当前工单', label: '当前工单',
// fixed: 'left', fixed: 'left',
'show-overflow-tooltip': true 'show-overflow-tooltip': true
}, },
{ {
prop: 'spec', prop: 'spec',
label: '产品规格', label: '产品规格',
// fixed: 'left', fixed: 'left',
'show-overflow-tooltip': true 'show-overflow-tooltip': true
} }
] ]

View File

@ -26,8 +26,7 @@
:page="queryParams.pageNo" :page="queryParams.pageNo"
:limit="queryParams.pageSize" :limit="queryParams.pageSize"
:table-data="list" :table-data="list"
@emitFun="handleEmitFun" @emitFun="handleEmitFun"></base-table>
:max-height="tableH"></base-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="'\u3000柱状图\u3000'" name="graph"> <el-tab-pane :label="'\u3000柱状图\u3000'" name="graph">
<div <div
@ -58,7 +57,6 @@ export default {
const [y, m, d] = [now.getFullYear(), now.getMonth(), now.getDate()]; const [y, m, d] = [now.getFullYear(), now.getMonth(), now.getDate()];
return { return {
dialogVisible: false, dialogVisible: false,
tableH: this.tableHeight(260),
urls: { urls: {
page: '/analysis/equipment-analysis/quality', page: '/analysis/equipment-analysis/quality',
}, },
@ -157,12 +155,12 @@ export default {
}, },
{ {
// width: 160, // width: 160,
prop: 'totalQuantity', prop: 'inQuantity',
label: '加工数量', label: '加工数量',
}, },
{ {
// width: 160, // width: 160,
prop: 'okQuantity', prop: 'outQuantity',
label: '合格数量', label: '合格数量',
}, },
{ {
@ -254,9 +252,6 @@ export default {
this.fillProductOptions(); this.fillProductOptions();
}, },
mounted() { mounted() {
window.addEventListener('resize', () => {
this.tableH = this.tableHeight(260)
})
this.$refs['search-bar'].headBtnClick('search'); this.$refs['search-bar'].headBtnClick('search');
}, },
methods: { methods: {

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-20 17:58:29 * @LastEditTime: 2024-03-18 15:47:20
* @Description: * @Description:
--> -->
<template> <template>
@ -36,8 +36,7 @@
<el-select <el-select
v-model="dataForm.departmentId" v-model="dataForm.departmentId"
:disabled="isdetail" :disabled="isdetail"
:placeholder="`请选择部门`" :placeholder="`请选择部门`">
style="width: 100%">
<el-option <el-option
v-for="opt in departmentOptions" v-for="opt in departmentOptions"
:key="opt.id" :key="opt.id"
@ -91,32 +90,33 @@
type="datetime" type="datetime"
:disabled="isdetail" :disabled="isdetail"
placeholder="请选择巡检时间" placeholder="请选择巡检时间"
value-format="timestamp" value-format="timestamp"></el-date-picker>
style="width: 100%" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</div> </div>
<div v-if="idAttrShow"> <div class="attr-list" v-if="idAttrShow">
<small-title> <small-title
style="margin: 16px 0; padding-left: 8px"
:no-padding="true">
巡检内容 巡检内容
</small-title> </small-title>
<div v-if="!isdetail" style="display: flex"> <div v-if="!isdetail">
<div>
<SearchBar <SearchBar
:formConfigs="searchBarFormConfig" :formConfigs="searchBarFormConfig"
ref="attr-search-bar" ref="attr-search-bar"
@headBtnClick="handleSearchBarBtnClick" /> @headBtnClick="handleSearchBarBtnClick" />
<!-- <div class="action_btn"> --> </div>
<el-button type="text" class="action_btn" @click="addNew()"> <!-- <template>
<span style="display: inline-block;"> <span style="display: inline-block;" @click="addNew()">
<svg-icon style="width: 14px; height: 14px" class="item-icon" icon-class="table_add" /> <svg-icon style="width: 14px; height: 14px" class="item-icon" icon-class="table_add" />
<span class="add">添加内容</span> <span class="add">添加</span>
</span> </span>
</el-button> </template> -->
<!-- </div> -->
</div> </div>
<base-table <base-table
:table-props="tableProps" :table-props="tableProps"
@ -229,14 +229,14 @@ export default {
btnName: '查询', btnName: '查询',
name: 'search', name: 'search',
color: 'primary', color: 'primary',
},
{
type: 'button',
btnName: '新增',
name: 'add',
color: 'success',
plain: true
} }
// {
// type: 'button',
// btnName: '',
// name: 'add',
// color: 'success',
// plain: true
// }
], ],
listQuery: { listQuery: {
pageSize: 10, pageSize: 10,
@ -519,6 +519,10 @@ export default {
flex-direction: column; 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;
@ -547,6 +551,11 @@ export default {
padding-right: 10px; /* 调整滚动条样式 */ padding-right: 10px; /* 调整滚动条样式 */
} }
.drawer >>> .el-form,
.drawer >>> .attr-list {
padding: 0 16px;
}
.drawer-body__footer { .drawer-body__footer {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
@ -554,7 +563,7 @@ export default {
} }
.action_btn { .action_btn {
float: right; float: right;
/* margin: 0 15px 0; */ margin: -32px 15px 0;
font-size: 14px; font-size: 14px;
} }
.add { .add {

View File

@ -120,7 +120,7 @@ export default {
tableProps: [ tableProps: [
{ prop: 'name', label: '巡检单名称' }, { prop: 'name', label: '巡检单名称' },
{ prop: 'department', label: '部门' }, { prop: 'department', label: '部门' },
{ prop: 'planCheckTime', label: '巡检时间', filter: parseTime }, { prop: 'actualCheckTime', label: '巡检时间', filter: parseTime },
{ prop: 'groupClass', label: '班次' }, { prop: 'groupClass', label: '班次' },
// { prop: 'opt', label: '', name: '', subcomponent: btn }, // { prop: 'opt', label: '', name: '', subcomponent: btn },
{ prop: 'remark', label: '备注' } { prop: 'remark', label: '备注' }

View File

@ -66,7 +66,7 @@ import { deleteEqMaintainLog, exportMaintainLogExcel } from '@/api/equipment/bas
import AddContent from './addContent.vue'; import AddContent from './addContent.vue';
import { parseTime } from '../../../../core/mixins/code-filter'; import { parseTime } from '../../../../core/mixins/code-filter';
// const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'); const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss');
const btn = { const btn = {
name: 'tableBtn', name: 'tableBtn',
@ -129,22 +129,20 @@ export default {
// width: 180, // width: 180,
// filter: timeFilter, // filter: timeFilter,
// }, // },
{ prop: 'maintainOrderNumber', label: '设备保养单号', width: 170, showOverflowtooltip: true }, { prop: 'maintainOrderNumber', label: '设备保养单号' },
{ prop: 'planName', label: '保养计划名称', width: 150, showOverflowtooltip: true }, { prop: 'planName', label: '保养计划名称' },
{ prop: 'departmentName', label: '部门', width: 120, showOverflowtooltip: true }, { prop: 'departmentName', label: '部门' },
{ prop: 'lineName', label: '产线名', width: 120, showOverflowtooltip: true }, { prop: 'lineName', label: '产线名' },
{ prop: 'planStartTime', label: '计划开始时间', filter: parseTime, width: 150, showOverflowtooltip: true }, { prop: 'planStartTime', label: '计划开始时间', filter: timeFilter },
{ prop: 'planEndTime', label: '计划结束时间', filter: parseTime, width: 150, showOverflowtooltip: true }, { prop: 'planEndTime', label: '计划结束时间', filter: timeFilter },
{ prop: 'startTime', label: '实际开始时间', filter: parseTime, width: 150, showOverflowtooltip: true }, { prop: 'startTime', label: '实际开始时间', filter: timeFilter },
{ prop: 'endTime', label: '实际结束时间', filter: parseTime, width: 150, showOverflowtooltip: true }, { prop: 'endTime', label: '实际结束时间', filter: timeFilter },
// { prop: 'equipmentName', label: '' }, // { prop: 'equipmentName', label: '' },
// { prop: 'maintainWorker', label: '' }, // { prop: 'maintainWorker', label: '' },
{ {
prop: 'relatePlan', prop: 'relatePlan',
label: '保养计划类型', label: '保养计划类型',
filter: (v) => (v != null ? ['', '计划型', '非计划型'][v] : ''), filter: (v) => (v != null ? ['', '计划型', '非计划型'][v] : ''),
width: 170,
showOverflowtooltip: true
}, },
{ prop: 'opt', label: '详情', name: '详情', subcomponent: btn } { prop: 'opt', label: '详情', name: '详情', subcomponent: btn }
// { prop: 'maintainDuration', label: '(h)' }, // { prop: 'maintainDuration', label: '(h)' },

View File

@ -393,7 +393,7 @@
:file="file" :file="file"
:key="file.fileUrl" :key="file.fileUrl"
:disabled="disabled" :disabled="disabled"
@delete="!disabled && handleDeleteFile(file)" /> @delete="!disabled && handleDeleteFile(file, col.prop)" />
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -678,12 +678,10 @@ export default {
file.type === 'image/jpeg' || file.type === 'image/jpeg' ||
file.type === 'image/png' || file.type === 'image/png' ||
file.type === 'image/jpg'; file.type === 'image/jpg';
if (!isJPG) {
this.$modal.msgError('只能上传jpg/png文件!');
}
return isJPG; return isJPG;
}; };
return checkFileSize() && checkFileType(); return checkFileSize();
// return checkFileSize() && checkFileType();
}, },
// handlers // handlers
@ -739,6 +737,7 @@ export default {
fileType: prop == 'files' ? 2 : 1, fileType: prop == 'files' ? 2 : 1,
}); });
this.$modal.msgSuccess('上传成功'); this.$modal.msgSuccess('上传成功');
console.log('为我', this.form.files)
this.$emit('update', this.form); this.$emit('update', this.form);
}, },

View File

@ -92,21 +92,11 @@ export default {
}); });
if (code == 0) { if (code == 0) {
this.listLine = data; this.listLine = data;
} else {
this.listLine.splice(0);
}
//
const res = await this.$axios({
url: '/base/core-equipment/listAll',
});
if (res.code == 0) {
this.listEq = res.data;
return; return;
} }
this.listEq.splice(0); this.listLine.splice(0);
}, },
async getEquipmentByLineId(id) { async getEquipmentByLineId(id) {
if (id) {
const { data, code } = await this.$axios({ const { data, code } = await this.$axios({
url: '/base/core-equipment/listByLine', url: '/base/core-equipment/listByLine',
params: { params: {
@ -118,7 +108,6 @@ export default {
return; return;
} }
this.listEq.splice(0); this.listEq.splice(0);
}
}, },
handleSearch() { handleSearch() {
this.$emit('action', { this.$emit('action', {