This commit is contained in:
TianyangZhang 2025-12-02 14:48:05 +08:00
commit 815ba44b77
6 changed files with 172 additions and 198 deletions

View File

@ -113,21 +113,6 @@
</el-table-column> </el-table-column>
<el-table-column label="检验" prop="count_tested" v-if="cate=='mainso'"> <el-table-column label="检验" prop="count_tested" v-if="cate=='mainso'">
</el-table-column> </el-table-column>
<el-table-column label="组合件信息" v-if="cate == 'good'&&project_code=='gzerp'" width="300">
<template #default="scope">
<div v-if="scope.row.assemb.length > 0">
<div v-for="item in scope.row.assemb" :key="item.id">
<div>
{{ item.material_name }}
<span style="color: gray;font-size: 12px;">:</span>
{{ item.batch }}
<span style="color: gray;font-size: 12px;">:</span>
{{ item.rate }}
</div>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="不合格数量" prop="count_notok"> <el-table-column label="不合格数量" prop="count_notok">
</el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="create_time" show-overflow-tooltip> <el-table-column label="创建时间" prop="create_time" show-overflow-tooltip>
@ -655,8 +640,10 @@ export default {
// //
if(index == 6){ if(index == 6){
propert = 'count'; propert = 'count';
}else if(index == 7){ }else if(index == 7&&this.mioObj.type == 'sale_out'&&this.project_code=='gx'){
propert = 'count_send'; propert = 'count_send';
}else if((index == 7||index == 8)&&column.label=='不合格数量'){
propert = 'count_notok';
} }
if (propert!=='') { if (propert!=='') {
const values = data.map((item) => const values = data.map((item) =>
@ -674,7 +661,7 @@ export default {
}, 0); }, 0);
} }
} }
if(index==8){ if(index==8&&this.mioObj.type == 'sale_out'&&this.project_code=='gx'){
if(sums[6]){ if(sums[6]){
if(sums[7]){ if(sums[7]){
sums[index] = sums[6]-sums[7]; sums[index] = sums[6]-sums[7];

View File

@ -222,7 +222,11 @@ export default {
}) })
that.$API.ofm.mroomslot.list.req(form).then(res=>{ that.$API.ofm.mroomslot.list.req(form).then(res=>{
res.forEach(item=>{ res.forEach(item=>{
that.timesList[item.slot].sloted = true; if (item.booking == that.form.id) {
that.timesList[item.slot].isSelect = true;
}else{
that.timesList[item.slot].sloted = true;
}
}) })
}) })
}, },

View File

@ -434,8 +434,14 @@ export default {
that.totalCount = totalCount; that.totalCount = totalCount;
}, },
showbw(index){ showbw(index){
this.bwIndex = index; let that = this;
this.bwVisible = true; that.bwIndex = index;
if(that.form.handoverb[index].handoverbw&&that.form.handoverb[index].handoverbw.length>0){
that.bwVisible = true;
}else{
that.$message.warning("正在加载,请稍后...");
that.bwVisible = true;
}
}, },
bwVisibleClose(){ bwVisibleClose(){
this.bwVisible = false; this.bwVisible = false;
@ -600,13 +606,21 @@ export default {
}, },
// //
open(mode = "add",data,mtype) { open(mode = "add",data,mtype) {
this.mode = mode; let that = this;
this.mtype = mtype; that.mode = mode;
that.mtype = mtype;
if(mtype==30){ if(mtype==30){
this.change_batch = true; that.change_batch = true;
} }
this.form.handoverb = data?data:[]; that.form.handoverb = data?data:[];
this.visible = true; if(data.length>0){
that.totalCount = 0;
data.forEach((item,index)=>{
that.totalCount += Number(item.count);
that.getWprList(item.wm,index);
})
}
that.visible = true;
return this; return this;
}, },
clearSelect(){ clearSelect(){
@ -657,7 +671,7 @@ export default {
getWprList(id,index){ getWprList(id,index){
let that = this; let that = this;
let handoverbw = []; let handoverbw = [];
that.$API.wpm.wpr.list.req({wm:id,page:0,can_use:'yes'}).then((res) => { that.$API.wpm.wpr.list.req({wm:id,page:0,can_use:'yes',query:'{id,number}'}).then((res) => {
res.forEach(wpritem=>{ res.forEach(wpritem=>{
let obj = {}; let obj = {};
obj.wpr = wpritem.id; obj.wpr = wpritem.id;

View File

@ -149,9 +149,10 @@
type="primary" type="primary"
style="margin-left: 10px;" style="margin-left: 10px;"
>检验</el-link> >检验</el-link>
<el-link :underline="false" type="primary" <el-link :underline="false" type="success"
v-if="route_code=='pengma'"
@click="handleAddWpr(scope.row)" @click="handleAddWpr(scope.row)"
>添加物</el-link> >混批加</el-link>
</template> </template>
</el-table-column> </el-table-column>
</scTable> </scTable>

View File

@ -58,142 +58,91 @@
header="子工序操作记录" header="子工序操作记录"
shadow="never" shadow="never"
> >
<el-button <sc-form-table
type="primary" hideDelete
icon="el-icon-plus" :tableHeight="tableHeight"
@click="table_muser_add" v-model="processLists"
style="position: absolute; left: 150px; top: 5px" :addTemplate="addTemplate"
>新增</el-button> placeholder="暂无数据"
<scTable @add="rowAdd"
ref="tableMuser"
:apiObj="apiObjMuser"
row-key="id"
stripe
height="250px"
:params="paramsMuser"
hidePagination
> >
<el-table-column type="index" width="50" /> <el-table-column label="工序">
<el-table-column label="工序" prop="process_name">
</el-table-column>
<el-table-column label="操作人" prop="handle_user_name">
</el-table-column>
<el-table-column label="操作日期" prop="handle_date">
</el-table-column>
<el-table-column label="班次" prop="shift_name">
</el-table-column>
<el-table-column
label="创建时间"
prop="create_time"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
label="操作"
fixed="right"
align="center"
width="100px"
>
<template #default="scope"> <template #default="scope">
<el-button <el-select
type="danger" v-if="scope.row.isEdit"
@click="table_muser_del(scope.row)" v-model="scope.row.process"
>删除</el-button> placeholder="请选择子工序"
class="width-100"
>
<el-option
v-for="item in processOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
<div v-else>
<span v-if="scope.row.process!==null">{{ scope.row.process_name}}</span>
</div>
</template> </template>
</el-table-column> </el-table-column>
</scTable> <el-table-column label="操作人">
<template #default="scope">
<ehsSelect
v-if="scope.row.isEdit"
v-model="scope.row.handle_user"
:showName="scope.row.handle_user_name"
:apiObj="this.$API.system.user.list"
:params="{ depts: dept }"
class="width-100"
></ehsSelect>
<div v-else>
<span v-if="scope.row.handle_user_name!==null">{{ scope.row.handle_user_name}}</span>
</div>
</template>
</el-table-column>
<el-table-column label="操作时间">
<template #default="scope">
<el-date-picker
v-if="scope.row.isEdit"
v-model="scope.row.work_start_time"
type="datetime"
value-format="YYYY-MM-DD HH:mm"
formatter="YYYY-MM-DD HH:mm"
style="width: 100%;"
/>
<div v-else>
<span v-if="scope.row.work_start_time!==null">{{ scope.row.work_start_time}}</span>
</div>
</template>
</el-table-column>
<el-form-item v-if="route_code=='pengma'" label="使用设备" prop="equipment">
<template #default="scope">
<el-select
v-model="scope.row.equipment"
placeholder="设备"
class="width-100"
>
<el-option
v-for="item in equipmentOtions"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</template>
</el-form-item>
<el-table-column label="班次"></el-table-column>
<el-table-column label="创建时间"></el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="150px">
<template #default="scope">
<el-button v-if="scope.row.isEdit" type="success" @click="saveMuserSubmit(scope.row)">保存</el-button>
<el-button v-else type="danger" @click="table_muser_del(scope.row)">删除</el-button>
</template>
</el-table-column>
</sc-form-table>
</el-card> </el-card>
<!-- 日志操作记录编辑 -->
<el-dialog v-model="saveMuserDialog" title="子工序操作记录">
<el-form
:model="muserForm"
:rules="rules"
label-width="100px"
ref="saveInForm"
>
<el-row>
<el-col :span="23">
<el-form-item label="操作时间" prop="work_start_time">
<el-date-picker
v-model="muserForm.work_start_time"
type="datetime"
placeholder="操作时间"
value-format="YYYY-MM-DD HH:mm:ss"
style="width: 100%"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="23">
<el-form-item label="操作人" prop="handle_user">
<ehsSelect
v-model="muserForm.handle_user"
:showName="muserForm.handle_user_name"
:apiObj="this.$API.system.user.list"
:params="{ depts: dept }"
class="width-100"
></ehsSelect>
</el-form-item>
</el-col>
<el-col :span="23">
<el-form-item label="子工序" prop="process">
<el-select
v-model="muserForm.process"
placeholder="请选择"
class="width-100"
>
<el-option
v-for="item in processOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="23">
<el-form-item label="关联班次" prop="shift">
<el-select
v-model="muserForm.shift"
placeholder="班次"
class="width-100"
>
<el-option
v-for="item in shiftOtions"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="23" v-if="route_code=='pengma'">
<el-form-item label="使用设备" prop="equipment">
<el-select
v-model="muserForm.equipment"
placeholder="设备"
class="width-100"
>
<el-option
v-for="item in equipmentOtions"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<el-button
type="primary"
:loading="isSaveing"
@click="saveMuserSubmit()"
> </el-button>
</template>
</el-dialog>
<!-- 输入物料 --> <!-- 输入物料 -->
<el-card <el-card
style="width: 100%; margin: 1vh 0;position: relative" style="width: 100%; margin: 1vh 0;position: relative"
@ -486,7 +435,6 @@ export default {
loading: false, loading: false,
// //
form: {}, form: {},
muserForm:{},
dialog: { dialog: {
save: false, save: false,
edit: false, edit: false,
@ -530,6 +478,7 @@ export default {
equipmentOtions:[], equipmentOtions:[],
defectOptions:[], defectOptions:[],
qct_testitems:[], qct_testitems:[],
processLists:[],
processOptions:[], processOptions:[],
test_file:'', test_file:'',
deptId: "", deptId: "",
@ -541,7 +490,6 @@ export default {
printVisible:false, printVisible:false,
saveInDialog: false, saveInDialog: false,
checkTableShow:false, checkTableShow:false,
saveMuserDialog:false,
setFiltersVisible: false, setFiltersVisible: false,
rules: { rules: {
count_use: [{required: true,message: "请输入领取数量",trigger: "blur"}], count_use: [{required: true,message: "请输入领取数量",trigger: "blur"}],
@ -564,9 +512,11 @@ export default {
apiObjPrint:this.$API.cm.labelmat.fromWm, apiObjPrint:this.$API.cm.labelmat.fromWm,
printer_name:localStorage.getItem("printer_name"), printer_name:localStorage.getItem("printer_name"),
addTemplate:{ addTemplate:{
defect: "", mlog: "",
count: 1, process: "",
mlogb: "", handle_user: "",
handle_user_name: "",
work_start_time: "",
isEdit: true, isEdit: true,
}, },
qct:null, qct:null,
@ -588,6 +538,11 @@ export default {
this.paramsIn.mlog = this.mlogId; this.paramsIn.mlog = this.mlogId;
this.paramsOut.mlog = this.mlogId; this.paramsOut.mlog = this.mlogId;
this.apiObj = this.$API.wpm.mlogb.list; this.apiObj = this.$API.wpm.mlogb.list;
let userInfo = that.$TOOL.data.get("USER_INFO");
that.addTemplate.mlog = that.mlogItem.id;
that.addTemplate.handle_user = userInfo.id;
that.addTemplate.handle_user_name = userInfo.name;
that.addTemplate.work_start_time = this.$TOOL.dateFormat(new Date());
that.$API.wpm.mlogb.list.req(that.paramsIn).then((res) => { that.$API.wpm.mlogb.list.req(that.paramsIn).then((res) => {
that.tableData = res; that.tableData = res;
}) })
@ -595,6 +550,7 @@ export default {
that.getPreocess(); that.getPreocess();
that.getShift(); that.getShift();
that.getEquipment(); that.getEquipment();
that.getProcessList();
}, },
methods: { methods: {
open() { open() {
@ -664,6 +620,12 @@ export default {
} }
}) })
}, },
getProcessList(){
let that = this;
that.$API.wpm.mloguser.list.req({page:0,mlog:that.mlogId}).then((res) => {
that.processLists = res;
})
},
getShift(){ getShift(){
let that = this; let that = this;
that.$API.mtm.shift.list.req({ page: 0 }).then((res) => { that.$API.mtm.shift.list.req({ page: 0 }).then((res) => {
@ -917,25 +879,15 @@ export default {
that.isSaveing = false; that.isSaveing = false;
}); });
}, },
table_muser_add(){ saveMuserSubmit(row){
let that = this;
let userInfo = that.$TOOL.data.get("USER_INFO");
that.muserForm.mlog = that.mlogItem.id;
that.muserForm.handle_user = userInfo.id;
that.muserForm.handle_user_name = userInfo.name;
that.muserForm.work_start_time = this.$TOOL.dateFormat(new Date());
that.saveMuserDialog = true;
},
saveMuserSubmit (){
let that = this; let that = this;
that.isSaveing = true; that.isSaveing = true;
that.$API.wpm.mloguser.create.req(that.muserForm).then((res) => { that.$API.wpm.mloguser.create.req(that.addTemplate).then((res) => {
that.isSaveing = false; that.isSaveing = false;
that.saveMuserDialog = false;
that.$message.success("操作成功"); that.$message.success("操作成功");
that.$refs.tableMuser.refresh(); that.getProcessList();
}).catch(() => { }).catch(() => {
that.isSaveing = false; that.isSaveing = false;
}) })
}, },
table_muser_del(row){ table_muser_del(row){
@ -947,6 +899,14 @@ export default {
}) })
}) })
}, },
table_muser_edit(row){
let that = this;
console.log('row',row);
let index = that.processLists.indexOf(row);
console.log('index',index);
that.processLists[index].isEdit = true;
},
handleSaveSuccess() { handleSaveSuccess() {
this.$refs.tableIn.refresh(); this.$refs.tableIn.refresh();
if(this.mlogItem.material_out_&&this.mlogItem.material_out_.tracking==10){ if(this.mlogItem.material_out_&&this.mlogItem.material_out_.tracking==10){

View File

@ -24,7 +24,10 @@
<table id="mlogbwlist" class="tables"> <table id="mlogbwlist" class="tables">
<thead> <thead>
<tr> <tr>
<th class="w_30 inlineBlock"></th> <th class="w_30 inlineBlock">
<input type="checkbox" v-model="selectedAll" :value="selectedAll" style="width: 18px;" @change="selectAllChange">
</th>
<th class="w_30 inlineBlock">序号</th>
<th class="w_140 inlineBlock">物料批次</th> <th class="w_140 inlineBlock">物料批次</th>
<th class="w_140 inlineBlock">物料编号</th> <th class="w_140 inlineBlock">物料编号</th>
<th class="w_80 inlineBlock" v-for="item in qct_testitems" :key="item.id">{{ item.testitem_name }}</th> <th class="w_80 inlineBlock" v-for="item in qct_testitems" :key="item.id">{{ item.testitem_name }}</th>
@ -38,6 +41,9 @@
<td class="w_30 inlineBlock padding_4"> <td class="w_30 inlineBlock padding_4">
<input type="checkbox" v-model="selectedindexes" :value="row.id" @change="selectChange"> <input type="checkbox" v-model="selectedindexes" :value="row.id" @change="selectChange">
</td> </td>
<td class="w_30 inlineBlock padding_4">
{{ index + 1 }}
</td>
<td class="w_140 inlineBlock"> <td class="w_140 inlineBlock">
<input v-if="row.isEdit" v-model="row.mlogb__batch" placeholder="物料批次"> <input v-if="row.isEdit" v-model="row.mlogb__batch" placeholder="物料批次">
<span v-else>{{ row.mlogb__batch }}</span> <span v-else>{{ row.mlogb__batch }}</span>
@ -66,7 +72,7 @@
<span v-else style="width: 100%;height: 100%;display: inline-block;">{{ row.note }}</span> <span v-else style="width: 100%;height: 100%;display: inline-block;">{{ row.note }}</span>
</td> </td>
<td class="w_180 inlineBlock" v-if="!isSubmit"> <td class="w_180 inlineBlock" v-if="!isSubmit">
<button v-if="row.isEdit" type="button" class="btn btn_blue" @click="formTableSave(row,index)">保存</button> <button v-if="row.isEdit" type="button" class="btn btn_green" @click="formTableSave(row,index)">保存</button>
<button v-if="row.isEdit && row.id" type="button" class="btn btn_red" @click="formTableCancel(row,index)">取消</button> <button v-if="row.isEdit && row.id" type="button" class="btn btn_red" @click="formTableCancel(row,index)">取消</button>
<button v-if="row.isEdit && setForm.cd_req_addr !== null" type="button" class="btn btn_yellow" @click="getEqData(index)">重取数据</button> <button v-if="row.isEdit && setForm.cd_req_addr !== null" type="button" class="btn btn_yellow" @click="getEqData(index)">重取数据</button>
<button v-if="!row.isEdit" type="button" class="btn btn_blue" @click="formTableEdit(index)">编辑</button> <button v-if="!row.isEdit" type="button" class="btn btn_blue" @click="formTableEdit(index)">编辑</button>
@ -318,6 +324,7 @@ export default {
route_code:"", route_code:"",
wprInputText:"", wprInputText:"",
canMultiple:false, canMultiple:false,
selectedAll:false,
checkAll: false, checkAll: false,
hideAdd: false, hideAdd: false,
visible: false, visible: false,
@ -402,17 +409,23 @@ export default {
selectChange(){ selectChange(){
let that = this; let that = this;
that.selectWprList = []; that.selectWprList = [];
console.log('selectedindexes',that.selectedindexes);
that.mlogbwlist.forEach((item) => { that.mlogbwlist.forEach((item) => {
if(that.selectedindexes.indexOf(item.id)>-1){ if(that.selectedindexes.indexOf(item.id)>-1){
that.selectWprList.push(item); that.selectWprList.push(item);
} }
}) })
console.log('selectWprList',that.selectWprList);
}, },
selectAllChange(datas){ selectAllChange(){
let that = this; let that = this;
that.selectWprList = datas; if(that.selectedAll){
that.mlogbwlist.forEach((item) => {
that.selectedindexes.push(item.id);
that.selectWprList.push(item);
})
}else{
that.selectedindexes=[];
that.selectWprList=[];
}
}, },
getEquipment4() { getEquipment4() {
let that = this; let that = this;
@ -527,7 +540,6 @@ export default {
} }
that.mlogbwlist.push(obj); that.mlogbwlist.push(obj);
}) })
// console.log('that.mlogbwlist',that.mlogbwlist);
} }
}) })
}, },
@ -624,7 +636,7 @@ export default {
let getEd = false; let getEd = false;
if(that.qct_testitems.length>0){ if(that.qct_testitems.length>0){
for(let i=0;i<that.qct_testitems.length;i++){ for(let i=0;i<that.qct_testitems.length;i++){
if(that.qct_testitems[i].cd_expr!=null){ if(that.qct_testitems[i].testitem_cd_expr!=null&&that.qct_testitems[i].testitem_cd_expr!=''&&that.qct_testitems[i].testitem_cd_expr!==undefined){
getEd = true; getEd = true;
} }
} }
@ -832,7 +844,6 @@ export default {
if(this.selectWprList.length>0){ if(this.selectWprList.length>0){
this.selectWpr = this.selectWprList; this.selectWpr = this.selectWprList;
} }
console.log('this.selectWpr',this.selectWpr);
this.setVisible=true; this.setVisible=true;
}, },
// //
@ -847,12 +858,13 @@ export default {
that.wprInputText = ""; that.wprInputText = "";
that.mlogbwlist.unshift(obj); that.mlogbwlist.unshift(obj);
that.$nextTick(() => { that.$nextTick(() => {
that.$refs.mlogbwTable.setCurrentRows(obj); // that.selectedindexes.push(obj.id);
that.selectWprList.push(item);
}) })
let getEd = false; let getEd = false;
if(that.qct_testitems.length>0){ if(that.qct_testitems.length>0){
for(let i=0;i<that.qct_testitems.length;i++){ for(let i=0;i<that.qct_testitems.length;i++){
if(that.qct_testitems[i].cd_expr!=null){ if(that.qct_testitems[i].testitem_cd_expr!=null&&that.qct_testitems[i].testitem_cd_expr!=''&&that.qct_testitems[i].testitem_cd_expr!==undefined){
getEd = true; getEd = true;
} }
} }
@ -889,7 +901,6 @@ export default {
} }
}) })
}).catch((err) => { }).catch((err) => {
console.log(err);
this.$notify.error({ this.$notify.error({
title: '获取数据失败', title: '获取数据失败',
message: err.data message: err.data
@ -919,6 +930,9 @@ export default {
that.$refs.dialogForm.validate((valid) => { that.$refs.dialogForm.validate((valid) => {
if (valid) { if (valid) {
that.selectWpr.forEach(item => { that.selectWpr.forEach(item => {
if(!item.ftest){
item.ftest = {};
}
item.ftest.ftestdefects = []; item.ftest.ftestdefects = [];
if(that.defectlists.length>0){ if(that.defectlists.length>0){
that.defectlists.forEach((item1) => { that.defectlists.forEach((item1) => {
@ -928,18 +942,12 @@ export default {
item.ftest.ftestdefects.push(obj); item.ftest.ftestdefects.push(obj);
}) })
} }
// item.ftest.ftestdefects.forEach(defect => {
// let defectindex = that.setForm.defectids.indexOf(defect.defect);
// if(defectindex > -1){
// defect.has = that.defectlists[defectindex].value;
// }
// })
}); });
that.$API.wpm.mlogbw.update.req("bulk",that.selectWpr).then((res) => { that.$API.wpm.mlogbw.update.req("bulk",that.selectWpr).then((res) => {
that.setVisible = false; that.setVisible = false;
that.selectedAll = false;
that.selectWprList = []; that.selectWprList = [];
that.$refs.mlogbwTable.clearSelection(); that.selectedindexes = [];
that.defectlists.forEach(item => { that.defectlists.forEach(item => {
item.value = false; item.value = false;
}); });