debug
This commit is contained in:
parent
1e13611d0a
commit
6131dba97a
|
@ -19,20 +19,26 @@ export function getReport(reportId, params = {}) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增报表
|
// 新增报表
|
||||||
export function addReport(data) {
|
export function addReport(data, submit) {
|
||||||
return request({
|
return request({
|
||||||
url: '/yh/report',
|
url: '/yh/report',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: data,
|
||||||
|
params: {
|
||||||
|
submit
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改报表
|
// 修改报表
|
||||||
export function updateReport(data) {
|
export function updateReport(data, submit) {
|
||||||
return request({
|
return request({
|
||||||
url: '/yh/report',
|
url: '/yh/report',
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data: data
|
data: data,
|
||||||
|
params: {
|
||||||
|
submit
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
class="mini-table"
|
class="mini-table"
|
||||||
>
|
>
|
||||||
<el-table-column type="selection" align="center"/>
|
<el-table-column type="selection" align="center"/>
|
||||||
<!-- <el-table-column type="index" width="60" label="序号" align="center"/>-->
|
|
||||||
<el-table-column label="工序" align="center" prop="priceName">
|
<el-table-column label="工序" align="center" prop="priceName">
|
||||||
<template #header>
|
<template #header>
|
||||||
<span class="required-label">工序</span>
|
<span class="required-label">工序</span>
|
||||||
|
@ -36,7 +35,7 @@
|
||||||
</form-col>
|
</form-col>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="工序类型" align="center" >
|
<el-table-column label="工序类型" align="center" width="100">
|
||||||
<template scope="d">
|
<template scope="d">
|
||||||
<form-col table label-width="0" :prop="getProp(d.$index, 'priceType')" :rules="rules.priceType">
|
<form-col table label-width="0" :prop="getProp(d.$index, 'priceType')" :rules="rules.priceType">
|
||||||
<hover-show>
|
<hover-show>
|
||||||
|
@ -88,39 +87,39 @@
|
||||||
</form-col>
|
</form-col>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="单价" align="center" prop="pricePrice" width="100">
|
<el-table-column label="单价" align="center" prop="pricePrice" width="80">
|
||||||
<template scope="d">
|
<template scope="d">
|
||||||
<form-col table label-width="0">
|
<form-col table label-width="0">
|
||||||
{{d.row.pricePrice | dv}} 元
|
{{d.row.pricePrice | dv}} 元
|
||||||
</form-col>
|
</form-col>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="总价" align="center" width="100">
|
<el-table-column label="总价" align="center" width="80">
|
||||||
<template scope="d">
|
<template scope="d">
|
||||||
<form-col table label-width="0">
|
<form-col table label-width="0">
|
||||||
{{ totalPrice(d.row) | dv }} 元
|
{{ totalPrice(d.row) | dv }} 元
|
||||||
</form-col>
|
</form-col>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="明细信息" align="center" width="160">
|
<el-table-column label="明细信息" align="center" width="200">
|
||||||
<template scope="d">
|
<template scope="d">
|
||||||
<div class="more-row" v-for="(userProd, index) of d.row.userProdList" @click="handleShowMore(d.row, d.$index)">
|
<el-tag type="primary" size="mini" class="more-row" v-for="(userProd, index) of d.row.userProdList" @click="handleShowMore(d.row, d.$index)">
|
||||||
{{index + 1}}、{{userProd.userName | dv}} {{userProd.num | dv}} {{d.row.priceUnit}}
|
{{userProd.userName | dv}} {{userProd.num | dv}} {{d.row.priceUnit}}
|
||||||
</div>
|
</el-tag>
|
||||||
<div class="more-row" v-for="(order, index) of d.row.orderProdList" @click="handleShowMore(d.row, d.$index)">
|
<el-tag type="success" size="mini" v-for="(order, index) of d.row.orderProdList" @click="handleShowMore(d.row, d.$index)">
|
||||||
{{index + 1}}、{{order.orderErpBillNo}} {{order.num}} {{d.row.priceUnit}}
|
{{order.orderErpBillNo}} {{order.num}} {{d.row.priceUnit}}
|
||||||
</div>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column width="160" align="center" label="操作">
|
<el-table-column width="120" align="center" label="操作">
|
||||||
<template slot-scope="d">
|
<template slot-scope="d">
|
||||||
<el-button type="text" size="mini" @click="handleShowMore(d.row, d.$index)" icon="el-icon-edit">编辑</el-button>
|
<el-button type="text" size="mini" @click="handleShowMore(d.row, d.$index)" icon="el-icon-edit">编辑</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleDel(d.$index)">
|
@click="handleDel(d.row, d.$index)">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
@ -242,6 +241,7 @@ export default {
|
||||||
deptId: this.form.deptId,
|
deptId: this.form.deptId,
|
||||||
status: PriceStatus.PASS, // 已审核
|
status: PriceStatus.PASS, // 已审核
|
||||||
disabled: false,
|
disabled: false,
|
||||||
|
excludePriceIds: this.value.map(item => item.priceId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -329,10 +329,14 @@ export default {
|
||||||
this.selection = selection;
|
this.selection = selection;
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
handleDel(index) {
|
handleDel(row, index) {
|
||||||
if (this.value != null) {
|
this.$confirm(`确定删除工序【${row.priceName}】吗?`, '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
this.value.splice(index, 1);
|
this.value.splice(index, 1);
|
||||||
}
|
})
|
||||||
},
|
},
|
||||||
// 批量修改产量
|
// 批量修改产量
|
||||||
handleBatchUserProduct(){
|
handleBatchUserProduct(){
|
||||||
|
@ -388,12 +392,15 @@ export default {
|
||||||
num: item.num
|
num: item.num
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
// 计算总产量
|
|
||||||
let totalCount = notNullDecimal(0);
|
// 若需要更新总产量,则计算总产量
|
||||||
row.userProdList.forEach(item => {
|
if (data.updateTotal) {
|
||||||
totalCount = notNullDecimal(item.num).add(totalCount);
|
let totalCount = notNullDecimal(0);
|
||||||
})
|
row.userProdList.forEach(item => {
|
||||||
row.num = totalCount.toNumber();
|
totalCount = notNullDecimal(item.num).add(totalCount);
|
||||||
|
})
|
||||||
|
row.num = totalCount.toNumber();
|
||||||
|
}
|
||||||
})
|
})
|
||||||
this.$message.success("批量编辑成功");
|
this.$message.success("批量编辑成功");
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,13 +141,20 @@ export default {
|
||||||
erpStatusList: [ProdOrderErpStatus.START_WORK],
|
erpStatusList: [ProdOrderErpStatus.START_WORK],
|
||||||
materialCategory: this.reportProd.priceCategory,
|
materialCategory: this.reportProd.priceCategory,
|
||||||
materialSize: this.reportProd.priceSize,
|
materialSize: this.reportProd.priceSize,
|
||||||
|
excludeIds: this.value.map(item => item.orderId),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
isEmpty,
|
isEmpty,
|
||||||
handleDel(index) {
|
handleDel(index) {
|
||||||
this.value.splice(index, 1)
|
this.$confirm(`确定删除与当前订单的关联吗?`, "提示", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning",
|
||||||
|
}).then(() => {
|
||||||
|
this.value.splice(index, 1)
|
||||||
|
})
|
||||||
},
|
},
|
||||||
onChangeProdOrder(row, item) {
|
onChangeProdOrder(row, item) {
|
||||||
row.orderErpQty = item.erpQty;
|
row.orderErpQty = item.erpQty;
|
||||||
|
|
|
@ -136,7 +136,7 @@ export default {
|
||||||
this.$refs.form.validate(valid => {
|
this.$refs.form.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
// 校验产量是否一致
|
// 校验产量是否一致
|
||||||
let error = this.checkNum(this.form);
|
let error = this.preCheckProd(this.form);
|
||||||
if (!isEmpty(error)) {
|
if (!isEmpty(error)) {
|
||||||
this.$message.warning(error);
|
this.$message.warning(error);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<el-table-column label="员工" align="center">
|
<el-table-column label="员工" align="center">
|
||||||
<template slot-scope="d">
|
<template slot-scope="d">
|
||||||
<form-col table label-width="0" :prop="`userProdList[${d.$index}].userId`" :rules="rules.userId">
|
<form-col table label-width="0" :prop="`userProdList[${d.$index}].userId`" :rules="rules.userId">
|
||||||
<user-input v-model="d.row.userId" open-type="dialog" :list-api="listUserWithShift" :query="userQuery"/>
|
<user-input v-model="d.row.userId" open-type="dialog" :list-api="listUserWithShift" :query="userQueryParams"/>
|
||||||
</form-col>
|
</form-col>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleDelUserProduct(d.$index)"
|
@click="handleDelUserProduct(d.row, d.$index)"
|
||||||
>删除
|
>删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
:show.sync="showUserDialog"
|
:show.sync="showUserDialog"
|
||||||
:list-api="listUserWithShift"
|
:list-api="listUserWithShift"
|
||||||
@select="onSelectUsers"
|
@select="onSelectUsers"
|
||||||
:query="userQuery"
|
:query="userQueryParams"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -101,6 +101,12 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
userQueryParams() {
|
||||||
|
return {
|
||||||
|
excludeUserIds: this.value.map(item => item.userId),
|
||||||
|
...this.userQuery
|
||||||
|
}
|
||||||
|
},
|
||||||
userIncome() {
|
userIncome() {
|
||||||
return (num) => {
|
return (num) => {
|
||||||
return calcMulDecimal(num, this.price);
|
return calcMulDecimal(num, this.price);
|
||||||
|
@ -114,8 +120,14 @@ export default {
|
||||||
this.showUserDialog = true;
|
this.showUserDialog = true;
|
||||||
},
|
},
|
||||||
// 删除用户产量
|
// 删除用户产量
|
||||||
handleDelUserProduct(index) {
|
handleDelUserProduct(row, index) {
|
||||||
this.value.splice(index, 1);
|
this.$confirm(`确定删除当前员工产量吗?`, "提示", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning",
|
||||||
|
}).then(() => {
|
||||||
|
this.value.splice(index, 1);
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 确认添加用户
|
// 确认添加用户
|
||||||
onSelectUsers(list) {
|
onSelectUsers(list) {
|
||||||
|
|
|
@ -1,14 +1,20 @@
|
||||||
<template>
|
<template>
|
||||||
<el-dialog :visible.sync="visible" title="批量编辑员工产量" close-on-click-modal width="800px">
|
<el-dialog :visible.sync="visible" title="批量编辑员工产量" close-on-click-modal width="800px">
|
||||||
<el-form :model="form" label-width="6em" size="mini">
|
<el-form :model="form" size="mini" :rules="rules" ref="form">
|
||||||
<el-row>
|
<el-row>
|
||||||
<form-col :span="24" label="工资模式">
|
<form-col :span="24" label="工资模式">
|
||||||
<el-radio-group v-model="form.mode">
|
<el-radio-group v-model="form.mode">
|
||||||
<el-radio :label="IncomeMode.COUNT">产量</el-radio>
|
<el-radio-button :label="IncomeMode.COUNT">产量</el-radio-button>
|
||||||
<el-radio :label="IncomeMode.SCORE">计分</el-radio>
|
<el-radio-button :label="IncomeMode.SCORE">计分</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
<div v-show="form.mode === IncomeMode.SCORE" style="color: red; ">
|
<div v-show="form.mode === IncomeMode.SCORE" style="color: red; ">
|
||||||
请注意!计分模式下,需要提前输入选中行的<strong>总产量</strong>,否则无法计算员工产量!
|
请注意!计分模式下,需要提前输入选中行的 <strong>总产量</strong> ,否则无法计算员工产量!
|
||||||
|
</div>
|
||||||
|
</form-col>
|
||||||
|
<form-col :span="24" label="更新工序总产量" label-width="8em" v-if="form.mode === IncomeMode.COUNT">
|
||||||
|
<el-switch v-model="form.updateTotal" active-text="开启" inactive-text="关闭"/>
|
||||||
|
<div style="color: red; " v-show="form.updateTotal">
|
||||||
|
请注意!开启之后,将会根据员工产量汇总并覆盖原有的工序总产量。
|
||||||
</div>
|
</div>
|
||||||
</form-col>
|
</form-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
@ -25,24 +31,24 @@
|
||||||
</template>
|
</template>
|
||||||
<template slot-scope="d">
|
<template slot-scope="d">
|
||||||
<form-col table label-width="0">
|
<form-col table label-width="0">
|
||||||
<user-input v-model="d.row.userId" :list-api="listUserWithShift" :query="userQuery"/>
|
<user-input v-model="d.row.userId" :list-api="listUserWithShift" :query="userQueryParams"/>
|
||||||
</form-col>
|
</form-col>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center">
|
<el-table-column align="center">
|
||||||
<template #header>
|
<template #header>
|
||||||
<span class="required-label" v-if="form.mode === IncomeMode.COUNT">
|
<span class="required-label" v-if="form.mode === IncomeMode.COUNT">
|
||||||
产量
|
良品数
|
||||||
</span>
|
</span>
|
||||||
<span class="required-label" v-if="form.mode === IncomeMode.SCORE">
|
<span class="required-label" v-if="form.mode === IncomeMode.SCORE">
|
||||||
分数
|
分数
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
<template slot-scope="d">
|
<template slot-scope="d">
|
||||||
<form-col table label-width="0" v-if="form.mode === IncomeMode.COUNT">
|
<form-col table label-width="0" v-if="form.mode === IncomeMode.COUNT" :prop="`list[${d.$index}].num`" :rules="rules.list.num">
|
||||||
<el-input v-model="d.row.num" type="number" placeholder="请输入员工产量" :min="0"/>
|
<el-input v-model="d.row.num" type="number" placeholder="请输入员工产量" :min="1"/>
|
||||||
</form-col>
|
</form-col>
|
||||||
<form-col table label-width="0" v-if="form.mode === IncomeMode.SCORE">
|
<form-col table label-width="0" v-if="form.mode === IncomeMode.SCORE" :prop="`list[${d.$index}].score`" :rules="rules.list.score">
|
||||||
<el-input v-model="d.row.score" type="number" placeholder="请输入员工分数" :min="0"/>
|
<el-input v-model="d.row.score" type="number" placeholder="请输入员工分数" :min="0"/>
|
||||||
</form-col>
|
</form-col>
|
||||||
</template>
|
</template>
|
||||||
|
@ -58,7 +64,7 @@
|
||||||
<user-dialog
|
<user-dialog
|
||||||
:show.sync="showUserDialog"
|
:show.sync="showUserDialog"
|
||||||
multiple
|
multiple
|
||||||
:query="userQuery"
|
:query="userQueryParams"
|
||||||
:list-api="listUserWithShift"
|
:list-api="listUserWithShift"
|
||||||
@select="onSelectUsers"
|
@select="onSelectUsers"
|
||||||
/>
|
/>
|
||||||
|
@ -94,8 +100,11 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
IncomeMode() {
|
userQueryParams() {
|
||||||
return IncomeMode
|
return {
|
||||||
|
excludeUserIds: this.form.list.map(item => item.userId),
|
||||||
|
...this.userQuery,
|
||||||
|
}
|
||||||
},
|
},
|
||||||
visible: {
|
visible: {
|
||||||
get() {
|
get() {
|
||||||
|
@ -108,32 +117,60 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
IncomeMode,
|
||||||
form: {
|
form: {
|
||||||
mode: IncomeMode.COUNT
|
list: [],
|
||||||
|
mode: IncomeMode.COUNT,
|
||||||
|
updateTotal: true,
|
||||||
},
|
},
|
||||||
showUserDialog: false,
|
showUserDialog: false,
|
||||||
|
rules: {
|
||||||
|
list: {
|
||||||
|
num: [
|
||||||
|
{required: true, message: '请输入员工产量', trigger: 'blur'},
|
||||||
|
],
|
||||||
|
score: [
|
||||||
|
{required: true, message: '请输入员工分数', trigger: 'blur'},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
listUserWithShift,
|
listUserWithShift,
|
||||||
onSubmit() {
|
onSubmit() {
|
||||||
this.$emit('submit', this.form);
|
this.$refs.form.validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
this.$confirm('【注意!】保存后将会覆盖已选中的员工产量数据,是否确认保存当前产量信息?', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
this.$emit('submit', this.form);
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$message.warning("表单校验不通过,请检查")
|
||||||
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
handleDel(index) {
|
handleDel(index) {
|
||||||
this.form.list.splice(index, 1);
|
this.$confirm(`确定删除当前员工产量吗?`, '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(res => {
|
||||||
|
this.form.list.splice(index, 1);
|
||||||
|
})
|
||||||
},
|
},
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.showUserDialog = true;
|
this.showUserDialog = true;
|
||||||
},
|
},
|
||||||
onSelectUsers(list) {
|
onSelectUsers(list) {
|
||||||
if (isEmpty(this.form.list)) {
|
|
||||||
this.form.list = [];
|
|
||||||
}
|
|
||||||
list.forEach(item => {
|
list.forEach(item => {
|
||||||
this.form.list.push({
|
this.form.list.push({
|
||||||
userId: item.userId,
|
userId: item.userId,
|
||||||
userName: item.nickName,
|
userName: item.nickName,
|
||||||
num: 0,
|
num: null,
|
||||||
score: 10,
|
score: 10,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="report-edit-container">
|
<div class="report-edit-container" v-loading="loading">
|
||||||
<edit-header :title="title">
|
<edit-header :title="title">
|
||||||
<el-button type="primary" @click="submitForm" icon="el-icon-check" size="small">保存并提交</el-button>
|
<el-button type="primary" plain @click="submitForm(false)" icon="el-icon-check" size="small">仅保存</el-button>
|
||||||
|
<el-button type="primary" @click="submitForm(true)" icon="el-icon-s-check" size="small">保存并提交</el-button>
|
||||||
</edit-header>
|
</edit-header>
|
||||||
|
|
||||||
<div class="app-container" style="padding-bottom: 64px">
|
<div class="app-container" style="padding-bottom: 64px">
|
||||||
|
@ -20,6 +21,7 @@
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
:clearable="false"
|
:clearable="false"
|
||||||
:editable="false"
|
:editable="false"
|
||||||
|
:picker-options="pickerOptions"
|
||||||
/>
|
/>
|
||||||
</form-col>
|
</form-col>
|
||||||
<form-col :span="span" label="总金额">
|
<form-col :span="span" label="总金额">
|
||||||
|
@ -113,7 +115,13 @@ export default {
|
||||||
},
|
},
|
||||||
headerCellStyle: {
|
headerCellStyle: {
|
||||||
backgroundColor: "#f5f7fa",
|
backgroundColor: "#f5f7fa",
|
||||||
}
|
},
|
||||||
|
// 报表日期选项
|
||||||
|
pickerOptions: {
|
||||||
|
disabledDate(date) {
|
||||||
|
return date.getTime() > Date.now();
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -149,38 +157,43 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm(submit) {
|
||||||
this.form.totalAmount = this.totalPrice;
|
this.form.totalAmount = this.totalPrice;
|
||||||
this.$refs["form"].validate(valid => {
|
this.$refs["form"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
// 校验产量是否一致
|
// 校验产量是否一致
|
||||||
for (let i = 0; i < this.form.productList.length; i++) {
|
for (let i = 0; i < this.form.productList.length; i++) {
|
||||||
let error = this.checkNum(this.form.productList[i]);
|
let error = this.preCheckProd(this.form.productList[i]);
|
||||||
if (!isEmpty(error)) {
|
if (!isEmpty(error)) {
|
||||||
return this.$message.warning(`第${i + 1}行工序产量校验未通过:${error}`);
|
return this.$message.warning(`第${i + 1}行工序产量校验未通过:${error}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.$confirm(`确认${submit ? '保存并提交' : '保存'}当前报表?`, '提示', {
|
||||||
this.loading = true;
|
confirmButtonText: '确定',
|
||||||
if (this.form.reportId != null) {
|
cancelButtonText: '取消',
|
||||||
updateReport(this.form).then(res => {
|
type: 'warning'
|
||||||
if (res.code === 200) {
|
}).then(() => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.loading = true;
|
||||||
this.$tab.closeBack();
|
if (this.form.reportId != null) {
|
||||||
}
|
updateReport(this.form, submit).then(res => {
|
||||||
}).finally(() => {
|
if (res.code === 200) {
|
||||||
this.loading = false;
|
this.$modal.msgSuccess("修改成功");
|
||||||
})
|
this.$tab.closeBack();
|
||||||
} else {
|
}
|
||||||
addReport(this.form).then(res => {
|
}).finally(() => {
|
||||||
if (res.code === 200) {
|
this.loading = false;
|
||||||
this.$modal.msgSuccess("新增成功");
|
})
|
||||||
this.$tab.closeBack();
|
} else {
|
||||||
}
|
addReport(this.form, submit).then(res => {
|
||||||
}).finally(() => {
|
if (res.code === 200) {
|
||||||
this.loading = false;
|
this.$modal.msgSuccess("新增成功");
|
||||||
})
|
this.$tab.closeBack();
|
||||||
}
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning("表单校验未通过,请检查")
|
this.$message.warning("表单校验未通过,请检查")
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,27 +1,50 @@
|
||||||
import {notNullDecimal} from "@/utils";
|
import {isEmpty, notNullDecimal} from "@/utils";
|
||||||
import Decimal from "decimal.js";
|
import Decimal from "decimal.js";
|
||||||
|
import {ReportPriceType} from "@/utils/constants";
|
||||||
|
|
||||||
export const $reportCheck = {
|
export const $reportCheck = {
|
||||||
methods: {
|
methods: {
|
||||||
/**
|
/**
|
||||||
* 校验数量是否一致
|
* 提交前校验工序产量
|
||||||
*/
|
*/
|
||||||
checkNum(row) {
|
preCheckProd(row) {
|
||||||
let num = notNullDecimal(row.num); // 良品数
|
let num = notNullDecimal(row.num); // 良品数
|
||||||
let userNum = new Decimal(0); // 用户良品数
|
let totalUserNum = new Decimal(0); // 用户良品数
|
||||||
row.userProdList.forEach(item => {
|
|
||||||
userNum = userNum.add(notNullDecimal(item.num));
|
if (num.toNumber() < 1) {
|
||||||
})
|
return "良品数不允许小于1,请检查";
|
||||||
console.log(userNum.toNumber(), num.toNumber())
|
}
|
||||||
if (userNum.toNumber() > num.toNumber()) {
|
|
||||||
|
// 校验员工产量
|
||||||
|
if (isEmpty(row.userProdList)) {
|
||||||
|
return "至少要填写一条员工产量";
|
||||||
|
}
|
||||||
|
for(let i = 0; i < row.userProdList.length; i++) {
|
||||||
|
let item = row.userProdList[i];
|
||||||
|
let userNum = notNullDecimal(item.num);
|
||||||
|
if (userNum.toNumber() < 1) {
|
||||||
|
return `第${i+1}行员工产量不允许小于1,请检查`;
|
||||||
|
}
|
||||||
|
totalUserNum = totalUserNum.add(userNum);
|
||||||
|
}
|
||||||
|
if (totalUserNum.toNumber() > num.toNumber()) {
|
||||||
return "员工总产量不允许超过工序总产量,请检查"
|
return "员工总产量不允许超过工序总产量,请检查"
|
||||||
}
|
}
|
||||||
|
|
||||||
let orderNum = new Decimal(0); // 订单良品数
|
// 校验订单产量
|
||||||
row.orderProdList.forEach(item => {
|
if (row.priceType === ReportPriceType.BILL && isEmpty(row.orderProdList)) {
|
||||||
orderNum = orderNum.add(notNullDecimal(item.num));
|
return "订单工序至少需要关联一个订单"
|
||||||
})
|
}
|
||||||
if (orderNum.toNumber() > num.toNumber()) {
|
let totalOrderNum = new Decimal(0); // 订单良品数
|
||||||
|
for(let i = 0; i < row.orderProdList.length; i++) {
|
||||||
|
let item = row.orderProdList[i];
|
||||||
|
let orderNum = notNullDecimal(item.num);
|
||||||
|
if (orderNum.toNumber() < 1) {
|
||||||
|
return `第${i+1}行订单产量不允许小于1,请检查`;
|
||||||
|
}
|
||||||
|
totalOrderNum = totalOrderNum.add(orderNum);
|
||||||
|
}
|
||||||
|
if (totalOrderNum.toNumber() > num.toNumber()) {
|
||||||
return "订单总产量不允许超过工序总产量,请检查"
|
return "订单总产量不允许超过工序总产量,请检查"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
end-placeholder="结束时间"
|
end-placeholder="结束时间"
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
:default-time="['00:00:00', '23:59:59']"
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
|
@change="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="创建部门" prop="deptId">
|
<el-form-item label="创建部门" prop="deptId">
|
||||||
|
|
Loading…
Reference in New Issue
Block a user