Merge pull request 'projects/mesxc-zhp' (#146) from projects/mesxc-zhp into projects/mesxc-test

Reviewed-on: #146
This commit is contained in:
高天泽 2023-12-15 16:29:57 +08:00
commit e039a3992d
15 changed files with 502 additions and 209 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: 2023-12-14 14:02:40 # @LastEditTime: 2023-12-15 16:28:20
# @LastEditors: DY # @LastEditors: zhp
# @Description: # @Description:
### ###
# 开发环境配置 # 开发环境配置
@ -13,7 +13,7 @@ VUE_APP_TITLE = MES系统
# 芋道管理系统/开发环境 # 芋道管理系统/开发环境
# VUE_APP_BASE_API = 'http://100.64.0.26:48082' # VUE_APP_BASE_API = 'http://100.64.0.26:48082'
VUE_APP_BASE_API = 'http://10.70.2.2:8080' 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.4.173:48080'
# VUE_APP_BASE_API = 'http://192.168.2.173:48080' # VUE_APP_BASE_API = 'http://192.168.2.173:48080'
# VUE_APP_BASE_API = 'http://192.168.1.49:48082' # VUE_APP_BASE_API = 'http://192.168.1.49:48082'
@ -21,6 +21,7 @@ VUE_APP_BASE_API = 'http://10.70.2.2:8080'
# VUE_APP_BASE_API = 'http://192.168.4.159:48080' # 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.56:48082'
# VUE_APP_BASE_API = 'http://192.168.1.62: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' VUE_APP_JIMU_API = 'http://192.168.0.33:48082'

View File

@ -2,7 +2,7 @@
/* /*
* @Author: zhp * @Author: zhp
* @Date: 2023-11-06 15:38:12 * @Date: 2023-11-06 15:38:12
* @LastEditTime: 2023-12-08 16:08:35 * @LastEditTime: 2023-12-15 15:29:16
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
*/ */
@ -99,3 +99,27 @@ export function getMaterialCheckList(query) {
params: 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 * @Author: zhp
* @Date: 2023-12-04 14:10:37 * @Date: 2023-12-04 14:10:37
* @LastEditTime: 2023-12-13 16:03:46 * @LastEditTime: 2023-12-14 10:06:03
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
*/ */
@ -19,7 +19,7 @@ export function createQualityInspectionBoxBtn(data) {
// 更新安灯按钮16键对应 // 更新安灯按钮16键对应
export function updateQualityInspectionBoxBtn(data) { export function updateQualityInspectionBoxBtn(data) {
return request({ return request({
url: '/base/quality-inspection-box-btn/update', url: '/base/quality-inspection-box-btn/updateBatch',
method: 'put', method: 'put',
data: data data: data
}) })
@ -44,7 +44,7 @@ export function getQualityInspectionBoxBtn(id) {
// 获得安灯按钮16键对应分页 // 获得安灯按钮16键对应分页
export function getQualityInspectionBoxBtnPage(query) { export function getQualityInspectionBoxBtnPage(query) {
return request({ return request({
url: '/base/quality-inspection-box-btn/page', url: '/base/quality-inspection-box-btn/listGroupByLineSection',
method: 'get', method: 'get',
params: query params: query
}) })

View File

@ -1,7 +1,7 @@
/* /*
* @Author: zhp * @Author: zhp
* @Date: 2023-12-12 13:49:02 * @Date: 2023-12-12 13:49:02
* @LastEditTime: 2023-12-13 15:52:11 * @LastEditTime: 2023-12-14 14:21:43
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
*/ */
@ -39,3 +39,19 @@ export function getAutoDeliveDataList(query) {
data: 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); console.log(obj);
this.visible = true; this.visible = true;
// if(obj.id) // if(obj.id)
if (obj) {
this.dataForm.id = obj.id ? obj.id : "" this.dataForm.id = obj.id ? obj.id : ""
}
this.$nextTick(() => { this.$nextTick(() => {
this.$refs["dataForm"].resetFields() this.$refs["dataForm"].resetFields()
if (obj) { if (obj) {

View File

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

View File

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

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2023-12-08 13:46:17 * @Date: 2023-12-08 13:46:17
* @LastEditTime: 2023-12-08 16:09:13 * @LastEditTime: 2023-12-15 16:12:08
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -13,26 +13,28 @@
<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="auto">
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="供应商" prop="supplierId"> <el-form-item label="供应商" prop="supplierId"
<el-select v-model="dataForm.supplierId" filterable :disabled="isdetail" style="width: 100%" :rules="[{ required: true, message: '供应商不能为空', trigger: 'change' }]">
placeholder="请选择供应商"> <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-option v-for="dict in supplierList" :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="materialId"> <el-form-item label="原料" prop="materialId"
<el-select v-model="dataForm.materialId" filterable :disabled="isdetail" style="width: 100%" :rules="[{ required: true, message: '原料不能为空', trigger: 'change' }]">
@change="getData" placeholder="请选择原料"> <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-option v-for="dict in materialList" :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="sampleCode"> <el-form-item label="样品编码" prop="sampleCode"
:rules="[{ required: true, message: '样品编号不能为空', trigger: 'blur' }]">
<el-input v-model="dataForm.sampleCode" clearable :disabled="isdetail" placeholder="请输入样品编码" /> <el-input v-model="dataForm.sampleCode" clearable :disabled="isdetail" placeholder="请输入样品编码" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -40,28 +42,79 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="取样人" prop="samplerId"> <el-form-item label="取样人" prop="samplerId">
<el-select v-model="dataForm.samplerId" filterable :disabled="isdetail" style="width: 100%" <el-select v-model="dataForm.samplerId" filterable :disabled="isdetail" placeholder="请选择取样人">
placeholder="请选择取样人">
<el-option v-for="dict in workerList" :key=" dict.id" :label="dict.name" :value="dict.id" /> <el-option v-for="dict in workerList" :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="checkerId"> <el-form-item label="检测人" prop="checkerId"
<el-select v-model="dataForm.checkerId" filterable :disabled="isdetail" style="width: 100%" :rules="[{ required: true, message: '检测人不能为空', trigger: 'change' }]">
placeholder="请选择检测人"> <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-option v-for="dict in workerList" :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="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 v-model="dataForm.checkTime" type="datetime" placeholder="选择检测时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </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> </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">
@ -101,9 +154,15 @@ import {
getHotMaterialAllList, getHotMaterialAllList,
getSupplierList, getSupplierList,
getWorkerList, getWorkerList,
getMaterialCheckList getMaterialCheckList,
createQualityHotMaterialDet,
updateQualityHotMaterialDet,
getQualityHotMaterialDetList
} from '@/api/base/qualityHotMaterial'; } from '@/api/base/qualityHotMaterial';
import SmallTitle from './SmallTitle'; import SmallTitle from './SmallTitle';
import { DICT_TYPE, getDictDatas } from "@/utils/dict";
import { create } from 'domain';
// import { parseTime } from '../../core/mixins/code-filter'; // import { parseTime } from '../../core/mixins/code-filter';
// import attrAdd from './attr-add'; // import attrAdd from './attr-add';
// import {DICT_TYPE, getDictDatas} from "@/utils/dict"; // import {DICT_TYPE, getDictDatas} from "@/utils/dict";
@ -131,6 +190,16 @@ export default {
updateURL: updateQualityHotMaterial, updateURL: updateQualityHotMaterial,
infoURL: getQualityHotMaterial, infoURL: getQualityHotMaterial,
}, },
gradeList:[],
checkResultList: [{
id: true,
name:'合格',
},
{
id: false,
name: '不合格',
}
],
listQuery: { listQuery: {
pageSize: 10, pageSize: 10,
pageNo: 1, pageNo: 1,
@ -140,6 +209,8 @@ export default {
workerList: [], workerList: [],
supplierList:[], supplierList:[],
equipmentList: [], equipmentList: [],
ingredientFlag:false,
ingredientList:[],
dataForm: { dataForm: {
id: undefined, id: undefined,
materialId:null, materialId:null,
@ -151,6 +222,10 @@ export default {
appearance: null, appearance: null,
checkResult: null, checkResult: null,
materialGrade: null, materialGrade: null,
checkValueList: [],
checkResult: '',
materialGrade: undefined,
remark:null,
}, },
productAttrList: [], productAttrList: [],
visible: false, visible: false,
@ -168,6 +243,15 @@ export default {
mounted() { mounted() {
}, },
methods: { 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() { dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => { this.$refs["dataForm"].validate((valid) => {
if (!valid) { if (!valid) {
@ -175,28 +259,111 @@ export default {
} }
// //
if (this.dataForm.id) { if (this.dataForm.id) {
this.urlOptions.updateURL(this.dataForm).then(response => { let obj = {
this.$modal.msgSuccess("修改成功"); 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.visible = false;
this.$emit("refreshDataList"); this.$emit("refreshDataList");
}).catch(error => {
// catch
console.log(error)
})
}); });
return; return;
} }
// //
this.urlOptions.createURL(this.dataForm).then(response => { 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.$modal.msgSuccess("新增成功");
this.idAttrShow = true; this.visible = false;
this.dataForm.id = res.data
this.$emit("refreshDataList"); 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) { getData(val) {
console.log(val); console.log(val);
getMaterialCheckList({ getMaterialCheckList({
materialId:val materialId:val
}).then((res) => { }).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) { // clickTopBtn(val) {
@ -208,7 +375,7 @@ export default {
this.productAttrList.splice(0); this.productAttrList.splice(0);
this.listQuery.total = 0; this.listQuery.total = 0;
}, },
getDict() { async getDict() {
getHotMaterialAllList().then((res) => { getHotMaterialAllList().then((res) => {
this.materialList = res.data this.materialList = res.data
}) })
@ -218,49 +385,52 @@ export default {
getSupplierList().then(res => { getSupplierList().then(res => {
this.supplierList = res.data this.supplierList = res.data
}) })
const res = await getDictDatas(this.DICT_TYPE.EQU_ALARM_LEVEL)
console.log('111', res)
this.gradeList = res
}, },
handleClick(raw) { // handleClick(raw) {
if (raw.type === 'delete') { // if (raw.type === 'delete') {
this.$confirm( // this.$confirm(
`确定对${ // `${
raw.data.materialName // raw.data.materialName
? '[物料名称为' + raw.data.materialName + ']' // ? '[' + raw.data.materialName + ']'
: '[序号为' + raw.data.materialName + ']' // : '[' + raw.data.materialName + ']'
}进行删除操作?`, // }?`,
'提示', // '',
{ // {
confirmButtonText: '确定', // confirmButtonText: '',
cancelButtonText: '取消', // cancelButtonText: '',
type: 'warning', // type: 'warning',
} // }
) // )
.then(() => { // .then(() => {
deleteProcessEquMaterialBomDet(raw.data.id).then(({ data }) => { // deleteProcessEquMaterialBomDet(raw.data.id).then(({ data }) => {
this.$message({ // this.$message({
message: '操作成功', // message: '',
type: 'success', // type: 'success',
duration: 1500, // duration: 1500,
onClose: () => { // onClose: () => {
this.getList(); // this.getList();
}, // },
}); // });
}); // });
}) // })
.catch(() => {}); // .catch(() => {});
} else { // } else {
this.addNew(raw.data.id); // this.addNew(raw.data.id);
} // }
}, // },
getList() { // getList() {
// // //
processEquMaterialBomDetPage({ // processEquMaterialBomDetPage({
...this.listQuery, // ...this.listQuery,
bomId: this.dataForm.id, // bomId: this.dataForm.id,
}).then((response) => { // }).then((response) => {
this.productAttrList = response.data.list; // this.productAttrList = response.data.list;
this.listQuery.total = response.data.total; // this.listQuery.total = response.data.total;
}); // });
}, // },
init(id, isdetail) { init(id, isdetail) {
this.initData() this.initData()
this.getDict() this.getDict()
@ -278,18 +448,50 @@ export default {
if (this.dataForm.id) { if (this.dataForm.id) {
// //
this.urlOptions.infoURL({ let valueList = []
bomId: id, this.urlOptions.infoURL(id).then(response => {
pageNo: 1,
pageSize:10
}).then(response => {
this.dataForm = response.data this.dataForm = response.data
this.dataForm.unit = String(this.dataForm.unit) getMaterialCheckList({
this.dataForm.materialType = String(this.dataForm.materialType) materialId: response.data.materialId
this.dataForm.productType = String(this.dataForm.productType) }).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 { } else {
if (this.urlOptions.isGetCode) { if (this.urlOptions.isGetCode) {
this.getCode() this.getCode()
@ -322,10 +524,6 @@ 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;

View File

@ -77,13 +77,19 @@ export default {
}, },
tableProps, tableProps,
tableBtn: [ tableBtn: [
this.$auth.hasPermi(`base:quality-inspection-det:update`) this.$auth.hasPermi(`base:quality-hot-material:update`)
? { ? {
type: 'edit', type: 'edit',
btnName: '编辑', btnName: '编辑',
} }
: undefined, : undefined,
this.$auth.hasPermi(`base:quality-inspection-det:delete`) this.$auth.hasPermi(`base:quality-hot-material:detail`)
? {
type: 'detail',
btnName: '详情',
}
: undefined,
this.$auth.hasPermi(`base:quality-hot-material:delete`)
? { ? {
type: 'delete', type: 'delete',
btnName: '删除', btnName: '删除',
@ -133,6 +139,15 @@ export default {
this.getDict(); 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() { getDataList() {
this.dataListLoading = true; this.dataListLoading = true;

View File

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

View File

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

View File

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

View File

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