|
|
|
|
@ -88,10 +88,15 @@
|
|
|
|
|
<el-table-column :label="t('EquipmentManagement.TaskManagement.projectForm')" align="center" prop="projectFormName" min-width="140" sortable />
|
|
|
|
|
<!-- <el-table-column :label="t('EquipmentManagement.TaskManagement.startDate')" align="center" prop="startDate" :formatter="dateFormatter2" width="120" sortable /> -->
|
|
|
|
|
<el-table-column :label="t('EquipmentManagement.TaskManagement.planEndDate')" align="center" prop="endDate" :formatter="dateFormatter2" width="150" sortable />
|
|
|
|
|
<!-- <el-table-column :label="t('EquipmentManagement.TaskManagement.cronExpression')" align="center" prop="cronExpression" min-width="180" /> -->
|
|
|
|
|
<el-table-column :label="t('EquipmentManagement.TaskManagement.enabled')" align="center" prop="enabled" width="90">
|
|
|
|
|
<el-table-column :label="t('EquipmentManagement.TaskManagement.cronExpression')" align="center" prop="cronExpression" min-width="180" />
|
|
|
|
|
<el-table-column :label="t('EquipmentManagement.TaskManagement.enabled')" align="center" prop="enabled" width="110">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.enabled" />
|
|
|
|
|
<el-switch
|
|
|
|
|
:model-value="isTaskEnabled(scope.row)"
|
|
|
|
|
:before-change="() => handleBeforeEnabledChange(scope.row)"
|
|
|
|
|
@click.stop
|
|
|
|
|
@change="(val) => handleEnabledChange(scope.row, val)"
|
|
|
|
|
/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column :label="t('EquipmentManagement.TaskManagement.creatorName')" align="center" prop="creatorName" width="120" sortable />
|
|
|
|
|
@ -107,7 +112,8 @@
|
|
|
|
|
<el-button
|
|
|
|
|
link
|
|
|
|
|
type="success"
|
|
|
|
|
@click="handleCreateTicket(scope.row.id)"
|
|
|
|
|
:disabled="!isTaskEnabled(scope.row)"
|
|
|
|
|
@click="handleCreateTicket(scope.row)"
|
|
|
|
|
:loading="ticketLoadingId === scope.row.id"
|
|
|
|
|
>
|
|
|
|
|
{{ t('EquipmentManagement.TaskManagement.createWorkOrder') }}
|
|
|
|
|
@ -137,7 +143,7 @@
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
|
|
import { DICT_TYPE } from '@/utils/dict'
|
|
|
|
|
import { ElMessageBox } from 'element-plus'
|
|
|
|
|
import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
|
|
|
|
|
import download from '@/utils/download'
|
|
|
|
|
import { TaskManagementApi, TaskManagementVO } from '@/api/mold/taskManagement'
|
|
|
|
|
@ -253,6 +259,13 @@ const openForm = (type: string, row?: TaskManagementVO) => {
|
|
|
|
|
formRef.value.open(type, row)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const isTaskEnabled = (row: TaskManagementVO) => {
|
|
|
|
|
const value = (row as any)?.enabled
|
|
|
|
|
if (typeof value === 'boolean') return value
|
|
|
|
|
const text = String(value ?? '').toLowerCase().trim()
|
|
|
|
|
return text === 'true' || text === '1' || text === 'yes'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const handleDelete = async (id?: number) => {
|
|
|
|
|
if (!id) return
|
|
|
|
|
try {
|
|
|
|
|
@ -264,11 +277,16 @@ const handleDelete = async (id?: number) => {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const ticketLoadingId = ref<number | undefined>(undefined)
|
|
|
|
|
const handleCreateTicket = async (id?: number) => {
|
|
|
|
|
if (!id) return
|
|
|
|
|
ticketLoadingId.value = id
|
|
|
|
|
const handleCreateTicket = async (row?: TaskManagementVO) => {
|
|
|
|
|
if (!row?.id) return
|
|
|
|
|
if (!isTaskEnabled(row)) {
|
|
|
|
|
message.warning(t('EquipmentManagement.TaskManagement.createTicketDisabledTip'))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ticketLoadingId.value = row.id
|
|
|
|
|
try {
|
|
|
|
|
await TaskManagementApi.createTaskManagementTicket(id)
|
|
|
|
|
await TaskManagementApi.createTaskManagementTicket(row.id)
|
|
|
|
|
message.success(t('EquipmentManagement.TaskManagement.createTicketSuccess'))
|
|
|
|
|
} catch {
|
|
|
|
|
message.error(t('EquipmentManagement.TaskManagement.createTicketFail'))
|
|
|
|
|
@ -277,6 +295,34 @@ const handleCreateTicket = async (id?: number) => {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const handleBeforeEnabledChange = async (row: TaskManagementVO) => {
|
|
|
|
|
const isEnabled = isTaskEnabled(row)
|
|
|
|
|
if (isEnabled) return true
|
|
|
|
|
const cronExpression = (row as any)?.cronExpression
|
|
|
|
|
if (typeof cronExpression === 'string' && cronExpression.trim()) return true
|
|
|
|
|
await ElMessageBox.alert(t('EquipmentManagement.TaskManagement.selectCronBeforeEnable'), t('EquipmentManagement.TaskManagement.cronAlertTitle'), {
|
|
|
|
|
type: 'warning',
|
|
|
|
|
confirmButtonText: t('EquipmentManagement.TaskManagement.cronAlertConfirm'),
|
|
|
|
|
closeOnClickModal: false,
|
|
|
|
|
closeOnPressEscape: false
|
|
|
|
|
})
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const handleEnabledChange = async (row: TaskManagementVO, value: string | number | boolean) => {
|
|
|
|
|
if (!row.id) return
|
|
|
|
|
const enabled = value === true || value === 'true' || value === '1' || value === 1
|
|
|
|
|
const oldEnabled = row.enabled
|
|
|
|
|
row.enabled = enabled
|
|
|
|
|
try {
|
|
|
|
|
await TaskManagementApi.updateTaskManagementEnabled(String(row.id), enabled ? 'true' : 'false')
|
|
|
|
|
message.success(t('EquipmentManagement.TaskManagement.updateEnabledSuccess'))
|
|
|
|
|
} catch {
|
|
|
|
|
row.enabled = oldEnabled
|
|
|
|
|
message.error(t('EquipmentManagement.TaskManagement.updateEnabledFail'))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const handleExport = async () => {
|
|
|
|
|
try {
|
|
|
|
|
await message.exportConfirm()
|
|
|
|
|
|