接口调试

This commit is contained in:
BianLzhaoMin 2026-01-22 18:01:33 +08:00
parent 6a79b1018d
commit 95a89cbd21
9 changed files with 775 additions and 474 deletions

View File

@ -12,7 +12,16 @@ export function getProjectSelectListAPI(data = {}) {
// 获取班组下拉选 // 获取班组下拉选
export function getTeamSelectListAPI(data = {}) { export function getTeamSelectListAPI(data = {}) {
return request({ return request({
url: '/background/back/workTeam/getTeamLists', url: '/background/sj/workTeam/getTeamList',
method: 'get',
params: data,
})
}
// 获取设备的下拉选
export function getDeviceSelectListAPI(data = {}) {
return request({
url: '/background/sj/workTeam/getDevList',
method: 'get', method: 'get',
params: data, params: data,
}) })

View File

@ -2,225 +2,252 @@ import request from '@/utils/request'
// 获取资源利用率班组人员管理列表 // 获取资源利用率班组人员管理列表
export function getResourceUseTeamListAPI(data) { export function getResourceUseTeamListAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/list', url: '/background/sj/workTeam/list',
method: 'get', method: 'get',
params: data, params: data,
}) })
} }
// 新增资源利用率班组人员 // 新增资源利用率班组人员
export function addResourceUseTeamAPI(data) { export function addResourceUseTeamAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/addData', url: '/background/sj/workTeam/addData',
method: 'post', method: 'post',
data, data,
}) })
} }
// 编辑资源利用率班组人员 // 编辑资源利用率班组人员
export function editResourceUseTeamAPI(data) { export function editResourceUseTeamAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/updateData', url: '/background/sj/workTeam/updateData',
method: 'post', method: 'post',
data, data,
}) })
} }
// 删除资源利用率班组人员 // 删除资源利用率班组人员
export function deleteResourceUseTeamAPI(data) { export function deleteResourceUseTeamAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/delete', url: '/background/sj/workTeam/delete',
method: 'post', method: 'post',
data, data,
}) })
} }
// 获取资源利用率大型设备管理列表 // 获取资源利用率大型设备管理列表
export function getResourceUseDeviceListAPI(data) { export function getResourceUseDeviceListAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/getMaxDevList', url: '/background/sj/workTeam/getMaxDevList',
method: 'get', method: 'get',
params: data, params: data,
}) })
} }
// 新增资源利用率大型设备管理 // 新增资源利用率大型设备管理
export function addResourceUseDeviceAPI(data) { export function addResourceUseDeviceAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/addMaxDevData', url: '/background/sj/workTeam/addMaxDevData',
method: 'post', method: 'post',
data, data,
}) })
} }
// 编辑资源利用率大型设备管理 // 编辑资源利用率大型设备管理
export function editResourceUseDeviceAPI(data) { export function editResourceUseDeviceAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/updateMaxDevData', url: '/background/sj/workTeam/updateMaxDevData',
method: 'post', method: 'post',
data, data,
}) })
} }
// 删除资源利用率大型设备管理 // 删除资源利用率大型设备管理
export function deleteResourceUseDeviceAPI(data) { export function deleteResourceUseDeviceAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/delMaxDevData', url: '/background/sj/workTeam/delMaxDevData',
method: 'post', method: 'post',
data, data,
}) })
} }
// 获取班组人数列表数据 // 获取班组人数列表数据
export function getResourceUseTeamCountListAPI(data) { export function getResourceUseTeamCountListAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/userList', url: '/background/sj/workTeam/userList',
method: 'get', method: 'get',
params: data, params: data,
}) })
} }
// 新增班组人数 // 新增班组人数
export function addResourceUseTeamCountAPI(data) { export function addResourceUseTeamCountAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/addUserData', url: '/background/sj/workTeam/addUserData',
method: 'post', method: 'post',
data, data,
}) })
} }
// 编辑班组人数 // 编辑班组人数
export function editResourceUseTeamCountAPI(data) { export function editResourceUseTeamCountAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/updateUserData', url: '/background/sj/workTeam/updateUserData',
method: 'post', method: 'post',
data, data,
}) })
} }
// 删除班组人数 // 删除班组人数
export function deleteResourceUseTeamCountAPI(data) { export function deleteResourceUseTeamCountAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/delUser', url: '/background/sj/workTeam/delUser',
method: 'post', method: 'post',
data, data,
}) })
} }
// 获取到岗人数列表数据 // 获取到岗人数列表数据
export function getResourceUseOnDutyListAPI(data) { export function getResourceUseOnDutyListAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/getOnDutyList', url: '/background/sj/workTeam/getOnDutyList',
method: 'get', method: 'get',
params: data, params: data,
}) })
} }
// 获取没有到岗的人员列表 // 获取没有到岗的人员列表
export function getResourceUseNoDutyListAPI(data) { export function getResourceUseNoDutyListAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/getNoDutyList', url: '/background/sj/workTeam/getNoDutyList',
method: 'get', method: 'get',
params: data, params: data,
}) })
} }
// 提交到岗人数 // 提交到岗人数
export function submitResourceUseOnDutyAPI(data) { export function submitResourceUseOnDutyAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/addOnDutyUser', url: '/background/sj/workTeam/addOnDutyUser',
method: 'post', method: 'post',
data, data,
}) })
} }
// 删除到岗人数 // 删除到岗人数
export function deleteResourceUseOnDutyAPI(data) { export function deleteResourceUseOnDutyAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/delOnDuty', url: '/background/sj/workTeam/delOnDuty',
method: 'post', method: 'post',
data, data,
}) })
}
// 获取设备使用记录列表
export function getDeviceUseRecordListAPI(data) {
return request({
url: '/background/sj/workTeam/getDevUsedList',
method: 'get',
params: data,
})
} }
// 新增设备使用记录 // 新增设备使用记录
export function addDeviceUseRecordAPI(data) { export function addDeviceUseRecordAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/addDeviceUseRecord', url: '/background/sj/workTeam/addDevUsedData',
method: 'post', method: 'post',
data, data,
}) })
}
// 编辑设备使用记录
export function editDeviceUseRecordAPI(data) {
return request({
url: '/background/sj/workTeam/updateDevUsedData',
method: 'post',
data,
})
}
// 删除设备使用记录
export function deleteDeviceUseRecordAPI(data) {
return request({
url: '/background/sj/workTeam/delDevUsedData',
method: 'post',
data,
})
} }
// 获取设备故障记录列表 // 获取设备故障记录列表
export function getDeviceFaultRecordListAPI(data) { export function getDeviceFaultRecordListAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/getDeviceFaultRecordList', url: '/background/sj/workTeam/getFaultList',
method: 'get', method: 'get',
params: data, params: data,
}) })
} }
// 新增设备故障记录 // 新增设备故障记录
export function addDeviceFaultRecordAPI(data) { export function addDeviceFaultRecordAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/addDeviceFaultRecord', url: '/background/sj/workTeam/addFaultData',
method: 'post', method: 'post',
data, data,
}) })
} }
// 编辑设备故障记录 // 编辑设备故障记录
export function editDeviceFaultRecordAPI(data) { export function editDeviceFaultRecordAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/updateDeviceFaultRecord', url: '/background/sj/workTeam/updateFaultData',
method: 'post', method: 'post',
data, data,
}) })
} }
// 删除设备故障记录 // 删除设备故障记录
export function deleteDeviceFaultRecordAPI(data) { export function deleteDeviceFaultRecordAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/deleteDeviceFaultRecord', url: '/background/sj/workTeam/delFaultData',
method: 'post', method: 'post',
data, data,
}) })
} }
// 获取分析提醒列表 // 获取分析提醒列表
export function getAnalysisReminderListAPI(data) { export function getAnalysisReminderListAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/getAnalysisReminderList', url: '/background/sj/workTeam/getAsyncWarnList',
method: 'get', method: 'get',
params: data, params: data,
}) })
} }
// 新增分析提醒 // 新增分析提醒
export function addAnalysisReminderAPI(data) { export function addAnalysisReminderAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/addAnalysisReminder', url: '/background/sj/workTeam/addAsyncWarnList',
method: 'post', method: 'post',
data, data,
}) })
} }
// 编辑分析提醒 // 编辑分析提醒
export function editAnalysisReminderAPI(data) { export function editAnalysisReminderAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/updateAnalysisReminder', url: '/background/sj/workTeam/updateAsyncWarnList',
method: 'post', method: 'post',
data, data,
}) })
} }
// 删除分析提醒 // 删除分析提醒
export function deleteAnalysisReminderAPI(data) { export function deleteAnalysisReminderAPI(data) {
return request({ return request({
url: '/background/sj/workTeam/deleteAnalysisReminder', url: '/background/sj/workTeam/delAsyncWarnList',
method: 'post', method: 'post',
data, data,
}) })
} }

View File

@ -66,7 +66,7 @@ export function editAnalysisReminderAPI(data) {
// 删除分析提醒 // 删除分析提醒
export function deleteAnalysisReminderAPI(data) { export function deleteAnalysisReminderAPI(data) {
return request({ return request({
url: '/background/sj/newWorker/deleteWarnData', url: '/background/sj/newWorker/delWarnData',
method: 'post', method: 'post',
data, data,
}) })

View File

@ -6,6 +6,24 @@
ref="addAndEditFormRef" ref="addAndEditFormRef"
:rules="addAndEditFormRules" :rules="addAndEditFormRules"
> >
<el-row>
<el-col :span="24">
<el-form-item label="工程名称" prop="bidCode">
<el-select
v-model="addAndEditForm.bidCode"
placeholder="请选择工程名称"
style="width: 100%"
>
<el-option
v-for="item in projectList"
:key="item.bidCode"
:label="item.proName"
:value="item.bidCode"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="专业" prop="workType"> <el-form-item label="专业" prop="workType">
@ -21,14 +39,20 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="班组名称" prop="teamName"> <el-form-item label="班组名称" prop="teamId">
<el-input <el-select
v-model.trim="addAndEditForm.teamName" v-model="addAndEditForm.teamId"
clearable placeholder="请选择所属班组"
show-word-limit style="width: 100%"
:maxlength="50" @change="handleTeamChange"
placeholder="请输入班组名称" >
/> <el-option
v-for="item in teamList"
:key="item.teamId"
:label="item.teamName"
:value="item.teamId"
/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -53,7 +77,11 @@
import { import {
addResourceUseTeamAPI, addResourceUseTeamAPI,
editResourceUseTeamAPI, editResourceUseTeamAPI,
} from '@/api/dataAnalysis/resourceUse' } from '@/api/dataManage/resourceUse'
import {
getProjectSelectListAPI,
getTeamSelectListAPI,
} from '@/api/dataManage/common'
export default { export default {
name: 'AddAndEditForm', name: 'AddAndEditForm',
props: { props: {
@ -73,7 +101,16 @@ export default {
teamName: '', teamName: '',
teamLeader: '', teamLeader: '',
}, },
projectList: [],
teamList: [],
addAndEditFormRules: { addAndEditFormRules: {
bidCode: [
{
required: true,
message: '请选择工程名称',
trigger: 'blur',
},
],
workType: [ workType: [
{ {
required: true, required: true,
@ -81,10 +118,10 @@ export default {
trigger: 'blur', trigger: 'blur',
}, },
], ],
teamName: [ teamId: [
{ {
required: true, required: true,
message: '请输入班组名称', message: '请选择所属班组',
trigger: 'blur', trigger: 'blur',
}, },
], ],
@ -99,6 +136,10 @@ export default {
} }
}, },
created() {
this.getTeamAndProjectList()
},
methods: { methods: {
submitForm() { submitForm() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@ -123,15 +164,39 @@ export default {
}) })
}) })
}, },
//
async getTeamAndProjectList() {
const result1 = await getTeamSelectListAPI({
pageNum: 1,
pageSize: 1000,
})
this.teamList = result1.data
const result2 = await getProjectSelectListAPI()
this.projectList = result2.data
},
// change
handleTeamChange(value) {
const selectedTeam = this.teamList.find(
(item) => item.teamId == value,
)
if (selectedTeam) {
this.addAndEditForm.teamName = selectedTeam.teamName || ''
} else {
this.addAndEditForm.teamName = ''
}
},
}, },
watch: { watch: {
editRow: { editRow: {
handler(newVal) { handler(newVal) {
if (Object.keys(newVal).length > 0) { if (Object.keys(newVal).length > 0) {
const { workType, teamName, teamLeader } = newVal const { workType, teamId, teamLeader, bidCode } = newVal
this.addAndEditForm.workType = workType this.addAndEditForm.workType = workType
this.addAndEditForm.teamName = teamName this.addAndEditForm.teamId = teamId
this.addAndEditForm.bidCode = bidCode
this.addAndEditForm.teamLeader = teamLeader this.addAndEditForm.teamLeader = teamLeader
} }
}, },

View File

@ -6,6 +6,24 @@
ref="addAndEditFormRef" ref="addAndEditFormRef"
:rules="addAndEditFormRules" :rules="addAndEditFormRules"
> >
<el-row>
<el-col :span="24">
<el-form-item label="工程名称" prop="bidCode">
<el-select
v-model="addAndEditForm.bidCode"
placeholder="请选择工程名称"
style="width: 100%"
>
<el-option
v-for="item in projectList"
:key="item.bidCode"
:label="item.proName"
:value="item.bidCode"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="设备名称" prop="devName"> <el-form-item label="设备名称" prop="devName">
@ -71,6 +89,8 @@ import {
editResourceUseDeviceAPI, editResourceUseDeviceAPI,
} from '@/api/dataAnalysis/resourceUse' } from '@/api/dataAnalysis/resourceUse'
import { getProjectSelectListAPI } from '@/api/dataManage/common'
import moment from 'moment' import moment from 'moment'
export default { export default {
name: 'AddAndEditForm', name: 'AddAndEditForm',
@ -86,13 +106,22 @@ export default {
}, },
data() { data() {
return { return {
projectList: [],
addAndEditForm: { addAndEditForm: {
bidCode: '',
devName: '', devName: '',
inTime: '', inTime: '',
outTime: '', outTime: '',
usedDay: '', usedDay: '',
}, },
addAndEditFormRules: { addAndEditFormRules: {
bidCode: [
{
required: true,
message: '请选择工程名称',
trigger: 'blur',
},
],
devName: [ devName: [
{ {
required: true, required: true,
@ -166,17 +195,28 @@ export default {
) )
} }
}, },
//
async getProjectSelectList() {
const res = await getProjectSelectListAPI()
this.projectList = res.data
},
},
created() {
this.getProjectSelectList()
}, },
watch: { watch: {
editRow: { editRow: {
handler(newVal) { handler(newVal) {
if (Object.keys(newVal).length > 0) { if (Object.keys(newVal).length > 0) {
const { devName, inTime, outTime, usedDay } = newVal const { devName, inTime, outTime, usedDay, bidCode } =
newVal
this.addAndEditForm.devName = devName this.addAndEditForm.devName = devName
this.addAndEditForm.inTime = inTime this.addAndEditForm.inTime = inTime
this.addAndEditForm.outTime = outTime this.addAndEditForm.outTime = outTime
this.addAndEditForm.usedDay = usedDay this.addAndEditForm.usedDay = usedDay
this.addAndEditForm.bidCode = bidCode
} }
}, },
immediate: true, immediate: true,

View File

@ -47,15 +47,17 @@
align="center" align="center"
/> />
<el-table-column <el-table-column
label="日期" label="故障日期"
prop="date" prop="faultTime"
align="center"
/>
<el-table-column
label="设备名称"
prop="deviceName"
align="center" align="center"
/> />
<el-table-column label="使用设备" align="center">
<template slot-scope="scope">
{{
scope.row.devName || getDeviceName(scope.row.devId)
}}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="140"> <el-table-column label="操作" align="center" width="140">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -100,21 +102,29 @@
ref="addEditFormRef" ref="addEditFormRef"
label-width="90px" label-width="90px"
> >
<el-form-item label="日期" prop="date"> <el-form-item label="故障日期" prop="faultTime">
<el-date-picker <el-date-picker
v-model="addEditForm.date" v-model="addEditForm.faultTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="请选择日期" placeholder="请选择故障日期"
style="width: 100%" style="width: 100%"
/> />
</el-form-item> </el-form-item>
<el-form-item label="设备名称" prop="deviceName"> <el-form-item label="使用设备" prop="deviceId">
<el-input <el-select
v-model="addEditForm.deviceName" v-model="addEditForm.deviceId"
placeholder="请输入设备名称" placeholder="请选择"
clearable style="width: 100%"
/> filterable
>
<el-option
v-for="item in deviceOptions"
:key="item.id"
:label="item.devName"
:value="item.id"
/>
</el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -131,73 +141,6 @@
</el-button> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 新增人员弹框 -->
<el-dialog
append-to-body
width="600px"
v-if="personSelectDialogVisible"
:visible.sync="personSelectDialogVisible"
title="增加人员"
>
<el-form inline class="mb-10">
<el-form-item label="关键字">
<el-input
v-model="personQueryParams.keyword"
placeholder="请输入关键字"
clearable
style="width: 200px"
@keyup.enter.native="onHandlePersonQuery"
/>
</el-form-item>
<el-form-item>
<el-button
size="mini"
type="primary"
icon="el-icon-search"
@click="onHandlePersonQuery"
>
查询
</el-button>
</el-form-item>
</el-form>
<el-table
border
:data="personList"
v-loading="personLoading"
@selection-change="onPersonSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="姓名" prop="userName" align="center" />
<el-table-column
label="身份证号"
prop="idCard"
align="center"
show-overflow-tooltip
/>
</el-table>
<pagination
:total="personTotal"
:page.sync="personQueryParams.pageNum"
:limit.sync="personQueryParams.pageSize"
@pagination="onPersonPageChange"
/>
<div slot="footer" class="dialog-footer">
<el-button @click="personSelectDialogVisible = false">
取消
</el-button>
<el-button
type="primary"
:loading="personSubmitting"
@click="onHandleConfirmPerson"
>
确定
</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -208,7 +151,7 @@ import {
editDeviceFaultRecordAPI, editDeviceFaultRecordAPI,
deleteDeviceFaultRecordAPI, deleteDeviceFaultRecordAPI,
} from '@/api/dataManage/resourceUse' } from '@/api/dataManage/resourceUse'
import { getStaffList } from '@/api/car-man/staff' import { getDeviceSelectListAPI } from '@/api/dataManage/common'
export default { export default {
name: 'FaultRecord', name: 'FaultRecord',
@ -236,40 +179,26 @@ export default {
addEditSubmitting: false, addEditSubmitting: false,
editId: null, editId: null,
addEditForm: { addEditForm: {
date: '', faultTime: '',
deviceName: '', deviceId: '',
personIds: [],
personNames: [],
}, },
addEditRules: { addEditRules: {
date: [ faultTime: [
{ {
required: true, required: true,
message: '请选择日期', message: '请选择故障日期',
trigger: 'change', trigger: 'change',
}, },
], ],
deviceName: [ deviceId: [
{ {
required: true, required: true,
message: '请输入设备名称', message: '请选择使用设备',
trigger: 'blur', trigger: 'change',
}, },
], ],
}, },
deviceOptions: [],
//
personSelectDialogVisible: false,
personLoading: false,
personList: [],
personTotal: 0,
selectedPersons: [],
personSubmitting: false,
personQueryParams: {
pageNum: 1,
pageSize: 10,
keyword: '',
},
} }
}, },
watch: { watch: {
@ -279,6 +208,7 @@ export default {
this.innerVisible = val this.innerVisible = val
if (val) { if (val) {
this.loadFaultRecordList() this.loadFaultRecordList()
this.loadDeviceOptions()
} }
}, },
}, },
@ -315,11 +245,18 @@ export default {
// //
onHandleAdd() { onHandleAdd() {
this.selectedPersons = [] this.addEditTitle = '新增'
this.personQueryParams.keyword = '' this.editId = null
this.personQueryParams.pageNum = 1 this.addEditForm = {
this.personSelectDialogVisible = true faultTime: '',
this.loadPersonList() deviceId: '',
}
this.$nextTick(() => {
if (this.$refs.addEditFormRef) {
this.$refs.addEditFormRef.clearValidate()
}
})
this.addEditDialogVisible = true
}, },
// //
@ -327,9 +264,14 @@ export default {
this.addEditTitle = '编辑' this.addEditTitle = '编辑'
this.editId = row.id this.editId = row.id
this.addEditForm = { this.addEditForm = {
date: row.date || '', faultTime: row.faultTime || '',
deviceName: row.deviceName || '', deviceId: row.devId || '',
} }
this.$nextTick(() => {
if (this.$refs.addEditFormRef) {
this.$refs.addEditFormRef.clearValidate()
}
})
this.addEditDialogVisible = true this.addEditDialogVisible = true
}, },
@ -358,6 +300,25 @@ export default {
.catch(() => {}) .catch(() => {})
}, },
//
async loadDeviceOptions() {
try {
const res = await getDeviceSelectListAPI()
this.deviceOptions = res.data || []
} catch (error) {
console.error('获取设备列表失败', error)
}
},
//
getDeviceName(deviceId) {
if (!deviceId) return ''
const device = this.deviceOptions.find(
(item) => item.id === deviceId,
)
return device ? device.devName : ''
},
// / // /
async onHandleSubmitAddEdit() { async onHandleSubmitAddEdit() {
this.$refs.addEditFormRef.validate(async (valid) => { this.$refs.addEditFormRef.validate(async (valid) => {
@ -365,13 +326,9 @@ export default {
this.addEditSubmitting = true this.addEditSubmitting = true
try { try {
const params = { const params = {
date: this.addEditForm.date, faultTime: this.addEditForm.faultTime,
deviceName: this.addEditForm.deviceName, devName: this.getDeviceName(this.addEditForm.deviceId),
} devId: this.addEditForm.deviceId,
//
if (!this.editId && this.addEditForm.personIds) {
params.personIds = this.addEditForm.personIds
params.personNames = this.addEditForm.personNames
} }
if (this.editId) { if (this.editId) {
params.id = this.editId params.id = this.editId
@ -396,60 +353,6 @@ export default {
} }
}) })
}, },
//
async loadPersonList() {
this.personLoading = true
try {
const res = await getStaffList(this.personQueryParams)
this.personList = res.rows || []
this.personTotal = res.total || 0
} catch (error) {
this.$message.error('获取人员列表失败')
} finally {
this.personLoading = false
}
},
//
onHandlePersonQuery() {
this.personQueryParams.pageNum = 1
this.loadPersonList()
},
//
onPersonPageChange() {
this.loadPersonList()
},
//
onPersonSelectionChange(selection) {
this.selectedPersons = selection
},
//
async onHandleConfirmPerson() {
if (this.selectedPersons.length === 0) {
this.$message.warning('请至少选择一名人员')
return
}
//
this.personSelectDialogVisible = false
this.addEditTitle = '新增'
this.editId = null
this.addEditForm = {
date: '',
deviceName: '',
}
//
this.addEditForm.personIds = this.selectedPersons.map(
(p) => p.userId,
)
this.addEditForm.personNames = this.selectedPersons.map(
(p) => p.userName,
)
this.addEditDialogVisible = true
},
}, },
} }
</script> </script>

View File

@ -0,0 +1,361 @@
<template>
<div>
<!-- 设备使用记录弹框 -->
<el-dialog
append-to-body
width="80%"
v-if="visible"
:visible.sync="innerVisible"
title="设备使用记录"
@close="handleClose"
>
<el-form inline class="mb-10">
<el-form-item label="综合查询">
<el-input
v-model="queryParams.keyword"
placeholder="请输入关键字"
clearable
style="width: 200px"
@keyup.enter.native="onHandleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
size="mini"
type="primary"
icon="el-icon-search"
@click="onHandleQuery"
>
查询
</el-button>
<el-button
size="mini"
type="primary"
icon="el-icon-plus"
@click="onHandleAdd"
>
新增
</el-button>
</el-form-item>
</el-form>
<el-table border :data="useRecordList" v-loading="loading">
<el-table-column
label="序号"
type="index"
width="60"
align="center"
/>
<el-table-column
label="使用日期"
prop="usedTime"
align="center"
/>
<el-table-column label="使用设备" align="center">
<template slot-scope="scope">
{{
scope.row.devName ||
getDeviceName(scope.row.deviceId)
}}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="140">
<template slot-scope="scope">
<el-button
type="danger"
size="mini"
style="padding: 6px 6px"
@click="onHandleDelete(scope.row)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="onPageChange"
/>
</el-dialog>
<!-- 新增/编辑使用记录弹框 -->
<el-dialog
append-to-body
width="420px"
v-if="addEditDialogVisible"
:visible.sync="addEditDialogVisible"
:title="`${addEditTitle}设备使用记录`"
>
<el-form
:model="addEditForm"
:rules="addEditRules"
ref="addEditFormRef"
label-width="90px"
>
<el-form-item label="使用日期" prop="usedTime">
<el-date-picker
v-model="addEditForm.usedTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择使用日期"
style="width: 100%"
/>
</el-form-item>
<el-form-item label="使用设备" prop="deviceId">
<el-select
v-model="addEditForm.deviceId"
placeholder="请选择"
style="width: 100%"
filterable
>
<el-option
v-for="item in deviceOptions"
:key="item.id"
:label="item.devName"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="addEditDialogVisible = false">
取消
</el-button>
<el-button
type="primary"
:loading="addEditSubmitting"
@click="onHandleSubmitAddEdit"
>
确定
</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
getDeviceUseRecordListAPI,
addDeviceUseRecordAPI,
editDeviceUseRecordAPI,
deleteDeviceUseRecordAPI,
getResourceUseDeviceListAPI,
} from '@/api/dataManage/resourceUse'
import { getDeviceSelectListAPI } from '@/api/dataManage/common'
export default {
name: 'UseRecord',
props: {
visible: {
type: Boolean,
default: false,
},
},
data() {
return {
innerVisible: false,
loading: false,
useRecordList: [],
total: 0,
queryParams: {
pageNum: 1,
pageSize: 10,
keyword: '',
},
// /
addEditDialogVisible: false,
addEditTitle: '新增',
addEditSubmitting: false,
editId: null,
addEditForm: {
usedTime: '',
deviceId: '',
},
addEditRules: {
usedTime: [
{
required: true,
message: '请选择使用日期',
trigger: 'change',
},
],
deviceId: [
{
required: true,
message: '请选择使用设备',
trigger: 'change',
},
],
},
deviceOptions: [],
}
},
watch: {
visible: {
immediate: true,
handler(val) {
this.innerVisible = val
if (val) {
this.loadUseRecordList()
this.loadDeviceOptions()
}
},
},
},
methods: {
handleClose() {
this.$emit('update:visible', false)
},
// 使
async loadUseRecordList() {
this.loading = true
try {
const res = await getDeviceUseRecordListAPI(this.queryParams)
this.useRecordList = res.rows || []
this.total = res.total || 0
} catch (error) {
this.$message.error('获取使用记录列表失败')
} finally {
this.loading = false
}
},
//
async loadDeviceOptions() {
try {
const res = await getDeviceSelectListAPI()
console.log(res)
this.deviceOptions = res.data || []
} catch (error) {
console.error('获取设备列表失败', error)
}
},
//
onHandleQuery() {
this.queryParams.pageNum = 1
this.loadUseRecordList()
},
//
onPageChange() {
this.loadUseRecordList()
},
//
onHandleAdd() {
this.addEditTitle = '新增'
this.editId = null
this.addEditForm = {
usedTime: '',
deviceId: '',
}
this.$nextTick(() => {
if (this.$refs.addEditFormRef) {
this.$refs.addEditFormRef.clearValidate()
}
})
this.addEditDialogVisible = true
},
//
onHandleEdit(row) {
this.addEditTitle = '编辑'
this.editId = row.id
this.addEditForm = {
usedTime: row.usedTime || '',
deviceId: row.devId || '',
}
this.$nextTick(() => {
if (this.$refs.addEditFormRef) {
this.$refs.addEditFormRef.clearValidate()
}
})
this.addEditDialogVisible = true
},
//
onHandleDelete(row) {
this.$confirm('此操作将永久删除该使用记录, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(async () => {
try {
const res = await deleteDeviceUseRecordAPI({
id: row.id,
})
if (res.code === 200) {
this.$message.success('删除成功')
this.loadUseRecordList()
} else {
this.$message.error(res.msg || '删除失败')
}
} catch (error) {
this.$message.error('删除失败')
}
})
.catch(() => {})
},
//
getDeviceName(deviceId) {
if (!deviceId) return ''
const device = this.deviceOptions.find(
(item) => item.id === deviceId,
)
return device ? device.devName : ''
},
// /
async onHandleSubmitAddEdit() {
this.$refs.addEditFormRef.validate(async (valid) => {
if (!valid) return
this.addEditSubmitting = true
try {
const params = {
usedTime: this.addEditForm.usedTime,
devName: this.getDeviceName(this.addEditForm.deviceId),
devId: this.addEditForm.deviceId,
}
if (this.editId) {
params.id = this.editId
}
const API = this.editId
? editDeviceUseRecordAPI
: addDeviceUseRecordAPI
const res = await API(params)
if (res.code === 200) {
this.$message.success(
this.editId ? '编辑成功' : '新增成功',
)
this.addEditDialogVisible = false
this.loadUseRecordList()
} else {
this.$message.error(res.msg || '操作失败')
}
} catch (error) {
this.$message.error('操作失败')
} finally {
this.addEditSubmitting = false
}
})
},
},
}
</script>
<style scoped>
.mb-10 {
margin-bottom: 10px;
}
</style>

View File

@ -232,17 +232,17 @@
/> />
<el-table-column <el-table-column
label="提醒类型" label="提醒类型"
prop="reminderType" prop="txType"
align="center" align="center"
/> />
<el-table-column <el-table-column
label="提醒时间" label="提醒时间"
prop="reminderTime" prop="txTime"
align="center" align="center"
/> />
<el-table-column <el-table-column
label="分析提醒内容" label="分析提醒内容"
prop="reminderContent" prop="content"
align="center" align="center"
show-overflow-tooltip show-overflow-tooltip
/> />
@ -328,58 +328,7 @@
</el-dialog> </el-dialog>
<!-- 设备使用记录弹框 --> <!-- 设备使用记录弹框 -->
<el-dialog <UseRecord :visible.sync="useRecordDialogVisible" />
append-to-body
width="420px"
v-if="deviceRecordDialogVisible"
:visible.sync="deviceRecordDialogVisible"
title="新增设备使用记录"
>
<el-form
:model="deviceRecordForm"
:rules="deviceRecordRules"
ref="deviceRecordFormRef"
label-width="90px"
>
<el-form-item label="使用日期" prop="useDate">
<el-date-picker
v-model="deviceRecordForm.useDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择使用日期"
style="width: 100%"
/>
</el-form-item>
<el-form-item label="使用设备" prop="deviceId">
<el-select
v-model="deviceRecordForm.deviceId"
placeholder="请选择"
style="width: 100%"
filterable
>
<el-option
v-for="item in deviceOptions"
:key="item.id"
:label="item.devName"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="deviceRecordDialogVisible = false">
取消
</el-button>
<el-button
type="primary"
:loading="deviceRecordSubmitting"
@click="onHandleSubmitDeviceRecord"
>
确定
</el-button>
</div>
</el-dialog>
<!-- 设备故障记录弹框 --> <!-- 设备故障记录弹框 -->
<FaultRecord :visible.sync="faultRecordDialogVisible" /> <FaultRecord :visible.sync="faultRecordDialogVisible" />
@ -387,7 +336,7 @@
<!-- 分析提醒新增/编辑弹框 --> <!-- 分析提醒新增/编辑弹框 -->
<el-dialog <el-dialog
append-to-body append-to-body
width="500px" width="40%"
v-if="reminderDialogVisible" v-if="reminderDialogVisible"
:visible.sync="reminderDialogVisible" :visible.sync="reminderDialogVisible"
:title="`${reminderDialogTitle}分析提醒`" :title="`${reminderDialogTitle}分析提醒`"
@ -396,30 +345,27 @@
:model="reminderForm" :model="reminderForm"
:rules="reminderRules" :rules="reminderRules"
ref="reminderFormRef" ref="reminderFormRef"
label-width="100px" label-width="auto"
> >
<el-form-item label="提醒类型" prop="reminderType"> <el-form-item label="提醒类型" prop="txType">
<el-select <el-input
v-model="reminderForm.reminderType" clearable
placeholder="请选择提醒类型" placeholder="请输入提醒类型"
style="width: 100%" v-model.trim="reminderForm.txType"
> />
<el-option label="人员" value="人员" />
<el-option label="设备" value="设备" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="提醒时间" prop="reminderTime"> <el-form-item label="提醒时间" prop="txTime">
<el-date-picker <el-date-picker
v-model="reminderForm.reminderTime" v-model="reminderForm.txTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="请选择提醒时间" placeholder="请选择提醒时间"
style="width: 100%" style="width: 100%"
/> />
</el-form-item> </el-form-item>
<el-form-item label="分析提醒内容" prop="reminderContent"> <el-form-item label="分析提醒内容" prop="content">
<el-input <el-input
v-model="reminderForm.reminderContent" v-model="reminderForm.content"
type="textarea" type="textarea"
:rows="4" :rows="4"
placeholder="请输入分析提醒内容" placeholder="请输入分析提醒内容"
@ -450,7 +396,6 @@ import {
deleteResourceUseTeamAPI, deleteResourceUseTeamAPI,
getResourceUseDeviceListAPI, getResourceUseDeviceListAPI,
deleteResourceUseDeviceAPI, deleteResourceUseDeviceAPI,
addDeviceUseRecordAPI,
getAnalysisReminderListAPI, getAnalysisReminderListAPI,
addAnalysisReminderAPI, addAnalysisReminderAPI,
editAnalysisReminderAPI, editAnalysisReminderAPI,
@ -462,6 +407,7 @@ import AddAndEditFormTwo from './components/addAndEditFormTwo.vue'
import TeamCount from './components/teamCount.vue' import TeamCount from './components/teamCount.vue'
import OnboardCount from './components/onboardCount.vue' import OnboardCount from './components/onboardCount.vue'
import FaultRecord from './components/faultRecord.vue' import FaultRecord from './components/faultRecord.vue'
import UseRecord from './components/useRecord.vue'
export default { export default {
name: 'ProjectQuality', name: 'ProjectQuality',
@ -471,6 +417,7 @@ export default {
TeamCount, TeamCount,
OnboardCount, OnboardCount,
FaultRecord, FaultRecord,
UseRecord,
}, },
data() { data() {
return { return {
@ -489,6 +436,10 @@ export default {
addAndEditDialogVisible: false, addAndEditDialogVisible: false,
addAndEditDialogTitle: '', addAndEditDialogTitle: '',
tableColumns: [ tableColumns: [
{
label: '工程名称',
prop: 'proName',
},
{ {
label: '专业', label: '专业',
prop: 'workType', prop: 'workType',
@ -511,6 +462,10 @@ export default {
}, },
], ],
tableColumns_1: [ tableColumns_1: [
{
label: '工程名称',
prop: 'proName',
},
{ {
label: '设备名称', label: '设备名称',
prop: 'devName', prop: 'devName',
@ -543,29 +498,7 @@ export default {
}, },
// 使 // 使
deviceRecordDialogVisible: false, useRecordDialogVisible: false,
deviceRecordSubmitting: false,
deviceRecordForm: {
useDate: '',
deviceId: '',
},
deviceRecordRules: {
useDate: [
{
required: true,
message: '请选择使用日期',
trigger: 'change',
},
],
deviceId: [
{
required: true,
message: '请选择使用设备',
trigger: 'change',
},
],
},
deviceOptions: [],
// //
faultRecordDialogVisible: false, faultRecordDialogVisible: false,
@ -584,26 +517,26 @@ export default {
reminderSubmitting: false, reminderSubmitting: false,
reminderEditId: null, reminderEditId: null,
reminderForm: { reminderForm: {
reminderType: '', txType: '',
reminderTime: '', txTime: '',
reminderContent: '', content: '',
}, },
reminderRules: { reminderRules: {
reminderType: [ txType: [
{ {
required: true, required: true,
message: '请选择提醒类型', message: '请选择提醒类型',
trigger: 'change', trigger: 'change',
}, },
], ],
reminderTime: [ txTime: [
{ {
required: true, required: true,
message: '请选择提醒时间', message: '请选择提醒时间',
trigger: 'change', trigger: 'change',
}, },
], ],
reminderContent: [ content: [
{ {
required: true, required: true,
message: '请输入分析提醒内容', message: '请输入分析提醒内容',
@ -617,7 +550,6 @@ export default {
created() { created() {
this.getResourceUseTeamList() this.getResourceUseTeamList()
this.getResourceUseDeviceList() this.getResourceUseDeviceList()
this.getDeviceOptions()
if (this.safetyType === '分析提醒') { if (this.safetyType === '分析提醒') {
this.getAnalysisReminderList() this.getAnalysisReminderList()
} }
@ -636,7 +568,9 @@ export default {
}, },
onHandleAddProject() { onHandleAddProject() {
this.detailsOneId = null this.detailsOneId = null
this.detailsTwoId = null
this.editRowOne = {} this.editRowOne = {}
this.editRowTwo = {}
this.isShowTeamCount = false this.isShowTeamCount = false
this.isShowOnboardCount = false this.isShowOnboardCount = false
@ -763,47 +697,7 @@ export default {
// 使 // 使
onHandleDeviceRecord() { onHandleDeviceRecord() {
this.deviceRecordForm = { this.useRecordDialogVisible = true
useDate: '',
deviceId: '',
}
this.deviceRecordDialogVisible = true
},
// 使
async onHandleSubmitDeviceRecord() {
this.$refs.deviceRecordFormRef.validate(async (valid) => {
if (!valid) return
this.deviceRecordSubmitting = true
try {
const res = await addDeviceUseRecordAPI(
this.deviceRecordForm,
)
if (res.code === 200) {
this.$message.success('新增成功')
this.deviceRecordDialogVisible = false
} else {
this.$message.error(res.msg || '新增失败')
}
} catch (error) {
this.$message.error('新增失败')
} finally {
this.deviceRecordSubmitting = false
}
})
},
//
async getDeviceOptions() {
try {
const res = await getResourceUseDeviceListAPI({
pageNum: 1,
pageSize: 1000,
})
this.deviceOptions = res.rows || []
} catch (error) {
console.error('获取设备列表失败', error)
}
}, },
// //
@ -844,9 +738,9 @@ export default {
this.reminderDialogTitle = '新增' this.reminderDialogTitle = '新增'
this.reminderEditId = null this.reminderEditId = null
this.reminderForm = { this.reminderForm = {
reminderType: '', txType: '',
reminderTime: '', txTime: '',
reminderContent: '', content: '',
} }
this.reminderDialogVisible = true this.reminderDialogVisible = true
}, },
@ -856,24 +750,20 @@ export default {
this.reminderDialogTitle = '编辑' this.reminderDialogTitle = '编辑'
this.reminderEditId = row.id this.reminderEditId = row.id
this.reminderForm = { this.reminderForm = {
reminderType: row.reminderType || '', txType: row.txType || '',
reminderTime: row.reminderTime || '', txTime: row.txTime || '',
reminderContent: row.reminderContent || '', content: row.content || '',
} }
this.reminderDialogVisible = true this.reminderDialogVisible = true
}, },
// //
onHandleDeleteReminder(row) { onHandleDeleteReminder(row) {
this.$confirm( this.$confirm('此操作将永久删除该分析提醒, 是否继续?', '提示', {
'此操作将永久删除该分析提醒, 是否继续?', confirmButtonText: '确定',
'提示', cancelButtonText: '取消',
{ type: 'warning',
confirmButtonText: '确定', })
cancelButtonText: '取消',
type: 'warning',
},
)
.then(async () => { .then(async () => {
try { try {
const res = await deleteAnalysisReminderAPI({ const res = await deleteAnalysisReminderAPI({

View File

@ -128,7 +128,7 @@
<!-- 分析提醒 --> <!-- 分析提醒 -->
<template v-if="activeTab === '分析提醒'"> <template v-if="activeTab === '分析提醒'">
<el-form inline class="mb10"> <el-form inline class="mb10" key="task">
<el-form-item label="综合查询"> <el-form-item label="综合查询">
<el-input <el-input
v-model="reminderQueryParams.keyword" v-model="reminderQueryParams.keyword"
@ -158,7 +158,12 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table border :data="reminderList" v-loading="reminderLoading"> <el-table
border
:data="reminderList"
v-loading="reminderLoading"
key="task"
>
<el-table-column <el-table-column
label="序号" label="序号"
type="index" type="index"
@ -204,6 +209,7 @@
</el-table> </el-table>
<pagination <pagination
key="task"
:total="reminderTotal" :total="reminderTotal"
:page.sync="reminderQueryParams.pageNum" :page.sync="reminderQueryParams.pageNum"
:limit.sync="reminderQueryParams.pageSize" :limit.sync="reminderQueryParams.pageSize"