定额计算接口联调及页面拆分

dev-scheduling
jinna 12 hours ago
parent 71ceec6985
commit 9250179f8b
  1. 9
      src/api/orderManagement/exceptionOrder.js
  2. 19
      src/views/oem/oemOrderSettlement/components/settlementDailog.vue
  3. 18
      src/views/productionManagement/abnormalOrder.vue
  4. 16
      src/views/productionManagement/addRequirements.vue
  5. 16
      src/views/productionManagement/assayedContent.vue
  6. 10
      src/views/productionManagement/coatingMaterial.vue
  7. 509
      src/views/productionManagement/components/coatingMater/abnormalOrder.vue

@ -69,4 +69,13 @@ export const getProductionIdentificationList = (params) => {
method: 'get', method: 'get',
params params
}); });
};
// 定额异常订单重新计算
export const reCalculate = (params) => {
return request({
url: '/blade-desk/order/yieldOrder/calculateCoatingMaterial',
method: 'post',
params
});
}; };

@ -12,7 +12,7 @@
</el-icon> </el-icon>
<h3>计算完成</h3> <h3>计算完成</h3>
</div> </div>
<div> <div v-if="!abnormal">
<h4>计算结果</h4> <h4>计算结果</h4>
<div class="box-txt"> <div class="box-txt">
<el-icon style="color:#67c23a;margin-right: 4px;margin-top: 2px;"> <el-icon style="color:#67c23a;margin-right: 4px;margin-top: 2px;">
@ -25,6 +25,19 @@
</el-icon>{{ exceptionCount }} </el-icon>{{ exceptionCount }}
</div> </div>
</div> </div>
<div v-if="abnormal">
<h4>计算结果</h4>
<div class="box-txt">
<el-icon style="color:#67c23a;margin-right: 4px;margin-top: 2px;">
<SuccessFilled />
</el-icon>{{ successCount }}
</div>
<div class="box-txt">
<el-icon style="color:#f56c6c;margin-right: 4px;margin-top: 2px;">
<CircleCloseFilled />
</el-icon>{{ exceptionCount }}
</div>
</div>
</div> </div>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
@ -43,6 +56,10 @@ export default {
settleResult: { settleResult: {
type: Object, type: Object,
default: null default: null
},
abnormal:{
type: Boolean,
default: false
} }
}, },
data() { data() {

@ -0,0 +1,18 @@
<template>
<basic-container>
<abnormalOrder></abnormalOrder>
</basic-container>
</template>
<script>
import abnormalOrder from "./components/coatingMater/abnormalOrder.vue"
export default {
components:{
abnormalOrder
}
}
</script>
<style>
</style>

@ -0,0 +1,16 @@
<template>
<basic-container>
<addRequirements ></addRequirements>
</basic-container>
</template>
<script>
import addRequirements from './components/coatingMater/addRequirements.vue'
export default {
components: { addRequirements },
}
</script>
<style>
</style>

@ -0,0 +1,16 @@
<template>
<basic-container>
<assayedContent></assayedContent>
</basic-container>
</template>
<script>
import assayedContent from './components/coatingMater/assayedContent.vue'
export default {
components:{assayedContent}
}
</script>
<style>
</style>

@ -1,15 +1,15 @@
<template> <template>
<basic-container> <basic-container>
<el-tabs v-model="tabPosition" class="demo-tabs" @tab-change="tabPositionChange"> <!-- <el-tabs v-model="tabPosition" class="demo-tabs" @tab-change="tabPositionChange">
<el-tab-pane label="物料需求申报" name="1"></el-tab-pane> <el-tab-pane label="物料需求申报" name="1"></el-tab-pane>
<el-tab-pane label="化验含量" name="2"></el-tab-pane> <el-tab-pane label="化验含量" name="2"></el-tab-pane>
<el-tab-pane label="添加量申报" name="3"></el-tab-pane> <el-tab-pane label="添加量申报" name="3"></el-tab-pane>
<el-tab-pane label="定额异常订单" name="4"></el-tab-pane> <el-tab-pane label="定额异常订单" name="4"></el-tab-pane>
</el-tabs> </el-tabs> -->
<materialRequirements v-if="tabPosition=='1'"></materialRequirements> <materialRequirements ></materialRequirements>
<assayedContent v-if="tabPosition=='2'"></assayedContent> <!-- <assayedContent v-if="tabPosition=='2'"></assayedContent>
<addRequirements v-if="tabPosition=='3'"></addRequirements> <addRequirements v-if="tabPosition=='3'"></addRequirements>
<abnormalOrder v-if="tabPosition=='4'"></abnormalOrder> <abnormalOrder v-if="tabPosition=='4'"></abnormalOrder> -->
</basic-container> </basic-container>
</template> </template>

@ -17,13 +17,29 @@
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
> >
<template #menu-left>
<el-button type="primary" @click="reCalc">重新计算</el-button>
</template>
</avue-crud> </avue-crud>
<settlementDailog
v-if="isOpen"
:abnormal="true"
:showDialog="isOpen"
:settleResult="settleResult"
@closeDialog="closeDialog"
@refresh="refreshTable"
>
</settlementDailog>
</div> </div>
</template> </template>
<script> <script>
import {getList} from "@/api/orderManagement/exceptionOrder" import {getList,reCalculate} from "@/api/orderManagement/exceptionOrder"
import settlementDailog from "@/views/oem/oemOrderSettlement/components/settlementDailog.vue"
export default { export default {
components:{
settlementDailog
},
data(){ data(){
return{ return{
loading:false, loading:false,
@ -35,6 +51,8 @@ export default {
total: 0, total: 0,
}, },
query:{}, query:{},
isOpen:false,
settleResult:{},
selectionList:[], selectionList:[],
option:{ option:{
columnSort: true, columnSort: true,
@ -43,7 +61,7 @@ export default {
calcHeight: 32, calcHeight: 32,
simplePage: false, simplePage: false,
searchShow: true, searchShow: true,
searchMenuSpan: 18, searchMenuSpan: 12,
searchIcon: true, searchIcon: true,
searchIndex: 3, searchIndex: 3,
tree: false, tree: false,
@ -79,11 +97,29 @@ export default {
searchMenuPosition: 'right', searchMenuPosition: 'right',
align: 'center', align: 'center',
column: [ column: [
{
label: '异常原因',
prop: 'validationMomo',
search: false,
sortable: true,
span: 24,
type: 'textarea',
// width: 150,
headerAlign: 'center',
align: 'left',
// rules: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
},
{ {
label: '计划单号', label: '计划单号',
prop: 'ypCode', prop: 'ypCode',
span: 24, span: 24,
width: 150, // width: 150,
overflow: true, overflow: true,
search: true, search: true,
headerAlign: 'center', headerAlign: 'center',
@ -97,18 +133,18 @@ export default {
] ]
}, },
{ {
label: '生产单', label: '生产单',
prop: 'yoCode', prop: 'yoCode',
search: false, search: false,
sortable: true, sortable: true,
width: 150, // width: 150,
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
rules: [ rules: [
{ {
required: true, required: true,
message: '请输入生产单', message: '请输入生产单',
trigger: 'blur', trigger: 'blur',
}, },
], ],
@ -116,9 +152,9 @@ export default {
{ {
label: '零件号', label: '零件号',
prop: 'partCode', prop: 'partCode',
search: false, search: true,
sortable: true, sortable: true,
width: 150, // width: 150,
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -130,112 +166,112 @@ export default {
}, },
], ],
}, },
{ // {
label: '产品型号', // label: '',
prop: 'productType', // prop: 'productType',
search: false, // search: false,
sortable: true, // sortable: true,
disabled: true, // disabled: true,
width: 150, // width: 150,
span: 12, // span: 12,
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
rules: [ // rules: [
{ // {
required: false, // required: false,
message: '请输入产品型号', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ // {
label: '产品名称', // label: '',
prop: 'partName', // prop: 'partName',
search: false, // search: false,
sortable: true, // sortable: true,
disabled: true, // disabled: true,
span: 12, // span: 12,
width: 150, // width: 150,
headerAlign: 'center', // headerAlign: 'center',
align: 'left', // align: 'left',
rules: [ // rules: [
{ // {
required: false, // required: false,
message: '请输入产品名称', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ // {
label: '流程卡号', // label: '',
prop: 'cardNo', // prop: 'cardNo',
search: false, // search: false,
sortable: true, // sortable: true,
disabled: true, // disabled: true,
span: 12, // span: 12,
width: 150, // width: 150,
headerAlign: 'center', // headerAlign: 'center',
rules: [ // rules: [
{ // {
required: false, // required: false,
message: '请输入流程卡号', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ // {
label: '批次号', // label: '',
prop: 'batchNo', // prop: 'batchNo',
search: false, // search: false,
sortable: true, // sortable: true,
disabled: true, // disabled: true,
span: 12, // span: 12,
width: 150, // width: 150,
headerAlign: 'center', // headerAlign: 'center',
rules: [ // rules: [
{ // {
required: false, // required: false,
message: '请输入批次号', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ // {
label: '镀种', // label: '',
prop: 'plate', // prop: 'plate',
search: false, // search: false,
sortable: true, // sortable: true,
disabled: true, // disabled: true,
width: 150, // width: 150,
span: 12, // span: 12,
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
rules: [ // rules: [
{ // {
required: false, // required: false,
message: '请输入镀种', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ // {
label: '面积(d㎡)', // label: '(d)',
prop: 'ypArea', // prop: 'ypArea',
search: false, // search: false,
sortable: true, // sortable: true,
width: 120, // width: 120,
span: 12, // span: 12,
disabled: true, // disabled: true,
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
rules: [ // rules: [
{ // {
required: false, // required: false,
message: '请输入面积(d㎡)', // message: '(d)',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ {
label: '生产标识', label: '生产标识',
prop: 'productIdent', prop: 'productIdent',
@ -259,30 +295,30 @@ export default {
}, },
], ],
}, },
{ // {
label: '使用部门', // label: '使',
prop: 'useDept', // prop: 'useDept',
search: false, // search: false,
sortable: true, // sortable: true,
disabled: true, // disabled: true,
width: 120, // width: 120,
span: 12, // span: 12,
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
rules: [ // rules: [
{ // {
required: true, // required: true,
message: '请输入使用部门', // message: '使',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ {
label: '生产数量', label: '生产数量',
prop: 'ypQty', prop: 'ypQty',
search: false, search: false,
sortable: true, sortable: true,
width: 120, // width: 120,
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -294,49 +330,49 @@ export default {
}, },
], ],
}, },
{ // {
label: '需求交期', // label: '',
prop: 'demandDate', // prop: 'demandDate',
search: false, // search: false,
sortable: true, // sortable: true,
width: 180, // width: 180,
span: 12, // span: 12,
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
type: 'datetime', // datetime // type: 'datetime', // datetime
valueFormat: 'YYYY-MM-DD HH:mm:ss', // // valueFormat: 'YYYY-MM-DD HH:mm:ss', //
rules: [ // rules: [
{ // {
required: true, // required: true,
message: '请输入需求交期', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ // {
label: '计划员', // label: '',
prop: 'planUser', // prop: 'planUser',
search: false, // search: false,
sortable: true, // sortable: true,
width: 120, // width: 120,
span: 12, // span: 12,
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
rules: [ // rules: [
{ // {
required: true, // required: true,
message: '请输入计划员', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ {
label: '计划下达时间', label: '计划下达时间',
prop: 'releaseDate', prop: 'releaseDate',
search: false, search: false,
sortable: true, sortable: true,
searchLabelWidth: 100, searchLabelWidth: 100,
width: 180, // width: 180,
span: 12, span: 12,
type: 'datetime', // datetime type: 'datetime', // datetime
valueFormat: 'YYYY-MM-DD HH:mm:ss', // valueFormat: 'YYYY-MM-DD HH:mm:ss', //
@ -350,79 +386,76 @@ export default {
}, },
], ],
}, },
{ // {
label: '订单状态', // label: '',
prop: 'status', // prop: 'status',
search: false, // search: false,
sortable: true, // sortable: true,
span: 12, // span: 12,
display: false, // display: false,
type: 'select', // type: 'select',
width: '140', // width: '140',
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
dicData: [ // dicData: [
{ // {
value: 10000, // value: 10000,
label: '已同步', // label: '',
}, // },
{ // {
value: 10001, // value: 10001,
label: '订单异常', // label: '',
}, // },
{ // {
value: 10002, // value: 10002,
label: '未下达', // label: '',
}, // },
{ // {
value: 10003, // value: 10003,
label: '待排产', // label: '',
}, // },
{ // {
value: 10004, // value: 10004,
label: '待生产', // label: '',
}, // },
{ // {
value: 10005, // value: 10005,
label: '加工中', // label: '',
}, // },
{ // {
value: 10006, // value: 10006,
label: '排产异常', // label: '',
}, // },
{ // {
value: 10015, // value: 10015,
label: '已完工', // label: '',
}, // },
{ // {
value: 10021, // value: 10021,
label: '已关闭', // label: '',
}, // },
], // ],
}, // },
{
label: '备注',
prop: 'validationMomo',
search: false,
sortable: true,
span: 24,
type: 'textarea',
width: 150,
headerAlign: 'center',
align: 'left',
// rules: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
},
] ]
} }
} }
}, },
methods:{ methods:{
reCalc(){
if(this.selectionList.length == 0){
this.$message.error('请至少选择一条数据!')
return
}
reCalculate({
ids:this.selectionList.map(item => item.id).join(',')
}).then(res =>{
if(res.data.code == 200){
this.settleResult = res.data.data
this.isOpen = true
}
})
},
searchChange(params, done){ searchChange(params, done){
this.query = params; this.query = params;
this.page.currentPage = 1; this.page.currentPage = 1;

Loading…
Cancel
Save