部分检验

This commit is contained in:
shijing 2023-11-03 19:24:34 +08:00
parent 329d30eecb
commit c5b6eb4f58
14 changed files with 2501 additions and 737 deletions

View File

@ -35,9 +35,9 @@
<!-- 曲阳 --> <!-- 曲阳 -->
<!-- <img src="img/bbmg_jy.jpg"/> --> <!-- <img src="img/bbmg_jy.jpg"/> -->
<!-- 托克逊 --> <!-- 托克逊 -->
<img src="img/bbmg.jpg"/> <!-- <img src="img/bbmg.jpg"/> -->
<!-- 光子 --> <!-- 光子 -->
<!-- <img src="img/gz_logo.png"/> --> <img src="img/gz_logo.png"/>
</div> </div>
<div class="app-loading__loader"></div> <div class="app-loading__loader"></div>
<div class="app-loading__title"><%= VUE_APP_TITLE %></div> <div class="app-loading__title"><%= VUE_APP_TITLE %></div>

View File

@ -37,5 +37,47 @@ export default {
return await http.get(this.url, data); return await http.get(this.url, data);
} }
}, },
ftest: {
list: {
name: "首件检验列表",
req: async function(data){
return await http.get(
`${config.API_URL}/qm/ftest/`,
data
);
}
},
item: {
name: "首件检验",
req: async function(id){
return await http.get(
`${config.API_URL}/qm/ftest/${id}/`
);
}
},
update: {
name: "更新首件检验",
req: async function(id, data){
return await http.put(
`${config.API_URL}/qm/ftest/${id}/`,
data);
}
},
create: {
name: "创建首件检验",
req: async function(data){
return await http.post(
`${config.API_URL}/qm/ftest/`,
data);
}
},
delete: {
name: "删除首件检验",
req: async function(id){
return await http.delete(
`${config.API_URL}/qm/ftest/${id}/`);
}
}
},
} }

View File

@ -196,6 +196,72 @@ export default {
} }
} }
}, },
handover:{
list: {
name: "值班记录列表",
req: async function(data){
return await http.get(
`${config.API_URL}/wpm/handover/`,
data
);
}
},
item: {
name: "获取详情",
req: async function(id){
return await http.get(
`${config.API_URL}/wpm/handover/${id}/`
);
}
},
cquery: {
name: "复杂查询",
req: async function(data){
return await http.post(
`${config.API_URL}/wpm/handover/cquery/`,
data);
}
},
update: {
name: "更新",
req: async function(id, data){
return await http.put(
`${config.API_URL}/wpm/handover/${id}/`,
data);
}
},
create: {
name: "创建",
req: async function(data){
return await http.post(
`${config.API_URL}/wpm/handover/`,
data);
}
},
delete: {
name: "删除",
req: async function(id){
return await http.delete(
`${config.API_URL}/wpm/handover/${id}/`);
}
},
genByMlogs:{
name: "从生产日志生成交接记录",
req: async function(data){
return await http.post(
`${config.API_URL}/wpm/handover/gen_by_mlogs/`,
data);
}
},
genByWm:{
name: "从车间库存生成交接记录",
req: async function(data){
return await http.post(
`${config.API_URL}/wpm/handover/gen_by_wm/`,
data);
}
}
},
//车间库存 //车间库存
wmaterial: { wmaterial: {
list: { list: {

View File

@ -643,7 +643,7 @@ const routes = [
"name": "em", "name": "em",
"path": "/em", "path": "/em",
"meta": { "meta": {
"title": "设备", "title": "设备管理",
"icon": "el-icon-grid", "icon": "el-icon-grid",
"type": "menu", "type": "menu",
"perms": ["em"] "perms": ["em"]

View File

@ -42,6 +42,9 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="100px"> <el-table-column label="操作" fixed="right" align="center" width="100px">
<template #default="scope"> <template #default="scope">
<el-link type="primary" @click="table_check(scope.row)" >
检验
</el-link>
<el-link type="danger" @click="table_del(scope.row)" v-if="mioObj.state == 10"> <el-link type="danger" @click="table_del(scope.row)" v-if="mioObj.state == 10">
删除 删除
</el-link> </el-link>
@ -52,18 +55,25 @@
</div> </div>
</div> </div>
<save-dialog v-if="dialog.save" ref="saveDialog" :mioId="mioId" :belongDeptId="belongDeptId" :mioObj="mioObj" <save-dialog v-if="dialog.save" ref="saveDialog" :mioId="mioId" :belongDeptId="belongDeptId" :mioObj="mioObj"
@success="handleSaveSuccess" @closed="dialog.save = false"></save-dialog> @success="handleSaveSuccess" @closed="dialog.save = false">
</save-dialog>
<check-dialog v-if="dialog.check" ref="checkDialog"
@success="handleCheckSuccess" @closed="dialog.check = false">
</check-dialog>
</template> </template>
<script> <script>
import saveDialog from "./mioitem_form.vue"; import saveDialog from "./mioitem_form.vue";
import checkDialog from "./mioitem_check.vue";
export default { export default {
name: "mioitem", name: "mioitem",
components: { components: {
saveDialog, saveDialog,checkDialog
}, },
data() { data() {
return { return {
dialog: { dialog: {
check:false,
save: false, save: false,
}, },
apiObj: null, apiObj: null,
@ -133,6 +143,12 @@ export default {
}); });
}).catch(() => { }); }).catch(() => { });
}, },
table_check(row){
this.dialog.check = true;
this.$nextTick(() => {
this.$refs.checkDialog.open("add");
});
},
// //
handleSaveSuccess(data, mode) { handleSaveSuccess(data, mode) {
if (mode == "add") { if (mode == "add") {
@ -141,6 +157,9 @@ export default {
this.$refs.table.refresh(); this.$refs.table.refresh();
} }
}, },
handleCheckSuccess(){
this.$refs.table.refresh();
},
handleQuery() { handleQuery() {
this.$refs.table.queryData(this.query) this.$refs.table.queryData(this.query)
}, },

View File

@ -0,0 +1,254 @@
<template>
<el-dialog
title="首件检验"
v-model="visible"
:size="1000"
destroy-on-close
@closed="$emit('closed')"
>
<el-container v-loading="loading">
<el-main style="padding: 0 20px 20px 20px">
<el-form
ref="dialogForm"
:model="form"
:rules="rules"
label-width="100px"
>
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="所属部门" prop="belong_dept">
<el-select
v-model="form.belong_dept"
placeholder="所属部门"
clearable style="width:100%"
>
<el-option
v-for="item in deptOptions"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="检验日期" prop="test_date">
<el-date-picker
v-model="form.test_date"
type="date"
value-format="YYYY-MM-DD"
style="width:100%"
/>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="操作人" prop="test_user">
<el-select
v-model="form.test_user"
placeholder="操作人"
clearable
style="width:100%"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="专检人" prop="check_user">
<el-select
v-model="form.check_user"
placeholder="专检人"
clearable
style="width:100%"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-table :data="form.ftestitems" border placeholder="暂无数据">
<el-table-column prop="testitem" label="测量项" min-width="100" align="center">
<template #default="scope">
<span>{{ scope.row.testitem }}</span>
</template>
</el-table-column>
<el-table-column prop="test_val" label="操作人测量值" min-width="120" align="center">
<template #default="scope">
<el-input-number v-model="scope.row.test_val" :min="0" style="width:100%" controls-position="right">
</el-input-number>
</template>
</el-table-column>
<el-table-column prop="check_val" label="专检人测量值" min-width="120" align="center">
<template #default="scope">
<el-input-number v-model="scope.row.check_val" :min="0" style="width:100%" controls-position="right">
</el-input-number>
</template>
</el-table-column>
</el-table>
<el-row style="margin-top:14px">
<el-col :md="12" :sm="24">
<el-form-item label="检验工序集" prop="test_group">
<el-select
v-model="form.test_group"
placeholder="检验工序集"
multiple
clearable style="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 :md="12" :sm="24" prop="is_ok">
<el-form-item label="是否合格" prop="is_ok">
<el-select
v-model="form.is_ok"
placeholder="是否合格"
clearable
style="width:100%"
>
<el-option label="是" value="true"/>
<el-option label="否" value="false"/>
</el-select>
</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-row>
</el-form>
</el-main>
<el-footer>
<el-button type="primary" :loading="isSaveing" @click="submit">保存</el-button>
<el-button @click="visible = false">取消</el-button>
</el-footer>
</el-container>
</el-dialog>
</template>
<script>
export default {
emits: ["success", "closed"],
data() {
return {
loading: false,
form: {
ftestitems:[
{testitem:'椭圆度(≤0.02mm)',test_val:'',check_val:''},
{testitem:'锥度(≤0.05mm)',test_val:'',check_val:''},
{testitem:'直径(≥29.0)',test_val:'',check_val:''},
{testitem:'长度(≥455mm)',test_val:'',check_val:''},
],
},
rules: {
belong_dept: [{required: true, message: "请选择所属部门", trigger: "blur"}],
test_date: [{required: true, message: "请选择检验日期", trigger: "blur"}],
test_user: [{required: true, message: "请选择操作人", trigger: "blur"}],
check_user: [{required: true, message: "请选择专检人", trigger: "blur"}],
test_group:[{required: true, message: "请选择检测工序集", trigger: "blur"}],
is_ok: [{required: true, message: "请选择是否合格", trigger: "blur"}],
},
visible: false,
isSaveing: false,
userList:[],
processOptions: [],
deptOptions: [],
selectionFilters: [],
setFiltersVisible: false,
belong_dept_options: [],
group: [],
};
},
mounted() {
this.getProcess();
this.getUserList();
this.getDeptOptions();
},
methods: {
//
open(mode = "add",type) {
this.mode = mode;
this.visible = true;
return this;
},
//
getDeptOptions() {
this.$API.system.dept.list.req({ page: 0, type__in: 'dept' }).then((res) => {
this.deptOptions = [];
res.forEach(item=>{
if(item.parent=='3423856735881117696'){
this.deptOptions.push(item)
}
})
});
},
//
getUserList(){
let that = this;
this.$API.system.user.list.req({page_size:20,page:1}).then(res=>{
that.userList = res.results;
});
},
getProcess(){
let that = this;
this.$API.mtm.process.list.req({page:0}).then(res=>{
that.processOptions = res;
})
},
//
submit() {
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
this.isSaveing = true;
try {
var res;
this.form.test_group = this.form.test_group.join(',')
if (this.mode == "add") {
res = await this.$API.qm.ftest.create.req(this.form);
} else if (this.mode == "edit") {
res = await this.$API.qm.ftest.update.req(this.form.id,this.form);
}
this.isSaveing = false;
this.$emit("success", this.form, this.mode);
this.visible = false;
this.$message.success("操作成功");
} catch (err) {
//
this.isSaveing = false;
return err;
}
}
});
},
//
setData(data) {
Object.assign(this.form, data);
this.form.test_group = this.form.split(',')
},
//
setFilters(filters) {
this.selectionFilters = filters;
this.setFiltersVisible = true;
},
},
};
</script>
<style>
</style>

View File

@ -31,6 +31,13 @@
</el-table-column> </el-table-column>
<el-table-column label="规格型号" prop="specification"> <el-table-column label="规格型号" prop="specification">
</el-table-column> </el-table-column>
<el-table-column label="关联物料" prop="brothers">
<template #default="scope">
<el-icon v-if="scope.row.brothers.length>0" color="green">
<CircleCheckFilled />
</el-icon>
</template>
</el-table-column>
<el-table-column label="计量单位" prop="unit"> <el-table-column label="计量单位" prop="unit">
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="100"> <el-table-column label="操作" fixed="right" align="center" width="100">
@ -136,6 +143,7 @@ export default {
}).then(() => { }).then(() => {
this.$API.mtm.material.delete.req(row.id).then((res) => { this.$API.mtm.material.delete.req(row.id).then((res) => {
this.$message.success("删除成功"); this.$message.success("删除成功");
this.$refs.table.refresh();
return res; return res;
}).catch((err) => { }).catch((err) => {
return err; return err;

View File

@ -21,11 +21,29 @@
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="物料类别" prop="type"> <el-form-item label="物料类别" prop="type">
<el-select v-model="form.type" placeholder="物料类别" clearable style="width:100%"> <el-select v-model="form.type" placeholder="物料类别" clearable style="width:100%" @change="typeChange">
<el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24">
<el-form-item label="关联物料" prop="type">
<el-select
v-model="brothers"
placeholder="关联物料"
clearable
multiple
style="width:100%"
>
<el-option
v-for="item in materialOptions"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="工艺路线" prop="need_route"> <el-form-item label="工艺路线" prop="need_route">
<el-switch v-model="form.need_route" /> <el-switch v-model="form.need_route" />
@ -70,6 +88,7 @@ export default {
edit: "编辑物料", edit: "编辑物料",
show: "查看物料", show: "查看物料",
}, },
brothers:[],
form: {}, form: {},
rules: { rules: {
name: [{ required: true, message: "请输入物料名称", trigger: "blur" }], name: [{ required: true, message: "请输入物料名称", trigger: "blur" }],
@ -87,11 +106,14 @@ export default {
{ id: 60, name: '辅助工装' }, { id: 60, name: '辅助工装' },
{ id: 70, name: '办公用品' }, { id: 70, name: '办公用品' },
], ],
handle_user:[],
selectionFilters: [], selectionFilters: [],
materialOptions:[],
setFiltersVisible: false, setFiltersVisible: false,
}; };
}, },
mounted() { mounted() {
}, },
methods: { methods: {
// //
@ -100,26 +122,44 @@ export default {
this.visible = true; this.visible = true;
return this; return this;
}, },
getMaterial(val){
let that = this;
let query = {};
query.type = val;
query.page = 0;
query.is_hidden = false;
this.$API.mtm.material.list.req(query).then(res=>{
that.materialOptions = res;
})
},
typeChange(val){
this.getMaterial(val);
},
// //
submit() { submit() {
this.$refs.dialogForm.validate(async (valid) => { this.$refs.dialogForm.validate(async (valid) => {
if (valid) { if (valid) {
this.isSaveing = true; this.isSaveing = true;
try { this.form.brothers = this.brothers;
var res;
if (this.mode == "add") { if (this.mode == "add") {
res = await this.$API.mtm.material.create.req(this.form); this.$API.mtm.material.create.req(this.form).then(res=>{
} else if (this.mode == "edit") {
res = await this.$API.mtm.material.update.req(this.form.id, this.form);
}
this.isSaveing = false; this.isSaveing = false;
this.$emit("success", this.form, this.mode); this.$emit("success", this.form, this.mode);
this.visible = false; this.visible = false;
this.$message.success("操作成功"); this.$message.success("操作成功");
} catch (err) { }).catch(()=>{
//
this.isSaveing = false; this.isSaveing = false;
return err; this.visible = false;
})
} else if (this.mode == "edit") {
this.$API.mtm.material.update.req(this.form.id, this.form).then(res=>{
this.isSaveing = false;
this.$emit("success", this.form, this.mode);
this.visible = false;
this.$message.success("操作成功");
}).catch(()=>{
this.isSaveing = false;
})
} }
} }
}); });
@ -127,6 +167,8 @@ export default {
// //
setData(data) { setData(data) {
Object.assign(this.form, data); Object.assign(this.form, data);
this.brothers = data.brothers;
this.getMaterial(data.type)
}, },
// //
setFilters(filters) { setFilters(filters) {

View File

@ -21,7 +21,7 @@
<el-table-column label="所属部门" prop="belong_dept_name" min-width="150"></el-table-column> <el-table-column label="所属部门" prop="belong_dept_name" min-width="150"></el-table-column>
<el-table-column label="排序" prop="sort" min-width="80"></el-table-column> <el-table-column label="排序" prop="sort" min-width="80"></el-table-column>
<el-table-column label="创建时间" prop="create_time" min-width="150"></el-table-column> <el-table-column label="创建时间" prop="create_time" min-width="150"></el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="140"> <el-table-column label="操作" fixed="right" align="center" width="180">
<template #default="scope"> <template #default="scope">
<el-button link size="small" @click="table_edit(scope.row)" v-auth="'mgroup.update'" <el-button link size="small" @click="table_edit(scope.row)" v-auth="'mgroup.update'"
type="primary">编辑</el-button> type="primary">编辑</el-button>
@ -36,8 +36,12 @@
</scTable> </scTable>
</el-main> </el-main>
</el-container> </el-container>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" <save-dialog
@closed="dialog.save = false"></save-dialog> v-if="dialog.save"
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false">
</save-dialog>
</template> </template>
<script> <script>
import saveDialog from "./mgroup_form.vue"; import saveDialog from "./mgroup_form.vue";

View File

@ -21,6 +21,29 @@
<el-input-number v-model="form.sort" :min="1" /> <el-input-number v-model="form.sort" :min="1" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<sc-form-table ref="table" v-model="materialList" :addTemplate="addTemplate" placeholder="暂无数据">
<el-table-column prop="type" label="输入物料" min-width="120" align="center">
<template #default="scope">
<el-select v-model="scope.row.material_in" style="width: 100%">
<el-option v-for="item in materials" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="type" label="输出物料" min-width="120" align="center">
<template #default="scope">
<el-select v-model="scope.row.material_out" filterable style="width: 100%" >
<el-option v-for="item in materials" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="type" label="操作" min-width="80" align="center">
<template #default="scope">
<el-button type="primary" v-if="scope.row.isedit" @click="submitForm(scope.row,scope.$index)">确定</el-button>
<el-button type="warning" v-else @click="editForm(scope.row,scope.$index)">编辑</el-button>
<el-button type="danger" @click="delForm(scope.row,scope.$index)">删除</el-button>
</template>
</el-table-column>
</sc-form-table>
</el-main> </el-main>
<el-footer> <el-footer>
<el-button type="primary" :loading="isSaveing" @click="submit">保存</el-button> <el-button type="primary" :loading="isSaveing" @click="submit">保存</el-button>
@ -47,7 +70,7 @@ export default {
titleMap: { titleMap: {
add: '新增', add: '新增',
edit: '编辑', edit: '编辑',
show: '查看' show: '查看',
}, },
// //
form: { form: {
@ -62,13 +85,17 @@ export default {
isSaveing: false, isSaveing: false,
options: [], options: [],
group: [], group: [],
routes:[],
materials: [], materials: [],
setFiltersVisible: false, setFiltersVisible: false,
materialList:[{material_in:'',material_out:'',mgroup:'',isedit:true}],
addTemplate:{material_in:'',material_out:'',mgroup:'',isedit:true}
}; };
}, },
mounted() { mounted() {
this.getGroup();// this.getGroup();//
this.getProcess();// this.getProcess();//
this.getMaterial();//
}, },
methods: { methods: {
// //
@ -79,10 +106,31 @@ export default {
}, },
// //
getProcess() { getProcess() {
var res = this.$API.mtm.process.list.req({ page: 0 }).then(res => { this.$API.mtm.process.list.req({ page: 0 }).then(res => {
this.options = res; this.options = res;
}); });
}, },
getMaterial(){
this.$API.mtm.material.list.req({ page: 0,is_hidden:false,type__in:'10,20' }).then(res => {
this.materials = res;
});
},
getRoute(id){
let that = this;
that.$API.mtm.route.list.req({ mgroup: id,page:0 }).then(res => {
that.routes = res;
if(res.length>0){
res.forEach(item=>{
let obj = {};
obj.material_in=item.material_in;
obj.material_out=item.material_out;
obj.mgroup = id;
obj.isedit=false;
})
that.materialList.push(obj);
}else{}
});
},
// //
open(mode = "add") { open(mode = "add") {
this.mode = mode; this.mode = mode;
@ -92,6 +140,10 @@ export default {
// //
setData(data) { setData(data) {
Object.assign(this.form, data); Object.assign(this.form, data);
this.getRoute(data.id);
},
setMgroup(id){
this.form.mgroup = id;
}, },
getReceptionist(data) { getReceptionist(data) {
this.form.leader = data.id; this.form.leader = data.id;
@ -99,9 +151,14 @@ export default {
}, },
// //
submit() { submit() {
console.log(this.mode)
console.log(this.form)
let that = this; let that = this;
that.$refs.dialogForm.validate(async (valid) => { that.$refs.dialogForm.validate(async (valid) => {
if (valid) { if (valid) {
if(this.mode){
}else{
that.form.cate = 'photon'; that.form.cate = 'photon';
that.form.need_enm = false; that.form.need_enm = false;
that.isSaveing = true; that.isSaveing = true;
@ -121,9 +178,36 @@ export default {
}) })
} }
} }
}
}); });
}, },
submitForm(row,index){
let that = this;
let obj = {};
obj.material_in = row.material_in;
obj.material_out = row.material_out;
if (row.id) {
obj.mgroup = row.mgroup;
this.$API.mtm.route.update.req(row.id, obj).then(res => {
that.materialList[index].isedit = false;
})
} else{
obj.mgroup = that.form.id;
this.$API.mtm.route.create.req(obj).then(res => {
that.materialList[index].isedit = false;
})
}
},
editForm(row,index){
let that = this;
that.materialList[index].isedit = true;
},
delForm(row,index){
let that = this;
this.$API.mtm.route.delete.req(row.id).then(res => {
that.getRoute(that.form.id);
})
},
// //
setFilters(filters) { setFilters(filters) {
this.selectionFilters = filters; this.selectionFilters = filters;

View File

@ -0,0 +1,275 @@
<template>
<el-dialog
:title="titleMap[mode]"
v-model="visible"
width="1000px"
:size="1000"
destroy-on-close
@closed="$emit('closed')"
>
<el-form ref="dialogForm" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="交接物料" prop="material">
<el-select
v-model="form.wm"
placeholder="交接物料"
clearable
style="width:100%"
@change="materialChange"
>
<el-option
v-for="item in materialOptions"
:key="item.id"
:label="item.batch"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="交接数量" width="100">
<el-input-number
v-model="form.count"
controls-position="right"
:min="0" step="1"
:step-strictly="true"
style="width:100%"
placeholder="交接数量">
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="送料部门" prop="send_dept">
<el-select
v-model="form.send_dept"
placeholder="送料部门"
clearable
style="width:100%"
>
<el-option
v-for="item in deptOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="交送人" prop="send_user">
<el-select
v-model="form.send_user"
placeholder="交送人"
clearable
style="width:100%"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="接收部门" prop="recive_dept">
<el-select
v-model="form.recive_dept"
placeholder="接收部门"
clearable
style="width:100%"
>
<el-option
v-for="item in deptOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="接收人" prop="recive_user">
<el-select
v-model="form.recive_user"
placeholder="接收人"
clearable
style="width:100%"
>
<el-option
v-for="item in userList2"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="交送日期">
<el-date-picker
v-model="form.send_date"
type="date"
placeholder="选择时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
style="width:100%"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer>
<el-button type="primary" v-loading="isSaveing" @click="submit">确定</el-button>
<el-button @click="resetForm">取消</el-button>
</el-footer>
</el-dialog>
</template>
<script>
export default {
emits: ["success", "closed"],
data() {
return {
yseorno:['是','否'],
loading: false,
mode: "add",
titleMap: {
add: "新增交接记录",
edit: "编辑交接记录",
show: "查看交接记录",
},
handle_user:[],
form:{
batch:'',
count:0,//
wm:'',
send_user:'',
send_dept:'',
send_date:'',
recive_dept:'',
recive_user:'',
},
userList:[],
userList2:[],
deptOptions:[],
materialOptions:[],
visible: false,
isSaveing: false,
setFiltersVisible: false,
};
},
mounted() {
let materialObj = this.$TOOL.data.get('MATERIAL_OBJECT');
this.materialObj = materialObj;
this.getDeptOptions();
this.getMaterial();
this.getUserList();
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth()+1;
let day = date.getDate();
this.form.handle_date = year+'-'+month+'-'+day;
},
methods: {
//68
getUserList(){
let that = this;
this.$API.system.user.list.req({belong_dept__name:'6车间',page:0}).then(res=>{
that.userList2 = res;
});
this.$API.system.user.list.req({belong_dept__name:'8车间',page:0}).then(res=>{
that.userList = res;
});
},
//
getDeptOptions() {
this.$API.system.dept.list.req({ page: 0, type__in: 'dept' }).then((res) => {
this.deptOptions = [];
res.forEach(item=>{
if(item.parent=='3423856735881117696'){
this.deptOptions.push(item)
}
})
});
},
//
getMaterial(){
let that = this;
this.$API.wpm.wmaterial.list.req({belong_dept_name:'8车间',page:0}).then(res=>{
that.materialOptions = res;
});
},
//
getMgroupList(){
let that = this;
this.$API.mtm.mgroup.list.req({page:0,cate:'photon'}).then(res=>{
let data = res.filter(item=>{
return item.process_cate=='成型'
})
that.mgroupOptions = res;
})
},
//
open(mode = "add") {
this.mode = mode;
this.visible = true;
return this;
},
materialChange(val){
let data = this.materialOptions.filter(item=>{
return item.id==val;
})
this.form.batch = data[0].batch;
},
//
submit() {
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
if (this.mode == "add") {
this.$API.wpm.handover.create.req(this.form).then(res=>{
this.isSaveing = false;
this.$emit("success", this.form, this.mode);
this.visible = false;
this.$message.success("操作成功");
}).catch( (err) =>{
//
this.isSaveing = false;
return err;
})
} else if (this.mode == "edit") {
this.$API.wpm.handover.update.req(this.form.id,this.form).then(res=>{
this.isSaveing = false;
this.$emit("success", this.form, this.mode);
this.visible = false;
this.$message.success("操作成功");
}).catch( (err) =>{
//
this.isSaveing = false;
return err;
})
}
}
});
},
//
setData(data) {
Object.assign(this.form, data);
},
//
setFilters(filters) {
this.selectionFilters = filters;
this.setFiltersVisible = true;
},
},
};
</script>
<style scoped>
.formTitle{
margin-bottom:10px;
font-weight:600
}
</style>

View File

@ -1,545 +0,0 @@
<template>
<el-dialog
:title="titleMap[mode]"
v-model="visible"
width="1000px"
:size="1000"
destroy-on-close
@closed="$emit('closed')"
>
<!-- 混料工序 -->
<el-form v-if="activeType=='8车间'" ref="dialogForm" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="工段" prop="material">
<el-select
v-model="form.mgroup"
placeholder="工段"
clearable
style="width:100%"
>
<el-option
v-for="item in mgroupOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="产物" prop="material">
<el-select
v-model="form.material_out"
placeholder="产物"
clearable
style="width:100%"
>
<el-option
v-for="item in materialOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="设备" prop="material">
<el-select
v-model="form.equipment"
placeholder="设备"
clearable
style="width:100%"
>
<el-option
v-for="item in equipmentOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="批次" width="100">
<el-input v-model="form.batch" tyle="width:100%" placeholder="请输入批次"></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="数量" width="100">
<el-input-number
v-model="form.count_real"
controls-position="right"
:min="0" step="1"
:step-strictly="true"
style="width:100%"
placeholder="请输入数量">
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="重量" width="100">
<el-input-number
v-model="form.count_real_eweight"
controls-position="right"
:min="0" step="1"
:step-strictly="true"
style="width:100%"
placeholder="请输入重量">
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="配料人" prop="material">
<el-select
v-model="handle_user"
placeholder="配料人"
clearable
multiple
style="width:100%"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 七车间 -->
<el-form v-if="activeType=='7车间'" ref="ruleForm" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="锅号">
<el-select
v-model="form.equipment"
placeholder="锅号"
clearable
style="width:100%"
>
<el-option
v-for="item in equipmentOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="第几锅">
<el-select
v-model="form.index"
placeholder="第几锅"
clearable
style="width:100%"
>
<el-option
v-for="item in 8"
: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="产品名称" prop="material">
<el-select
v-model="form.material_out"
placeholder="产品名称"
clearable
style="width:100%"
>
<el-option
v-for="item in materialOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="产品规格" prop="material">
<el-select
v-model="form.cate"
placeholder="产品规格"
clearable
style="width:100%"
>
<el-option
v-for="item in cateOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="产品编号">
<el-input-number
v-model="form.count_real"
controls-position="right"
:min="0" step="1"
:step-strictly="true"
style="width:100%"
placeholder="请输入批次号">
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="配粉料数(kg)">
<el-input-number
v-model="form.count_real_eweight"
controls-position="right"
:min="0"
step="1"
:precision="2"
style="width:100%"
placeholder="请输入配粉料数kg">
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="生产量">
<el-input-number
v-model="form.count_real"
controls-position="right"
:min="0" step="1"
:step-strictly="true"
style="width:100%"
placeholder="生产量">
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="合格量">
<el-input-number
v-model="form.count_ok"
controls-position="right"
:min="0" step="1"
:step-strictly="true"
style="width:100%"
placeholder="合格量">
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="合格率">
<el-input-number
v-model="form.count_ok"
controls-position="right"
:min="0" step="1"
:step-strictly="true"
style="width:100%"
placeholder="合格率">
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="退火炉号">
<el-select
v-model="form.cate"
placeholder="退火炉号"
clearable
style="width:100%"
>
<el-option
v-for="item in 8"
: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-select
v-model="form.o2"
placeholder="是否加氧"
clearable
style="width:100%"
>
<el-option
v-for="item in yseorno"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item prop="type" label="成型人">
<el-select
v-model="form.handle_user"
placeholder="成型人"
clearable
style="width:100%"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item prop="type" label="切料人">
<el-select
v-model="form.handle_user"
placeholder="切料人"
clearable
style="width:100%"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 十车间 -->
<el-form v-if="activeType=='10车间'" ref="ruleForm" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="产品规格" prop="material">
<el-select
v-model="form.cate"
placeholder="产品规格"
clearable
style="width:100%"
>
<el-option
v-for="item in cateOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="班次" prop="material">
<el-select
v-model="form.shift"
placeholder="班次"
clearable
style="width:100%"
>
<el-option
v-for="item in shiftOptions"
: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="合格数量" width="100">
<el-input-number
v-model="form.count_ok"
controls-position="right"
:min="0" step="1"
:step-strictly="true"
style="width:100%"
placeholder="请输入合格数量">
</el-input-number>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item prop="type" label="成型人">
<el-select
v-model="form.handle_user"
placeholder="成型人"
clearable
style="width:100%"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item prop="type" label="带班人">
<el-select
v-model="form.handle_leader"
placeholder="带班人"
clearable
style="width:100%"
>
<el-option
v-for="item in userList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-footer>
<el-button type="primary" v-loading="isSaveing" @click="submit">提交</el-button>
<el-button @click="resetForm">取消</el-button>
</el-footer>
</el-dialog>
</template>
<script>
export default {
emits: ["success", "closed"],
props:{
mtask: { type: String, default: '' },
activeType:{ type: String, default: '' },
},
data() {
return {
yseorno:['是','否'],
loading: false,
mode: "add",
titleMap: {
add: "新增记录",
edit: "编辑记录",
show: "查看记录",
},
handle_user:[],
form:{},
userList:[],
cateOptions:[],
mgroupOptions:[],
materialOptions:[],
equipmentOptions:[],
shiftOptions:['白班','夜班'],
visible: false,
isSaveing: false,
setFiltersVisible: false,
handle_name:'',
leader_name:'',
};
},
mounted() {
this.getMaterial();
this.getUserList();
this.getEquipment();
this.getMgroupList();
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth()+1;
let day = date.getDate();
this.form.handle_date = year+'-'+month+'-'+day;
},
methods: {
getUserList(){
let that = this;
this.$API.system.user.list.req({belong_dept__name:this.activeType,page:0}).then(res=>{
that.userList = res;
});
},
//
getMgroupList(){
let that = this;
this.$API.mtm.mgroup.list.req({page:0,cate:'photon'}).then(res=>{
let data = res.filter(item=>{
return item.process_cate=='成型'
})
that.mgroupOptions = data;
})
},
//
getEquipment(){
this.$API.em.equipment.list.req({page:0,type:10}).then(res=>{
this.equipmentOptions = res;
})
},
getMaterial(){
let obj ={};
obj.page = 0;
obj.type = 20;
obj.is_hidden = false;
this.$API.mtm.material.list.req(obj).then(res=>{
this.materialOptions = res;
})
},
//
open(mode = "add") {
this.mode = mode;
this.visible = true;
return this;
},
//
submit() {
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
this.isSaveing = true;
if(this.mtask!==''){
this.form.mtask = this.mtask;
}else{
this.form.handle_user = this.handle_user.join(',');
}
if (this.mode == "add") {
this.$API.wpm.mlog.create.req(this.form).then(res=>{
this.isSaveing = false;
this.$emit("success", this.form, this.mode);
this.visible = false;
this.$message.success("操作成功");
}).catch( (err) =>{
//
this.isSaveing = false;
return err;
})
} else if (this.mode == "edit") {
this.$API.wpm.mlog.update.req(this.form.id,this.form).then(res=>{
this.isSaveing = false;
this.$emit("success", this.form, this.mode);
this.visible = false;
this.$message.success("操作成功");
}).catch( (err) =>{
//
this.isSaveing = false;
return err;
})
}
}
});
},
//
setData(data) {
Object.assign(this.form, data);
if(this.activeType=='8车间'){
if(this.form.handle_user.indexOf(',')>-1){
this.handle_user = this.form.handle_user.split(',')
}else{
this.handle_user = [this.form.handle_user];
}
}
},
//
setFilters(filters) {
this.selectionFilters = filters;
this.setFiltersVisible = true;
},
},
};
</script>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff