外协模块接口联调

dev-scheduling
jinna 1 month ago
parent 3d5ce5ee0b
commit af0ea387c2
  1. 11
      src/api/outsourcingManagement/oemOrderSettlement.js
  2. 18
      src/api/outsourcingManagement/performanceCheck.js
  3. 9
      src/api/outsourcingManagement/performanceReview.js
  4. 47
      src/api/outsourcingManagement/settlementRules.js
  5. 294
      src/views/oem/oemOrderSettlement/components/unsettled.vue
  6. 3
      src/views/oem/performanceCalculate/components/millMeritsProduce.vue
  7. 262
      src/views/oem/performanceCheck/index.vue
  8. 73
      src/views/oem/performanceReview/index.vue
  9. 312
      src/views/oem/settlementRules/components/plate.vue
  10. 8
      src/views/oem/settlementRules/index.vue
  11. 44
      src/views/productionManagement/components/addDialog.vue
  12. 107
      src/views/productionManagement/components/coatingMater/addRequirements.vue

@ -0,0 +1,11 @@
// 外协订单结算
import request from '@/axios';
// 获取列表
export const getStatement = params =>{
return request({
url:"/api/blade-desk/mesOemStatement/page",
method:'get',
params
})
}

@ -8,4 +8,22 @@ export const getList = params => {
method: 'get',
params
});
};
// 重新计算
export const reCalculate = data => {
return request({
url: '/api/blade-desk/mesOemMerits/updateData',
method: 'post',
data
});
};
// 绩效保存
export const saveData = data => {
return request({
url: '/api/blade-desk/mesOemMerits/submitData',
method: 'post',
data
});
};

@ -8,4 +8,13 @@ export const getList = params => {
method: 'get',
params
});
};
// 审核通过
export const approvalData = data => {
return request({
url: '/api/blade-desk/mesOemMerits/processSubmit',
method: 'post',
data
});
};

@ -0,0 +1,47 @@
// 外协结算管理
import request from '@/axios';
// 获取镀种规则维护列表
export const getPlateList = params => {
return request({
url: '/api/blade-desk/mesPlatingTypeRules/page',
method: 'get',
params
});
};
// 镀种下拉
export const getPlateSelect = params => {
return request({
url: '/api/blade-desk/BA/Plating/listForSelect',
method: 'get',
params
});
};
// 新增镀种规则
export const addPlateData = data => {
return request({
url: '/api/blade-desk/mesPlatingTypeRules/save',
method: 'post',
data
});
};
// 修改镀种规则
export const updatePlateData = data => {
return request({
url: '/api/blade-desk/mesPlatingTypeRules/update',
method: 'post',
data
});
};
// 删除逻辑规则
export const deletePlateData = params => {
return request({
url: '/api/blade-desk/mesPlatingTypeRules/remove',
method: 'post',
params
});
};

@ -29,7 +29,7 @@
</template>
<script>
import settlementDailog from './SettlementDailog.vue'
import {getStatement} from "@/api/outsourcingManagement/oemOrderSettlement"
export default {
components: {
settlementDailog
@ -92,7 +92,7 @@ export default {
column: [
{
label: '外协单号',
prop: 'workCenterNames',
prop: 'oemCode',
sortable: true,
filter: true,
span: 24,
@ -103,7 +103,7 @@ export default {
},
{
label: '车间订单单号',
prop: 'workCenterNames',
prop: 'woCode',
sortable: true,
filter: true,
span: 24,
@ -114,7 +114,7 @@ export default {
},
{
label: '零件号',
prop: 'workCenterNames',
prop: 'partCode',
sortable: true,
filter: true,
span: 24,
@ -124,7 +124,7 @@ export default {
},
{
label: '零件名称',
prop: 'workCenterNames',
prop: 'partName',
sortable: true,
filter: true,
span: 24,
@ -133,7 +133,7 @@ export default {
},
{
label: '批次号',
prop: 'workCenterNames',
prop: 'batchNo',
sortable: true,
filter: true,
span: 24,
@ -143,7 +143,7 @@ export default {
},
{
label: '生产标识',
prop: 'workCenterNames',
prop: 'prodIdent',
sortable: true,
filter: true,
span: 24,
@ -151,42 +151,43 @@ export default {
width: 120,
type:'select',
searchOrder:16,
dicData:[
{
label:'JI',
value:1
},
{
label:'JII',
value:2
},
]
dicUrl:"/api/blade-scheduling/qualityGrade/getGrades",
props:{
label:'qualityGrade',
value:"id"
}
},
{
label: '工序',
prop: 'workCenterNames',
prop: 'psCode',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
type:'select',
dicData:[
{
label:'工序1',
value:1
},
{
label:'工序2',
value:2
},
]
dicUrl:"/api/blade-desk/bsProcessSet/getProcessSetList",
props:{
label: 'name',
value: 'code',
// res: 'data.records',
},
// dicData:[
// {
// label:'1',
// value:1
// },
// {
// label:'2',
// value:2
// },
// ]
},
{
label: '工艺能力',
prop: 'workCenterNames',
prop: 'caName',
sortable: true,
filter: true,
span: 24,
@ -196,7 +197,7 @@ export default {
},
{
label: '镀后入库时间',
prop: 'duhoutime',
prop: 'putStoreTime',
sortable: true,
filter: true,
span: 24,
@ -221,7 +222,7 @@ export default {
},
{
label: '生产数量',
prop: 'workCenterNames',
prop: 'makeQty',
sortable: true,
filter: true,
span: 24,
@ -231,7 +232,7 @@ export default {
},
{
label: '单位面积(d㎡)',
prop: 'workCenterNames',
prop: 'ypArea',
sortable: true,
filter: true,
span: 24,
@ -241,7 +242,7 @@ export default {
},
{
label: '总面积(d㎡)',
prop: 'workCenterNames',
prop: 'totalArea',
sortable: true,
filter: true,
span: 24,
@ -251,28 +252,33 @@ export default {
},
{
label: '外协厂商',
prop: 'workCenterNames',
prop: 'ocId',
sortable: true,
filter: true,
span: 24,
search: true,
width: 120,
type:'select',
dicData:[
{
label:'外协厂商1',
value:1
},
{
label:'外协厂商2',
value:2
},
]
dicUrl:"/api/blade-desk/BA/Oem/listForSelect",
props:{
label:'ocName',
value:"id"
}
// dicData:[
// {
// label:'1',
// value:1
// },
// {
// label:'2',
// value:2
// },
// ]
},
{
label: '镀种',
prop: 'workCenterNames',
prop: 'plate',
sortable: true,
filter: true,
span: 24,
@ -282,7 +288,7 @@ export default {
},
{
label: '镀层厚度',
prop: 'workCenterNames',
prop: 'plateThickness',
sortable: true,
filter: true,
span: 24,
@ -292,7 +298,7 @@ export default {
},
{
label: '涂色标个数',
prop: 'workCenterNames',
prop: 'tsbNum',
sortable: true,
filter: true,
span: 24,
@ -302,7 +308,7 @@ export default {
},
{
label: '涂色带个数',
prop: 'workCenterNames',
prop: 'tsdNum',
sortable: true,
filter: true,
span: 24,
@ -312,7 +318,7 @@ export default {
},
{
label: '涂箭头个数',
prop: 'workCenterNames',
prop: 'tjtNum',
sortable: true,
filter: true,
span: 24,
@ -359,96 +365,106 @@ export default {
},
onLoad() {
this.loading = true
this.data = [
{
"bsTeamSet": null,
"bsWorkCenter": {
"area": 13000.0,
"batchNo": null,
"bigBatch": false,
"bsJfCenter": {
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2024-12-09 00:00:00",
"deleted": false,
"jcCode": "RBZX",
"jcId": 1,
"jcName": "热表中心",
"keyValue": 1,
"updateTime": "2024-12-09 00:00:00"
},
"checkout": false,
"craftAbility": "化学镀镍",
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2023-02-06 12:31:36",
"deleted": false,
"describe": null,
"endPoint": null,
"keyValue": 81,
"leaderUser": {
"userId": 541,
"userName": "崔殿龙"
},
"limitType": 0,
"processes": "上挂、下挂、交检、化学镀镍、喷砂",
"quantity": null,
"roundCycle": null,
"saturation": 85.0,
"sign": "4",
"startPoint": null,
"team": "化学镀镍一班崔胜伟、化学镀镍一班郭家梁",
"updateTime": "2023-03-06 18:42:47",
"wcCode": "001",
"wcId": 81,
"wcName": "化学镀镍作业中心",
"whetherPlate": false
},
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2025-04-09 11:27:09",
"deEquipmentCard": {
"bindQty": 4,
"categorys": "产线设备",
"deviceCode": "9652247",
"deviceIp": "192.168.43.179",
"deviceName": "化学镀镍",
"docking": true,
"ecId": 1,
"keyValue": 1,
"macCode": "9652247",
"macSpec": null,
"memo": null,
"rfId": "SYM-HCP-L4",
"status": true,
"typeName": "9652247",
"updateTime": null,
"used": 1,
"usedText": "正常服役",
"virtualMac": false
},
"keyValue": 121,
"pureWater": 1.0,
"quotaArea": 0.0,
"tapWater": 1.0,
"updateTime": "2025-04-09 11:27:09",
"uqDate": "2025-04-09",
"uqId": 121,
"uqType": 0,
"useElectric": 0.0,
"workCenterId": "[81]",
"workCenterName": "[\"化学镀镍作业中心\"]",
"workCenterNames": "化学镀镍作业中心"
}
]
this.page.total = this.data.length
this.loading = false
getStatement({
current:this.page.currentPage,
size:this.page.pageSize,
rosStatusList:'1',
...this.query
}).then(res =>{
this.data = res.data.data.records
this.page.total = res.data.data.total
this.loading = false
})
// this.data = [
// {
// "bsTeamSet": null,
// "bsWorkCenter": {
// "area": 13000.0,
// "batchNo": null,
// "bigBatch": false,
// "bsJfCenter": {
// "createMan": {
// "userId": 1,
// "userName": "admin"
// },
// "createTime": "2024-12-09 00:00:00",
// "deleted": false,
// "jcCode": "RBZX",
// "jcId": 1,
// "jcName": "",
// "keyValue": 1,
// "updateTime": "2024-12-09 00:00:00"
// },
// "checkout": false,
// "craftAbility": "",
// "createMan": {
// "userId": 1,
// "userName": "admin"
// },
// "createTime": "2023-02-06 12:31:36",
// "deleted": false,
// "describe": null,
// "endPoint": null,
// "keyValue": 81,
// "leaderUser": {
// "userId": 541,
// "userName": "殿"
// },
// "limitType": 0,
// "processes": "",
// "quantity": null,
// "roundCycle": null,
// "saturation": 85.0,
// "sign": "4",
// "startPoint": null,
// "team": "",
// "updateTime": "2023-03-06 18:42:47",
// "wcCode": "001",
// "wcId": 81,
// "wcName": "",
// "whetherPlate": false
// },
// "createMan": {
// "userId": 1,
// "userName": "admin"
// },
// "createTime": "2025-04-09 11:27:09",
// "deEquipmentCard": {
// "bindQty": 4,
// "categorys": "线",
// "deviceCode": "9652247",
// "deviceIp": "192.168.43.179",
// "deviceName": "",
// "docking": true,
// "ecId": 1,
// "keyValue": 1,
// "macCode": "9652247",
// "macSpec": null,
// "memo": null,
// "rfId": "SYM-HCP-L4",
// "status": true,
// "typeName": "9652247",
// "updateTime": null,
// "used": 1,
// "usedText": "",
// "virtualMac": false
// },
// "keyValue": 121,
// "pureWater": 1.0,
// "quotaArea": 0.0,
// "tapWater": 1.0,
// "updateTime": "2025-04-09 11:27:09",
// "uqDate": "2025-04-09",
// "uqId": 121,
// "uqType": 0,
// "useElectric": 0.0,
// "workCenterId": "[81]",
// "workCenterName": "[\"\"]",
// "workCenterNames": ""
// }
// ]
// this.page.total = this.data.length
// this.loading = false
// setTimeout(() => {
// this.selectionClear()
// }, 500)

@ -302,9 +302,6 @@ export default {
return c
},
maintenanceClick() {
console.log('this.otherData-------------',this.otherData)
console.log('this.data-------------',this.data)
console.log('c-------------',this.calcData(this.otherData,this.data))
this.maintenanceArr = this.calcData(this.otherData,this.data)
let jhzhError = this.maintenanceArr.find(item => item.jhzsReality === null)

@ -15,11 +15,191 @@
</template>
<template #jhzsReality-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #jhzsReality="{row}">
<el-input v-model="row.jhzsReality"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).jhzsReality === null || maintenanceArr.find(item => item.id == row.id).jhzsReality === '')
&& 'error'"
></el-input>
</template>
<template #zdljReality-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #zdljReality="{row}">
<el-input v-model="row.zdljReality"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).zdljReality === null || maintenanceArr.find(item => item.id == row.id).zdljReality === '')
&& 'error'"
></el-input>
</template>
<template #qqxReality-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #qqxReality="{row}">
<el-input-number controls-position="right" style="width:90%;" v-model="row.qqxReality"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).qqxReality === null || maintenanceArr.find(item => item.id == row.id).qqxReality === '')
&& 'error'"
></el-input-number>
</template>
<template #produceTsReality-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #produceTsReality="{row}">
<el-input-number controls-position="right" style="width:90%;" v-model="row.produceTsReality"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).produceTsReality === null || maintenanceArr.find(item => item.id == row.id).produceTsReality === '')
&& 'error'"
></el-input-number>
</template>
<template #hgxTarget-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #hgxTarget="{row}">
<el-input v-model="row.hgxTarget"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).hgxTarget === null || maintenanceArr.find(item => item.id == row.id).hgxTarget === '')
&& 'error'"
></el-input>
</template>
<template #hgxReality-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #hgxReality="{row}">
<el-input v-model="row.hgxReality"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).hgxReality === null || maintenanceArr.find(item => item.id == row.id).hgxReality === '')
&& 'error'"
></el-input>
</template>
<template #dppmTarget-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #dppmTarget="{row}">
<el-input v-model="row.dppmTarget"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).dppmTarget === null || maintenanceArr.find(item => item.id == row.id).dppmTarget === '')
&& 'error'"
></el-input>
</template>
<template #dppmReality-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #dppmReality="{row}">
<el-input v-model="row.dppmReality"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).dppmReality === null || maintenanceArr.find(item => item.id == row.id).dppmReality === '')
&& 'error'"
></el-input>
</template>
<template #djcwReality-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #djcwReality="{row}">
<el-input v-model="row.djcwReality"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).djcwReality === null || maintenanceArr.find(item => item.id == row.id).djcwReality === '')
&& 'error'"
></el-input>
</template>
<template #qualityTsReality-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #qualityTsReality="{row}">
<el-input-number controls-position="right" style="width:90%;" v-model="row.qualityTsReality"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).qualityTsReality === null || maintenanceArr.find(item => item.id == row.id).qualityTsReality === '')
&& 'error'"
></el-input-number>
</template>
<template #pcxReality-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #pcxReality="{row}">
<el-input-number controls-position="right" style="width:90%;" v-model="row.pcxReality"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).pcxReality === null || maintenanceArr.find(item => item.id == row.id).pcxReality === '')
&& 'error'"
></el-input-number>
</template>
<template #dywReality-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #dywReality="{row}">
<el-input-number controls-position="right" style="width:90%;" v-model="row.dywReality"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).dywReality === null || maintenanceArr.find(item => item.id == row.id).dywReality === '')
&& 'error'"
></el-input-number>
</template>
<template #qlwtReality-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #qlwtReality="{row}">
<el-input-number controls-position="right" style="width:90%;" v-model="row.qlwtReality"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).qlwtReality === null || maintenanceArr.find(item => item.id == row.id).qlwtReality === '')
&& 'error'"
></el-input-number>
</template>
<template #growAbility-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #growAbility="{row}">
<el-input v-model="row.growAbility"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).growAbility === null || maintenanceArr.find(item => item.id == row.id).growAbility === '')
&& 'error'"
></el-input>
</template>
<template #ajorIssues-header="{ column }">
<span style="color: red;margin-right:5px;">*</span>{{column.label}}
</template>
<template #ajorIssues="{row}">
<el-input v-model="row.ajorIssues"
:class="maintenanceArr.length > 0
&& maintenanceArr.find(item => item.id == row.id)
&& (maintenanceArr.find(item => item.id == row.id).ajorIssues === null || maintenanceArr.find(item => item.id == row.id).ajorIssues === '')
&& 'error'"
></el-input>
</template>
</avue-crud>
</basic-container>
</template>
<script>
import {getList} from "@/api/outsourcingManagement/performanceCheck"
import {getList,reCalculate,saveData} from "@/api/outsourcingManagement/performanceCheck"
export default {
components: {
@ -29,6 +209,9 @@ export default {
selectionList: [],
loading:false,
query:{},
maintenanceArr:[],
otherData:[],
data:[],
option: {
height: 'auto',
calcHeight: 32,
@ -605,25 +788,69 @@ export default {
}
},
methods: {
calcData(a,b){
//
const fieldsToCheck = [
'jhzsReality','zdljReality','qqxReality', 'produceTsReality', 'growAbility',
'djcwReality','qualityTsReality','pcxReality', 'dywReality', 'qlwtReality','dppmTarget',
'dppmReality','hgxTarget','hgxReality',"ajorIssues"
];
const c = b.filter((itemB, index) => {
// A: 使 ()
const itemA = a[index];
// B: id ( ID )
// const itemA = a.find(item => item.id === itemB.id);
if (!itemA) return false; // a
//
const isDifferent = fieldsToCheck.some(key => {
return itemA[key] !== itemB[key];
});
return isDifferent;
});
return c
},
updateData() {
// this.$refs.myTable.fullValidate((errMap) => {
// if (errMap) {
// return;
// }
// const dataList = this.$refs.myTable.getRecordset().updateRecords;
// this.$ajax
// .post('oemMerits/updateData', {
// dataList
// })
// .then((res) => {
// if (res.code === 0) {
// this.$message.success('');
// this.queryTable();
// }
// });
// });
this.maintenanceArr = this.calcData(this.otherData,this.data)
let jhzhError = this.maintenanceArr.find(item => item.jhzsReality === null)
let zdljError = this.maintenanceArr.find(item => item.zdljReality === null)
let qqxError = this.maintenanceArr.find(item => item.qqxReality === null)
let produceError = this.maintenanceArr.find(item => item.produceTsReality === null)
let growError = this.maintenanceArr.find(item => item.growAbility === null)
let djcwError = this.maintenanceArr.find(item => item.djcwReality === null)
let qualityError = this.maintenanceArr.find(item => item.qualityTsReality === null)
let pcxError = this.maintenanceArr.find(item => item.pcxReality === null)
let dywError = this.maintenanceArr.find(item => item.dywReality === null)
let qlwtError = this.maintenanceArr.find(item => item.qlwtReality === null)
let dppmTargetError = this.maintenanceArr.find(item => item.dppmTarget === null)
let dppmRealityError = this.maintenanceArr.find(item => item.dppmReality === null)
let hgxTargetError = this.maintenanceArr.find(item => item.hgxTarget === null)
let hgxRealityError = this.maintenanceArr.find(item => item.hgxReality === null)
let ajorError = this.maintenanceArr.find(item => item.ajorIssues === null)
if(jhzhError || ajorError || zdljError || qqxError || produceError || growError || djcwError || qualityError || pcxError || dywError || qlwtError || dppmTargetError || dppmRealityError || hgxTargetError || hgxRealityError){
this.$message.error('请填写表格中红框数据')
return
}
reCalculate(this.maintenanceArr).then(res =>{
if(res.data.code === 200){
this.$message.success('重新计算成功')
this.onLoad()
}
})
},
submitData() {
saveData(this.data).then(res =>{
if(res.data.code === 200){
this.$message.success('保存成功')
this.onLoad()
}
})
// this.$refs.myTable.fullValidate((errMap) => {
// if (errMap) {
// return;
@ -702,6 +929,7 @@ export default {
...this.query,
}).then((res) => {
this.data = res.data.data.records;
this.otherData = JSON.parse(JSON.stringify(res.data.data.records));
this.page.total = res.data.data.total;
this.loading = false;
})

@ -5,7 +5,7 @@
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left>
<el-button type="primary" @click="processSubmitData()">审核通过</el-button>
<el-button type="primary" v-if="isOk" @click="processSubmitData()">审核通过</el-button>
</template>
<template #menu-right>
@ -20,7 +20,7 @@
</basic-container>
</template>
<script>
import {getList} from "@/api/outsourcingManagement/performanceReview"
import {getList,approvalData} from "@/api/outsourcingManagement/performanceReview"
export default {
components: {
@ -81,26 +81,16 @@ export default {
column: [
{
label: '工艺能力',
prop: 'plate',
prop: 'caName',
sortable: true,
filter: true,
span: 24,
search: false,
width: 130,
type:'select',
dicData:[
{
label:'镀金'
},
{
label:'镀银'
}
]
width: 130,
},
{
label: '厂家代码',
prop: 'bsOemCustomer.ocCode',
bind: 'bsOemCustomer.ocCode',
prop: 'oemCode',
search: false,
sortable: true,
filter: true,
@ -109,8 +99,7 @@ export default {
},
{
label: '厂家名称',
prop: 'bsOemCustomer.ocName',
bind: 'bsOemCustomer.ocName',
prop: 'oemName',
search: false,
sortable: true,
filter: true,
@ -631,28 +620,45 @@ export default {
},
]
},
form: {
},
form: {},
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
omId: null,
isOpen: false
isOpen: false,
isOk:true,
}
},
created(){
this.query = {
statusList:"3,4",
}
},
methods: {
refreshChange(){
this.query = {
statusList:"3,4",
}
this.onLoad()
},
processSubmitData() {
this.$confirm('选中数据是否审核通过?', '提示', {
this.$confirm('确定审核通过数据?', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
}).then(() => {
approvalData(this.data).then(res =>{
if(res.data.code == 200){
this.$message.success('审核成功')
this.query = {
statusList:"3,4",
}
this.onLoad()
}
})
})
// const dataList = this.$refs.myTable.getTableData().tableData;
// if (dataList.length === 0) {
// this.$message.warning('');
@ -671,7 +677,20 @@ export default {
},
switchClick(flag) {
this.isOk = flag;
// this.queryTable();
if(flag){
this.query = {
statusList:"3",
}
this.onLoad()
}else{
// statusList2produceStatusList3qualityStatusList3
this.query = {
statusList:"2",
produceStatusList:"3",
qualityStatusList:"3"
}
this.onLoad()
}
},
updateData() {
// this.$refs.myTable.fullValidate((errMap) => {
@ -761,10 +780,10 @@ export default {
},
onLoad() {
this.loading = true
console.log('query----------',this.query)
getList({
current:this.page.currentPage,
size:this.page.pageSize,
statusList:"3,4",
...this.query,
}).then((res) => {
this.data = res.data.data.records

@ -1,12 +1,13 @@
<template>
<div>
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud"
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset"
@row-del="rowDel" @row-save="rowSave" @row-update="rowUpdate" @search-change="searchChange" @search-reset="searchReset"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left>
<!-- <el-button type="primary" @click="batchMaintain()">批量维护
</el-button> -->
<el-button type="danger" @click="handleDelete">删除</el-button>
</template>
<template #menu-right>
<el-button type="primary" @click="handleImport">导入
@ -22,15 +23,16 @@
<!-- 导入 -->
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport"
templateUrl="/blade-desk/QA/CycleTestItem/download-excel-template"
templateName="试验项目模板.xlsx"
importUrl="/blade-desk/QA/CycleTestItem/import-excel"
templateUrl="/blade-desk/mesPlatingTypeRules/downloadExcelTemplate"
templateName="结算规则模板.xlsx"
importUrl="/blade-desk/mesPlatingTypeRules/importExcel"
@closeDialog="closeDialog"></basic-import>
</div>
</template>
<script>
import processDialog from './processDialog.vue'
import basicImport from '@/components/basic-import/main.vue'
import {getPlateList,addPlateData,updatePlateData,deletePlateData} from "@/api/outsourcingManagement/settlementRules"
export default {
components: {
processDialog,
@ -41,6 +43,7 @@ export default {
isShowImport: false,
loading: false,
selectionList: [],
query:{},
option: {
height: 'auto',
calcHeight: 32,
@ -55,7 +58,7 @@ export default {
border: true,
index: true,
selection: true,
editBtn: false,
editBtn: true,
viewBtn: false,
delBtn: true,
addBtn: true,
@ -65,7 +68,7 @@ export default {
editBtnIcon: ' ',
viewBtnText: '详情',
labelWidth: 120,
menuWidth: 180,
menuWidth: 100,
dialogWidth: 640,
dialogClickModal: false,
searchEnter: true,
@ -78,7 +81,7 @@ export default {
index: false,
showOverflowTooltip: true,
searchLabelPosition: 'left',
searchLabelPosition: 'left',
labelWidth: 120,
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
@ -89,6 +92,7 @@ export default {
delBtnIcon: ' ',
editBtnIcon: ' ',
align: 'center',
menuAlign:"center",
column: [
// {
// label: '-',
@ -108,12 +112,12 @@ export default {
// },
{
label: '镀种-描述规则',
prop: 'workCenterNames',
prop: 'quotationPlat',
sortable: true,
filter: true,
span: 24,
search: false,
labelWidth:130,
labelWidth:120,
rules: [
{
required: true,
@ -134,7 +138,7 @@ export default {
// },
{
label: '镀种-订单',
prop: 'workCenterNames1',
prop: 'orderPlat',
sortable: true,
filter: true,
span: 24,
@ -142,17 +146,11 @@ export default {
type:'select',
clearable:true,
filterable: true,
dicData:[
{
label:'Ep.Cu8.Ap.Ni8',
value:1
},
{
label:'Ep.Cu1.Ap.Ni3',
value:2
},
],
dicUrl:"/api/blade-desk/BA/Plating/listForSelect",
props:{
label:"plating",
value:'plating'
},
rules: [
{
required: true,
@ -165,7 +163,7 @@ export default {
{
label: '维护人',
prop: 'workCenterNames2',
prop: 'createTime',
sortable: true,
filter: true,
span: 24,
@ -175,7 +173,7 @@ export default {
},
{
label: '维护时间',
prop: 'workCenterNames3',
prop: 'createUser',
sortable: true,
filter: true,
span: 24,
@ -199,18 +197,31 @@ export default {
},
methods: {
//
handleImport() {
this.isShowImport = true
},
handleImport() {
this.isShowImport = true
},
batchMaintain() {
this.isOpen = true
},
closeDialog() {
closeDialog(val) {
this.isOpen = false
this.isShowImport = false
if(val){
this.onLoad()
}
},
currentChange(currentPage){
this.page.currentPage = currentPage
},
sizeChange(pageSize){
this.page.pageSize = pageSize
},
refreshChange(){
this.onLoad()
},
handleDelete() {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
this.$message.error('请选择至少一条数据');
return;
}
this.$confirm('确定将选择数据删除?', {
@ -218,111 +229,164 @@ export default {
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
deletePlateData({
ids:this.selectionList.map(item => item.id).join(',')
}).then(res =>{
if(res.data.code == 200){
this.$message.success('删除成功')
this.onLoad()
}
})
})
},
//
selectionChange(list) {
this.selectionList = list;
},
rowSave(row, done, loading){
addPlateData(row).then(res =>{
if(res.data.code == 200){
this.$message.success('新增成功')
done()
this.onLoad()
}
})
},
rowUpdate(row, index, done, loading){
updatePlateData(row).then(res =>{
if(res.data.code == 200){
this.$message.success('修改成功')
done()
this.onLoad()
}
})
},
rowDel(row){
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
deletePlateData({ids:row.id}).then(res =>{
if(res.data.code == 200){
this.$message.success('删除成功')
this.onLoad()
}
})
})
},
onLoad() {
this.loading = true
this.data = [
{
"bsTeamSet": null,
"bsWorkCenter": {
"area": 13000.0,
"batchNo": null,
"bigBatch": false,
"bsJfCenter": {
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2024-12-09 00:00:00",
"deleted": false,
"jcCode": "RBZX",
"jcId": 1,
"jcName": "热表中心",
"keyValue": 1,
"updateTime": "2024-12-09 00:00:00"
},
"checkout": false,
"craftAbility": "化学镀镍",
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2023-02-06 12:31:36",
"deleted": false,
"describe": null,
"endPoint": null,
"keyValue": 81,
"leaderUser": {
"userId": 541,
"userName": "崔殿龙"
},
"limitType": 0,
"processes": "上挂、下挂、交检、化学镀镍、喷砂",
"quantity": null,
"roundCycle": null,
"saturation": 85.0,
"sign": "4",
"startPoint": null,
"team": "化学镀镍一班崔胜伟、化学镀镍一班郭家梁",
"updateTime": "2023-03-06 18:42:47",
"wcCode": "001",
"wcId": 81,
"wcName": "化学镀镍作业中心",
"whetherPlate": false
},
"createMan": {
"userId": 1,
"userName": "admin"
},
"createTime": "2025-04-09 11:27:09",
"deEquipmentCard": {
"bindQty": 4,
"categorys": "产线设备",
"deviceCode": "9652247",
"deviceIp": "192.168.43.179",
"deviceName": "化学镀镍",
"docking": true,
"ecId": 1,
"keyValue": 1,
"macCode": "9652247",
"macSpec": null,
"memo": null,
"rfId": "SYM-HCP-L4",
"status": true,
"typeName": "9652247",
"updateTime": null,
"used": 1,
"usedText": "正常服役",
"virtualMac": false
},
"keyValue": 121,
"pureWater": 1.0,
"quotaArea": 0.0,
"tapWater": 1.0,
"updateTime": "2025-04-09 11:27:09",
"uqDate": "2025-04-09",
"uqId": 121,
"uqType": 0,
"useElectric": 0.0,
"workCenterId": "[81]",
"workCenterName": "[\"化学镀镍作业中心\"]",
"workCenterNames": "镀金",
"workCenterNames1": "Cu%Ni%",
"workCenterNames2": "张三",
"workCenterNames3": "2025-10-09 12:09:08",
}
]
this.page.total = this.data.length
this.loading = false
setTimeout(() => {
this.selectionClear()
}, 500)
getPlateList({
current:this.page.currentPage,
size:this.page.pageSize,
...this.query
}).then(res =>{
this.data = res.data.data.records
this.page.total = res.data.data.total
this.loading = false
})
// this.data = [
// {
// "bsTeamSet": null,
// "bsWorkCenter": {
// "area": 13000.0,
// "batchNo": null,
// "bigBatch": false,
// "bsJfCenter": {
// "createMan": {
// "userId": 1,
// "userName": "admin"
// },
// "createTime": "2024-12-09 00:00:00",
// "deleted": false,
// "jcCode": "RBZX",
// "jcId": 1,
// "jcName": "",
// "keyValue": 1,
// "updateTime": "2024-12-09 00:00:00"
// },
// "checkout": false,
// "craftAbility": "",
// "createMan": {
// "userId": 1,
// "userName": "admin"
// },
// "createTime": "2023-02-06 12:31:36",
// "deleted": false,
// "describe": null,
// "endPoint": null,
// "keyValue": 81,
// "leaderUser": {
// "userId": 541,
// "userName": "殿"
// },
// "limitType": 0,
// "processes": "",
// "quantity": null,
// "roundCycle": null,
// "saturation": 85.0,
// "sign": "4",
// "startPoint": null,
// "team": "",
// "updateTime": "2023-03-06 18:42:47",
// "wcCode": "001",
// "wcId": 81,
// "wcName": "",
// "whetherPlate": false
// },
// "createMan": {
// "userId": 1,
// "userName": "admin"
// },
// "createTime": "2025-04-09 11:27:09",
// "deEquipmentCard": {
// "bindQty": 4,
// "categorys": "线",
// "deviceCode": "9652247",
// "deviceIp": "192.168.43.179",
// "deviceName": "",
// "docking": true,
// "ecId": 1,
// "keyValue": 1,
// "macCode": "9652247",
// "macSpec": null,
// "memo": null,
// "rfId": "SYM-HCP-L4",
// "status": true,
// "typeName": "9652247",
// "updateTime": null,
// "used": 1,
// "usedText": "",
// "virtualMac": false
// },
// "keyValue": 121,
// "pureWater": 1.0,
// "quotaArea": 0.0,
// "tapWater": 1.0,
// "updateTime": "2025-04-09 11:27:09",
// "uqDate": "2025-04-09",
// "uqId": 121,
// "uqType": 0,
// "useElectric": 0.0,
// "workCenterId": "[81]",
// "workCenterName": "[\"\"]",
// "workCenterNames": "",
// "workCenterNames1": "Cu%Ni%",
// "workCenterNames2": "",
// "workCenterNames3": "2025-10-09 12:09:08",
// }
// ]
// this.page.total = this.data.length
// this.loading = false
// setTimeout(() => {
// this.selectionClear()
// }, 500)
}
}
}

@ -1,9 +1,9 @@
<template>
<basic-container>
<el-tabs v-model="activeName" class="demo-tabs" @tab-change="tabPositionChange">
<el-tab-pane label="结算规则维护" name="1"></el-tab-pane>
<el-tab-pane label="镀种规则维护" name="3"></el-tab-pane>
<el-tab-pane label="工序规则维护" name="2"></el-tab-pane>
<!-- <el-tab-pane label="结算规则维护" name="1"></el-tab-pane> -->
<!-- <el-tab-pane label="镀种规则维护" name="3"></el-tab-pane> -->
<!-- <el-tab-pane label="工序规则维护" name="2"></el-tab-pane> -->
</el-tabs>
<settlement v-if="activeName == '1'"></settlement>
@ -26,7 +26,7 @@ export default {
},
data() {
return {
activeName: '1',
activeName: '3',
isOpen: false,
}
},

@ -7,35 +7,46 @@
@close="closeDialog"
@open="open"
>
<el-descriptions :column="4" border title="物料需求信息" :label-width="150">
<el-descriptions :column="3" border title="" :label-width="150">
<el-descriptions-item label="作业中心">{{
addForm.wcName
}}</el-descriptions-item>
<el-descriptions-item label="建立人员">{{ addForm.createUserName }}</el-descriptions-item>
<el-descriptions-item label="建立时间">{{ addForm.createTime }}</el-descriptions-item>
<el-descriptions-item label="申请人">{{ addForm.createUserName }}</el-descriptions-item>
<el-descriptions-item label="申请时间">{{ addForm.createTime }}</el-descriptions-item>
<el-descriptions-item label="物料编码">{{ addForm.goodsCode }}</el-descriptions-item>
<el-descriptions-item label="班组实际消耗(克)">{{
<!-- <el-descriptions-item label="班组实际消耗(克)">{{
addForm.teamActualConsumption
}}</el-descriptions-item>
-->
<el-descriptions-item label="物料名称">{{ addForm.goodsName }}</el-descriptions-item>
<el-descriptions-item label="班组预添加(克)">{{
addForm.teamPreAddGram
addForm.goodsAddTotal
}}</el-descriptions-item>
<el-descriptions-item label="物料名称">{{ addForm.goodsName }}</el-descriptions-item>
<el-descriptions-item label="可使用定额(克)">{{
addForm.usableQuotaGram
addForm.goodsDemandTotal
}}</el-descriptions-item>
<el-descriptions-item label="累计结余(克)">{{
addForm.accumulatedBalanceGram
addForm.declaredQuotaTotal
}}</el-descriptions-item>
<el-descriptions-item label="本次添加涉及单号">{{
<!-- <el-descriptions-item label="本次添加涉及单号">{{
addForm.involvingRecordCode
}}</el-descriptions-item>
<el-descriptions-item label="本次剩余单号余量">{{
addForm.involvingSurplus
}}</el-descriptions-item>
}}</el-descriptions-item> -->
</el-descriptions>
<el-descriptions
<el-descriptions class="margin-top" :column="4" border title="物料需求明细"> </el-descriptions>
<el-table :data="data">
<el-table-column label="需求单号" prop="demandCode"></el-table-column>
<el-table-column label="作业中心" prop="wcName"></el-table-column>
<el-table-column label="物料编码" prop="goodsCode"></el-table-column>
<el-table-column label="物料名称" prop="goodsName"></el-table-column>
<el-table-column label="本次使用(克)" prop="code"></el-table-column>
<el-table-column label="剩余量(克)" prop="surplus"></el-table-column>
</el-table>
<!-- <el-descriptions
class="margin-top"
:column="4"
border
@ -56,8 +67,8 @@
addForm.approvalMemo
}}</el-descriptions-item>
</template>
</el-descriptions>
<el-descriptions class="margin-top" :column="4" border title="订单信息"> </el-descriptions>
</el-descriptions> -->
<!-- <el-descriptions class="margin-top" :column="4" border title="订单信息"> </el-descriptions>
<el-table :data="tableData">
<el-table-column label="槽号" prop="slotName" align="center"></el-table-column>
<el-table-column label="化验值" prop="testVal" align="center"></el-table-column>
@ -68,7 +79,9 @@
align="center"
></el-table-column>
<el-table-column label="理论值" prop="saveBoardVal" align="center"></el-table-column>
</el-table>
</el-table> -->
</el-dialog>
</template>
@ -97,9 +110,10 @@ export default {
//
try {
const ref = await getOrderMoldPlanCaDeatils({ id: this.id });
console.log('res------------',ref)
if (ref.data.code == 200) {
this.addForm = ref.data.data;
this.tableData = ref.data.data.yieldOrderList;
this.tableData = ref.data.data.recordVos;
}
} catch (err) {
console.log(err);

@ -119,8 +119,8 @@ export default {
align: 'center',
column: [
{
label: '需求单号',
prop: 'demandCode',
label: '申报单号',
prop: 'applyCode',
span: 24,
overflow: true,
search: true,
@ -130,7 +130,7 @@ export default {
rules: [
{
required: true,
message: '请输入需求单号',
message: '请输入申报单号',
trigger: 'blur',
},
],
@ -194,8 +194,8 @@ export default {
],
},
{
label: '镀层物料需求(克)',
prop: 'goodsDemand',
label: '班组预添加量(克)',
prop: 'goodsAddTotal',
span: 24,
overflow: true,
search: false,
@ -205,59 +205,110 @@ export default {
rules: [
{
required: true,
message: '请输入金钾申报量(克)',
message: '请输入班组预添加量(克)',
trigger: 'blur',
},
],
},
{
label: '已使用(克)',
prop: 'usedGoldVal',
span: 24,
overflow: true,
search: false,
headerAlign: 'center',
align: 'center',
rules: [
{
required: true,
message: '请输入金钾申报量(克)',
trigger: 'blur',
},
],
},
{
label: '申报量(克)',
prop: 'declaredQuota',
label: '可使用定额(克)',
prop: 'goodsDemandTotal',
span: 24,
overflow: true,
search: false,
headerAlign: 'center',
align: 'center',
width: 160,
rules: [
{
required: true,
message: '请输入银钾申报量(克)',
message: '请输入可使用定额(克)',
trigger: 'blur',
},
],
},
{
label: '剩余量(克)',
prop: 'surplus',
label: '累计结余(克)',
prop: 'declaredQuotaTotal',
span: 24,
overflow: true,
search: false,
headerAlign: 'center',
align: 'center',
width: 160,
rules: [
{
required: true,
message: '请输入银板申报量(克)',
message: '请输入累计结余(克)',
trigger: 'blur',
},
],
},
// {
// label: '()',
// prop: 'goodsDemand',
// span: 24,
// overflow: true,
// search: false,
// headerAlign: 'center',
// align: 'center',
// width: 160,
// rules: [
// {
// required: true,
// message: '()',
// trigger: 'blur',
// },
// ],
// },
// {
// label: '使()',
// prop: 'usedGoldVal',
// span: 24,
// overflow: true,
// search: false,
// headerAlign: 'center',
// align: 'center',
// rules: [
// {
// required: true,
// message: '()',
// trigger: 'blur',
// },
// ],
// },
// {
// label: '()',
// prop: 'declaredQuota',
// span: 24,
// overflow: true,
// search: false,
// headerAlign: 'center',
// align: 'center',
// rules: [
// {
// required: true,
// message: '()',
// trigger: 'blur',
// },
// ],
// },
// {
// label: '()',
// prop: 'surplus',
// span: 24,
// overflow: true,
// search: false,
// headerAlign: 'center',
// align: 'center',
// rules: [
// {
// required: true,
// message: '()',
// trigger: 'blur',
// },
// ],
// },
{
label: '状态',
prop: 'status',

Loading…
Cancel
Save