|
|
@@ -36,24 +36,6 @@
|
|
|
@keyup.enter="handleQuery"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
-<!-- <el-form-item label="工单状态" prop="workOrderStatus" label-position="top">-->
|
|
|
-<!-- <el-select v-model="queryParams.workOrderStatus" placeholder="请选择工单状态" clearable>-->
|
|
|
-<!-- <el-option-->
|
|
|
-<!-- v-for="dict in gxt_work_order_status"-->
|
|
|
-<!-- :key="dict.value"-->
|
|
|
-<!-- :label="dict.label"-->
|
|
|
-<!-- :value="dict.value"-->
|
|
|
-<!-- />-->
|
|
|
-<!-- </el-select>-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- <el-form-item label="工单来源" prop="orderSource">-->
|
|
|
-<!-- <el-input-->
|
|
|
-<!-- v-model="queryParams.orderSource"-->
|
|
|
-<!-- placeholder="请输入工单来源"-->
|
|
|
-<!-- clearable-->
|
|
|
-<!-- @keyup.enter="handleQuery"-->
|
|
|
-<!-- />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
</el-form>
|
|
|
<div style="float: right;">
|
|
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
|
|
@@ -61,14 +43,6 @@
|
|
|
</div>
|
|
|
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
- <!-- <el-col :span="1.5">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- icon="Plus"
|
|
|
- @click="handleAdd"
|
|
|
- v-hasPermi="['worklog:Gxt:order:add']"
|
|
|
- >手动创建</el-button>
|
|
|
- </el-col> -->
|
|
|
<!-- <el-col :span="1.5">
|
|
|
<el-button
|
|
|
type="success"
|
|
|
@@ -87,20 +61,20 @@
|
|
|
v-hasPermi="['worklog:Gxt:order:remove']"
|
|
|
>删除</el-button>
|
|
|
</el-col> -->
|
|
|
-<!-- <el-col :span="1.5">-->
|
|
|
-<!-- <el-button-->
|
|
|
-<!-- type="info"-->
|
|
|
-<!-- icon="Upload"-->
|
|
|
-<!-- @click="handleImport"-->
|
|
|
-<!-- v-hasPermi="['gxt:maintenance:order:import']"-->
|
|
|
-<!-- >导入</el-button>-->
|
|
|
-<!-- </el-col>-->
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ icon="Upload"
|
|
|
+ @click="handleImport"
|
|
|
+ v-hasPermi="['gxt:order:import']"
|
|
|
+ >导入</el-button>
|
|
|
+ </el-col>
|
|
|
<!-- <el-col :span="1.5">-->
|
|
|
<!-- <el-button-->
|
|
|
<!-- type="warning"-->
|
|
|
<!-- icon="Download"-->
|
|
|
<!-- @click="handleExport"-->
|
|
|
-<!-- v-hasPermi="['gxt:maintenance:order:export']"-->
|
|
|
+<!-- v-hasPermi="['gxt:order:export']"-->
|
|
|
<!-- >导出</el-button>-->
|
|
|
<!-- </el-col>-->
|
|
|
<!-- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> -->
|
|
|
@@ -121,7 +95,8 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="维保类型" align="center" prop="inspectionType" width="100">
|
|
|
<template #default="scope">
|
|
|
- <dict-tag :options="gxt_inspection_type" :value="scope.row.inspectionType"/>
|
|
|
+ <dict-tag v-if="scope.row.inspectionType" :options="gxt_inspection_type" :value="scope.row.inspectionType"/>
|
|
|
+ <span v-else>-</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="工单状态" align="center" prop="workOrderStatus" width="100">
|
|
|
@@ -154,23 +129,6 @@
|
|
|
{{ scope.row.misNo || '-' }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
-<!-- <el-table-column label="计划检修日期" align="center" prop="planStartTime" width="160">-->
|
|
|
-<!-- <template #default="scope">-->
|
|
|
-<!-- <span>{{ parseTime(scope.row.planStartTime, '{y}-{m}-{d} {h}:{i}') }}</span>-->
|
|
|
-<!-- </template>-->
|
|
|
-<!-- </el-table-column>-->
|
|
|
-<!-- <el-table-column label="计划结束时间" align="center" prop="planEndTime" width="160">-->
|
|
|
-<!-- <template #default="scope">-->
|
|
|
-<!-- <span>{{ parseTime(scope.row.planEndTime, '{y}-{m}-{d} {h}:{i}') }}</span>-->
|
|
|
-<!-- </template>-->
|
|
|
-<!-- </el-table-column>-->
|
|
|
-<!-- <el-table-column label="工单来源" align="center" prop="orderSource" width="100" />-->
|
|
|
-<!-- <el-table-column label="下发人" align="center" prop="assignUserName" width="100" />-->
|
|
|
-<!-- <el-table-column label="下发时间" align="center" prop="assignTime" width="100" >-->
|
|
|
-<!-- <template #default="scope">-->
|
|
|
-<!-- <span>{{ parseTime(scope.row.assignTime, '{y}-{m}-{d} {h}:{i}') }}</span>-->
|
|
|
-<!-- </template>-->
|
|
|
-<!-- </el-table-column>-->
|
|
|
<el-table-column label="接单人" align="center" prop="acceptUserName" width="100">
|
|
|
<template #default="scope">
|
|
|
{{ scope.row.acceptUserName || '-' }}
|
|
|
@@ -196,84 +154,44 @@
|
|
|
<span>{{ scope.row.realEndTime ? parseTime(scope.row.realEndTime, '{y}-{m}-{d} {h}:{i}') : '-' }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
-<!-- <el-table-column label="班组组长" align="center" prop="teamLeaderName" width="100" />-->
|
|
|
-<!-- <el-table-column label="工作组成员" align="center" prop="workGroupMemberName" width="100" />-->
|
|
|
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width" fixed="right" >
|
|
|
<template #default="scope">
|
|
|
- <!-- 草稿状态:显示编辑和删除按钮 -->
|
|
|
- <el-button link type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['gxt:maintenance:order:edit']" v-if="scope.row.workOrderStatus === 'draft'">
|
|
|
- <i class="fa fa-edit"></i>编辑
|
|
|
- </el-button>
|
|
|
-<!-- <el-button link type="danger" @click="handleDelete(scope.row)" v-if="scope.row.workOrderStatus === 'draft'">-->
|
|
|
-<!-- <i class="fa fa-trash"></i>删除-->
|
|
|
-<!-- </el-button>-->
|
|
|
-
|
|
|
- <!-- 待派单状态:只显示派单按钮 -->
|
|
|
- <el-button link type="primary" @click="handleAssign(scope.row)" v-if="scope.row.workOrderStatus === 'to_assign'">
|
|
|
- <i class="fa fa-user-plus"></i>派单
|
|
|
- </el-button>
|
|
|
-
|
|
|
<!-- 已派单状态:只显示确认按钮 -->
|
|
|
- <el-button link type="success" @click="handleAccept(scope.row)" v-if="scope.row.workOrderStatus === 'assigned'">
|
|
|
+ <el-button link type="success" @click="handleAccept(scope.row)" v-if="scope.row.workOrderStatus === 'assigned'" v-hasPermi="['gxt:order:accept']">
|
|
|
<i class="fa fa-check"></i>接单
|
|
|
</el-button>
|
|
|
|
|
|
- <!-- 已接单状态:显示开始、暂停、挂起按钮 -->
|
|
|
-<!-- <el-button link type="success" @click="handleStart(scope.row)" v-if="scope.row.workOrderStatus === 'accepted' || scope.row.workOrderStatus === 'suspended'">-->
|
|
|
-<!-- <i class="fa fa-play"></i>开始-->
|
|
|
-<!-- </el-button>-->
|
|
|
-<!-- <el-button link type="warning" @click="handlePause(scope.row)" v-if="scope.row.workOrderStatus === 'accepted'">-->
|
|
|
-<!-- <i class="fa fa-pause"></i>暂停-->
|
|
|
-<!-- </el-button>-->
|
|
|
-<!-- <el-button link type="danger" @click="handleSuspend(scope.row)" v-if="scope.row.workOrderStatus === 'accepted'">-->
|
|
|
-<!-- <i class="fa fa-stop"></i>挂起-->
|
|
|
-<!-- </el-button>-->
|
|
|
-
|
|
|
- <!-- 处理中状态:显示暂停、挂起、结束按钮 -->
|
|
|
-<!-- <el-button link type="warning" @click="handlePause(scope.row)" v-if="scope.row.workOrderStatus === 'processing'">-->
|
|
|
-<!-- <i class="fa fa-pause"></i>暂停-->
|
|
|
-<!-- </el-button>-->
|
|
|
- <el-button link type="danger" @click="handleSuspend(scope.row)" v-if="scope.row.workOrderStatus === 'processing' || scope.row.workOrderStatus === 'to_finish'">
|
|
|
+ <el-button link type="danger" @click="handleSuspend(scope.row)" v-if="scope.row.workOrderStatus === 'processing' || scope.row.workOrderStatus === 'to_finish'" v-hasPermi="['gxt:order:suspend']">
|
|
|
<i class="fa fa-stop"></i>挂起
|
|
|
</el-button>
|
|
|
-<!-- <el-button link type="success" @click="handleComplete(scope.row)" v-if="scope.row.workOrderStatus === 'processing'">-->
|
|
|
-<!-- <i class="fa fa-check"></i>结束-->
|
|
|
-<!-- </el-button>-->
|
|
|
+
|
|
|
<!-- 暂停中状态:显示继续按钮 -->
|
|
|
- <el-button link type="primary" @click="handleResume(scope.row)" v-if="scope.row.workOrderStatus === 'suspended'">
|
|
|
+ <el-button link type="primary" @click="handleResume(scope.row)" v-if="scope.row.workOrderStatus === 'suspended'" v-hasPermi="['gxt:order:complete']">
|
|
|
<i class="fa fa-play"></i>恢复
|
|
|
</el-button>
|
|
|
-<!-- <el-button link type="success" @click="handleResume(scope.row)" v-if="scope.row.workOrderStatus === 'paused'">-->
|
|
|
-<!-- <i class="fa fa-play"></i>继续-->
|
|
|
-<!-- </el-button>-->
|
|
|
-
|
|
|
-<!-- <!– 已挂起状态:显示重启按钮 –>-->
|
|
|
-<!-- <el-button link type="primary" @click="handleRestart(scope.row)" v-if="scope.row.workOrderStatus === 'suspended'">-->
|
|
|
-<!-- <i class="fa fa-refresh"></i>重启-->
|
|
|
-<!-- </el-button>-->
|
|
|
|
|
|
<!-- 待审批状态:显示审批按钮 -->
|
|
|
- <el-button link type="primary" @click="handleApprove(scope.row)" v-if="scope.row.workOrderStatus === 'to_approve'">
|
|
|
+ <el-button link type="primary" @click="handleApprove(scope.row)" v-if="scope.row.workOrderStatus === 'to_approve'" v-hasPermi="['gxt:order:approve']">
|
|
|
<i class="fa fa-check-circle"></i>审批
|
|
|
</el-button>
|
|
|
|
|
|
<!-- 待结单状态:显示结单按钮 -->
|
|
|
- <el-button link type="success" @click="handleFinish(scope.row)" v-if="scope.row.workOrderStatus === 'processing' || scope.row.workOrderStatus === 'to_finish'">
|
|
|
+ <el-button link type="success" @click="handleFinish(scope.row)" v-if="scope.row.workOrderStatus === 'processing' || scope.row.workOrderStatus === 'to_finish'" v-hasPermi="['gxt:order:complete']">
|
|
|
<i class="fa fa-check"></i>结单
|
|
|
</el-button>
|
|
|
|
|
|
<!-- 已完成状态:显示评分按钮 -->
|
|
|
- <el-button link type="warning" @click="handleRate(scope.row)" v-if="scope.row.workOrderStatus === 'completed' && scope.row.score === null">
|
|
|
+ <el-button link type="warning" @click="handleRate(scope.row)" v-if="scope.row.workOrderStatus === 'completed' && scope.row.score === null" v-hasPermi="['gxt:order:complete']">
|
|
|
<i class="fa fa-star"></i>评分
|
|
|
</el-button>
|
|
|
|
|
|
<!-- 已完成状态:显示复运按钮 -->
|
|
|
- <el-button link type="info" @click="handleRestart(scope.row)" v-if="scope.row.workOrderStatus === 'completed' && scope.row.restartTime === null">
|
|
|
+ <el-button link type="info" @click="handleRestart(scope.row)" v-if="scope.row.workOrderStatus === 'completed' && scope.row.restartTime === null" v-hasPermi="['gxt:order:complete']">
|
|
|
<i class="fa fa-refresh"></i>复运
|
|
|
</el-button>
|
|
|
|
|
|
<!-- 查看按钮对所有状态都显示 -->
|
|
|
- <el-button link type="info" @click="handleDetail(scope.row)" v-hasPermi="['gxt:maintenance:order:query']">
|
|
|
+ <el-button link type="info" @click="handleDetail(scope.row)" v-hasPermi="['gxt:order:query']">
|
|
|
<i class="fa fa-eye"></i>查看
|
|
|
</el-button>
|
|
|
</template>
|
|
|
@@ -287,195 +205,6 @@
|
|
|
v-model:limit="queryParams.pageSize"
|
|
|
@pagination="getList"
|
|
|
/>
|
|
|
-
|
|
|
- <!-- 添加或修改维保工单对话框 -->
|
|
|
- <el-dialog :title="title" v-model="open" width="800px" append-to-body>
|
|
|
- <el-form ref="orderRef" :model="form" :rules="rules" label-width="120px" label-position="top">
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="工单编码" prop="workOrderProjectNo">
|
|
|
- <el-input v-model="form.workOrderProjectNo" placeholder="请输入工单编码" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="风机编号" prop="pcsDeviceName">
|
|
|
- <el-input v-model="form.pcsDeviceName" placeholder="请输入风机编号" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
-<!-- <el-form-item label="工单状态" prop="workOrderStatus">-->
|
|
|
-<!-- <el-select v-model="form.workOrderStatus" placeholder="请选择工单状态" disabled>-->
|
|
|
-<!-- <el-option-->
|
|
|
-<!-- v-for="dict in gxt_work_order_status"-->
|
|
|
-<!-- :key="dict.value"-->
|
|
|
-<!-- :label="dict.label"-->
|
|
|
-<!-- :value="dict.value"-->
|
|
|
-<!-- />-->
|
|
|
-<!-- </el-select>-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="维保类型" prop="inspectionType">
|
|
|
- <el-select v-model="form.inspectionType" placeholder="请选择维保类型">
|
|
|
- <el-option
|
|
|
- v-for="dict in gxt_inspection_type"
|
|
|
- :key="dict.value"
|
|
|
- :label="dict.label"
|
|
|
- :value="dict.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="维保中心" prop="gxtCenter">
|
|
|
- <el-input v-model="form.gxtCenter" placeholder="请输入维保中心" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="风电场" prop="pcsStationName">
|
|
|
- <el-input v-model="form.pcsStationName" placeholder="请输入风电场" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="品牌" prop="brand">
|
|
|
- <el-input v-model="form.brand" placeholder="请输入品牌" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row>
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
-<!-- <el-form-item label="机型" prop="model">-->
|
|
|
-<!-- <el-input v-model="form.model" placeholder="请输入机型" disabled/>-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="MIS系统工单编码" prop="workPlanNo">
|
|
|
- <el-input v-model="form.workPlanNo" placeholder="请输入MIS系统工单编码" disabled/>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="计划检修日期" prop="planStartTime">
|
|
|
- <el-date-picker
|
|
|
- v-model="form.planStartTime"
|
|
|
- type="datetime"
|
|
|
- placeholder="请选择计划检修日期"
|
|
|
- value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
- style="width: 100%"
|
|
|
- disabled
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
-<!-- <el-form-item label="预计工时(小时)" prop="planHour">-->
|
|
|
-<!-- <el-input-number v-model="form.planHour" placeholder="请输入预计工时" :precision="2" :step="0.5" style="width: 100%" />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
- <el-row>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="维保内容" prop="content">
|
|
|
- <el-input v-model="form.content" type="textarea" placeholder="请输入维保内容" />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
-<!-- <el-form-item label="故障代码" prop="faultCode">-->
|
|
|
-<!-- <el-input v-model="form.faultCode" placeholder="请输入故障代码" />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
-<!-- <el-form-item label="优先级" prop="priorityType">-->
|
|
|
-<!-- <el-input v-model="form.priorityType" placeholder="请输入优先级" type="number" />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="故障描述" prop="faultDesc">-->
|
|
|
-<!-- <el-input v-model="form.faultDesc" type="textarea" placeholder="请输入故障描述" />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
-<!-- <el-form-item label="工单类型" prop="orderType">-->
|
|
|
-<!-- <el-input v-model="form.orderType" placeholder="请输入工单类型" type="number" />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
- <el-row>
|
|
|
- <el-col :span="24">
|
|
|
- <el-form-item label="保存选项">
|
|
|
- <el-radio-group v-model="form.workOrderStatus" class="ml-4">
|
|
|
- <el-radio label="draft">保存(继续编辑)</el-radio>
|
|
|
- <el-radio label="to_assign">保存并提交(待派单)</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="备注" prop="remark">-->
|
|
|
-<!-- <el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
- </el-form>
|
|
|
- <template #footer>
|
|
|
- <div class="dialog-footer">
|
|
|
- <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
- <el-button @click="cancel">取 消</el-button>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
- <!-- 派单对话框 -->
|
|
|
- <el-dialog title="派单" v-model="assignDialogVisible" width="800px" append-to-body>
|
|
|
- <el-form ref="assignRef" :model="assignForm" :rules="assignRules" label-width="120px" label-position="top">
|
|
|
- <el-form-item label="派单给" prop="assignType">
|
|
|
- <el-radio-group v-model="assignForm.assignType">
|
|
|
- <el-radio value="teamLeader">班组组长</el-radio>
|
|
|
- <el-radio value="workGroupMember">工作组成员</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item v-if="assignForm.assignType === 'teamLeader'" label="班组组长" prop="teamLeaderId">
|
|
|
- <el-select v-model="assignForm.teamLeaderId" placeholder="请选择班组组长" style="width: 100%" @change="handleTeamLeaderChange">
|
|
|
- <el-option
|
|
|
- v-for="user in userList"
|
|
|
- :key="user.userId"
|
|
|
- :label="user.userName"
|
|
|
- :value="user.userId"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item v-if="assignForm.assignType === 'workGroupMember'" label="工作组成员" prop="workGroupMemberId">
|
|
|
- <el-select v-model="assignForm.workGroupMemberId" placeholder="请选择工作组成员" style="width: 100%" @change="handleWorkGroupMemberChange">
|
|
|
- <el-option
|
|
|
- v-for="user in userList"
|
|
|
- :key="user.userId"
|
|
|
- :label="user.userName"
|
|
|
- :value="user.userId"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <template #footer>
|
|
|
- <div class="dialog-footer">
|
|
|
- <el-button type="primary" @click="submitAssign">确 定</el-button>
|
|
|
- <el-button @click="assignDialogVisible = false">取 消</el-button>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
<!-- 挂起对话框 -->
|
|
|
<el-dialog title="申请挂起工单" v-model="suspendDialogVisible" width="800px" append-to-body>
|
|
|
<el-form ref="suspendRef" :model="suspendForm" :rules="suspendRules" label-width="120px" label-position="top">
|
|
|
@@ -522,8 +251,6 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
-
|
|
|
-
|
|
|
</el-form>
|
|
|
<template #footer>
|
|
|
<div class="dialog-footer">
|
|
|
@@ -532,35 +259,6 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
-
|
|
|
- <!-- 暂停对话框 -->
|
|
|
- <el-dialog title="暂停工单" v-model="pauseDialogVisible" width="800px" append-to-body>
|
|
|
- <el-form ref="pauseRef" :model="pauseForm" :rules="pauseRules" label-width="120px" label-position="top">
|
|
|
- <el-form-item label="工单编号">
|
|
|
- <el-input v-model="pauseForm.orderCode" disabled />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="暂停原因" prop="pauseReason">
|
|
|
- <el-select v-model="pauseForm.pauseReason" placeholder="请选择暂停原因" style="width: 100%">
|
|
|
- <el-option
|
|
|
- v-for="dict in gxt_pause_reasons"
|
|
|
- :key="dict.value"
|
|
|
- :label="dict.label"
|
|
|
- :value="dict.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="详细说明">
|
|
|
- <el-input v-model="pauseForm.remark" type="textarea" placeholder="请输入详细说明(可选)" :rows="3" />
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <template #footer>
|
|
|
- <div class="dialog-footer">
|
|
|
- <el-button @click="pauseDialogVisible = false">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submitPause">确认暂停</el-button>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
<!-- 接单对话框 -->
|
|
|
<el-dialog :title="`接单 - ${acceptForm.workOrderProjectNo}`" v-model="acceptDialogVisible" width="800px" append-to-body>
|
|
|
<div style="max-height: 500px; overflow-y: auto; padding-right: 10px;">
|
|
|
@@ -699,25 +397,6 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
-
|
|
|
- <!-- 结束工单对话框 -->
|
|
|
- <el-dialog title="结束工单" v-model="completeDialogVisible" width="800px" append-to-body>
|
|
|
- <div class="text-center py-6">
|
|
|
- <div class="inline-flex items-center justify-center w-16 h-16 rounded-full bg-blue-100 text-blue-600 mb-4">
|
|
|
- <i class="fa fa-stop text-2xl"></i>
|
|
|
- </div>
|
|
|
- <h4 class="text-lg font-medium mb-2">确定要结束工单吗?</h4>
|
|
|
- <p class="text-gray-500 mb-4">工单编号:{{ completeForm.orderCode }}</p>
|
|
|
- <p class="text-gray-500 text-sm">结束后,工单状态将变为"待结单"</p>
|
|
|
- </div>
|
|
|
- <template #footer>
|
|
|
- <div class="dialog-footer">
|
|
|
- <el-button @click="completeDialogVisible = false">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submitComplete">确认结束</el-button>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
<!-- 结单对话框 -->
|
|
|
<el-dialog title="结单" v-model="finishDialogVisible" width="800px" append-to-body>
|
|
|
<div class="space-y-4">
|
|
|
@@ -761,18 +440,6 @@
|
|
|
<el-input v-model="finishForm.gxtCenter" disabled />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <!-- <el-col :span="12">-->
|
|
|
- <!-- <el-form-item label="维保类型">-->
|
|
|
- <!-- <el-select v-model="finishForm.inspectionType" disabled>-->
|
|
|
- <!-- <el-option-->
|
|
|
- <!-- v-for="dict in gxt_inspection_type"-->
|
|
|
- <!-- :key="dict.value"-->
|
|
|
- <!-- :label="dict.label"-->
|
|
|
- <!-- :value="dict.value"-->
|
|
|
- <!-- />-->
|
|
|
- <!-- </el-select>-->
|
|
|
- <!-- </el-form-item>-->
|
|
|
- <!-- </el-col>-->
|
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
|
@@ -798,23 +465,6 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <!-- </el-form>-->
|
|
|
- <!-- <!– 处理信息 –>-->
|
|
|
- <!-- <h4 class="text-sm font-medium text-gray-800 mb-3">处理信息</h4>-->
|
|
|
- <!--<!– <el-form label-width="100px">–>-->
|
|
|
- <!-- <el-row :gutter="20">-->
|
|
|
- <!-- <el-col :span="12">-->
|
|
|
- <!-- <el-form-item label="接单人">-->
|
|
|
- <!-- <el-input v-model="finishForm.acceptUserName" disabled />-->
|
|
|
- <!-- </el-form-item>-->
|
|
|
- <!-- </el-col>-->
|
|
|
- <!-- <el-col :span="12">-->
|
|
|
- <!-- <el-form-item label="接单时间">-->
|
|
|
- <!-- <el-input v-model="finishForm.acceptTime" disabled />-->
|
|
|
- <!-- </el-form-item>-->
|
|
|
- <!-- </el-col>-->
|
|
|
- <!-- </el-row>-->
|
|
|
-
|
|
|
<!-- 维保详情 -->
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="24">
|
|
|
@@ -823,42 +473,10 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <!-- <el-row :gutter="20">-->
|
|
|
- <!-- <el-col :span="12">-->
|
|
|
- <!-- <el-form-item label="签发人">-->
|
|
|
- <!-- <el-input v-model="finishForm.issuerName" placeholder="请输入签发人" disabled />-->
|
|
|
- <!-- </el-form-item>-->
|
|
|
- <!-- </el-col>-->
|
|
|
- <!-- <el-col :span="12">-->
|
|
|
- <!-- <el-form-item label="许可人">-->
|
|
|
- <!-- <el-input v-model="finishForm.permitterName" placeholder="请输入许可人" disabled />-->
|
|
|
- <!-- </el-form-item>-->
|
|
|
- <!-- </el-col>-->
|
|
|
- <!-- </el-row>-->
|
|
|
- <!-- <el-row :gutter="20">-->
|
|
|
- <!-- <el-col :span="12">-->
|
|
|
- <!-- <el-form-item label="停机时间">-->
|
|
|
- <!-- <el-date-picker v-model="finishForm.stopTime" type="datetime" placeholder="请选择停机时间" />-->
|
|
|
- <!-- </el-form-item>-->
|
|
|
- <!-- </el-col>-->
|
|
|
- <!-- <el-col :span="12">-->
|
|
|
- <!-- <el-form-item label="恢复运行时间">-->
|
|
|
- <!-- <el-date-picker v-model="finishForm.restoreTime" type="datetime" placeholder="请选择恢复运行时间" />-->
|
|
|
- <!-- </el-form-item>-->
|
|
|
- <!-- </el-col>-->
|
|
|
- <!-- </el-row>-->
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="工作负责人">
|
|
|
<el-input v-model="finishForm.teamLeaderName" disabled />
|
|
|
- <!-- <el-select v-model="finishForm.teamLeaderId" placeholder="请选择工作负责人" style="width: 100%" @change="(userId) => finishForm.teamLeaderName = userList.find(u => u.userId === userId)?.nickName">-->
|
|
|
- <!-- <el-option-->
|
|
|
- <!-- v-for="user in userList"-->
|
|
|
- <!-- :key="user.userId"-->
|
|
|
- <!-- :label="user.nickName"-->
|
|
|
- <!-- :value="user.userId"-->
|
|
|
- <!-- />-->
|
|
|
- <!-- </el-select>-->
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
@@ -1447,7 +1065,7 @@
|
|
|
<el-form label-width="100px" label-position="top">
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="工单编号">{{ detailData.workOrderProjectNo }}</el-form-item>
|
|
|
+ <el-form-item label="工单编号">{{ detailData.workOrderProjectNo || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="工单状态">
|
|
|
@@ -1455,28 +1073,25 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="风机编号">{{ detailData.pcsDeviceName }}</el-form-item>
|
|
|
+ <el-form-item label="风机编号">{{ detailData.pcsDeviceName || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="维保中心">{{ detailData.gxtCenter }}</el-form-item>
|
|
|
+ <el-form-item label="维保中心">{{ detailData.gxtCenter || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="场站">{{ detailData.pcsStationName }}</el-form-item>
|
|
|
+ <el-form-item label="场站">{{ detailData.pcsStationName || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="品牌">{{ detailData.brand }}</el-form-item>
|
|
|
+ <el-form-item label="品牌">{{ detailData.brand || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="机型">{{ detailData.model }}</el-form-item>
|
|
|
+ <el-form-item label="机型">{{ detailData.model || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="发生时间">{{ parseTime(viewForm.occurTime) }}</el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="MIS工单编码">{{ detailData.misNo }}</el-form-item>
|
|
|
+ <el-form-item label="MIS工单编码">{{ detailData.misNo || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="维保内容">{{ detailData.content }}</el-form-item>
|
|
|
+ <el-form-item label="维保内容">{{ detailData.content || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
@@ -1504,27 +1119,28 @@
|
|
|
<!-- <el-form-item label="接单时间">{{ parseTime(detailData.acceptTime) }}</el-form-item>-->
|
|
|
<!-- </el-col>-->
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="工作负责人">{{ detailData.teamLeaderName }}</el-form-item>
|
|
|
+ <el-form-item label="工作负责人">{{ detailData.teamLeaderName || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="检修人员">{{ detailData.workGroupMemberName }}</el-form-item>
|
|
|
+ <el-form-item label="检修人员">{{ detailData.workGroupMemberName || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="维保类型">
|
|
|
- <dict-tag :options="gxt_inspection_type" :value="detailData.inspectionType" />
|
|
|
+ <dict-tag v-if="detailData.inspectionType" :options="gxt_inspection_type" :value="detailData.inspectionType" />
|
|
|
+ <span v-else>-</span>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="实际维保内容">{{ detailData.realContent }}</el-form-item>
|
|
|
+ <el-form-item label="实际维保内容">{{ detailData.realContent || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="得分">{{ detailData.score }}</el-form-item>
|
|
|
+ <el-form-item label="得分">{{ detailData.score || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="点评">{{ detailData.reviewContent }}</el-form-item>
|
|
|
+ <el-form-item label="点评">{{ detailData.reviewContent || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="恢复运行时间">{{ parseTime(detailData.restartTime) }}</el-form-item>
|
|
|
+ <el-form-item label="恢复运行时间">{{ parseTime(detailData.restartTime) || '-' }}</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
@@ -1873,7 +1489,7 @@ const data = reactive({
|
|
|
// teamLeaderId: [{ required: true, message: "请选择工作负责人", trigger: "change" }],
|
|
|
inspectionType: [{ required: true, message: "请选择维保类型", trigger: "change" }],
|
|
|
realContent: [{ required: true, message: "请输入实际维保内容", trigger: "change" }],
|
|
|
- memberIds: [{ required: true, message: "请至少选择一名检修人员", trigger: "change" }],
|
|
|
+ // memberIds: [{ required: true, message: "请至少选择一名检修人员", trigger: "change" }],
|
|
|
},
|
|
|
restartForm: {
|
|
|
orderId: undefined,
|
|
|
@@ -2015,24 +1631,6 @@ function handleDetail(row) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-/** 开始处理 */
|
|
|
-function handleStart(row) {
|
|
|
- startForm.value.orderId = row.id
|
|
|
- startForm.value.orderCode = row.workOrderProjectNo
|
|
|
- startForm.value.pcsDeviceName = row.pcsDeviceName
|
|
|
- startForm.value.content = row.content
|
|
|
- startDialogVisible.value = true
|
|
|
-}
|
|
|
-
|
|
|
-/** 暂停处理 */
|
|
|
-function handlePause(row) {
|
|
|
- pauseForm.value.orderId = row.id
|
|
|
- pauseForm.value.orderCode = row.workOrderProjectNo
|
|
|
- pauseForm.value.pauseReason = undefined
|
|
|
- pauseForm.value.remark = undefined
|
|
|
- pauseDialogVisible.value = true
|
|
|
-}
|
|
|
-
|
|
|
/** 继续处理 */
|
|
|
function handleResume(row) {
|
|
|
resumeForm.value.orderId = row.id
|
|
|
@@ -2040,22 +1638,6 @@ function handleResume(row) {
|
|
|
resumeDialogVisible.value = true
|
|
|
}
|
|
|
|
|
|
-/** 提交结束 */
|
|
|
-function submitComplete() {
|
|
|
- const gxtWorkOrder = {
|
|
|
- id: completeForm.value.orderId,
|
|
|
- workOrderStatus: 'to_finish'
|
|
|
- }
|
|
|
-
|
|
|
- completeWorkOrder(completeForm.value.orderId, gxtWorkOrder).then(response => {
|
|
|
- completeDialogVisible.value = false
|
|
|
- proxy.$modal.msgSuccess("工单结束成功")
|
|
|
- getList()
|
|
|
- }).catch(error => {
|
|
|
- proxy.$modal.msgError("工单结束失败:" + (error?.response?.data?.msg || "未知错误"))
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
/** 结束工单 */
|
|
|
function handleComplete(row) {
|
|
|
completeForm.value.orderId = row.id
|
|
|
@@ -2179,15 +1761,6 @@ function handleRate(row) {
|
|
|
|
|
|
/** 复运 */
|
|
|
function handleRestart(row) {
|
|
|
- // restartForm.value.orderId = row.id
|
|
|
- // restartForm.value.orderCode = row.workOrderProjectNo
|
|
|
- // restartForm.value.workOrderProjectNo = row.workOrderProjectNo
|
|
|
- // restartForm.value.pcsDeviceName = row.pcsDeviceName
|
|
|
- // restartForm.value.inspectionType = row.inspectionType
|
|
|
- // restartForm.value.content = row.content
|
|
|
- // restartForm.value.restartTime = undefined
|
|
|
- // restartForm.value.score = row.score // 传递 score 字段,供后端判断是否已评分
|
|
|
- // restartDialogVisible.value = true
|
|
|
getGxtOrder(row.id).then(response => {
|
|
|
restartForm.value = response.data
|
|
|
restartForm.value.orderId = row.id
|
|
|
@@ -2249,30 +1822,6 @@ function submitRestart() {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-/** 下拉菜单命令处理 */
|
|
|
-function handleCommand(command, row) {
|
|
|
- switch (command) {
|
|
|
- case 'assign':
|
|
|
- handleAssign(row)
|
|
|
- break
|
|
|
- case 'accept':
|
|
|
- handleAccept(row)
|
|
|
- break
|
|
|
- case 'suspend':
|
|
|
- handleSuspend(row)
|
|
|
- break
|
|
|
- case 'restart':
|
|
|
- handleRestart(row)
|
|
|
- break
|
|
|
- case 'complete':
|
|
|
- handleComplete(row)
|
|
|
- break
|
|
|
- case 'flow':
|
|
|
- handleFlow(row)
|
|
|
- break
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
/** 派单 */
|
|
|
function handleAssign(row) {
|
|
|
assignForm.value.orderId = row.id
|
|
|
@@ -2286,43 +1835,6 @@ function handleAssign(row) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-/** 班组组长变更 */
|
|
|
-function handleTeamLeaderChange(userId) {
|
|
|
- const user = userList.value.find(u => u.userId === userId)
|
|
|
- if (user) {
|
|
|
- assignForm.value.teamLeaderName = user.userName
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-/** 工作组成员变更 */
|
|
|
-function handleWorkGroupMemberChange(userId) {
|
|
|
- const user = userList.value.find(u => u.userId === userId)
|
|
|
- if (user) {
|
|
|
- assignForm.value.workGroupMemberName = user.userName
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-/** 提交派单 */
|
|
|
-function submitAssign() {
|
|
|
- proxy.$refs["assignRef"].validate(valid => {
|
|
|
- if (valid) {
|
|
|
- if (assignForm.value.assignType === 'teamLeader') {
|
|
|
- assignToTeamLeader(assignForm.value.orderId, assignForm.value.teamLeaderId, assignForm.value.teamLeaderName).then(response => {
|
|
|
- proxy.$modal.msgSuccess("派单成功")
|
|
|
- assignDialogVisible.value = false
|
|
|
- getList()
|
|
|
- })
|
|
|
- } else {
|
|
|
- assignToWorkGroupMember(assignForm.value.orderId, assignForm.value.workGroupMemberId, assignForm.value.workGroupMemberName).then(response => {
|
|
|
- proxy.$modal.msgSuccess("派单成功")
|
|
|
- assignDialogVisible.value = false
|
|
|
- getList()
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
/** 接单 */
|
|
|
function handleAccept(row) {
|
|
|
getGxtOrder(row.id).then(response => {
|
|
|
@@ -2330,7 +1842,7 @@ function handleAccept(row) {
|
|
|
acceptForm.value.orderId = row.id
|
|
|
acceptForm.value.teamLeaderId = undefined
|
|
|
acceptForm.value.teamLeaderName = undefined
|
|
|
- listUser({ pageNum: 1, pageSize: 100, deptId: row.pcsStationId }).then(response => {
|
|
|
+ listUser({ pageNum: 1, pageSize: 100, deptId: row.pcsStationPid }).then(response => {
|
|
|
userList.value = response.rows
|
|
|
acceptDialogVisible.value = true
|
|
|
// 打开对话框后重置表单验证错误
|
|
|
@@ -2348,13 +1860,6 @@ function handleSuspend(row) {
|
|
|
suspendForm.value.orderId = row.id
|
|
|
suspendDialogVisible.value = true
|
|
|
})
|
|
|
- // suspendForm.value.orderId = row.id
|
|
|
- // suspendForm.value.orderCode = row.workOrderProjectNo
|
|
|
- // suspendForm.value.pcsDeviceName = row.pcsDeviceName
|
|
|
- // suspendForm.value.content = row.content
|
|
|
- // suspendForm.value.suspendReason = undefined
|
|
|
- // suspendForm.value.remark = undefined
|
|
|
- // suspendDialogVisible.value = true
|
|
|
}
|
|
|
|
|
|
/** 检修人员选择变化 */
|
|
|
@@ -2462,16 +1967,6 @@ function submitApprove(approvalStatusValue) {
|
|
|
approveForm.value.workOrderStatus = approvalStatusValue
|
|
|
proxy.$refs["approveRef"].validate(valid => {
|
|
|
if (valid) {
|
|
|
- // if (approvalStatusValue === 'to_finish' && !approveForm.value.rejectionReason) {
|
|
|
- // proxy.$modal.msgError("驳回时审批意见不能为空");
|
|
|
- // return;
|
|
|
- // }
|
|
|
- // const gxtWorkOrder = {
|
|
|
- // id: approveForm.value.orderId,
|
|
|
- // workOrderStatus: approveForm.value.workOrderStatus,
|
|
|
- // rejectionReason: approveForm.value.rejectionReason
|
|
|
- // }
|
|
|
-
|
|
|
approveWorkOrder(approveForm.value.orderId, approveForm.value).then(response => {
|
|
|
const msg = approveForm.value.workOrderStatus === 'suspended' ? '挂起审批通过' : '挂起审批驳回'
|
|
|
proxy.$modal.msgSuccess(msg + "成功")
|
|
|
@@ -2505,26 +2000,6 @@ function submitPause() {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-/** 重启 */
|
|
|
-// function handleRestart(row) {
|
|
|
-// proxy.$modal.confirm('确认重启工单?').then(function() {
|
|
|
-// return restartWorkOrder(row.id)
|
|
|
-// }).then(() => {
|
|
|
-// getList()
|
|
|
-// proxy.$modal.msgSuccess("重启成功")
|
|
|
-// }).catch(() => {})
|
|
|
-// }
|
|
|
-
|
|
|
-// /** 完成 */
|
|
|
-// function handleComplete(row) {
|
|
|
-// proxy.$modal.confirm('确认完成工单?').then(function() {
|
|
|
-// return completeWorkOrder(row.id)
|
|
|
-// }).then(() => {
|
|
|
-// getList()
|
|
|
-// proxy.$modal.msgSuccess("工单已完成")
|
|
|
-// }).catch(() => {})
|
|
|
-// }
|
|
|
-
|
|
|
/** 流转记录 */
|
|
|
function handleFlow(row) {
|
|
|
getWorkOrderFlow(row.id).then(response => {
|