|
|
@@ -113,6 +113,15 @@
|
|
|
v-hasPermi="['gxt:maintenance:order:add']"
|
|
|
>新建工单</el-button>
|
|
|
</el-col>
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ icon="Plus"
|
|
|
+ @click="handleBackFilling"
|
|
|
+ v-hasPermi="['gxt:maintenance:order:add']"
|
|
|
+ >补录工单</el-button>
|
|
|
+ </el-col>
|
|
|
<!-- <el-col :span="1.5">-->
|
|
|
<!-- <el-button-->
|
|
|
<!-- type="info"-->
|
|
|
@@ -164,6 +173,11 @@
|
|
|
<dict-tag :options="gxt_work_order_status" :value="scope.row.workOrderStatus"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column label="录入类别" align="center" prop="workOrderStatus" min-width="100">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ scope.row.orderEntryType == '1' ? '默认' : '补录工单' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="维保中心" align="center" prop="gxtCenter" min-width="140" :show-overflow-tooltip="true">
|
|
|
<template #default="scope">
|
|
|
{{ scope.row.gxtCenter || '-' }}
|
|
|
@@ -260,10 +274,21 @@
|
|
|
</el-button>
|
|
|
|
|
|
<!-- 待结单状态:显示结单按钮 -->
|
|
|
- <el-button link type="success" @click="handleFinish(scope.row)" v-if="(scope.row.workOrderStatus === 'processing' || scope.row.workOrderStatus === 'to_finish') && (scope.row.teamLeaderId == userStore.id || userStore.roles.includes('admin'))" v-hasPermi="['gxt:maintenance:order:complete']">
|
|
|
+ <el-button link type="success" @click="handleFinish(scope.row)" v-if="(scope.row.workOrderStatus === 'processing' || scope.row.workOrderStatus === 'to_finish') && scope.row.orderEntryType == '1'" v-hasPermi="['gxt:maintenance:order:complete']">
|
|
|
+ <i class="fa fa-check"></i>结单
|
|
|
+ </el-button>
|
|
|
+
|
|
|
+ <!-- 补录结单-->
|
|
|
+ <el-button link type="success" @click="handleBackfillingFinish(scope.row)" v-if="(scope.row.workOrderStatus === 'processing' || scope.row.workOrderStatus === 'to_finish') && (scope.row.teamLeaderId == userStore.id || userStore.roles.includes('admin') && scope.row.orderEntryType == '2')" v-hasPermi="['gxt:maintenance:order:complete']">
|
|
|
<i class="fa fa-check"></i>结单
|
|
|
</el-button>
|
|
|
|
|
|
+ <el-button link type="danger" @click="handleShutdown(scope.row)"
|
|
|
+ v-if="scope.row.pauseTime == null && scope.row.workOrderStatus != 'to_issue' && scope.row.workOrderStatus != 'auto_suspend' && scope.row.workOrderStatus != 'completed' && scope.row.workOrderStatus != 'archived' && scope.row.workOrderStatus != 'invalid'"
|
|
|
+ v-hasPermi="['gxt:maintenance:order:shutdown']">
|
|
|
+ <i class="fa fa-stop"></i>停机
|
|
|
+ </el-button>
|
|
|
+
|
|
|
<!-- <!– 已完成状态:显示评分按钮 –>-->
|
|
|
<!-- <el-button link type="warning" @click="handleRate(scope.row)" v-if="scope.row.workOrderStatus === 'completed' && scope.row.score === null" v-hasPermi="['gxt:maintenance:order:rating']">-->
|
|
|
<!-- <i class="fa fa-star"></i>评分-->
|
|
|
@@ -309,6 +334,138 @@
|
|
|
|
|
|
<!-- 新增对话框 -->
|
|
|
<el-dialog :title="title" v-model="open" width="800px" append-to-body>
|
|
|
+ <div style="max-height: 500px; overflow-y: auto; padding-right: 10px;">
|
|
|
+ <el-form ref="orderRef" :model="form" :rules="rules" label-width="120px" label-position="top">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="工单编码" prop="workOrderProjectNo">
|
|
|
+ <el-input v-model="form.workOrderProjectNo" placeholder="自动生成" maxlength="50" show-word-limit v-chinese-limit readonly/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="风机编号" prop="pcsDeviceName">
|
|
|
+ <el-input v-model="form.pcsDeviceName" readonly>
|
|
|
+ <template #append>
|
|
|
+ <el-button @click="handleSelectEquipment" icon="Search"></el-button>
|
|
|
+ </template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="维保中心" prop="gxtCenter">
|
|
|
+ <el-input v-model="form.gxtCenter" readonly />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="场站" prop="pcsStationName">
|
|
|
+ <el-input v-model="form.pcsStationName" readonly />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="品牌" prop="brand">
|
|
|
+ <el-input v-model="form.brand" readonly />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="机型" prop="model">
|
|
|
+ <el-input v-model="form.model" readonly />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="维保类型" prop="inspectionType">
|
|
|
+ <el-select v-model="form.inspectionType" multiple placeholder="请选择维保类型" clearable>
|
|
|
+ <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">-->
|
|
|
+<!-- <el-form-item label="信息录入" prop="infoEntry">-->
|
|
|
+<!-- <el-radio-group v-model="form.infoEntry" @change="handleInfoEntryChange">-->
|
|
|
+<!-- <el-radio-->
|
|
|
+<!-- v-for="dict in gxt_info_entry"-->
|
|
|
+<!-- :key="dict.value"-->
|
|
|
+<!-- :label="dict.value"-->
|
|
|
+<!-- >-->
|
|
|
+<!-- {{ dict.label }}-->
|
|
|
+<!-- </el-radio>-->
|
|
|
+<!-- </el-radio-group>-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
+<!-- </el-col>-->
|
|
|
+<!-- <el-col :span="12" v-if="form.infoEntry == '1'">-->
|
|
|
+<!-- <el-form-item label="MIS工单编码" prop="misNo">-->
|
|
|
+<!-- <el-input v-model="form.misNo"-->
|
|
|
+<!-- placeholder="请输入MIS工单编码或点击搜索选择"-->
|
|
|
+<!-- clearable-->
|
|
|
+<!-- @focus="handleMisNoInputFocus"-->
|
|
|
+<!-- @blur="handleMisNoInputBlur"-->
|
|
|
+<!-- @input="handleMisNoInput"-->
|
|
|
+<!-- @clear="handleMisNoClear"-->
|
|
|
+<!-- >-->
|
|
|
+<!-- <template #append>-->
|
|
|
+<!-- <el-button @click="handleSelectMisInfo" icon="Search"></el-button>-->
|
|
|
+<!-- </template>-->
|
|
|
+<!-- </el-input>-->
|
|
|
+<!-- <!– 快速检索下拉框 –>-->
|
|
|
+<!-- <div class="quick-select-dropdown" v-show="showMisNoQuickSelect && quickMisNoList.length > 0">-->
|
|
|
+<!-- <div-->
|
|
|
+<!-- v-for="item in quickMisNoList"-->
|
|
|
+<!-- :key="item.misNo"-->
|
|
|
+<!-- class="quick-select-item"-->
|
|
|
+<!-- @click="handleMisNoQuickSelect(item)">-->
|
|
|
+<!-- <span class="mis-no">{{ item.misNo }}</span>-->
|
|
|
+<!-- <!– <span class="mis-info">–>-->
|
|
|
+<!-- <!– <span class="device">{{ item.pcsDeviceName }}</span>–>-->
|
|
|
+<!-- <!– <span class="station">{{ item.pcsStationName }}</span>–>-->
|
|
|
+<!-- <!– </span>–>-->
|
|
|
+<!-- </div>-->
|
|
|
+<!-- </div>-->
|
|
|
+<!-- <div class="quick-select-dropdown no-data" v-show="showMisNoQuickSelect && quickMisNoList.length === 0 && form.misNo">-->
|
|
|
+<!-- <div>未找到匹配的MIS工单</div>-->
|
|
|
+<!-- </div>-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
+<!-- </el-col>-->
|
|
|
+<!-- <el-col :span="12" v-if="form.infoEntry == 2">-->
|
|
|
+<!-- <el-form-item label="工作票编号" prop="workPermitNum">-->
|
|
|
+<!-- <el-input v-model="workPermitNumProxy" maxlength="20" show-word-limit />-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
+<!-- </el-col>-->
|
|
|
+<!-- </el-row>-->
|
|
|
+
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="维保内容" prop="content">
|
|
|
+ <el-input v-model="form.content" type="textarea" :rows="3" maxlength="500" show-word-limit />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer">
|
|
|
+<!-- <el-button type="primary" @click="submitAccept">确 认</el-button>-->
|
|
|
+ <el-button @click="open = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submitForm('to_issue')" v-if="optType == 'add'">保 存</el-button>
|
|
|
+ <el-button type="primary" @click="submitForm('assigned')" v-if="optType == 'add'">保存并下发</el-button>
|
|
|
+ <el-button type="primary" @click="submitForm('assigned')" v-if="optType == 'edit'">确认下发</el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 补录对话框 -->
|
|
|
+ <el-dialog :title="title" v-model="backfillDialogVisible" width="800px" append-to-body>
|
|
|
<div style="max-height: 500px; overflow-y: auto; padding-right: 10px;">
|
|
|
<el-form ref="orderRef" :model="form" :rules="rules" label-width="120px" label-position="top">
|
|
|
<el-row :gutter="20">
|
|
|
@@ -398,7 +555,7 @@
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="12" v-if="form.infoEntry == 2">
|
|
|
+ <el-col :span="12">
|
|
|
<el-form-item label="工作票编号" prop="workPermitNum">
|
|
|
<el-input v-model="workPermitNumProxy" maxlength="20" show-word-limit />
|
|
|
</el-form-item>
|
|
|
@@ -412,26 +569,12 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
-<!-- <el-row :gutter="20">-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="工作负责人" prop="teamLeaderId">-->
|
|
|
-<!-- <el-select v-model="acceptForm.teamLeaderId" placeholder="请选择工作负责人" style="width: 100%" @change="(userId) => acceptForm.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-row>-->
|
|
|
</el-form>
|
|
|
</div>
|
|
|
<template #footer>
|
|
|
<div class="dialog-footer">
|
|
|
-<!-- <el-button type="primary" @click="submitAccept">确 认</el-button>-->
|
|
|
- <el-button @click="open = false">取 消</el-button>
|
|
|
+ <!-- <el-button type="primary" @click="submitAccept">确 认</el-button>-->
|
|
|
+ <el-button @click="backfillDialogVisible = false">取 消</el-button>
|
|
|
<el-button type="primary" @click="submitForm('to_issue')" v-if="optType == 'add'">保 存</el-button>
|
|
|
<el-button type="primary" @click="submitForm('assigned')" v-if="optType == 'add'">保存并下发</el-button>
|
|
|
<el-button type="primary" @click="submitForm('assigned')" v-if="optType == 'edit'">确认下发</el-button>
|
|
|
@@ -439,60 +582,6 @@
|
|
|
</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">-->
|
|
|
-<!-- <el-row style="margin-bottom: 20px;">-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-alert type="warning" :closable="false">-->
|
|
|
-<!-- <template #default>-->
|
|
|
-<!-- <i class="fa fa-exclamation-circle mr-2"></i>-->
|
|
|
-<!-- 请选择挂起原因,提交后需等待班长审批。-->
|
|
|
-<!-- </template>-->
|
|
|
-<!-- </el-alert>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
-<!-- <el-form-item label="工单编码">-->
|
|
|
-<!-- <el-input v-model="suspendForm.workOrderProjectNo" disabled />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
-<!-- <el-form-item label="风机编号">-->
|
|
|
-<!-- <el-input v-model="suspendForm.pcsDeviceName" disabled />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- <el-row v-if="suspendForm.content">-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="维保内容" prop="content">-->
|
|
|
-<!-- <el-input v-model="suspendForm.content" type="textarea" :rows="3" disabled />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
-<!-- <el-form-item label="挂起原因" prop="suspendReason">-->
|
|
|
-<!-- <el-select v-model="suspendForm.suspendReason" placeholder="请选择挂起原因" style="width: 100%">-->
|
|
|
-<!-- <el-option-->
|
|
|
-<!-- v-for="dict in gxt_order_suspend_reason"-->
|
|
|
-<!-- :key="dict.value"-->
|
|
|
-<!-- :label="dict.label"-->
|
|
|
-<!-- :value="dict.value"-->
|
|
|
-<!-- />-->
|
|
|
-<!-- </el-select>-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- </el-form>-->
|
|
|
-<!-- <template #footer>-->
|
|
|
-<!-- <div class="dialog-footer">-->
|
|
|
-<!-- <el-button @click="suspendDialogVisible = false">取 消</el-button>-->
|
|
|
-<!-- <el-button type="primary" @click="submitSuspend">提交申请</el-button>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </template>-->
|
|
|
-<!-- </el-dialog>-->
|
|
|
<!-- 接单对话框 -->
|
|
|
<el-dialog :title="'接单'" v-model="acceptDialogVisible" width="800px" append-to-body>
|
|
|
<!-- <div style="max-height: 500px; overflow-y: auto; padding-right: 10px;">-->
|
|
|
@@ -678,7 +767,26 @@
|
|
|
:list-user-data="listUserData"
|
|
|
:on-submit="submitFinishFromParent"
|
|
|
@success="handleFinishSuccess"
|
|
|
- />
|
|
|
+ @select-mis-info="handleSelectMisInfo2"
|
|
|
+ >
|
|
|
+ <template #mis-info-select>
|
|
|
+ <MisInfoSelectSingle :key="commonKey" v-model="misInfoSelectVisible2" @onSelected="onMisInfoSelected2" :pcsStationName="finishForm.pcsStationName" :pcsDeviceName="finishForm.pcsDeviceName"></MisInfoSelectSingle>
|
|
|
+ </template>
|
|
|
+ </FinalizeDialog>
|
|
|
+
|
|
|
+ <!-- 补录结单对话框组件 -->
|
|
|
+ <BackfillFinalizeDialog
|
|
|
+ v-model="backfillFinishDialogVisible"
|
|
|
+ :data="finishForm"
|
|
|
+ :work-order-status-options="gxt_work_order_status"
|
|
|
+ :list-user-data="listUserData"
|
|
|
+ :on-submit="submitFinishFromParent"
|
|
|
+ @success="handleFinishSuccess"
|
|
|
+ >
|
|
|
+<!-- <template #mis-info-select>-->
|
|
|
+<!-- <MisInfoSelectSingle :key="commonKey" v-model="misInfoSelectVisible" @onSelected="onMisInfoSelected" :pcsStationName="finishForm.pcsStationName" :pcsDeviceName="finishForm.pcsDeviceName"></MisInfoSelectSingle>-->
|
|
|
+<!-- </template>-->
|
|
|
+ </BackfillFinalizeDialog>
|
|
|
|
|
|
<!-- 维保挂起对话框 -->
|
|
|
<SuspendDialog
|
|
|
@@ -762,59 +870,6 @@
|
|
|
<el-input v-model="restartForm.workPermitNum" disabled />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
-<!-- </el-row>-->
|
|
|
- <!-- 处理信息 -->
|
|
|
-<!-- <h4 class="text-sm font-medium text-gray-800 mb-3">处理信息</h4>-->
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
-<!-- <el-form-item label="工作负责人">-->
|
|
|
-<!-- <el-input v-model="restartForm.teamLeaderName" disabled />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
-<!-- <el-form-item label="检修人员">-->
|
|
|
-<!-- <el-input v-model="restartForm.workGroupMemberName" disabled />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
- <!-- 维保内容 -->
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="维保内容">-->
|
|
|
-<!-- <el-input v-model="restartForm.content" type="textarea" :rows="3" disabled />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="实际维保内容">-->
|
|
|
-<!-- <el-input v-model="restartForm.realContent" type="textarea" :rows="3" disabled />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="附件">-->
|
|
|
-<!-- <preview :limit="8" v-model="restartForm.attachmentUrls" :filesize="5" disabled></preview>-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="12">-->
|
|
|
-<!-- <el-form-item label="评分" prop="score">-->
|
|
|
-<!-- <el-input v-model="restartForm.score" disabled />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="点评" prop="reviewContent">-->
|
|
|
-<!-- <el-input v-model="restartForm.reviewContent" disabled />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
- <!-- 复运信息 -->
|
|
|
-<!-- <el-row>-->
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="恢复运行时间" prop="restartTime">
|
|
|
<el-date-picker
|
|
|
@@ -939,13 +994,6 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
-<!-- <el-row :gutter="20">-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="实际维保内容">-->
|
|
|
-<!-- <el-input v-model="rateForm.realContent" type="textarea" :rows="3" disabled />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="附件">
|
|
|
@@ -1009,6 +1057,14 @@
|
|
|
@success="handleApproveSuccess"
|
|
|
/>
|
|
|
|
|
|
+ <!-- 停机对话框组件 -->
|
|
|
+ <ShutdownDialog
|
|
|
+ v-model="shutdownDialogVisible"
|
|
|
+ :data="shutdownForm"
|
|
|
+ :on-submit="submitShutdownFormParent"
|
|
|
+ @success="handleShutdownSuccess"
|
|
|
+ />
|
|
|
+
|
|
|
<!-- 流转记录对话框 -->
|
|
|
<el-dialog title="工单流转记录" v-model="flowDialogVisible" width="900px" append-to-body>
|
|
|
<el-timeline>
|
|
|
@@ -1034,148 +1090,8 @@
|
|
|
:data="detailData"
|
|
|
:work-order-status-options="gxt_work_order_status"
|
|
|
:repair-order-flow-action-type-options="gxt_repair_order_flow_action_type"
|
|
|
+ :inspection-type-options="gxt_inspection_type"
|
|
|
/>
|
|
|
-<!-- <el-dialog title="查看工单详情" v-model="detailDialogVisible" width="1000px" append-to-body>-->
|
|
|
-<!-- <el-row :gutter="20">-->
|
|
|
-<!-- <!– 工单信息 –>-->
|
|
|
-<!-- <el-col :span="8">-->
|
|
|
-<!-- <div class="info-section">-->
|
|
|
-<!-- <h3 class="section-title">工单信息</h3>-->
|
|
|
-<!-- <div class="info-content">-->
|
|
|
-<!-- <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-col>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="工单状态">-->
|
|
|
-<!-- <dict-tag :options="gxt_work_order_status" :value="detailData.workOrderStatus" />-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <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-col>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <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-col>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="机型">{{ detailData.model || '-' }}</el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-
|
|
|
-<!--<!– <el-col :span="24">–>-->
|
|
|
-<!--<!– <el-form-item label="维保内容">{{ detailData.content || '-' }}</el-form-item>–>-->
|
|
|
-<!--<!– </el-col>–>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- </el-form>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-
|
|
|
-<!-- <!– 处理信息 –>-->
|
|
|
-<!-- <el-col :span="8">-->
|
|
|
-<!-- <div class="info-section">-->
|
|
|
-<!-- <h3 class="section-title">处理信息</h3>-->
|
|
|
-<!-- <div class="info-content">-->
|
|
|
-<!-- <el-form label-width="100px" label-position="top">-->
|
|
|
-<!-- <el-row :gutter="20">-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="接单人">{{ detailData.acceptUserName || '-'}}</el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="接单时间">{{ parseTime(detailData.acceptTime, '{y}-{m}-{d} {h}:{i}') || '-' }}</el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <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-col>-->
|
|
|
-<!-- <el-col :span="24" v-if="detailData.infoEntry == '1'">-->
|
|
|
-<!-- <el-form-item label="MIS工单编码">{{ detailData.misNo || '-' }}</el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="24" v-if="detailData.infoEntry == '2'">-->
|
|
|
-<!-- <el-form-item label="工作票编号">{{ detailData.workPermitNum|| '-' }}</el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="开始时间">{{ parseTime(detailData.realStartTime, '{y}-{m}-{d} {h}:{i}') || '-' }}</el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="结束时间">{{ parseTime(detailData.realEndTime, '{y}-{m}-{d} {h}:{i}') || '-' }}</el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="外委人员数(人)">{{ detailData.wwryNum || '-' }}</el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="外来人员数(人)">{{ detailData.wlryNum || '-' }}</el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="恢复运行时间">{{ parseTime(detailData.restartTime,'{y}-{m}-{d} {h}:{i}') || '-' }}</el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="损失电量(kWh)">{{ detailData.lostPower || '-' }}</el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- </el-form>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-
|
|
|
-<!-- <!– 工单流转记录 –>-->
|
|
|
-<!-- <el-col :span="8">-->
|
|
|
-<!-- <div class="info-section">-->
|
|
|
-<!-- <h3 class="section-title">工单流转</h3>-->
|
|
|
-<!-- <div class="flow-history">-->
|
|
|
-<!-- <el-timeline>-->
|
|
|
-<!-- <el-timeline-item type="primary"-->
|
|
|
-<!-- v-for="(flow, index) in flowList"-->
|
|
|
-<!-- :key="index"-->
|
|
|
-<!-- :timestamp="parseTime(flow.actionTime, '{y}-{m}-{d} {h}:{i}')"-->
|
|
|
-<!-- >-->
|
|
|
-<!-- <div class="flow-item">-->
|
|
|
-<!-- <h4><dict-tag :options="gxt_repair_order_flow_action_type" :value="flow.actionType" /></h4>-->
|
|
|
-<!-- <p>-->
|
|
|
-<!-- <!– {{ flow.actionRemark }}<br>–>-->
|
|
|
-<!-- {{ flow.operatorName }}-->
|
|
|
-<!-- </p>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </el-timeline-item>-->
|
|
|
-<!-- </el-timeline>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- <el-form label-position="top">-->
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="维保内容">-->
|
|
|
-<!-- <div class="content-text">{{ detailData.content || '-' }}</div>-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- </el-form>-->
|
|
|
-<!-- <!– 附件信息 –>-->
|
|
|
-<!-- <div class="info-section" v-if="detailData.attachmentUrls">-->
|
|
|
-<!-- <h3 class="section-title">结单附件</h3>-->
|
|
|
-<!-- <el-row>-->
|
|
|
-<!-- <el-col :span="24">-->
|
|
|
-<!-- <el-form-item label="附件">-->
|
|
|
-<!-- <preview :limit="8" v-model="detailData.attachmentUrls" :filesize="5" disabled></preview>-->
|
|
|
-<!-- </el-form-item>-->
|
|
|
-<!-- </el-col>-->
|
|
|
-<!-- </el-row>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- <template #footer>-->
|
|
|
-<!-- <div class="dialog-footer">-->
|
|
|
-<!-- <el-button @click="detailDialogVisible = false">关 闭</el-button>-->
|
|
|
-<!-- </div>-->
|
|
|
-<!-- </template>-->
|
|
|
-<!-- </el-dialog>-->
|
|
|
|
|
|
<!-- 作废工单对话框 -->
|
|
|
<el-dialog title="作废工单" v-model="invalidateDialogVisible" width="800px" append-to-body>
|
|
|
@@ -1313,7 +1229,7 @@ import {
|
|
|
importGxtWorkOrderPersonFromExcel,
|
|
|
// importTemplate
|
|
|
invalidateGxtOrder,
|
|
|
- getExportFields
|
|
|
+ getExportFields, shutdownOrder
|
|
|
} from "@/api/gxt/gxtOrder"
|
|
|
import {listUserData, listUserNoPermi, listLeader} from "@/api/system/user"
|
|
|
import {getToken} from "@/utils/auth.js";
|
|
|
@@ -1328,6 +1244,8 @@ import useUserStore from '@/store/modules/user'
|
|
|
import SuspendDialog from "@/components/gxtOrder/suspend.vue";
|
|
|
import ViewDialog from "@/components/gxtOrder/view.vue";
|
|
|
import ApproveDialog from "@/components/gxtOrder/approve.vue";
|
|
|
+import ShutdownDialog from "@/components/gxtOrder/shutdown.vue";
|
|
|
+import BackfillFinalizeDialog from '@/components/gxtOrder/backfillFinalize.vue'
|
|
|
|
|
|
// 工作负责人快速检索相关响应式数据
|
|
|
const showTeamLeaderQuickSelect = ref(false)
|
|
|
@@ -1561,13 +1479,14 @@ const handleMisNoQuickSelect = (item) => {
|
|
|
const handleMisNoClear = () => {
|
|
|
// 清空与MIS工单相关的字段
|
|
|
form.value.misNo = null
|
|
|
- form.value.pcsDeviceName = null
|
|
|
- form.value.pcsStationName = null
|
|
|
form.value.content = null
|
|
|
- form.value.pcsDeviceId = null
|
|
|
- form.value.gxtCenter = null
|
|
|
- form.value.brand = null
|
|
|
- form.value.model = null
|
|
|
+ form.value.workPermitNum = null
|
|
|
+ // form.value.pcsDeviceName = null
|
|
|
+ // form.value.pcsStationName = null
|
|
|
+ // form.value.pcsDeviceId = null
|
|
|
+ // form.value.gxtCenter = null
|
|
|
+ // form.value.brand = null
|
|
|
+ // form.value.model = null
|
|
|
quickMisNoList.value = []
|
|
|
showMisNoQuickSelect.value = false
|
|
|
}
|
|
|
@@ -1612,6 +1531,9 @@ const acceptDialogVisible = ref(false)
|
|
|
const restartDialogVisible = ref(false)
|
|
|
const equipmentSelectVisible = ref(false)
|
|
|
const invalidateDialogVisible = ref(false)
|
|
|
+const shutdownDialogVisible = ref(false)
|
|
|
+const backfillDialogVisible = ref(false)
|
|
|
+const backfillFinishDialogVisible = ref(false)
|
|
|
const userList = ref([])
|
|
|
const flowList = ref([])
|
|
|
const detailData = ref({})
|
|
|
@@ -1623,6 +1545,7 @@ const fileUploadRef = ref(null)
|
|
|
|
|
|
const tableHeight = ref(window.innerHeight - 300)
|
|
|
const misInfoSelectVisible = ref(false)
|
|
|
+const misInfoSelectVisible2 = ref(false)
|
|
|
let commonKey = 0
|
|
|
const optType = ref("")
|
|
|
|
|
|
@@ -1670,9 +1593,11 @@ const data = reactive({
|
|
|
orderSource: undefined
|
|
|
},
|
|
|
rules: {
|
|
|
+
|
|
|
// workOrderProjectNo: [{ required: true, message: "工单编码不能为空", trigger: "blur" }],
|
|
|
misNo: [{ required: true, message: "MIS编码不能为空", trigger: "change" }],
|
|
|
pcsDeviceName: [{ required: true, message: "风机编号不能为空", trigger: "change" }],
|
|
|
+ inspectionType: [{ required: true, message: "维保类型不能为空", trigger: "change" }],
|
|
|
// workOrderStatus: [{ required: true, message: "工单状态不能为空", trigger: "change" }],
|
|
|
// gxtCenter: [{ required: true, message: "维保中心不能为空", trigger: "blur" }],
|
|
|
// pcsStationName: [{ required: true, message: "风电场不能为空", trigger: "blur" }],
|
|
|
@@ -1722,22 +1647,22 @@ const data = reactive({
|
|
|
], // 动态控制 content 是否必填
|
|
|
content: [
|
|
|
{ required: true, message: "维保内容不能为空", trigger: "change" },
|
|
|
- {
|
|
|
- validator: (rule, value, callback) => {
|
|
|
- // 当 infoEntry == 2 时才校验必填
|
|
|
- if (form.value.infoEntry == '2') {
|
|
|
- if (!value || value.trim() === '') {
|
|
|
- callback(new Error('维保内容不能为空'));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 不是 infoEntry=2 时,不校验,直接通过
|
|
|
- callback();
|
|
|
- }
|
|
|
- },
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
+ // {
|
|
|
+ // validator: (rule, value, callback) => {
|
|
|
+ // // 当 infoEntry == 2 时才校验必填
|
|
|
+ // if (form.value.infoEntry == '2') {
|
|
|
+ // if (!value || value.trim() === '') {
|
|
|
+ // callback(new Error('维保内容不能为空'));
|
|
|
+ // } else {
|
|
|
+ // callback();
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // // 不是 infoEntry=2 时,不校验,直接通过
|
|
|
+ // callback();
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // trigger: 'blur'
|
|
|
+ // }
|
|
|
]
|
|
|
},
|
|
|
assignForm: {
|
|
|
@@ -1841,6 +1766,8 @@ const data = reactive({
|
|
|
workOrderStatus: 'suspended',
|
|
|
rejectionReason: undefined
|
|
|
},
|
|
|
+ shutdownForm: {
|
|
|
+ },
|
|
|
rateRules: {
|
|
|
score: [{ required: true, message: "请选择评分", trigger: "change" }],
|
|
|
reviewContent: [{ required: false, message: "请输入点评", trigger: "blur" }]
|
|
|
@@ -2000,7 +1927,7 @@ const exportFieldsData = ref([])
|
|
|
const exportFieldsSelected = ref([])
|
|
|
|
|
|
const { queryParams, form, rules, assignForm, assignRules, suspendForm, suspendRules, pauseForm, pauseRules, startForm,
|
|
|
- resumeForm, completeForm, finishForm, rateForm, rateRules, approveForm, approveRules, acceptForm, acceptRules, finishRules, restartForm, restartRules, invalidateForm, invalidateRules } = toRefs(data)
|
|
|
+ resumeForm, completeForm, finishForm, rateForm, rateRules, approveForm, approveRules, acceptForm, acceptRules, finishRules, restartForm, restartRules, invalidateForm, invalidateRules, shutdownForm } = toRefs(data)
|
|
|
|
|
|
onMounted(() => {
|
|
|
getList()
|
|
|
@@ -2096,20 +2023,39 @@ function handleSelectionChange(selection) {
|
|
|
/** 新增按钮操作 */
|
|
|
function handleAdd() {
|
|
|
reset()
|
|
|
- form.value.infoEntry = "1"
|
|
|
+ // form.value.infoEntry = "1"
|
|
|
open.value = true
|
|
|
title.value = "新建维保工单"
|
|
|
optType.value = "add"
|
|
|
commonKey++
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ *
|
|
|
+ *
|
|
|
+ * 补录按钮操作
|
|
|
+ */
|
|
|
+function handleBackFilling() {
|
|
|
+ reset()
|
|
|
+ form.value.infoEntry = "1"
|
|
|
+ form.value.orderEntryType = "2"
|
|
|
+ backfillDialogVisible.value = true
|
|
|
+ title.value = "补录维保工单"
|
|
|
+ optType.value = "add"
|
|
|
+ commonKey++
|
|
|
+}
|
|
|
+
|
|
|
/** 修改按钮操作 */
|
|
|
function handleUpdate(row) {
|
|
|
reset()
|
|
|
const id = row.id || ids.value
|
|
|
getGxtOrder(id).then(response => {
|
|
|
form.value = response.data
|
|
|
- open.value = true
|
|
|
+ if (form.value.orderEntryType == '2') {
|
|
|
+ backfillDialogVisible.value = true
|
|
|
+ } else {
|
|
|
+ open.value = true
|
|
|
+ }
|
|
|
title.value = "下发"
|
|
|
optType.value = "edit"
|
|
|
commonKey++
|
|
|
@@ -2121,16 +2067,20 @@ function submitForm(status) {
|
|
|
proxy.$refs["orderRef"].validate(valid => {
|
|
|
if (valid) {
|
|
|
form.value.workOrderStatus = status
|
|
|
+ form.value.inspectionType = Array.isArray(form.value.inspectionType) ? form.value.inspectionType.join(',')
|
|
|
+ : form.value.inspectionType || ''
|
|
|
if (form.value.id != undefined) {
|
|
|
updateGxtOrder(form.value).then(response => {
|
|
|
proxy.$modal.msgSuccess("下发成功")
|
|
|
open.value = false
|
|
|
+ backfillDialogVisible.value = false
|
|
|
getList()
|
|
|
})
|
|
|
} else {
|
|
|
addGxtOrder(form.value).then(response => {
|
|
|
proxy.$modal.msgSuccess("新建成功")
|
|
|
open.value = false
|
|
|
+ backfillDialogVisible.value = false
|
|
|
getList()
|
|
|
})
|
|
|
}
|
|
|
@@ -2190,6 +2140,7 @@ function handleFinish(row) {
|
|
|
getGxtOrder(row.id).then(response => {
|
|
|
finishForm.value = response.data
|
|
|
finishForm.value.orderId = row.id
|
|
|
+ finishForm.value.infoEntry = '1'
|
|
|
if (finishForm.value.infoEntry != null && finishForm.value.infoEntry == '1') {
|
|
|
if (row.misNo != null) {
|
|
|
listMisInfo({misNo: row.misNo}).then(response => {
|
|
|
@@ -2223,6 +2174,42 @@ function handleFinish(row) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+function handleBackfillingFinish(row) {
|
|
|
+ getGxtOrder(row.id).then(response => {
|
|
|
+ finishForm.value = response.data
|
|
|
+ finishForm.value.orderId = row.id
|
|
|
+ if (finishForm.value.infoEntry != null && finishForm.value.infoEntry == '1') {
|
|
|
+ if (row.misNo != null) {
|
|
|
+ listMisInfo({misNo: row.misNo}).then(response => {
|
|
|
+ const misInfo = response.rows
|
|
|
+ if (misInfo.length > 0) {
|
|
|
+ finishForm.value.realStartTime = misInfo[0].realStartTime
|
|
|
+ finishForm.value.realEndTime = misInfo[0].realEndTime
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ listWorkPerson({misNo: row.misNo}).then(response => {
|
|
|
+ finishForm.value.workOrderPersonList = response.rows;
|
|
|
+ if (finishForm.value.workOrderPersonList) {
|
|
|
+ const nickNames = finishForm.value.workOrderPersonList
|
|
|
+ .map(person => person.nickName)
|
|
|
+ .join(',');
|
|
|
+ finishForm.value.workGroupMemberName = nickNames
|
|
|
+ backfillFinishDialogVisible.value = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ finishForm.value.realStartTime = null
|
|
|
+ finishForm.value.realEndTime = null
|
|
|
+ backfillFinishDialogVisible.value = true
|
|
|
+ }
|
|
|
+ // 打开对话框后重置表单验证错误
|
|
|
+ proxy.$nextTick(() => {
|
|
|
+ proxy.$refs["finishRef"]?.clearValidate()
|
|
|
+ })
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
/** 提交结单 */
|
|
|
function submitFinish() {
|
|
|
proxy.$refs["finishRef"].validate(valid => {
|
|
|
@@ -2259,6 +2246,7 @@ async function submitFinishFromParent(data) {
|
|
|
// 在提交结单成功后的回调函数
|
|
|
function handleFinishSuccess() {
|
|
|
finishDialogVisible.value = false
|
|
|
+ backfillFinishDialogVisible.value = false
|
|
|
getList()
|
|
|
}
|
|
|
|
|
|
@@ -2278,13 +2266,14 @@ async function submitApproveFromParent(data) {
|
|
|
await approveWorkOrder(data.id, data)
|
|
|
}
|
|
|
|
|
|
+
|
|
|
// 在提交审批成功后的回调函数
|
|
|
function handleApproveSuccess() {
|
|
|
approveDialogVisible.value = false
|
|
|
getList()
|
|
|
}
|
|
|
|
|
|
-/** 复运 */
|
|
|
+// 复运
|
|
|
function handleRestart(row) {
|
|
|
getGxtOrder(row.id).then(response => {
|
|
|
restartForm.value = response.data
|
|
|
@@ -2295,6 +2284,28 @@ function handleRestart(row) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+/** 停机 */
|
|
|
+function handleShutdown(row) {
|
|
|
+ getGxtOrder(row.id).then(response => {
|
|
|
+ shutdownForm.value = response.data
|
|
|
+ shutdownForm.value.orderId = row.id
|
|
|
+ shutdownDialogVisible.value = true
|
|
|
+ // 打开对话框后重置表单验证错误
|
|
|
+ proxy.resetForm("shutdownRef")
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+// 提交停机
|
|
|
+async function submitShutdownFormParent(data) {
|
|
|
+ await shutdownOrder(data)
|
|
|
+}
|
|
|
+
|
|
|
+// 在提交停机成功后的回调函数
|
|
|
+function handleShutdownSuccess() {
|
|
|
+ shutdownDialogVisible.value = false
|
|
|
+ getList()
|
|
|
+}
|
|
|
+
|
|
|
/** 提交评分 */
|
|
|
function submitRate() {
|
|
|
proxy.$refs["rateRef"].validate(valid => {
|
|
|
@@ -2798,12 +2809,17 @@ function handleSelectMisInfo() {
|
|
|
misInfoSelectVisible.value = true
|
|
|
}
|
|
|
|
|
|
+function handleSelectMisInfo2() {
|
|
|
+ misInfoSelectVisible2.value = true
|
|
|
+}
|
|
|
+
|
|
|
/** 设备MIS信息回调 */
|
|
|
function onMisInfoSelected(row) {
|
|
|
if (row) {
|
|
|
listGxtOrder({pageNum: 1, pageSize: 10, misNo: row.misNo }).then(response => {
|
|
|
const gxtOrders= response.rows
|
|
|
debugger
|
|
|
+ const targetForm = isForFinishForm ? finishForm : form; // 确定赋值目标
|
|
|
if (gxtOrders.length > 0) {
|
|
|
if (form.value.id == null) {
|
|
|
proxy.$modal.msgWarning('选择工单已存在!请重新选择!')
|
|
|
@@ -2819,8 +2835,9 @@ function onMisInfoSelected(row) {
|
|
|
form.value.content = row.content
|
|
|
form.value.realStartTime = row.realStartTime
|
|
|
form.value.realEndTime = row.realEndTime
|
|
|
- form.value.planStartTime = row.planStartTime
|
|
|
- form.value.planEndTime = row.planEndTime
|
|
|
+ form.value.workPermitNum = row.workPermitNum
|
|
|
+ // form.value.planStartTime = row.planStartTime
|
|
|
+ // form.value.planEndTime = row.planEndTime
|
|
|
if (!form.value.pcsDeviceId) {
|
|
|
form.value.pcsDeviceName = row.pcsDeviceName
|
|
|
form.value.pcsStationName = row.pcsStationName
|
|
|
@@ -2839,6 +2856,32 @@ function onMisInfoSelected(row) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+function onMisInfoSelected2(row) {
|
|
|
+ if (row) {
|
|
|
+ listGxtOrder({pageNum: 1, pageSize: 10, misNo: row.misNo }).then(response => {
|
|
|
+ const gxtOrders= response.rows
|
|
|
+ debugger
|
|
|
+ if (gxtOrders.length > 0) {
|
|
|
+ if (finishForm.value.id == null) {
|
|
|
+ proxy.$modal.msgWarning('选择工单已存在!请重新选择!')
|
|
|
+ return
|
|
|
+ } else {
|
|
|
+ if (gxtOrders[0].id != form.value.id) {
|
|
|
+ proxy.$modal.msgWarning('选择工单已存在!请重新选择!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ finishForm.value.misNo = row.misNo
|
|
|
+ finishForm.value.content = row.content
|
|
|
+ finishForm.value.realStartTime = row.realStartTime
|
|
|
+ finishForm.value.realEndTime = row.realEndTime
|
|
|
+ finishForm.value.workPermitNum = row.workPermitNum
|
|
|
+ misInfoSelectVisible2.value = false
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
//自动编码生成
|
|
|
function handleAutoGenChange(){
|
|
|
genPostCode('WORK_ORDER_CODE', form.value).then(response =>{
|