订单详情(进度需要考虑是否计入审核中的数量)
This commit is contained in:
parent
8e2e810e69
commit
0db4935ab9
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<el-tag :type="value ? trueType : falseType" :size="size">{{value ? trueText : falseText}}</el-tag>
|
<el-tag v-if="value != null" :type="value ? trueType : falseType" :size="size">{{value ? trueText : falseText}}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
|
@ -7,8 +7,7 @@ export default {
|
||||||
props: {
|
props: {
|
||||||
value: {
|
value: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: null,
|
default: null
|
||||||
required: true
|
|
||||||
},
|
},
|
||||||
size: {
|
size: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
|
@ -120,6 +120,12 @@ export const constantRoutes = [
|
||||||
name: 'ReportView',
|
name: 'ReportView',
|
||||||
meta: { title: '报表详情', noCache: false}
|
meta: { title: '报表详情', noCache: false}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'prodOrder/:id',
|
||||||
|
component: () => import('@/views/yh/prodOrder/view/view.vue'),
|
||||||
|
name: 'ProdOrderView',
|
||||||
|
meta: { title: '订单详情', noCache: false}
|
||||||
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -92,3 +92,21 @@ export const ReportPriceType = {
|
||||||
PUBLIC: "1", // 公共工序
|
PUBLIC: "1", // 公共工序
|
||||||
BILL: "2", // 订单工序
|
BILL: "2", // 订单工序
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导入日志业务类型
|
||||||
|
*/
|
||||||
|
export const LogImportBizType = {
|
||||||
|
PRICE: "1", // 单价
|
||||||
|
PROD_ORDER: "2", // 生产订单
|
||||||
|
}
|
||||||
|
|
||||||
|
// 操作日志业务类型
|
||||||
|
export const OperLogBizType = {
|
||||||
|
UNKNOWN: "0", // 未知
|
||||||
|
PRICE: "1", // 单价
|
||||||
|
REPORT: "2", // 报表
|
||||||
|
PROD_ORDER: "3", // 生产订单
|
||||||
|
MATERIAL: "4", // 物料
|
||||||
|
UNIT: "5", // 单位
|
||||||
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
v-model="queryParams.operIp"
|
v-model="queryParams.operIp"
|
||||||
placeholder="请输入操作地址"
|
placeholder="请输入操作地址"
|
||||||
clearable
|
clearable
|
||||||
style="width: 240px;"
|
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -15,7 +14,6 @@
|
||||||
v-model="queryParams.title"
|
v-model="queryParams.title"
|
||||||
placeholder="请输入系统模块"
|
placeholder="请输入系统模块"
|
||||||
clearable
|
clearable
|
||||||
style="width: 240px;"
|
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -24,17 +22,11 @@
|
||||||
v-model="queryParams.operName"
|
v-model="queryParams.operName"
|
||||||
placeholder="请输入操作人员"
|
placeholder="请输入操作人员"
|
||||||
clearable
|
clearable
|
||||||
style="width: 240px;"
|
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="类型" prop="businessType">
|
<el-form-item label="操作类型" prop="businessType" >
|
||||||
<el-select
|
<el-select v-model="queryParams.businessType" placeholder="请选择操作类型" clearable @change="handleQuery">
|
||||||
v-model="queryParams.businessType"
|
|
||||||
placeholder="操作类型"
|
|
||||||
clearable
|
|
||||||
style="width: 240px"
|
|
||||||
>
|
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in dict.type.sys_oper_type"
|
v-for="dict in dict.type.sys_oper_type"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
|
@ -43,13 +35,18 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态" prop="status">
|
<el-form-item label="业务类型" prop="bizType">
|
||||||
<el-select
|
<el-select v-model="queryParams.bizType" placeholder="请选择业务类型" clearable @change="handleQuery">
|
||||||
v-model="queryParams.status"
|
<el-option
|
||||||
placeholder="操作状态"
|
v-for="dict in dict.type.log_biz_type"
|
||||||
clearable
|
:key="dict.value"
|
||||||
style="width: 240px"
|
:label="dict.label"
|
||||||
>
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="操作状态" prop="status">
|
||||||
|
<el-select v-model="queryParams.status" placeholder="请选择操作状态" clearable @change="handleQuery">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in dict.type.sys_common_status"
|
v-for="dict in dict.type.sys_common_status"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
|
@ -65,8 +62,8 @@
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
type="daterange"
|
type="daterange"
|
||||||
range-separator="-"
|
range-separator="-"
|
||||||
start-placeholder="开始日期"
|
start-placeholder="开始时间"
|
||||||
end-placeholder="结束日期"
|
end-placeholder="结束时间"
|
||||||
:default-time="['00:00:00', '23:59:59']"
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
></el-date-picker>
|
></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -218,6 +215,12 @@ import { list, delOperlog, cleanOperlog } from "@/api/monitor/operlog";
|
||||||
export default {
|
export default {
|
||||||
name: "Operlog",
|
name: "Operlog",
|
||||||
dicts: ['sys_oper_type', 'sys_common_status', 'log_biz_type'],
|
dicts: ['sys_oper_type', 'sys_common_status', 'log_biz_type'],
|
||||||
|
props: {
|
||||||
|
query: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 遮罩层
|
// 遮罩层
|
||||||
|
@ -253,6 +256,11 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
this.queryParams = {
|
||||||
|
...this.queryParams,
|
||||||
|
...this.query
|
||||||
|
}
|
||||||
|
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
37
src/views/yh/prodOrder/components/ProdOrderProgress.vue
Normal file
37
src/views/yh/prodOrder/components/ProdOrderProgress.vue
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
<template>
|
||||||
|
<el-progress
|
||||||
|
v-if="percentage != null && !isNaN(percentage)"
|
||||||
|
text-inside
|
||||||
|
:stroke-width="16"
|
||||||
|
:percentage="percentage"
|
||||||
|
:color="customColors"
|
||||||
|
text-color="#fff"
|
||||||
|
:style="{width: width}"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "ProdOrderProgress",
|
||||||
|
props: {
|
||||||
|
percentage: {
|
||||||
|
type: Number,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
customColors: {
|
||||||
|
type: Array,
|
||||||
|
default: () => {
|
||||||
|
return [
|
||||||
|
{color: '#f56c6c', percentage: 100},
|
||||||
|
{color: '#f3ab40', percentage: 80},
|
||||||
|
{color: '#5cb87a', percentage: 60},
|
||||||
|
{color: '#2f9bfb', percentage: 30},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
width: {
|
||||||
|
type: String,
|
||||||
|
default: "80px",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -132,6 +132,9 @@
|
||||||
<template v-else-if="column.key === 'erpIsRework'">
|
<template v-else-if="column.key === 'erpIsRework'">
|
||||||
<boolean-tag :value="d.row.erpIsRework"/>
|
<boolean-tag :value="d.row.erpIsRework"/>
|
||||||
</template>
|
</template>
|
||||||
|
<template v-else-if="column.key === 'percentage'">
|
||||||
|
<prod-order-progress :percentage="percentage(d.row)" width="80px"/>
|
||||||
|
</template>
|
||||||
<template v-else-if="['erpQty', 'erpNoStockInQty'].includes(column.key)">
|
<template v-else-if="['erpQty', 'erpNoStockInQty'].includes(column.key)">
|
||||||
{{d.row[column.key]}}
|
{{d.row[column.key]}}
|
||||||
<template v-if="!isEmpty(d.row.unitName)">{{d.row.unitName}}</template>
|
<template v-if="!isEmpty(d.row.unitName)">{{d.row.unitName}}</template>
|
||||||
|
@ -151,6 +154,13 @@
|
||||||
<!-- @click="handleUpdate(scope.row)"-->
|
<!-- @click="handleUpdate(scope.row)"-->
|
||||||
<!-- v-has-permi="['yh:prodOrder:edit']"-->
|
<!-- v-has-permi="['yh:prodOrder:edit']"-->
|
||||||
<!-- >修改</el-button>-->
|
<!-- >修改</el-button>-->
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-view"
|
||||||
|
@click="handleView(scope.row)"
|
||||||
|
v-has-permi="['yh:prodOrder:query']"
|
||||||
|
>详情</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
|
@ -260,6 +270,8 @@ import FormCol from "@/components/FormCol/index.vue";
|
||||||
import DeptTreeSelect from "@/components/Business/Dept/DeptTreeSelect.vue";
|
import DeptTreeSelect from "@/components/Business/Dept/DeptTreeSelect.vue";
|
||||||
import BooleanTag from "@/components/BooleanTag/index.vue";
|
import BooleanTag from "@/components/BooleanTag/index.vue";
|
||||||
import {isEmpty} from "@/utils";
|
import {isEmpty} from "@/utils";
|
||||||
|
import {$prodOrder} from "@/views/yh/prodOrder/mixins";
|
||||||
|
import ProdOrderProgress from "@/views/yh/prodOrder/components/ProdOrderProgress.vue";
|
||||||
|
|
||||||
// 默认排序字段
|
// 默认排序字段
|
||||||
const defaultSort = {
|
const defaultSort = {
|
||||||
|
@ -269,9 +281,9 @@ const defaultSort = {
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "ProdOrder",
|
name: "ProdOrder",
|
||||||
mixins: [$showColumns],
|
mixins: [$showColumns, $prodOrder],
|
||||||
dicts: ['prod_order_erp_document_status', 'prod_order_erp_status', 'prod_order_erp_req_src'],
|
dicts: ['prod_order_erp_document_status', 'prod_order_erp_status', 'prod_order_erp_req_src'],
|
||||||
components: {BooleanTag, DeptTreeSelect, FormCol},
|
components: {ProdOrderProgress, BooleanTag, DeptTreeSelect, FormCol},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
span: 24,
|
span: 24,
|
||||||
|
@ -300,6 +312,7 @@ export default {
|
||||||
{key: 'erpBaseNoStockInQty', visible: false, label: '基本未入库', minWidth: null, sortable: true, overflow: false, align: 'center', width: "130"},
|
{key: 'erpBaseNoStockInQty', visible: false, label: '基本未入库', minWidth: null, sortable: true, overflow: false, align: 'center', width: "130"},
|
||||||
{key: 'baseUnitName', visible: false, label: '基本单位', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'baseUnitName', visible: false, label: '基本单位', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'syncTime', visible: true, label: '同步时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
{key: 'syncTime', visible: true, label: '同步时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
||||||
|
{key: 'percentage', visible: true, label: '进度', minWidth: null, sortable: false, overflow: false, align: 'center', width: "100"},
|
||||||
],
|
],
|
||||||
// 排序方式
|
// 排序方式
|
||||||
orderSorts: ['ascending', 'descending', null],
|
orderSorts: ['ascending', 'descending', null],
|
||||||
|
@ -361,6 +374,9 @@ export default {
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handleView(row) {
|
||||||
|
this.$router.push(`/view/prodOrder/${row.id}`)
|
||||||
|
},
|
||||||
isEmpty,
|
isEmpty,
|
||||||
handleSync(query = {}) {
|
handleSync(query = {}) {
|
||||||
this.$confirm('确定同步生产订单吗?', '提示', {
|
this.$confirm('确定同步生产订单吗?', '提示', {
|
||||||
|
|
16
src/views/yh/prodOrder/mixins.js
Normal file
16
src/views/yh/prodOrder/mixins.js
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
import {notNullDecimal} from "@/utils";
|
||||||
|
|
||||||
|
export const $prodOrder = {
|
||||||
|
computed: {
|
||||||
|
// 生产进度百分比
|
||||||
|
percentage() {
|
||||||
|
return (row) => {
|
||||||
|
return notNullDecimal(
|
||||||
|
notNullDecimal(row.verifiedBaseNum)
|
||||||
|
.div(notNullDecimal(row.erpBaseUnitQty))
|
||||||
|
.toFixed(2)
|
||||||
|
).toNumber();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
96
src/views/yh/prodOrder/view/view.vue
Normal file
96
src/views/yh/prodOrder/view/view.vue
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container" v-loading="loading">
|
||||||
|
<el-card class="card-box" header="订单信息">
|
||||||
|
<el-descriptions :column="4">
|
||||||
|
<el-descriptions-item label="单据编号">{{detail.erpBillNo | dv}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="单据状态">
|
||||||
|
<dict-tag :options="dict.type.prod_order_erp_document_status" :value="detail.erpDocumentStatus" size="small"/>
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="创建日期">{{detail.erpCreateDate | dv}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="修改日期">{{detail.erpModifyDate | dv}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="单据日期">{{detail.erpDate | dv}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="物料编码">{{detail.materialNumber | dv}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="是否返工">
|
||||||
|
<boolean-tag :value="detail.erpIsRework" size="small"/>
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="备注">{{detail.erpMemoItem | dv}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="下达日期">{{detail.erpConveyDate | dv}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="业务状态">
|
||||||
|
<dict-tag :options="dict.type.prod_order_erp_status" :value="detail.erpStatus" size="small"/>
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="生产车间">{{detail.workShopName | dv}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="需求来源">
|
||||||
|
<dict-tag :options="dict.type.prod_order_erp_req_src" :value="detail.erpReqSrc" size="small"/>
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="数量">{{detail.erpQty | dv}} {{detail.unitName}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="未入库数量">{{detail.erpNoStockInQty | dv}} {{detail.unitName}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="同步时间">{{detail.syncTime | dv}}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="生产进度">
|
||||||
|
<prod-order-progress :percentage="percentage(detail)" width="80px"/>
|
||||||
|
</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<el-card class="card-box">
|
||||||
|
<el-tabs>
|
||||||
|
<el-tab-pane label="生产列表" lazy v-if="checkPermi(['yh:reportOrderProd:list'])">
|
||||||
|
<report-order-prod v-if="detail.id != null" :query="{orderId: detail.id}"/>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="同步日志" lazy v-if="checkPermi(['yh:logImportDetail:list'])">
|
||||||
|
<log-import-detail v-if="detail.id != null" :query="{logBizType: LogImportBizType.PROD_ORDER, bstId: detail.id}"/>
|
||||||
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="操作日志" lazy v-if="checkPermi(['yh:logImportDetail:list'])">
|
||||||
|
<operlog v-if="detail.id != null" :query="{bizType: OperLogBizType.PROD_ORDER, bizId: detail.id}"/>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {getProdOrder} from "@/api/yh/prodOrder";
|
||||||
|
import BooleanTag from "@/components/BooleanTag/index.vue";
|
||||||
|
import ReportOrderProd from "@/views/yh/reportOrderProd/index.vue";
|
||||||
|
import {checkPermi} from "@/utils/permission";
|
||||||
|
import LogImport from "@/views/yh/logImport/index.vue";
|
||||||
|
import LogImportDetail from "@/views/yh/logImportDetail/index.vue";
|
||||||
|
import {LogImportBizType, OperLogBizType} from "@/utils/constants";
|
||||||
|
import Operlog from "@/views/monitor/operlog/index.vue";
|
||||||
|
import ProdOrderProgress from "@/views/yh/prodOrder/components/ProdOrderProgress.vue";
|
||||||
|
import {$prodOrder} from "@/views/yh/prodOrder/mixins";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "ProdOrderView",
|
||||||
|
mixins: [$prodOrder],
|
||||||
|
computed: {
|
||||||
|
OperLogBizType() {
|
||||||
|
return OperLogBizType
|
||||||
|
},
|
||||||
|
LogImportBizType() {
|
||||||
|
return LogImportBizType
|
||||||
|
},
|
||||||
|
},
|
||||||
|
components: {ProdOrderProgress, Operlog, LogImportDetail, LogImport, ReportOrderProd, BooleanTag},
|
||||||
|
dicts: ['prod_order_erp_document_status', 'prod_order_erp_status', 'prod_order_erp_req_src'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
detail: {},
|
||||||
|
loading: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getDetail();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
checkPermi,
|
||||||
|
getDetail() {
|
||||||
|
this.loading = true;
|
||||||
|
getProdOrder(this.$route.params.id).then(res => {
|
||||||
|
this.detail = res.data;
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -68,7 +68,7 @@
|
||||||
<template v-if="column.key === 'id'">
|
<template v-if="column.key === 'id'">
|
||||||
{{d.row[column.key]}}
|
{{d.row[column.key]}}
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'num'">
|
<template v-else-if="['num'].includes(column.key)">
|
||||||
{{d.row[column.key] | dv}} {{d.row.priceUnit}}
|
{{d.row[column.key] | dv}} {{d.row.priceUnit}}
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'pricePrice'">
|
<template v-else-if="column.key === 'pricePrice'">
|
||||||
|
@ -150,19 +150,25 @@ export default {
|
||||||
mixins: [$showColumns],
|
mixins: [$showColumns],
|
||||||
dicts: ['report_status'],
|
dicts: ['report_status'],
|
||||||
components: {FormCol},
|
components: {FormCol},
|
||||||
|
props: {
|
||||||
|
query: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
span: 24,
|
span: 24,
|
||||||
// 字段列表
|
// 字段列表
|
||||||
columns: [
|
columns: [
|
||||||
{key: 'id', visible: false, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
{key: 'id', visible: false, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
||||||
|
{key: 'orderErpBillNo', visible: true, label: '生产订单', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'reportId', visible: false, label: '报表编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
{key: 'reportId', visible: false, label: '报表编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
||||||
{key: 'reportDate', visible: true, label: '报表日期', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'reportDate', visible: true, label: '报表日期', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'reportStatus', visible: true, label: '报表状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'reportStatus', visible: true, label: '报表状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'orderErpBillNo', visible: true, label: '生产订单', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
|
||||||
{key: 'priceName', visible: true, label: '工序', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'priceName', visible: true, label: '工序', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'pricePrice', visible: true, label: '单价', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'pricePrice', visible: true, label: '单价', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'num', visible: true, label: '生产数量', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'num', visible: true, label: '良品数', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
],
|
],
|
||||||
// 排序方式
|
// 排序方式
|
||||||
orderSorts: ['ascending', 'descending', null],
|
orderSorts: ['ascending', 'descending', null],
|
||||||
|
@ -212,6 +218,11 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
this.queryParams = {
|
||||||
|
...this.queryParams,
|
||||||
|
...this.query
|
||||||
|
}
|
||||||
|
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<el-descriptions-item :key="item.id" label="生产订单" :span="2">{{item.orderErpBillNo | dv}}</el-descriptions-item>
|
<el-descriptions-item :key="item.id" label="生产订单" :span="2">{{item.orderErpBillNo | dv}}</el-descriptions-item>
|
||||||
<el-descriptions-item :key="item.id" label="本次提交产量">{{item.num | fix2 | dv}} {{priceUnit}}</el-descriptions-item>
|
<el-descriptions-item :key="item.id" label="本次提交产量">{{item.num | fix2 | dv}} {{priceUnit}}</el-descriptions-item>
|
||||||
<el-descriptions-item :key="item.id" label="订单进度">
|
<el-descriptions-item :key="item.id" label="订单进度">
|
||||||
<el-progress text-inside :stroke-width="16" :percentage="percentage(item)" :color="customColors" text-color="#fff" style="width: 80px"/>
|
<prod-order-progress :percentage="percentage(item)" width="80px"/>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item :key="item.id" label="订单需求数量">{{item.orderErpBaseUnitQty | fix2 | dv}} {{item.baseUnitName}}</el-descriptions-item>
|
<el-descriptions-item :key="item.id" label="订单需求数量">{{item.orderErpBaseUnitQty | fix2 | dv}} {{item.baseUnitName}}</el-descriptions-item>
|
||||||
<el-descriptions-item :key="item.id" label="订单未入库数量">{{item.orderErpBaseNoStockInQty | fix2 | dv}} {{item.baseUnitName}}</el-descriptions-item>
|
<el-descriptions-item :key="item.id" label="订单未入库数量">{{item.orderErpBaseNoStockInQty | fix2 | dv}} {{item.baseUnitName}}</el-descriptions-item>
|
||||||
|
@ -21,9 +21,11 @@
|
||||||
|
|
||||||
import {notNullDecimal} from "@/utils";
|
import {notNullDecimal} from "@/utils";
|
||||||
import Decimal from "decimal.js";
|
import Decimal from "decimal.js";
|
||||||
|
import ProdOrderProgress from "@/views/yh/prodOrder/components/ProdOrderProgress.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "ReportOrderProdDescriptions",
|
name: "ReportOrderProdDescriptions",
|
||||||
|
components: {ProdOrderProgress},
|
||||||
props: {
|
props: {
|
||||||
data: {
|
data: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
@ -42,12 +44,6 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
customColors: [
|
|
||||||
{color: '#f56c6c', percentage: 100},
|
|
||||||
{color: '#f3ab40', percentage: 80},
|
|
||||||
{color: '#5cb87a', percentage: 60},
|
|
||||||
{color: '#2f9bfb', percentage: 30},
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -60,11 +56,9 @@ export default {
|
||||||
console.log("percentage", verifiedBaseNum.toNumber(), num.toNumber(), orderErpBaseUnitQty.toNumber());
|
console.log("percentage", verifiedBaseNum.toNumber(), num.toNumber(), orderErpBaseUnitQty.toNumber());
|
||||||
|
|
||||||
// 结果 = (已审核量 + 本次提交量 * 倍数) / 基础总需求量 * 100
|
// 结果 = (已审核量 + 本次提交量 * 倍数) / 基础总需求量 * 100
|
||||||
let result = new Decimal(
|
return new Decimal(
|
||||||
verifiedBaseNum.add(num).mul(new Decimal(100)).div(orderErpBaseUnitQty).toFixed(2)
|
verifiedBaseNum.add(num).mul(new Decimal(100)).div(orderErpBaseUnitQty).toFixed(2)
|
||||||
).toNumber();
|
).toNumber();
|
||||||
console.log('result', result);
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue
Block a user