导出入库列表、进度逻辑修改

This commit is contained in:
磷叶 2025-02-25 17:01:18 +08:00
parent 0eed3a4f14
commit db95827637
8 changed files with 66 additions and 50 deletions

View File

@ -1,5 +1,5 @@
<template>
<div>
<div class="dict-tag">
<template v-for="(item, index) in options">
<template v-if="values.includes(item.value)">
<span
@ -91,4 +91,7 @@ export default {
.el-tag + .el-tag {
margin-left: 10px;
}
.dict-tag {
display: inline-block;
}
</style>

View File

@ -19,7 +19,7 @@
<el-checkbox v-model="updateSupport">更新已经存在的数据</el-checkbox>
</div> -->
<span>仅允许导入xlsxlsx格式文件</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
<el-link type="primary" v-if="templateUrl" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">

View File

@ -20,16 +20,16 @@
<el-descriptions-item label="订单" :span="2">{{ order.orderNo | dv}}</el-descriptions-item>
<el-descriptions-item label="订单日期" :span="2">{{ order.orderDate | dv}}</el-descriptions-item>
<el-descriptions-item label="客户" :span="2">{{ order.customer | dv}}</el-descriptions-item>
<el-descriptions-item label="特殊要求" :span="2">{{ order.remark | dv}}</el-descriptions-item>
<el-descriptions-item label="订单数量" :span="2">{{ order.num | dv}}</el-descriptions-item>
</el-descriptions>
</div>
</div>
<div class="progress-container">
<el-progress :percentage="order.progress" :color="ProgressColors" :format="ProgressFormat" style="width: 100%;" :stroke-width="10"/>
<el-descriptions :column="3" size="small">
<el-descriptions-item label="数量">{{ order.num | dv}}</el-descriptions-item>
<el-descriptions-item label="已上报">{{ order.reportNum | dv}}</el-descriptions-item>
<el-descriptions-item label="已入库">{{ order.storeNum | dv}}</el-descriptions-item>
<el-descriptions-item label="数量">{{ order.totalNum | dv}}</el-descriptions-item>
<el-descriptions-item label="汇报生产数">{{ order.reportNum | dv}}</el-descriptions-item>
<el-descriptions-item label="仓库清点数">{{ order.storeNum | dv}}</el-descriptions-item>
</el-descriptions>
</div>

View File

@ -1,7 +1,7 @@
<template>
<div v-loading="loading">
<edit-header :title="title">
<el-button plain @click="importExcel" icon="el-icon-upload" size="small" type="success">从Excel导入</el-button>
<el-button plain @click="importExcel" v-permi="['bst:order:parseExcelData']" icon="el-icon-upload" size="small" type="success">从Excel导入</el-button>
<el-button plain @click="cancel" icon="el-icon-close" size="small">取消</el-button>
<el-button type="primary" plain @click="submitForm(false)" icon="el-icon-check" size="small">保存</el-button>
<el-button type="primary" @click="submitForm(true)" icon="el-icon-s-check" size="small" v-if="form.id == null || OrderStatus.canRelease().includes(form.status)">保存并发布</el-button>
@ -69,7 +69,6 @@
title="从Excel导入"
template-name="生产订单导入模板"
url="/bst/order/parseExcelData"
templateUrl="/bst/order/importExcelTemplate"
@success="handleImportSuccess"
/>
</div>

View File

@ -235,10 +235,10 @@ export default {
{key: 'customer', visible: true, label: '客户', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
{key: 'orderDate', visible: true, label: '订单日期', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
{key: 'deliveryDate', visible: true, label: '交货日期', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
{key: 'name', visible: true, label: '名称', minWidth: null, sortable: false, overflow: true, align: 'center', width: null},
// {key: 'name', visible: true, label: '', minWidth: null, sortable: false, overflow: true, align: 'center', width: null},
{key: 'material', visible: true, label: '用料', minWidth: null, sortable: false, overflow: true, align: 'center', width: null},
{key: 'contentNum', visible: true, label: '装量', minWidth: null, sortable: true, overflow: true, align: 'center', width: null},
{key: 'packageSize', visible: true, label: '包装', minWidth: null, sortable: false, overflow: true, align: 'center', width: null},
// {key: 'contentNum', visible: true, label: '', minWidth: null, sortable: true, overflow: true, align: 'center', width: null},
// {key: 'packageSize', visible: true, label: '', minWidth: null, sortable: false, overflow: true, align: 'center', width: null},
{key: 'remark', visible: true, label: '要求', minWidth: null, sortable: false, overflow: true, align: 'center', width: null},
{key: 'num', visible: true, label: '数量', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'reportNum', visible: true, label: '已上报', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},

View File

@ -14,13 +14,13 @@
<el-descriptions-item label="客户">{{ detail.customer | dv}}</el-descriptions-item>
<el-descriptions-item label="订单日期">{{ detail.orderDate | dv}}</el-descriptions-item>
<el-descriptions-item label="交货日期">{{ detail.deliveryDate | dv}}</el-descriptions-item>
<!-- <el-descriptions-item label="产品名称">{{ detail.name | dv}}</el-descriptions-item> -->
<el-descriptions-item label="用料">{{ detail.material | dv}}</el-descriptions-item>
<!-- <el-descriptions-item label="装量">{{ detail.contentNum | dv}}</el-descriptions-item> -->
<!-- <el-descriptions-item label="包装尺寸">{{ detail.packageSize | dv}}</el-descriptions-item> -->
<el-descriptions-item label="特殊要求" :span="2">{{ detail.remark | dv}}</el-descriptions-item>
<el-descriptions-item label="创建人">{{ detail.createBy | dv}}</el-descriptions-item>
<el-descriptions-item label="创建时间">{{ detail.createTime | dv}}</el-descriptions-item>
<el-descriptions-item label="产品名称">{{ detail.name | dv}}</el-descriptions-item>
<el-descriptions-item label="用料">{{ detail.material | dv}}</el-descriptions-item>
<el-descriptions-item label="装量">{{ detail.contentNum | dv}}</el-descriptions-item>
<el-descriptions-item label="包装尺寸">{{ detail.packageSize | dv}}</el-descriptions-item>
<el-descriptions-item label="特殊要求" :span="2">{{ detail.remark | dv}}</el-descriptions-item>
</el-descriptions>
</div>
</el-card>
@ -41,15 +41,19 @@
<div class="progress-stats">
<div class="stat-item">
<div class="stat-label">数量</div>
<div class="stat-label">订单数量</div>
<div class="stat-value">{{ detail.num || 0 }}</div>
</div>
<div class="stat-item">
<div class="stat-label">已上报</div>
<div class="stat-label">总数量</div>
<div class="stat-value">{{ detail.totalNum || 0 }}</div>
</div>
<div class="stat-item">
<div class="stat-label">汇报生产数</div>
<div class="stat-value">{{ detail.reportNum || 0 }}</div>
</div>
<div class="stat-item">
<div class="stat-label">已清点</div>
<div class="stat-label">仓库清点数</div>
<div class="stat-value">{{ detail.storeNum || 0 }}</div>
</div>
</div>

View File

@ -124,7 +124,13 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="orderProdList" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="onSortChange">
<el-table
v-loading="loading"
size="mini"
:data="orderProdList"
@selection-change="handleSelectionChange"
:default-sort="defaultSort"
@sort-change="onSortChange">
<el-table-column type="selection" width="50" align="center" />
<template v-for="column of showColumns">
<el-table-column
@ -143,7 +149,8 @@
{{d.row[column.key]}}
</template>
<template v-else-if="column.key === 'workType'">
<dict-tag :options="dict.type.order_prod_work_type" :value="d.row[column.key]"/>
<template v-if="d.row.workType === ProdWorkType.BUY">{{d.row.workName}}</template>
<dict-tag :options="dict.type.order_prod_work_type" :value="d.row[column.key]" size="mini"/>
</template>
<template v-else-if="column.key === 'orderNo'">
<order-link :id="d.row.orderId" :name="d.row.orderNo"/>
@ -191,6 +198,7 @@ import { ProgressColors, ProgressFormat } from '@/utils/constants'
import ProdProcess from '@/views/bst/prodProcess/index.vue'
import OrderLink from '@/components/Business/Order/OrderLink.vue'
import ProcessCardList from '@/views/bst/prodProcess/components/ProcessCardList.vue'
import { ProdWorkType } from '@/utils/enums'
//
const defaultSort = {
@ -220,27 +228,29 @@ export default {
},
data() {
return {
ProdWorkType,
ProgressColors,
span: 24,
//
columns: [
{key: 'id', visible: false, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
{key: 'orderNo', visible: true, label: '订单', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'picture', visible: true, label: '主图', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
{key: 'name', visible: true, label: '名称', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'workType', visible: true, label: '加工商', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'materialNo', visible: true, label: '物料编码', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'spec', visible: true, label: '规格', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'no', visible: true, label: '序号', minWidth: null, sortable: false, overflow: false, align: 'center', width: "80"},
{key: 'picture', visible: true, label: '图片', minWidth: null, sortable: false, overflow: false, align: 'center', width: "80"},
{key: 'name', visible: true, label: '产品名称', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'workType', visible: true, label: '加工商', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
{key: 'materialNo', visible: true, label: '物料编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
// {key: 'spec', visible: true, label: '', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'remark', visible: true, label: '备注', minWidth: null, sortable: true, overflow: true, align: 'center', width: null},
{key: 'isEnd', visible: true, label: '是否成品', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
// {key: 'isEnd', visible: true, label: '', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'handleWay', visible: true, label: '处理方式', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'effect', visible: true, label: '效果', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'color', visible: true, label: '颜色', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'coverColor', visible: true, label: '盖子颜色', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'contentNum', 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: 'reportNum', visible: true, label: '已上报', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
{key: 'storeNum', visible: true, label: '已清点', minWidth: null, sortable: false, overflow: false, align: 'center', width: null},
{key: 'effect', visible: true, label: '效果/包装尺寸', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'color', visible: true, label: '颜色', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
{key: 'coverColor', visible: true, label: '球盖/外箱尺寸', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'contentNum', visible: true, label: '装量', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
{key: 'num', visible: true, label: '数量', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
{key: 'reportNum', visible: true, label: '已上报', minWidth: null, sortable: false, overflow: false, align: 'center', width: "80"},
{key: 'storeNum', visible: true, label: '已清点', minWidth: null, sortable: false, overflow: false, align: 'center', width: "80"},
{key: 'progress', visible: true, label: '进度', minWidth: null, sortable: false, overflow: false, align: 'center', width: "160"},
],
//

View File

@ -17,17 +17,17 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="部门" prop="processDeptId">
<el-form-item label="工序" prop="processDeptId">
<dept-tree-select v-model="queryParams.processDeptId" @change="handleQuery" class="small-tree-select"/>
</el-form-item>
<el-form-item label="工序" prop="deptProcess">
<!-- <el-form-item label="工序" prop="deptProcess">
<el-input
v-model="queryParams.deptProcess"
placeholder="请输入工序名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item> -->
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable @change="handleQuery">
<el-option
@ -108,16 +108,16 @@
<!-- v-has-permi="['bst:store:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- @click="handleExport"-->
<!-- v-has-permi="['bst:store:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-has-permi="['bst:store:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
@ -231,8 +231,8 @@ export default {
{key: 'id', visible: true, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
{key: 'orderNo', visible: true, label: '订单编号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'prodName', visible: true, label: '产品名称', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'processDeptName', visible: true, label: '部门', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'deptProcess', visible: true, label: '工序', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'processDeptName', visible: true, label: '工序', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
// {key: 'deptProcess', visible: true, label: '', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'processIsEnd', visible: true, label: '最终工序', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'status', 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},
@ -375,7 +375,7 @@ export default {
handleExport() {
this.download('bst/store/export', {
...this.queryParams
}, `store_${new Date().getTime()}.xlsx`)
}, `入库列表导出_${new Date().getTime()}.xlsx`)
}
}
};