bugfix
This commit is contained in:
@ -33,3 +33,11 @@ export function updateHandleOrder(data) {
|
|||||||
data: data,
|
data: data,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 提交告警工单审核
|
||||||
|
export function commitHandleOrder(orderIds) {
|
||||||
|
return request({
|
||||||
|
url: `/maintenance/handle-order/commit/${orderIds}`,
|
||||||
|
method: "put",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
@ -49,3 +49,12 @@ export function publishOrder(orderIds) {
|
|||||||
method: "put",
|
method: "put",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*审核工单*/
|
||||||
|
export function commitExamine(data) {
|
||||||
|
return request({
|
||||||
|
url: `/maintenance/order/commitExamine`,
|
||||||
|
method: "put",
|
||||||
|
data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
75
src/components/PagedSelect.vue
Normal file
75
src/components/PagedSelect.vue
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
<script setup>
|
||||||
|
import { ref } from "vue";
|
||||||
|
import InfiniteLoading from "v3-infinite-loading";
|
||||||
|
import "v3-infinite-loading/lib/style.css"; //required if you're not going to override default slots
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
modelValue: {
|
||||||
|
type: Object,
|
||||||
|
},
|
||||||
|
remoteMethod: {
|
||||||
|
type: Function,
|
||||||
|
},
|
||||||
|
prop: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const emit = defineEmits(["update:modelValue"]);
|
||||||
|
const placeholder = ref();
|
||||||
|
|
||||||
|
const loadMore = () => {
|
||||||
|
console.log("load more");
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-popover
|
||||||
|
:popper-style="{
|
||||||
|
padding: 0,
|
||||||
|
}"
|
||||||
|
:width="320"
|
||||||
|
placement="bottom"
|
||||||
|
trigger="click"
|
||||||
|
>
|
||||||
|
<template #reference>
|
||||||
|
<div style="width: 320px">
|
||||||
|
<el-input :placeholder="placeholder" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<el-scrollbar class="options-wrap" height="300">
|
||||||
|
<ul class="options">
|
||||||
|
<li v-for="i in 32" :key="i" class="option-item">option</li>
|
||||||
|
</ul>
|
||||||
|
<infinite-loading @infinite="loadMore"> </infinite-loading>
|
||||||
|
</el-scrollbar>
|
||||||
|
</el-popover>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.options-wrap {
|
||||||
|
//height: 300px;
|
||||||
|
|
||||||
|
.options {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
.option-item {
|
||||||
|
color: #409eff;
|
||||||
|
height: 32px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 14px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 32px 0 20px;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: #f5f7fa;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -377,7 +377,7 @@ export const orderStatusDict = [
|
|||||||
{
|
{
|
||||||
label: "进行中",
|
label: "进行中",
|
||||||
value: "1",
|
value: "1",
|
||||||
elTagType: "primary",
|
elTagType: "warning",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "已完成",
|
label: "已完成",
|
||||||
@ -389,6 +389,11 @@ export const orderStatusDict = [
|
|||||||
value: "3",
|
value: "3",
|
||||||
elTagType: "danger",
|
elTagType: "danger",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: "待审核",
|
||||||
|
value: "4",
|
||||||
|
elTagType: "primary",
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const alertHandleResultDict = [
|
export const alertHandleResultDict = [
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<!-- <el-form-item> </el-form-item>-->
|
||||||
|
|
||||||
<!-- <el-form-item label="建议完成时间" prop="suggestCompleteTime">-->
|
<!-- <el-form-item label="建议完成时间" prop="suggestCompleteTime">-->
|
||||||
<!-- <el-date-picker-->
|
<!-- <el-date-picker-->
|
||||||
@ -206,6 +207,14 @@
|
|||||||
@click="handleGoDetail(row.orderId)"
|
@click="handleGoDetail(row.orderId)"
|
||||||
>详情
|
>详情
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
v-if="row.status !== '4'"
|
||||||
|
icon="upload"
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
@click="handleCommitOrder(row)"
|
||||||
|
>提交审核
|
||||||
|
</el-button>
|
||||||
<!-- <el-button-->
|
<!-- <el-button-->
|
||||||
<!-- v-if="row.status === '0'"-->
|
<!-- v-if="row.status === '0'"-->
|
||||||
<!-- v-hasPermi="['maintenance:order:remove']"-->
|
<!-- v-hasPermi="['maintenance:order:remove']"-->
|
||||||
@ -228,224 +237,224 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 添加或修改告警工单对话框 -->
|
<!-- 添加或修改告警工单对话框 -->
|
||||||
<el-dialog v-model="open" :title="title" append-to-body width="1200px">
|
<!-- <el-dialog v-model="open" :title="title" append-to-body width="1200px">-->
|
||||||
<el-form
|
<!-- <el-form-->
|
||||||
ref="orderRef"
|
<!-- ref="orderRef"-->
|
||||||
:model="form"
|
<!-- :model="form"-->
|
||||||
:rules="rules"
|
<!-- :rules="rules"-->
|
||||||
label-position="left"
|
<!-- label-position="left"-->
|
||||||
label-width="120px"
|
<!-- label-width="120px"-->
|
||||||
>
|
<!-- >-->
|
||||||
<!-- <el-form-item label="工单编号" prop="orderNumber">-->
|
<!-- <!– <el-form-item label="工单编号" prop="orderNumber">–>-->
|
||||||
<!-- <el-input v-model="form.orderNumber" placeholder="请输入工单编号" />-->
|
<!-- <!– <el-input v-model="form.orderNumber" placeholder="请输入工单编号" />–>-->
|
||||||
<!-- </el-form-item>-->
|
<!-- <!– </el-form-item>–>-->
|
||||||
<el-form-item label="级别" prop="level">
|
<!-- <el-form-item label="级别" prop="level">-->
|
||||||
<el-select v-model="form.level" placeholder="请选择级别">
|
<!-- <el-select v-model="form.level" placeholder="请选择级别">-->
|
||||||
<el-option
|
<!-- <el-option-->
|
||||||
v-for="option in orderLevel"
|
<!-- v-for="option in orderLevel"-->
|
||||||
:key="option.value"
|
<!-- :key="option.value"-->
|
||||||
:label="option.label"
|
<!-- :label="option.label"-->
|
||||||
:value="option.value"
|
<!-- :value="option.value"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-select>
|
<!-- </el-select>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="负责工人" prop="workerId">
|
<!-- <el-form-item label="负责工人" prop="workerId">-->
|
||||||
<!--<el-input v-model="form.workerId" placeholder="请输入负责工人ID" />-->
|
<!-- <!–<el-input v-model="form.workerId" placeholder="请输入负责工人ID" />–>-->
|
||||||
<el-select
|
<!-- <el-select-->
|
||||||
v-model="form.workerId"
|
<!-- v-model="form.workerId"-->
|
||||||
:remote-method="loadWorkOptions"
|
<!-- :remote-method="loadWorkOptions"-->
|
||||||
clearable
|
<!-- clearable-->
|
||||||
filterable
|
<!-- filterable-->
|
||||||
placeholder="请选择负责工人"
|
<!-- placeholder="请选择负责工人"-->
|
||||||
remote
|
<!-- remote-->
|
||||||
remote-show-suffix
|
<!-- remote-show-suffix-->
|
||||||
@change="
|
<!-- @change="-->
|
||||||
form.workerName = workerOptions.find(
|
<!-- form.workerName = workerOptions.find(-->
|
||||||
(el) => el.userId === $event
|
<!-- (el) => el.userId === $event-->
|
||||||
)?.nickName
|
<!-- )?.nickName-->
|
||||||
"
|
<!-- "-->
|
||||||
>
|
<!-- >-->
|
||||||
<el-option
|
<!-- <el-option-->
|
||||||
v-for="option in workerOptions"
|
<!-- v-for="option in workerOptions"-->
|
||||||
:key="option.userId"
|
<!-- :key="option.userId"-->
|
||||||
:label="option.nickName"
|
<!-- :label="option.nickName"-->
|
||||||
:value="option.userId"
|
<!-- :value="option.userId"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-select>
|
<!-- </el-select>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="建议完成时间" prop="suggestCompleteTime">
|
<!-- <el-form-item label="建议完成时间" prop="suggestCompleteTime">-->
|
||||||
<el-date-picker
|
<!-- <el-date-picker-->
|
||||||
v-model="form.suggestCompleteTime"
|
<!-- v-model="form.suggestCompleteTime"-->
|
||||||
clearable
|
<!-- clearable-->
|
||||||
placeholder="请选择建议完成时间"
|
<!-- placeholder="请选择建议完成时间"-->
|
||||||
type="datetime"
|
<!-- type="datetime"-->
|
||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
|
||||||
>
|
<!-- >-->
|
||||||
</el-date-picker>
|
<!-- </el-date-picker>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
|
|
||||||
<el-form-item label="备注" prop="remark">
|
<!-- <el-form-item label="备注" prop="remark">-->
|
||||||
<el-input
|
<!-- <el-input-->
|
||||||
v-model="form.remark"
|
<!-- v-model="form.remark"-->
|
||||||
placeholder="请输入备注"
|
<!-- placeholder="请输入备注"-->
|
||||||
type="textarea"
|
<!-- type="textarea"-->
|
||||||
></el-input>
|
<!-- ></el-input>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="告警" prop="alerts"></el-form-item>
|
<!-- <el-form-item label="告警" prop="alerts"></el-form-item>-->
|
||||||
<el-form-item label-width="0">
|
<!-- <el-form-item label-width="0">-->
|
||||||
<template v-if="form.alerts?.length">
|
<!-- <template v-if="form.alerts?.length">-->
|
||||||
<el-table
|
<!-- <el-table-->
|
||||||
:data="form.alerts"
|
<!-- :data="form.alerts"-->
|
||||||
class="custom-table-style"
|
<!-- class="custom-table-style"-->
|
||||||
max-height="400"
|
<!-- max-height="400"-->
|
||||||
>
|
<!-- >-->
|
||||||
<el-table-column
|
<!-- <el-table-column-->
|
||||||
align="center"
|
<!-- align="center"-->
|
||||||
label="告警名称"
|
<!-- label="告警名称"-->
|
||||||
prop="alertName"
|
<!-- prop="alertName"-->
|
||||||
/>
|
<!-- />-->
|
||||||
<el-table-column align="center" label="告警级别">
|
<!-- <el-table-column align="center" label="告警级别">-->
|
||||||
<template #default="{ row }">
|
<!-- <template #default="{ row }">-->
|
||||||
<dict-tag
|
<!-- <dict-tag-->
|
||||||
:options="iot_alert_level"
|
<!-- :options="iot_alert_level"-->
|
||||||
:value="row.alertLevel"
|
<!-- :value="row.alertLevel"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-table-column>
|
<!-- </el-table-column>-->
|
||||||
<el-table-column
|
<!-- <el-table-column-->
|
||||||
align="center"
|
<!-- align="center"-->
|
||||||
label="告警内容"
|
<!-- label="告警内容"-->
|
||||||
prop="alertContent"
|
<!-- prop="alertContent"-->
|
||||||
/>
|
<!-- />-->
|
||||||
<el-table-column align="center" label="产品Sn" prop="productSn" />
|
<!-- <el-table-column align="center" label="产品Sn" prop="productSn" />-->
|
||||||
<el-table-column
|
<!-- <el-table-column-->
|
||||||
align="center"
|
<!-- align="center"-->
|
||||||
label="设备名称"
|
<!-- label="设备名称"-->
|
||||||
prop="deviceName"
|
<!-- prop="deviceName"-->
|
||||||
/>
|
<!-- />-->
|
||||||
<el-table-column align="center" label="设备Sn" prop="deviceSn" />
|
<!-- <el-table-column align="center" label="设备Sn" prop="deviceSn" />-->
|
||||||
<el-table-column
|
<!-- <el-table-column-->
|
||||||
align="center"
|
<!-- align="center"-->
|
||||||
label="地址"
|
<!-- label="地址"-->
|
||||||
prop="networkAddress"
|
<!-- prop="networkAddress"-->
|
||||||
width="340"
|
<!-- width="340"-->
|
||||||
/>
|
<!-- />-->
|
||||||
|
|
||||||
<el-table-column align="center" label="操作">
|
<!-- <el-table-column align="center" label="操作">-->
|
||||||
<template #default="{ row }">
|
<!-- <template #default="{ row }">-->
|
||||||
<el-button
|
<!-- <el-button-->
|
||||||
icon="finished"
|
<!-- icon="finished"-->
|
||||||
link
|
<!-- link-->
|
||||||
type="primary"
|
<!-- type="primary"-->
|
||||||
@click="handleOrder(row)"
|
<!-- @click="handleOrder(row)"-->
|
||||||
>处理
|
<!-- >处理-->
|
||||||
</el-button>
|
<!-- </el-button>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-table-column>
|
<!-- </el-table-column>-->
|
||||||
</el-table>
|
<!-- </el-table>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
<!-- <el-button-->
|
<!-- <!– <el-button–>-->
|
||||||
<!-- v-if="!form.status || form.status === '0'"-->
|
<!-- <!– v-if="!form.status || form.status === '0'"–>-->
|
||||||
<!-- :icon="form.alerts?.length ? `plus` : `pointer`"-->
|
<!-- <!– :icon="form.alerts?.length ? `plus` : `pointer`"–>-->
|
||||||
<!-- size="small"-->
|
<!-- <!– size="small"–>-->
|
||||||
<!-- style="margin-top: 12px"-->
|
<!-- <!– style="margin-top: 12px"–>-->
|
||||||
<!-- type="primary"-->
|
<!-- <!– type="primary"–>-->
|
||||||
<!-- @click="handleOpenSelectAlert"-->
|
<!-- <!– @click="handleOpenSelectAlert"–>-->
|
||||||
<!-- >{{ form.alerts?.length ? "添加告警" : "选择告警" }}-->
|
<!-- <!– >{{ form.alerts?.length ? "添加告警" : "选择告警" }}–>-->
|
||||||
<!-- </el-button>-->
|
<!-- <!– </el-button>–>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<!-- <el-form-item label="实际完成时间" prop="realCompleteTime">-->
|
<!-- <!– <el-form-item label="实际完成时间" prop="realCompleteTime">–>-->
|
||||||
<!-- <el-date-picker-->
|
<!-- <!– <el-date-picker–>-->
|
||||||
<!-- v-model="form.realCompleteTime"-->
|
<!-- <!– v-model="form.realCompleteTime"–>-->
|
||||||
<!-- clearable-->
|
<!-- <!– clearable–>-->
|
||||||
<!-- placeholder="请选择实际完成时间"-->
|
<!-- <!– placeholder="请选择实际完成时间"–>-->
|
||||||
<!-- type="date"-->
|
<!-- <!– type="date"–>-->
|
||||||
<!-- value-format="YYYY-MM-DD"-->
|
<!-- <!– value-format="YYYY-MM-DD"–>-->
|
||||||
<!-- >-->
|
<!-- <!– >–>-->
|
||||||
<!-- </el-date-picker>-->
|
<!-- <!– </el-date-picker>–>-->
|
||||||
<!-- </el-form-item>-->
|
<!-- <!– </el-form-item>–>-->
|
||||||
<!-- <el-form-item label="驳回理由" prop="rejectReason">-->
|
<!-- <!– <el-form-item label="驳回理由" prop="rejectReason">–>-->
|
||||||
<!-- <el-input-->
|
<!-- <!– <el-input–>-->
|
||||||
<!-- v-model="form.rejectReason"-->
|
<!-- <!– v-model="form.rejectReason"–>-->
|
||||||
<!-- placeholder="请输入内容"-->
|
<!-- <!– placeholder="请输入内容"–>-->
|
||||||
<!-- type="textarea"-->
|
<!-- <!– type="textarea"–>-->
|
||||||
<!-- />-->
|
<!-- <!– />–>-->
|
||||||
<!-- </el-form-item>-->
|
<!-- <!– </el-form-item>–>-->
|
||||||
</el-form>
|
<!-- </el-form>-->
|
||||||
<template #footer>
|
<!-- <template #footer>-->
|
||||||
<div class="dialog-footer">
|
<!-- <div class="dialog-footer">-->
|
||||||
<!-- <el-button-->
|
<!-- <!– <el-button–>-->
|
||||||
<!-- v-if="!form.status || form.status === '0'"-->
|
<!-- <!– v-if="!form.status || form.status === '0'"–>-->
|
||||||
<!-- type="primary"-->
|
<!-- <!– type="primary"–>-->
|
||||||
<!-- @click="submitForm"-->
|
<!-- <!– @click="submitForm"–>-->
|
||||||
<!-- >确 定-->
|
<!-- <!– >确 定–>-->
|
||||||
<!-- </el-button>-->
|
<!-- <!– </el-button>–>-->
|
||||||
<el-button @click="cancel">关 闭</el-button>
|
<!-- <el-button @click="cancel">关 闭</el-button>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-dialog>
|
<!-- </el-dialog>-->
|
||||||
|
|
||||||
<el-dialog
|
<!-- <el-dialog-->
|
||||||
v-model="showHandleAlert"
|
<!-- v-model="showHandleAlert"-->
|
||||||
append-to-body
|
<!-- append-to-body-->
|
||||||
title="处理告警"
|
<!-- title="处理告警"-->
|
||||||
width="500px"
|
<!-- width="500px"-->
|
||||||
>
|
<!-- >-->
|
||||||
<el-form ref="handleAlertRef" :model="handleAlertForm">
|
<!-- <el-form ref="handleAlertRef" :model="handleAlertForm">-->
|
||||||
<el-form-item label="处理结果" prop="handleResult">
|
<!-- <el-form-item label="处理结果" prop="handleResult">-->
|
||||||
<el-select v-model="handleAlertForm.handleResult">
|
<!-- <el-select v-model="handleAlertForm.handleResult">-->
|
||||||
<el-option
|
<!-- <el-option-->
|
||||||
v-for="option in alertHandleResultDict"
|
<!-- v-for="option in alertHandleResultDict"-->
|
||||||
:key="option.value"
|
<!-- :key="option.value"-->
|
||||||
:label="option.label"
|
<!-- :label="option.label"-->
|
||||||
:value="option.value"
|
<!-- :value="option.value"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-select>
|
<!-- </el-select>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="是否修复" prop="fixResult">
|
<!-- <el-form-item label="是否修复" prop="fixResult">-->
|
||||||
<el-select v-model="handleAlertForm.fixResult">
|
<!-- <el-select v-model="handleAlertForm.fixResult">-->
|
||||||
<el-option
|
<!-- <el-option-->
|
||||||
v-for="option in alertFixResultDict"
|
<!-- v-for="option in alertFixResultDict"-->
|
||||||
:key="option.value"
|
<!-- :key="option.value"-->
|
||||||
:label="option.label"
|
<!-- :label="option.label"-->
|
||||||
:value="option.value"
|
<!-- :value="option.value"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-select>
|
<!-- </el-select>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="是否返厂" prop="isReturnFactory">
|
<!-- <el-form-item label="是否返厂" prop="isReturnFactory">-->
|
||||||
<el-select v-model="handleAlertForm.isReturnFactory">
|
<!-- <el-select v-model="handleAlertForm.isReturnFactory">-->
|
||||||
<el-option
|
<!-- <el-option-->
|
||||||
v-for="option in alertIsReturnFactoryDict"
|
<!-- v-for="option in alertIsReturnFactoryDict"-->
|
||||||
:key="option.value"
|
<!-- :key="option.value"-->
|
||||||
:label="option.label"
|
<!-- :label="option.label"-->
|
||||||
:value="option.value"
|
<!-- :value="option.value"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-select>
|
<!-- </el-select>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item
|
<!-- <el-form-item-->
|
||||||
v-if="handleAlertForm.isReturnFactory === '1'"
|
<!-- v-if="handleAlertForm.isReturnFactory === '1'"-->
|
||||||
label="返厂数量"
|
<!-- label="返厂数量"-->
|
||||||
prop="returnTotal"
|
<!-- prop="returnTotal"-->
|
||||||
>
|
<!-- >-->
|
||||||
<el-input-number v-model="handleAlertForm.returnTotal" />
|
<!-- <el-input-number v-model="handleAlertForm.returnTotal" />-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item
|
<!-- <el-form-item-->
|
||||||
v-if="handleAlertForm.isReturnFactory === '1'"
|
<!-- v-if="handleAlertForm.isReturnFactory === '1'"-->
|
||||||
label="返厂单号"
|
<!-- label="返厂单号"-->
|
||||||
prop="returnExpress"
|
<!-- prop="returnExpress"-->
|
||||||
>
|
<!-- >-->
|
||||||
<el-input
|
<!-- <el-input-->
|
||||||
v-model="handleAlertForm.returnExpress"
|
<!-- v-model="handleAlertForm.returnExpress"-->
|
||||||
placeholder="请输入返厂单号"
|
<!-- placeholder="请输入返厂单号"-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
</el-form>
|
<!-- </el-form>-->
|
||||||
<template #footer>
|
<!-- <template #footer>-->
|
||||||
<div class="dialog-footer">
|
<!-- <div class="dialog-footer">-->
|
||||||
<el-button type="primary" @click="submitHandleAlert">处理</el-button>
|
<!-- <el-button type="primary" @click="submitHandleAlert">处理</el-button>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-dialog>
|
<!-- </el-dialog>-->
|
||||||
<alert-select
|
<alert-select
|
||||||
v-model="showSelectAlert"
|
v-model="showSelectAlert"
|
||||||
:list="form.alerts ?? []"
|
:list="form.alerts ?? []"
|
||||||
@ -457,24 +466,16 @@
|
|||||||
|
|
||||||
<script lang="jsx" setup>
|
<script lang="jsx" setup>
|
||||||
import {
|
import {
|
||||||
delHandleOrder,
|
commitHandleOrder,
|
||||||
getHandleOrder,
|
|
||||||
listHandleOrder,
|
listHandleOrder,
|
||||||
updateHandleOrder,
|
|
||||||
} from "@/api/maintenance/handle_order";
|
} from "@/api/maintenance/handle_order";
|
||||||
import {
|
import { orderLevel, orderStatusDict } from "@/constant/dict";
|
||||||
alertFixResultDict,
|
|
||||||
alertHandleResultDict,
|
|
||||||
alertIsReturnFactoryDict,
|
|
||||||
orderLevel,
|
|
||||||
orderStatusDict,
|
|
||||||
} from "@/constant/dict";
|
|
||||||
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
|
import { getCurrentInstance, reactive, ref, toRefs } from "vue";
|
||||||
import { listUser } from "@/api/maintenance/user";
|
import { listUser } from "@/api/maintenance/user";
|
||||||
import AlertSelect from "../order/AlertSelect/index.vue";
|
import AlertSelect from "../order/AlertSelect/index.vue";
|
||||||
import { parseTime } from "@/utils/ruoyi";
|
import { parseTime } from "@/utils/ruoyi";
|
||||||
import DictTag from "@/components/DictTag/index.vue";
|
import DictTag from "@/components/DictTag/index.vue";
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
import { useDict } from "@/utils/dict";
|
import { useDict } from "@/utils/dict";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
|
|
||||||
@ -485,6 +486,7 @@ const open = ref(false);
|
|||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
const orderRef = ref();
|
const orderRef = ref();
|
||||||
const handleAlertRef = ref(); /*告警处理表单ref*/
|
const handleAlertRef = ref(); /*告警处理表单ref*/
|
||||||
|
const showHandleAlert = ref(false); /*显示处理告警窗口*/
|
||||||
const showSearch = ref(true);
|
const showSearch = ref(true);
|
||||||
const ids = ref([]);
|
const ids = ref([]);
|
||||||
const orderNumbers = ref([]);
|
const orderNumbers = ref([]);
|
||||||
@ -493,7 +495,6 @@ const multiple = ref(true);
|
|||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
const title = ref("");
|
const title = ref("");
|
||||||
const showSelectAlert = ref(false);
|
const showSelectAlert = ref(false);
|
||||||
const showHandleAlert = ref(false); /*显示处理告警窗口*/
|
|
||||||
const workerOptions = ref([]); /*负责工人选项列表*/
|
const workerOptions = ref([]); /*负责工人选项列表*/
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
@ -536,45 +537,45 @@ function getList() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
function cancel() {
|
// function cancel() {
|
||||||
open.value = false;
|
// open.value = false;
|
||||||
reset();
|
// reset();
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 表单重置
|
// 表单重置
|
||||||
function reset() {
|
// function reset() {
|
||||||
form.value = {
|
// form.value = {
|
||||||
orderId: null,
|
// orderId: null,
|
||||||
orderNumber: null,
|
// orderNumber: null,
|
||||||
level: null,
|
// level: null,
|
||||||
workerId: null,
|
// workerId: null,
|
||||||
workerName: null,
|
// workerName: null,
|
||||||
suggestCompleteTime: null,
|
// suggestCompleteTime: null,
|
||||||
realCompleteTime: null,
|
// realCompleteTime: null,
|
||||||
status: null,
|
// status: null,
|
||||||
rejectReason: null,
|
// rejectReason: null,
|
||||||
remark: null,
|
// remark: null,
|
||||||
createBy: null,
|
// createBy: null,
|
||||||
createTime: null,
|
// createTime: null,
|
||||||
alertIds: [],
|
// alertIds: [],
|
||||||
alerts: [],
|
// alerts: [],
|
||||||
};
|
// };
|
||||||
proxy.resetForm("orderRef");
|
// proxy.resetForm("orderRef");
|
||||||
}
|
// }
|
||||||
|
|
||||||
const resetHandleAlertForm = () => {
|
// const resetHandleAlertForm = () => {
|
||||||
handleAlertForm.value = {
|
// handleAlertForm.value = {
|
||||||
handleId: null,
|
// handleId: null,
|
||||||
handleResult: null,
|
// handleResult: null,
|
||||||
fixResult: null,
|
// fixResult: null,
|
||||||
isReturnFactory: null,
|
// isReturnFactory: null,
|
||||||
returnTotal: null,
|
// returnTotal: null,
|
||||||
returnExpress: null,
|
// returnExpress: null,
|
||||||
};
|
// };
|
||||||
if (handleAlertRef.value) {
|
// if (handleAlertRef.value) {
|
||||||
handleAlertRef.value.resetFields();
|
// handleAlertRef.value.resetFields();
|
||||||
}
|
// }
|
||||||
};
|
// };
|
||||||
|
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
function handleQuery() {
|
function handleQuery() {
|
||||||
@ -597,22 +598,22 @@ function handleSelectionChange(selection) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
function handleAdd() {
|
// function handleAdd() {
|
||||||
reset();
|
// reset();
|
||||||
open.value = true;
|
// open.value = true;
|
||||||
title.value = "添加告警工单";
|
// title.value = "添加告警工单";
|
||||||
}
|
// }
|
||||||
|
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
function handleUpdate(row) {
|
// function handleUpdate(row) {
|
||||||
reset();
|
// reset();
|
||||||
const _orderId = row.orderId || ids.value;
|
// const _orderId = row.orderId || ids.value;
|
||||||
getHandleOrder(_orderId).then((response) => {
|
// getHandleOrder(_orderId).then((response) => {
|
||||||
form.value = response.data;
|
// form.value = response.data;
|
||||||
open.value = true;
|
// open.value = true;
|
||||||
title.value = "查看告警工单";
|
// title.value = "查看告警工单";
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
|
|
||||||
const handleGoDetail = (orderId) => {
|
const handleGoDetail = (orderId) => {
|
||||||
router.push({
|
router.push({
|
||||||
@ -623,33 +624,33 @@ const handleGoDetail = (orderId) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
/*处理告警*/
|
/*处理告警*/
|
||||||
const handleOrder = (row) => {
|
// const handleOrder = (row) => {
|
||||||
resetHandleAlertForm();
|
// resetHandleAlertForm();
|
||||||
handleAlertForm.value = {
|
// handleAlertForm.value = {
|
||||||
handleId: row.handleId,
|
// handleId: row.handleId,
|
||||||
};
|
// };
|
||||||
showHandleAlert.value = true;
|
// showHandleAlert.value = true;
|
||||||
};
|
// };
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 提交告警处理结果
|
* 提交告警处理结果
|
||||||
*/
|
*/
|
||||||
const submitHandleAlert = () => {
|
// const submitHandleAlert = () => {
|
||||||
handleAlertRef.value.validate((valid) => {
|
// handleAlertRef.value.validate((valid) => {
|
||||||
if (valid) {
|
// if (valid) {
|
||||||
updateHandleOrder(handleAlertForm.value).then(() => {
|
// updateHandleOrder(handleAlertForm.value).then(() => {
|
||||||
ElMessage.success("处理成功");
|
// ElMessage.success("处理成功");
|
||||||
showHandleAlert.value = false;
|
// showHandleAlert.value = false;
|
||||||
// reset();
|
// // reset();
|
||||||
getHandleOrder(form.value.orderId).then((response) => {
|
// getHandleOrder(form.value.orderId).then((response) => {
|
||||||
form.value = response.data;
|
// form.value = response.data;
|
||||||
open.value = true;
|
// open.value = true;
|
||||||
title.value = "查看告警工单";
|
// title.value = "查看告警工单";
|
||||||
});
|
// });
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
};
|
// };
|
||||||
|
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
// function submitForm() {
|
// function submitForm() {
|
||||||
@ -685,25 +686,25 @@ const submitHandleAlert = () => {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
function handleDelete(row) {
|
// function handleDelete(row) {
|
||||||
const _orderIds = row.orderId || ids.value;
|
// const _orderIds = row.orderId || ids.value;
|
||||||
const _orderNumbers = row.orderNumber || orderNumbers.value;
|
// const _orderNumbers = row.orderNumber || orderNumbers.value;
|
||||||
proxy.$modal
|
// proxy.$modal
|
||||||
.confirm('是否确认删除告警工单编号为"' + _orderNumbers + '"的数据项?')
|
// .confirm('是否确认删除告警工单编号为"' + _orderNumbers + '"的数据项?')
|
||||||
.then(function () {
|
// .then(function () {
|
||||||
return delHandleOrder(_orderIds);
|
// return delHandleOrder(_orderIds);
|
||||||
})
|
// })
|
||||||
.then(() => {
|
// .then(() => {
|
||||||
getList();
|
// getList();
|
||||||
proxy.$modal.msgSuccess("删除成功");
|
// proxy.$modal.msgSuccess("删除成功");
|
||||||
})
|
// })
|
||||||
.catch(() => {});
|
// .catch(() => {});
|
||||||
}
|
// }
|
||||||
|
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
function handleExport() {
|
function handleExport() {
|
||||||
proxy.download(
|
proxy.download(
|
||||||
"maintenance/order/export",
|
"maintenance/handle-order/export",
|
||||||
{
|
{
|
||||||
...queryParams.value,
|
...queryParams.value,
|
||||||
},
|
},
|
||||||
@ -724,6 +725,25 @@ const loadWorkOptions = (keyword) => {
|
|||||||
const handleOpenSelectAlert = () => {
|
const handleOpenSelectAlert = () => {
|
||||||
showSelectAlert.value = true;
|
showSelectAlert.value = true;
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* 提交告警工单审核
|
||||||
|
* @param row
|
||||||
|
*/
|
||||||
|
const handleCommitOrder = (row) => {
|
||||||
|
const _orderIds = row.orderId || ids.value;
|
||||||
|
const messageVNode = () => <>是否确认提交审核</>;
|
||||||
|
ElMessageBox.confirm(messageVNode, "提交审核", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
commitHandleOrder(_orderIds).then(() => {
|
||||||
|
ElMessage.success("提交审核成功");
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
};
|
||||||
const handleConfirmAlertSelect = ({ list, regionId, regionName }) => {
|
const handleConfirmAlertSelect = ({ list, regionId, regionName }) => {
|
||||||
// console.log(data);
|
// console.log(data);
|
||||||
form.value.alerts = list;
|
form.value.alerts = list;
|
||||||
|
@ -269,7 +269,7 @@ const handleSelect = (selection, row) => {
|
|||||||
(el) => el[props.selectKey] === row[props.selectKey]
|
(el) => el[props.selectKey] === row[props.selectKey]
|
||||||
) === -1;
|
) === -1;
|
||||||
if (isIdNotExist) {
|
if (isIdNotExist) {
|
||||||
console.log(isIdNotExist);
|
// console.log(isIdNotExist);
|
||||||
selectedProperties.value.push(row);
|
selectedProperties.value.push(row);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -11,12 +11,17 @@ import {
|
|||||||
alertFixResultDict,
|
alertFixResultDict,
|
||||||
alertHandleResultDict,
|
alertHandleResultDict,
|
||||||
alertIsReturnFactoryDict,
|
alertIsReturnFactoryDict,
|
||||||
|
orderStatusDict,
|
||||||
} from "@/constant/dict";
|
} from "@/constant/dict";
|
||||||
import DictTag from "@/components/DictTag/index.vue";
|
import DictTag from "@/components/DictTag/index.vue";
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
import { cloneDeep } from "lodash-es";
|
import { cloneDeep } from "lodash-es";
|
||||||
|
import Review from "@/views/maintenance/order/review.vue";
|
||||||
|
|
||||||
const { iot_alert_level } = useDict("iot_alert_level");
|
const { iot_alert_level } = useDict("iot_alert_level");
|
||||||
|
const showReviewOrder = ref(false);
|
||||||
|
/*是否显示审核窗口*/
|
||||||
|
const underReviewOrderId = ref(); /*正在审核的order id*/
|
||||||
|
|
||||||
const defaultRowKeys = ref([]);
|
const defaultRowKeys = ref([]);
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
@ -70,7 +75,7 @@ const loadDetail = (orderId) => {
|
|||||||
`.alert-handle-info-table .alert-handle-info-row .el-table__expand-column .el-table__expand-icon`
|
`.alert-handle-info-table .alert-handle-info-row .el-table__expand-column .el-table__expand-icon`
|
||||||
);
|
);
|
||||||
response.data?.alerts.forEach((alert, index) => {
|
response.data?.alerts.forEach((alert, index) => {
|
||||||
console.log(alert.handleResult);
|
// console.log(alert.handleResult);
|
||||||
const expandEl = expandEls[index];
|
const expandEl = expandEls[index];
|
||||||
if (!alert.handleResult) {
|
if (!alert.handleResult) {
|
||||||
if (expandEl) expandEl.style.visibility = "hidden";
|
if (expandEl) expandEl.style.visibility = "hidden";
|
||||||
@ -82,6 +87,11 @@ const loadDetail = (orderId) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleReview = () => {
|
||||||
|
underReviewOrderId.value = parseInt(route.query.id);
|
||||||
|
showReviewOrder.value = true;
|
||||||
|
};
|
||||||
|
|
||||||
const resetHandleAlertForm = () => {
|
const resetHandleAlertForm = () => {
|
||||||
handleAlertForm.value = {
|
handleAlertForm.value = {
|
||||||
handleId: null,
|
handleId: null,
|
||||||
@ -152,6 +162,18 @@ if (route.query.id) {
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
|
<el-button
|
||||||
|
v-if="route.path === '/maintenance/order-detail' && detail.status === '4'"
|
||||||
|
icon="check"
|
||||||
|
type="primary"
|
||||||
|
@click="handleReview"
|
||||||
|
>审核
|
||||||
|
</el-button>
|
||||||
|
<el-alert
|
||||||
|
v-if="detail.status === '2' || detail.status === '3'"
|
||||||
|
:type="detail.status === '2' ? 'success' : 'error'"
|
||||||
|
>{{ orderStatusDict.find((el) => el.value === detail.status)?.label }}
|
||||||
|
</el-alert>
|
||||||
<el-table
|
<el-table
|
||||||
:data="detail.alerts"
|
:data="detail.alerts"
|
||||||
:expand-row-keys="defaultRowKeys"
|
:expand-row-keys="defaultRowKeys"
|
||||||
@ -263,6 +285,7 @@ if (route.query.id) {
|
|||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="row.handleResult"
|
v-if="row.handleResult"
|
||||||
|
:disabled="detail.status === '4'"
|
||||||
icon="edit"
|
icon="edit"
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
@ -271,6 +294,7 @@ if (route.query.id) {
|
|||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-else
|
v-else
|
||||||
|
:disabled="detail.status === '4'"
|
||||||
icon="finished"
|
icon="finished"
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
@ -282,7 +306,18 @@ if (route.query.id) {
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
<!-- <el-row justify="center" style="margin-top: 12px">-->
|
||||||
|
<!-- <el-col :span="1.5">-->
|
||||||
|
<!-- <el-button icon="check" type="primary">审核</el-button>-->
|
||||||
|
<!-- </el-col>-->
|
||||||
|
<!-- </el-row>-->
|
||||||
|
<review
|
||||||
|
v-model:show="showReviewOrder"
|
||||||
|
:order-id="underReviewOrderId"
|
||||||
|
@review="loadDetail(route.query.id)"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!--告警处理弹窗-->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-model="showHandleAlert"
|
v-model="showHandleAlert"
|
||||||
:title="title"
|
:title="title"
|
||||||
@ -376,4 +411,8 @@ if (route.query.id) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.alert-handle-info-table {
|
||||||
|
margin-top: 12px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -24,31 +24,35 @@
|
|||||||
:value="option.value"
|
:value="option.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<!-- <el-input-->
|
|
||||||
<!-- v-model="queryParams.level"-->
|
|
||||||
<!-- clearable-->
|
|
||||||
<!-- placeholder="请输入级别"-->
|
|
||||||
<!-- @keyup.enter="handleQuery"-->
|
|
||||||
<!-- />-->
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="负责工人" prop="workerId">
|
<el-form-item label="状态" prop="status">
|
||||||
<el-select
|
<el-select v-model="queryParams.status" placeholder="请选择状态">
|
||||||
v-model="queryParams.workerId"
|
|
||||||
:remote-method="loadWorkOptions"
|
|
||||||
clearable
|
|
||||||
filterable
|
|
||||||
placeholder="请选择负责工人"
|
|
||||||
remote
|
|
||||||
remote-show-suffix
|
|
||||||
>
|
|
||||||
<el-option
|
<el-option
|
||||||
v-for="option in workerOptions"
|
v-for="option in orderStatusDict"
|
||||||
:key="option.userId"
|
:key="option.value"
|
||||||
:label="option.nickName"
|
:label="option.label"
|
||||||
:value="option.userId"
|
:value="option.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="负责工人" prop="workerId">-->
|
||||||
|
<!-- <el-select-->
|
||||||
|
<!-- v-model="queryParams.workerId"-->
|
||||||
|
<!-- :remote-method="loadWorkOptions"-->
|
||||||
|
<!-- clearable-->
|
||||||
|
<!-- filterable-->
|
||||||
|
<!-- placeholder="请选择负责工人"-->
|
||||||
|
<!-- remote-->
|
||||||
|
<!-- remote-show-suffix-->
|
||||||
|
<!-- >-->
|
||||||
|
<!-- <el-option-->
|
||||||
|
<!-- v-for="option in workerOptions"-->
|
||||||
|
<!-- :key="option.userId"-->
|
||||||
|
<!-- :label="option.nickName"-->
|
||||||
|
<!-- :value="option.userId"-->
|
||||||
|
<!-- />-->
|
||||||
|
<!-- </el-select>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
|
||||||
<!-- <el-form-item label="建议完成时间" prop="suggestCompleteTime">-->
|
<!-- <el-form-item label="建议完成时间" prop="suggestCompleteTime">-->
|
||||||
<!-- <el-date-picker-->
|
<!-- <el-date-picker-->
|
||||||
@ -190,6 +194,7 @@
|
|||||||
width="220"
|
width="220"
|
||||||
>
|
>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
|
<!--只有状态为待发布会显示-->
|
||||||
<el-button
|
<el-button
|
||||||
v-if="row.status === '0'"
|
v-if="row.status === '0'"
|
||||||
icon="share"
|
icon="share"
|
||||||
@ -198,6 +203,7 @@
|
|||||||
@click="handlePublishOrder(row)"
|
@click="handlePublishOrder(row)"
|
||||||
>发布
|
>发布
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<!--只有状态为待发布会显示-->
|
||||||
<el-button
|
<el-button
|
||||||
v-if="row.status === '0'"
|
v-if="row.status === '0'"
|
||||||
v-hasPermi="['maintenance:order:edit']"
|
v-hasPermi="['maintenance:order:edit']"
|
||||||
@ -207,15 +213,25 @@
|
|||||||
@click="handleUpdate(row)"
|
@click="handleUpdate(row)"
|
||||||
>修改
|
>修改
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<!--只有状态为非待发布会显示-->
|
||||||
<el-button
|
<el-button
|
||||||
v-else
|
v-else
|
||||||
v-hasPermi="['maintenance:order:edit']"
|
|
||||||
icon="document"
|
icon="document"
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleGoDetail(row.orderId)"
|
@click="handleGoDetail(row.orderId)"
|
||||||
>详情
|
>详情
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<!--只有状态为待审核会显示-->
|
||||||
|
<el-button
|
||||||
|
v-if="row.status === '4'"
|
||||||
|
icon="upload"
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
@click="handleReview(row)"
|
||||||
|
>审核
|
||||||
|
</el-button>
|
||||||
|
<!--只有状态为待发布会显示-->
|
||||||
<el-button
|
<el-button
|
||||||
v-if="row.status === '0'"
|
v-if="row.status === '0'"
|
||||||
v-hasPermi="['maintenance:order:remove']"
|
v-hasPermi="['maintenance:order:remove']"
|
||||||
@ -409,6 +425,12 @@
|
|||||||
select-key="alertId"
|
select-key="alertId"
|
||||||
@confirm-select="handleConfirmAlertSelect"
|
@confirm-select="handleConfirmAlertSelect"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<review
|
||||||
|
v-model:show="showReviewOrder"
|
||||||
|
:order-id="underReviewOrderId"
|
||||||
|
@review="getList()"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -431,6 +453,7 @@ import { omit } from "lodash-es";
|
|||||||
import { ElMessageBox } from "element-plus";
|
import { ElMessageBox } from "element-plus";
|
||||||
import { useDict } from "@/utils/dict";
|
import { useDict } from "@/utils/dict";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
|
import Review from "@/views/maintenance/order/review.vue";
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
@ -446,9 +469,10 @@ const single = ref(true);
|
|||||||
const multiple = ref(true);
|
const multiple = ref(true);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
const title = ref("");
|
const title = ref("");
|
||||||
const showSelectAlert = ref(false);
|
const showSelectAlert = ref(false); /*是否显示选择告警窗口*/
|
||||||
|
const showReviewOrder = ref(false); /*是否显示审核窗口*/
|
||||||
const workerOptions = ref([]); /*负责工人选项列表*/
|
const workerOptions = ref([]); /*负责工人选项列表*/
|
||||||
|
const underReviewOrderId = ref(); /*正在审核的order id*/
|
||||||
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: {},
|
form: {},
|
||||||
@ -473,9 +497,11 @@ const data = reactive({
|
|||||||
{ required: true, message: "请选择建议完成时间", trigger: "change" },
|
{ required: true, message: "请选择建议完成时间", trigger: "change" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
reviewForm: {},
|
||||||
|
reviewRules: {},
|
||||||
});
|
});
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules, reviewForm, reviewRules } = toRefs(data);
|
||||||
const { iot_alert_level } = useDict("iot_alert_level");
|
const { iot_alert_level } = useDict("iot_alert_level");
|
||||||
|
|
||||||
/** 查询告警工单列表 */
|
/** 查询告警工单列表 */
|
||||||
@ -562,6 +588,11 @@ const handleGoDetail = (orderId) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleReview = (row) => {
|
||||||
|
underReviewOrderId.value = row.orderId;
|
||||||
|
showReviewOrder.value = true;
|
||||||
|
};
|
||||||
|
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
function submitForm() {
|
function submitForm() {
|
||||||
proxy.$refs["orderRef"].validate((valid) => {
|
proxy.$refs["orderRef"].validate((valid) => {
|
||||||
|
119
src/views/maintenance/order/review.vue
Normal file
119
src/views/maintenance/order/review.vue
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
<script setup>
|
||||||
|
import { reactive, ref, toRefs } from "vue";
|
||||||
|
import { commitExamine } from "@/api/maintenance/order";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
import { orderStatusDict } from "@/constant/dict";
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
orderId: {
|
||||||
|
type: Number,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const emit = defineEmits(["update:show", "review"]);
|
||||||
|
const formRef = ref();
|
||||||
|
const data = reactive({
|
||||||
|
form: {},
|
||||||
|
rules: {
|
||||||
|
status: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "请选择处理结果",
|
||||||
|
trigger: "change",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
reason: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "请输入驳回理由",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const { form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
/*重置表单*/
|
||||||
|
const reset = () => {
|
||||||
|
form.value = {
|
||||||
|
orderId: null,
|
||||||
|
status: null,
|
||||||
|
reason: null,
|
||||||
|
};
|
||||||
|
if (formRef.value) {
|
||||||
|
formRef.value.resetFields();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/*对话框关闭事件*/
|
||||||
|
const close = () => {
|
||||||
|
reset();
|
||||||
|
emit("update:show", false);
|
||||||
|
};
|
||||||
|
|
||||||
|
/*对话框打开事件*/
|
||||||
|
const handleOpen = () => {
|
||||||
|
reset();
|
||||||
|
form.value = {
|
||||||
|
orderId: props.orderId,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const submitForm = () => {
|
||||||
|
formRef.value.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
commitExamine(form.value).then((resp) => {
|
||||||
|
emit("review");
|
||||||
|
ElMessage.success(
|
||||||
|
`${
|
||||||
|
orderStatusDict.find((el) => el.value === form.value.status)
|
||||||
|
?.label ?? "已审核"
|
||||||
|
}`
|
||||||
|
);
|
||||||
|
close();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<!--工单审核窗口-->
|
||||||
|
<el-dialog
|
||||||
|
:model-value="props.show"
|
||||||
|
append-to-body
|
||||||
|
title="工单审核"
|
||||||
|
width="500"
|
||||||
|
@close="close"
|
||||||
|
@open="handleOpen"
|
||||||
|
>
|
||||||
|
<el-form
|
||||||
|
ref="formRef"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
label-position="left"
|
||||||
|
label-width="120"
|
||||||
|
>
|
||||||
|
<el-form-item label="是否审核通过" prop="status">
|
||||||
|
<el-radio-group v-model="form.status">
|
||||||
|
<el-radio label="2">同意</el-radio>
|
||||||
|
<el-radio label="3">驳回</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item v-if="form.status === '3'" label="驳回理由" prop="reason">
|
||||||
|
<el-input v-model="form.reason" placeholder="请输入驳回理由" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="close">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
@ -461,7 +461,7 @@ const handleProvinceChange = (val) => {
|
|||||||
|
|
||||||
const getProvinceList = () => {
|
const getProvinceList = () => {
|
||||||
provinceList().then((resp) => {
|
provinceList().then((resp) => {
|
||||||
console.log(resp);
|
// console.log(resp);
|
||||||
provinceOptions.value = resp.data;
|
provinceOptions.value = resp.data;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
18
src/views/ttest/index.vue
Normal file
18
src/views/ttest/index.vue
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<script setup>
|
||||||
|
import PagedSelect from "@/components/PagedSelect.vue";
|
||||||
|
import { ref } from "vue";
|
||||||
|
|
||||||
|
const value = ref();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<PagedSelect
|
||||||
|
v-model="value"
|
||||||
|
:prop="{
|
||||||
|
label: 'alertName',
|
||||||
|
value: 'alertId',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
@ -31,7 +31,7 @@ export default defineConfig(({ mode, command }) => {
|
|||||||
proxy: {
|
proxy: {
|
||||||
// https://cn.vitejs.dev/config/#server-proxy
|
// https://cn.vitejs.dev/config/#server-proxy
|
||||||
"/dev-api": {
|
"/dev-api": {
|
||||||
target: "http://192.168.1.201:1615",
|
target: "http://192.168.0.201:1615",
|
||||||
// target: "http://117.72.16.89/api",
|
// target: "http://117.72.16.89/api",
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
rewrite: (p) => p.replace(/^\/dev-api/, ""),
|
rewrite: (p) => p.replace(/^\/dev-api/, ""),
|
||||||
|
Reference in New Issue
Block a user