接口调试

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 = {}) {
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',
params: data,
})

View File

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

View File

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

View File

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

View File

@ -6,6 +6,24 @@
ref="addAndEditFormRef"
: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-col :span="24">
<el-form-item label="设备名称" prop="devName">
@ -71,6 +89,8 @@ import {
editResourceUseDeviceAPI,
} from '@/api/dataAnalysis/resourceUse'
import { getProjectSelectListAPI } from '@/api/dataManage/common'
import moment from 'moment'
export default {
name: 'AddAndEditForm',
@ -86,13 +106,22 @@ export default {
},
data() {
return {
projectList: [],
addAndEditForm: {
bidCode: '',
devName: '',
inTime: '',
outTime: '',
usedDay: '',
},
addAndEditFormRules: {
bidCode: [
{
required: true,
message: '请选择工程名称',
trigger: 'blur',
},
],
devName: [
{
required: true,
@ -166,17 +195,28 @@ export default {
)
}
},
//
async getProjectSelectList() {
const res = await getProjectSelectListAPI()
this.projectList = res.data
},
},
created() {
this.getProjectSelectList()
},
watch: {
editRow: {
handler(newVal) {
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.inTime = inTime
this.addAndEditForm.outTime = outTime
this.addAndEditForm.usedDay = usedDay
this.addAndEditForm.bidCode = bidCode
}
},
immediate: true,

View File

@ -47,15 +47,17 @@
align="center"
/>
<el-table-column
label="日期"
prop="date"
align="center"
/>
<el-table-column
label="设备名称"
prop="deviceName"
label="故障日期"
prop="faultTime"
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">
<template slot-scope="scope">
<el-button
@ -100,21 +102,29 @@
ref="addEditFormRef"
label-width="90px"
>
<el-form-item label="日期" prop="date">
<el-form-item label="故障日期" prop="faultTime">
<el-date-picker
v-model="addEditForm.date"
v-model="addEditForm.faultTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择日期"
placeholder="请选择故障日期"
style="width: 100%"
/>
</el-form-item>
<el-form-item label="设备名称" prop="deviceName">
<el-input
v-model="addEditForm.deviceName"
placeholder="请输入设备名称"
clearable
/>
<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>
@ -131,73 +141,6 @@
</el-button>
</div>
</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>
</template>
@ -208,7 +151,7 @@ import {
editDeviceFaultRecordAPI,
deleteDeviceFaultRecordAPI,
} from '@/api/dataManage/resourceUse'
import { getStaffList } from '@/api/car-man/staff'
import { getDeviceSelectListAPI } from '@/api/dataManage/common'
export default {
name: 'FaultRecord',
@ -236,40 +179,26 @@ export default {
addEditSubmitting: false,
editId: null,
addEditForm: {
date: '',
deviceName: '',
personIds: [],
personNames: [],
faultTime: '',
deviceId: '',
},
addEditRules: {
date: [
faultTime: [
{
required: true,
message: '请选择日期',
message: '请选择故障日期',
trigger: 'change',
},
],
deviceName: [
deviceId: [
{
required: true,
message: '请输入设备名称',
trigger: 'blur',
message: '请选择使用设备',
trigger: 'change',
},
],
},
//
personSelectDialogVisible: false,
personLoading: false,
personList: [],
personTotal: 0,
selectedPersons: [],
personSubmitting: false,
personQueryParams: {
pageNum: 1,
pageSize: 10,
keyword: '',
},
deviceOptions: [],
}
},
watch: {
@ -279,6 +208,7 @@ export default {
this.innerVisible = val
if (val) {
this.loadFaultRecordList()
this.loadDeviceOptions()
}
},
},
@ -315,11 +245,18 @@ export default {
//
onHandleAdd() {
this.selectedPersons = []
this.personQueryParams.keyword = ''
this.personQueryParams.pageNum = 1
this.personSelectDialogVisible = true
this.loadPersonList()
this.addEditTitle = '新增'
this.editId = null
this.addEditForm = {
faultTime: '',
deviceId: '',
}
this.$nextTick(() => {
if (this.$refs.addEditFormRef) {
this.$refs.addEditFormRef.clearValidate()
}
})
this.addEditDialogVisible = true
},
//
@ -327,9 +264,14 @@ export default {
this.addEditTitle = '编辑'
this.editId = row.id
this.addEditForm = {
date: row.date || '',
deviceName: row.deviceName || '',
faultTime: row.faultTime || '',
deviceId: row.devId || '',
}
this.$nextTick(() => {
if (this.$refs.addEditFormRef) {
this.$refs.addEditFormRef.clearValidate()
}
})
this.addEditDialogVisible = true
},
@ -358,6 +300,25 @@ export default {
.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() {
this.$refs.addEditFormRef.validate(async (valid) => {
@ -365,13 +326,9 @@ export default {
this.addEditSubmitting = true
try {
const params = {
date: this.addEditForm.date,
deviceName: this.addEditForm.deviceName,
}
//
if (!this.editId && this.addEditForm.personIds) {
params.personIds = this.addEditForm.personIds
params.personNames = this.addEditForm.personNames
faultTime: this.addEditForm.faultTime,
devName: this.getDeviceName(this.addEditForm.deviceId),
devId: this.addEditForm.deviceId,
}
if (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>

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

View File

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