|
|
@@ -95,6 +95,7 @@
|
|
|
/>
|
|
|
</el-select>-->
|
|
|
<el-select v-model="queryParams.faultCode" placeholder="请选择故障代码" clearable>
|
|
|
+ <el-option label="无" value="无" />
|
|
|
<el-option
|
|
|
v-for="item in faultCodeOptions"
|
|
|
:key="item.faultCode"
|
|
|
@@ -213,9 +214,9 @@
|
|
|
link
|
|
|
@click="handleStart(scope.row)"
|
|
|
v-hasPermi="['gxt:repairOrder:start']"
|
|
|
- ><i class="fa fa-play"></i>开始</el-button>
|
|
|
+ ><i class="fa fa-play"></i>恢复</el-button>
|
|
|
<el-button
|
|
|
- v-if="scope.row.workOrderStatus === 'processing'"
|
|
|
+ v-if="scope.row.workOrderStatus === 'to_finish'"
|
|
|
type="danger"
|
|
|
link
|
|
|
@click="handleSuspend(scope.row)"
|
|
|
@@ -234,7 +235,7 @@
|
|
|
@click="handleProcessDone(scope.row)"
|
|
|
>结束</el-button>-->
|
|
|
<el-button
|
|
|
- v-if="scope.row.workOrderStatus === 'processing'"
|
|
|
+ v-if="scope.row.workOrderStatus === 'to_finish'"
|
|
|
type="success"
|
|
|
link
|
|
|
@click="handleFinalize(scope.row)"
|
|
|
@@ -377,6 +378,7 @@
|
|
|
/>
|
|
|
</el-select>-->
|
|
|
<el-select v-model="form.faultCode" placeholder="请选择故障代码" @change="handleFaultCodeChange" style="width: 100%">
|
|
|
+ <el-option label="无" value="无" />
|
|
|
<el-option
|
|
|
v-for="item in faultCodeOptions"
|
|
|
:key="item.faultCode"
|
|
|
@@ -388,7 +390,7 @@
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="故障条纹" prop="faultBarcode">
|
|
|
- <el-input v-model="form.faultBarcode" placeholder="请输入故障条纹" readonly />
|
|
|
+ <el-input v-model="form.faultBarcode" placeholder="请输入故障条纹" :readonly="form.faultCode!=='无'" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -563,7 +565,7 @@
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="MIS工单编码">{{ acceptForm.misOrderNo }}</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="24">
|
|
|
+ <el-col :span="12">
|
|
|
<el-form-item label="故障描述">{{ acceptForm.faultDesc || '无' }}</el-form-item>
|
|
|
</el-col>
|
|
|
<!-- <el-col v-if="acceptForm.relatedOrderCode" :span="12">
|
|
|
@@ -620,8 +622,9 @@
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 挂起对话框 -->
|
|
|
- <el-dialog title="挂起工单" v-model="suspendDialogVisible" width="500px" append-to-body @close="closeSuspendDialog">
|
|
|
+ <el-dialog title="申请挂起工单" v-model="suspendDialogVisible" width="500px" append-to-body @close="closeSuspendDialog">
|
|
|
<el-form ref="suspendFormRef" :model="suspendForm" :rules="suspendRules" label-width="120px" label-position="top">
|
|
|
+ <el-alert type="warning" :closable="false" title="请选择挂起原因,提交后需等待班长审批。" show-icon />
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="工单编号">
|
|
|
@@ -634,7 +637,10 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="挂起原因" prop="suspendReason">
|
|
|
+ <el-form-item label="故障描述">{{ suspendForm.faultDesc || '无' }}</el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+<!-- <el-form-item label="挂起原因" prop="suspendReason">
|
|
|
<el-input
|
|
|
v-model="suspendForm.suspendReason"
|
|
|
type="textarea"
|
|
|
@@ -643,17 +649,20 @@
|
|
|
show-word-limit
|
|
|
:rows="3"
|
|
|
/>
|
|
|
+ </el-form-item>-->
|
|
|
+ <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-item label="挂起原因" prop="suspendReason">
|
|
|
- <el-select v-model="suspendForm.suspendReason" placeholder="请选择挂起原因" style="width: 100%">
|
|
|
- <el-option label="天气异常" value="天气异常" />
|
|
|
- <el-option label="缺备件" value="缺备件" />
|
|
|
- <el-option label="风机非停时间" value="风机非停时间" />
|
|
|
- <el-option label="其他" value="其他" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
+ <!--
|
|
|
<el-form-item label="详细说明" prop="suspendDescription">
|
|
|
<el-input
|
|
|
v-model="suspendForm.suspendDescription"
|
|
|
@@ -728,21 +737,21 @@
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="挂起原因">
|
|
|
- {{ approveForm.suspendReason || '无' }}
|
|
|
+ <dict-tag :options="gxt_order_suspend_reason" :value="approveForm.suspendReason" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <el-form-item label="审批决定" prop="approvalStatus">
|
|
|
+<!-- <el-form-item label="审批决定" prop="approvalStatus">
|
|
|
<el-radio-group v-model="approveForm.approvalStatus" @change="toggleRejectionReason">
|
|
|
<el-radio label="approved">通过</el-radio>
|
|
|
<el-radio label="rejected">驳回</el-radio>
|
|
|
</el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="驳回原因" prop="rejectionReason" v-if="approveForm.approvalStatus === 'rejected'">
|
|
|
+ </el-form-item>-->
|
|
|
+ <el-form-item label="审批意见" prop="rejectionReason">
|
|
|
<el-input
|
|
|
v-model="approveForm.rejectionReason"
|
|
|
type="textarea"
|
|
|
- placeholder="请输入驳回原因"
|
|
|
+ placeholder="请输入审批已经"
|
|
|
maxlength="100"
|
|
|
show-word-limit
|
|
|
:rows="3"
|
|
|
@@ -752,7 +761,8 @@
|
|
|
<template #footer>
|
|
|
<div class="dialog-footer">
|
|
|
<el-button @click="closeApproveDialog">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submitApprove">确认审批</el-button>
|
|
|
+ <el-button type="primary" @click="submitApprove('rejected')">驳 回</el-button>
|
|
|
+ <el-button type="primary" @click="submitApprove('approved')">通 过</el-button>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
@@ -1240,9 +1250,10 @@ import { listFaultCodes } from "@/api/gxt/faultCodes"
|
|
|
import { listGxtOrder } from "@/api/gxt/gxtOrder";
|
|
|
import { listUser } from "@/api/system/user";
|
|
|
import EquipmentSelectSingle from "@/components/equipmentSelect/single.vue"
|
|
|
+import { ElMessage, ElMessageBox, ElNotification, ElLoading } from 'element-plus'
|
|
|
|
|
|
const { proxy } = getCurrentInstance()
|
|
|
-const { gxt_maintenance_type, gxt_work_order_status, gxt_order_priority_type,gxt_repair_order_flow_action_type } = proxy.useDict("gxt_maintenance_type", "gxt_work_order_status", "gxt_order_priority_type","gxt_repair_order_flow_action_type")
|
|
|
+const { gxt_maintenance_type, gxt_work_order_status, gxt_order_priority_type,gxt_repair_order_flow_action_type,gxt_order_suspend_reason } = proxy.useDict("gxt_maintenance_type", "gxt_work_order_status", "gxt_order_priority_type","gxt_repair_order_flow_action_type","gxt_order_suspend_reason")
|
|
|
|
|
|
// 数据列表相关
|
|
|
const repairOrderList = ref([])
|
|
|
@@ -1417,7 +1428,7 @@ const acceptRules = ref({
|
|
|
// 挂起表单验证规则
|
|
|
const suspendRules = ref({
|
|
|
suspendReason: [
|
|
|
- { required: true, message: "请输入挂起原因", trigger: "blur" }
|
|
|
+ { required: true, message: "请选择挂起原因", trigger: "change" }
|
|
|
],
|
|
|
/*suspendDescription: [
|
|
|
{ required: true, message: "请输入详细说明", trigger: "blur" }
|
|
|
@@ -1426,12 +1437,12 @@ const suspendRules = ref({
|
|
|
|
|
|
// 审批表单验证规则
|
|
|
const approveRules = ref({
|
|
|
- approvalStatus: [
|
|
|
+ /*approvalStatus: [
|
|
|
{ required: true, message: "请选择审批决定", trigger: "change" }
|
|
|
],
|
|
|
rejectionReason: [
|
|
|
{ required: true, message: "请输入驳回原因", trigger: "blur" }
|
|
|
- ]
|
|
|
+ ]*/
|
|
|
})
|
|
|
|
|
|
// 结单表单验证规则
|
|
|
@@ -1776,14 +1787,21 @@ function handleExport() {
|
|
|
|
|
|
/** 故障代码变化处理 */
|
|
|
function handleFaultCodeChange(value) {
|
|
|
- const selectedFaultCode = faultCodeOptions.value.find(item => item.faultCode === value);
|
|
|
- if (selectedFaultCode) {
|
|
|
- form.value.faultBarcode = selectedFaultCode.faultBarcode || "";
|
|
|
+ if (value === '无') {
|
|
|
+ // 当选择"无"时,故障条纹设置为"-"并允许手动输入
|
|
|
+ form.value.faultBarcode = "-";
|
|
|
} else {
|
|
|
- form.value.faultBarcode = "";
|
|
|
+ // 当选择具体的故障代码时,自动填充故障条纹并设为只读
|
|
|
+ const selectedFaultCode = faultCodeOptions.value.find(item => item.faultCode === value);
|
|
|
+ if (selectedFaultCode) {
|
|
|
+ form.value.faultBarcode = selectedFaultCode.faultBarcode || "";
|
|
|
+ } else {
|
|
|
+ form.value.faultBarcode = "";
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/** 获取字典标签文本 */
|
|
|
function getDictLabel(dictOptions, value) {
|
|
|
const dict = dictOptions.find(item => item.value === value);
|
|
|
@@ -1918,12 +1936,22 @@ async function submitAccept() {
|
|
|
|
|
|
/** 开始操作 */
|
|
|
function handleStart(row) {
|
|
|
- startForm.value = {
|
|
|
+ /*startForm.value = {
|
|
|
id: row.id,
|
|
|
workOrderProjectNo: row.workOrderProjectNo,
|
|
|
pcsDeviceName: row.pcsDeviceName
|
|
|
}
|
|
|
- startDialogVisible.value = true
|
|
|
+ startDialogVisible.value = true*/
|
|
|
+ ElMessageBox.confirm('确定要恢复工单"' + row.workOrderProjectNo + '"吗?', '提示', {
|
|
|
+ confirmButtonText: '确认恢复',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(function() {
|
|
|
+ startRepairOrder(row);
|
|
|
+ }).then(() => {
|
|
|
+ getList()
|
|
|
+ proxy.$modal.msgSuccess("恢复成功")
|
|
|
+ }).catch(() => {})
|
|
|
}
|
|
|
|
|
|
/** 提交开始处理 */
|
|
|
@@ -2131,7 +2159,7 @@ function toggleRejectionReason() {
|
|
|
}
|
|
|
|
|
|
/** 提交审批 */
|
|
|
-async function submitApprove() {
|
|
|
+async function submitApprove(approvalStatusValue) {
|
|
|
proxy.$refs["approveFormRef"].validate(async valid => {
|
|
|
if (valid) {
|
|
|
try {
|
|
|
@@ -2157,8 +2185,13 @@ async function submitApprove() {
|
|
|
actionType = "驳回";
|
|
|
actionRemark = "挂起申请被驳回: " + approveForm.value.rejectionReason;
|
|
|
}*/
|
|
|
- if (approveForm.value.approvalStatus === 'approved') {
|
|
|
+ approveForm.value.approvalStatus = approvalStatusValue
|
|
|
+ /*if (approveForm.value.approvalStatus === 'approved') {
|
|
|
approveForm.value.rejectionReason = undefined;
|
|
|
+ }*/
|
|
|
+ if (approveForm.value.approvalStatus === 'rejected' && !approveForm.value.rejectionReason) {
|
|
|
+ proxy.$modal.msgError("驳回时审批意见不能为空");
|
|
|
+ return;
|
|
|
}
|
|
|
await approveSuspendRepairOrder(approveForm.value);
|
|
|
|