Files
SaaS-lib/hx-ai-intelligent/src/view/alarmManagement/equipmentAlarm/status.vue

151 lines
4.6 KiB
Vue
Raw Normal View History

2024-07-16 15:42:49 +08:00
<template>
<ns-drawer
v-model:visible="visible"
width="550"
2024-07-16 15:42:49 +08:00
:title="' '"
:footer-style="{ textAlign: 'right' }"
:ok="btnClick"
:cancel="handleClose"
placement="right"
@close="handleClose">
<a-tabs>
<a-tab-pane key="1" tab="更新状态">
<div style="width: 100%; padding: 24px">
<a-form ref="formRef" :model="infoObject" :rules="rules">
<a-form-item ref="status" label="当前状态" name="status">
<a-select
v-model:value="infoObject.status"
show-search
placeholder="请选择设备点位"
style="width: 85%"
:options="statusOptions"
:disabled="showEdit"
:filter-option="filterDevicePoint" />
<ns-icon
size="20"
@click="() => (showEdit = !showEdit)"
style="margin-left: 20px"
:name="showEdit ? 'bianji' : 'baocun'" />
</a-form-item>
<a-form-item label="备注" name="desc">
<a-textarea
v-model:value="infoObject.desc"
placeholder="请输入异常描述"
:disabled="showEdit"
style="width: 85%"
:autoSize="{ minRows: 4, maxRows: 4 }" />
</a-form-item>
</a-form>
</div>
</a-tab-pane>
<a-tab-pane key="2" tab="状态流程">
2024-07-22 10:34:40 +08:00
<!-- 自动生成工单 -->
<div v-if="infoObject.createWorkOrder === 1"> xxxx </div>
<!-- 没有自动生成工单 -->
<NsSteps v-else v-bind="config" />
</a-tab-pane>
</a-tabs>
<template #footer>
<a-button type="primary" @click="btnClick">确定</a-button>
</template>
2024-07-16 15:42:49 +08:00
</ns-drawer>
</template>
<script>
import { defineComponent } from 'vue';
2024-07-22 10:34:40 +08:00
import { ref } from 'vue';
import NsSteps from '/@/components/ns-steps.vue';
2024-07-22 10:34:40 +08:00
import { NsMessage } from '/nerv-lib/component';
2024-07-16 15:42:49 +08:00
export default defineComponent({
components: { NsSteps },
2024-07-16 15:42:49 +08:00
setup() {
const visible = ref(false);
const showEdit = ref(true);
const infoObject = ref({});
const equipmentAlarm = ref({});
2024-07-22 10:34:40 +08:00
const statusOptions = ref();
const logList = ref([
{ name: '李四', status: 3, time: '2024-03-10 10:00:00', desc: '完成' },
{ name: '王五', status: 5, time: '2024-03-10 10:00:00' },
{ name: '王五', status: 4, time: '2024-03-10 10:00:00' },
{ name: '王五', status: 2, time: '2024-03-10 10:00:00', desc: '创建工单' },
{ name: '赵六', status: 1, time: '2024-03-10 10:00:00' },
]);
const config = ref({
size: logList.value.length,
dataSource: logList.value,
});
2024-07-16 15:42:49 +08:00
const handleClose = () => {
visible.value = false;
};
const btnClick = () => {
2024-07-22 10:34:40 +08:00
NsMessage.success('操作成功');
delete infoObject.value.time;
console.log(infoObject.value, equipmentAlarm.value, '操作');
2024-07-16 15:42:49 +08:00
console.log('btnClick');
};
const toggle = (data) => {
console.log(data, '数据');
equipmentAlarm.value = data;
infoObject.value = { ...logList.value[0] };
if (equipmentAlarm.value.createWorkOrder === 1) {
2024-07-22 10:34:40 +08:00
statusOptions.value = [
{ value: 1, label: '待处理' },
{ value: 2, label: '处理中' },
{ value: 3, label: '已完成' },
{ value: 4, label: '超时' },
{ value: 5, label: '已关闭' },
2024-07-22 10:34:40 +08:00
];
} else {
statusOptions.value = [
{ value: 1, label: '待处理' },
{ value: 2, label: '处理中' },
{ value: 3, label: '已完成' },
{ value: 5, label: '已关闭' },
2024-07-22 10:34:40 +08:00
];
}
let statusMap = {
2024-07-22 10:34:40 +08:00
1: '待处理',
2: '处理中',
3: '已完成',
4: '超时',
5: '已关闭',
};
let colorMap = {
2024-07-22 10:34:40 +08:00
1: '#ff7602',
2: '#00a1e6',
3: '#04d919',
4: '#d9001b',
5: '#a6a6a6',
};
logList.value.forEach((item) => {
item.statusName = statusMap[item.status];
item.color = colorMap[item.status];
item.src = 'status-' + item.status;
});
2024-07-16 15:42:49 +08:00
visible.value = true;
};
return {
infoObject,
showEdit,
equipmentAlarm,
statusOptions,
2024-07-16 15:42:49 +08:00
btnClick,
visible,
logList,
config,
2024-07-16 15:42:49 +08:00
handleClose,
toggle,
};
},
});
</script>
<style scoped lang="less">
:deep(.ant-form-item-label) {
z-index: 20;
text-align: right;
width: 17%;
}
</style>