mirror of
https://github.com/himool/HimoolERP.git
synced 2024-09-20 14:56:00 +08:00
feat: 生产管理
This commit is contained in:
parent
3827210ed2
commit
22e811334f
|
@ -9,6 +9,11 @@ export default {
|
|||
meta: { title: '生产计划' },
|
||||
component: () => import('@/views/production/productionPlan/index'),
|
||||
},
|
||||
{
|
||||
path: 'detial',
|
||||
meta: { title: '生产计划详情' },
|
||||
component: () => import('@/views/production/productionDetial/index'),
|
||||
},
|
||||
{
|
||||
path: 'task',
|
||||
meta: { title: '生产任务' },
|
||||
|
@ -18,6 +23,6 @@ export default {
|
|||
path: 'record',
|
||||
meta: { title: '生产记录' },
|
||||
component: () => import('@/views/production/productionRecord/index'),
|
||||
}
|
||||
},
|
||||
],
|
||||
}
|
100
frontend/src/views/production/productionDetial/index.vue
Normal file
100
frontend/src/views/production/productionDetial/index.vue
Normal file
|
@ -0,0 +1,100 @@
|
|||
<template>
|
||||
<div>
|
||||
<a-card title="生产计划详情">
|
||||
<a-button slot="extra" type="primary" style="margin-right: 8px;" ghost v-print="'#printContent'">
|
||||
<a-icon type="printer" />打印</a-button
|
||||
>
|
||||
<a-button
|
||||
slot="extra"
|
||||
type="primary"
|
||||
ghost
|
||||
@click="
|
||||
() => {
|
||||
this.$router.go(-1);
|
||||
}
|
||||
"
|
||||
>
|
||||
<a-icon type="left" />返回</a-button
|
||||
>
|
||||
<section id="printContent">
|
||||
<a-spin :spinning="loading">
|
||||
<img id="barcode" style="float: right" />
|
||||
<a-descriptions bordered>
|
||||
<a-descriptions-item label="生产计划单号">
|
||||
{{ item.number }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="销售单号">
|
||||
{{ item.sales_order_number }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="状态">
|
||||
{{ item.status_display }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="产品编号">
|
||||
{{ item.goods_number }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="产品名称">
|
||||
{{ item.goods_name }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="计划数量">
|
||||
{{ item.total_quantity }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="完成数量">
|
||||
{{ item.quantity_produced }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="计划开始时间">
|
||||
{{ item.start_time }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="计划结束时间">
|
||||
{{ item.end_time }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="创建时间">
|
||||
{{ item.create_time }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="创建人">
|
||||
{{ item.creator_name }}
|
||||
</a-descriptions-item>
|
||||
</a-descriptions>
|
||||
</a-spin>
|
||||
</section>
|
||||
</a-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { productionOrderDetail } from "@/api/production";
|
||||
import JsBarcode from "jsbarcode";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
item: {},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
getJsBarcode(number) {
|
||||
JsBarcode("#barcode", number, {
|
||||
lineColor: "#000",
|
||||
width: 2,
|
||||
height: 40,
|
||||
displayValue: true,
|
||||
});
|
||||
},
|
||||
initData() {
|
||||
this.loading = true;
|
||||
productionOrderDetail({ id: this.$route.query.id })
|
||||
.then((data) => {
|
||||
this.item = data;
|
||||
this.getJsBarcode(data.number);
|
||||
})
|
||||
.finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.initData();
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style></style>
|
|
@ -31,7 +31,7 @@
|
|||
<div slot="action" slot-scope="value, item, index">
|
||||
<a-button-group size="small">
|
||||
<a-button v-if="item.status == 'in_plan'" @click="openCreateModal(item)">编辑</a-button>
|
||||
<a-button>详情</a-button>
|
||||
<a-button @click="detial(item)">详情</a-button>
|
||||
<a-popconfirm v-if="item.status == 'in_plan'" title="确定发布吗?" @confirm="issue(item)">
|
||||
<a-button type="primary">发布工单</a-button>
|
||||
</a-popconfirm>
|
||||
|
@ -172,6 +172,9 @@ export default {
|
|||
this.items = this.$functions.replaceItem(this.items, data);
|
||||
});
|
||||
},
|
||||
detial(item) {
|
||||
this.$router.push({ path: "/production/detial", query: { id: item.id } });
|
||||
},
|
||||
search() {
|
||||
this.searchForm.page = 1;
|
||||
this.pagination.current = 1;
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
>
|
||||
<div slot="action" slot-scope="value, item, index">
|
||||
<a-button-group size="small">
|
||||
<a-button>详情</a-button>
|
||||
<a-button @click="detial()">详情</a-button>
|
||||
<a-button type="primary" @click="openCreateModal(item)">生产</a-button>
|
||||
</a-button-group>
|
||||
</div>
|
||||
|
@ -126,6 +126,9 @@ export default {
|
|||
create() {
|
||||
this.list();
|
||||
},
|
||||
detial(item) {
|
||||
this.$router.push({ path: "/production/detial", query: { id: item.id } });
|
||||
},
|
||||
search() {
|
||||
this.searchForm.page = 1;
|
||||
this.pagination.current = 1;
|
||||
|
|
Loading…
Reference in a new issue