This commit is contained in:
2024-07-18 11:17:04 +08:00
parent 0f70fe85c8
commit f043a6a0a2
10 changed files with 1727 additions and 1923 deletions

View File

@@ -1,10 +1,3 @@
<!--
* @Author: zhp
* @Date: 2023-11-06 15:15:30
* @LastEditTime: 2023-11-21 14:11:18
* @LastEditors: zhp
* @Description:
-->
<template>
<el-form
:model="dataForm"
@@ -18,7 +11,8 @@
<el-select
v-model="dataForm.workOrderId"
placeholder="请选择工单号"
style="width: 100%">
style="width: 100%"
:disabled="showDetail">
<el-option
v-for="dict in workOrderList"
:key="dict.id"
@@ -28,11 +22,12 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班组" prop="teamId">
<el-form-item label="班组" prop="teamId" :disabled="showDetail">
<el-select
v-model="dataForm.teamId"
placeholder="请选择班组"
style="width: 100%">
style="width: 100%"
:disabled="showDetail">
<el-option
v-for="dict in teamList"
:key="dict.id"
@@ -43,7 +38,10 @@
</el-col>
<el-col :span="12">
<el-form-item label="数量" prop="num" style="width: 100%">
<el-input v-model="dataForm.num" placeholder="请输入数量" />
<el-input
v-model="dataForm.num"
placeholder="请输入数量"
:disabled="showDetail" />
</el-form-item>
</el-col>
<el-col :span="12">
@@ -51,7 +49,8 @@
<el-select
v-model="dataForm.lineId"
placeholder="请选择产线"
style="width: 100%">
style="width: 100%"
:disabled="showDetail">
<el-option
v-for="dict in lineList"
:key="dict.id"
@@ -65,7 +64,8 @@
<el-select
v-model="dataForm.detId"
placeholder="请选择报废原因"
style="width: 100%">
style="width: 100%"
:disabled="showDetail">
<el-option
v-for="dict in detList"
:key="dict.id"
@@ -79,9 +79,11 @@
<el-date-picker
v-model="dataForm.logTime"
type="datetime"
label-format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
placeholder="选择日期"></el-date-picker>
placeholder="选择日期"
:disabled="showDetail"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -89,7 +91,8 @@
<el-select
v-model="dataForm.source"
placeholder="请选择来源"
style="width: 100%">
style="width: 100%"
:disabled="showDetail">
<el-option
v-for="dict in sourceList"
:key="dict.id"
@@ -100,13 +103,20 @@
</el-col>
<el-col :span="24">
<el-form-item label="描述" prop="description">
<el-input v-model="dataForm.description" placeholder="请输入描述" />
<el-input
v-model="dataForm.description"
placeholder="请输入描述"
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
:disabled="showDetail" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" placeholder="备注" />
<el-input
v-model="dataForm.remark"
placeholder="备注"
:disabled="showDetail" />
</el-form-item>
</el-col>
</el-row>
@@ -114,7 +124,6 @@
</template>
<script>
import basicAdd from '../../core/mixins/basic-add';
import {
createQualityScrapLog,
updateQualityScrapLog,
@@ -124,22 +133,12 @@ import {
getDetList,
getLineList,
} from '@/api/base/qualityScrapLog';
import { getList } from '@/api/base/qualityScrapType';
// import { getMaterialList } from "@/api/base/material";
// import { getList } from '@/api/base/qualityScrapType';
import moment from 'moment';
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
isGetCode: false,
// codeURL: getCode,
createURL: createQualityScrapLog,
updateURL: updateQualityScrapLog,
infoURL: getQualityScrapLog,
},
lineList: [],
typeList: [],
workOrderList: [],
detList: [],
teamList: [],
@@ -160,15 +159,12 @@ export default {
detId: undefined,
workOrderId: null,
teamId: undefined,
num: undefined,
num: null,
lineId: undefined,
description: undefined,
// description: undefined,
remark: undefined,
},
// materialList: [],
dataRule: {
// materialId: [{ required: true, message: "", trigger: "blur" }],
workOrderId: [
{ required: true, message: '工单号不能为空', trigger: 'change' },
],
@@ -181,79 +177,93 @@ export default {
{ required: true, message: '报废时间不能为空', trigger: 'change' },
],
},
showDetail: false,
};
},
mounted() {
this.getDict();
console.log('我看看', this.dataForm);
this.getCurrentTime();
this.getList();
},
methods: {
getCurrentTime() {
// new Date().Format("yyyy-MM-dd HH:mm:ss")
this.dataForm.logTime = new Date();
// this.dataForm.logTime = year + "-" + month + "-" + day;
console.log(this.dataForm.logTime);
init(id, show) {
this.showDetail = show ? true : false;
this.dataForm.id = id || undefined;
if (id) {
// 编辑
getQualityScrapLog(id).then((res) => {
console.log(res);
this.dataForm = res.data;
this.dataForm.logTime = res.data.logTime || null;
console.log('==================');
});
} else {
this.dataForm.logTime = moment().format('yyyy-MM-DD hh:mm:ss');
}
},
async getDict() {
// 表单提交
dataFormSubmit() {
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false;
}
// 修改的提交
if (this.dataForm.id) {
updateQualityScrapLog(this.dataForm).then((response) => {
this.$modal.msgSuccess('修改成功');
this.visible = false;
this.$emit('refreshDataList');
});
return;
}
// 添加的提交
createQualityScrapLog(this.dataForm).then((response) => {
this.$modal.msgSuccess('新增成功');
this.visible = false;
this.$emit('refreshDataList');
});
});
},
getList() {
// 物料列表
const res = await getList();
this.typeList = res.data;
getWorkOrderList().then((res) => {
console.log(res);
// console.log(response);
this.workOrderList = res.data.map((item) => {
return {
name: item.name,
id: item.id,
};
});
// console.log(this.formConfig[0].selectOptions);
// this.listQuery.total = response.data.total;
});
getLineList().then((res) => {
console.log(res);
// console.log(response);
this.lineList = res.data.map((item) => {
return {
name: item.name,
id: item.id,
};
});
// console.log(this.formConfig[0].selectOptions);
// this.listQuery.total = response.data.total;
});
getDetList().then((res) => {
console.log(res);
// console.log(response);
this.detList = res.data.map((item) => {
return {
name: item.content,
id: item.id,
};
});
// console.log(this.formConfig[0].selectOptions);
// this.listQuery.total = response.data.total;
});
getTeamList().then((res) => {
console.log(res);
// console.log(response);
this.teamList = res.data.map((item) => {
return {
name: item.name,
id: item.id,
};
});
// console.log(this.formConfig[0].selectOptions);
// this.listQuery.total = response.data.total;
});
},
// setMaterialCode() {
// const chooseM = this.materialList.filter(item => {
// return item.id === this.dataForm.materialId
// })
// this.dataForm.materialCode = chooseM[0].code
// }
formClear() {
this.$refs.dataForm.resetFields();
},
},
};
</script>

View File

@@ -1,284 +0,0 @@
<!--
* @Author: zhp
* @Date: 2023-11-06 15:15:30
* @LastEditTime: 2023-11-07 19:38:13
* @LastEditors: zhp
* @Description:
-->
<template>
<el-dialog
:visible.sync="dialogVisible"
width="50%"
:before-close="handleClose">
<small-title slot="title" :no-padding="true">
{{ '详情' }}
</small-title>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmit()"
label-width="auto">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="工单号" prop="workOrderId">
<el-select
v-model="dataForm.workOrderId"
placeholder="请选择工单号"
disabled>
<el-option
v-for="dict in workOrderList"
:key="dict.id"
:label="dict.name"
:value="dict.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="班组" prop="teamId">
<el-select
v-model="dataForm.teamId"
placeholder="请选择班组"
disabled>
<el-option
v-for="dict in teamList"
:key="dict.id"
:label="dict.name"
:value="dict.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="数量" prop="sum">
<el-input
v-model="dataForm.sum"
placeholder="请输入数量"
disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="产线" prop="lineId">
<el-select
v-model="dataForm.lineId"
placeholder="请选择产线"
disabled>
<el-option
v-for="dict in lineList"
:key="dict.id"
:label="dict.name"
:value="dict.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="报废原因" prop="detId">
<el-select
v-model="dataForm.detId"
placeholder="请选择报废原因"
disabled>
<el-option
v-for="dict in detList"
:key="dict.id"
:label="dict.name"
:value="dict.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="报废时间" prop="logTime">
<el-date-picker
v-model="dataForm.logTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
disabled
placeholder="选择日期"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="来源" prop="source">
<el-select
v-model="dataForm.source"
placeholder="请选择来源"
disabled>
<el-option
v-for="dict in sourceList"
:key="dict.id"
:label="dict.name"
:value="dict.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="描述" prop="description">
<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-col>
</el-row>
</el-form>
</el-dialog>
</template>
<script>
import basicAdd from '../../core/mixins/basic-add';
import {
createQualityScrapLog,
updateQualityScrapLog,
getQualityScrapLog,
getWorkOrderList,
getTeamList,
getDetList,
getLineList,
} from '@/api/base/qualityScrapLog';
import { getList } from '@/api/base/qualityScrapType';
import SmallTitle from './SmallTitle';
export default {
components: {
SmallTitle,
},
mixins: [basicAdd],
data() {
return {
urlOptions: {
isGetCode: false,
// codeURL: getCode,
createURL: createQualityScrapLog,
updateURL: updateQualityScrapLog,
infoURL: getQualityScrapLog,
},
lineList: [],
typeList: [],
workOrderList: [],
detList: [],
teamList: [],
sourceList: [
{
id: 1,
name: '手动',
},
{
id: 2,
name: '自动',
},
],
dialogVisible: false,
dataForm: {
id: undefined,
logTime: undefined,
source: 1,
detId: undefined,
workOrderId: null,
teamId: undefined,
num: undefined,
lineId: undefined,
description: undefined,
// description: undefined,
remark: undefined,
},
// materialList: [],
dataRule: {
// materialId: [{ required: true, message: "", trigger: "blur" }],
workOrderId: [
{ required: true, message: '工单号不能为空', trigger: 'change' },
],
num: [{ required: true, message: '数量不能为空', trigger: 'blur' }],
detId: [
{ required: true, message: '报废原因不能为空', trigger: 'change' },
],
logTime: [
{ required: true, message: '报废时间不能为空', trigger: 'change' },
],
},
};
},
mounted() {
// this.getDict()
console.log('我看看', this.dataForm);
this.getCurrentTime();
},
methods: {
init() {
this.dialogVisible = true;
},
getCurrentTime() {
// new Date().Format("yyyy-MM-dd HH:mm:ss")
this.dataForm.logTime = new Date();
// this.dataForm.logTime = year + "-" + month + "-" + day;
console.log(this.dataForm.logTime);
},
// async getDict() {
// // 物料列表
// const res = await getList()
// this.typeList = res.data
// getWorkOrderList().then((res) => {
// console.log(res);
// // console.log(response);
// this.workOrderList = res.data.map((item) => {
// return {
// name: item.name,
// id: item.id
// }
// })
// // console.log(this.formConfig[0].selectOptions);
// // this.listQuery.total = response.data.total;
// })
// getLineList().then((res) => {
// console.log(res);
// // console.log(response);
// this.lineList = res.data.map((item) => {
// return {
// name: item.name,
// id: item.id
// }
// })
// // console.log(this.formConfig[0].selectOptions);
// // this.listQuery.total = response.data.total;
// })
// getDetList().then((res) => {
// console.log(res);
// // console.log(response);
// this.workOrderList = res.data.map((item) => {
// return {
// name: item.name,
// id: item.id
// }
// })
// // console.log(this.formConfig[0].selectOptions);
// // this.listQuery.total = response.data.total;
// })
// getTeamList().then((res) => {
// console.log(res);
// // console.log(response);
// this.teamList = res.data.map((item) => {
// return {
// name: item.name,
// id: item.id
// }
// })
// // console.log(this.formConfig[0].selectOptions);
// // this.listQuery.total = response.data.total;
// })
// },
// setMaterialCode() {
// const chooseM = this.materialList.filter(item => {
// return item.id === this.dataForm.materialId
// })
// this.dataForm.materialCode = chooseM[0].code
// }
},
};
</script>

View File

@@ -26,24 +26,32 @@
<base-dialog
:dialogTitle="addOrEditTitle"
:dialogVisible="addOrUpdateVisible"
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width="50%">
<add-or-update
ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update>
<el-row slot="footer" type="flex" justify="end">
<el-col :span="12">
<el-button size="small" class="btnTextStyle" @click="handleCancel">
{{ this.addOrEditTitle === '详情' ? '关闭' : '取消' }}
</el-button>
<el-button
v-show="this.addOrEditTitle !== '详情'"
type="primary"
size="small"
class="btnTextStyle"
@click="handleConfirm">
确定
</el-button>
</el-col>
</el-row>
</base-dialog>
<detail-or-update
v-if="detailOrUpdateVisible"
ref="detailOrUpdate"
@refreshDataList="successSubmit" />
</div>
</template>
<script>
import AddOrUpdate from './add-or-updata';
import DetailOrUpdate from './detail-or-updata';
import basicPage from '../../core/mixins/basic-page';
import { parseTime } from '../../core/mixins/code-filter';
@@ -114,7 +122,6 @@ export default {
: undefined,
].filter((v) => v),
tableData: [],
detailOrUpdateVisible: false,
formConfig: [
{
type: 'select',
@@ -152,11 +159,11 @@ export default {
plain: true,
},
],
showDetail: false,
};
},
components: {
AddOrUpdate,
DetailOrUpdate,
},
created() {
this.getDict();
@@ -164,10 +171,10 @@ export default {
methods: {
otherMethods(val) {
if (val.type === 'detail') {
this.detailOrUpdateVisible = true;
// this.addOrEditTitle = "详情";
this.addOrEditTitle = '详情';
this.addOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.detailOrUpdate.init(val.data.id, true);
this.$refs.addOrUpdate.init(val.data.id, true);
});
}
},