工序接收和报工页面开发

dev-scheduling
zhangdi 1 month ago
parent fb959df783
commit e88464432f
  1. 19
      src/api/taskCope/index.js
  2. 2
      src/router/page/index.js
  3. 10
      src/router/views/index.js
  4. 126
      src/views/wel/components/quickAccess.vue
  5. 2
      src/views/wel/components/workbase.vue
  6. 301
      src/views/wel/taskCope/index.vue
  7. 2
      src/views/workRate/index.vue

@ -0,0 +1,19 @@
import request from '@/axios';
// 工序任务接收
export const workPlanReceive = (data) => {
return request({
url: '/produceMonitor/workPlanReceive',
method: 'post',
data: data,
});
};
// 根据流程卡号查询订单信息
export const loadNotReceived = (cardNo) => {
return request({
url: '/produceMonitor/loadNotReceived/' + cardNo,
method: 'get',
});
};

@ -120,4 +120,6 @@ export default [
isAuth: false, isAuth: false,
}, },
}, },
]; ];

@ -35,6 +35,16 @@ export default [
}, },
component: () => import(/* webpackChunkName: "views" */ '@/views/wel/dashboard.vue'), component: () => import(/* webpackChunkName: "views" */ '@/views/wel/dashboard.vue'),
}, },
{
path: '/taskCope',
component: () => import(/* webpackChunkName: "page" */ '@/views/wel/taskCope/index.vue'),
name: '工序接收',
meta: {
keepAlive: true,
isTab: false,
isAuth: false,
},
},
// { // {
// path: 'search', // path: 'search',
// name: '菜单搜索', // name: '菜单搜索',

@ -1,83 +1,91 @@
<template> <template>
<div class="quick_box"> <div class="quick_box">
<div class="title_box"> <div class="title_box">
<span class="title">快捷入口</span> <span class="title">快捷入口</span>
<span style="color: #409EFF;font-size: 14px;">管理</span> <span style="color: #409eff; font-size: 14px">管理</span>
</div> </div>
<div class="access_box"> <div class="access_box">
<div class="access_box_item" v-for="item in accessData" :key="item.name" @click="turnPage(item.page)"> <div
<img v-show="item.url == 'product'" src="@/assets/product.png" alt=""> class="access_box_item"
<img v-show="item.url == 'plan'" src="@/assets/plan.png" alt=""> v-for="item in accessData"
<img v-show="item.url == 'rule'" src="@/assets/rule.png" alt=""> :key="item.name"
<img v-show="item.url == 'output'" src="@/assets/output.png" alt=""> @click="turnPage(item.page)"
<img v-show="item.url == 'craft'" src="@/assets/craft.png" alt=""> >
<img v-show="item.url == 'quality'" src="@/assets/quality.png" alt=""> <img v-show="item.url == 'product'" src="@/assets/product.png" alt="" />
<span>{{ item.name }}</span> <img v-show="item.url == 'plan'" src="@/assets/plan.png" alt="" />
</div> <img v-show="item.url == 'rule'" src="@/assets/rule.png" alt="" />
<img v-show="item.url == 'output'" src="@/assets/output.png" alt="" />
<img v-show="item.url == 'craft'" src="@/assets/craft.png" alt="" />
<img v-show="item.url == 'quality'" src="@/assets/quality.png" alt="" />
<span>{{ item.name }}</span>
</div>
</div> </div>
<!-- 工序报工 -->
<!-- <taskCope></taskCope> -->
</div> </div>
</template> </template>
<script> <script>
import taskCope from '../taskCope/index.vue';
export default { export default {
data(){ components: { taskCope },
return{ data() {
accessData:[ return {
{name:'生产计划',url:'plan',page:'/productionSchedulingPlan/productPlan'}, accessData: [
{name:'排产规则',url:'rule',page:'/productionSchedulingPlan/productRlue '}, { name: '工序接收', url: 'plan', page: '/taskCope' },
{name:'生产订单',url:'product'}, { name: '工序报工', url: 'rule', page: '/productionSchedulingPlan/productRlue ' },
{name:'工艺模板',url:'craft'}, { name: '工序检验', url: 'product' },
{name:'质量检验',url:'quality'}, { name: '工艺模板', url: 'craft' },
] { name: '质量检验', url: 'quality' },
} ],
};
},
methods: {
turnPage(page) {
if (page) {
this.$router.push(page);
}
}, },
methods:{ },
turnPage(page){ };
if(page){
this.$router.push(page);
}
}
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.quick_box{ .quick_box {
padding: 20px; padding: 20px;
border-bottom: 1px solid #eee; // border-bottom: 1px solid #eee;
height: 50%; height: 50%;
.title_box{ .title_box {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.title{ .title {
font-weight: 550; font-weight: 550;
}
} }
}
.access_box{ .access_box {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
// margin-top: 10px; // margin-top: 10px;
.access_box_item{ .access_box_item {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 32%; width: 32%;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
margin-block: 10px; margin-block: 10px;
font-size:14px; font-size: 14px;
cursor: pointer; cursor: pointer;
img{ img {
width: 20px; width: 20px;
margin-bottom: 5px; margin-bottom: 5px;
} }
}
} }
}
} }
</style> </style>

@ -19,7 +19,7 @@
<div class="right_box"> <div class="right_box">
<div class="right_top"> <div class="right_top">
<quick-access></quick-access> <quick-access></quick-access>
<statistics-table></statistics-table> <!-- <statistics-table></statistics-table> -->
</div> </div>
<div class="right_bottom"> <div class="right_bottom">
<notice></notice> <notice></notice>

@ -0,0 +1,301 @@
<template>
<basic-container>
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" ref="crud">
<template #menu-left>
<el-input
v-model="cardNo"
style="width: 240px; margin-right: 24px"
@keyup.enter.native="changeCode"
placeholder="请扫描流程单号"
/>
</template>
<template #menu-right>
<el-button type="primary" @click="receiveBatch('add')">批量接收 </el-button>
</template>
<template #menu>
<el-button type="text" @click="delFn(scope.row)">删除</el-button>
</template>
</avue-crud>
</basic-container>
</template>
<script>
import { loadNotReceived } from '@/api/taskCope/index';
export default {
components: {},
data() {
return {
cardNo: '', //
form: {},
selectionList: [],
query: {},
loading: false,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
columnSort: true,
tip: false,
height: 'auto',
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
border: true,
index: true,
selection: false,
addBtn: false,
editBtn: false,
viewBtn: false,
delBtn: false,
editBtnText: '修改',
labelWidth: 120,
menuWidth: 80,
dialogWidth: 900,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
filterBtn: true,
searchShowBtn: false,
excelBtn: true,
showOverflowTooltip: true,
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
gridBtn: false,
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
align: 'center',
header: true,
column: [
{
label: '车间订单号',
prop: 'partCode',
search: false,
sortable: false,
width: '120',
},
{
label: '产品号',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '流程卡号',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '产品型号',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '批次',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '产品名称',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '当前工序',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '上序',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '下序',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '镀种信息',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '生产标识',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '订单优先级',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '需求部门',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '生产数量',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '面积(d㎡)',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '交期',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '计划员',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '计划下达时间',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '计划完工时间',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '已入库数量',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '未入库数量',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '加工班组',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '上一班组',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '下一班组',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '领料状态',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
{
label: '运行状态',
prop: 'partName',
search: false,
sortable: false,
width: '120',
},
],
},
data: [],
};
},
methods: {
delFn(row,index){
},
//
changeCode() {
this.loading = true;
loadNotReceived(this.cardNo)
.then(res => {
this.cardNo = '';
console.log(res, 'resres');
})
.catch(err => {});
},
//
receiveBatch(type) {
if (this.selectionList.length === 0) {
this.$message.warning('请选择要处理的数据');
return;
}
this.$confirm('确定要批量处理吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
this.loading = true;
});
},
},
mounted() {},
};
</script>
d

@ -11,7 +11,7 @@
<el-collapse-item title="订单信息" name="1"> <el-collapse-item title="订单信息" name="1">
<template #title="{ isActive }"> 订单信息 </template> <template #title="{ isActive }"> 订单信息 </template>
<div class="order-box"> <div class="order-box">
<div class="order-item">订单编码{{ detailsForm.orderWoCode }}</div> <div class="order-item">车间订单号{{ detailsForm.orderWoCode }}</div>
<div class="order-item">流程卡号{{ detailsForm.cardNo }}</div> <div class="order-item">流程卡号{{ detailsForm.cardNo }}</div>
<div class="order-item"> <div class="order-item">
零件号 零件号

Loading…
Cancel
Save