Merge branch 'dev-scheduling' of http://42.192.7.176:3000/suojin/jonhon-mes-web into dev-scheduling

dev-scheduling
zhangdi 4 weeks ago
commit bef4f2a389
  1. 31
      src/views/oem/oemOrderSettlement/components/reviewDailog.vue
  2. 89
      src/views/oem/oemOrderSettlement/components/settlementAnomaly.vue
  3. 30
      src/views/oem/oemOrderSettlement/components/settlementCompleted.vue
  4. 151
      src/views/oem/oemOrderSettlement/components/settlementDailog.vue
  5. 32
      src/views/oem/oemOrderSettlement/components/settlementIn.vue
  6. 126
      src/views/oem/oemOrderSettlement/components/unsettled.vue

@ -30,9 +30,21 @@ export default {
option: {
submitBtn: false,
emptyBtn: false,
column: [
{
column: [
{
label: '审批结果',
prop: 'approvalStatus',
span: 24,
type: 'radio',
dicData: [
{ label: '审批通过', value: 2 },
{ label: '审批不通过', value: 3 },
],
rules: [
{ required: true, message: '请选择审批结果', trigger: 'change' }
]
},
{
label: '审批意见',
prop: 'reason',
type: 'select',
@ -50,19 +62,6 @@ export default {
rules: [
{ required: true, message: '请选择审批意见', trigger: 'change' }
]
},{
label: '审批结果',
prop: 'approvalStatus',
span: 24,
type: 'radio',
dicData: [
{ label: '待审批', value: 1 },
{ label: '审批通过', value: 2 },
{ label: '审批不通过', value: 3 },
],
rules: [
{ required: true, message: '请选择审批结果', trigger: 'change' }
]
},
]
}

@ -5,10 +5,12 @@
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left>
<el-form ref="form" :model="formValue" label-width="100px" :inline="true">
<el-form ref="form" :model="form" label-width="100px" :inline="true">
<el-form-item label="现执行价格:">
<el-input v-model="form.price"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="settlementFn('settle')">结算</el-button>
<el-button type="primary" @click="settlementFnNum">结算</el-button>
</el-form-item>
</el-form>
</template>
@ -20,12 +22,12 @@
</template>
</avue-crud>
<settlementDailog v-if="isOpen" :showDialog="isOpen" :type="settlementType" :statementList="selectionList" @closeDialog="closeDialog" @refresh="refreshTable"></settlementDailog>
</div>
<settlementDailog v-if="isOpen" :showDialog="isOpen" :type="settlementType" :statementList="selectionList" :settleResult="settleResult" @closeDialog="closeDialog" @refresh="refreshTable"></settlementDailog>
</div>
</template>
<script>
import settlementDailog from './SettlementDailog.vue'
import {getStatement} from "@/api/outsourcingManagement/oemOrderSettlement"
import {getStatement,oemSettleAccountsItem} from "@/api/outsourcingManagement/oemOrderSettlement"
export default {
components: {
@ -158,11 +160,13 @@ export default {
search: true,
width: 120,
type:'select',
dicUrl:"/api/blade-desk/bsProcessSet/getProcessSetList",
dicUrl:"/api/blade-desk/mesOemProcess/page?current=1&&size=99999",
props:{
label: 'name',
value: 'code',
label: 'paName',
value: 'oemProcessCode',
res: 'data.records',
},
},
{
label: '工艺能力',
@ -328,14 +332,14 @@ export default {
]
},
form: {},
formValue:{},
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
isOpen: false,
settlementType: 'settle',
settleResult: null,
settlementType: 'settle',
}
},
methods: {
@ -345,16 +349,43 @@ export default {
closeDialog() {
this.isOpen = false
},
settlementFn(type) {
settlementFnNum() {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
this.$message.error('请选择至少一条数据');
return;
}
this.settlementType = type;
this.isOpen = true;
},
closeDialog() {
this.isOpen = false
if (!this.form.price) {
this.$message.error('请输入现执行价格');
return;
}
this.$confirm('确定要进行结算吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'error',
}).then(() => {
//
const params = {
statementList: this.selectionList,
price: this.form.price
};
oemSettleAccountsItem(params).then(res => {
//
if (res.data && res.data.data) {
this.settleResult = res.data.data;
// settlementDailog
this.isOpen = true;
} else {
this.$message.success('结算成功');
this.onLoad();
}
}).catch(() => {
this.$message.error('结算失败');
});
}).catch(() => {
//
});
},
handleDelete() {
if (this.selectionList.length === 0) {
@ -372,6 +403,28 @@ export default {
selectionChange(list) {
this.selectionList = list;
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad();
done && done();
},
searchReset() {
this.query = {};
this.page.currentPage = 1;
this.onLoad();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
this.onLoad();
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
this.onLoad();
},
refreshChange() {
this.onLoad();
},
onLoad() {
this.loading = true
getStatement({

@ -149,11 +149,13 @@ export default {
search: true,
width: 120,
type:'select',
dicUrl:"/api/blade-desk/bsProcessSet/getProcessSetList",
dicUrl:"/api/blade-desk/mesOemProcess/page?current=1&&size=99999",
props:{
label: 'name',
value: 'code',
label: 'paName',
value: 'oemProcessCode',
res: 'data.records',
},
},
{
label: '工艺能力',
@ -375,6 +377,28 @@ export default {
selectionChange(list) {
this.selectionList = list;
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad();
done && done();
},
searchReset() {
this.query = {};
this.page.currentPage = 1;
this.onLoad();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
this.onLoad();
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
this.onLoad();
},
refreshChange() {
this.onLoad();
},
onLoad() {
this.loading = true
getStatement({

@ -1,62 +1,48 @@
<template>
<el-dialog title="计算" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<avue-form :option="option" v-model="form"></avue-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</template>
<div v-if="calculationIn" class="box">
<div v-loading="isLoading" style="height:100px"></div>
<h3>计算中</h3>
<div>正在计算(80/100),请勿关闭</div>
</div>
<div v-if="!calculationIn" class="box">
<el-icon style="font-size: 48px;">
<DocumentChecked />
</el-icon>
<h3>计算完成</h3>
</div>
<div v-if="!calculationIn">
<h4>计算结果</h4>
<div class="box-txt">
<el-icon style="color:#67c23a;margin-right: 4px;margin-top: 2px;">
<SuccessFilled />
</el-icon>结算成功{{ result.successCount }}条,<i style="color: blue;">待审核></i>
<div class="box">
<el-icon style="font-size: 48px;">
<DocumentChecked />
</el-icon>
<h3>计算完成</h3>
</div>
<div class="box-txt">
<el-icon style="color:#f56c6c;margin-right: 4px;margin-top: 2px;">
<CircleCloseFilled />
</el-icon>结算异常{{ result.exceptionCount }}条,<i style="color: blue;">待审核></i>
<div>
<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>
<!-- <template #footer>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
<el-button @click="closeDialog"> </el-button>
</span>
</template> -->
</template>
</el-dialog>
</template>
<script>
import {oemSettleAccountsItem,preSettlementItem} from "@/api/outsourcingManagement/oemOrderSettlement"
export default {
props: {
showDialog: {
type: Boolean,
default: false
},
type: {
type: String,
default: 'settle'
},
statementList: {
type: Array,
default: () => []
settleResult: {
type: Object,
default: null
}
},
data() {
@ -64,91 +50,32 @@ export default {
isLoading: true,
openShow: false,
calculationIn: true,
form: {},
result: {
successCount: 0,
exceptionCount: 0
},
option: {
submitBtn: false,
emptyBtn: false,
column: [
{
label: '镀后入库时间',
prop: 'putStoreDate',
span: 24,
type: "date",
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
placeholder: '请选择镀后入库时间',
rules: [
{
required: true,
message: "请选择镀后入库时间",
trigger: "change"
}
]
},
{
label: '现执行价格',
prop: 'price',
type: 'number',
span: 24,
placeholder: '请输入现执行价格',
min: 0,
precision: 2,
},
]
}
successCount: 0,
exceptionCount: 0
}
},
watch: {
showDialog(val) {
this.openShow = val;
}
},
mounted() {
this.openShow = this.showDialog
setTimeout(() => {
this.calculationIn = false
}, 2000)
//
if (this.settleResult) {
this.calculationIn = true;
setTimeout(() => {
this.calculationIn = false;
this.successCount = this.settleResult.success || 0;
this.exceptionCount = this.settleResult.error || 0;
}, 2000);
}
},
methods: {
closeDialog() {
this.openShow = false
this.$emit('closeDialog');
this.$emit('refresh');
},
submit() {
//
if (!this.form.putStoreDate) {
this.$message.warning('请选择镀后入库时间');
return;
}
if (!this.form.price) {
this.$message.warning('请输入现执行价格');
return;
}
const params = {
putStoreDate: this.form.putStoreDate,
price: this.form.price,
statementList: this.statementList
};
const requestFn = this.type === 'pre' ? preSettlementItem : oemSettleAccountsItem;
requestFn(params).then(res => {
this.$message.success(this.type === 'pre' ? '预结算成功' : '结算成功');
//
if (res.data) {
console.log(res.data.data,'resqqqqqqqqqqqq');
this.result.successCount = res.data.data.success || 0;
this.result.exceptionCount = res.data.data.error || 0;
}
// this.closeDialog();
// this.$emit('refresh');
}).catch(() => {
this.$message.error(this.type === 'pre' ? '预结算失败' : '结算失败');
});
}
}
}

@ -143,7 +143,7 @@ export default {
value:"id"
}
},
{
{
label: '工序',
prop: 'psCode',
sortable: true,
@ -152,11 +152,13 @@ export default {
search: true,
width: 120,
type:'select',
dicUrl:"/api/blade-desk/bsProcessSet/getProcessSetList",
dicUrl:"/api/blade-desk/mesOemProcess/page?current=1&&size=99999",
props:{
label: 'name',
value: 'code',
label: 'paName',
value: 'oemProcessCode',
res: 'data.records',
},
},
{
label: '工艺能力',
@ -350,6 +352,28 @@ export default {
selectionChange(list) {
this.selectionList = list;
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad();
done && done();
},
searchReset() {
this.query = {};
this.page.currentPage = 1;
this.onLoad();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
this.onLoad();
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
this.onLoad();
},
refreshChange() {
this.onLoad();
},
onLoad() {
this.loading = true
getStatement({

@ -6,10 +6,12 @@
@refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left>
<el-form ref="form" :model="form" label-width="100px" :inline="true">
<el-form-item label="现执行价格:">
<el-input v-model="form.price"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="settlementFn('pre')">预结算</el-button>
<el-button type="primary" @click="settlementFn('settle')">结算</el-button>
<el-button type="primary" @click="settlementFn">预结算</el-button>
<el-button type="primary" @click="settlementFnNum">结算</el-button>
<el-button type="danger" @click="onSubmit">无需结算</el-button>
</el-form-item>
</el-form>
@ -22,12 +24,12 @@
</template>
</avue-crud>
<settlementDailog v-if="isOpen" :showDialog="isOpen" :type="settlementType" :statementList="selectionList" @closeDialog="closeDialog" @refresh="refreshTable"></settlementDailog>
<settlementDailog v-if="isOpen" :showDialog="isOpen" :type="settlementType" :statementList="selectionList" :settleResult="settleResult" @closeDialog="closeDialog" @refresh="refreshTable"></settlementDailog>
</div>
</template>
<script>
import settlementDailog from './SettlementDailog.vue'
import {getStatement,noSettlementItem} from "@/api/outsourcingManagement/oemOrderSettlement"
import {getStatement,noSettlementItem,oemSettleAccountsItem,preSettlementItem} from "@/api/outsourcingManagement/oemOrderSettlement"
export default {
components: {
settlementDailog
@ -161,22 +163,12 @@ export default {
search: true,
width: 120,
type:'select',
dicUrl:"/api/blade-desk/bsProcessSet/getProcessSetList",
dicUrl:"/api/blade-desk/mesOemProcess/page?current=1&&size=99999",
props:{
label: 'name',
value: 'code',
// res: 'data.records',
label: 'paName',
value: 'oemProcessCode',
res: 'data.records',
},
// dicData:[
// {
// label:'1',
// value:1
// },
// {
// label:'2',
// value:2
// },
// ]
},
{
@ -326,17 +318,103 @@ export default {
total: 0,
},
isOpen: false,
settlementType: 'settle',
settleResult: null,
}
},
methods: {
settlementFn(type) {
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad();
done && done();
},
searchReset() {
this.query = {};
this.page.currentPage = 1;
this.onLoad();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
this.onLoad();
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
this.onLoad();
},
refreshChange() {
this.onLoad();
},
//
settlementFnNum() {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
this.$message.error('请选择至少一条数据');
return;
}
if (!this.form.price) {
this.$message.error('请输入现执行价格');
return;
}
this.settlementType = type;
this.isOpen = true;
this.$confirm('确定要进行结算吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'error',
}).then(() => {
//
const params = {
statementList: this.selectionList,
price: this.form.price
};
oemSettleAccountsItem(params).then(res => {
//
if (res.data && res.data.data) {
this.settleResult = res.data.data;
// settlementDailog
this.isOpen = true;
} else {
this.$message.success('结算成功');
this.onLoad();
}
}).catch(() => {
this.$message.error('结算失败');
});
}).catch(() => {
//
});
},
//
settlementFn() {
if (this.selectionList.length === 0) {
this.$message.error('请选择至少一条数据');
return;
}
if (!this.form.price) {
this.$message.error('请输入现执行价格');
return;
}
this.$confirm('确定要进行预结算吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'error',
}).then(() => {
//
const params = {
statementList: this.selectionList,
price: this.form.price
};
preSettlementItem(params).then(() => {
this.$message.success('预结算成功');
this.onLoad();
}).catch(() => {
this.$message.error('预结算失败');
});
}).catch(() => {
//
});
},
closeDialog() {
this.isOpen = false;

Loading…
Cancel
Save