退料接收
This commit is contained in:
parent
cb178bb9b0
commit
fbdd534e80
|
|
@ -228,3 +228,11 @@ export function endBack(data) {
|
|||
})
|
||||
}
|
||||
|
||||
// 再用编码
|
||||
export function getMachineById(query) {
|
||||
return request({
|
||||
url: '/material/backApply/getMachineById',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
|
@ -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
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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(() => {})
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue