fix: 订单/采购订单相关页面修改

This commit is contained in:
caoqianming 2023-10-19 14:08:31 +08:00
parent bf69acb053
commit b65b83dc20
14 changed files with 794 additions and 1044 deletions

View File

@ -89,10 +89,10 @@ export default {
}, },
submit: { submit: {
name: "提交", name: "提交",
req: async function(data){ req: async function(id){
return await http.post( return await http.post(
`${config.API_URL}/inm/mio//${id}/submit/`, `${config.API_URL}/inm/mio/${id}/submit/`,
data); );
} }
}, },
}, },

View File

@ -53,10 +53,10 @@ export default {
}, },
submit:{ submit:{
name: "提交采购订单", name: "提交采购订单",
req: async function(data){ req: async function(id){
return await http.post( return await http.post(
`${config.API_URL}/pum/pu_order/${id}/submit/`, `${config.API_URL}/pum/pu_order/${id}/submit/`,
data); );
} }
}, },
}, },

View File

@ -832,25 +832,15 @@ const routes = [
"component": "inm/materialbatch" "component": "inm/materialbatch"
}, },
{ {
"name": "fifo", "name": "mio",
"path": "/inm/fifo", "path": "/inm/mio",
"meta": { "meta": {
"title": "出入库记录", "title": "出入库记录",
"icon": "el-icon-cellphone", "icon": "el-icon-cellphone",
"perms": ["inm"] "perms": ["inm"]
}, },
"component": "inm/fifo" "component": "inm/mio"
}, }
{
"name": "material",
"path": "/inm/material",
"meta": {
"title": "物料产品",
"icon": "el-icon-cellphone",
"perms": ["inm"]
},
"component": "ungrouped/material"
},
] ]
}, },

View File

@ -1,241 +0,0 @@
<template>
<el-container>
<el-header>
<div class="left-panel">
<el-button
type="primary"
icon="el-icon-plus"
>
新增出/入库
</el-button>
</div>
<div class="right-panel">
<el-input
v-model="query.search"
placeholder="名称"
clearable
style="margin-right: 5px;"
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
>
<el-table-column type="index" width="50"/>
<el-table-column label="记录编号"></el-table-column>
<el-table-column label="操作人员">
</el-table-column>
<el-table-column label="出/入库时间">
</el-table-column>
<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-link
type="primary"
@click="table_edit(scope.row)"
v-auth="'warehouse.update'"
>
查看
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link
type="danger"
@click="table_del(scope.row)"
v-auth="'warehouse.delete'"
>
删除
</el-link>
</template>
</el-table-column>
</scTable>
</el-main>
</el-container>
<save-dialog
v-if="dialog.save"
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
<!-- 生产领料/生产入库 -->
<el-Dialog
:title="titleMap[mode]"
v-model="visible"
>
<el-form
ref="dialogForm"
:model="form"
:rules="rules"
label-width="80px"
>
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="编号" prop="type">
<el-radio-group v-model="form.type">
<el-radio :label="10">准入</el-radio>
<el-radio :label="20">禁入</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="类型" prop="obj_cate">
<el-select
v-model="form.obj_cate"
style="width: 100%"
>
<el-option
v-for="item in cateOptions"
: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="do_user">
<span style="display:flex">
<el-input readonly v-model="form.employee_name"></el-input>
<ehsEpSelect :multiple="false" @submit="getEmployee"/>
</span>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="所属车间" prop="dept">
<el-cascader
v-model="form.dept"
:options="deptOptions"
:props="groupsProps"
clearable
style="width: 100%"
>
</el-cascader>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<el-button type="primary" :loading="isSaveing" @click="submit">
保存
</el-button>
<el-button @click="visible = false">取消</el-button>
</template>
</el-Dialog>
</template>
<script>
import saveDialog from "./warehouse_form.vue";
export default {
name: "rparty",
components: {
saveDialog,
},
data() {
return {
mode:'do_out',
titleMap:{
'do_out':'生产领料',
'sale_out':'销售发货',
'pur_in':'采购入库',
'do_in':'生产入库',
'other_in':'其他入库',
'other_out':'其他出库',
},
cateOptions:[
{id:'do_out',name:'生产领料'},
{id:'sale_out',name:'销售发货'},
{id:'pur_in',name:'采购入库'},
{id:'do_in',name:'生产入库'},
{id:'other_in',name:'其他入库'},
{id:'other_out',name:'其他出库'},
],
dialog: {
save: false,
},
query:{
search:''
},
form:{
},
visible:false,
apiObj: this.$API.inm.mio.list,
selection: [],
types_: {
1: "生产领料",
2: "销售提货",
3: "采购入库",
4: "生产入库",
5: "其他入库",
6: "其他出库",
},
rules: {
// do_user: [{required: true, message: "", trigger: "blur"}],
number: [{required: true, message: "请输入编号", trigger: "blur"}],
// belong_dept: [{required: true, message: "", trigger: "blur"}],
},
};
},
methods: {
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
},
//
table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
table_show(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("show").setData(row);
});
},
//
table_del(row) {
this.$confirm(`确定删除吗?`, "提示", {
type: "warning",
}).then(() => {
this.$API.inm.warehouse.delete.req(row.id).then((res) => {
this.$message.success("删除成功");
return res;
}).catch((err) => {
return err;
});
}).catch(() => {});
},
//
handleSaveSuccess(data, mode) {
if (mode == "add") {
this.$refs.table.refresh();
} else if (mode == "edit") {
this.$refs.table.refresh();
}
},
handleQuery() {
this.$refs.table.queryData(this.query)
},
resetQuery() {
this.query = {};
},
},
};
</script>

View File

@ -2,35 +2,20 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-input <el-input v-model="query.search" placeholder="名称" clearable style="margin-right: 5px;"></el-input>
v-model="query.search" <el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
placeholder="名称"
clearable
style="margin-right: 5px;"
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div> </div>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable <scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query">
ref="table" <el-table-column type="index" width="50" />
:apiObj="apiObj" <el-table-column label="物料批次" prop="batch">
row-key="id"
stripe
:params="query"
>
<el-table-column type="index" width="50"/>
<el-table-column label="物料批次" prop="name">
</el-table-column> </el-table-column>
<el-table-column label="物料名称" prop="number"> <el-table-column label="物料名称" prop="material_name">
</el-table-column> </el-table-column>
<el-table-column label="规格型号" prop="model"> <el-table-column label="规格型号" prop="material.model">
</el-table-column> </el-table-column>
<el-table-column label="仓库" prop="warehouse"> <el-table-column label="仓库" prop="warehouse_name">
</el-table-column> </el-table-column>
<el-table-column label="物料存量" prop="count"> <el-table-column label="物料存量" prop="count">
</el-table-column> </el-table-column>
@ -45,16 +30,16 @@ export default {
return { return {
apiObj: this.$API.inm.warehouse.batch, apiObj: this.$API.inm.warehouse.batch,
query: { query: {
page:1, page: 1,
page_size:20 page_size: 20
}, },
selection: [], selection: [],
}; };
}, },
methods: { methods: {
handleQuery() { handleQuery() {
this.$refs.table.queryData(this.query) this.$refs.table.queryData(this.query)
}, },
resetQuery() { resetQuery() {
this.query = {}; this.query = {};
}, },

213
src/views/inm/mio.vue Normal file
View File

@ -0,0 +1,213 @@
<template>
<el-container>
<el-header>
<div class="left-panel">
<el-button type="primary" icon="el-icon-plus">
新增出/入库
</el-button>
</div>
<div class="right-panel">
<el-input v-model="query.search" placeholder="名称" clearable style="margin-right: 5px;"></el-input>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
</div>
</el-header>
<el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe>
<el-table-column type="index" width="50" />
<el-table-column label="记录编号" prop="number"></el-table-column>
<el-table-column label="记录状态">
<template #default="scope">
{{ stateDict[scope.row.state] }}
</template>
</el-table-column>
<el-table-column label="出/入库类型">
<template #default="scope">
{{ typeDict[scope.row.type] }}
</template>
</el-table-column>
<el-table-column label="出/入库日期" prop="inout_date">
</el-table-column>
<el-table-column label="创建人" prop="create_by_name">
</el-table-column>
<el-table-column label="创建时间" prop="create_time">
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="150px">
<template #default="scope">
<el-link type="primary" @click="table_edit(scope.row)">
查看
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link type="primary" @click="table_submit(scope.row)" v-auth="'mio.submit'">
提交
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link type="danger" @click="table_del(scope.row)" v-auth="'mio.delete'">
删除
</el-link>
</template>
</el-table-column>
</scTable>
</el-main>
</el-container>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
@closed="dialog.save = false"></save-dialog>
<!-- 生产领料/生产入库 -->
<el-Dialog :title="typeDict[mode]" v-model="visible">
<el-form ref="dialogForm" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="编号" prop="type">
<el-radio-group v-model="form.type">
<el-radio :label="10">准入</el-radio>
<el-radio :label="20">禁入</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="类型" prop="obj_cate">
<el-select v-model="form.obj_cate" style="width: 100%">
<el-option v-for="item in cateOptions" :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="do_user">
<span style="display:flex">
<el-input readonly v-model="form.employee_name"></el-input>
<ehsEpSelect :multiple="false" @submit="getEmployee" />
</span>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="所属车间" prop="dept">
<el-cascader v-model="form.dept" :options="deptOptions" :props="groupsProps" clearable style="width: 100%">
</el-cascader>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<el-button type="primary" :loading="isSaveing" @click="submit">
保存
</el-button>
<el-button @click="visible = false">取消</el-button>
</template>
</el-Dialog>
</template>
<script>
import saveDialog from "./warehouse_form.vue";
export default {
name: "rparty",
components: {
saveDialog,
},
data() {
return {
mode: 'do_out',
stateDict: {
10: '创建中',
20: '已提交'
},
typeDict: {
'do_out': '生产领料',
'sale_out': '销售发货',
'pur_in': '采购入库',
'do_in': '生产入库',
'other_in': '其他入库',
'other_out': '其他出库',
},
cateOptions: [
{ id: 'do_out', name: '生产领料' },
{ id: 'sale_out', name: '销售发货' },
{ id: 'pur_in', name: '采购入库' },
{ id: 'do_in', name: '生产入库' },
{ id: 'other_in', name: '其他入库' },
{ id: 'other_out', name: '其他出库' },
],
dialog: {
save: false,
},
query: {
search: ''
},
form: {
},
visible: false,
apiObj: this.$API.inm.mio.list,
selection: [],
types_: {
1: "生产领料",
2: "销售提货",
3: "采购入库",
4: "生产入库",
5: "其他入库",
6: "其他出库",
},
rules: {
// do_user: [{required: true, message: "", trigger: "blur"}],
number: [{ required: true, message: "请输入编号", trigger: "blur" }],
// belong_dept: [{required: true, message: "", trigger: "blur"}],
},
};
},
methods: {
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
},
//
table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
table_show(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("show").setData(row);
});
},
//
table_del(row) {
this.$confirm(`确定删除吗?`, "提示", {
type: "warning",
}).then(() => {
this.$API.inm.mio.delete.req(row.id).then((res) => {
this.$message.success("删除成功");
this.$refs.table.refresh();
return res;
}).catch((err) => {
return err;
});
}).catch(() => { });
},
table_submit(row) {
this.$API.inm.mio.submit.req(row.id).then(res => {
this.$message.success("提交成功");
this.$refs.table.refresh()
})
},
//
handleSaveSuccess(data, mode) {
if (mode == "add") {
this.$refs.table.refresh();
} else if (mode == "edit") {
this.$refs.table.refresh();
}
},
handleQuery() {
this.$refs.table.queryData(this.query)
},
resetQuery() {
this.query = {};
},
},
};
</script>

View File

@ -2,58 +2,31 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-input <el-input v-model="query.search" placeholder="名称" clearable style="margin-right: 5px;"></el-input>
v-model="query.search" <el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
placeholder="名称"
clearable
style="margin-right: 5px;"
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div> </div>
<div class="right-panel"> <div class="right-panel">
<el-button type="primary" icon="el-icon-plus" @click="add"></el-button> <el-button type="primary" icon="el-icon-plus" @click="add"></el-button>
</div> </div>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable <scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query">
ref="table" <el-table-column type="index" width="50" />
:apiObj="apiObj"
row-key="id"
stripe
:params="query"
>
<el-table-column type="index" width="50"/>
<el-table-column label="仓库名称" prop="name" show-overflow-tooltip> <el-table-column label="仓库名称" prop="name" show-overflow-tooltip>
</el-table-column> </el-table-column>
<el-table-column label="仓库编号" prop="number"> <el-table-column label="仓库编号" prop="number">
</el-table-column> </el-table-column>
<el-table-column label="仓库地点" prop="model"> <el-table-column label="仓库地点" prop="place">
</el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="factory" show-overflow-tooltip> <el-table-column label="创建时间" prop="create_time" show-overflow-tooltip>
</el-table-column>
<el-table-column label="备注" show-overflow-tooltip>
<template #default="scope">{{ scope.row.description }}</template>
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="150px"> <el-table-column label="操作" fixed="right" align="center" width="150px">
<template #default="scope"> <template #default="scope">
<el-link <el-link type="primary" @click="table_edit(scope.row)" v-auth="'warehouse.update'">
type="primary"
@click="table_edit(scope.row)"
v-auth="'warehouse.update'"
>
编辑 编辑
</el-link> </el-link>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<el-link <el-link type="danger" @click="table_del(scope.row)" v-auth="'warehouse.delete'">
type="danger"
@click="table_del(scope.row)"
v-auth="'warehouse.delete'"
>
删除 删除
</el-link> </el-link>
</template> </template>
@ -61,14 +34,10 @@
</scTable> </scTable>
</el-main> </el-main>
</el-container> </el-container>
<save-dialog <save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
v-if="dialog.save" @closed="dialog.save = false"></save-dialog>
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
</template> </template>
<script> <script>
import saveDialog from "./warehouse_form.vue"; import saveDialog from "./warehouse_form.vue";
export default { export default {
name: "rparty", name: "rparty",
@ -82,17 +51,17 @@ export default {
}, },
apiObj: this.$API.inm.warehouse.list, apiObj: this.$API.inm.warehouse.list,
query: { query: {
page:1, page: 1,
page_size:20, page_size: 20,
type:10 type: 10
}, },
selection: [], selection: [],
state_: { state_: {
10: '完好', 10: '完好',
20: '限用', 20: '限用',
30: '在修', 30: '在修',
40: '禁用', 40: '禁用',
}, },
}; };
}, },
methods: { methods: {
@ -128,7 +97,7 @@ export default {
}).catch((err) => { }).catch((err) => {
return err; return err;
}); });
}).catch(() => {}); }).catch(() => { });
}, },
// //
@ -140,8 +109,8 @@ export default {
} }
}, },
handleQuery() { handleQuery() {
this.$refs.table.queryData(this.query) this.$refs.table.queryData(this.query)
}, },
resetQuery() { resetQuery() {
this.query = {}; this.query = {};
}, },

View File

@ -16,16 +16,20 @@
<template #default="scope"><span>{{ mtaskStateOptions[scope.row.state] }}</span> <template #default="scope"><span>{{ mtaskStateOptions[scope.row.state] }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="工段" prop="mgroup_name">
<!-- <template #default="scope"><span>{{ mtaskStateOptions[scope.row.state] }}</span>
</template> -->
</el-table-column>
<!-- <el-table-column label="产品名称" prop="material" show-overflow-tooltip> <!-- <el-table-column label="产品名称" prop="material" show-overflow-tooltip>
</el-table-column> </el-table-column>
<el-table-column label="型号" prop="number"> <el-table-column label="型号" prop="number">
</el-table-column> --> </el-table-column> -->
<el-table-column label="工段" prop="mgroup_name">
</el-table-column>
<el-table-column label="任务量" prop="count"> <el-table-column label="任务量" prop="count">
</el-table-column> </el-table-column>
<el-table-column label="实际生产数" prop="count_real"> <el-table-column label="实际生产数" prop="count_real">
</el-table-column> </el-table-column>
<el-table-column label="合格数" prop="count_ok">
</el-table-column>
<el-table-column label="开工时间" prop="start_date"> <el-table-column label="开工时间" prop="start_date">
</el-table-column> </el-table-column>
<el-table-column label="完工时间" prop="end_date"> <el-table-column label="完工时间" prop="end_date">

View File

@ -1,174 +1,142 @@
<template> <template>
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-input <el-input v-model="query.search" placeholder="名称" clearable style="margin-right: 5px;"></el-input>
v-model="query.search" <el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
placeholder="名称" </div>
clearable <div class="right-panel">
style="margin-right: 5px;" <el-button type="primary" icon="el-icon-plus" @click="add" v-auth="'pu_order.create'"></el-button>
></el-input> </div>
<el-button </el-header>
type="primary" <el-main class="nopadding">
icon="el-icon-search" <scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query">
@click="handleQuery" <el-table-column type="index" width="50" />
></el-button> <el-table-column label="订单编号" prop="number">
</div> </el-table-column>
<div class="right-panel"> <el-table-column label="供应商" prop="supplier_name" show-overflow-tooltip>
<el-button type="primary" icon="el-icon-plus" @click="add" v-auth="'pu_order.create'"></el-button> </el-table-column>
</div> <el-table-column label="截止到货日期" prop="delivery_date">
</el-header> </el-table-column>
<el-main class="nopadding"> <el-table-column label="状态" prop="state">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
:params="query"
>
<el-table-column type="index" width="50"/>
<el-table-column label="订单编号" prop="number">
</el-table-column>
<el-table-column label="供应商" prop="supplier" show-overflow-tooltip>
</el-table-column>
<el-table-column label="截止到货日期" prop="delivery_date">
</el-table-column>
<el-table-column label="状态" prop="state">
<template #default="scope"> <template #default="scope">
<span><el-tag :type="stateOption[scope.row.state].color">{{stateOption[scope.row.state]}}</el-tag></span> <span><el-tag :type="stateOption[scope.row.state].color">{{ stateOption[scope.row.state] }}</el-tag></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="提交时间" prop="submit_time"> <el-table-column label="提交时间" prop="submit_time">
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="200"> <el-table-column label="操作" fixed="right" align="center" width="200">
<template #default="scope"> <template #default="scope">
<el-link <el-link type="primary" @click="table_detail(scope.row)" v-auth="'pu_order.update'">
type="primary" 详情
@click="table_detail(scope.row)" </el-link>
v-auth="'pu_order.update'" <el-divider direction="vertical"></el-divider>
> <el-link type="primary" @click="table_edit(scope.row)" v-auth="'pu_order.update'">
详情 编辑
</el-link> </el-link>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<el-link <el-link type="primary" @click="table_submit(scope.row)" v-auth="'pu_order.update'">
type="primary" 提交
@click="table_edit(scope.row)" </el-link>
v-auth="'pu_order.update'" <el-divider direction="vertical"></el-divider>
> <el-link type="danger" @click="table_del(scope.row)" v-auth="'pu_order.delete'">
编辑 删除
</el-link> </el-link>
<el-divider direction="vertical"></el-divider> </template>
<el-link </el-table-column>
type="primary" </scTable>
@click="table_submit(scope.row)" </el-main>
v-auth="'pu_order.update'" </el-container>
> <save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
提交 @closed="dialog.save = false"></save-dialog>
</el-link> </template>
<el-divider direction="vertical"></el-divider> <script>
<el-link import saveDialog from "./order_form.vue";
type="danger" export default {
@click="table_del(scope.row)" name: "rparty",
v-auth="'pu_order.delete'" components: {
> saveDialog,
删除 },
</el-link> data() {
</template> return {
</el-table-column> dialog: {
</scTable> save: false,
</el-main> },
</el-container> apiObj: this.$API.pum.order.list,
<save-dialog query: {
v-if="dialog.save" page: 1,
ref="saveDialog" page_size: 20
@success="handleSaveSuccess" },
@closed="dialog.save = false" selection: [],
></save-dialog> stateOption: {
</template> 10: '创建中',
<script> 20: '已提交',
import saveDialog from "./order_form.vue"; 30: '到货中',
export default { 40: '已完成',
name: "rparty", },
components: { };
saveDialog, },
methods: {
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
}, },
data() { //
return { table_edit(row) {
dialog: { this.dialog.save = true;
save: false, this.$nextTick(() => {
}, this.$refs.saveDialog.open("edit").setData(row);
apiObj: this.$API.pum.order.list, });
query: {
page:1,
page_size:20
},
selection: [],
stateOption: {
10: '创建中',
20: '已提交',
30: '下单中',
40: '下单完成',
50: '已完成',
},
};
}, },
methods: { //
// table_detail(row) {
add() { this.$nextTick(() => {
this.dialog.save = true; this.$router.push({
this.$nextTick(() => { name: "orderitem",
this.$refs.saveDialog.open("add"); query: {
pu_order: row.id
}
}); });
}, });
// },
table_edit(row) { table_submit(row) {
this.dialog.save = true; console.log(row)
this.$nextTick(() => { this.$API.pum.order.submit.req(row.id).then((res) => {
this.$refs.saveDialog.open("edit").setData(row); this.$refs.table.refresh();
}); })
}, },
// //
table_detail(row) { async table_del(row) {
this.$nextTick(() => { this.$confirm(`确定删除吗?`, "提示", {
this.$router.push({
name: "orderitem",
query:{
pu_order:row.id
}
});
});
},
table_submit(){
},
//
async table_del(row) {
this.$confirm(`确定删除吗?`, "提示", {
type: "warning", type: "warning",
}).then(() => { }).then(() => {
this.$API.pum.order.delete.req(row.id).then((res) => { this.$API.pum.order.delete.req(row.id).then((res) => {
this.$message.success("删除成功"); this.$message.success("删除成功");
return res;
}).catch((err) => {
return err;
});
}).catch(() => {});
},
//
handleSaveSuccess(data, mode) {
if (mode == "add") {
this.$refs.table.refresh(); this.$refs.table.refresh();
} else if (mode == "edit") { return res;
this.$refs.table.refresh(); }).catch((err) => {
} return err;
}, });
handleQuery() { }).catch(() => { });
this.$refs.table.queryData(this.query)
},
resetQuery() {
this.query = {};
},
}, },
};
</script> //
handleSaveSuccess(data, mode) {
if (mode == "add") {
this.$refs.table.refresh();
} else if (mode == "edit") {
this.$refs.table.refresh();
}
},
handleQuery() {
this.$refs.table.queryData(this.query)
},
resetQuery() {
this.query = {};
},
},
};
</script>

View File

@ -2,20 +2,12 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-input <el-input v-model="query.search" placeholder="名称" clearable style="margin-right: 5px;"></el-input>
v-model="query.search" <el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
placeholder="名称"
clearable
style="margin-right: 5px;"
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div> </div>
<div class="right-panel"> <div class="right-panel">
<el-button type="primary" icon="el-icon-plus" @click="addLinkPlanItem" v-auth="'pu_orderitem.create'">关联采购订单</el-button> <el-button type="primary" icon="el-icon-plus" @click="addLinkPlanItem"
v-auth="'pu_orderitem.create'">计划明细变更采购明细</el-button>
<el-button type="primary" icon="el-icon-plus" @click="add" v-auth="'pu_orderitem.create'"></el-button> <el-button type="primary" icon="el-icon-plus" @click="add" v-auth="'pu_orderitem.create'"></el-button>
</div> </div>
</el-header> </el-header>
@ -38,14 +30,8 @@
</el-form> </el-form>
</el-card> </el-card>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable <scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query" hidePagination>
ref="table" <el-table-column type="index" width="50" />
:apiObj="apiObj"
row-key="id"
stripe
:params="query"
>
<el-table-column type="index" width="50"/>
<el-table-column label="物料" prop="material" show-overflow-tooltip> <el-table-column label="物料" prop="material" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.material_"> {{ scope.row.material_.name }}</span> <span v-if="scope.row.material_"> {{ scope.row.material_.name }}</span>
@ -61,19 +47,11 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="left" width="100px"> <el-table-column label="操作" fixed="right" align="left" width="100px">
<template #default="scope"> <template #default="scope">
<el-link <el-link type="primary" @click="table_edit(scope.row)" v-auth="'pu_orderitem.update'">
type="primary"
@click="table_edit(scope.row)"
v-auth="'pu_orderitem.update'"
>
编辑 编辑
</el-link> </el-link>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<el-link <el-link type="danger" @click="table_del(scope.row)" v-auth="'pu_orderitem.delete'">
type="danger"
@click="table_del(scope.row)"
v-auth="'pu_orderitem.delete'"
>
删除 删除
</el-link> </el-link>
</template> </template>
@ -81,20 +59,10 @@
</scTable> </scTable>
</el-main> </el-main>
</el-container> </el-container>
<save-dialog <save-dialog v-if="dialog.save" ref="saveDialog" :puOrder="puOrder" @success="handleSaveSuccess"
v-if="dialog.save" @closed="dialog.save = false"></save-dialog>
ref="saveDialog" <plan-dialog v-if="dialog.plan" ref="planDialog" :puOrder="puOrder" @success="handlePlanSuccess"
:puOrder="puOrder" @closed="dialog.plan = false"></plan-dialog>
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
<plan-dialog
v-if="dialog.plan"
ref="planDialog"
:puOrder="puOrder"
@success="handlePlanSuccess"
@closed="dialog.plan = false"
></plan-dialog>
</template> </template>
<script> <script>
import saveDialog from "./orderitem_form.vue"; import saveDialog from "./orderitem_form.vue";
@ -102,7 +70,7 @@ import planDialog from "./orderitemplan.vue";
export default { export default {
name: "rparty", name: "rparty",
components: { components: {
saveDialog,planDialog saveDialog, planDialog
}, },
data() { data() {
return { return {
@ -112,26 +80,26 @@ export default {
}, },
apiObj: this.$API.pum.orderitem.list, apiObj: this.$API.pum.orderitem.list,
query: { query: {
page:1, page: 1,
page_size:20 page_size: 20
}, },
puOrder:'', puOrder: '',
orderObj:{}, orderObj: {},
selection: [], selection: [],
state_: { state_: {
10: '完好', 10: '完好',
20: '限用', 20: '限用',
30: '在修', 30: '在修',
40: '禁用', 40: '禁用',
}, },
}; };
}, },
mounted(){ mounted() {
this.puOrder = this.$route.query.pu_order; this.puOrder = this.$route.query.pu_order;
this.getOrder(); this.getOrder();
}, },
methods: { methods: {
getOrder(){ getOrder() {
this.$API.pum.order.item.req(this.puOrder).then((res) => { this.$API.pum.order.item.req(this.puOrder).then((res) => {
this.orderObj = res; this.orderObj = res;
}) })
@ -143,7 +111,7 @@ export default {
this.$refs.saveDialog.open("add"); this.$refs.saveDialog.open("add");
}); });
}, },
addLinkPlanItem(row){ addLinkPlanItem(row) {
this.dialog.plan = true; this.dialog.plan = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.planDialog.open(); this.$refs.planDialog.open();
@ -175,13 +143,14 @@ export default {
this.$confirm(`确定删除吗?`, "提示", { this.$confirm(`确定删除吗?`, "提示", {
type: "warning", type: "warning",
}).then(() => { }).then(() => {
this.$API.inm.warehouse.delete.req(row.id).then((res) => { this.$API.pum.orderitem.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;
}); });
}).catch(() => {}); }).catch(() => { });
}, },
// //
handleSaveSuccess(data, mode) { handleSaveSuccess(data, mode) {
@ -191,13 +160,13 @@ export default {
this.$refs.table.refresh(); this.$refs.table.refresh();
} }
}, },
handlePlanSuccess(){ handlePlanSuccess() {
this.dialog.plan = true; this.dialog.plan = false;
this.$refs.table.refresh(); this.$refs.table.refresh();
}, },
handleQuery() { handleQuery() {
this.$refs.table.queryData(this.query) this.$refs.table.queryData(this.query)
}, },
resetQuery() { resetQuery() {
this.query = {}; this.query = {};
}, },

View File

@ -1,11 +1,5 @@
<template> <template>
<el-dialog <el-dialog title="计划明细变更采购订单明细" v-model="visible" :size="1000" destroy-on-close @closed="$emit('closed')">
title="计划明细变更采购订单明细"
v-model="visible"
:size="1000"
destroy-on-close
@closed="$emit('closed')"
>
<el-container> <el-container>
<el-aside width="45%"> <el-aside width="45%">
<el-container> <el-container>
@ -19,16 +13,8 @@
</div> </div>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable <scTable ref="table" :data="tableData" row-key="id" stripe hideDo="false" :params="query" highlightCurrentRow
ref="table" @selection-change="handleSelectionChange">
:data="tableData"
row-key="id"
stripe
hideDo="false"
:params="query"
highlightCurrentRow
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="50" /> <el-table-column type="selection" width="50" />
<el-table-column label="物料" prop="material" show-overflow-tooltip> <el-table-column label="物料" prop="material" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
@ -37,7 +23,7 @@
</el-table-column> </el-table-column>
<el-table-column label="数量" prop="need_count"></el-table-column> <el-table-column label="数量" prop="need_count"></el-table-column>
<el-table-column label="需求日期" prop="need_date"></el-table-column> <el-table-column label="需求日期" prop="need_date"></el-table-column>
<el-table-column label="采购计划" prop="采购计划"></el-table-column> <el-table-column label="采购计划" prop="pu_plan_number"></el-table-column>
</scTable> </scTable>
</el-main> </el-main>
@ -55,11 +41,7 @@
</div> </div>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<el-table <el-table ref="table2" :data="selectData" stripe>
ref="table2"
:data="selectData"
stripe
>
<el-table-column label="" type="index"></el-table-column> <el-table-column label="" type="index"></el-table-column>
<el-table-column label="物料" prop="material" show-overflow-tooltip> <el-table-column label="物料" prop="material" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
@ -68,91 +50,81 @@
</el-table-column> </el-table-column>
<el-table-column label="数量" prop="need_count"></el-table-column> <el-table-column label="数量" prop="need_count"></el-table-column>
<el-table-column label="需求日期" prop="need_date"></el-table-column> <el-table-column label="需求日期" prop="need_date"></el-table-column>
<el-table-column label="采购计划" prop="采购计划"></el-table-column> <el-table-column label="采购计划" prop="pu_plan_number"></el-table-column>
<el-table-column label="操作" fixed="right" align="center"> <el-table-column label="操作" fixed="right" align="center">
<template #default="scope"> <template #default="scope">
<el-button <el-button type="primary" link size="small" @click.stop="table_del(index, scope.row)"
type="primary" v-auth="'post.update'">删除
link </el-button>
size="small" </template>
@click.stop="table_del(index,scope.row)" </el-table-column>
v-auth="'post.update'"
>删除
</el-button>
</template>
</el-table-column>
</el-table> </el-table>
</el-main> </el-main>
</el-container> </el-container>
</el-container> </el-container>
<el-footer> <el-footer>
<el-button type="primary" :loading="isSaveing" @click="createOrderItem">生成订单</el-button> <el-button type="primary" :loading="isSaveing" @click="createOrderItem">生成订单</el-button>
<el-button @click="clearSelect">清空选择</el-button> <el-button @click="clearSelect">清空选择</el-button>
</el-footer> </el-footer>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
export default { export default {
emits: ["success", "closed"], emits: ["success", "closed"],
name: "orderitemplan", name: "orderitemplan",
props:{ props: {
puPlan: { type: String, default: '' }, puOrder: { type: String, default: '' },
}, },
data() { data() {
return { return {
query: { query: {
pu_plan__state__in:'20,30', pu_plan__state__in: '20,30',
page:0 page: 0
}, },
selectData:[], selectData: [],
tableData:[], tableData: [],
visible: false, visible: false,
isSaveing: false, isSaveing: false,
setFiltersVisible: false, setFiltersVisible: false,
}; };
}, },
mounted(){ mounted() {
this.getList(); this.getList();
}, },
methods: { methods: {
// //
open() { open() {
this.visible = true; this.visible = true;
return this; return this;
}, },
getList(){ getList() {
this.$API.pum.planitem.list.req(this.query).then(res=>{ this.$API.pum.planitem.list.req(this.query).then(res => {
let data = res.filters(item=>{ this.tableData = res;
return item.pu_plan==null;
})
this.tableData = data;
}) })
}, },
createOrderItem(){ createOrderItem() {
let obj = {}; let obj = {};
let pu_planitems = []; let pu_planitems = [];
obj.pu_order = this.pu_order; obj.pu_order = this.puOrder;
this.selectData.forEach(item => { this.selectData.forEach(item => {
pu_planitems.push(item.id) pu_planitems.push(item.id)
}); });
obj.pu_planitems = pu_planitems; obj.pu_planitems = pu_planitems;
this.$API.pum.orderitem.addplanitems.req(obj).then(res=>{ this.$API.pum.orderitem.addplanitems.req(obj).then(res => {
debugger; debugger;
console.log(res) console.log(res)
this.$emit("success"); this.$emit("success");
}) })
}, },
clearSelect(){ clearSelect() {
this.selectData = []; this.selectData = [];
this.$refs.table.clearSelection(); this.$refs.table.clearSelection();
}, },
handleSelectionChange(val){ handleSelectionChange(val) {
this.selectData = val; this.selectData = val;
}, },
table_del(index,row) { table_del(index, row) {
this.$API.system.post.delete.req(row.id).then(res=>{ this.selectData.splice(index, 1)
this.$refs.table.refresh()
})
}, },
// //
@ -174,5 +146,4 @@ export default {
}; };
</script> </script>
<style> <style></style>
</style>

View File

@ -2,172 +2,140 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-input <el-input v-model="query.search" placeholder="名称" clearable style="margin-right: 5px;"></el-input>
v-model="query.search" <el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
placeholder="名称"
clearable
style="margin-right: 5px;"
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div> </div>
<div class="right-panel"> <div class="right-panel">
<el-button type="primary" icon="el-icon-plus" @click="add"></el-button> <el-button type="primary" icon="el-icon-plus" @click="add"></el-button>
</div> </div>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable <scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query">
ref="table" <el-table-column type="index" width="50" />
:apiObj="apiObj"
row-key="id"
stripe
:params="query"
>
<el-table-column type="index" width="50"/>
<el-table-column label="计划名称" prop="name" show-overflow-tooltip> <el-table-column label="计划名称" prop="name" show-overflow-tooltip>
</el-table-column> </el-table-column>
<el-table-column label="计划编号" prop="number"> <el-table-column label="计划编号" prop="number">
</el-table-column> </el-table-column>
<el-table-column label="状态" prop="state"> <el-table-column label="状态" prop="state">
<template #default="scope"> <template #default="scope">
<span><el-tag :type="stateOption[scope.row.state].color">{{stateOption[scope.row.state]}}</el-tag></span> <span><el-tag :type="stateOption[scope.row.state].color">{{ stateOption[scope.row.state] }}</el-tag></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="提交时间" prop="submit_time" show-overflow-tooltip> <el-table-column label="提交时间" prop="submit_time" show-overflow-tooltip>
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="200"> <el-table-column label="操作" fixed="right" align="center" width="200">
<template #default="scope"> <template #default="scope">
<el-link <el-link type="primary" @click="table_detail(scope.row)">详情
type="primary"
@click="table_detail(scope.row)"
>详情
</el-link> </el-link>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<el-link <el-link type="primary" @click="table_edit(scope.row)" v-auth="'pu_plan.update'"
type="primary" :disabled="scope.row.state !== 10">编辑
@click="table_edit(scope.row)"
v-auth="'pu_plan.update'"
>编辑
</el-link> </el-link>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<el-link <el-link type="primary" @click="table_submit(scope.row)" v-auth="'pu_plan.update'"
type="primary" :disabled="scope.row.state !== 10">提交
@click="table_submit(scope.row)"
v-auth="'pu_plan.update'"
:disabled="scope.row.state!==10"
>提交
</el-link> </el-link>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<el-link <el-link type="danger" @click="table_del(scope.row)" v-auth="'pu_plan.delete'">删除
type="danger"
@click="table_del(scope.row)"
v-auth="'pu_plan.delete'"
>删除
</el-link> </el-link>
</template> </template>
</el-table-column> </el-table-column>
</scTable> </scTable>
</el-main> </el-main>
</el-container> </el-container>
<save-dialog <save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
v-if="dialog.save" @closed="dialog.save = false"></save-dialog>
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
</template> </template>
<script> <script>
import saveDialog from "./plan_form.vue"; import saveDialog from "./plan_form.vue";
export default { export default {
name: "rparty", name: "rparty",
components: { components: {
saveDialog, saveDialog,
}, },
data() { data() {
return { return {
dialog: { dialog: {
save: false, save: false,
},
apiObj: this.$API.pum.plan.list,
query: {
page:1,
page_size:20,
type:10
},
selection: [],
stateOption: {
10: '创建中',
20: '已提交',
30: '下单中',
40: '下单完成',
50: '已完成',
},
};
},
methods: {
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
}, },
// apiObj: this.$API.pum.plan.list,
table_detail(row) { query: {
this.$nextTick(() => { page: 1,
this.$router.push({ page_size: 20,
type: 10
},
selection: [],
stateOption: {
10: '创建中',
20: '已提交',
30: '下单中',
40: '下单完成',
50: '已完成',
},
};
},
methods: {
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
},
//
table_detail(row) {
this.$nextTick(() => {
this.$router.push({
name: "planitem", name: "planitem",
query:{pu_plan:row.id} query: { pu_plan: row.id }
}); });
}); });
},
//
table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
table_submit(row){
console.log(row.id)
this.$API.pum.plan.submit.req(row.id).then((res) => {
console.log(res);
debugger;
this.$message.success("提交成功");
});
},
//
table_del(row) {
this.$confirm(`确定删除该计划吗?`, "提示", {
type: "warning",
}).then(() => {
this.$API.pum.plan.delete.req(row.id).then((res) => {
this.$message.success("删除成功");
return res;
}).catch((err) => {
return err;
});
}).catch(() => {});
},
//
handleSaveSuccess(data, mode) {
if (mode == "add") {
this.$refs.table.refresh();
} else if (mode == "edit") {
this.$refs.table.refresh();
}
},
handleQuery() {
this.$refs.table.queryData(this.query)
},
resetQuery() {
this.query = {};
},
}, },
}; //
</script> table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
table_submit(row) {
console.log(row.id)
this.$API.pum.plan.submit.req(row.id).then((res) => {
this.$refs.table.refresh();
debugger;
this.$message.success("提交成功");
});
},
//
table_del(row) {
this.$confirm(`确定删除该计划吗?`, "提示", {
type: "warning",
}).then(() => {
this.$API.pum.plan.delete.req(row.id).then((res) => {
this.$message.success("删除成功");
this.$refs.table.refresh();
return res;
}).catch((err) => {
return err;
});
}).catch(() => { });
},
//
handleSaveSuccess(data, mode) {
if (mode == "add") {
this.$refs.table.refresh();
} else if (mode == "edit") {
this.$refs.table.refresh();
}
},
handleQuery() {
this.$refs.table.queryData(this.query)
},
resetQuery() {
this.query = {};
},
},
};
</script>

View File

@ -1,177 +1,140 @@
<template> <template>
<el-container> <div style="padding: 8px">
<el-header> <div>
<div class="left-panel"> <el-card style="width: 100%" header="基本信息" shadow="hover">
<el-input <el-descriptions>
v-model="query.search" <el-descriptions-item label="计划名称">{{ orderObj.name }}</el-descriptions-item>
placeholder="名称" <el-descriptions-item label="计划编号">{{ orderObj.number }}</el-descriptions-item>
clearable <el-descriptions-item label="计划状态">{{ orderObj.state }}</el-descriptions-item>
style="margin-right: 5px;" </el-descriptions>
></el-input> </el-card>
<el-button </div>
type="primary" <div style="height:8px"></div>
icon="el-icon-search" <div>
@click="handleQuery" <el-card style="width: 100%" header="计划明细" shadow="hover">
></el-button> <div>
</div> <el-button type="primary" icon="el-icon-plus" v-auth="'pu_planitem.create'" @click="add"></el-button>
<div class="right-panel"> </div>
<el-button type="primary" icon="el-icon-plus" v-auth="'pu_planitem.create'" @click="add"></el-button> <scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query" hidePagination>
</div> <el-table-column type="index" width="50" />
</el-header> <el-table-column label="所属物料" prop="material" show-overflow-tooltip>
<el-card> <template #default="scope">
<el-form label-width="120px"> <span v-if="scope.row.material_"> {{ scope.row.material_.name }}</span>
<el-row> </template>
<el-col :md="12" :sm="24"> </el-table-column>
<el-form-item label="计划名称:">{{ orderObj.name }}</el-form-item> <el-table-column label="所属数量" prop="need_count">
</el-col> </el-table-column>
<el-col :md="12" :sm="24"> <el-table-column label="需求日期" prop="need_date" show-overflow-tooltip>
<el-form-item label="计划编号:">{{ orderObj.number }}</el-form-item> </el-table-column>
</el-col> <el-table-column label="部门" prop="belong_dept_name">
<el-col :md="12" :sm="24"> </el-table-column>
<el-form-item label="计划状态:">{{ orderObj.state }}</el-form-item> <el-table-column label="关联采购订单" prop="pu_order">
</el-col> </el-table-column>
</el-row> <el-table-column label="创建人" prop="create_by_name">
</el-form> </el-table-column>
</el-card> <el-table-column label="备注" prop="note" show-overflow-tooltip>
<el-main class="nopadding"> </el-table-column>
<scTable <el-table-column label="操作" fixed="right" align="center" width="100px">
ref="table" <template #default="scope">
:apiObj="apiObj" <el-link type="primary" @click="table_edit(scope.row)" v-auth="'pu_planitem.update'">
row-key="id" 编辑
stripe </el-link>
:params="query" <el-divider direction="vertical"></el-divider>
> <el-link type="danger" @click="table_del(scope.row)" v-auth="'pu_planitem.delete'">
<el-table-column type="index" width="50"/> 删除
<el-table-column label="所属物料" prop="material" show-overflow-tooltip> </el-link>
<template #default="scope"> </template>
<span v-if="scope.row.material_"> {{ scope.row.material_.name }}</span> </el-table-column>
</template> </scTable>
</el-table-column> </el-card>
<el-table-column label="所属数量" prop="need_count"> </div>
</el-table-column> </div>
<el-table-column label="需求日期" prop="need_date" show-overflow-tooltip> <save-dialog v-if="dialog.save" ref="saveDialog" :puPlan="puPlan" @success="handleSaveSuccess"
</el-table-column> @closed="dialog.save = false"></save-dialog>
<el-table-column label="采购计划" prop="pu_plan">
</el-table-column>
<el-table-column label="关联采购订单" prop="pu_order">
</el-table-column>
<el-table-column label="创建人" prop="create_by">
</el-table-column>
<el-table-column label="备注" prop="note" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="100px">
<template #default="scope">
<el-link
type="primary"
@click="table_edit(scope.row)"
v-auth="'pu_planitem.update'"
>
编辑
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link
type="danger"
@click="table_del(scope.row)"
v-auth="'pu_planitem.delete'"
>
删除
</el-link>
</template>
</el-table-column>
</scTable>
</el-main>
</el-container>
<save-dialog
v-if="dialog.save"
ref="saveDialog"
:puPlan="puPlan"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
</template> </template>
<script> <script>
import saveDialog from "./planitem_form.vue"; import saveDialog from "./planitem_form.vue";
export default { export default {
name: "rparty", name: "rparty",
components: { components: {
saveDialog, saveDialog,
},
data() {
return {
dialog: {
save: false,
},
puPlan: '',
orderObj: {},
apiObj: this.$API.pum.planitem.list,
query: {
page: 1,
page_size: 20
},
};
},
mounted() {
this.puPlan = this.$route.query.pu_plan;
this.getOrder();
},
methods: {
getOrder() {
this.$API.pum.plan.item.req(this.puPlan).then((res) => {
debugger;
console.log(res);
this.orderObj = res;
})
}, },
data() { //
return { add() {
dialog: { this.dialog.save = true;
save: false, this.$nextTick(() => {
}, this.$refs.saveDialog.open("add");
puPlan:'', });
orderObj:{},
apiObj: this.$API.pum.planitem.list,
query: {
page:1,
page_size:20
},
};
}, },
mounted(){ //
this.puPlan = this.$route.query.pu_plan; table_edit(row) {
this.getOrder(); this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
table_show(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("show").setData(row);
});
}, },
methods: {
getOrder(){
this.$API.pum.plan.item.req(this.puPlan).then((res) => {
debugger;
console.log(res);
this.orderObj = res;
})
},
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
},
//
table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
table_show(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("show").setData(row);
});
},
// //
table_del(row) { table_del(row) {
this.$confirm(`确定删除该计划详情吗?`, "提示", { this.$confirm(`确定删除该计划详情吗?`, "提示", {
type: "warning", type: "warning",
}).then(() => { }).then(() => {
this.$API.pum.planitem.delete.req(row.id).then((res) => { this.$API.pum.planitem.delete.req(row.id).then((res) => {
this.$message.success("删除成功"); this.$message.success("删除成功");
return res; return res;
}).catch((err) => { }).catch((err) => {
return err; return err;
}); });
}).catch(() => {}); }).catch(() => { });
},
//
handleSaveSuccess(data, mode) {
if (mode == "add") {
this.$refs.table.refresh();
} else if (mode == "edit") {
this.$refs.table.refresh();
}
},
handleQuery() {
this.$refs.table.queryData(this.query)
},
resetQuery() {
this.query = {};
},
}, },
};
</script> //
handleSaveSuccess(data, mode) {
if (mode == "add") {
this.$refs.table.refresh();
} else if (mode == "edit") {
this.$refs.table.refresh();
}
},
handleQuery() {
this.$refs.table.queryData(this.query)
},
resetQuery() {
this.query = {};
},
},
};
</script>

View File

@ -1,57 +1,40 @@
<template> <template>
<el-dialog <el-dialog :title="titleMap[mode]" v-model="visible" :size="1000" destroy-on-close @closed="$emit('closed')">
:title="titleMap[mode]"
v-model="visible"
:size="1000"
destroy-on-close
@closed="$emit('closed')"
>
<el-container v-loading="loading"> <el-container v-loading="loading">
<el-main style="padding: 0 20px 20px 20px"> <el-main style="padding: 0 20px 20px 20px">
<el-form <el-form ref="dialogForm" :model="form" :rules="rules" label-width="120px">
ref="dialogForm"
:model="form"
:rules="rules"
label-width="120px"
>
<el-row> <el-row>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="所需物料" prop="material"> <el-form-item label="所需物料" prop="material">
<el-select <el-select v-model="form.material" placeholder="所需物料" clearable style="width:100%">
v-model="form.material" <el-option v-for="item in options" :key="item.id" :label="item.name"
placeholder="所需物料" :value="item.id"></el-option>
clearable
style="width:100%"
>
<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-col :md="12" :sm="24">
<el-form-item label="所需数量" prop="need_count"> <el-form-item label="所需数量" prop="need_count">
<el-input-number v-model="form.need_count" :precision="0" :min="0" controls-position="right" placeholder="所需数量" style="width:100%"/> <el-input-number v-model="form.need_count" :precision="0" :min="0" controls-position="right"
placeholder="所需数量" style="width:100%" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="需求日期"> <el-form-item label="需求日期">
<el-date-picker <el-date-picker v-model="form.need_date" type="date" placeholder="需求日期"
v-model="form.need_date" value-format="YYYY-MM-DD" style="width:100%">
type="date"
placeholder="需求日期"
value-format="YYYY-MM-DD"
style="width:100%"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-form-item label="所属部门">
<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 :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="form.note" placeholder="备注"/> <el-input v-model="form.note" placeholder="备注" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -65,82 +48,90 @@
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
export default { export default {
emits: ["success", "closed"], emits: ["success", "closed"],
props:{ props: {
puPlan: { type: String, default: '' }, puPlan: { type: String, default: '' },
}, },
data() { data() {
return { return {
loading: false, loading: false,
mode: "add", mode: "add",
titleMap: { titleMap: {
add: "新增采购详情", add: "新增采购详情",
edit: "编辑采购详情", edit: "编辑采购详情",
show: "查看采购详情", show: "查看采购详情",
},
form: {},
rules: {
material: [{required: true, message: "请选择物料", trigger: "blur"}],
need_date: [{required: true, message: "请输入需求日期", trigger: "blur"}],
need_count: [{required: true, message: "请输入所需数量", trigger: "blur"}],
},
visible: false,
isSaveing: false,
setFiltersVisible: false,
options: [],
};
},
mounted() {
this.getList();
},
methods: {
//
open(mode = "add") {
this.mode = mode;
this.visible = true;
return this;
}, },
getList(){ form: {},
this.$API.mtm.material.list.req({page:0}).then(res=>{ rules: {
this.options = res; material: [{ required: true, message: "请选择物料", trigger: "blur" }],
}) need_date: [{ required: true, message: "请输入需求日期", trigger: "blur" }],
need_count: [{ required: true, message: "请输入所需数量", trigger: "blur" }],
}, },
// visible: false,
submit() { isSaveing: false,
this.$refs.dialogForm.validate(async (valid) => { setFiltersVisible: false,
if (valid) { options: [],
this.isSaveing = true; deptOptions: [],
try { };
var res; },
this.form.pu_plan = this.puPlan; mounted() {
if (this.mode == "add") { this.getList();
res = await this.$API.pum.planitem.create.req(this.form); this.getDeptOptions();
} else if (this.mode == "edit") { },
res = await this.$API.pum.planitem.update.req(this.form.id,this.form); methods: {
} //
this.isSaveing = false; getDeptOptions() {
this.$emit("success", this.form, this.mode); this.$API.system.dept.list.req({ page: 0, type: 'dept' }).then(res => {
this.visible = false; this.deptOptions = res;
this.$message.success("操作成功"); });
} catch (err) { },
// //
this.isSaveing = false; open(mode = "add") {
return err; this.mode = mode;
this.visible = true;
return this;
},
getList() {
this.$API.mtm.material.list.req({ page: 0 }).then(res => {
this.options = res;
})
},
//
submit() {
this.$refs.dialogForm.validate(async (valid) => {
if (valid) {
this.isSaveing = true;
try {
var res;
this.form.pu_plan = this.puPlan;
if (this.mode == "add") {
res = await this.$API.pum.planitem.create.req(this.form);
} else if (this.mode == "edit") {
res = await this.$API.pum.planitem.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);
},
//
setFilters(filters) {
this.selectionFilters = filters;
this.setFiltersVisible = true;
},
}, },
}; //
setData(data) {
Object.assign(this.form, data);
},
//
setFilters(filters) {
this.selectionFilters = filters;
this.setFiltersVisible = true;
},
},
};
</script> </script>