外协结算修改

dev-scheduling
jinna 2 weeks ago
parent bd21d71434
commit 1b71bdbe56
  1. 18
      src/api/outsourcingManagement/oemOrderSettlement.js
  2. 97
      src/views/oem/oemOrderSettlement/components/settlementAnomaly.vue
  3. 29
      src/views/oem/oemOrderSettlement/components/underReview.vue
  4. 17
      src/views/oem/oemOrderSettlement/components/unsettled.vue
  5. 1
      src/views/oem/oemOrderSettlement/index.vue
  6. 479
      src/views/oem/performanceApplication/index.vue
  7. 56
      src/views/oem/performanceCalculate/components/millMeritsProduce.vue
  8. 58
      src/views/oem/performanceCalculate/components/millMeritsQuality.vue
  9. 100
      src/views/oem/performanceCheck/index.vue

@ -68,4 +68,22 @@ export const supplement = params => {
method: 'post',
data: params,
});
};
// 匹配标准工序代码
export const matchStandard = params => {
return request({
url: '/api/mesOemStatement/matchStandardProcessCode',
method: 'post',
data: params,
});
};
// 更新数据
export const updateData = params => {
return request({
url: '/api/blade-desk/mesOemStatement/updateOrderDataError',
method: 'post',
data: params,
});
};

@ -1,6 +1,7 @@
<template>
<div>
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud"
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page"
v-model:search="searchParams" ref="crud"
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange">
@ -15,8 +16,8 @@
</el-form>
</template>
<template #menu-right>
<el-button type="primary">匹配标准工序代码</el-button>
<el-button type="primary">更新数据</el-button>
<el-button type="primary" @click="handleMatch">匹配标准工序代码</el-button>
<el-button type="primary" @click="handleUpdate">更新数据</el-button>
</template>
<template #menu>
@ -28,7 +29,7 @@
</template>
<script>
import settlementDailog from './SettlementDailog.vue'
import {getStatement,oemSettleAccountsItem} from "@/api/outsourcingManagement/oemOrderSettlement"
import {getStatement,oemSettleAccountsItem,matchStandard,updateData} from "@/api/outsourcingManagement/oemOrderSettlement"
export default {
components: {
@ -328,7 +329,7 @@ export default {
valueFormat: 'YYYY-MM-DD',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
searchOrder:12,
searchOrder:16,
},
{
label: '异常原因',
@ -339,6 +340,35 @@ export default {
search: true,
width: 120,
searchOrder:2,
type:"select",
multiple:true,
dicData:[
// MESERP
{
label:"未找到报价单",
value:"未找到报价单"
},
{
label:"订单数据错误",
value:"订单数据错误"
},
{
label:"MES结算审核不通过",
value:"MES结算审核不通过"
},
{
label:"ERP结算审核不通过",
value:"ERP结算审核不通过"
},
{
label:"无需结算",
value:"无需结算"
},
{
label:"重复镀后入库",
value:"重复镀后入库"
}
]
},
{
label: '结算时间',
@ -368,7 +398,26 @@ export default {
// search: false,
// width: 120,
// },
{
label: '结算状态',
prop: 'rosStatusList',
sortable: true,
filter: true,
span: 24,
hide: true,
search: true,
width: 120,
type:'select',
searchOrder:15,
clearable:false,
dicData:[
// 1234567
{
label:'结算异常',
value:3
}
]
},
{
label: '外协厂商',
prop: 'ocId',
@ -379,7 +428,6 @@ export default {
hide: true,
width: 120,
type:'select',
searchOrder:18,
dicUrl:"/api/blade-desk/BA/Oem/listForSelect",
props:{
label:'ocName',
@ -429,6 +477,10 @@ export default {
]
},
form: {},
searchParams:{
rosStatusList:3,
memo:['未找到报价单','订单数据错误']
},
page: {
pageSize: 10,
currentPage: 1,
@ -484,6 +536,24 @@ export default {
//
});
},
//
handleMatch(){
matchStandard().then(res =>{
if(res.data.code == 200){
this.$message.success('匹配成功');
this.onLoad();
}
})
},
//
handleUpdate(){
updateData().then(res =>{
if(res.data.code == 200){
this.$message.success('更新成功');
this.onLoad()
}
})
},
handleDelete() {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
@ -524,12 +594,17 @@ export default {
},
onLoad() {
this.loading = true
getStatement({
console.log('this.query',this.query)
let params = {
current:this.page.currentPage,
size:this.page.pageSize,
rosStatusList:'3',
...this.query
}).then(res =>{
...this.query,
postPlatingStorageTimeStart:this.query && this.query.putStoreTime && this.query.putStoreTime.length != 0 && this.query.putStoreTime[0],
postPlatingStorageTimeEnd:this.query && this.query.putStoreTime && this.query.putStoreTime.length != 0 && this.query.putStoreTime[1],
memo:this.query && this.query.memo && this.query.memo.length != 0 && this.query.memo.join(';'),
}
if(params.putStoreTime) delete params.putStoreTime;
getStatement(params).then(res =>{
this.data = res.data.data.records
this.page.total = res.data.data.total
this.loading = false

@ -8,8 +8,10 @@
@refresh-change="refreshChange">
<template #menu-left>
<el-button type="primary" @click="settleConfirm">结算确认</el-button>
<el-button type="primary" @click="initiateReview">发起审核</el-button>
</template>
</avue-crud>
<!-- 结算确认 -->
<el-dialog title="结算确认" :modelValue="isConfirm" append-to-body width="30%">
<el-form :model="settleForm" :rules="settleRules" ref="settleForm">
<el-form-item label="确认结果" prop="confirmResult">
@ -32,6 +34,20 @@
</span>
</template>
</el-dialog>
<!-- 发起审核 -->
<el-dialog title="发起审核" :modelValue="isReview" append-to-body width="30%">
<el-form :model="reviewForm" :rules="reviewRules" ref="reviewForm">
<el-form-item label="结算说明" prop="reason">
<el-input v-model="reviewForm.reason" type="textarea" placeholder="请输入结算说明"></el-input>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="isReview = false">取消</el-button>
<el-button type="primary" @click="summitReview">确定</el-button>
</span>
</template>
</el-dialog>
</div>
</template>
@ -59,6 +75,11 @@ export default {
confirmResult:[{required: true, message: '请选择结算结果',trigger:'blur'}],
confirmReason:[{required: false, message: '请填写异常原因',trigger:'blur'}],
},
isReview:false,
reviewForm:{},
reviewRules:{
reason:[{required: true, message: '请填写结算说明',trigger:'blur'}]
},
option:{
height: 'auto',
calcHeight: 32,
@ -492,6 +513,14 @@ export default {
}
this.isConfirm = true
},
initiateReview(){
if(this.data.length == 0){
this.$message.error('请先查询数据!')
return
}
this.re
this.isReview = true
},
changeResult(val){
console.log('val-----------------',val)
if(val == 2){

@ -684,16 +684,27 @@ export default {
// this.$message.warning('');
// return;
// }
this.$confirm('确认当前页面所有数据无需结算?', {
if(this.data.length == 0){
this.$message.error('请先查询数据!')
return
}
this.$confirm('确认页面所有数据无需结算?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
noSettlementItem(this.selectionList).then(() => {
let params = {
...this.query,
postPlatingStorageTimeStart:this.query && this.query.putStoreTime && this.query.putStoreTime[0],
postPlatingStorageTimeEnd:this.query && this.query.putStoreTime && this.query.putStoreTime[1],
}
if(params.putStoreTime) delete params.putStoreTime;
console.log('params----------',params)
noSettlementItem(params).then(() => {
this.$message.success('无需结算成功');
this.onLoad();
}).catch(() => {
this.$message.error('无需结算失败');
// this.$message.error('');
});
}).catch(() => {
//

@ -5,6 +5,7 @@
<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="6"></el-tab-pane>
<el-tab-pane label="结算完成" name="4"></el-tab-pane>
</el-tabs>
<unsettled v-if="activeName=='1'"></unsettled>

@ -15,26 +15,26 @@
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@sort-change="sortChange"
>
<template #menu-left>
<el-button type="primary" @click="addEdit()">申请</el-button>
<el-button type="primary" @click="addEdit()" v-if="permission.performanceApplication_apply">申请</el-button>
</template>
<template #menu-right> </template>
<template #menu="scope">
<!-- <el-button type="text" @click="editClick(scope.row.omId)">更新月份</el-button> -->
<el-button type="text" v-if="scope.row.omStatus < 3" @click="deleteClick(scope.row)">删除</el-button>
<el-button type="text" v-if="scope.row.omStatus < 3 && permission.performanceApplication_delete" @click="deleteClick(scope.row)"
>删除</el-button
>
</template>
</avue-crud>
<addQuality
v-if="isOpen"
:showDialog="isOpen"
@closeDialog="closeDialog"
></addQuality>
<addQuality v-if="isOpen" :showDialog="isOpen" @closeDialog="closeDialog"></addQuality>
</basic-container>
</template>
<script>
import addQuality from "./components/addQuality.vue";
import {getList,performanceApplyDel} from "@/api/outsourcingManagement/performanceApplication"
import addQuality from './components/addQuality.vue';
import { getList, performanceApplyDel } from '@/api/outsourcingManagement/performanceApplication';
import { mapGetters } from "vuex";
export default {
components: {
addQuality,
@ -42,10 +42,10 @@ export default {
data() {
return {
selectionList: [],
loading:false,
query:{},
loading: false,
query: {},
option: {
height: "auto",
height: 'auto',
calcHeight: 32,
tip: false,
// size: "medium",
@ -62,12 +62,12 @@ export default {
delBtn: false,
addBtn: false,
editBtn: false,
addBtnText: "申请",
editBtnText: "修改",
viewBtnIcon: " ",
delBtnIcon: " ",
editBtnIcon: " ",
viewBtnText: "详情",
addBtnText: '申请',
editBtnText: '修改',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
viewBtnText: '详情',
labelWidth: 120,
menuWidth: 80,
dialogWidth: 640,
@ -80,40 +80,40 @@ export default {
excelBtn: true,
columnSort: true,
showOverflowTooltip: true,
searchLabelPosition: "left",
searchLabelPosition: "left",
searchLabelPosition: 'left',
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: "left",
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: "right",
addBtnIcon: " ",
viewBtnIcon: " ",
delBtnIcon: " ",
editBtnIcon: " ",
align: "center",
searchMenuPosition: 'right',
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
align: 'center',
column: [
{
label: "工艺能力",
prop: "caId",
sortable: true,
label: '工艺能力',
prop: 'caId',
sortable: "custom",
filter: true,
hide:true,
hide: true,
span: 24,
search: true,
width: 130,
searchLabelWidth: 80,
type: "select",
dicUrl:"/api/blade-desk/BA/craftAbility/findList",
props:{
label: "caName",
value:'id'
type: 'select',
dicUrl: '/api/blade-desk/BA/craftAbility/findList',
props: {
label: 'caName',
value: 'id',
},
},
{
label: "工艺能力",
prop: "caName",
sortable: true,
label: '工艺能力',
prop: 'caName',
sortable: "custom",
filter: true,
span: 24,
search: false,
@ -129,65 +129,65 @@ export default {
// ],
},
{
label: "厂家代码",
prop: "oemCode",
label: '厂家代码',
prop: 'oemCode',
// bind: "bsOemCustomer.ocCode",
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "厂家名称",
prop: "oemName",
label: '厂家名称',
prop: 'oemName',
// bind: "bsOemCustomer.ocName",
search: true,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "月份",
prop: "monthStr",
label: '月份',
prop: 'monthStr',
search: false,
sortable: true,
// sortable: "custom",
filter: true,
span: 24,
width: 90,
},
{
label:"状态",
prop:"statusList",
hide:true,
search:true,
type:'select',
dicData:[
label: '状态',
prop: 'statusList',
hide: true,
search: true,
type: 'select',
dicData: [
{
value:1,
label:"新建"
value: 1,
label: '新建',
},
{
value:2,
label:"填写中"
value: 2,
label: '填写中',
},
{
value:3,
label:"已评审"
value: 3,
label: '已评审',
},
{
value:4,
label:"已审核"
value: 4,
label: '已审核',
},
]
],
},
{
label: "状态",
prop: "omStatusTitle",
label: '状态',
prop: 'omStatusTitle',
// type: "select",
search: false,
sortable: true,
// sortable: "custom",
span: 24,
searchLabelWidth: 60,
// dicData: [
@ -210,31 +210,31 @@ export default {
// ],
},
{
label: "计划准时完成",
label: '计划准时完成',
children: [
{
label: "目标值(%)",
prop: "jhzsTarget",
label: '目标值(%)',
prop: 'jhzsTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "实际值(%)",
prop: "jhzsReality",
label: '实际值(%)',
prop: 'jhzsReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "绩效得分",
prop: "jhzsNum",
label: '绩效得分',
prop: 'jhzsNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -242,31 +242,31 @@ export default {
],
},
{
label: "重点零件完成率",
label: '重点零件完成率',
children: [
{
label: "目标值(%)",
prop: "zdljTarget",
label: '目标值(%)',
prop: 'zdljTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "实际值(%)",
prop: "zdljReality",
label: '实际值(%)',
prop: 'zdljReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "绩效得分",
prop: "zdljNum",
label: '绩效得分',
prop: 'zdljNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -274,31 +274,31 @@ export default {
],
},
{
label: "清欠项",
label: '清欠项',
children: [
{
label: "目标值",
prop: "qqxTarget",
label: '目标值',
prop: 'qqxTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "实际值",
prop: "qqxReality",
label: '实际值',
prop: 'qqxReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "绩效得分",
prop: "qqxNum",
label: '绩效得分',
prop: 'qqxNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -306,31 +306,31 @@ export default {
],
},
{
label: "客户投诉(扣分项)",
label: '客户投诉(扣分项)',
children: [
{
label: "目标值",
prop: "produceTsTarget",
label: '目标值',
prop: 'produceTsTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "实际值",
prop: "produceTsReality",
label: '实际值',
prop: 'produceTsReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "绩效得分",
prop: "produceTsNum",
label: '绩效得分',
prop: 'produceTsNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -338,40 +338,40 @@ export default {
],
},
{
label: "交付绩效",
prop: "payMerits",
label: '交付绩效',
prop: 'payMerits',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "后工序审理单",
label: '后工序审理单',
children: [
{
label: "目标值",
prop: "hgxTarget",
label: '目标值',
prop: 'hgxTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "实际值",
prop: "hgxReality",
label: '实际值',
prop: 'hgxReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "绩效得分",
prop: "hgxNum",
label: '绩效得分',
prop: 'hgxNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -379,31 +379,31 @@ export default {
],
},
{
label: "DPPM",
label: 'DPPM',
children: [
{
label: "目标值",
prop: "dppmTarget",
label: '目标值',
prop: 'dppmTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "实际值",
prop: "dppmReality",
label: '实际值',
prop: 'dppmReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "绩效得分",
prop: "dppmNum",
label: '绩效得分',
prop: 'dppmNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -411,31 +411,31 @@ export default {
],
},
{
label: "低级错误",
label: '低级错误',
children: [
{
label: "目标值",
prop: "djcwTarget",
label: '目标值',
prop: 'djcwTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "实际值",
prop: "djcwReality",
label: '实际值',
prop: 'djcwReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "绩效得分",
prop: "djcwNum",
label: '绩效得分',
prop: 'djcwNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -443,31 +443,31 @@ export default {
],
},
{
label: "顾客投诉(扣分项)",
label: '顾客投诉(扣分项)',
children: [
{
label: "目标值",
prop: "qualityTsTarget",
label: '目标值',
prop: 'qualityTsTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "实际值",
prop: "qualityTsReality",
label: '实际值',
prop: 'qualityTsReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "绩效得分",
prop: "qualityTsNum",
label: '绩效得分',
prop: 'qualityTsNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -475,31 +475,31 @@ export default {
],
},
{
label: "批次性(扣分项)",
label: '批次性(扣分项)',
children: [
{
label: "目标值",
prop: "pcxTarget",
label: '目标值',
prop: 'pcxTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "实际值",
prop: "pcxReality",
label: '实际值',
prop: 'pcxReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "绩效得分",
prop: "pcxNum",
label: '绩效得分',
prop: 'pcxNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -507,31 +507,31 @@ export default {
],
},
{
label: "多余物(扣分项)",
label: '多余物(扣分项)',
children: [
{
label: "目标值",
prop: "dywTarget",
label: '目标值',
prop: 'dywTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "实际值",
prop: "dywReality",
label: '实际值',
prop: 'dywReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "绩效得分",
prop: "dywNum",
label: '绩效得分',
prop: 'dywNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -539,31 +539,31 @@ export default {
],
},
{
label: "清零问题(扣分项)",
label: '清零问题(扣分项)',
children: [
{
label: "目标值",
prop: "qlwtTarget",
label: '目标值',
prop: 'qlwtTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "实际值",
prop: "qlwtReality",
label: '实际值',
prop: 'qlwtReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "绩效得分",
prop: "qlwtNum",
label: '绩效得分',
prop: 'qlwtNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -571,22 +571,22 @@ export default {
],
},
{
label: "质量绩效",
prop: "qualityMerits",
label: '质量绩效',
prop: 'qualityMerits',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "发展能力",
label: '发展能力',
children: [
{
label: "加分",
prop: "growAbility",
label: '加分',
prop: 'growAbility',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -594,13 +594,13 @@ export default {
],
},
{
label: "重大事项",
label: '重大事项',
children: [
{
label: "加分",
prop: "ajorIssues",
label: '加分',
prop: 'ajorIssues',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -608,28 +608,28 @@ export default {
],
},
{
label: "最终得分",
prop: "endScore",
label: '最终得分',
prop: 'endScore',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "绩效等级",
prop: "meritsScore",
label: '绩效等级',
prop: 'meritsScore',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
},
{
label: "排名",
prop: "ranking",
label: '排名',
prop: 'ranking',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
},
@ -645,31 +645,46 @@ export default {
isOpen: false,
};
},
computed: {
...mapGetters(["permission"]),
},
methods: {
//
sortChange({ prop, order }) {
console.log('prop----------', prop);
console.log('order----------', order);
this.query.ascs = undefined;
this.query.descs = undefined;
const orderByFieldKey = order === 'ascending' ? 'ascs' : 'descs';
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
this.query[orderByFieldKey] = orderByField;
// //
this.onLoad(this.page, this.query);
},
addEdit() {
this.isOpen = true;
},
closeDialog(val) {
this.isOpen = false;
if(val){
this.onLoad()
if (val) {
this.onLoad();
}
},
deleteClick(row) {
this.$confirm("是否删除此数据?", "提示", {
confirmButtonText: "确认",
cancelButtonText: "取消",
type: "warning",
this.$confirm('是否删除此数据?', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
performanceApplyDel({
ids:row.id
}).then(res =>{
if(res.data.code == 200){
this.$message.success('删除成功')
this.onLoad()
}
})
})
performanceApplyDel({
ids: row.id,
}).then(res => {
if (res.data.code == 200) {
this.$message.success('删除成功');
this.onLoad();
}
});
});
},
async editClick(omId) {
this.omId = omId;
@ -682,30 +697,30 @@ export default {
handleDelete() {
if (this.selectionList.length === 0) {
this.$message.warning("请选择至少一条数据");
this.$message.warning('请选择至少一条数据');
return;
}
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {});
},
searchChange(params, done){
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1
this.onLoad()
done()
this.page.currentPage = 1;
this.onLoad();
done();
},
searchReset(){
this.query = {}
this.onLoad()
searchReset() {
this.query = {};
this.onLoad();
},
currentChange(currentPage){
this.page.currentPage = currentPage
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize){
this.page.pageSize = pageSize
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
//
selectionChange(list) {
@ -718,11 +733,11 @@ export default {
current: this.page.currentPage,
size: this.page.pageSize,
...this.query,
}).then((res) => {
}).then(res => {
this.data = res.data.data.records;
this.page.total = res.data.data.total;
this.loading = false;
})
});
// this.data = [
// {
// bsOemCustomer: {

@ -14,10 +14,11 @@
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@sort-change="sortChange"
>
<template #menu-left>
<el-button type="primary" @click="maintenanceClick">维护 </el-button>
<el-button type="primary" @click="proofreadClick">校对 </el-button>
<el-button type="primary" @click="maintenanceClick" v-if="permission.millMeritsProduce_maintain">维护 </el-button>
<el-button type="primary" @click="proofreadClick" v-if="permission.millMeritsProduce_check">校对 </el-button>
</template>
<template #menu-right> </template>
<template #menu="scope"> </template>
@ -69,6 +70,7 @@
</template>
<script>
import {getList,maintenanceData,checkData} from "@/api/outsourcingManagement/performanceCalculate"
import { mapGetters } from "vuex";
export default {
data() {
return {
@ -127,7 +129,7 @@ export default {
{
label: "工艺能力",
prop: "caName",
sortable: true,
sortable: "custom",
filter: true,
span: 24,
search: false,
@ -138,8 +140,9 @@ export default {
prop: "oemCode",
// bind: "bsOemCustomer.ocCode",
search: false,
sortable: true,
sortable: "custom",
filter: true,
width: 120,
span: 24,
},
{
@ -147,8 +150,9 @@ export default {
prop: "oemName",
// bind: "bsOemCustomer.ocName",
search: false,
sortable: true,
sortable: "custom",
filter: true,
width: 120,
span: 24,
},
{
@ -158,16 +162,18 @@ export default {
label: "目标值(%)",
prop: "jhzsTarget",
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width:100,
},
{
label: "实际值(%)",
prop: "jhzsReality",
search: false,
sortable: true,
sortable: "custom",
filter: true,
width:110,
span: 24,
// cell: true,
// rules: [{ required: true, message: "", trigger: "blur" }],
@ -181,15 +187,17 @@ export default {
label: "目标值(%)",
prop: "zdljTarget",
search: false,
sortable: true,
sortable: "custom",
filter: true,
width:100,
span: 24,
},
{
label: "实际值(%)",
prop: "zdljReality",
search: false,
sortable: true,
sortable: "custom",
width:110,
filter: true,
span: 24,
// cell: true,
@ -204,7 +212,7 @@ export default {
label: "目标值",
prop: "qqxTarget",
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
},
@ -212,7 +220,8 @@ export default {
label: "实际值",
prop: "qqxReality",
search: false,
sortable: true,
sortable: "custom",
width:100,
filter: true,
span: 24,
// cell: true,
@ -227,7 +236,7 @@ export default {
label: "目标值",
prop: "produceTsTarget",
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
},
@ -235,7 +244,8 @@ export default {
label: "实际值",
prop: "produceTsReality",
search: false,
sortable: true,
sortable: "custom",
width:100,
filter: true,
span: 24,
// cell: true,
@ -250,8 +260,9 @@ export default {
label: "加分",
prop: "growAbility",
search: false,
sortable: true,
sortable: "custom",
filter: true,
width:100,
span: 24,
// cell: true,
// rules: [{ required: true, message: "", trigger: "blur" }],
@ -262,7 +273,7 @@ export default {
label: "状态",
prop: "produceStatus",
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
},
@ -278,7 +289,22 @@ export default {
},
};
},
computed: {
...mapGetters(["permission"]),
},
methods: {
//
sortChange({ prop, order }) {
console.log('prop----------', prop);
console.log('order----------', order);
this.query.ascs = undefined;
this.query.descs = undefined;
const orderByFieldKey = order === 'ascending' ? 'ascs' : 'descs';
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
this.query[orderByFieldKey] = orderByField;
// //
this.onLoad(this.page, this.query);
},
calcData(a,b){
//
const fieldsToCheck = ['jhzsReality','zdljReality','qqxReality', 'produceTsReality', 'growAbility'];

@ -7,10 +7,10 @@
<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"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange" @on-load="onLoad">
@refresh-change="refreshChange" @on-load="onLoad" @sort-change="sortChange">
<template #menu-left>
<el-button type="primary" @click="maintenanceClick">维护</el-button>
<el-button type="primary" @click="proofreadClick">校对</el-button>
<el-button type="primary" @click="maintenanceClick" v-if="permission.millMeritsQuality_maintain">维护</el-button>
<el-button type="primary" @click="proofreadClick" v-if="permission.millMeritsQuality_check">校对</el-button>
</template>
<template #menu-right>
@ -104,6 +104,7 @@
</template>
<script>
import { getList,maintenanceData,checkData } from "@/api/outsourcingManagement/performanceCalculate"
import { mapGetters } from "vuex";
export default {
components: {
@ -165,7 +166,7 @@ export default {
{
label: '工艺能力',
prop: 'caName',
sortable: true,
sortable: "custom",
filter: true,
span: 24,
search: false,
@ -175,7 +176,7 @@ export default {
label: '厂家代码',
prop: 'oemCode',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -185,7 +186,7 @@ export default {
prop: 'oemName',
// bind: 'bsOemCustomer.ocName',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -198,7 +199,7 @@ export default {
label: '目标值',
prop: 'hgxTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -210,7 +211,7 @@ export default {
label: '实际值',
prop: 'hgxReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -228,7 +229,7 @@ export default {
label: '目标值',
prop: 'dppmTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -240,7 +241,7 @@ export default {
label: '实际值',
prop: 'dppmReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -258,7 +259,7 @@ export default {
label: '目标值',
prop: 'djcwTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -267,7 +268,7 @@ export default {
label: '实际值',
prop: 'djcwReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -285,7 +286,7 @@ export default {
label: '目标值',
prop: 'qualityTsTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -294,7 +295,7 @@ export default {
label: '实际值',
prop: 'qualityTsReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -313,7 +314,7 @@ export default {
label: '目标值',
prop: 'pcxTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -322,7 +323,7 @@ export default {
label: '实际值',
prop: 'pcxReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -341,7 +342,7 @@ export default {
label: '目标值',
prop: 'dywTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -350,7 +351,7 @@ export default {
label: '实际值',
prop: 'dywReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -369,7 +370,7 @@ export default {
label: '目标值',
prop: 'qlwtTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -378,7 +379,7 @@ export default {
label: '实际值',
prop: 'qlwtReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -394,7 +395,7 @@ export default {
label: '状态',
prop: 'qualityStatus',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
},
@ -412,7 +413,22 @@ export default {
isOpen: false
}
},
computed: {
...mapGetters(["permission"]),
},
methods: {
//
sortChange({ prop, order }) {
console.log('prop----------', prop);
console.log('order----------', order);
this.query.ascs = undefined;
this.query.descs = undefined;
const orderByFieldKey = order === 'ascending' ? 'ascs' : 'descs';
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
this.query[orderByFieldKey] = orderByField;
// //
this.onLoad(this.page, this.query);
},
calcData(a,b){
//
const fieldsToCheck = ['djcwReality','qualityTsReality','pcxReality', 'dywReality', 'qlwtReality','dppmTarget',

@ -3,7 +3,7 @@
<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"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange" @on-load="onLoad">
@refresh-change="refreshChange" @on-load="onLoad" @sort-change="sortChange">
<template #menu-left>
<el-button type="primary" @click="updateData()">重新计算</el-button>
<el-button type="primary" @click="submitData()">保存</el-button>
@ -263,7 +263,7 @@ export default {
{
label: '工艺能力',
prop: 'caName',
sortable: true,
sortable: "custom",
filter: true,
span: 24,
search: false,
@ -273,7 +273,7 @@ export default {
label: '厂家代码',
prop: 'oemCode',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -282,7 +282,7 @@ export default {
label: '厂家名称',
prop: 'oemName',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -296,7 +296,7 @@ export default {
label: '目标值(%)',
prop: 'jhzsTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -305,7 +305,7 @@ export default {
label: '实际值(%)',
prop: 'jhzsReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -318,7 +318,7 @@ export default {
label: '绩效得分',
prop: 'jhzsNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -332,7 +332,7 @@ export default {
label: '目标值(%)',
prop: 'zdljTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -341,7 +341,7 @@ export default {
label: '实际值(%)',
prop: 'zdljReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -354,7 +354,7 @@ export default {
label: '绩效得分',
prop: 'zdljNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -368,7 +368,7 @@ export default {
label: '目标值',
prop: 'qqxTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -377,7 +377,7 @@ export default {
label: '实际值',
prop: 'qqxReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -390,7 +390,7 @@ export default {
label: '绩效得分',
prop: 'qqxNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -404,7 +404,7 @@ export default {
label: '目标值',
prop: 'produceTsTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -413,7 +413,7 @@ export default {
label: '实际值',
prop: 'produceTsReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -426,7 +426,7 @@ export default {
label: '绩效得分',
prop: 'produceTsNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -437,7 +437,7 @@ export default {
label: '交付绩效',
prop: 'payMerits',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -449,7 +449,7 @@ export default {
label: '目标值',
prop: 'hgxTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -462,7 +462,7 @@ export default {
label: '实际值',
prop: 'hgxReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -475,7 +475,7 @@ export default {
label: '绩效得分',
prop: 'hgxNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -489,7 +489,7 @@ export default {
label: '目标值',
prop: 'dppmTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -502,7 +502,7 @@ export default {
label: '实际值',
prop: 'dppmReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -515,7 +515,7 @@ export default {
label: '绩效得分',
prop: 'dppmNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -529,7 +529,7 @@ export default {
label: '目标值',
prop: 'djcwTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -538,7 +538,7 @@ export default {
label: '实际值',
prop: 'djcwReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -551,7 +551,7 @@ export default {
label: '绩效得分',
prop: 'djcwNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -565,7 +565,7 @@ export default {
label: '目标值',
prop: 'qualityTsTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -574,7 +574,7 @@ export default {
label: '实际值',
prop: 'qualityTsReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -587,7 +587,7 @@ export default {
label: '绩效得分',
prop: 'qualityTsNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -601,7 +601,7 @@ export default {
label: '目标值',
prop: 'pcxTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -610,7 +610,7 @@ export default {
label: '实际值',
prop: 'pcxReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -623,7 +623,7 @@ export default {
label: '绩效得分',
prop: 'pcxNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -637,7 +637,7 @@ export default {
label: '目标值',
prop: 'dywTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -646,7 +646,7 @@ export default {
label: '实际值',
prop: 'dywReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -659,7 +659,7 @@ export default {
label: '绩效得分',
prop: 'dywNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -673,7 +673,7 @@ export default {
label: '目标值',
prop: 'qlwtTarget',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -682,7 +682,7 @@ export default {
label: '实际值',
prop: 'qlwtReality',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -695,7 +695,7 @@ export default {
label: '绩效得分',
prop: 'qlwtNum',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -706,7 +706,7 @@ export default {
label: '质量绩效',
prop: 'qualityMerits',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -718,7 +718,7 @@ export default {
label: '加分',
prop: 'growAbility',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -736,7 +736,7 @@ export default {
label: '加分',
prop: 'ajorIssues',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -751,7 +751,7 @@ export default {
label: '最终得分',
prop: 'endScore',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -760,7 +760,7 @@ export default {
label: '绩效等级',
prop: 'meritsScore',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
width: 120,
@ -769,7 +769,7 @@ export default {
label: '排名',
prop: 'ranking',
search: false,
sortable: true,
sortable: "custom",
filter: true,
span: 24,
},
@ -788,6 +788,18 @@ export default {
}
},
methods: {
//
sortChange({ prop, order }) {
console.log('prop----------', prop);
console.log('order----------', order);
this.query.ascs = undefined;
this.query.descs = undefined;
const orderByFieldKey = order === 'ascending' ? 'ascs' : 'descs';
const orderByField = prop.replace(/([a-z])([A-Z0-9])/g, '$1_$2').toUpperCase();
this.query[orderByFieldKey] = orderByField;
// //
this.onLoad(this.page, this.query);
},
calcData(a,b){
//
const fieldsToCheck = [

Loading…
Cancel
Save