This commit is contained in:
赵正易 2025-03-20 16:30:25 +08:00
commit 4f127ea80f
3 changed files with 386 additions and 389 deletions

View File

@ -101,7 +101,7 @@
<el-col :lg="12">
<el-form-item label="停机时间合计" prop="consumeTime">
<el-time-select v-model="form.consumeTime" start="00:00" step="00:05" end="23:59" />
<el-input v-model="form.consumeTime" placeholder="自动计算" :readonly="true" />
</el-form-item>
</el-col>
@ -353,4 +353,28 @@ function handleDelete(row) {
}
handleQuery()
function calculateConsumeTime(startTime, endTime) {
if (!startTime || !endTime) {
return 0
}
const start = proxy.dayjs(startTime)
const end = proxy.dayjs(endTime)
const diffMinutes = end.diff(start, 'minute')
return diffMinutes > 0 ? diffMinutes : 0
}
watch(
() => [form.value.startTime, form.value.endTime],
([newStartTime, newEndTime]) => {
if (newStartTime && newEndTime) {
const start = proxy.dayjs(newStartTime)
const end = proxy.dayjs(newEndTime)
const diffMinutes = end.diff(start, 'minute')
form.value.consumeTime = diffMinutes > 0 ? diffMinutes : 0
} else {
form.value.consumeTime = 0
}
},
{ deep: true }
)
</script>

View File

@ -85,6 +85,8 @@
<dict-tag :options="options.statusOptions" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column prop="reason" label="引起故障原因" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('reason')" width="200" />
<el-table-column prop="measure" label="解决措施" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('measure')" width="200" />
<el-table-column prop="createdBy" label="创建人" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('createdBy')" />
<el-table-column prop="createdTime" label="创建时间" :show-overflow-tooltip="true" v-if="columns.showColumn('createdTime')" />
<el-table-column prop="updatedBy" label="更新人" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('updatedBy')" />
@ -155,7 +157,17 @@
<UploadImage v-model="form.file" :data="{ uploadType: 1, filePath: 'device/repair/file' }" :limit="1" />
</el-form-item>
</el-col>
<el-col :lg="24">
<el-form-item label="引起故障原因" prop="reason">
<el-input type="textarea" :rows="2" v-model.trim="form.reason" placeholder="请输入引起故障原因" />
</el-form-item>
</el-col>
<el-col :lg="24">
<el-form-item label="解决措施" prop="measure">
<el-input type="textarea" :rows="2" v-model.trim="form.measure" placeholder="请输入解决措施" />
</el-form-item>
</el-col>
<el-col :lg="12" v-if="opertype != 1">
<el-form-item label="状态" prop="status">
<el-select v-model="form.status" placeholder="请选择工单状态">
@ -210,6 +222,8 @@ const columns = ref([
{ visible: true, prop: 'phone', label: '手机号' },
{ visible: true, prop: 'faultDescription', label: '故障描述' },
{ visible: true, prop: 'file', label: '拍照描述' },
{ visible: true, prop: 'reason', label: '引起故障原因' },
{ visible: true, prop: 'measure', label: '解决措施' },
{ visible: true, prop: 'status', label: '状态(启用,关闭 维修中)' },
{ visible: false, prop: 'createdBy', label: '创建人' },
{ visible: false, prop: 'createdTime', label: '创建时间' },
@ -364,7 +378,9 @@ function reset() {
createdBy: null,
createdTime: null,
updatedBy: null,
updatedTime: null
updatedTime: null,
reason: null,
measure: null
}
proxy.resetForm('formRef')
}

View File

@ -4,224 +4,177 @@
* @Date: (2024-05-31)
-->
<template>
<div>
<el-form :model="queryParams" label-position="right" inline ref="queryRef" v-show="showSearch" @submit.prevent>
<el-form-item label="任务名称" prop="taskName">
<el-input clearable v-model.trim="queryParams.taskName" placeholder="请输入任务名称" />
</el-form-item>
<el-form-item label="任务派发时间" prop="timeRange">
<el-date-picker :clearable="true" v-model="queryParams.timeRange" type="daterange" placeholder="选择日期时间区间"></el-date-picker>
</el-form-item>
<el-form-item label="任务类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择任务类型" @change="handleQuery">
<el-option label="全部" :value="-1"></el-option>
<el-option
v-for="item in options.typeOptions"
:key="item.dictValue"
:label="item.dictLabel"
:value="parseInt(item.dictValue)"></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio-group v-model="queryParams.status" @change="handleQuery">
<el-radio-button :value="-1"> 全部 </el-radio-button>
<el-radio-button v-for="item in options.statusOptions" :key="item.dictValue" :value="parseInt(item.dictValue)">
{{ item.dictLabel }}
</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item>
<el-button icon="search" type="primary" @click="handleQuery">{{ $t('btn.search') }}</el-button>
<el-button icon="refresh" @click="resetQuery">{{ $t('btn.reset') }}</el-button>
</el-form-item>
</el-form>
<!-- 工具区域 -->
<el-row :gutter="15" class="mb10">
<el-col :span="1.5">
<el-button type="primary" v-hasPermi="['deviceManagement:devicetaskexecute:add']" plain icon="RefreshRight" @click="handleSynchronize">
{{ $t('btn.synchronize') }}
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" v-hasPermi="['deviceManagement:devicetaskexecute:delete']" plain icon="delete" @click="handleClear">
{{ $t('btn.clean') }}
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="download" @click="handleExport" v-hasPermi="['deviceManagement:devicetaskexecute:export']">
{{ $t('btn.export') }}
</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table
:data="dataList"
v-loading="loading"
ref="table"
border
header-cell-class-name="el-table-header-cell"
highlight-current-row
@sort-change="sortChange"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<el-table-column prop="id" label="数据库编号" align="center" v-if="columns.showColumn('id')" />
<el-table-column prop="taskId" label="任务编号" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('taskId')" />
<el-table-column
prop="taskName"
label="任务名称"
align="center"
min-width="120"
:show-overflow-tooltip="true"
v-if="columns.showColumn('taskName')" />
<el-table-column prop="person" label="执行人" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('person')" />
<el-table-column prop="type" label="任务类型" align="center" v-if="columns.showColumn('type')">
<template #default="scope">
<dict-tag :options="options.typeOptions" :value="scope.row.type" />
</template>
</el-table-column>
<el-table-column
prop="distributedTime"
label="任务派发时间"
align="center"
min-width="140"
:show-overflow-tooltip="true"
v-if="columns.showColumn('distributedTime')" />
<el-table-column prop="startTime" label="任务开始时间" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('startTime')" />
<el-table-column prop="endTime" label="任务结束时间" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('endTime')" />
<el-table-column prop="consumeTime" label="耗时min" align="center">
<template #default="scope">
<span style="color: red; font-size: larger">{{ scope.row.consumeTime }}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="状态" align="center" v-if="columns.showColumn('status')">
<template #default="scope">
<dict-tag :options="options.statusOptions" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('remark')" />
<el-table-column prop="createdBy" label="创建人" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('createdBy')" />
<el-table-column prop="createdTime" label="创建时间" :show-overflow-tooltip="true" v-if="columns.showColumn('createdTime')" />
<el-table-column prop="updatedBy" label="更新人" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('updatedBy')" />
<el-table-column prop="updatedTime" label="更新时间" :show-overflow-tooltip="true" v-if="columns.showColumn('updatedTime')" />
<el-table-column label="任务执行" width="100" fixed="right">
<template #default="scope">
<el-button type="info" size="small" icon="EditPen" @click="handleExecute(scope.row)">执行</el-button>
</template>
</el-table-column>
<el-table-column label="操作" width="160" fixed="right">
<template #default="scope">
<el-button type="primary" size="small" icon="view" title="详情" @click="handlePreview(scope.row)"></el-button>
<el-button
type="success"
size="small"
icon="edit"
title="编辑"
v-hasPermi="['deviceManagement:devicetaskexecute:edit']"
@click="handleUpdate(scope.row)"></el-button>
<el-button
type="danger"
size="small"
icon="delete"
title="删除"
v-hasPermi="['deviceManagement:devicetaskexecute:delete']"
@click="handleDelete(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改任务执行对话框 -->
<el-dialog :title="title" :lock-scroll="false" v-model="open">
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row :gutter="20">
<el-col :lg="24">
<div>
<el-form :model="queryParams" label-position="right" inline ref="queryRef" v-show="showSearch" @submit.prevent>
<el-form-item label="任务名称" prop="taskName">
<el-input disabled v-model="form.taskName" placeholder="请输入任务名称" />
<el-input clearable v-model.trim="queryParams.taskName" placeholder="请输入任务名称" />
</el-form-item>
<el-form-item label="任务派发时间" prop="timeRange">
<el-date-picker :clearable="true" v-model="queryParams.timeRange" type="daterange" placeholder="选择日期时间区间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="任务类型" prop="type">
<el-select disabled v-model="form.type" placeholder="请选择任务类型">
<el-option
v-for="item in options.typeOptions"
:key="item.dictValue"
:label="item.dictLabel"
:value="parseInt(item.dictValue)"></el-option>
</el-select>
<el-select v-model="queryParams.type" placeholder="请选择任务类型" @change="handleQuery">
<el-option label="全部" :value="-1"></el-option>
<el-option v-for="item in options.typeOptions" :key="item.dictValue" :label="item.dictLabel" :value="parseInt(item.dictValue)"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="任务派发时间" prop="distributedTime">
<el-date-picker
disabled
v-model="form.distributedTime"
type="datetime"
:teleported="false"
placeholder="选择日期时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="任务开始时间" prop="startTime">
<el-date-picker
:disabled="opertype === 3"
v-model="form.startTime"
type="datetime"
:teleported="false"
placeholder="选择日期时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="任务结束时间" prop="endTime">
<el-date-picker
:disabled="opertype === 3"
v-model="form.endTime"
type="datetime"
:teleported="false"
placeholder="选择日期时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :lg="24">
<el-form-item label="状态" prop="status">
<el-radio-group :disabled="opertype === 3" v-model="form.status">
<el-radio-button v-for="item in options.statusOptions" :key="item.dictValue" :value="parseInt(item.dictValue)">
{{ item.dictLabel }}
</el-radio-button>
</el-radio-group>
<el-radio-group v-model="queryParams.status" @change="handleQuery">
<el-radio-button :value="-1"> 全部 </el-radio-button>
<el-radio-button v-for="item in options.statusOptions" :key="item.dictValue" :value="parseInt(item.dictValue)">
{{ item.dictLabel }}
</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :lg="24">
<el-form-item label="备注" prop="remark">
<el-input
:disabled="opertype === 3"
type="textarea"
:maxlength="200"
:show-word-limit="true"
v-model="form.remark"
placeholder="请输入备注" />
<el-form-item>
<el-button icon="search" type="primary" @click="handleQuery">{{ $t('btn.search') }}</el-button>
<el-button icon="refresh" @click="resetQuery">{{ $t('btn.reset') }}</el-button>
</el-form-item>
</el-col>
</el-form>
<!-- 工具区域 -->
<el-row :gutter="15" class="mb10">
<el-col :span="1.5">
<el-button type="primary" v-hasPermi="['deviceManagement:devicetaskexecute:add']" plain icon="RefreshRight" @click="handleSynchronize">
{{ $t('btn.synchronize') }}
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" v-hasPermi="['deviceManagement:devicetaskexecute:delete']" plain icon="delete" @click="handleClear">
{{ $t('btn.clean') }}
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="download" @click="handleExport" v-hasPermi="['deviceManagement:devicetaskexecute:export']">
{{ $t('btn.export') }}
</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
</el-form>
<template #footer v-if="opertype != 3">
<el-button text @click="cancel">{{ $t('btn.cancel') }}</el-button>
<el-button type="primary" @click="submitForm">{{ $t('btn.submit') }}</el-button>
</template>
</el-dialog>
<TheTaskExecuteDialog v-model="open2" :executeKey="executeKey" :fkPlanId="fkPlanId" :planType="planType"> </TheTaskExecuteDialog>
</div>
<el-table
:data="dataList"
v-loading="loading"
ref="table"
border
header-cell-class-name="el-table-header-cell"
highlight-current-row
@sort-change="sortChange"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="50" align="center" />
<el-table-column prop="id" label="数据库编号" align="center" v-if="columns.showColumn('id')" />
<el-table-column prop="taskId" label="任务编号" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('taskId')" />
<el-table-column prop="taskName" label="任务名称" align="center" min-width="120" :show-overflow-tooltip="true" v-if="columns.showColumn('taskName')" />
<el-table-column prop="person" label="执行人" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('person')" />
<el-table-column prop="type" label="任务类型" align="center" v-if="columns.showColumn('type')">
<template #default="scope">
<dict-tag :options="options.typeOptions" :value="scope.row.type" />
</template>
</el-table-column>
<el-table-column prop="inner_type" label="内部类型" align="center" v-if="columns.showColumn('inner_type')">
<template #default="scope">
<dict-tag :options="options.innertypeOptions" :value="scope.row.type" />
</template>
</el-table-column>
<el-table-column prop="distributedTime" label="任务派发时间" align="center" min-width="140" :show-overflow-tooltip="true" v-if="columns.showColumn('distributedTime')" />
<el-table-column prop="startTime" label="任务开始时间" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('startTime')" />
<el-table-column prop="endTime" label="任务结束时间" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('endTime')" />
<el-table-column prop="consumeTime" label="耗时min" align="center">
<template #default="scope">
<span style="color: red; font-size: larger">{{ scope.row.consumeTime }}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="状态" align="center" v-if="columns.showColumn('status')">
<template #default="scope">
<dict-tag :options="options.statusOptions" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('remark')" />
<el-table-column prop="createdBy" label="创建人" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('createdBy')" />
<el-table-column prop="createdTime" label="创建时间" :show-overflow-tooltip="true" v-if="columns.showColumn('createdTime')" />
<el-table-column prop="updatedBy" label="更新人" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('updatedBy')" />
<el-table-column prop="updatedTime" label="更新时间" :show-overflow-tooltip="true" v-if="columns.showColumn('updatedTime')" />
<el-table-column label="任务执行" width="100" fixed="right">
<template #default="scope">
<el-button type="info" size="small" icon="EditPen" @click="handleExecute(scope.row)">执行</el-button>
</template>
</el-table-column>
<el-table-column label="操作" width="160" fixed="right">
<template #default="scope">
<el-button type="primary" size="small" icon="view" title="详情" @click="handlePreview(scope.row)"></el-button>
<el-button type="success" size="small" icon="edit" title="编辑" v-hasPermi="['deviceManagement:devicetaskexecute:edit']" @click="handleUpdate(scope.row)"></el-button>
<el-button type="danger" size="small" icon="delete" title="删除" v-hasPermi="['deviceManagement:devicetaskexecute:delete']" @click="handleDelete(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改任务执行对话框 -->
<el-dialog :title="title" :lock-scroll="false" v-model="open">
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row :gutter="20">
<el-col :lg="24">
<el-form-item label="任务名称" prop="taskName">
<el-input disabled v-model="form.taskName" placeholder="请输入任务名称" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="任务类型" prop="type">
<el-select disabled v-model="form.type" placeholder="请选择任务类型">
<el-option v-for="item in options.typeOptions" :key="item.dictValue" :label="item.dictLabel" :value="parseInt(item.dictValue)"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="任务派发时间" prop="distributedTime">
<el-date-picker disabled v-model="form.distributedTime" type="datetime" :teleported="false" placeholder="选择日期时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="任务开始时间" prop="startTime">
<el-date-picker :disabled="opertype === 3" v-model="form.startTime" type="datetime" :teleported="false" placeholder="选择日期时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="任务结束时间" prop="endTime">
<el-date-picker :disabled="opertype === 3" v-model="form.endTime" type="datetime" :teleported="false" placeholder="选择日期时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :lg="24">
<el-form-item label="状态" prop="status">
<el-radio-group :disabled="opertype === 3" v-model="form.status">
<el-radio-button v-for="item in options.statusOptions" :key="item.dictValue" :value="parseInt(item.dictValue)">
{{ item.dictLabel }}
</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :lg="24">
<el-form-item label="备注" prop="remark">
<el-input :disabled="opertype === 3" type="textarea" :maxlength="200" :show-word-limit="true" v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer v-if="opertype != 3">
<el-button text @click="cancel">{{ $t('btn.cancel') }}</el-button>
<el-button type="primary" @click="submitForm">{{ $t('btn.submit') }}</el-button>
</template>
</el-dialog>
<TheTaskExecuteDialog v-model="open2" :executeKey="executeKey" :fkPlanId="fkPlanId" :planType="planType"> </TheTaskExecuteDialog>
</div>
</template>
<script setup name="devicetaskexecute">
import {
listDeviceTaskExecute,
addDeviceTaskExecute,
delDeviceTaskExecute,
updateDeviceTaskExecute,
getDeviceTaskExecute,
clearDeviceTaskExecute,
setTaskStartTime
listDeviceTaskExecute,
addDeviceTaskExecute,
delDeviceTaskExecute,
updateDeviceTaskExecute,
getDeviceTaskExecute,
clearDeviceTaskExecute,
setTaskStartTime
} from '@/api/deviceManagement/devicetaskexecute.js'
import { default as TheTaskExecuteDialog } from './TheTaskExecuteDialog'
import importData from '@/components/ImportData'
@ -231,31 +184,31 @@ const loading = ref(false)
const showSearch = ref(true)
const defaultTimeRange = ref(null)
const queryParams = reactive({
pageNum: 1,
pageSize: 10,
timeRange: defaultTimeRange,
timeStart: null,
timeEnd: null,
type: -1,
status: -1,
sort: 'createdTime',
sortType: 'desc'
pageNum: 1,
pageSize: 10,
timeRange: defaultTimeRange,
timeStart: null,
timeEnd: null,
type: -1,
status: -1,
sort: 'createdTime',
sortType: 'desc'
})
const columns = ref([
{ visible: false, prop: 'id', label: '主键' },
{ visible: false, prop: 'taskId', label: '任务id' },
{ visible: true, prop: 'taskName', label: '任务名称' },
{ visible: true, prop: 'person', label: '执行人' },
{ visible: true, prop: 'type', label: '任务类型' },
{ visible: true, prop: 'distributedTime', label: '任务派发时间' },
{ visible: true, prop: 'startTime', label: '任务执行——开始时间' },
{ visible: true, prop: 'endTime', label: '任务执行——结束时间' },
{ visible: true, prop: 'status', label: '状态' },
{ visible: true, prop: 'remark', label: '备注' },
{ visible: false, prop: 'createdBy', label: '创建人' },
{ visible: false, prop: 'createdTime', label: '创建时间' },
{ visible: false, prop: 'updatedBy', label: '更新人' },
{ visible: false, prop: 'updatedTime', label: '更新时间' }
{ visible: false, prop: 'id', label: '主键' },
{ visible: false, prop: 'taskId', label: '任务id' },
{ visible: true, prop: 'taskName', label: '任务名称' },
{ visible: true, prop: 'person', label: '执行人' },
{ visible: true, prop: 'type', label: '任务类型' },
{ visible: true, prop: 'distributedTime', label: '任务派发时间' },
{ visible: true, prop: 'startTime', label: '任务执行——开始时间' },
{ visible: true, prop: 'endTime', label: '任务执行——结束时间' },
{ visible: true, prop: 'status', label: '状态' },
{ visible: true, prop: 'remark', label: '备注' },
{ visible: false, prop: 'createdBy', label: '创建人' },
{ visible: false, prop: 'createdTime', label: '创建时间' },
{ visible: false, prop: 'updatedBy', label: '更新人' },
{ visible: false, prop: 'updatedTime', label: '更新时间' }
])
const total = ref(0)
const dataList = ref([])
@ -264,61 +217,61 @@ const queryRef = ref()
var dictParams = []
function getList() {
loading.value = true
listDeviceTaskExecute(queryParams).then((res) => {
const { code, data } = res
if (code == 200) {
dataList.value = data.result
total.value = data.totalNum
loading.value = false
}
})
loading.value = true
listDeviceTaskExecute(queryParams).then((res) => {
const { code, data } = res
if (code == 200) {
dataList.value = data.result
total.value = data.totalNum
loading.value = false
}
})
}
const consume_time = computed((date1, date2) => {
var milliseconds1 = date1.getTime()
var milliseconds2 = date2.getTime()
var milliseconds1 = date1.getTime()
var milliseconds2 = date2.getTime()
//
var millisecondsDiff = Math.abs(milliseconds2 - milliseconds1)
//
var millisecondsDiff = Math.abs(milliseconds2 - milliseconds1)
var minutesDiff = millisecondsDiff / (1000 * 60)
return minutesDiff
var minutesDiff = millisecondsDiff / (1000 * 60)
return minutesDiff
})
//
function handleQuery() {
queryParams.pageNum = 1
getList()
queryParams.pageNum = 1
getList()
}
//
function resetQuery() {
proxy.resetForm('queryRef')
handleQuery()
proxy.resetForm('queryRef')
handleQuery()
}
//
function handleSelectionChange(selection) {
ids.value = selection.map((item) => item.id)
single.value = selection.length != 1
multiple.value = !selection.length
ids.value = selection.map((item) => item.id)
single.value = selection.length != 1
multiple.value = !selection.length
}
//
function sortChange(column) {
var sort = undefined
var sortType = undefined
var sort = undefined
var sortType = undefined
if (column.prop != null && column.order != null) {
sort = column.prop
sortType = column.order
}
queryParams.sort = sort
queryParams.sortType = sortType
handleQuery()
if (column.prop != null && column.order != null) {
sort = column.prop
sortType = column.order
}
queryParams.sort = sort
queryParams.sortType = sortType
handleQuery()
}
//
function handleSynchronize() {
proxy.$modal.msgSuccess('同步成功!')
proxy.$modal.msgSuccess('同步成功!')
}
//
const open2 = ref(false)
@ -327,13 +280,13 @@ const fkPlanId = ref('')
const planType = ref(1)
//
function handleExecute(row) {
planType.value = row.type
fkPlanId.value = row.planId
executeKey.value = row.id
setTaskStartTime({ id: executeKey.value })
// open2.value = true;
proxy.$router.push({ name: 'TheTaskExecuteView', query: { planType: row.type, fkPlanId: row.planId, executeKey: row.id } })
// proxy.$router.push({ path: '/deviceManagement/deviceTaskExecute', query: { planType: row.type, fkPlanId: row.taskId, executeKey: row.id } });
planType.value = row.type
fkPlanId.value = row.planId
executeKey.value = row.id
setTaskStartTime({ id: executeKey.value })
// open2.value = true;
proxy.$router.push({ name: 'TheTaskExecuteView', query: { planType: row.type, fkPlanId: row.planId, executeKey: row.id } })
// proxy.$router.push({ path: '/deviceManagement/deviceTaskExecute', query: { planType: row.type, fkPlanId: row.taskId, executeKey: row.id } });
}
/*************** form操作 ***************/
@ -344,132 +297,136 @@ const opertype = ref(0)
const open = ref(false)
const state = reactive({
single: true,
multiple: true,
form: {},
rules: {
// type: [{ required: true, message: '12', trigger: 'change', type: 'number' }]
},
options: {
// 12 eg:{ dictLabel: '', dictValue: '0'}
typeOptions: [
{ dictLabel: '巡检', dictValue: 1, listClass: 'primary' },
{ dictLabel: '点检', dictValue: 2, listClass: 'warning' }
],
// 0- 1- 2- 3-
// eg:{ dictLabel: '', dictValue: '0'}
statusOptions: [
{ dictLabel: '未执行', dictValue: 0, listClass: 'info' },
{ dictLabel: '执行中', dictValue: 1, listClass: 'primary' },
{ dictLabel: '已完成', dictValue: 2, listClass: 'success' },
{ dictLabel: '超时', dictValue: 3, listClass: 'danger' }
]
}
single: true,
multiple: true,
form: {},
rules: {
// type: [{ required: true, message: '12', trigger: 'change', type: 'number' }]
},
options: {
// 12 eg:{ dictLabel: '', dictValue: '0'}
typeOptions: [
{ dictLabel: '巡检', dictValue: 1, listClass: 'primary' },
{ dictLabel: '点检', dictValue: 2, listClass: 'warning' }
],
innertypeOptions: [
{ dictLabel: '检查', dictValue: 1, listClass: 'primary' },
{ dictLabel: '保养', dictValue: 2, listClass: 'warning' }
],
// 0- 1- 2- 3-
// eg:{ dictLabel: '', dictValue: '0'}
statusOptions: [
{ dictLabel: '未执行', dictValue: 0, listClass: 'info' },
{ dictLabel: '执行中', dictValue: 1, listClass: 'primary' },
{ dictLabel: '已完成', dictValue: 2, listClass: 'success' },
{ dictLabel: '超时', dictValue: 3, listClass: 'danger' }
]
}
})
const { form, rules, options, single, multiple } = toRefs(state)
// dialog
function cancel() {
open.value = false
reset()
open.value = false
reset()
}
//
function reset() {
form.value = {
id: null,
taskName: null,
taskId: null,
type: 1,
distributedTime: null,
startTime: null,
endTime: null,
status: 0,
remark: null,
createdBy: null,
createdTime: null,
updatedBy: null,
updatedTime: null
}
proxy.resetForm('formRef')
form.value = {
id: null,
taskName: null,
taskId: null,
type: 1,
distributedTime: null,
startTime: null,
endTime: null,
status: 0,
remark: null,
createdBy: null,
createdTime: null,
updatedBy: null,
updatedTime: null
}
proxy.resetForm('formRef')
}
//
function handleAdd() {
reset()
open.value = true
title.value = '添加任务执行'
opertype.value = 1
reset()
open.value = true
title.value = '添加任务执行'
opertype.value = 1
}
//
function handleUpdate(row) {
reset()
const id = row.id || ids.value
getDeviceTaskExecute(id).then((res) => {
const { code, data } = res
if (code == 200) {
open.value = true
title.value = '修改任务执行'
opertype.value = 2
reset()
const id = row.id || ids.value
getDeviceTaskExecute(id).then((res) => {
const { code, data } = res
if (code == 200) {
open.value = true
title.value = '修改任务执行'
opertype.value = 2
form.value = {
...data
}
}
})
form.value = {
...data
}
}
})
}
// &
function submitForm() {
proxy.$refs['formRef'].validate((valid) => {
if (valid) {
if (form.value.id != undefined && opertype.value === 2) {
updateDeviceTaskExecute(form.value).then((res) => {
proxy.$modal.msgSuccess('修改成功')
open.value = false
getList()
})
} else {
addDeviceTaskExecute(form.value).then((res) => {
proxy.$modal.msgSuccess('新增成功')
open.value = false
getList()
})
}
}
})
proxy.$refs['formRef'].validate((valid) => {
if (valid) {
if (form.value.id != undefined && opertype.value === 2) {
updateDeviceTaskExecute(form.value).then((res) => {
proxy.$modal.msgSuccess('修改成功')
open.value = false
getList()
})
} else {
addDeviceTaskExecute(form.value).then((res) => {
proxy.$modal.msgSuccess('新增成功')
open.value = false
getList()
})
}
}
})
}
//
function handleDelete(row) {
const Ids = row.id || ids.value
const Ids = row.id || ids.value
proxy
.$confirm('是否确认删除参数编号为"' + Ids + '"的数据项?')
.then(function () {
return delDeviceTaskExecute(Ids)
})
.then(() => {
getList()
proxy.$modal.msgSuccess('删除成功')
})
proxy
.$confirm('是否确认删除参数编号为"' + Ids + '"的数据项?')
.then(function () {
return delDeviceTaskExecute(Ids)
})
.then(() => {
getList()
proxy.$modal.msgSuccess('删除成功')
})
}
//
function handleClear() {
proxy
.$confirm('是否确认清空所有数据项?清空后不可恢复!', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(function () {
return clearDeviceTaskExecute()
})
.then(() => {
handleQuery()
proxy.$modal.msgSuccess('清空成功')
})
proxy
.$confirm('是否确认清空所有数据项?清空后不可恢复!', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(function () {
return clearDeviceTaskExecute()
})
.then(() => {
handleQuery()
proxy.$modal.msgSuccess('清空成功')
})
}
/**
@ -477,37 +434,37 @@ function handleClear() {
* @param {*} row
*/
function handlePreview(row) {
reset()
open.value = true
title.value = '查看'
opertype.value = 3
form.value = { ...row }
reset()
open.value = true
title.value = '查看'
opertype.value = 3
form.value = { ...row }
}
//
const handleFileSuccess = (response) => {
const { item1, item2 } = response.data
var error = ''
item2.forEach((item) => {
error += item.storageMessage + ','
})
proxy.$alert(item1 + '<p>' + error + '</p>', '导入结果', {
dangerouslyUseHTMLString: true
})
getList()
const { item1, item2 } = response.data
var error = ''
item2.forEach((item) => {
error += item.storageMessage + ','
})
proxy.$alert(item1 + '<p>' + error + '</p>', '导入结果', {
dangerouslyUseHTMLString: true
})
getList()
}
//
function handleExport() {
proxy
.$confirm('是否确认导出任务执行数据项?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(async () => {
await proxy.downFile('/dev/DeviceTaskExecute/export', { ...queryParams })
})
proxy
.$confirm('是否确认导出任务执行数据项?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(async () => {
await proxy.downFile('/dev/DeviceTaskExecute/export', { ...queryParams })
})
}
handleQuery()