优化领料申请编辑回显bug,完善退料接收编码设备报废图片上传,原因填写等问题

This commit is contained in:
BianLzhaoMin 2024-06-24 14:29:24 +08:00
parent e64e333dc9
commit 3b6cb450d1
10 changed files with 455 additions and 98 deletions

View File

@ -8,6 +8,7 @@
:inline="true" :inline="true"
v-show="showSearch" v-show="showSearch"
label-width="100px" label-width="100px"
:disabled="!isAdd && !isEdit"
> >
<el-row> <el-row>
<el-form-item label="领料单位" prop="unitId"> <el-form-item label="领料单位" prop="unitId">
@ -50,8 +51,8 @@
<el-input <el-input
maxlength="50" maxlength="50"
v-model="queryParams.agreementCode" v-model="queryParams.agreementCode"
disabled
style="width: 240px" style="width: 240px"
disabled
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="设备类型" prop="companyId"> <el-form-item label="设备类型" prop="companyId">
@ -59,10 +60,10 @@
@change="selDeviceTypeChange" @change="selDeviceTypeChange"
style="width: 240px" style="width: 240px"
v-model="queryParams.companyId" v-model="queryParams.companyId"
:disabled="leaseApplyDetails.length > 0"
placeholder="请选择设备类型" placeholder="请选择设备类型"
clearable clearable
filterable filterable
:disabled="isEdit"
> >
<el-option label="机具设备" value="101"></el-option> <el-option label="机具设备" value="101"></el-option>
<el-option label="调试设备" value="102"></el-option> <el-option label="调试设备" value="102"></el-option>
@ -78,7 +79,6 @@
ref="deviceTypeCascader" ref="deviceTypeCascader"
filterable filterable
style="width: 240px" style="width: 240px"
:disabled="isEdit && !isView"
></el-cascader> ></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="现场领料人" prop="leasePerson"> <el-form-item label="现场领料人" prop="leasePerson">
@ -104,7 +104,7 @@
<el-input <el-input
maxlength="100" maxlength="100"
v-model="queryParams.leaseApplyInfo.remark" v-model="queryParams.leaseApplyInfo.remark"
placeholder="请输入备注" :placeholder="!isAdd ? '' : '请输入备注'"
clearable clearable
rows="1" rows="1"
type="textarea" type="textarea"
@ -132,7 +132,7 @@
plain plain
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
v-if="isView" v-if="isAdd || isEdit"
@click="handleAdd" @click="handleAdd"
> >
保存 保存
@ -173,12 +173,13 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-input <el-input
v-model.number="scope.row.preNum" v-model.number="scope.row.preNum"
placeholder="请输入预领数量" :placeholder="!isAdd && !isEdit ? '' : '请输入预领数量'"
type="number" type="number"
min="1" min="1"
@input="checkNum(scope.row)" @input="checkNum(scope.row)"
clearable clearable
style="width: 100%" style="width: 100%"
:disabled="!isAdd && !isEdit"
/> />
</template> </template>
</el-table-column> </el-table-column>
@ -187,9 +188,10 @@
<el-input <el-input
maxlength="100" maxlength="100"
v-model="scope.row.remark" v-model="scope.row.remark"
placeholder="请输入备注" :placeholder="!isAdd && !isEdit ? '' : '请输入备注'"
clearable clearable
style="width: 100%" style="width: 100%"
:disabled="!isAdd && !isEdit"
/> />
</template> </template>
</el-table-column> </el-table-column>
@ -198,7 +200,7 @@
align="center" align="center"
fixed="right" fixed="right"
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
v-if="isView" v-if="isAdd || isEdit"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button--> <!-- <el-button-->
@ -253,6 +255,12 @@ import { getInfo } from '@/api/login'
export default { export default {
name: 'ReceiveApplyAdd', name: 'ReceiveApplyAdd',
props: { props: {
isAdd: {
type: Boolean,
default: () => {
return false
},
},
isView: { isView: {
type: Boolean, type: Boolean,
default: () => { default: () => {
@ -466,6 +474,8 @@ export default {
deviceTypeTreeNew: [], deviceTypeTreeNew: [],
} }
}, },
created() {},
mounted() { mounted() {
this.GetUserInfo() this.GetUserInfo()
@ -475,21 +485,20 @@ export default {
this.GetDeviceTypeTree() this.GetDeviceTypeTree()
// this.getList(); // this.getList();
if (this.$route.query.taskId && !this.$route.query.isBack) { // if (this.$route.query.taskId && !this.$route.query.isBack) {
this.GetTaskDetail(this.$route.query.taskId) // this.GetTaskDetail(this.$route.query.taskId)
} // }
if (this.$route.query.taskId && this.$route.query.isBack) { // if (this.$route.query.taskId && this.$route.query.isBack) {
this.GetTaskDetail2(this.$route.query.taskId) // this.GetTaskDetail2(this.$route.query.taskId)
} // }
// this.taskId = this.$route.query.taskId // this.taskId = this.$route.query.taskId
// this.isEdit = this.$route.query.isEdit // this.isEdit = this.$route.query.isEdit
// console.log(typeof(this.isEdit))
// this.$set('isEdit',this.$route.query.isEdit)
this.taskId = this.viewTaskId this.taskId = this.viewTaskId
if (this.taskId) { if (this.taskId) {
this.GetTaskDetail(this.taskId) this.GetTaskDetail(this.taskId)
} }
// console.log(typeof(this.isEdit))
// this.$set('isEdit',this.$route.query.isEdit)
}, },
methods: { methods: {
@ -526,6 +535,13 @@ export default {
level: 4, level: 4,
} }
const res = await getDeviceTypeTree(params) const res = await getDeviceTypeTree(params)
if (this.isEdit) {
console.log(this.queryParams.companyId, '--------------------')
this.deviceTypeTreeNew = res.data.filter(
(e) => e.companyId == this.queryParams.companyId,
)
}
this.deviceTypeTree = res.data this.deviceTypeTree = res.data
}, },
// id // id
@ -835,10 +851,6 @@ export default {
// //
selDeviceTypeChange(val) { selDeviceTypeChange(val) {
console.log(val, '设备类型选择-----')
console.log(this.deviceTypeTree, '树形数据源--')
this.deviceTypeTreeNew = this.deviceTypeTree.filter( this.deviceTypeTreeNew = this.deviceTypeTree.filter(
(e) => e.companyId == val, (e) => e.companyId == val,
) )

View File

@ -304,7 +304,8 @@
(scope.row.taskStatus == 98 || (scope.row.taskStatus == 98 ||
scope.row.taskStatus == 99 || scope.row.taskStatus == 99 ||
scope.row.taskStatus == 100) && scope.row.taskStatus == 100) &&
scope.row.createBy === currentUserName (scope.row.createBy === currentUserName ||
scope.row.createBy == currentUserId)
" "
@click="handleUpdate2(scope.row)" @click="handleUpdate2(scope.row)"
v-hasPermi="['picking:apply:reject:submit']" v-hasPermi="['picking:apply:reject:submit']"
@ -397,6 +398,7 @@ export default {
unitList: [], // unitList: [], //
proList: [], // proList: [], //
currentUserName: sessionStorage.getItem('userName'), currentUserName: sessionStorage.getItem('userName'),
currentUserId: sessionStorage.getItem('userId'),
taskStatusList: [ taskStatusList: [
{ name: '待分公司审核', id: 30 }, { name: '待分公司审核', id: 30 },
{ name: '待分管部门审核', id: 31 }, { name: '待分管部门审核', id: 31 },
@ -503,7 +505,8 @@ export default {
// }, // },
// }) // })
this.$emit('addPicking') // this.$emit('addPicking')
this.$emit('handlePicking', 1)
}, },
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
@ -523,8 +526,8 @@ export default {
// .then(() => { // .then(() => {
// this.$tab.refreshPage() // this.$tab.refreshPage()
// }) // })
// this.$emit('viewPicking', row.taskId, this.queryParams)
this.$emit('viewPicking', row.taskId, this.queryParams) this.$emit('handlePicking', 3, row.taskId)
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
@ -535,7 +538,8 @@ export default {
// isEdit: true, // isEdit: true,
// }, // },
// }) // })
this.$emit('editPicking', row.taskId, this.queryParams) // this.$emit('editPicking', row.taskId, this.queryParams)
this.$emit('handlePicking', 2, row.taskId)
}, },
/** 驳回按钮操作 */ /** 驳回按钮操作 */
handleUpdate2(row) { handleUpdate2(row) {
@ -547,12 +551,13 @@ export default {
// isBack: true, // isBack: true,
// }, // },
// }) // })
this.$emit( // this.$emit(
'editPicking', // 'editPicking',
row.taskId, // row.taskId,
this.queryParams, // this.queryParams,
row.taskStatus, // row.taskStatus,
) // )
this.$emit('handlePicking', 2, row.taskId)
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
async handleDelete(row) { async handleDelete(row) {

View File

@ -9,6 +9,7 @@
<component <component
:is="isShowComponent" :is="isShowComponent"
:viewTaskId="viewTaskId" :viewTaskId="viewTaskId"
:isAdd="isAdd"
:isView="isView" :isView="isView"
:isEdit="isEdit" :isEdit="isEdit"
:rejectTaskStatus="rejectTaskStatus" :rejectTaskStatus="rejectTaskStatus"
@ -17,6 +18,7 @@
@viewPicking="viewPicking" @viewPicking="viewPicking"
@editPicking="editPicking" @editPicking="editPicking"
@goBackPage="goBack" @goBackPage="goBack"
@handlePicking="handlePicking"
/> />
</div> </div>
</template> </template>
@ -37,9 +39,13 @@ export default {
pageContent: '新增领料任务', pageContent: '新增领料任务',
viewTaskId: '', viewTaskId: '',
rejectTaskStatus: '', rejectTaskStatus: '',
isView: false,
isEdit: false, isEdit: false,
routerParams: {}, routerParams: {},
isAdd: false,
isView: false,
isEdit: false,
} }
}, },
methods: { methods: {
@ -71,6 +77,32 @@ export default {
this.isShowComponent = 'AddPicking' this.isShowComponent = 'AddPicking'
this.routerParams = routerParams this.routerParams = routerParams
}, },
//
handlePicking(type, taskId) {
switch (type) {
case 1:
this.pageContent = '新增领料任务'
this.isAdd = true
this.isEdit = false
this.viewTaskId = ''
break
case 2:
this.pageContent = '领料任务编辑'
this.isAdd = false
this.isEdit = true
this.viewTaskId = taskId
break
case 3:
this.pageContent = '领料任务详情'
this.isAdd = false
this.isEdit = false
this.viewTaskId = taskId
break
}
this.isShowComponent = 'AddPicking'
},
goBack() { goBack() {
this.isShowComponent = 'Home' this.isShowComponent = 'Home'
}, },

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="app-container"> 退料驳回管理 </div> <div> 退料驳回管理 </div>
</template> </template>
<script> <script>

View File

@ -88,7 +88,9 @@
align="center" align="center"
width="80" width="80"
type="index" type="index"
:index="indexContinuation(queryParams.pageNum, queryParams.pageSize)" :index="
indexContinuation(queryParams.pageNum, queryParams.pageSize)
"
> >
<!-- <template slot-scope="scope"> <!-- <template slot-scope="scope">
<span>{{ <span>{{
@ -318,7 +320,9 @@
align="center" align="center"
width="80" width="80"
type="index" type="index"
:index="indexContinuation(codeQuery.pageNum, codeQuery.pageSize)" :index="
indexContinuation(codeQuery.pageNum, codeQuery.pageSize)
"
> >
<!-- <template slot-scope="scope"> <!-- <template slot-scope="scope">
<span>{{ <span>{{
@ -1164,7 +1168,7 @@ export default {
saveCodeBack(row, type) { saveCodeBack(row, type) {
if (this.returnNum == 0) { if (this.returnNum == 0) {
this.$modal.msgError('退料数量为零,无法操作!') this.$modal.msgError('退料数量为零,无法操作!')
} else if (type == 1 || type == 2 || type == 3) { } else if (type == 1 || type == 2) {
let arr = [ let arr = [
{ {
parentId: this.codeQuery.parentId, parentId: this.codeQuery.parentId,
@ -1190,8 +1194,8 @@ export default {
} }
}) })
} else { } else {
// this.currentCode = row.maCode this.currentCode = row.maCode
// this.innerVisible = true this.innerVisible = true
} }
}, },
// //
@ -1204,7 +1208,7 @@ export default {
saveCodeBackBatch(type) { saveCodeBackBatch(type) {
if (this.codeSelectList.length > this.returnNum) { if (this.codeSelectList.length > this.returnNum) {
this.$modal.msgError('退料总量已大于待退料数量!') this.$modal.msgError('退料总量已大于待退料数量!')
} else if (type == 1 || type == 2 || type == 3) { } else if (type == 1 || type == 2) {
let arr = [] let arr = []
arr = this.codeSelectList.map((item) => { arr = this.codeSelectList.map((item) => {
return { return {
@ -1233,12 +1237,12 @@ export default {
} }
}) })
} else { } else {
// if (this.codeSelectList.length < 0) { if (this.codeSelectList.length < 0) {
// this.$modal.msgError('') this.$modal.msgError('请先勾选数据!')
// } else { } else {
// this.scrapAll = true this.scrapAll = true
// this.innerVisible = true this.innerVisible = true
// } }
} }
}, },

View File

@ -0,0 +1,124 @@
import {
getUnitInfoSelectApi,
listPartTypeApi,
} from '@/api/repairTest/repair'
import { getProjectList } from '@/api/claimAndRefund/receive'
let unitList = []
let proList = []
let typeList = []
export const config = {
handleColShow: true, // 是否显示操作列
pageShow: true, // 是否显示分页组件
isSelShow: true,// 表格是否需要复选框
isFormShow: true, // 是否显示表单查询组件
handleWidth: '160px', // 操作列宽度
formLabel: [
{ f_label: '关键字', f_model: 'keyword', f_type: 'ipt' },
{ f_label: '单位名称', f_model: 'backUnit', f_type: 'sel', f_selList: [] },
{ f_label: '工程名称', f_model: 'backPro', f_type: 'sel', f_selList: [] },
{ f_label: '工机具类型', f_model: 'type', f_type: 'selCas', f_selList: [], optionProps: { value: 'id', } },
],
columnsList: [
// { t_width: '55px', t_props: '', t_label: '序号' },
{ t_props: 'scrapNum', t_label: '预报废单号' },
{ t_props: 'scrapNum', t_label: '退料单号' },
{ t_props: 'repairNum', t_label: '单位名称' },
{ t_props: 'repairNum', t_label: '工程名称' },
{ t_props: 'itemType', t_label: '设备类型' },
{ t_props: 'createBy', t_label: '任务创建人' },
{ t_props: 'createTime', t_label: '任务创建时间' },
// { t_props: 'createTime', t_label: '审批状态' },
{ t_props: 'createTime', t_label: '驳回原因' },
],
routerParams: ''
}
export const dialogConfig = {
outerWidth: '70%',
outerTitle: '',
outerVisible: false,
innerWidth: '50%',
innerTitle: '',
innerVisible: false,
handleColShow: false, // 是否显示操作列
pageShow: true, // 是否显示分页组件
isSelShow: false,// 表格是否需要复选框
isFormShow: true, // 是否显示表单查询组件
formLabel: [
{ f_label: '类型名称', f_model: 'keywords', f_type: 'ipt' },
],
columnsList: [
// { t_width: '55px', t_props: '', t_label: '序号' },
{ t_width: '', t_props: 'machineTypeName', t_label: '设备类型' },
{ t_width: '', t_props: 'specificationType', t_label: '规格型号' },
{ t_width: '', t_props: 'maCode', t_label: '设备编码' },
{ t_width: '', t_props: 'scrapNum', t_label: '数量' },
{ t_width: '', t_props: 'remark', t_label: '驳回原因' },
],
}
// 驳回退料页面
export const configReturn = {
handleColShow: true, // 是否显示操作列
pageShow: true, // 是否显示分页组件
isSelShow: false,// 表格是否需要复选框
isFormShow: true, // 是否显示表单查询组件
handleWidth: '160px', // 操作列宽度
formLabel: [
{ f_label: '关键字', f_model: 'keyword', f_type: 'ipt' },
{ f_label: '类型名称', f_model: 'backUnit', f_type: 'sel', f_selList: [] },
{ f_label: '规格型号', f_model: 'backPro', f_type: 'sel', f_selList: [] },
],
columnsList: [
// { t_width: '55px', t_props: '', t_label: '序号' },
{ t_props: 'scrapNum', t_label: '类型名称' },
{ t_props: 'scrapNum', t_label: '规格型号' },
{ t_props: 'repairNum', t_label: '退料数量' },
{ t_props: 'repairNum', t_label: '合格数量' },
{ t_props: 'itemType', t_label: '维修数量' },
{ t_props: 'createBy', t_label: '预报废数量' },
{ t_props: 'createTime', t_label: '状态' },
],
routerParams: ''
}
export const getSelList = () => {
new Promise(async (resolve) => {
const { data: unitRes } = await getUnitInfoSelectApi()
unitList = unitRes.map((e) => {
e.value = e.unitId
e.label = e.unitName
return e
})
const { data: proRes } = await getProjectList()
proList = proRes.map((e) => {
e.value = e.projectId
e.label = e.projectName
return e
})
const { data: typeRes } = await listPartTypeApi()
typeList = typeRes
resolve()
}).then(() => {
config.formLabel.map((item) => {
if (item.f_model === 'backUnit') {
item.f_selList = unitList
return item
}
if (item.f_model === 'backPro') {
item.f_selList = proList
return item
}
if (item.f_model === 'type') {
item.f_selList = typeList
return item
}
})
}).catch(() => {
})
}

View File

@ -0,0 +1,87 @@
<template>
<!-- 退料报废页面 -->
<div>
<TableModel :config="config">
<template slot="export">
<el-row class="mb8">
<el-button
type="success"
plain
icon="el-icon-download"
size="mini"
>导出数据</el-button
>
</el-row>
</template>
<!-- 列表操作栏 -->
<template slot="handle" slot-scope="{ data }">
<el-button size="mini" type="text" @click="handlePreview(data)">
查看
</el-button>
<el-button
size="mini"
type="text"
@click="handleRejectReturn(data)"
>
驳回退料
</el-button>
</template>
</TableModel>
<DialogModel
:dialogConfig="dialogConfig"
@closeDialogOuter="closeDialogOuter"
@closeDialogInner="closeDialogInner"
>
<template slot="outerContent">
<TableModel :config="dialogConfig"></TableModel>
</template>
</DialogModel>
</div>
</template>
<script>
import TableModel from '@/components/TableModel'
import DialogModel from '@/components/DialogModel'
import { config, dialogConfig, getSelList } from './config.js'
export default {
components: {
TableModel,
DialogModel,
},
data() {
return {
config,
dialogConfig,
getSelList,
}
},
created() {
this.getSelList()
},
methods: {
/* 查看 */
handlePreview() {
console.log('查看')
this.dialogConfig.outerTitle = '查看'
this.dialogConfig.outerVisible = true
},
/* 维修 */
handleRejectReturn() {
console.log('驳回退料')
this.$emit('openReturnPage')
},
/* 外层弹框关闭 */
closeDialogOuter() {
this.dialogConfig.outerVisible = false
},
/* 内层弹框关闭 */
closeDialogInner() {
this.dialogConfig.innerVisible = false
},
},
}
</script>
<style></style>

View File

@ -0,0 +1,61 @@
<template>
<!-- 报废驳回 -->
<div>
<PageHeader :pageContent="pageContent" @goBack="goBack" />
<TableModel :config="configReturn">
<template slot="export">
<el-row class="mb8">
<el-button
type="success"
plain
icon="el-icon-download"
size="mini"
>完成退料</el-button
>
</el-row>
</template>
<!-- 列表操作栏 -->
<template slot="handle" slot-scope="{ data }">
<el-button size="mini" type="text" @click="handlePreview(data)">
查看
</el-button>
<el-button
size="mini"
type="text"
@click="handleEditReturn(data)"
>
编辑退料
</el-button>
<el-button size="mini" type="text" @click="handleRevoke(data)">
撤回
</el-button>
</template>
</TableModel>
</div>
</template>
<script>
import PageHeader from '@/components/pageHeader'
import TableModel from '@/components/TableModel'
import DialogModel from '@/components/DialogModel'
import { configReturn } from './config.js'
export default {
components: {
PageHeader,
TableModel,
DialogModel,
},
data() {
return {
pageContent: '驳回退料',
configReturn,
}
},
methods: {
goBack() {
this.$emit('closeReturnPage')
},
},
}
</script>

View File

@ -0,0 +1,32 @@
<template>
<div class="app-container">
<Home @openReturnPage="openReturnPage" v-if="isHome" />
<Return @closeReturnPage="closeReturnPage" v-else />
</div>
</template>
<script>
import Home from './component/home.vue'
import Return from './component/return.vue'
export default {
components: {
Home,
Return,
},
data() {
return {
isHome: true,
}
},
methods: {
openReturnPage() {
this.isHome = false
},
closeReturnPage() {
this.isHome = true
},
},
}
</script>

View File

@ -79,61 +79,61 @@
</template> </template>
<script> <script>
import TableModel from '@/components/TableModel' import TableModel from '@/components/TableModel'
import DialogModel from '@/components/DialogModel' import DialogModel from '@/components/DialogModel'
import SelDepart from '../../component/selDepart.vue' import SelDepart from '../../component/selDepart.vue'
import { config, dialogConfig } from './config' import { config, dialogConfig } from './config'
import { receiveView } from '@/api/claimAndRefund/return' import { receiveView } from '@/api/claimAndRefund/return'
export default { export default {
name: 'auditingReturn', name: 'auditingReturn',
components: { components: {
TableModel, TableModel,
DialogModel, DialogModel,
SelDepart, SelDepart,
}, },
props: { props: {
sendParams: { sendParams: {
type: Object, type: Object,
default: () => { default: () => {
return {} return {}
},
}, },
}, },
data() { },
return { data() {
config, return {
dialogConfig, config,
receiveView, dialogConfig,
} receiveView,
}
},
methods: {
/* 按钮操作 */
handlePreview(row) {
this.dialogConfig.outerTitle = '查看'
this.dialogConfig.handleColShow = false
this.dialogConfig.outerWidth = '70%'
this.dialogConfig.outerVisible = true
}, },
methods: { handleEdit(row) {
/* 按钮操作 */ this.dialogConfig.outerTitle = '编辑退料'
handlePreview(row) { this.dialogConfig.handleColShow = true
this.dialogConfig.outerTitle = '查看' this.dialogConfig.outerWidth = '70%'
this.dialogConfig.handleColShow = false this.dialogConfig.outerVisible = true
this.dialogConfig.outerWidth = '70%' },
this.dialogConfig.outerVisible = true handleRevoke(row) {},
},
handleEdit(row) {
this.dialogConfig.outerTitle = '编辑退料'
this.dialogConfig.handleColShow = true
this.dialogConfig.outerWidth = '70%'
this.dialogConfig.outerVisible = true
},
handleRevoke(row) {},
getTableSelectionChange() {}, getTableSelectionChange() {},
closeDialog(val) { closeDialog(val) {
this.dialogConfig.outerVisible = val this.dialogConfig.outerVisible = val
},
/* 外层弹框关闭 */
closeDialogOuter() {
this.dialogConfig.outerVisible = false
},
/* 内层弹框关闭 */
closeDialogInner() {
this.dialogConfig.innerVisible = false
},
}, },
} /* 外层弹框关闭 */
closeDialogOuter() {
this.dialogConfig.outerVisible = false
},
/* 内层弹框关闭 */
closeDialogInner() {
this.dialogConfig.innerVisible = false
},
},
}
</script> </script>