质量管理

This commit is contained in:
‘937886381’ 2023-12-15 16:27:30 +08:00
parent f5bb5f27b4
commit 83fc835c51
15 changed files with 501 additions and 208 deletions

View File

@ -1,7 +1,7 @@
###
# @Author: Do not edit
# @Date: 2023-08-29 09:40:39
# @LastEditTime: 2023-12-13 16:52:10
# @LastEditTime: 2023-12-15 15:24:52
# @LastEditors: zhp
# @Description:
###
@ -13,7 +13,7 @@ VUE_APP_TITLE = MES系统
# 芋道管理系统/开发环境
# VUE_APP_BASE_API = 'http://100.64.0.26:48082'
# VUE_APP_BASE_API = 'http://192.168.0.33:48082'
VUE_APP_BASE_API = 'http://192.168.0.33:48082'
# VUE_APP_BASE_API = 'http://192.168.4.173:48080'
# VUE_APP_BASE_API = 'http://192.168.2.173:48080'
# VUE_APP_BASE_API = 'http://192.168.1.49:48082'
@ -21,6 +21,7 @@ VUE_APP_TITLE = MES系统
# VUE_APP_BASE_API = 'http://192.168.4.159:48080'
# VUE_APP_BASE_API = 'http://192.168.1.56:48082'
# VUE_APP_BASE_API = 'http://192.168.1.62:48082'
# VUE_APP_BASE_API = 'http://192.168.1.78:48082'
# 积木报表指向地址
VUE_APP_JIMU_API = 'http://192.168.0.33:48082'

View File

@ -2,7 +2,7 @@
/*
* @Author: zhp
* @Date: 2023-11-06 15:38:12
* @LastEditTime: 2023-12-08 16:08:35
* @LastEditTime: 2023-12-15 15:29:16
* @LastEditors: zhp
* @Description:
*/
@ -99,3 +99,27 @@ export function getMaterialCheckList(query) {
params: query
})
}
export function createQualityHotMaterialDet(query){
return request({
url: '/base/quality-hot-material-det/create',
method: 'post',
data: query
})
}
export function updateQualityHotMaterialDet(query){
return request({
url: '/base/quality-hot-material-det/listbyfilter',
method: 'put',
data: query
})
}
export function getQualityHotMaterialDetList(query){
return request({
url: '/base/quality-hot-material-det/listbyfilter',
method: 'get',
params: query
})
}

View File

@ -1,7 +1,7 @@
/*
* @Author: zhp
* @Date: 2023-12-04 14:10:37
* @LastEditTime: 2023-12-13 16:03:46
* @LastEditTime: 2023-12-14 10:06:03
* @LastEditors: zhp
* @Description:
*/
@ -19,7 +19,7 @@ export function createQualityInspectionBoxBtn(data) {
// 更新安灯按钮16键对应
export function updateQualityInspectionBoxBtn(data) {
return request({
url: '/base/quality-inspection-box-btn/update',
url: '/base/quality-inspection-box-btn/updateBatch',
method: 'put',
data: data
})
@ -44,7 +44,7 @@ export function getQualityInspectionBoxBtn(id) {
// 获得安灯按钮16键对应分页
export function getQualityInspectionBoxBtnPage(query) {
return request({
url: '/base/quality-inspection-box-btn/page',
url: '/base/quality-inspection-box-btn/listGroupByLineSection',
method: 'get',
params: query
})

View File

@ -1,7 +1,7 @@
/*
* @Author: zhp
* @Date: 2023-12-12 13:49:02
* @LastEditTime: 2023-12-13 15:52:11
* @LastEditTime: 2023-12-14 14:21:43
* @LastEditors: zhp
* @Description:
*/
@ -39,3 +39,19 @@ export function getAutoDeliveDataList(query) {
data: query,
})
}
export function updateAutoDeliveDataList(query) {
return request({
url: '/base/report-auto-delive/update',
method: 'put',
data: query,
})
}
export function updateSumAutoDeliveDataList(query) {
return request({
url: '/base/report-auto-delive/updatePlus',
method: 'put',
data: query,
})
}

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1702606455297" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1590" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M614.4 59.136l238.592 137.728a204.8 204.8 0 0 1 102.4 177.3568v275.5584a204.8 204.8 0 0 1-102.4 177.3568L614.4 964.864a204.8 204.8 0 0 1-204.8 0l-238.592-137.728a204.8 204.8 0 0 1-102.4-177.3568V374.2208a204.8 204.8 0 0 1 102.4-177.3568L409.6 59.136a204.8 204.8 0 0 1 204.8 0z" fill="#EE1609" p-id="1591"></path><path d="M471.04 261.9904v315.392a40.96 40.96 0 1 0 81.92 0v-315.392a40.96 40.96 0 1 0-81.92 0z" fill="#FFFFFF" p-id="1592"></path><path d="M512 706.56m-51.2 0a51.2 51.2 0 1 0 102.4 0 51.2 51.2 0 1 0-102.4 0Z" fill="#FFFFFF" p-id="1593"></path></svg>

After

Width:  |  Height:  |  Size: 895 B

View File

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1702606467176" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1824" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128"><path d="M622.812817 29.238717l258.222014 146.7694A217.658893 217.658893 0 0 1 991.847648 365.004111v293.666761c0 77.991238-42.226593 150.032365-110.812817 188.995994l-258.222014 146.7694a224.568699 224.568699 0 0 1-221.625634 0l-258.222014-146.7694A217.658893 217.658893 0 0 1 32.152352 658.670872v-293.666761c0-77.991238 42.226593-150.032365 110.812817-188.995994L401.187183 29.238717a224.568699 224.568699 0 0 1 221.625634 0z" fill="#4AA468" p-id="1825"></path><path d="M448.852049 592.899754l-124.120591-140.883269a37.108218 37.108218 0 0 0-56.877941 1.087654 51.631607 51.631607 0 0 0-0.447858 65.067342l151.567877 172.105356c15.355125 17.466454 39.987304 18.042272 55.982226 1.407553l279.39929-290.403797a50.863851 50.863851 0 0 0 12.667978-44.529861 44.84976 44.84976 0 0 0-27.511265-34.67699 36.980259 36.980259 0 0 0-39.859345 10.17277l-250.800371 260.653242z" fill="#FFFFFF" p-id="1826"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -142,7 +142,9 @@ export default {
console.log(obj);
this.visible = true;
// if(obj.id)
this.dataForm.id = obj.id ? obj.id : ""
if (obj) {
this.dataForm.id = obj.id ? obj.id : ""
}
this.$nextTick(() => {
this.$refs["dataForm"].resetFields()
if (obj) {

View File

@ -10,8 +10,8 @@
</base-table>
<!-- 分页组件 -->
<pagination :limit.sync="listQuery.pageSize" :page.sync="listQuery.pageNo" :total="listQuery.total"
@pagination="getDataList" />
<!-- <pagination :limit.sync="listQuery.pageSize" :page.sync="listQuery.pageNo" :total="listQuery.total"
@pagination="getDataList" /> -->
<!-- 对话框(添加 / 修改) -->
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" width="50%" @cancel="handleCancel"
@ -168,7 +168,10 @@ export default {
case 'add':
this.addOrEditTitle = '新增';
this.addOrUpdateVisible = true;
this.addOrUpdateHandle();
// this.addOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.addOrUpdate.init();
});
break;
case 'export':
this.handleExport();

View File

@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2022-08-24 11:19:43
* @LastEditors: zhp
* @LastEditTime: 2023-12-13 16:19:04
* @LastEditTime: 2023-12-14 09:36:05
* @Description:
*/
export default {
@ -54,10 +54,10 @@ export default {
this.getDataList();
},
// 新增 / 修改
addOrUpdateHandle(id) {
addOrUpdateHandle() {
this.addOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id);
this.$refs.addOrUpdate.init();
});
},
cancel(id) {

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-12-08 13:46:17
* @LastEditTime: 2023-12-08 16:09:13
* @LastEditTime: 2023-12-15 16:12:08
* @LastEditors: zhp
* @Description:
-->
@ -13,26 +13,28 @@
<div class="content">
<!-- <div class="visual-part"> -->
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"
label-width="100px" label-position="top">
label-width="auto">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="供应商" prop="supplierId">
<el-select v-model="dataForm.supplierId" filterable :disabled="isdetail" style="width: 100%"
placeholder="请选择供应商">
<el-form-item label="供应商" prop="supplierId"
:rules="[{ required: true, message: '供应商不能为空', trigger: 'change' }]">
<el-select v-model="dataForm.supplierId" filterable :disabled="isdetail" placeholder="请选择供应商">
<el-option v-for="dict in supplierList" :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="materialId">
<el-select v-model="dataForm.materialId" filterable :disabled="isdetail" style="width: 100%"
@change="getData" placeholder="请选择原料">
<el-form-item label="原料" prop="materialId"
:rules="[{ required: true, message: '原料不能为空', trigger: 'change' }]">
<el-select v-model="dataForm.materialId" filterable :disabled="isdetail" @change="getData"
placeholder="请选择原料">
<el-option v-for="dict in materialList" :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="sampleCode">
<el-form-item label="样品编码" prop="sampleCode"
:rules="[{ required: true, message: '样品编号不能为空', trigger: 'blur' }]">
<el-input v-model="dataForm.sampleCode" clearable :disabled="isdetail" placeholder="请输入样品编码" />
</el-form-item>
</el-col>
@ -40,28 +42,79 @@
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="取样人" prop="samplerId">
<el-select v-model="dataForm.samplerId" filterable :disabled="isdetail" style="width: 100%"
placeholder="请选择取样人">
<el-select v-model="dataForm.samplerId" filterable :disabled="isdetail" placeholder="请选择取样人">
<el-option v-for="dict in workerList" :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="checkerId">
<el-select v-model="dataForm.checkerId" filterable :disabled="isdetail" style="width: 100%"
placeholder="请选择检测人">
<el-form-item label="检测人" prop="checkerId"
:rules="[{ required: true, message: '检测人不能为空', trigger: 'change' }]">
<el-select v-model="dataForm.checkerId" filterable :disabled="isdetail" placeholder="请选择检测人">
<el-option v-for="dict in workerList" :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="checkTime">
<el-form-item label="检测时间" prop="checkTime"
:rules="[{ required: true, message: '检测时间不能为空', trigger: 'change' }]">
<el-date-picker v-model="dataForm.checkTime" type="datetime" placeholder="选择检测时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="center">检测结果</el-divider>
<el-row :gutter="24">
<el-form-item label="外观合格" prop="appearance">
<el-radio :disabled="isdetail" v-model="dataForm.appearance" :label="true">合格</el-radio>
<el-radio :disabled="isdetail" v-model="dataForm.appearance" :label="false">不合格</el-radio>
</el-form-item>
</el-row>
<el-row :gutter="24" v-for="(item,index) in ingredientList" :key="item.id">
<el-col :span="8">
<el-form-item label="成分">
{{ item.name }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :prop="'checkValueList.' + index + '.checkValue'" label="成分含量"
:rules="[{ required: true, message: '成分含量不能为空', trigger: 'blur' }]">
<el-input :disabled="isdetail" style="width: 90%;margin-right: 10px;" :max="item.maxValue"
:min='item.minValue' v-model="dataForm.checkValueList[index].checkValue"
@change="judgeValue(arguments[0],item.minValue,item.maxValue,index)"></el-input>
<span v-if="dataForm.checkValueList[index].showIcon">
<!-- <i class="el-icon-success"></i> -->
<svg-icon v-if="dataForm.checkValueList[index].isStandard" icon-class="standards" />
<svg-icon v-else icon-class="noStandards" />
</span>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="判断结果" prop="checkResult">
<el-select :disabled="isdetail" v-model="dataForm.checkResult" placeholder="请选择">
<el-option v-for="item in checkResultList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="原料等级" prop="materialGrade">
<el-select :disabled="isdetail" v-model="dataForm.materialGrade" placeholder="请选择" style="width: 100%;">
<el-option v-for="item in gradeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="备注" prop="remark">
<el-input :disabled="isdetail" v-model="dataForm.remark" placeholder="请填写备注" style="width: 100%;">
</el-input>
</el-form-item>
</el-form>
<!-- </div> -->
<div class="attr-list" v-if="idAttrShow">
<!-- <small-title style="margin: 16px 0; padding-left: 8px" :no-padding="true">
@ -101,9 +154,15 @@ import {
getHotMaterialAllList,
getSupplierList,
getWorkerList,
getMaterialCheckList
getMaterialCheckList,
createQualityHotMaterialDet,
updateQualityHotMaterialDet,
getQualityHotMaterialDetList
} from '@/api/base/qualityHotMaterial';
import SmallTitle from './SmallTitle';
import { DICT_TYPE, getDictDatas } from "@/utils/dict";
import { create } from 'domain';
// import { parseTime } from '../../core/mixins/code-filter';
// import attrAdd from './attr-add';
// import {DICT_TYPE, getDictDatas} from "@/utils/dict";
@ -130,7 +189,17 @@ export default {
createURL: createQualityHotMaterial,
updateURL: updateQualityHotMaterial,
infoURL: getQualityHotMaterial,
},
},
gradeList:[],
checkResultList: [{
id: true,
name:'合格',
},
{
id: false,
name: '不合格',
}
],
listQuery: {
pageSize: 10,
pageNo: 1,
@ -139,7 +208,9 @@ export default {
materialList: [],
workerList: [],
supplierList:[],
equipmentList:[],
equipmentList: [],
ingredientFlag:false,
ingredientList:[],
dataForm: {
id: undefined,
materialId:null,
@ -151,6 +222,10 @@ export default {
appearance: null,
checkResult: null,
materialGrade: null,
checkValueList: [],
checkResult: '',
materialGrade: undefined,
remark:null,
},
productAttrList: [],
visible: false,
@ -168,6 +243,15 @@ export default {
mounted() {
},
methods: {
judgeValue(val, minValue, maxValue, index) {
if (val >= minValue && val <= maxValue) {
this.dataForm.checkValueList[index].showIcon = true
this.dataForm.checkValueList[index].isStandard = true
} else {
this.dataForm.checkValueList[index].showIcon = true
this.dataForm.checkValueList[index].isStandard = false
}
},
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
@ -175,28 +259,111 @@ export default {
}
//
if (this.dataForm.id) {
this.urlOptions.updateURL(this.dataForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.visible = false;
this.$emit("refreshDataList");
let obj = {
id: this.dataForm.id,
materialId: this.dataForm.materialId,
supplierId: this.dataForm.supplierId,
sampleCode: this.dataForm.sampleCode,
samplerId: this.dataForm.samplerId,
checkerId: this.dataForm.checkerId,
checkTime: this.dataForm.checkTime,
appearance: this.dataForm.appearance,
checkResult: this.dataForm.checkResult,
materialGrade: this.dataForm.materialGrade,
// checkValueList: [],
checkResult: this.dataForm.checkResult,
materialGrade: this.dataForm.materialGrade,
remark: this.dataForm.remark
}
this.urlOptions.updateURL(obj).then(response => {
let array = []
this.dataForm.checkValueList.forEach(ele => {
array.push(this.updateDet({
mainId: this.dataForm.id,
id:ele.id,
checkDetId: ele.checkDetId,
checkValue: ele.checkValue
}))
})
Promise.all(array).then(res => {
console.log(res)
this.visible = false;
this.$emit("refreshDataList");
}).catch(error => {
// catch
console.log(error)
})
});
return;
}
//
this.urlOptions.createURL(this.dataForm).then(response => {
this.$modal.msgSuccess("新增成功");
this.idAttrShow = true;
this.dataForm.id = res.data
this.$emit("refreshDataList");
let obj = {
// id: this.dataForm.id,
materialId: this.dataForm.materialId,
supplierId: this.dataForm.supplierId,
sampleCode: this.dataForm.sampleCode,
samplerId: this.dataForm.samplerId,
checkerId: this.dataForm.checkerId,
checkTime: this.dataForm.checkTime,
appearance: this.dataForm.appearance,
checkResult: this.dataForm.checkResult,
materialGrade: this.dataForm.materialGrade,
// checkValueList: [],
checkResult: this.dataForm.checkResult,
materialGrade: this.dataForm.materialGrade,
remark:this.dataForm.remark
}
this.urlOptions.createURL(obj).then(response => {
// this.idAttrShow = true;
let array = []
this.dataForm.checkValueList.forEach(ele => {
array.push(this.createDet({
mainId: response.data,
checkDetId: ele.checkDetId,
checkValue: ele.checkValue
}))
})
Promise.all(array).then(res => {
this.$modal.msgSuccess("新增成功");
this.visible = false;
this.$emit("refreshDataList");
}).catch(error => {
// catch
console.log(error)
})
// this.dataForm.id = res.data
});
});
},
createDet(obj) {
return createQualityHotMaterialDet(obj).then((response) => {
return response.data
})
},
updateDet(obj) {
return updateQualityHotMaterialDet(obj).then((response) => {
return response.data
})
},
getData(val) {
console.log(val);
getMaterialCheckList({
materialId:val
}).then((res) => {
console.log(res);
this.ingredientList = res.data
this.ingredientFlag = true
this.dataForm.checkValueList = res.data.map((ele) => {
return {
mainId: null,
checkDetId: ele.id,
checkValue: null,
isStandard: true,
showIcon:false,
}
})
// this.$set()
console.log(this.dataForm);
})
},
// clickTopBtn(val) {
@ -208,7 +375,7 @@ export default {
this.productAttrList.splice(0);
this.listQuery.total = 0;
},
getDict() {
async getDict() {
getHotMaterialAllList().then((res) => {
this.materialList = res.data
})
@ -218,49 +385,52 @@ export default {
getSupplierList().then(res => {
this.supplierList = res.data
})
const res = await getDictDatas(this.DICT_TYPE.EQU_ALARM_LEVEL)
console.log('111', res)
this.gradeList = res
},
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(
`确定对${
raw.data.materialName
? '[物料名称为' + raw.data.materialName + ']'
: '[序号为' + raw.data.materialName + ']'
}进行删除操作?`,
'提示',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}
)
.then(() => {
deleteProcessEquMaterialBomDet(raw.data.id).then(({ data }) => {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getList();
},
});
});
})
.catch(() => {});
} else {
this.addNew(raw.data.id);
}
},
getList() {
//
processEquMaterialBomDetPage({
...this.listQuery,
bomId: this.dataForm.id,
}).then((response) => {
this.productAttrList = response.data.list;
this.listQuery.total = response.data.total;
});
},
// handleClick(raw) {
// if (raw.type === 'delete') {
// this.$confirm(
// `${
// raw.data.materialName
// ? '[' + raw.data.materialName + ']'
// : '[' + raw.data.materialName + ']'
// }?`,
// '',
// {
// confirmButtonText: '',
// cancelButtonText: '',
// type: 'warning',
// }
// )
// .then(() => {
// deleteProcessEquMaterialBomDet(raw.data.id).then(({ data }) => {
// this.$message({
// message: '',
// type: 'success',
// duration: 1500,
// onClose: () => {
// this.getList();
// },
// });
// });
// })
// .catch(() => {});
// } else {
// this.addNew(raw.data.id);
// }
// },
// getList() {
// //
// processEquMaterialBomDetPage({
// ...this.listQuery,
// bomId: this.dataForm.id,
// }).then((response) => {
// this.productAttrList = response.data.list;
// this.listQuery.total = response.data.total;
// });
// },
init(id, isdetail) {
this.initData()
this.getDict()
@ -277,19 +447,51 @@ export default {
this.$refs['dataForm'].resetFields();
if (this.dataForm.id) {
//
this.urlOptions.infoURL({
bomId: id,
pageNo: 1,
pageSize:10
}).then(response => {
//
let valueList = []
this.urlOptions.infoURL(id).then(response => {
this.dataForm = response.data
this.dataForm.unit = String(this.dataForm.unit)
this.dataForm.materialType = String(this.dataForm.materialType)
this.dataForm.productType = String(this.dataForm.productType)
});
getMaterialCheckList({
materialId: response.data.materialId
}).then((res) => {
console.log(res.data);
this.ingredientList = res.data
valueList = this.ingredientList.map((ele) => {
// console.log(ele)
return {
maxValue: ele.maxValue,
minValue: ele.minValue
}
})
getQualityHotMaterialDetList({
mainId: response.data.id
}).then((result) => {
this.dataForm.checkValueList = result.data.map((ele) => {
return {
mainId: ele.mainId,
id: ele.id,
checkDetId: ele.id,
checkValue: ele.checkValue,
isStandard: true,
showIcon: false,
}
})
valueList.forEach((ele,index) => {
console.log(ele);
if (this.dataForm.checkValueList[index].checkValue >= ele.minValue && this.dataForm.checkValueList[index].checkValue <= ele.maxValue) {
this.dataForm.checkValueList[index].showIcon = true
this.dataForm.checkValueList[index].isStandard = true
} else {
this.dataForm.checkValueList[index].showIcon = true
this.dataForm.checkValueList[index].isStandard = false
}
// })
})
})
});
})
//
this.getList();
// this.getList();
} else {
if (this.urlOptions.isGetCode) {
this.getCode()
@ -322,10 +524,6 @@ export default {
flex-direction: column;
}
.drawer >>> .el-form-item__label {
padding: 0;
}
.drawer >>> .el-drawer__header {
margin: 0;
padding: 32px 32px 24px;

View File

@ -77,13 +77,19 @@ export default {
},
tableProps,
tableBtn: [
this.$auth.hasPermi(`base:quality-inspection-det:update`)
this.$auth.hasPermi(`base:quality-hot-material:update`)
? {
type: 'edit',
btnName: '编辑',
}
: undefined,
this.$auth.hasPermi(`base:quality-inspection-det:delete`)
: undefined,
this.$auth.hasPermi(`base:quality-hot-material:detail`)
? {
type: 'detail',
btnName: '详情',
}
: undefined,
this.$auth.hasPermi(`base:quality-hot-material:delete`)
? {
type: 'delete',
btnName: '删除',
@ -132,7 +138,16 @@ export default {
mounted () {
this.getDict();
},
methods: {
methods: {
otherMethods(val) {
if (val.type === 'detail') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = "详情";
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id, true);
});
}
},
//
getDataList() {
this.dataListLoading = true;

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-12-12 13:45:25
* @LastEditTime: 2023-12-13 15:17:53
* @LastEditTime: 2023-12-14 14:56:38
* @LastEditors: zhp
* @Description:
-->
@ -483,7 +483,7 @@ export default {
await updateProductionDataList(updateArr),
]);
if (result[0] == true && result[1] == true) {
console.log(res)
// console.log(res)
this.disabled = true
this.isSave = false
this.getDataList()

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-12-12 13:45:25
* @LastEditTime: 2023-12-13 16:55:27
* @LastEditTime: 2023-12-14 14:56:40
* @LastEditors: zhp
* @Description:
-->
@ -24,100 +24,132 @@
color: '#606266'
}">
<el-table-column :label="'许昌安彩月成品生产汇总' + timeTips" align="center">
<el-table-column prop="glassType" label="品种">
<el-table-column prop="glassType" label="品种" align="center">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.glassType" :disabled="disabled"></el-input>
<span v-else>{{ scope.row.glassType }} </span>
</template>
</el-table-column>
<el-table-column label="规格">
<el-table-column prop="inputNow" label="本周">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.inputNow" :disabled="disabled"></el-input>
<span v-else>{{ scope.row.inputNow }} </span>
</template>
<el-table-column label="规格" align="center">
<el-table-column label="成品" align="center">
<el-table-column :show-header="false">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.productionL" :disabled="disabled"></el-input>
<span v-else>{{ scope.row.productionL }} </span>
</template>
</el-table-column>
<el-table-column :show-header="false">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.productionW" :disabled="disabled"></el-input>
<span v-else>{{ scope.row.productionW }} </span>
</template>
</el-table-column>
<el-table-column :show-header="false">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.productionH" :disabled="disabled"></el-input>
<span v-else>{{ scope.row.productionH }} </span>
</template>
</el-table-column>
</el-table-column>
<el-table-column prop="inputHis" label="上周">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.inputHis" :disabled="disabled"></el-input>
<span v-else>{{ scope.row.inputHis }} </span>
</template>
</el-table-column>
<el-table-column prop="inputTrend" label="增减">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.inputTrend" :disabled="disabled"></el-input>
<span v-else>{{ scope.row.inputTrend }} </span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="完成良品产量">
<el-table-column prop="goodProductNow" label="本周">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.goodProductNow" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.goodProductNow }} </span>
</template>
</el-table-column>
<el-table-column prop="goodProductHis" label="上周">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.goodProductHis" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.goodProductHis }} </span>
</template>
</el-table-column>
<el-table-column prop="goodProductTrend" label="增减">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.goodProductTrend" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.goodProductTrend }} </span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="原片漏检率">
<el-table-column prop="missCheckNow" label="本周">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.missCheckNow" :disabled="disabled"></el-input>
<span v-else>{{ scope.row.missCheckNow }} </span>
</template>
</el-table-column>
<el-table-column prop="missCheckHis" label="上周">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.missCheckHis" :disabled="disabled"></el-input>
<span v-else>{{ scope.row.missCheckHis }} </span>
</template>
</el-table-column>
<el-table-column prop="missCheckTrend" label="增减">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.missCheckTrend" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.missCheckTrend }} </span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="综合良品率">
<el-table-column prop="goodProductPassNow" label="本周">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.goodProductPassNow" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.goodProductPassNow }} </span>
</template>
</el-table-column>
<el-table-column prop="goodProductPassHis" label="上周">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.goodProductPassHis" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.goodProductPassHis }} </span>
</template>
</el-table-column>
<el-table-column prop="goodProductPassTrend" label="增减">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.goodProductPassTrend" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.goodProductPassTrend }} </span>
</template>
<el-table-column label="原片">
<el-table-column prop="originalGlassSize">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.originalGlassSize" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.originalGlassSize }} </span>
</template>
</el-table-column>
</el-table-column>
</el-table-column>
</el-table-column>
<!-- <el-table-column label="完成良品产量"> -->
<el-table-column prop="customerId" label="用户">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.customerId" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.customerId }} </span>
</template>
</el-table-column>
<el-table-column prop="packageType" label="包装形式">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.packageType" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.packageType }} </span>
</template>
</el-table-column>
<el-table-column prop="orderNum" label="订单数量">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.orderNum" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.orderNum }} </span>
</template>
</el-table-column>
<el-table-column prop="orderFinish" label="订单完成">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.orderFinish" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.orderFinish }} </span>
</template>
</el-table-column>
<el-table-column prop="orderRemaining" label="未完成订单">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.orderRemaining" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.orderRemaining }} </span>
</template>
</el-table-column>
<el-table-column prop="stockLastMonth" label="上月库存">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.stockLastMonth" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.stockLastMonth }} </span>
</template>
</el-table-column>
<el-table-column prop="productNumThisMonth" label="本月生产成品">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.productNumThisMonth" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.productNumThisMonth }} </span>
</template>
</el-table-column>
<el-table-column prop="deliveNum" label="发货量">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.deliveNum" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.deliveNum }} </span>
</template>
</el-table-column>
<el-table-column prop="undeliveNum" label="未发货量">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.undeliveNum" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.undeliveNum }} </span>
</template>
</el-table-column>
<el-table-column prop="undeliveArea" label="未发货面积">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.undeliveArea" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.undeliveArea }} </span>
</template>
</el-table-column>
<el-table-column prop="deliveArea" label="发货面积">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.deliveArea" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.deliveArea }} </span>
</template>
</el-table-column>
<el-table-column prop="productAreaThisMonth" label="本月生产面积">
<template slot-scope="scope">
<el-input v-if="scope.row.det === true" v-model="scope.row.productAreaThisMonth" :disabled="disabled">
</el-input>
<span v-else>{{ scope.row.productAreaThisMonth }} </span>
</template>
</el-table-column>
<!-- </el-table-column> -->
<div style="height: 50px;" class="remark" slot="append">
<h3 style="float: left;text-align: center;margin-left: 20px;">备注</h3>
<el-input :disabled="disabled" style="float:right;width: 96%;margin-top: 8px;" v-model="remark"></el-input>
@ -143,8 +175,8 @@
<script>
import {
getAutoDeliveDataList,
updateProductionDataList,
updateSumProductionDataList
updateSumAutoDeliveDataList,
updateAutoDeliveDataList
} from '@/api/report/production';
// import Editor from '@/components/Editor';
import moment from 'moment';
@ -482,10 +514,10 @@ export default {
// console.log(JSON.stringify(updateArr[1]))
const result = await Promise.all([
await updateSumProductionDataList(obj),
await updateProductionDataList(updateArr),
await updateAutoDeliveDataList(updateArr),
]);
if (result[0] == true && result[1] == true) {
console.log(res)
// console.log(res)
this.disabled = true
this.isSave = false
this.getDataList()
@ -519,12 +551,12 @@ export default {
// sum = res.data.list.splice(index, 1)
// }
// })
// res.data.forEach((ele,index) => {
// if (ele.det === false) {
// res.data.list[index].lineId = ''
// this.remark = res.data.list[index].remark
// }
// });
res.data.forEach((ele,index) => {
if (ele.det === false) {
res.data[index].glassType = '合计'
this.remark = res.data[index].remark
}
});
this.list = res.data
},
},

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-12-12 13:45:25
* @LastEditTime: 2023-12-13 15:17:39
* @LastEditTime: 2023-12-14 14:56:37
* @LastEditors: zhp
* @Description:
-->
@ -410,8 +410,8 @@ export default {
await updateSumProductionDataList(obj),
await updateProductionDataList(updateArr),
]);
if (result[0] == true && result[1] == true) {
console.log(res)
if (result[0].data == true && result[1].data == true) {
// console.log(res)
this.disabled = true
this.isSave = false
this.getDataList()

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2023-12-12 13:45:25
* @LastEditTime: 2023-12-13 15:16:03
* @LastEditTime: 2023-12-14 14:56:45
* @LastEditors: zhp
* @Description:
-->
@ -405,8 +405,8 @@ export default {
await updateSumProductionDataList(obj),
await updateProductionDataList(updateArr),
]);
if (result[0] == true && result[1] == true) {
console.log(res)
if (result[0].data == true && result[1].data == true) {
// console.log(res)
this.disabled = true
this.isSave = false
this.getDataList()