fix:coding#413采购和销售部分

This commit is contained in:
shijing 2024-05-23 11:33:53 +08:00
parent 86be993ba0
commit e01877ebd2
6 changed files with 1298 additions and 860 deletions

View File

@ -2,24 +2,56 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-button type="primary" icon="el-icon-plus" @click="add" v-auth="'pu_order.create'">新增</el-button> <el-button
type="primary"
icon="el-icon-plus"
@click="add"
v-auth="'pu_order.create'"
>新增</el-button
>
</div> </div>
<div class="right-panel"> <div class="right-panel">
<el-input v-model="query.search" placeholder="订单编号" clearable style="margin-right: 5px;"></el-input> <el-input
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button> 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>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query"> <scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
:params="query"
>
<el-table-column type="index" width="50" /> <el-table-column type="index" width="50" />
<el-table-column label="订单编号" prop="number"> <el-table-column label="订单编号" prop="number">
</el-table-column> </el-table-column>
<el-table-column label="供应商" prop="supplier_name" show-overflow-tooltip> <el-table-column
label="供应商"
prop="supplier_name"
show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column label="物料信息" prop="materials_"> <el-table-column label="物料信息" prop="materials_">
<template #default="scope"> <template #default="scope">
<div v-for="item in scope.row.materials_" v-bind:key="item.id"> <div
<span>{{ item.name }}[{{ item.specification }}][{{ item.model }}]</span> v-for="item in scope.row.materials_"
v-bind:key="item.id"
>
<span
>{{ item.name }}[{{ item.specification }}][{{
item.model
}}]</span
>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -27,29 +59,59 @@
</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].label <span
}}</el-tag></span> ><el-tag
:type="stateOption[scope.row.state].color"
>{{
stateOption[scope.row.state].label
}}</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="创建人" prop="create_by_name"> <el-table-column label="创建人" prop="create_by_name">
</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-button link type="primary" @click="table_detail(scope.row)"> <el-button
link
type="primary"
@click="table_detail(scope.row)"
>
详情 详情
</el-button> </el-button>
<el-button link type="primary" @click="table_edit(scope.row)" v-auth="'pu_order.update'" <el-button
v-if="scope.row.state == 10"> link
type="primary"
@click="table_edit(scope.row)"
v-auth="'pu_order.update'"
v-if="scope.row.state == 10"
>
编辑 编辑
</el-button> </el-button>
<el-button link type="primary" @click="table_submit(scope.row)" v-auth="'pu_order.submit'" <el-button
v-if="scope.row.state == 10"> link
type="primary"
@click="table_submit(scope.row)"
v-auth="'pu_order.submit'"
v-if="scope.row.state == 10"
>
提交 提交
</el-button> </el-button>
<el-button link type="danger" @click="table_del(scope.row)" v-auth="'pu_order.delete'" <el-button
v-if="scope.row.state == 10"> link
type="danger"
@click="table_del(scope.row)"
v-auth="'pu_order.delete'"
v-if="scope.row.state == 10"
>
删除 删除
</el-button> </el-button>
</template> </template>
@ -57,15 +119,24 @@
</scTable> </scTable>
</el-main> </el-main>
</el-container> </el-container>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" <save-dialog
@closed="dialog.save = false"></save-dialog> v-if="dialog.save"
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
<el-drawer title="订单详情" v-model="dialog.detail" :size="'90%'">
<detail-dialog :orderId="orderId" ref="detailDialogs"> </detail-dialog>
</el-drawer>
</template> </template>
<script> <script>
import saveDialog from "./order_form.vue"; import saveDialog from "./order_form.vue";
import detailDialog from "./orderitem.vue";
export default { export default {
name: "rparty", name: "rparty",
components: { components: {
saveDialog, saveDialog,
detailDialog,
}, },
data() { data() {
return { return {
@ -75,16 +146,16 @@ export default {
apiObj: this.$API.pum.order.list, apiObj: this.$API.pum.order.list,
query: { query: {
page: 1, page: 1,
page_size: 20 page_size: 20,
}, },
selection: [], selection: [],
stateOption: { stateOption: {
10: { "label": "创建中", "color": "" }, 10: { label: "创建中", color: "" },
20: { "label": "已提交", "color": "" }, 20: { label: "已提交", color: "" },
30: { "label": "到货中", "color": "" }, 30: { label: "到货中", color: "" },
40: { "label": "已完成", "color": "success" }, 40: { label: "已完成", color: "success" },
}, },
orderId: "",
}; };
}, },
methods: { methods: {
@ -104,34 +175,40 @@ export default {
}, },
// //
table_detail(row) { table_detail(row) {
this.$nextTick(() => { this.orderId = row.id;
this.$router.push({ this.dialog.detail = true;
name: "orderitem", // this.$nextTick(() => {
query: { // this.$router.push({
pu_order: row.id // name: "orderitem",
} // query: {
}); // pu_order: row.id,
}); // },
// });
// });
}, },
table_submit(row) { table_submit(row) {
console.log(row)
this.$API.pum.order.submit.req(row.id).then((res) => { this.$API.pum.order.submit.req(row.id).then((res) => {
this.$refs.table.refresh(); this.$refs.table.refresh();
}) });
}, },
// //
async table_del(row) { async table_del(row) {
this.$confirm(`确定删除吗?`, "提示", { this.$confirm(`确定删除吗?`, "提示", {
type: "warning", type: "warning",
}).then(() => { })
this.$API.pum.order.delete.req(row.id).then((res) => { .then(() => {
this.$API.pum.order.delete
.req(row.id)
.then((res) => {
this.$message.success("删除成功"); this.$message.success("删除成功");
this.$refs.table.refresh(); this.$refs.table.refresh();
return res; return res;
}).catch((err) => { })
.catch((err) => {
return err; return err;
}); });
}).catch(() => { }); })
.catch(() => {});
}, },
// //
@ -143,7 +220,7 @@ export default {
} }
}, },
handleQuery() { handleQuery() {
this.$refs.table.queryData(this.query) this.$refs.table.queryData(this.query);
}, },
resetQuery() { resetQuery() {
this.query = {}; this.query = {};

View File

@ -3,12 +3,24 @@
<div> <div>
<el-card style="width: 100%" header="基本信息" shadow="hover"> <el-card style="width: 100%" header="基本信息" shadow="hover">
<el-descriptions> <el-descriptions>
<el-descriptions-item label="订单编号">{{ orderObj.number }}</el-descriptions-item> <el-descriptions-item label="订单编号">{{
<el-descriptions-item label="订单状态">{{ stateOption[orderObj.state] }}</el-descriptions-item> orderObj.number
<el-descriptions-item label="供应商">{{ orderObj.supplier_name }}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="所属部门">{{ orderObj.belong_dept_name }}</el-descriptions-item> <el-descriptions-item label="订单状态">{{
<el-descriptions-item label="创建人">{{ orderObj.create_by_name }}</el-descriptions-item> stateOption[orderObj.state]
<el-descriptions-item label="创建时间">{{ orderObj.create_time }}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="供应商">{{
orderObj.supplier_name
}}</el-descriptions-item>
<el-descriptions-item label="所属部门">{{
orderObj.belong_dept_name
}}</el-descriptions-item>
<el-descriptions-item label="创建人">{{
orderObj.create_by_name
}}</el-descriptions-item>
<el-descriptions-item label="创建时间">{{
orderObj.create_time
}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
</div> </div>
@ -16,34 +28,83 @@
<div> <div>
<el-card style="width: 100%" header="订单明细" shadow="hover"> <el-card style="width: 100%" header="订单明细" shadow="hover">
<div> <div>
<el-button type="primary" @click="addLinkPlanItem" v-auth="'pu_orderitem.create'" <el-button
v-if="orderObj.state == 10">计划明细变更采购明细</el-button> type="primary"
<el-button type="primary" icon="el-icon-plus" @click="add" v-auth="'pu_orderitem.create'" @click="addLinkPlanItem"
v-if="orderObj.state == 10">手动新增</el-button> v-auth="'pu_orderitem.create'"
v-if="orderObj.state == 10"
>计划明细变更采购明细</el-button
>
<el-button
type="primary"
icon="el-icon-plus"
@click="add"
v-auth="'pu_orderitem.create'"
v-if="orderObj.state == 10"
>手动新增</el-button
>
</div> </div>
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="params" hidePagination hideDo> <scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
:params="params"
:query="query"
hidePagination
hideDo
>
<el-table-column type="index" width="50" /> <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
>
</template> </template>
</el-table-column> </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="delivered_count"> <el-table-column label="已到货数量" prop="delivered_count">
</el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="create_time" show-overflow-tooltip> <el-table-column
label="创建时间"
prop="create_time"
show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column label="更新时间" prop="update_time" show-overflow-tooltip> <el-table-column
label="更新时间"
prop="update_time"
show-overflow-tooltip
>
</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-button link type="primary" @click="table_edit(scope.row)" v-auth="'pu_orderitem.update'" <el-button
v-if="orderObj.state == 10"> link
type="primary"
@click="table_edit(scope.row)"
v-auth="'pu_orderitem.update'"
v-if="orderObj.state == 10"
>
编辑 编辑
</el-button> </el-button>
<el-button link type="danger" @click="table_del(scope.row)" v-auth="'pu_orderitem.delete'" <el-button
v-if="orderObj.state == 10"> link
type="danger"
@click="table_del(scope.row)"
v-auth="'pu_orderitem.delete'"
v-if="orderObj.state == 10"
>
删除 删除
</el-button> </el-button>
</template> </template>
@ -52,10 +113,20 @@
</el-card> </el-card>
</div> </div>
</div> </div>
<save-dialog v-if="dialog.save" ref="saveDialog" :puOrder="puOrder" @success="handleSaveSuccess" <save-dialog
@closed="dialog.save = false"></save-dialog> v-if="dialog.save"
<plan-dialog v-if="dialog.plan" ref="planDialog" :puOrder="puOrder" @success="handlePlanSuccess" ref="saveDialog"
@closed="dialog.plan = false"></plan-dialog> :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> </template>
<script> <script>
import saveDialog from "./orderitem_form.vue"; import saveDialog from "./orderitem_form.vue";
@ -63,7 +134,14 @@ import planDialog from "./orderitemplan.vue";
export default { export default {
name: "rparty", name: "rparty",
components: { components: {
saveDialog, planDialog saveDialog,
planDialog,
},
props: {
orderId: {
type: String,
default: "",
},
}, },
data() { data() {
return { return {
@ -72,9 +150,11 @@ export default {
splan: false, splan: false,
}, },
apiObj: null, apiObj: null,
params: {}, params: {
pu_order: "",
},
query: {}, query: {},
puOrder: '', puOrder: "",
orderObj: {}, orderObj: {},
selection: [], selection: [],
stateOption: { stateOption: {
@ -86,8 +166,8 @@ export default {
}; };
}, },
mounted() { mounted() {
this.puOrder = this.$route.query.pu_order; this.puOrder = this.orderId;
this.params.pu_order = this.$route.query.pu_order; this.params.pu_order = this.orderId;
this.apiObj = this.$API.pum.orderitem.list; this.apiObj = this.$API.pum.orderitem.list;
this.getOrder(); this.getOrder();
}, },
@ -95,7 +175,7 @@ export default {
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;
}) });
}, },
// //
add() { add() {
@ -135,15 +215,20 @@ export default {
table_del(row) { table_del(row) {
this.$confirm(`确定删除吗?`, "提示", { this.$confirm(`确定删除吗?`, "提示", {
type: "warning", type: "warning",
}).then(() => { })
this.$API.pum.orderitem.delete.req(row.id).then((res) => { .then(() => {
this.$API.pum.orderitem.delete
.req(row.id)
.then((res) => {
this.$message.success("删除成功"); this.$message.success("删除成功");
this.$refs.table.refresh(); this.$refs.table.refresh();
return res; return res;
}).catch((err) => { })
.catch((err) => {
return err; return err;
}); });
}).catch(() => { }); })
.catch(() => {});
}, },
// //
handleSaveSuccess(data, mode) { handleSaveSuccess(data, mode) {
@ -158,7 +243,7 @@ export default {
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

@ -2,75 +2,145 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-button type="primary" icon="el-icon-plus" @click="add" v-auth="'pu_plan.create'">新增</el-button> <el-button
type="primary"
icon="el-icon-plus"
@click="add"
v-auth="'pu_plan.create'"
>新增</el-button
>
</div> </div>
<div class="right-panel"> <div class="right-panel">
<el-input v-model="query.search" placeholder="计划编号" clearable style="margin-right: 5px;"></el-input> <el-input
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button> 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>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query"> <scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
:params="query"
>
<el-table-column type="index" width="50" /> <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].label <span
}}</el-tag></span> ><el-tag
:type="stateOption[scope.row.state].color"
>{{
stateOption[scope.row.state].label
}}</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-button link type="primary" @click="table_detail(scope.row)">详情 <el-button
link
type="primary"
@click="table_detail(scope.row)"
>详情
</el-button> </el-button>
<el-button link type="primary" @click="table_edit(scope.row)" v-auth="'pu_plan.update'" <el-button
v-if="scope.row.state == 10">编辑 link
type="primary"
@click="table_edit(scope.row)"
v-auth="'pu_plan.update'"
v-if="scope.row.state == 10"
>编辑
</el-button> </el-button>
<el-button link type="primary" @click="table_submit(scope.row)" v-auth="'pu_plan.submit'" <el-button
v-if="scope.row.state == 10">提交 link
type="primary"
@click="table_submit(scope.row)"
v-auth="'pu_plan.submit'"
v-if="scope.row.state == 10"
>提交
</el-button> </el-button>
<el-button link type="danger" @click="table_del(scope.row)" v-auth="'pu_plan.delete'" <el-button
v-if="scope.row.state == 10">删除 link
type="danger"
@click="table_del(scope.row)"
v-auth="'pu_plan.delete'"
v-if="scope.row.state == 10"
>删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</scTable> </scTable>
</el-main> </el-main>
</el-container> </el-container>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" <save-dialog
@closed="dialog.save = false"></save-dialog> v-if="dialog.save"
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
<el-drawer title="计划详情" v-model="dialog.detail" :size="'90%'">
<detail-dialog :planId="planId" ref="detailDialogs"> </detail-dialog>
</el-drawer>
</template> </template>
<script> <script>
import saveDialog from "./plan_form.vue"; import saveDialog from "./plan_form.vue";
import detailDialog from "./planitem.vue";
export default { export default {
name: "rparty", name: "rparty",
components: { components: {
saveDialog, saveDialog,
detailDialog,
}, },
data() { data() {
return { return {
dialog: { dialog: {
save: false, save: false,
detail: false,
}, },
apiObj: this.$API.pum.plan.list, apiObj: this.$API.pum.plan.list,
query: { query: {
page: 1, page: 1,
page_size: 20, page_size: 20,
type: 10 type: 10,
}, },
selection: [], selection: [],
stateOption: { stateOption: {
10: { "label": "创建中", "color": "" }, 10: { label: "创建中", color: "" },
20: { "label": "已提交", "color": "" }, 20: { label: "已提交", color: "" },
30: { "label": "下单中", "color": "" }, 30: { label: "下单中", color: "" },
40: { "label": "下单完成", "color": "" }, 40: { label: "下单完成", color: "" },
40: { "label": "已完成", "color": "success" }, 40: { label: "已完成", color: "success" },
}, },
planId: "",
}; };
}, },
methods: { methods: {
@ -83,13 +153,14 @@ export default {
}, },
// //
table_detail(row) { table_detail(row) {
this.$nextTick(() => { this.planId = row.id;
this.$router.push({ this.dialog.detail = true;
name: "planitem", // this.$nextTick(() => {
query: { pu_plan: row.id } // this.$router.push({
// name: "planitem",
}); // query: { pu_plan: row.id },
}); // });
// });
}, },
// //
table_edit(row) { table_edit(row) {
@ -100,10 +171,8 @@ export default {
}, },
// //
table_submit(row) { table_submit(row) {
console.log(row.id)
this.$API.pum.plan.submit.req(row.id).then((res) => { this.$API.pum.plan.submit.req(row.id).then((res) => {
this.$refs.table.refresh(); this.$refs.table.refresh();
debugger;
this.$message.success("提交成功"); this.$message.success("提交成功");
}); });
}, },
@ -111,15 +180,20 @@ export default {
table_del(row) { table_del(row) {
this.$confirm(`确定删除该计划吗?`, "提示", { this.$confirm(`确定删除该计划吗?`, "提示", {
type: "warning", type: "warning",
}).then(() => { })
this.$API.pum.plan.delete.req(row.id).then((res) => { .then(() => {
this.$API.pum.plan.delete
.req(row.id)
.then((res) => {
this.$message.success("删除成功"); this.$message.success("删除成功");
this.$refs.table.refresh(); this.$refs.table.refresh();
return res; return res;
}).catch((err) => { })
.catch((err) => {
return err; return err;
}); });
}).catch(() => { }); })
.catch(() => {});
}, },
// //
handleSaveSuccess(data, mode) { handleSaveSuccess(data, mode) {
@ -130,7 +204,7 @@ export default {
} }
}, },
handleQuery() { handleQuery() {
this.$refs.table.queryData(this.query) this.$refs.table.queryData(this.query);
}, },
resetQuery() { resetQuery() {
this.query = {}; this.query = {};

View File

@ -3,9 +3,15 @@
<div> <div>
<el-card style="width: 100%" header="基本信息" shadow="hover"> <el-card style="width: 100%" header="基本信息" shadow="hover">
<el-descriptions> <el-descriptions>
<el-descriptions-item label="计划名称">{{ orderObj.name }}</el-descriptions-item> <el-descriptions-item label="计划名称">{{
<el-descriptions-item label="计划编号">{{ orderObj.number }}</el-descriptions-item> orderObj.name
<el-descriptions-item label="计划状态">{{ stateOption[orderObj.state] }}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="计划编号">{{
orderObj.number
}}</el-descriptions-item>
<el-descriptions-item label="计划状态">{{
stateOption[orderObj.state]
}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
</div> </div>
@ -13,19 +19,44 @@
<div> <div>
<el-card style="width: 100%" header="计划明细" shadow="hover"> <el-card style="width: 100%" header="计划明细" shadow="hover">
<div> <div>
<el-button type="primary" icon="el-icon-plus" v-auth="'pu_planitem.create'" @click="add" <el-button
v-if="orderObj.state == 10">新增</el-button> type="primary"
icon="el-icon-plus"
v-auth="'pu_planitem.create'"
@click="add"
v-if="orderObj.state == 10"
>新增</el-button
>
</div> </div>
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query" hidePagination hideDo> <scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
:params="query"
:query="query"
hidePagination
hideDo
>
<el-table-column type="index" width="50" /> <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
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属数量" prop="need_count"> <el-table-column label="所属数量" prop="need_count">
</el-table-column> </el-table-column>
<el-table-column label="需求日期" prop="need_date" show-overflow-tooltip> <el-table-column
label="需求日期"
prop="need_date"
show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column label="部门" prop="belong_dept_name"> <el-table-column label="部门" prop="belong_dept_name">
</el-table-column> </el-table-column>
@ -37,16 +68,35 @@
</el-table-column> </el-table-column>
<el-table-column label="创建人" prop="create_by_name"> <el-table-column label="创建人" prop="create_by_name">
</el-table-column> </el-table-column>
<el-table-column label="备注" prop="note" show-overflow-tooltip> <el-table-column
label="备注"
prop="note"
show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="100px"> <el-table-column
label="操作"
fixed="right"
align="center"
width="100px"
>
<template #default="scope"> <template #default="scope">
<el-button link type="primary" @click="table_edit(scope.row)" v-auth="'pu_planitem.update'" <el-button
v-if="orderObj == 10"> link
type="primary"
@click="table_edit(scope.row)"
v-auth="'pu_planitem.update'"
v-if="orderObj == 10"
>
编辑 编辑
</el-button> </el-button>
<el-button link type="danger" @click="table_del(scope.row)" v-auth="'pu_planitem.delete'" <el-button
v-if="orderObj == 10"> link
type="danger"
@click="table_del(scope.row)"
v-auth="'pu_planitem.delete'"
v-if="orderObj == 10"
>
删除 删除
</el-button> </el-button>
</template> </template>
@ -55,8 +105,13 @@
</el-card> </el-card>
</div> </div>
</div> </div>
<save-dialog v-if="dialog.save" ref="saveDialog" :puPlan="puPlan" @success="handleSaveSuccess" <save-dialog
@closed="dialog.save = false"></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";
@ -65,17 +120,24 @@ export default {
components: { components: {
saveDialog, saveDialog,
}, },
props: {
planId: {
type: String,
default: "",
},
},
data() { data() {
return { return {
dialog: { dialog: {
save: false, save: false,
}, },
puPlan: '', puPlan: "",
orderObj: {}, orderObj: {},
apiObj: null, apiObj: null,
query: { query: {
page: 1, page: 1,
page_size: 20 page_size: 20,
pu_plan: "",
}, },
stateOption: { stateOption: {
10: "创建中", 10: "创建中",
@ -87,8 +149,8 @@ export default {
}; };
}, },
mounted() { mounted() {
this.puPlan = this.$route.query.pu_plan; this.puPlan = this.planId;
this.query.pu_plan = this.$route.query.pu_plan; this.query.pu_plan = this.planId;
this.apiObj = this.$API.pum.planitem.list; this.apiObj = this.$API.pum.planitem.list;
this.$refs.table.refresh(); this.$refs.table.refresh();
this.getOrder(); this.getOrder();
@ -96,10 +158,8 @@ export default {
methods: { methods: {
getOrder() { getOrder() {
this.$API.pum.plan.item.req(this.puPlan).then((res) => { this.$API.pum.plan.item.req(this.puPlan).then((res) => {
debugger;
console.log(res);
this.orderObj = res; this.orderObj = res;
}) });
}, },
// //
add() { add() {
@ -127,14 +187,19 @@ export default {
table_del(row) { table_del(row) {
this.$confirm(`确定删除该计划详情吗?`, "提示", { this.$confirm(`确定删除该计划详情吗?`, "提示", {
type: "warning", type: "warning",
}).then(() => { })
this.$API.pum.planitem.delete.req(row.id).then((res) => { .then(() => {
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(() => {});
}, },
// //
@ -146,7 +211,7 @@ export default {
} }
}, },
handleQuery() { handleQuery() {
this.$refs.table.queryData(this.query) this.$refs.table.queryData(this.query);
}, },
resetQuery() { resetQuery() {
this.query = {}; this.query = {};

View File

@ -2,15 +2,36 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-button type="primary" icon="el-icon-plus" @click="add" v-auth="'order.create'">新增</el-button> <el-button
type="primary"
icon="el-icon-plus"
@click="add"
v-auth="'order.create'"
>新增</el-button
>
</div> </div>
<div class="right-panel"> <div class="right-panel">
<el-input v-model="query.search" placeholder="名称" clearable style="margin-right: 5px;"></el-input> <el-input
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button> 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>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="query"> <scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
:params="query"
>
<el-table-column type="index" width="50" /> <el-table-column type="index" width="50" />
<el-table-column label="订单编号" prop="number"> <el-table-column label="订单编号" prop="number">
</el-table-column> </el-table-column>
@ -19,34 +40,72 @@
{{ stateOption[scope.row.state] }} {{ stateOption[scope.row.state] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="客户" prop="customer_name" show-overflow-tooltip> <el-table-column
label="客户"
prop="customer_name"
show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column label="所属合同" prop="contract_number" show-overflow-tooltip> <el-table-column
label="所属合同"
prop="contract_number"
show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column label="截止到货日期" prop="delivery_date"> <el-table-column label="截止到货日期" prop="delivery_date">
</el-table-column> </el-table-column>
<el-table-column label="提交时间" prop="submit_time" width="160"> <el-table-column
label="提交时间"
prop="submit_time"
width="160"
>
</el-table-column> </el-table-column>
<el-table-column label="创建人" prop="create_by_name"> <el-table-column label="创建人" prop="create_by_name">
</el-table-column> </el-table-column>
<el-table-column label="备注"> <el-table-column label="备注">
<template #default="scope">{{ scope.row.description }}</template> <template #default="scope">{{
scope.row.description
}}</template>
</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-button link type="primary" @click="table_detail(scope.row)"> <el-button
link
type="primary"
@click="table_detail(scope.row)"
>
详情 详情
</el-button> </el-button>
<el-button link type="primary" @click="table_submit(scope.row)" v-auth="'order.update'" <el-button
v-if="scope.row.state == 10"> link
type="primary"
@click="table_submit(scope.row)"
v-auth="'order.update'"
v-if="scope.row.state == 10"
>
提交 提交
</el-button> </el-button>
<el-button link type="primary" @click="table_edit(scope.row)" v-auth="'order.submit'" <el-button
v-if="scope.row.state == 10"> link
type="primary"
@click="table_edit(scope.row)"
v-auth="'order.submit'"
v-if="scope.row.state == 10"
>
编辑 编辑
</el-button> </el-button>
<el-button link type="danger" @click="table_del(scope.row)" v-auth="'order.delete'" <el-button
v-if="scope.row.state == 10"> link
type="danger"
@click="table_del(scope.row)"
v-auth="'order.delete'"
v-if="scope.row.state == 10"
>
删除 删除
</el-button> </el-button>
</template> </template>
@ -54,33 +113,44 @@
</scTable> </scTable>
</el-main> </el-main>
</el-container> </el-container>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" <save-dialog
@closed="dialog.save = false"></save-dialog> v-if="dialog.save"
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
<el-drawer title="订单详情" v-model="dialog.detail" :size="'90%'">
<detail-dialog :orderId="orderId" ref="detailDialogs"> </detail-dialog>
</el-drawer>
</template> </template>
<script> <script>
import saveDialog from "./order_form.vue"; import saveDialog from "./order_form.vue";
import detailDialog from "./orderitem.vue";
export default { export default {
name: "rparty", name: "rparty",
components: { components: {
saveDialog, saveDialog,
detailDialog,
}, },
data() { data() {
return { return {
dialog: { dialog: {
save: false, save: false,
detail: false,
}, },
apiObj: this.$API.sam.order.list, apiObj: this.$API.sam.order.list,
query: { query: {
page: 1, page: 1,
page_size: 20 page_size: 20,
}, },
selection: [], selection: [],
stateOption: { stateOption: {
10: '创建中', 10: "创建中",
20: '已提交', 20: "已提交",
30: '进行中', 30: "进行中",
40: '已交付', 40: "已交付",
}, },
orderId: "",
}; };
}, },
methods: { methods: {
@ -99,34 +169,44 @@ export default {
}); });
}, },
table_submit(row) { table_submit(row) {
this.$API.sam.order.submit.req(row.id).then((res) => { this.$API.sam.order.submit
.req(row.id)
.then((res) => {
this.$message.success("提交成功"); this.$message.success("提交成功");
this.handleQuery(); this.handleQuery();
return res; return res;
}).catch((err) => { })
.catch((err) => {
return err; return err;
}); });
}, },
// //
table_detail(row) { table_detail(row) {
this.$router.push({ this.orderId = row.id;
name: "samOrderitem", this.dialog.detail = true;
query: { order: row.id } // this.$router.push({
// name: "samOrderitem",
// query: { order: row.id }
}); // });
}, },
// //
async table_del(row) { async table_del(row) {
this.$confirm(`确定删除吗?`, "提示", { this.$confirm(`确定删除吗?`, "提示", {
type: "warning", type: "warning",
}).then(() => { })
this.$API.sam.order.delete.req(row.id).then((res) => { .then(() => {
this.$API.sam.order.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(() => {});
}, },
// //
@ -138,7 +218,7 @@ export default {
} }
}, },
handleQuery() { handleQuery() {
this.$refs.table.queryData(this.query) this.$refs.table.queryData(this.query);
}, },
resetQuery() { resetQuery() {
this.query = {}; this.query = {};

View File

@ -3,10 +3,18 @@
<div> <div>
<el-card style="width: 100%" header="基本信息" shadow="hover"> <el-card style="width: 100%" header="基本信息" shadow="hover">
<el-descriptions> <el-descriptions>
<el-descriptions-item label="订单编号">{{ orderObj.number }}</el-descriptions-item> <el-descriptions-item label="订单编号">{{
<el-descriptions-item label="客户">{{ orderObj.customer_name }}</el-descriptions-item> orderObj.number
<el-descriptions-item label="订单状态">{{ orderObj.state }}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="截止交货">{{ orderObj.delivery_date }}</el-descriptions-item> <el-descriptions-item label="客户">{{
orderObj.customer_name
}}</el-descriptions-item>
<el-descriptions-item label="订单状态">{{
orderObj.state
}}</el-descriptions-item>
<el-descriptions-item label="截止交货">{{
orderObj.delivery_date
}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
</div> </div>
@ -14,13 +22,31 @@
<div> <div>
<el-card style="width: 100%" header="订单明细" shadow="hover"> <el-card style="width: 100%" header="订单明细" shadow="hover">
<div> <div>
<el-button type="primary" icon="el-icon-plus" @click="table_add" v-auth="'order.update'"></el-button> <el-button
type="primary"
icon="el-icon-plus"
@click="table_add"
v-auth="'order.update'"
></el-button>
</div> </div>
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe :params="params" hidePagination> <scTable
ref="table"
:apiObj="apiObj"
row-key="id"
stripe
:params="params"
hidePagination
>
<el-table-column type="index" width="50" /> <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
>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column label="关联订单" prop="order" show-overflow-tooltip> <!-- <el-table-column label="关联订单" prop="order" show-overflow-tooltip>
@ -32,15 +58,32 @@
</el-table-column> </el-table-column>
<el-table-column label="已交货数量" prop="delivered_count"> <el-table-column label="已交货数量" prop="delivered_count">
</el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="create_time" show-overflow-tooltip> <el-table-column
label="创建时间"
prop="create_time"
show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="100px"> <el-table-column
label="操作"
fixed="right"
align="center"
width="100px"
>
<template #default="scope"> <template #default="scope">
<el-link type="primary" @click="table_edit(scope.row)" v-auth="'order.update'"> <el-link
type="primary"
@click="table_edit(scope.row)"
v-auth="'order.update'"
>
编辑 编辑
</el-link> </el-link>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<el-link type="danger" @click="table_del(scope.row)" v-auth="'order.delete'"> <el-link
type="danger"
@click="table_del(scope.row)"
v-auth="'order.delete'"
>
删除 删除
</el-link> </el-link>
</template> </template>
@ -49,8 +92,13 @@
</el-card> </el-card>
</div> </div>
</div> </div>
<save-dialog v-if="dialog.save" ref="saveDialog" :orderId="orderId" @success="handleSaveSuccess" <save-dialog
@closed="dialog.save = false"></save-dialog> v-if="dialog.save"
ref="saveDialog"
:orderId="orderId"
@success="handleSaveSuccess"
@closed="dialog.save = false"
></save-dialog>
</template> </template>
<script> <script>
import saveDialog from "./orderitem_form.vue"; import saveDialog from "./orderitem_form.vue";
@ -59,6 +107,12 @@ export default {
components: { components: {
saveDialog, saveDialog,
}, },
props: {
orderId: {
type: String,
default: "",
},
},
data() { data() {
return { return {
dialog: { dialog: {
@ -66,20 +120,18 @@ export default {
}, },
apiObj: null, apiObj: null,
params: {}, params: {},
orderId: '',
orderObj: {}, orderObj: {},
selection: [], selection: [],
state_: { state_: {
10: '完好', 10: "完好",
20: '限用', 20: "限用",
30: '在修', 30: "在修",
40: '禁用', 40: "禁用",
}, },
}; };
}, },
mounted() { mounted() {
this.orderId = this.$route.query.order; this.params.order = this.orderId;
this.params.order = this.$route.query.order;
this.apiObj = this.$API.sam.orderitem.list; this.apiObj = this.$API.sam.orderitem.list;
this.getOrder(); this.getOrder();
}, },
@ -87,7 +139,7 @@ export default {
getOrder() { getOrder() {
this.$API.sam.order.item.req(this.orderId).then((res) => { this.$API.sam.order.item.req(this.orderId).then((res) => {
this.orderObj = res; this.orderObj = res;
}) });
}, },
// //
table_add() { table_add() {
@ -114,14 +166,19 @@ export default {
table_del(row) { table_del(row) {
this.$confirm(`确定删除吗?`, "提示", { this.$confirm(`确定删除吗?`, "提示", {
type: "warning", type: "warning",
}).then(() => { })
this.$API.sam.orderitem.delete.req(row.id).then((res) => { .then(() => {
this.$API.sam.orderitem.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) { handleSaveSuccess(data, mode) {
@ -132,7 +189,7 @@ export default {
} }
}, },
handleQuery() { handleQuery() {
this.$refs.table.queryData(this.query) this.$refs.table.queryData(this.query);
}, },
resetQuery() { resetQuery() {
this.query = {}; this.query = {};