退料接收

This commit is contained in:
bb_pan 2025-03-21 20:07:18 +08:00
parent cb178bb9b0
commit fbdd534e80
6 changed files with 506 additions and 212 deletions

View File

@ -228,3 +228,11 @@ export function endBack(data) {
})
}
// 再用编码
export function getMachineById(query) {
return request({
url: '/material/backApply/getMachineById',
method: 'get',
params: query
})
}

View File

@ -88,12 +88,21 @@ export const costAuditingPassApi = (params) => {
})
}
// 费用维修审核
export const getSltMonthInfoApi = (params) => {
return request.get('/material/sltMonthInfo/getSltMonthInfo', {
params
})
}
// 费用维修审核-提交
export function auditSltApi(data) {
return request({
url: '/material/sltMonthInfo/auditSlt',
method: 'post',
data
})
}

View File

@ -8,6 +8,7 @@
:inline="true"
v-show="showSearch"
label-width="100px"
:disabled="isView"
>
<el-row>
<el-form-item label="退料单位" prop="unitId">
@ -20,12 +21,7 @@
placeholder="请选择"
:disabled="isEdit"
>
<el-option
v-for="item in unitList"
:key="item.id"
:label="item.name"
:value="item.id"
>
<el-option v-for="item in unitList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
@ -39,21 +35,12 @@
placeholder="请选择"
:disabled="isEdit"
>
<el-option
v-for="item in proList"
:key="item.id"
:label="item.name"
:value="item.id"
>
<el-option v-for="item in proList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="协议号" prop="agreementCode">
<el-input
v-model="queryParams.agreementCode"
disabled
style="width: 240px"
></el-input>
<el-input v-model="queryParams.agreementCode" disabled style="width: 240px"></el-input>
</el-form-item>
<el-form-item label="类型名称" prop="status">
<el-cascader
@ -80,7 +67,12 @@
placeholder="请选择规格型号"
@change="changeType"
>
<el-option v-for="item in typeListDev" :key="item.id" :label="item.name" :value="item.id"></el-option>
<el-option
v-for="item in typeListDev"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="退料人" prop="backPerson">
@ -126,28 +118,13 @@
<el-row> </el-row>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-back"
size="mini"
@click="handleBack"
>退料管理</el-button
>
</el-col> -->
<el-row :gutter="10" class="mb8" v-if="!isView">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>保存</el-button
>
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd(0)">保存</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain size="mini" @click="handleAdd(1)">完成退料</el-button>
</el-col>
<el-col :span="1.5">
<!-- <el-button
type="warning"
@ -159,17 +136,8 @@
>导出</el-button> -->
</el-col>
</el-row>
<el-table
v-loading="loading"
:data="leaseApplyDetails"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
min-width="55"
align="center"
:selectable="selectable"
/>
<el-table v-loading="loading" :data="leaseApplyDetails" @selection-change="handleSelectionChange">
<el-table-column type="selection" min-width="55" align="center" :selectable="selectable" />
<el-table-column label="序号" type="index" min-width="120" />
<el-table-column
label="机具名称"
@ -185,105 +153,176 @@
align="center"
:show-overflow-tooltip="true"
/>
<el-table-column
label="计量单位"
prop="unitNames"
min-width="100"
align="center"
/>
<el-table-column label="计量单位" prop="unitNames" min-width="100" align="center" />
<el-table-column
label="当前在用量"
align="center"
prop="useNum"
min-width="180"
>
</el-table-column>
<el-table-column
label="预退数量"
align="center"
prop="outNum"
min-width="180"
>
</el-table-column>
<el-table-column
label="退料数量"
align="center"
prop="num"
min-width="180"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.num"
placeholder="请输入退料数量"
type="number"
min="1"
clearable
@change="checkNum(scope.row)"
style="width: 100%"
/>
<el-table-column label="当前在用量" align="center" prop="useNum" min-width="180"> </el-table-column>
<!-- <el-table-column label="预退数量" align="center" prop="outNum" min-width="180"> </el-table-column> -->
<el-table-column label="退料方式" align="center" prop="manageType" min-width="180">
<template slot-scope="{ row }">
<span>{{ row.manageType == '0' ? '编码退料' : '数量退料' }}</span>
</template>
</el-table-column>
<el-table-column
label="备注"
align="center"
prop="remark"
min-width="180"
>
<el-table-column label="退料数量" align="center" prop="num" min-width="180">
<template slot-scope="{ row }">
<span v-if="row.manageType == 1">{{
Number(row.maintenanceNum || 0) + Number(row.passNum || 0)
}}</span>
<el-button v-else type="text" :disabled="isView" @click="handleSelect(row, 1)">{{
row.numList && row.numList.length > 0 ? row.numList.length : '设备选择'
}}</el-button>
</template>
</el-table-column>
<el-table-column label="退料合格数量" align="center" prop="passNum" min-width="180">
<template slot-scope="{ row }">
<el-input-number
v-if="row.manageType == 1"
v-model="row.passNum"
placeholder="合格数量"
:min="0"
:precision="0"
clearable
size="small"
:disabled="isView"
@change="checkNum(row)"
/>
<el-button v-else type="text" :disabled="isView" @click="handleSelect(row, 2)">{{
row.passMaCodeDtoList && row.passMaCodeDtoList.length > 0
? row.passMaCodeDtoList.length
: '设备选择'
}}</el-button>
</template>
</el-table-column>
<el-table-column label="维修数量" align="center" prop="maintenanceNum" min-width="180">
<template slot-scope="{ row }">
<el-input-number
v-if="row.manageType == 1"
v-model="row.maintenanceNum"
placeholder="维修数量"
:min="0"
:precision="0"
clearable
size="small"
:disabled="isView"
@change="checkNum(row)"
/>
<span v-else>{{ calculateDifference(row) }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" min-width="180">
<template slot-scope="scope">
<el-input
v-model="scope.row.remark"
placeholder="请输入备注"
clearable
style="width: 100%"
:disabled="isView"
@keyup.enter.native="handleQuery"
/>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
fixed="right"
class-name="small-padding fixed-width"
width="160px"
>
<el-table-column label="附件" align="center" prop="fileList" min-width="200">
<template slot-scope="scope">
<el-upload
class="upload-demo"
:action="uploadUrl"
:headers="headers"
accept="image/*,application/pdf"
:limit="5"
:file-list="scope.row.fileList"
:before-upload="beforeUpload"
:before-remove="beforeRemove"
:on-remove="(file, fileList) => handleRemove(file, fileList, scope.row)"
:on-exceed="handleExceed"
:on-success="(res, file, fileList) => handleSuccess(res, file, fileList, scope.row)"
>
<el-button :disabled="isView" size="mini" type="text">点击上传</el-button>
</el-upload>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="160px">
<template slot-scope="scope" v-if="scope.row.roleId !== 1">
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleBack(scope.row)"-->
<!-- v-hasPermi="['system:role:edit']"-->
<!-- >修改</el-button>-->
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="
handleDelete({ ...scope.row, index: scope.$index })
"
@click="handleDelete({ ...scope.row, index: scope.$index })"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 弹框 -->
<el-dialog title="设备出库" :visible.sync="openDialog" width="1200px" append-to-body>
<el-row :gutter="10" class="mb8">
<el-col :span="24" v-if="machineList[0] && machineList[0].totalNum">
<div>待出库数量: {{ machineList[0] && machineList[0].totalNum }}</div>
</el-col>
<el-col :span="24">
<div style="display: flex; align-items: center; margin: 15px">
<span>设备编码: </span>
<el-input
v-model="maCode"
placeholder="请输入"
size="mini"
style="margin-right: 10px; width: 220px"
></el-input>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getMachineList"
>查询</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetMaCode">重置</el-button>
</div>
</el-col>
<el-col :span="1.5">
<el-button type="primary" size="mini" @click="dialogConfirm">确定</el-button>
</el-col>
</el-row>
<el-table
:data="machineList"
width="100%"
ref="codeTableList"
height="450px"
row-key="maId"
reserve-selection
@selection-change="codeSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column
label="类型名称"
prop="typeName"
align="center"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
label="规格型号"
prop="materialName"
align="center"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column
label="设备编码"
prop="maCode"
align="center"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column label="设备状态" prop="maStatus" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>在用</span>
</template>
</el-table-column>
</el-table>
<!-- <div style="width: 100%; height: 50px; display: flex; justify-content: flex-end; align-items: center">
<el-button type="primary" size="mini" @click="saveDevCode">保存</el-button>
<el-button type="normal" size="mini" @click="open = false">取消</el-button>
</div> -->
</el-dialog>
</div>
</template>
<script>
import {
getRole,
delRole,
addRole,
updateRole,
dataScope,
changeRoleStatus,
deptTreeSelect,
} from '@/api/system/role'
import {
treeselect as menuTreeselect,
roleMenuTreeselect,
} from '@/api/system/menu'
import { getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from '@/api/system/role'
import { treeselect as menuTreeselect, roleMenuTreeselect } from '@/api/system/menu'
import {
getProData,
getUnitData,
@ -297,7 +336,7 @@ import {
getFourMaTypeList,
getPreAuditNum,
} from '@/api/claimAndRefund/receive'
import { submitBackApplyApi } from '@/api/claimAndRefund/return'
import { submitBackApplyApi, getMachineById } from '@/api/claimAndRefund/return'
import {
submitBackApplyApiByCq,
materialReturnNoteByApply,
@ -305,6 +344,7 @@ import {
} from '@/api/claimAndRefund/return.js'
import { mapState } from 'vuex'
import { getInfo, h } from '@/api/login'
import { getToken } from '@/utils/auth'
export default {
name: 'ReturnApplyAdd',
props: {
@ -319,7 +359,11 @@ export default {
default: false,
},
rejectTaskId: {
type: [String, Number],
type: [String, Number],
},
isView: {
type: Boolean,
default: false,
},
},
data() {
@ -332,6 +376,10 @@ export default {
}
}
return {
uploadUrl: process.env.VUE_APP_BASE_API + '/system/sys/file/upload', //
headers: {
Authorization: 'Bearer ' + getToken(),
},
//
loading: false,
//
@ -349,7 +397,8 @@ export default {
//
title: '',
//
open: false,
openDialog: false,
dialogType: 1, // 1退2
//
openDataScope: false,
menuExpand: false,
@ -523,7 +572,13 @@ export default {
// isEdit: 'true',
rowId: '',
propsKey: 2000,
taskId:'',
taskId: '',
typeId: '',
maCode: '', //
//
machineList: [],
selectedList: [],
currentRow: {}, //
}
},
mounted() {
@ -550,8 +605,8 @@ export default {
})
this.taskId = this.rejectTaskId
this.rowId = this.rejectId
if(this.taskId && this.isEdit){
Promise.all([
if (this.taskId && this.isEdit) {
Promise.all([
this.GetTaskDetail(this.taskId),
// this.GetDeviceTypeTree(),
])
@ -595,7 +650,7 @@ export default {
},
//
async GetDeviceTypeTreeFn(agreementId,id) {
async GetDeviceTypeTreeFn(agreementId, id) {
const params = {
agreementId: agreementId,
id: id,
@ -605,7 +660,7 @@ export default {
getUseTypeTreee(params).then((res) => {
this.deviceTypeTree = res.data
// console.log('🚀 ~ getUseTypeTreee ~ this.deviceTypeTree:', this.deviceTypeTree)
// 3
const recursion = (data, level = 1) => {
if (data) {
@ -689,7 +744,7 @@ export default {
this.queryParams.agreementId = data.agreementId
this.queryParams.remark = data.remark
this.leaseApplyDetails = res.data.backApplyDetails
this.GetDeviceTypeTreeFn(data.agreementId,data.id)
this.GetDeviceTypeTreeFn(data.agreementId, data.id)
},
//
@ -715,9 +770,7 @@ export default {
//
handelEchoData(item) {
// console.log('item======', item)
const template = JSON.parse(
JSON.stringify(this.leaseApplyDetailsItem),
)
const template = JSON.parse(JSON.stringify(this.leaseApplyDetailsItem))
template.createBy = item.createBy
template.parentId = item.data.parentId
template.typeId = item.data.typeId
@ -829,6 +882,7 @@ export default {
},
//
handleSelectionChange(selection) {
console.log('🚀 ~ handleSelectionChange ~ selection:', selection)
this.queryParams.leaseApplyDetails = selection
},
//
@ -846,7 +900,7 @@ export default {
},
/** 保存按钮操作 */
handleAdd() {
handleAdd(type) {
this.$refs.queryForm.validate(async (valid) => {
if (!valid) {
return false
@ -859,8 +913,25 @@ export default {
// const isRemark = this.queryParams.leaseApplyDetails.some(
// (item) => item.remark == '' || item.remark == undefined
// );
this.queryParams.leaseApplyDetails.forEach((item) => {
if (item.num) {
item.backNum = item.num
}
if (item.manageType == 0) {
item.backNum = item.numList.length
if (item.passMaCodeDtoList) {
item.repairMaCodeDtoList = item.numList.filter(
(item2) =>
!item.passMaCodeDtoList.some((standardItem) => standardItem.maId == item2.maId),
)
}
item.passNum = (item.passMaCodeDtoList && item.passMaCodeDtoList.length) || 0
item.maintenanceNum = (item.repairMaCodeDtoList && item.repairMaCodeDtoList.length) || 0
}
})
const isNum = this.queryParams.leaseApplyDetails.some(
(item) => item.num == '' || item.num == undefined,
(item) => item.backNum == '' || item.backNum == undefined,
)
if (isNum) {
this.$message.error('退料数量不能为空!')
@ -876,17 +947,19 @@ export default {
remark: this.queryParams.remark,
backTime: this.queryParams.backTime,
companyId: this.companyId,
taskId: this.taskId,
}
if (this.taskId != '') {
let params = {
isFinishBack: type,
companyId: this.companyId,
createBy: this.createBy,
id: this.rowId,
agreementId: this.queryParams.agreementId,
backApplyInfo: this.queryParams.backApplyInfo,
backApplyDetails:
this.queryParams.leaseApplyDetails,
backApplyDetails: this.queryParams.leaseApplyDetails,
}
console.log('🚀 ~ this.$refs.queryForm.validate ~ params:', params)
const res = await submitUpdateBackApply(params)
if (res.code == 200) {
this.$message({ type: 'success', message: res.msg })
@ -899,13 +972,14 @@ export default {
}
} else {
let params = {
isFinishBack: type,
companyId: this.companyId,
createBy: this.createBy,
agreementId: this.queryParams.agreementId,
backApplyInfo: this.queryParams.backApplyInfo,
backApplyDetails:
this.queryParams.leaseApplyDetails,
backApplyDetails: this.queryParams.leaseApplyDetails,
}
console.log('🚀 ~ this.$refs.queryForm.validate ~ params:', params)
const res = await submitBackApplyApi(params)
if (res.code == 200) {
this.$message({ type: 'success', message: res.msg })
@ -994,12 +1068,18 @@ export default {
},
checkNum(row) {
console.log('🚀 ~ checkNum ~ row:', row.passNum, row.maintenanceNum)
let maxNum = Number(row.useNum)
console.log('maxNum', maxNum)
if (row.num <= 1) {
this.$set(row, 'num', 1);
} else if (row.num >= maxNum) {
this.$set(row, 'num', maxNum);
if (row.passNum + row.maintenanceNum > maxNum) {
this.$message({
message: '不能超出在用数量',
type: 'warning',
})
this.$nextTick(() => {
this.$set(row, 'passNum', 0)
this.$set(row, 'maintenanceNum', 0)
})
}
},
@ -1023,7 +1103,7 @@ export default {
this.getMaTypeDataByIdFun(val[val.length - 1])
})
// console.log(val, '*******************')
// const deviceTypeList =
// this.$refs.deviceTypeCascader.getCheckedNodes()
// let tempList = []
@ -1031,7 +1111,7 @@ export default {
// if (val.length > 0) {
// const items = val.map((e) => {
// return e[3]
// })
// })x
// for (let i in items) {
// for (let z in deviceTypeList) {
// if (deviceTypeList[z].data.typeId == items[i]) {
@ -1085,7 +1165,7 @@ export default {
},
//
async changeType(e) {
// console.log('🚀 ~ changeType ~ e:', e)
console.log('🚀 ~ changeType ~ e:', e)
if (!e) return
//
const selectType = this.typeListDev.find((item) => item.id == e)
@ -1096,6 +1176,11 @@ export default {
this.selectParams.num = selectType.num
this.selectParams.preNum = selectType.num
this.selectParams.useNum = selectType.num
this.selectParams.numList = []
this.selectParams.numIds = []
this.selectParams.standardIds = []
this.selectParams.passMaCodeDtoList = []
this.selectParams.manageType = selectType.manageType
console.log('🚀 ~ changeType ~ this.selectParams:', this.selectParams)
//
const isRepeat = this.leaseApplyDetails.find((item) => item.typeId == selectType.id)
@ -1104,20 +1189,18 @@ export default {
this.$message.error('当前设备已添加,不可重复添加!')
return
}
const { data: outNum } = await getPreAuditNum({
typeId: selectType.id,
agreementId: this.queryParams.agreementId,
})
console.log('🚀 ~ deviceTypeChange ~ outNum:', outNum)
this.selectParams.outNum = outNum
this.leaseApplyDetails.push({...this.selectParams})
// const { data: outNum } = await getPreAuditNum({
// typeId: selectType.id,
// agreementId: this.queryParams.agreementId,
// })
// console.log('🚀 ~ deviceTypeChange ~ outNum:', outNum)
// this.selectParams.outNum = outNum
this.leaseApplyDetails.push({ ...this.selectParams })
console.log('🚀 ~ changeType ~ this.leaseApplyDetails:', this.leaseApplyDetails)
},
////
handelTableItemData(node) {
const template = JSON.parse(
JSON.stringify(this.leaseApplyDetailsItem),
)
const template = JSON.parse(JSON.stringify(this.leaseApplyDetailsItem))
template.createBy = this.createBy
template.typeId = node.data.typeId
template.companyId = node.data.companyId
@ -1130,6 +1213,168 @@ export default {
template.useNum = node.data.useNum
return template
},
resetMaCode() {
this.maCode = ''
this.getMachineList()
},
//
getMachineList(row) {
console.log('🚀 ~ getMachineList ~ row:', row.typeId)
this.typeId = row.typeId
const params = {
unitId: this.queryParams.unitId,
projectId: this.queryParams.proId,
typeId: this.typeId,
maCode: this.maCode,
}
getMachineById(params).then((res) => {
this.machineList = res.data
// this.machineList row.numList id
this.machineList.forEach((item) => {
if (row.numList.some((item2) => item2.maId == item.maId)) {
this.$nextTick(() => {
this.$refs.codeTableList.toggleRowSelection(item, true)
})
}
})
})
},
//
handleSelect(row, type) {
console.log('🚀 ~ handleSelect ~ row:', row)
if (!row.numList) row.numList = []
if (!row.numIds) row.numIds = []
if (!row.standardIds) row.standardIds = []
if (!row.fileList) row.fileList = []
this.dialogType = type
this.selectedList = []
this.currentRow = row
if (type == 1) {
this.getMachineList(row)
} else {
if (row.numList.length == 0) {
//
this.$message({
message: '请先选择编码退料数量',
type: 'warning',
duration: 1000,
})
return
}
this.machineList = [...row.numList]
this.machineList.forEach((item) => {
if (row.passMaCodeDtoList && row.passMaCodeDtoList.some((item2) => item2.maId == item.maId)) {
this.$nextTick(() => {
this.$refs.codeTableList.toggleRowSelection(item, true)
})
}
})
}
// this.calculateDifference(row)
this.openDialog = true
console.log('🚀 ~ handleSelect ~ row:', row)
},
//
codeSelectionChange(selection) {
console.log('🚀 ~ codeSelectionChange ~ selection:', selection)
this.selectedList = selection
},
//
dialogConfirm() {
if (this.dialogType == 1) {
this.currentRow.numList = this.selectedList
this.currentRow.numIds = this.selectedList.map((item) => {
return item.maId
})
this.currentRow.standardIds = []
this.currentRow.passMaCodeDtoList = []
} else {
this.currentRow.passMaCodeDtoList = this.selectedList
this.currentRow.standardIds = this.selectedList.map((item) => {
return item.maId
})
}
if (this.currentRow.numIds.length > this.currentRow.useNum) {
this.$message({
message: '不能超过使用数量',
type: 'warning',
})
this.currentRow.numIds = []
this.currentRow.numList = []
return
}
this.openDialog = false
},
handleRemove(file, fileList, row) {
console.log(file, fileList)
console.log('🚀 ~ handleRemove ~ row:', row)
row.fileList = fileList.map((item) => {
let fileName = ''
let fileUrl = ''
if (item.response) {
fileName = item.response.data.fileName
fileUrl = item.response.data.fileUrl
} else {
fileName = item.fileName
fileUrl = item.fileUrl
}
return {
typeId: row.typeId,
fileName: fileName,
fileUrl: fileUrl,
}
})
console.log('🚀 ~ handleRemove ~ row.fileList:', row.fileList)
},
handlePreview(file) {
console.log('🚀 ~ handlePreview ~ file:', file)
if (file.response) {
window.open(file.response.data.fileUrl)
} else {
window.open(file.fileUrl)
}
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 5 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`,
)
},
beforeUpload(file) {
const isLtMB = file.size / 1024 / 1024 < 20
if (!isLtMB) {
this.$message.error('上传文件大小不能超过 20MB!')
}
return isLtMB
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name} `)
},
handleSuccess(res, file, fileList, row) {
console.log('🚀 ~ handleSuccess ~ res:', res)
console.log('🚀 ~ handleSuccess ~ file:', file)
console.log('🚀 ~ handleSuccess ~ fileList:', fileList)
console.log('🚀 ~ handleSuccess ~ row:', row)
if (res.code == 200) {
if (!row.fileList) {
row.fileList = []
}
row.fileList.push({
typeId: row.typeId,
fileName: res.data.fileName,
fileUrl: res.data.fileUrl,
})
}
console.log('🚀 ~ row.fileList=fileList.map ~ row.fileList:', row.fileList)
},
getLength(arr) {
return Array.isArray(arr) ? arr.length : 0
},
calculateDifference(row) {
return this.getLength(row.numList) - this.getLength(row.passMaCodeDtoList)
},
},
}
</script>

View File

@ -233,7 +233,7 @@
>
编辑
</el-button>
<el-button
<!-- <el-button
size="medium"
type="text"
@click="handleReturn(scope.row, 'see')"
@ -242,7 +242,7 @@
v-if="scope.row.taskStatus != '40'"
>
退料
</el-button>
</el-button> -->
<el-button
size="medium"
type="text"
@ -495,7 +495,7 @@ export default {
// },
// })
this.$emit('receiveView', row.id)
this.$emit('receiveView', row.id, row.taskId)
},
//退
handleReturn(row) {

View File

@ -62,11 +62,14 @@ export default {
this.isEdit = true
},
//
receiveView(id) {
receiveView(id, taskId) {
this.pageContent = '退料详情'
this.rejectId = id
this.rejectTaskId = taskId
this.isView = true
this.isShowComponent = 'HandlePage'
this.isEdit = true
// this.isShowComponent = 'HandlePage'
this.isShowComponent = 'AddReturn'
},
// 退
receiveReturn(id, taskId,agreementId) {

View File

@ -6,34 +6,30 @@
<el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
</el-select>
</el-form-item>
<el-form-item label="结算工程" prop="projectIds">
<el-cascader
v-model="queryParams.projectIds"
:options="projectList"
:props="{ checkStrictly: true, multiple: true, label: 'projectName', value: 'projectId' }"
clearable
filterable
></el-cascader>
<el-form-item label="结算工程" prop="projectId">
<el-select v-model="queryParams.projectId" placeholder="请选择结算工程" clearable filterable>
<el-option
v-for="item in projectList"
:key="item.projectId"
:label="item.projectName"
:value="item.projectId"
/>
</el-select>
</el-form-item>
<el-form-item label="协议号" prop="agreementNo">
<el-input v-model="queryParams.agreementNo" placeholder="请输入协议号"></el-input>
<el-form-item label="协议号" prop="agreementCode">
<el-input v-model="queryParams.agreementCode" placeholder="请输入协议号"></el-input>
</el-form-item>
<!-- 推送月份 -->
<el-form-item label="推送月份" prop="pushMonth">
<el-form-item label="推送月份" prop="month">
<el-date-picker
v-model="queryParams.pushMonth"
v-model="queryParams.month"
type="month"
placeholder="选择月份"
value-format="yyyy-MM"
></el-date-picker>
</el-form-item>
<el-form-item label="结算状态" prop="sltStatus">
<el-select v-model="queryParams.sltStatus" placeholder="请选择结算状态" clearable filterable>
<el-option v-for="item in statusList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="审核状态" prop="auditStatus">
<el-select v-model="queryParams.auditStatus" placeholder="请选择审核状态" clearable filterable>
<el-form-item label="审核状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择审核状态" clearable filterable>
<el-option v-for="item in auditList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
@ -45,7 +41,7 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain size="mini" icon="el-icon-download" @click="handleExport">导出数据</el-button>
<el-button type="warning" plain size="mini" icon="el-icon-download" @click="handleExport">导出数据</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain size="mini" icon="el-icon-plus" @click="handleSubmit">提交</el-button>
@ -54,22 +50,29 @@
</el-row>
<el-table v-loading="loading" :data="agreementList" border ref="tableRef" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="selection" width="55" align="center" :selectable="(row) => row.status != 1" />
<el-table-column
align="center"
label="序号"
type="index"
:index="indexContinuation(queryParams.pageNum, queryParams.pageSize)"
/>
<el-table-column label="协议号" align="center" prop="agreementNo" show-overflow-tooltip />
<el-table-column label="协议号" align="center" prop="agreementCode" show-overflow-tooltip />
<el-table-column label="单位名称" align="center" prop="unitName" show-overflow-tooltip />
<el-table-column label="工程名称" align="center" prop="projectName" show-overflow-tooltipp />
<el-table-column label="推送月份" align="center" prop="costData" show-overflow-tooltip />
<el-table-column label="推送月份" align="center" prop="month" show-overflow-tooltip />
<el-table-column label="租赁费用" align="center">
<template slot-scope="{ row }">
<span class="text-blue">{{ row.leaseExpense }}</span>
<span class="text-blue">{{ row.leaseMoney }}</span>
</template>
</el-table-column>
<el-table-column label="审核状态" align="center">
<template slot-scope="{ row }">
<el-tag v-if="row.status == 1" type="success">已审核</el-tag>
<el-tag v-else type="warning">未审核</el-tag>
</template>
</el-table-column>
<el-table-column label="费用承担放" align="center" prop="bearPart" show-overflow-tooltip />
</el-table>
<pagination
@ -84,7 +87,7 @@
<script>
import { getUnitList, getProjectList } from '@/api/claimAndRefund/receive'
import { getSltAgreementInfo } from '@/api/cost/cost'
import { getSltMonthInfoApi, auditSltApi } from '@/api/cost/cost'
export default {
data() {
@ -101,44 +104,39 @@ export default {
unitList: [],
//
projectList: [],
statusList: [
{ id: '', name: '全部' },
{ id: '0', name: '结算中' },
{ id: '1', name: '已结算' },
], //
auditList: [
{ id: '', name: '全部' },
{ id: '0', name: '未审核' },
{ id: '1', name: '已审核' },
],
//
agreementList: [
{
agreementCode: '测试',
leaseExpense: 100.89,
},
],
agreementList: [],
//
dateRange: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
keyWord: undefined,
sltStatus: '',
status: '',
unitId: '',
projectId: '',
agreementNo: '', //
pushMonth: '', //
agreementCode: '', //
month: '', //
},
}
},
created() {
// this.getList()
this.getCurrentMonth()
this.getList()
this.getUnitList()
this.getProjectList()
},
methods: {
getCurrentMonth() {
const now = new Date()
const year = now.getFullYear()
const month = String(now.getMonth() + 1).padStart(2, '0')
this.queryParams.month = `${year}-${month}`
},
// ,getUnitList, getProjectList
getUnitList() {
getUnitList().then((response) => {
@ -155,7 +153,7 @@ export default {
getList() {
console.log('🚀 ~ getList ~ :', this.queryParams)
this.loading = true
getSltAgreementInfo(this.queryParams)
getSltMonthInfoApi(this.queryParams)
.then((response) => {
this.agreementList = response.rows
this.total = response.total
@ -180,14 +178,45 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item)
this.ids = selection.map((item) => item.id)
console.log('🚀 ~ handleSelectionChange ~ this.ids:', this.ids)
},
//
handleExport() {},
handleExport() {
this.download(
'material/sltMonthInfo/export',
{
...this.queryParams
},
`费用推送审核_${new Date().getTime()}.xlsx`,
)
},
//
handleSubmit() {
console.log('🚀 ~ handleSubmit ~ handleSubmit:')
//
this.$confirm('确认提交吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
//
auditSltApi({ dataCondition: this.ids })
.then((res) => {
if (res.code === 200) {
this.$message({
type: 'success',
message: '提交成功!',
})
this.getList()
}
})
.catch((err) => {
console.log('🚀 ~ err:', err)
})
})
.catch(() => {})
},
},
}