lsun 协议管理

This commit is contained in:
lSun 2024-11-13 18:12:12 +08:00
parent 86f2803c26
commit e8b2118da1
2 changed files with 523 additions and 1265 deletions

View File

@ -0,0 +1,51 @@
import request from '@/utils/request'
// 查询修试审核任务列表
export function getQuestListApi(query) {
return request({
url: '/material/details/questList',
method: 'get',
params: query
})
}
// 查询修试审核任务列表
export function getRepairAuditListApi(query) {
return request({
url: '/material/details/getRepairAuditList',
method: 'get',
params: query
})
}
export function addDetailsAuditApi(data) {
return request({
url: '/material/details/audit',
method: 'post',
// contentType: 'application/json',
data: data
})
}
//
export function getRepairRecord(query) {
return request({
url: '/material/details/getRepairRecord',
method: 'get',
params: query
})
}
//
export function getPartRecord(query) {
return request({
url: '/material/details/getPartRecord',
method: 'get',
params: query
})
}

View File

@ -18,87 +18,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="单位名称" prop="backUnit">
<el-select
v-model="queryParams.backUnit"
placeholder="请选择单位名称"
clearable
filterable
style="width: 240px"
>
<el-option
v-for="dict in unitInfoSelectList"
:key="dict.unitId"
:label="dict.unitName"
:value="dict.unitId"
/>
</el-select>
</el-form-item>
<el-form-item label="工程名称" prop="backPro">
<el-select
v-model="queryParams.backPro"
placeholder="请选择工程名称"
clearable
filterable
style="width: 240px"
>
<el-option
v-for="dict in projectSelectList"
:key="dict.projectId"
:label="dict.projectName"
:value="dict.projectId"
/>
</el-select>
</el-form-item>
<el-form-item label="工机具类型" prop="type">
<!-- <selectTree-->
<!-- ref="mychild"-->
<!-- style="width: 240px"-->
<!-- :treeList="deptList"-->
<!-- :treeProps="{-->
<!-- children: 'children',-->
<!-- label: 'label',-->
<!-- }"-->
<!-- nodeKey="id"-->
<!-- :defaultSelect="true"-->
<!-- :defaultData="defaultData"-->
<!-- :clearable="true"-->
<!-- :placeholder="'请选择'"-->
<!-- @handleNodeClick="selectDrop"-->
<!-- ></selectTree>-->
<Tree
ref="mychildSon"
:width="240"
:dataList="deptList"
@changeId="selectDrop"
></Tree>
</el-form-item>
<el-form-item label="修试审核单号" prop="backCode">
<el-input
v-model="queryParams.backCode"
placeholder="请选择修试审核单号"
clearable
maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="修试审核状态" prop="taskStatus">
<el-select
v-model="queryParams.taskStatus"
placeholder="请选择修试审核状态"
clearable
filterable
style="width: 240px"
>
<el-option
v-for="dict in dicSelectList"
:key="dict.id"
:label="dict.name"
:value="dict.id"
/>
</el-select>
</el-form-item>
<el-form-item label="任务创建时间">
<el-date-picker
@ -111,6 +30,7 @@
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@ -128,17 +48,30 @@
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
:disabled="multiple"
@click="checkClick"
>批量审核</el-button
>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="checkClick"-->
<!-- >通过</el-button-->
<!-- >-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="checkClick"-->
<!-- >驳回</el-button-->
<!-- >-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
@ -155,6 +88,7 @@
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="typeList"
@ -167,20 +101,10 @@
align="center"
:selectable="selectable"
/>
<el-table-column
label="序号"
align="center"
width="80"
type="index"
:index="
indexContinuation(queryParams.pageNum, queryParams.pageSize)
"
>
<!-- <template slot-scope="scope">
<span>{{
(queryParams.pageNum - 1) * 10 + scope.$index + 1
}}</span>
</template> -->
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column
label="修试审核单号"
@ -267,537 +191,20 @@
@pagination="getList"
/>
<!-- 添加或修改参数配置对话框 -->
<el-dialog
:title="dialogTitle"
:visible.sync="open"
width="1300px"
append-to-body
:before-close="onClose"
>
<el-form
:model="dialogQueryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-row>
<el-form-item label="关键字" prop="keyword">
<el-input
v-model="dialogQueryParams.keyword"
placeholder="请输入关键字"
:clearable="false"
maxlength="50"
style="width: 240px"
/>
</el-form-item>
<el-form-item label="机具名称" prop="typeName">
<!-- <treeselect
style="width: 250px"
v-model="dialogQueryParams.typeName"
:options="deptList"
:normalizer="normalizer"
placeholder="请选择类型名称"
/> -->
<selectTree
ref="mychildDialog"
style="width: 240px"
:treeList="deptList"
:treeProps="{
children: 'children',
label: 'label',
}"
nodeKey="id"
:defaultSelect="true"
:defaultData="defaultData"
:clearable="false"
:placeholder="'请选择'"
@handleNodeClick="selectDropDialog"
></selectTree>
</el-form-item>
<el-form-item label="规格型号" prop="type">
<selectTree
ref="mychildDialogTwo"
style="width: 240px"
:treeList="deptTypeList"
:treeProps="{
children: 'children',
label: 'label',
}"
nodeKey="id"
:defaultSelect="true"
:defaultData="defaultData"
:clearable="false"
:placeholder="'请选择'"
@handleNodeClick="selectDropDialogTwo"
></selectTree>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="getdialogList"
>查询</el-button
>
<el-button
icon="el-icon-refresh"
size="mini"
@click="resetQueryDialog"
>重置</el-button
>
</el-form-item>
</el-row>
</el-form>
<el-table
v-loading="loading"
:data="dialogList"
height="500px"
@selection-change="handleDialogSelectionChange"
>
<el-table-column
type="selection"
width="55"
align="center"
:selectable="selectableDialog"
/>
<!-- <el-table-column
label="序号"
align="center"
width="80"
type="index"
>
<template scope="scope">
<span>{{
(dialogQueryParams.pageNum - 1) * 10 +
scope.$index +
1
}}</span>
</template>
</el-table-column> -->
<el-table-column
align="center"
label="序号"
type="index"
:index="
indexContinuation(
queryParams.pageNum,
queryParams.pageSize,
)
"
/>
<el-table-column
label="机具名称"
align="center"
prop="machineTypeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="规格型号"
align="center"
prop="specificationType"
:show-overflow-tooltip="true"
/>
<el-table-column
label="编码"
align="center"
prop="maCode"
width="200"
:show-overflow-tooltip="true"
/>
<el-table-column
label="维修总量"
align="center"
prop="repairNum"
:show-overflow-tooltip="true"
/>
<el-table-column
label="维修数量"
align="center"
prop="repairedNum"
:show-overflow-tooltip="true"
/>
<el-table-column
label="报废数量"
align="center"
prop="scrapNum"
:show-overflow-tooltip="true"
/>
<el-table-column
label="状态"
align="center"
prop="status"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<span v-if="scope.row.status == '0'">未审核</span>
<span v-if="scope.row.status == '1'">通过</span>
<span v-if="scope.row.status == '2'">驳回</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200px"
>
<template slot-scope="scope">
<el-button
size="mini"
type="primary"
icon="el-icon-zoom-in"
@click="repairRecord(scope.row)"
>维修记录</el-button>
<!-- <el-button
size="mini"
type="warning"
icon="el-icon-circle-check"
@click="partRecord(scope.row)"
>配件详情</el-button> -->
</template>
</el-table-column>
</el-table>
<pagination
v-show="dialogTotal > 0"
:total="dialogTotal"
:page.sync="dialogQueryParams.pageNum"
:limit.sync="dialogQueryParams.pageSize"
@pagination="getdialogList"
/>
<div
slot="footer"
class="dialog-footer-btn"
style="text-align: center"
v-if="type == 'update' && dialogList.length !== 0"
>
<el-button
type="primary"
@click="submitForm(1)"
:disabled="dialogMultiple"
>通过</el-button
>
<el-button @click="returnSubmit(1)" :disabled="dialogMultiple"
>不通过</el-button
>
</div>
</el-dialog>
<!-- 维修记录 -->
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openRepairRecord"
append-to-body
width="1200px"
>
<el-table :data="repairRecordList" height="450px">
<el-table-column
label="序号"
align="center"
width="80"
type="index"
>
<template slot-scope="scope">
<span>{{
(repairRecordParams.pageNum - 1) * 10 +
scope.$index +
1
}}</span>
</template>
</el-table-column>
<el-table-column
label="维修内容"
align="center"
prop="repairContent"
:show-overflow-tooltip="true"
/>
<el-table-column
label="维修数量"
align="center"
prop="repairNum"
:show-overflow-tooltip="true"
/>
<el-table-column
label="维修人"
align="center"
prop="repairer"
:show-overflow-tooltip="true"
/>
<el-table-column
label="维修方式"
align="center"
prop="repairType"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<span v-if="scope.row.repairType == '1'">内部</span>
<span v-if="scope.row.repairType == '2'">返厂</span>
<span v-if="scope.row.repairType == '3'">报废</span>
</template>
</el-table-column>
<el-table-column
label="返厂名称"
align="center"
prop="supplier"
:show-overflow-tooltip="true"
/>
<el-table-column
label="报废原因"
align="center"
prop="scrapReason"
:show-overflow-tooltip="true"
/>
<el-table-column
label="报废数量"
align="center"
prop="scrapNum"
:show-overflow-tooltip="true"
/>
<el-table-column
label="报废类型"
align="center"
prop="scrapType"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<span v-if="scope.row.scrapType == '0'">自然报废</span>
<span v-if="scope.row.scrapType == '1'">人为报废</span>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- label="配件名称"-->
<!-- align="center"-->
<!-- prop="partName"-->
<!-- :show-overflow-tooltip="true"-->
<!-- />-->
<el-table-column
label="配件数量"
align="center"
prop="partNum"
:show-overflow-tooltip="true">
<template slot-scope="scope">
<span @click="partRecord(scope.row)"
style="color: blue;text-decoration: underline;">{{ scope.row.partNum }}</span>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- label="配件单价"-->
<!-- align="center"-->
<!-- prop="partPrice"-->
<!-- :show-overflow-tooltip="true"-->
<!-- />-->
<el-table-column
label="类型"
align="center"
prop="partType"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<span v-if="scope.row.partType == '0'">不收费</span>
<span v-if="scope.row.partType == '1'">收费</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="repairRecordTotal > 0"
:total="repairRecordTotal"
:page.sync="repairRecordParams.pageNum"
:limit.sync="repairRecordParams.pageSize"
@pagination="getRepairRecordList"
/>
</el-dialog>
<!-- 维修记录 -->
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openPartRecord"
append-to-body
width="1200px"
>
<el-table :data="partRecordList" height="450px">
<el-table-column
label="序号"
align="center"
width="80"
type="index"
>
<template slot-scope="scope">
<span>{{
(partRecordParams.pageNum - 1) * 10 +
scope.$index +
1
}}</span>
</template>
</el-table-column>
<el-table-column
label="配件名称"
align="center"
prop="partName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="配件数量"
align="center"
prop="partNum"
:show-overflow-tooltip="true"
/>
<el-table-column
label="配件费用"
align="center"
prop="partCost"
:show-overflow-tooltip="true"
/>
<!-- <el-table-column-->
<!-- label="类型"-->
<!-- align="center"-->
<!-- prop="partType"-->
<!-- :show-overflow-tooltip="true"-->
<!-- >-->
<!-- <template slot-scope="scope">-->
<!-- <span v-if="scope.row.partType == '0'">不收费</span>-->
<!-- <span v-if="scope.row.partType == '1'">收费</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
label="备注"
align="center"
prop="remark"
:show-overflow-tooltip="true"
/>
</el-table>
<pagination
v-show="partRecordTotal > 0"
:total="partRecordTotal"
:page.sync="partRecordParams.pageNum"
:limit.sync="partRecordParams.pageSize"
@pagination="getPartRecordList"
/>
</el-dialog>
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openOne"
append-to-body
width="400px"
>
<div class="submit_box">
<div>
<i
class="el-icon-circle-check"
style="color: #ff9900; font-size: 30px"
></i>
</div>
<div class="submit_box_title">
<div>{{ openTextOne }}</div>
<div>{{ openTextTwo }}</div>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="submitOpenOneFeturn">返回</el-button>
<el-button type="primary" @click="submitOpenOneForm()"
>确定</el-button
>
</div>
</el-dialog>
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openTwo"
append-to-body
width="400px"
:before-close="openTextThreeClose"
>
<div class="submit_box_two">
<div>
<i
class="el-icon-circle-check"
style="color: #00c196; font-size: 30px"
></i>
</div>
<div class="submit_box_title">{{ openTextThree }}</div>
</div>
<div slot="footer" class="dialog-footer"></div>
</el-dialog>
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openThree"
append-to-body
width="800px"
>
<div class="submit_box">
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="140px"
>
<el-form-item label="请输入驳回原因:" prop="remark">
<el-input
style="width: 600px"
type="textarea"
v-model="form.remark"
maxlength="100"
show-word-limit
></el-input>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="formCancel">返回</el-button>
<el-button type="primary" @click="formSubmit">保存</el-button>
</div>
</el-dialog>
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openFour"
append-to-body
width="400px"
>
<div class="submit_box_openFour">
你选择了{{ selectionList.length }}条数据,请进行审批
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="submitForm(2)" type="primary"
>通过</el-button
>
<el-button @click="returnSubmit(2)">不通过</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
// import {
// getQuestListApi,
// getRepairAuditListApi,
// addDetailsAuditApi,
// getRepairRecord,
// getPartRecord,
// } from '@/api/repairTest/testExamine'
// import { getProjectList } from '@/api/claimAndRefund/receive'
// import {
// getUnitInfoSelectApi,
// getProjectSelectApi,
// getDicSelectApi,
// listPartTypeApi,
// getMaTypeSelectApi,
// } from '@/api/repairTest/repair'
// import selectTree from '../repair/selectTree.vue'
// import Tree from '@/views/repairTest/repair/tree.vue'
import {
getQuestListApi,
getRepairAuditListApi,
addDetailsAuditApi,
getRepairRecord,
getPartRecord,
} from '@/api/repairTest/testExamine'
export default {
name: 'TestExamine',
components: { Tree, selectTree },
dicts: ['sys_normal_disable'],
data() {
return {
@ -891,18 +298,9 @@ export default {
partRecordTotal: 0,
}
},
created() {
this.getList()
getUnitInfoSelectApi().then((res) => {
this.unitInfoSelectList = res.data
})
getProjectList().then((res) => {
this.projectSelectList = res.data
})
getDicSelectApi({ value: 'ws_shenhe' }).then((res) => {
this.dicSelectList = res.data
})
this.getTree()
},
methods: {
@ -917,33 +315,7 @@ export default {
this.loading = false
})
},
//
getdialogList() {
let params = {
taskId: this.rowObj.taskId,
pageNum: this.dialogQueryParams.pageNum,
keyword: this.dialogQueryParams.keyword,
typeName: this.dialogQueryParams.typeName,
type: this.dialogQueryParams.type,
pageSize: this.dialogQueryParams.pageSize,
}
// this.loading = true;
getRepairAuditListApi(params)
.then((response) => {
if (response.code == 200) {
// this.loading = false;
this.open = true
this.dialogList = response.rows
this.dialogTotal = response.total
this.repairId = rows.repairId
}
})
.catch(() => {})
},
checkClick() {
this.title = '审批'
this.openFour = true
},
//
cancel() {
this.open = false
@ -960,39 +332,7 @@ export default {
}
this.resetForm('form')
},
onClose() {
this.open = false
this.queryParams.type = ''
// this.resetQueryDialog()
this.getList()
},
resetQueryDialog() {
this.dialogQueryParams = {}
this.resetForm('dialogQueryParams')
this.$refs.mychildDialog.clearSelect()
this.$refs.mychildDialogTwo.clearSelect()
this.dialogQueryParams.pageNum = 1
this.dialogQueryParams.pageSize = 10
this.getdialogList()
},
selectDrop(value) {
this.queryParams.type = value
},
selectDropDialog(value) {
this.dialogQueryParams.typeName = value
},
selectDropDialogTwo(value) {
this.dialogQueryParams.type = value
},
getTree() {
listPartTypeApi().then((response) => {
this.deptList = response.data
// this.deptList = this.handleTree(response.data, "id");
})
getMaTypeSelectApi().then((response) => {
this.deptTypeList = response.data
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
@ -1021,13 +361,6 @@ export default {
return false
}
},
selectableDialog(row) {
if (row.status == '0') {
return true
} else {
return false
}
},
//
handleSelectionChange(selection) {
this.selectionList = selection
@ -1040,12 +373,6 @@ export default {
// console.log(this.checkResultOne)
console.log(this.checkResultOne)
},
handleDialogSelectionChange(selection) {
this.dialogIds = selection.map((item) => item)
this.dialogSingle = selection.length != 1
this.dialogMultiple = !selection.length
console.log(this.checkResultOne)
},
handleSee(row, type) {
this.dialogTitle = '查看'
this.rowObj = row
@ -1111,127 +438,7 @@ export default {
.catch(() => {})
}
},
openTextThreeClose() {
this.open = false
this.openOne = false
this.openTwo = false
this.openThree = false
this.openFour = false
this.getList()
},
submitOpenOneFeturn() {
this.openOne = false
},
//
repairRecord(row) {
this.repairRecordParams.pageNum = 1
this.repairRecordParams.pageSize = 10
this.repairId = row.repairId
console.log(this.repairId, 'repairId')
this.getRepairRecordList()
},
getRepairRecordList() {
let params = {
repairId: this.repairId,
pageNum: this.repairRecordParams.pageNum,
pageSize: this.repairRecordParams.pageSize,
}
getRepairRecord(params)
.then((res) => {
this.repairRecordList = res.rows
this.repairRecordTotal = res.total
this.openRepairRecord = true
this.title = '维修记录'
})
.catch(() => {})
},
//
partRecord(row) {
this.partRecordParams.pageNum = 1
this.partRecordParams.pageSize = 10
// this.repairId = row.repairId
// console.log(row, 'row===============')
console.log(this.repairId)
console.log(111111111111)
this.getPartRecordList(row)
},
getPartRecordList() {
let params = {
repairId: this.repairId,
pageNum: this.partRecordParams.pageNum,
pageSize: this.partRecordParams.pageSize,
}
console.log(params)
getPartRecord(params)
.then((res) => {
this.partRecordList = res.rows
this.partRecordTotal = res.total
this.openPartRecord = true
this.title = '配件详情'
})
.catch(() => {})
},
returnSubmit(val) {
this.checkResult = val
this.title = '驳回原因'
this.openThree = true
},
formCancel() {
this.$refs.form.resetFields()
this.openThree = false
},
formSubmit() {
this.$refs.form.validate((valid) => {
if (valid) {
if (this.checkResult == 1) {
let taskIdList = []
taskIdList.push(this.rowObj.taskId)
let params = {
checkResult: '不通过',
taskIdList: taskIdList,
auditDetailList: this.dialogIds,
remark: this.form.remark,
}
addDetailsAuditApi(params)
.then((res) => {
this.$refs.form.resetFields()
this.formCancel()
this.open = false
this.openThree = false
// this.getdialogList()
this.getList()
})
.catch(() => {})
}
if (this.checkResult == 2) {
let taskIdList = []
this.selectionList.map((item) => {
taskIdList.push(item.taskId)
})
let params = {
checkResult: '不通过',
taskIdList: taskIdList,
remark: this.form.remark,
}
addDetailsAuditApi(params)
.then((res) => {
// if (res.code == 200) {
this.$refs.form.resetFields()
this.openThree = false
this.openFour = false
this.getList()
// }
})
.catch(() => {})
}
} else {
return false
}
})
},
/** 导出按钮操作 */
handleExport() {
this.download(