fix:辅料库的相关改动

This commit is contained in:
shijing 2025-07-25 13:39:21 +08:00
parent 6696bf3f9a
commit 0131173d97
5 changed files with 263 additions and 42 deletions

View File

@ -11,11 +11,11 @@
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="编号">
<el-input v-model="form.number" placeholder="编号" />
<el-input v-model="form.number" disabled placeholder="编号" />
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="出入库日期">
<el-form-item label="出入库日期" prop="inout_date">
<el-date-picker
v-model="form.inout_date"
type="date"
@ -42,7 +42,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="urlCode == 'helpso_in'">
<!-- <el-col :md="12" :sm="24" v-if="urlCode == 'helpso_in'">
<el-form-item label="供应商">
<el-select
v-model="form.supplier"
@ -57,7 +57,7 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-col> -->
<el-col :md="12" :sm="24" v-if="urlCode == 'helpso_out'">
<el-form-item label="执行部门">
<el-select
@ -134,7 +134,7 @@
icon="el-icon-plus"
@click="table_add"
v-if="params.mio!==null"
style="position: absolute;right: 20px;top: 10px"
style="position: absolute;left: 120px;top: 10px"
>新增</el-button>
<div style="height: 8px"></div>
<scTable
@ -160,12 +160,18 @@
</el-table-column>
<el-table-column label="仓库" prop="warehouse_name">
</el-table-column>
<el-table-column label="单位" prop="material_unit">
<template #default="scope">{{scope.row.material_.unit}}</template>
</el-table-column>
<el-table-column label="数量">
<template #default="scope">
<span v-if="scope.row.material_&&scope.row.material_.tracking==10">{{scope.row.count}}</span>
<el-link v-else :underline="false" type="primary" @click="showWpr(scope.row)">{{scope.row.count}}</el-link>
</template>
</el-table-column>
<el-table-column label="出/入库单位">
<template #default="scope">{{scope.row.note}}</template>
</el-table-column>
<el-table-column
label="创建时间"
prop="create_time"
@ -248,6 +254,11 @@ export default {
urlCode: "helpso_in",
cate: "helpso",
type: "",
rules: {
inout_date: [
{ required: true, message: "请选择出入库日期", trigger: "blur" },
],
}
};
},
mounted() {
@ -314,6 +325,7 @@ export default {
that.mioSaveing = false;
that.mioId = res.id;
that.params.mio = res.id;
that.form = res;
that.apiObj = that.$API.inm.mioitem.list;
that.$API.inm.mio.item.req(res.id).then((res1) => {
that.mioObj = res1;
@ -329,7 +341,8 @@ export default {
let that = this;
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add", that.form.type);
console.log('that.form', that.form);
this.$refs.saveDialog.open("add", that.form.type,40);
});
},
//

View File

@ -61,7 +61,7 @@
</el-table-column>
<el-table-column label="仓库位号" prop="bin_number_main">
</el-table-column>
<el-table-column label="总库存" prop="count">
<el-table-column label="类型" prop="cate">
</el-table-column>
<el-table-column label="安全库存" prop="count_safe">
</el-table-column>

View File

@ -140,6 +140,16 @@
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="mtype==40&&project_code=='gx'">
<el-form-item label="物料单位">
<el-input v-model="form.unit" disabled placeholder="物料单位"/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="mtype==40&&project_code=='gx'">
<el-form-item label="出库单位">
<el-input v-model="form.note" placeholder="出库单位"/>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="mTracking==20&&form.count>1&&(form.type == 'pur_in'||form.type == 'other_in')">
<el-col :md="12" :sm="24" v-for="i in form.count" :key="i">
@ -230,7 +240,7 @@ export default {
other_in: "其他入库",
other_out: "其他出库",
},
form: {count: 1,},
form: {count: 1,note: ''},
rules: {
batch:[
{
@ -271,6 +281,7 @@ export default {
mioitems:[''],
mioitemw:[],
project_code:'',
mtype:null,
mTracking:10,
apiObj:this.$API.mtm.material.list,
};
@ -421,6 +432,7 @@ export default {
var that = this;
var type = this.form.type;
that.form.material = that.selectObj.id;
that.form.unit = that.selectObj.unit;
that.form.unit_price = that.selectObj.unit_price;
that.form.batch = that.cate=='helpso'?that.selectObj.bin_number_main:that.selectObj.batch;
that.mTracking = that.selectObj.tracking;
@ -462,8 +474,9 @@ export default {
this.inputBatchDisable = false;
},
//
open(mode = "add", type = "") {
open(mode = "add", type = "",mtype) {
this.mode = mode;
this.mtype = mtype?mtype:null;
this.form.type = this.type = type;
if (mode == "add") {
this.init();

View File

@ -32,74 +32,114 @@
</div>
</el-header>
<el-main style="padding: 0;">
<scTable
<el-table
ref="table"
:apiObj="apiObj"
:data="tableData"
row-key="id"
stripe
:params="params"
:query="query"
border
style="height: 100%;"
:summary-method="getSummaries"
show-summary
>
<el-table-column type="index" width="50" />
<el-table-column label="日期" prop="inout_date">
<el-table-column label="日期" prop="inout_date" sortable>
</el-table-column>
<el-table-column label="物料编号" show-overflow-tooltip>
<el-table-column label="物料编号" show-overflow-tooltip min-width="80"
:filters="nameFilters1"
:filter-method="filterName1"
filter-placement="bottom-end">
<template #default="scope">
<span v-if="scope.row.material_">{{ scope.row.material_.number }}</span>
</template>
</el-table-column>
<el-table-column label="名称" show-overflow-tooltip>
<el-table-column label="名称" show-overflow-tooltip min-width="80"
:filters="nameFilters2"
:filter-method="filterName2"
filter-placement="bottom-end">
<template #default="scope">
<span v-if="scope.row.material_">{{ scope.row.material_.name }}</span>
</template>
</el-table-column>
<el-table-column label="货位号">
<el-table-column label="货位号"
:filters="nameFilters3"
:filter-method="filterName3"
filter-placement="bottom-end">
<template #default="scope">
<span v-if="scope.row.material_">{{ scope.row.material_.bin_number_main }}</span>
</template>
</el-table-column>
<el-table-column label="规格" prop="batch">
<el-table-column label="规格"
:filters="nameFilters4"
:filter-method="filterName4"
filter-placement="bottom-end">
<template #default="scope">
<span v-if="scope.row.material_">{{ scope.row.material_.specification }}</span>
</template>
</el-table-column>
<el-table-column label="品牌型号" prop="batch">
<el-table-column label="品牌型号"
:filters="nameFilters5"
:filter-method="filterName5"
filter-placement="bottom-end">
<template #default="scope">
<span v-if="scope.row.material_">{{ scope.row.material_.model }}</span>
</template>
</el-table-column>
<el-table-column label="单位" prop="batch">
<el-table-column label="单位" prop="batch"
:filters="nameFilters6"
:filter-method="filterName6"
filter-placement="bottom-end">
<template #default="scope">
<span v-if="scope.row.material_">{{ scope.row.material_.unit }}</span>
</template>
</el-table-column>
<el-table-column label="入库数量" prop="count">
<el-table-column label="入库数量" prop="count" sortable>
</el-table-column>
<el-table-column label="单价" prop="unit_price">
<el-table-column label="单价" prop="unit_price" sortable>
</el-table-column>
<el-table-column label="总金额" prop="price">
<el-table-column label="总金额" prop="price" sortable>
</el-table-column>
<el-table-column label="入库人">
<el-table-column label="入库人"
:filters="nameFilters7"
:filter-method="filterName7"
filter-placement="bottom-end">
<template #default="scope">
<span v-if="scope.row.mio_">{{ scope.row.mio_.submit_user_name }}</span>
</template>
</el-table-column>
<el-table-column label="入库凭证号">
<el-table-column label="入库凭证号"
:filters="nameFilters8"
:filter-method="filterName8"
filter-placement="bottom-end">
<template #default="scope">
<span v-if="scope.row.mio_">{{ scope.row.mio_.number }}</span>
</template>
</el-table-column>
<el-table-column label="类别" prop="type">
<el-table-column label="类别" prop="type"
:filters="nameFilters9"
:filter-method="filterName9"
filter-placement="bottom-end">
<template #default="scope">
<span v-if="scope.row.mio_">{{ typeDict[scope.row.mio_.type] }}</span>
</template>
</el-table-column>
<el-table-column label="供应商" prop="supplier_name">
</el-table-column>
</scTable>
</el-table>
</el-main>
<el-footer>
<el-pagination
background
:small="true"
:total="dataTotal"
layout="total, sizes, prev, pager, next, jumper"
:page-size="params.page_size"
:page-sizes="[20, 50, 100, 200]"
:current-page="params.page"
@current-change="getList"
@update:page-size="getList2"
></el-pagination>
</el-footer>
</el-container>
</template>
<script>
@ -108,9 +148,24 @@ export default {
data() {
return {
apiObj: null,
params: {with_mio:'yes',material__type:40,mio__state:20},
params: {
page:1,
page_size:20,
with_mio:'yes',
material__type:40,
mio__state:20
},
selection: [],
tableData:[],
nameFilters1: [],
nameFilters2: [],
nameFilters3: [],
nameFilters4: [],
nameFilters5: [],
nameFilters6: [],
nameFilters7: [],
nameFilters8: [],
nameFilters9: [],
query: {
search: "",
mio__inout_date__gte: "",
@ -129,16 +184,103 @@ export default {
other_out: "其他出库",
},
project_code:'',
dataTotal:0,
};
},
mounted() {
this.checkTemplate = this.checkTemplate+"?t=" + new Date().getTime();
this.project_code = this.$TOOL.data.get("BASE_INFO").base.base_code;
this.params.mio = this.mioId;
this.apiObj = this.$API.inm.mioitem.list;
// this.apiObj = this.$API.inm.mioitem.list;
let that = this;
that.getList();
},
methods: {
getList(val){
let that = this;
that.params.page = val?val:1;
that.$API.inm.mioitem.list.req(that.params).then((res) => {
if (res.count > 0) {
that.tableData = res.results;
that.dataTotal = res.count;
let numberList=[],nameList = [],batchlist=[],specificationList=[],modelList=[],unitList=[],userList=[],mioNumberList=[],typeList=[];
res.results.forEach((ite) => {
if (numberList.indexOf(ite.material_.number) > -1) {} else {
numberList.push(ite.material_.number);
let obj = {};
obj.text = ite.material_.number;
obj.value = ite.material_.number;
that.nameFilters1.push(obj);
}
if (nameList.indexOf(ite.material_.name) > -1) {} else {
nameList.push(ite.material_.name);
let obj = {};
obj.text = ite.material_.name;
obj.value = ite.material_.name;
that.nameFilters2.push(obj);
}
if (batchlist.indexOf(ite.material_.bin_number_main) > -1) {} else {
batchlist.push(ite.material_.bin_number_main);
let obj = {};
obj.text = ite.material_.bin_number_main;
obj.value = ite.material_.bin_number_main;
that.nameFilters3.push(obj);
}
if (specificationList.indexOf(ite.material_.specification) > -1) {} else {
specificationList.push(ite.material_.specification);
let obj = {};
obj.text = ite.material_.specification;
obj.value = ite.material_.specification;
that.nameFilters4.push(obj);
}
if (modelList.indexOf(ite.material_.model) > -1) {} else {
modelList.push(ite.material_.model);
let obj = {};
obj.text = ite.material_.model;
obj.value = ite.material_.model;
that.nameFilters5.push(obj);
}
if (unitList.indexOf(ite.material_.unit) > -1) {} else {
unitList.push(ite.material_.unit);
let obj = {};
obj.text = ite.material_.unit;
obj.value = ite.material_.unit;
that.nameFilters6.push(obj);
}
if (userList.indexOf(ite.mio_.submit_user_name) > -1) {} else {
userList.push(ite.mio_.submit_user_name);
let obj = {};
obj.text = ite.mio_.submit_user_name;
obj.value = ite.mio_.submit_user_name;
that.nameFilters7.push(obj);
}
if (mioNumberList.indexOf(ite.mio_.number) > -1) {} else {
mioNumberList.push(ite.mio_.number);
let obj = {};
obj.text = ite.mio_.number;
obj.value = ite.mio_.number;
that.nameFilters8.push(obj);
}
if (typeList.indexOf(ite.mio_.type) > -1) {} else {
typeList.push(ite.mio_.type);
let obj = {};
obj.text = that.typeDict[ite.mio_.type];
obj.value = that.typeDict[ite.mio_.type];
that.nameFilters9.push(obj);
}
})
}else{
that.tableData = [];
that.dataTotal = 0;
}
});
},
getList2(val){
let that = this;
that.params.page = 1;
that.params.page_size = val;
that.getList(1);
},
handleCheckSuccess() {
this.$refs.table.refresh();
this.dialog.check = false;
@ -213,6 +355,33 @@ export default {
});
return sums;
},
filterName1(value, row) {
return row.物料编号 === value;
},
filterName2(value, row) {
return row.名称 === value;
},
filterName3(value, row) {
return row.货位号 === value;
},
filterName4(value, row) {
return row.规格 === value;
},
filterName5(value, row) {
return row.品牌型号 === value;
},
filterName6(value, row) {
return row.单位 === value;
},
filterName7(value, row) {
return row.单价 === value;
},
filterName8(value, row) {
return row.入库人 === value;
},
filterName9(value, row) {
return row. 入库凭证号 === value;
},
},
};
</script>

View File

@ -49,6 +49,23 @@
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="form.type==40">
<el-form-item label="辅料类别" prop="cate">
<el-select
v-model="form.cate"
placeholder="辅料类别"
clearable
style="width: 100%"
>
<el-option
v-for="item in cateOptions"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="规格">
<el-input
@ -91,7 +108,7 @@
</el-form-item>
</el-col>
<!-- 玻纤 -->
<el-col :md="12" :sm="24">
<el-col :md="12" :sm="24" v-if="project_code == 'bxerp'">
<el-form-item label="追踪方式" prop="tracking">
<el-select
v-model="form.tracking"
@ -115,9 +132,7 @@
<!-- 光芯 -->
<el-col :md="12" :sm="24" v-if="form.type == 40">
<el-form-item label="仓库位号">
<el-input
v-model="form.bin_number_main"
/>
<el-input v-model="form.bin_number_main"/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="form.type !== 20">
@ -139,23 +154,26 @@
<el-switch v-model="form.into_wm" />
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="form.type==10||form.type==20">
<el-form-item label="产品图纸">
<sc-upload v-model="form.photo" :modelValue="form.photo" title="产品图纸"></sc-upload>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="form.type==10||form.type==20">
<el-form-item label="图纸编号">
<el-input v-model="form.photo_number" placeholder="图纸编号"/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="备注">
<el-input v-model="form.note" placeholder="备注"/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24" v-if="form.type==10||form.type==20||(form.type==40&&project_code == 'gx')">
<el-form-item label="产品图纸">
<sc-upload v-model="form.photo" :modelValue="form.photo" title="产品图纸"></sc-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-main>
<el-footer>
<el-button type="primary" :loading="isSaveing" @click="submit"
>保存</el-button
>
<el-button type="primary" :loading="isSaveing" @click="submit">保存</el-button>
<el-button @click="visible = false">取消</el-button>
</el-footer>
</el-container>
@ -189,6 +207,13 @@ export default {
trigger: "blur",
},
],
cate: [
{
required: true,
message: "请选择辅料类别",
trigger: "blur",
},
],
number: [
{
required: true,
@ -220,6 +245,7 @@ export default {
{ id: 30, name: "主要原料" },
// { id: 40, name: "" },
],
cateOptions: ['主要辅材','办公辅料','设备维护辅料','包装辅材','标识辅材','防护辅材','其他辅材'],
handle_user: [],
selectionFilters: [],
materialOptions: [],