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: {
name: "提交",
req: async function(data){
req: async function(id){
return await http.post(
`${config.API_URL}/inm/mio//${id}/submit/`,
data);
`${config.API_URL}/inm/mio/${id}/submit/`,
);
}
},
},

View File

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

View File

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

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-header>
<div class="left-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>
<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
:params="query"
>
<el-table-column type="index" width="50"/>
<el-table-column label="物料批次" prop="name">
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query">
<el-table-column type="index" width="50" />
<el-table-column label="物料批次" prop="batch">
</el-table-column>
<el-table-column label="物料名称" prop="number">
<el-table-column label="物料名称" prop="material_name">
</el-table-column>
<el-table-column label="规格型号" prop="model">
<el-table-column label="规格型号" prop="material.model">
</el-table-column>
<el-table-column label="仓库" prop="warehouse">
<el-table-column label="仓库" prop="warehouse_name">
</el-table-column>
<el-table-column label="物料存量" prop="count">
</el-table-column>
@ -45,16 +30,16 @@ export default {
return {
apiObj: this.$API.inm.warehouse.batch,
query: {
page:1,
page_size:20
page: 1,
page_size: 20
},
selection: [],
};
},
methods: {
handleQuery() {
this.$refs.table.queryData(this.query)
},
this.$refs.table.queryData(this.query)
},
resetQuery() {
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-header>
<div class="left-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>
<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>
<div class="right-panel">
<el-button type="primary" icon="el-icon-plus" @click="add"></el-button>
</div>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
:params="query"
>
<el-table-column type="index" width="50"/>
<scTable ref="table" :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>
<el-table-column label="仓库编号" prop="number">
</el-table-column>
<el-table-column label="仓库地点" prop="model">
<el-table-column label="仓库地点" prop="place">
</el-table-column>
<el-table-column label="创建时间" prop="factory" show-overflow-tooltip>
</el-table-column>
<el-table-column label="备注" show-overflow-tooltip>
<template #default="scope">{{ scope.row.description }}</template>
<el-table-column label="创建时间" prop="create_time" show-overflow-tooltip>
</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 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 type="danger" @click="table_del(scope.row)" v-auth="'warehouse.delete'">
删除
</el-link>
</template>
@ -61,14 +34,10 @@
</scTable>
</el-main>
</el-container>
<save-dialog
v-if="dialog.save"
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
@closed="dialog.save = false"></save-dialog>
</template>
<script>
<script>
import saveDialog from "./warehouse_form.vue";
export default {
name: "rparty",
@ -82,17 +51,17 @@ export default {
},
apiObj: this.$API.inm.warehouse.list,
query: {
page:1,
page_size:20,
type:10
page: 1,
page_size: 20,
type: 10
},
selection: [],
state_: {
10: '完好',
20: '限用',
30: '在修',
40: '禁用',
},
10: '完好',
20: '限用',
30: '在修',
40: '禁用',
},
};
},
methods: {
@ -128,7 +97,7 @@ export default {
}).catch((err) => {
return err;
});
}).catch(() => {});
}).catch(() => { });
},
//
@ -140,8 +109,8 @@ export default {
}
},
handleQuery() {
this.$refs.table.queryData(this.query)
},
this.$refs.table.queryData(this.query)
},
resetQuery() {
this.query = {};
},

View File

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

View File

@ -1,174 +1,142 @@
<template>
<el-container>
<el-header>
<div class="left-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>
<div class="right-panel">
<el-button type="primary" icon="el-icon-plus" @click="add" v-auth="'pu_order.create'"></el-button>
</div>
</el-header>
<el-main class="nopadding">
<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">
<el-container>
<el-header>
<div class="left-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>
<div class="right-panel">
<el-button type="primary" icon="el-icon-plus" @click="add" v-auth="'pu_order.create'"></el-button>
</div>
</el-header>
<el-main class="nopadding">
<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_name" 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">
<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>
</el-table-column>
<el-table-column label="提交时间" prop="submit_time">
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="200">
<template #default="scope">
<el-link
type="primary"
@click="table_detail(scope.row)"
v-auth="'pu_order.update'"
>
详情
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link
type="primary"
@click="table_edit(scope.row)"
v-auth="'pu_order.update'"
>
编辑
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link
type="primary"
@click="table_submit(scope.row)"
v-auth="'pu_order.update'"
>
提交
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link
type="danger"
@click="table_del(scope.row)"
v-auth="'pu_order.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>
</template>
<script>
import saveDialog from "./order_form.vue";
export default {
name: "rparty",
components: {
saveDialog,
<el-table-column label="提交时间" prop="submit_time">
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="200">
<template #default="scope">
<el-link type="primary" @click="table_detail(scope.row)" v-auth="'pu_order.update'">
详情
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link type="primary" @click="table_edit(scope.row)" v-auth="'pu_order.update'">
编辑
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link type="primary" @click="table_submit(scope.row)" v-auth="'pu_order.update'">
提交
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link type="danger" @click="table_del(scope.row)" v-auth="'pu_order.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>
</template>
<script>
import saveDialog from "./order_form.vue";
export default {
name: "rparty",
components: {
saveDialog,
},
data() {
return {
dialog: {
save: false,
},
apiObj: this.$API.pum.order.list,
query: {
page: 1,
page_size: 20
},
selection: [],
stateOption: {
10: '创建中',
20: '已提交',
30: '到货中',
40: '已完成',
},
};
},
methods: {
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
},
data() {
return {
dialog: {
save: false,
},
apiObj: this.$API.pum.order.list,
query: {
page:1,
page_size:20
},
selection: [],
stateOption: {
10: '创建中',
20: '已提交',
30: '下单中',
40: '下单完成',
50: '已完成',
},
};
//
table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
methods: {
//
add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
//
table_detail(row) {
this.$nextTick(() => {
this.$router.push({
name: "orderitem",
query: {
pu_order: row.id
}
});
},
//
table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
table_detail(row) {
this.$nextTick(() => {
this.$router.push({
name: "orderitem",
query:{
pu_order:row.id
}
});
});
},
table_submit(){
},
//
async table_del(row) {
this.$confirm(`确定删除吗?`, "提示", {
});
},
table_submit(row) {
console.log(row)
this.$API.pum.order.submit.req(row.id).then((res) => {
this.$refs.table.refresh();
})
},
//
async table_del(row) {
this.$confirm(`确定删除吗?`, "提示", {
type: "warning",
}).then(() => {
this.$API.pum.order.delete.req(row.id).then((res) => {
this.$message.success("删除成功");
return res;
}).catch((err) => {
return err;
});
}).catch(() => {});
},
//
handleSaveSuccess(data, mode) {
if (mode == "add") {
}).then(() => {
this.$API.pum.order.delete.req(row.id).then((res) => {
this.$message.success("删除成功");
this.$refs.table.refresh();
} else if (mode == "edit") {
this.$refs.table.refresh();
}
},
handleQuery() {
this.$refs.table.queryData(this.query)
},
resetQuery() {
this.query = {};
},
return res;
}).catch((err) => {
return err;
});
}).catch(() => { });
},
};
</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-header>
<div class="left-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>
<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>
<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>
</div>
</el-header>
@ -38,14 +30,8 @@
</el-form>
</el-card>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
:params="query"
>
<el-table-column type="index" width="50"/>
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query" hidePagination>
<el-table-column type="index" width="50" />
<el-table-column label="物料" prop="material" show-overflow-tooltip>
<template #default="scope">
<span v-if="scope.row.material_"> {{ scope.row.material_.name }}</span>
@ -61,19 +47,11 @@
</el-table-column>
<el-table-column label="操作" fixed="right" align="left" width="100px">
<template #default="scope">
<el-link
type="primary"
@click="table_edit(scope.row)"
v-auth="'pu_orderitem.update'"
>
<el-link type="primary" @click="table_edit(scope.row)" v-auth="'pu_orderitem.update'">
编辑
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link
type="danger"
@click="table_del(scope.row)"
v-auth="'pu_orderitem.delete'"
>
<el-link type="danger" @click="table_del(scope.row)" v-auth="'pu_orderitem.delete'">
删除
</el-link>
</template>
@ -81,20 +59,10 @@
</scTable>
</el-main>
</el-container>
<save-dialog
v-if="dialog.save"
ref="saveDialog"
:puOrder="puOrder"
@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>
<save-dialog v-if="dialog.save" ref="saveDialog" :puOrder="puOrder" @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>
<script>
import saveDialog from "./orderitem_form.vue";
@ -102,7 +70,7 @@ import planDialog from "./orderitemplan.vue";
export default {
name: "rparty",
components: {
saveDialog,planDialog
saveDialog, planDialog
},
data() {
return {
@ -112,26 +80,26 @@ export default {
},
apiObj: this.$API.pum.orderitem.list,
query: {
page:1,
page_size:20
page: 1,
page_size: 20
},
puOrder:'',
orderObj:{},
puOrder: '',
orderObj: {},
selection: [],
state_: {
10: '完好',
20: '限用',
30: '在修',
40: '禁用',
},
10: '完好',
20: '限用',
30: '在修',
40: '禁用',
},
};
},
mounted(){
mounted() {
this.puOrder = this.$route.query.pu_order;
this.getOrder();
},
methods: {
getOrder(){
getOrder() {
this.$API.pum.order.item.req(this.puOrder).then((res) => {
this.orderObj = res;
})
@ -143,7 +111,7 @@ export default {
this.$refs.saveDialog.open("add");
});
},
addLinkPlanItem(row){
addLinkPlanItem(row) {
this.dialog.plan = true;
this.$nextTick(() => {
this.$refs.planDialog.open();
@ -175,13 +143,14 @@ export default {
this.$confirm(`确定删除吗?`, "提示", {
type: "warning",
}).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.$refs.table.refresh();
return res;
}).catch((err) => {
return err;
});
}).catch(() => {});
}).catch(() => { });
},
//
handleSaveSuccess(data, mode) {
@ -191,13 +160,13 @@ export default {
this.$refs.table.refresh();
}
},
handlePlanSuccess(){
this.dialog.plan = true;
handlePlanSuccess() {
this.dialog.plan = false;
this.$refs.table.refresh();
},
handleQuery() {
this.$refs.table.queryData(this.query)
},
this.$refs.table.queryData(this.query)
},
resetQuery() {
this.query = {};
},

View File

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

View File

@ -2,172 +2,140 @@
<el-container>
<el-header>
<div class="left-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>
<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>
<div class="right-panel">
<el-button type="primary" icon="el-icon-plus" @click="add"></el-button>
</div>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
:params="query"
>
<el-table-column type="index" width="50"/>
<scTable ref="table" :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>
<el-table-column label="计划编号" prop="number">
</el-table-column>
<el-table-column label="状态" prop="state">
<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>
</el-table-column>
<el-table-column label="提交时间" prop="submit_time" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="200">
<template #default="scope">
<el-link
type="primary"
@click="table_detail(scope.row)"
>详情
<el-link type="primary" @click="table_detail(scope.row)">详情
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link
type="primary"
@click="table_edit(scope.row)"
v-auth="'pu_plan.update'"
>编辑
<el-link type="primary" @click="table_edit(scope.row)" v-auth="'pu_plan.update'"
:disabled="scope.row.state !== 10">编辑
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link
type="primary"
@click="table_submit(scope.row)"
v-auth="'pu_plan.update'"
:disabled="scope.row.state!==10"
>提交
<el-link type="primary" @click="table_submit(scope.row)" v-auth="'pu_plan.update'"
:disabled="scope.row.state !== 10">提交
</el-link>
<el-divider direction="vertical"></el-divider>
<el-link
type="danger"
@click="table_del(scope.row)"
v-auth="'pu_plan.delete'"
>删除
<el-link type="danger" @click="table_del(scope.row)" v-auth="'pu_plan.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>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
@closed="dialog.save = false"></save-dialog>
</template>
<script>
import saveDialog from "./plan_form.vue";
export default {
name: "rparty",
components: {
saveDialog,
},
data() {
return {
dialog: {
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");
});
export default {
name: "rparty",
components: {
saveDialog,
},
data() {
return {
dialog: {
save: false,
},
//
table_detail(row) {
this.$nextTick(() => {
this.$router.push({
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");
});
},
//
table_detail(row) {
this.$nextTick(() => {
this.$router.push({
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>
<el-container>
<el-header>
<div class="left-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>
<div class="right-panel">
<el-button type="primary" icon="el-icon-plus" v-auth="'pu_planitem.create'" @click="add"></el-button>
</div>
</el-header>
<el-card>
<el-form label-width="120px">
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="计划名称:">{{ orderObj.name }}</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="计划编号:">{{ orderObj.number }}</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="计划状态:">{{ orderObj.state }}</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
:params="query"
>
<el-table-column type="index" width="50"/>
<el-table-column label="所属物料" prop="material" show-overflow-tooltip>
<template #default="scope">
<span v-if="scope.row.material_"> {{ scope.row.material_.name }}</span>
</template>
</el-table-column>
<el-table-column label="所属数量" prop="need_count">
</el-table-column>
<el-table-column label="需求日期" prop="need_date" show-overflow-tooltip>
</el-table-column>
<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>
<div style="padding: 8px">
<div>
<el-card style="width: 100%" header="基本信息" shadow="hover">
<el-descriptions>
<el-descriptions-item label="计划名称">{{ orderObj.name }}</el-descriptions-item>
<el-descriptions-item label="计划编号">{{ orderObj.number }}</el-descriptions-item>
<el-descriptions-item label="计划状态">{{ orderObj.state }}</el-descriptions-item>
</el-descriptions>
</el-card>
</div>
<div style="height:8px"></div>
<div>
<el-card style="width: 100%" header="计划明细" shadow="hover">
<div>
<el-button type="primary" icon="el-icon-plus" v-auth="'pu_planitem.create'" @click="add"></el-button>
</div>
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query" hidePagination>
<el-table-column type="index" width="50" />
<el-table-column label="所属物料" prop="material" show-overflow-tooltip>
<template #default="scope">
<span v-if="scope.row.material_"> {{ scope.row.material_.name }}</span>
</template>
</el-table-column>
<el-table-column label="所属数量" prop="need_count">
</el-table-column>
<el-table-column label="需求日期" prop="need_date" show-overflow-tooltip>
</el-table-column>
<el-table-column label="部门" prop="belong_dept_name">
</el-table-column>
<el-table-column label="关联采购订单" prop="pu_order">
</el-table-column>
<el-table-column label="创建人" prop="create_by_name">
</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-card>
</div>
</div>
<save-dialog v-if="dialog.save" ref="saveDialog" :puPlan="puPlan" @success="handleSaveSuccess"
@closed="dialog.save = false"></save-dialog>
</template>
<script>
import saveDialog from "./planitem_form.vue";
export default {
name: "rparty",
components: {
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;
})
import saveDialog from "./planitem_form.vue";
export default {
name: "rparty",
components: {
saveDialog,
},
data() {
return {
dialog: {
save: false,
},
//
add() {
this.dialog.save = true;
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;
this.getOrder();
},
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) {
this.$confirm(`确定删除该计划详情吗?`, "提示", {
type: "warning",
}).then(() => {
this.$API.pum.planitem.delete.req(row.id).then((res) => {
this.$message.success("删除成功");
return res;
}).catch((err) => {
return err;
});
},
//
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.pum.planitem.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 = {};
},
}).catch(() => { });
},
};
</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>
<el-dialog
:title="titleMap[mode]"
v-model="visible"
:size="1000"
destroy-on-close
@closed="$emit('closed')"
>
<el-dialog :title="titleMap[mode]" 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="120px"
>
<el-form ref="dialogForm" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :md="12" :sm="24">
<el-form-item label="所需物料" prop="material">
<el-select
v-model="form.material"
placeholder="所需物料"
clearable
style="width:100%"
>
<el-option
v-for="item in options"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-select v-model="form.material" placeholder="所需物料" 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-form-item>
</el-col>
<el-col :md="12" :sm="24">
<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-col>
<el-col :md="12" :sm="24">
<el-form-item label="需求日期">
<el-date-picker
v-model="form.need_date"
type="date"
placeholder="需求日期"
value-format="YYYY-MM-DD"
style="width:100%"
>
<el-date-picker v-model="form.need_date" type="date" placeholder="需求日期"
value-format="YYYY-MM-DD" style="width:100%">
</el-date-picker>
</el-form-item>
</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-form-item label="备注">
<el-input v-model="form.note" placeholder="备注"/>
<el-input v-model="form.note" placeholder="备注" />
</el-form-item>
</el-col>
</el-row>
@ -65,82 +48,90 @@
</el-dialog>
</template>
<script>
export default {
emits: ["success", "closed"],
props:{
puPlan: { type: String, default: '' },
},
data() {
return {
loading: false,
mode: "add",
titleMap: {
add: "新增采购详情",
edit: "编辑采购详情",
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;
export default {
emits: ["success", "closed"],
props: {
puPlan: { type: String, default: '' },
},
data() {
return {
loading: false,
mode: "add",
titleMap: {
add: "新增采购详情",
edit: "编辑采购详情",
show: "查看采购详情",
},
getList(){
this.$API.mtm.material.list.req({page:0}).then(res=>{
this.options = res;
})
form: {},
rules: {
material: [{ required: true, message: "请选择物料", trigger: "blur" }],
need_date: [{ required: true, message: "请输入需求日期", trigger: "blur" }],
need_count: [{ required: true, message: "请输入所需数量", trigger: "blur" }],
},
//
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;
visible: false,
isSaveing: false,
setFiltersVisible: false,
options: [],
deptOptions: [],
};
},
mounted() {
this.getList();
this.getDeptOptions();
},
methods: {
//
getDeptOptions() {
this.$API.system.dept.list.req({ page: 0, type: 'dept' }).then(res => {
this.deptOptions = res;
});
},
//
open(mode = "add") {
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>