From 6efd77ec0be9fc91c9ef4f3488aca631a4a49621 Mon Sep 17 00:00:00 2001
From: shj <1790240199@qq.com>
Date: 星期五, 15 七月 2022 16:46:57 +0800
Subject: [PATCH] 管理
---
src/views/facilityManagement/keyEquipment/index.vue | 299 ++++++++++++++++++
src/components/equipmentDailog/planDailog.vue | 143 ++++++++
src/components/equipmentDailog/DailogS.vue | 444 +++++++++++++++++++++++++++
src/views/facilityManagement/EquipmentStatistics/index.vue | 67 ++++
4 files changed, 953 insertions(+), 0 deletions(-)
diff --git a/src/components/equipmentDailog/DailogS.vue b/src/components/equipmentDailog/DailogS.vue
new file mode 100644
index 0000000..a1d4f24
--- /dev/null
+++ b/src/components/equipmentDailog/DailogS.vue
@@ -0,0 +1,444 @@
+<template>
+ <el-dialog v-model="dialogVisible" title="新建仪器仪表" width="60%">
+ <el-form :model="form" label-width="130px">
+ <el-row>
+ <el-col :span="11">
+ <el-form-item label="类型/类别外键">
+ <el-input v-model="form.name" placeholder="请选择">
+ <template #append>
+ <el-button :icon="Search" @click="opencategory"></el-button>
+ </template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="11" :offset="2">
+ <el-form-item label="装置/部位名称">
+ <el-input v-model="form.name" placeholder="请选择" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="11">
+ <el-form-item label="所属部门">
+ <el-select v-model="form.region" placeholder="请选择" style="width: 100%">
+ <el-option label="Zone one" value="shanghai" />
+ <el-option label="Zone two" value="beijing" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="11" :offset="2">
+ <el-form-item label="具体位置">
+ <el-input v-model="form.name" placeholder="请填写具体位置" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row>
+ <el-col :span="11">
+ <el-form-item label="负责人姓名">
+ <el-input v-model="form.name" placeholder="请填写负责人姓名" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="11" :offset="2">
+ <el-form-item label="联系人">
+ <el-input v-model="form.name" placeholder="请选择">
+ <template #append>
+ <el-button :icon="Search" @click="openUser"></el-button>
+ </template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="11">
+ <el-form-item label="录入人">
+ <el-input v-model="form.name" placeholder="请选择">
+ <template #append>
+ <el-button :icon="Search" @click="openUser"></el-button>
+ </template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="11" :offset="2">
+ <el-form-item label="责任人">
+ <el-input v-model="form.name" placeholder="请选择">
+ <template #append>
+ <el-button :icon="Search" @click="openUser"></el-button>
+ </template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="11">
+ <el-form-item label="装置部位分类">
+ <el-select v-model="form.region" placeholder="请选择" style="width: 100%">
+ <el-option label="Zone one" value="shanghai" />
+ <el-option label="Zone two" value="beijing" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="11" :offset="2">
+ <el-form-item label="检查周期">
+ <el-input v-model="form.name" placeholder="请选择检查周期" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="11">
+ <el-form-item label="相关应急预案">
+ <el-input v-model="form.name" placeholder="请选择">
+ <template #append>
+ <el-button :icon="Search" @click="openPlan"></el-button>
+ </template>
+ </el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="11" :offset="2">
+ <el-form-item label="主要危险有害因素">
+ <el-input v-model="form.name" placeholder="请选择" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row>
+ <el-col :span="11">
+ <el-form-item label="易导致风险">
+ <el-input v-model="form.name" placeholder="请选择易导致风险" />
+ </el-form-item>
+ </el-col>
+
+ <el-col :span="11" :offset="2">
+ <el-form-item label="应急处置措施">
+ <el-input v-model="form.name" placeholder="请选择应急处置措施" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="现场图片">
+ <el-upload
+ class="avatar-uploader"
+ action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
+ :show-file-list="false"
+ :on-success="handleAvatarSuccess"
+ :before-upload="beforeAvatarUpload"
+ >
+ <img v-if="imageUrl" :src="imageUrl" class="avatar" />
+ <el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
+ </el-upload>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="11">
+ <el-form-item label="备注信息"> <el-input v-model="form.name" placeholder="请选择应急处置措施" /> </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <el-tabs v-model="activeName" class="demo-tabs">
+ <el-tab-pane label="设备保养" name="first">
+ <el-button type="primary" @click="openMaintenance">新增</el-button>
+ <el-table :data="tableData" style="width: 100%">
+ <el-table-column align="center" prop="date" label="保养情况" />
+ <el-table-column align="center" prop="name" label="保养负责人" />
+ <el-table-column align="center" prop="address" label="保养日期" />
+ <el-table-column align="center" prop="address" label="保养负责人单位" />
+ <el-table-column align="center" prop="address" label="操作">
+ <template #default>
+ <el-button link type="primary" size="small">查看</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-tab-pane>
+ <el-tab-pane label="设备检测" name="second">
+ <el-button type="primary" @click="openDetect">新增</el-button>
+ <el-table :data="tableData" style="width: 100%">
+ <el-table-column align="center" prop="date" label="检测人" />
+ <el-table-column align="center" prop="name" label="检测日期" />
+ <el-table-column align="center" prop="address" label="检测人单位" />
+ <el-table-column align="center" prop="address" label="检测内容" />
+ <el-table-column align="center" prop="address" label="检测结果" />
+ <el-table-column align="center" prop="address" label="检测状态" />
+ <el-table-column align="center" prop="address" label="操作">
+ <template #default>
+ <el-button link type="primary" size="small">查看</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-tab-pane>
+ <el-tab-pane label="设备维修" name="third">
+ <el-button type="primary" @click="openRepair">新增</el-button>
+ <el-table :data="tableData" style="width: 100%">
+ <el-table-column align="center" prop="date" label="设施异常项" />
+ <el-table-column align="center" prop="name" label="维修状态" />
+ <el-table-column align="center" prop="address" label="维修情况" />
+ <el-table-column align="center" prop="address" label="维修负责人" />
+ <el-table-column align="center" prop="address" label="维修负责人单位" />
+ <el-table-column align="center" prop="address" label="维修开始日期" />
+ <el-table-column align="center" prop="address" label="维修结束日期" />
+ <el-table-column align="center" prop="address" label="操作">
+ <template #default>
+ <el-button link type="primary" size="small">查看</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-tab-pane>
+ <el-tab-pane label="检查标准设置" name="fourth">
+ <el-button type="primary" @click="openStandard">新增</el-button>
+ <el-table :data="tableData" style="width: 100%">
+ <el-table-column align="center" type="index" label="序号" width="75" />
+ <el-table-column align="center" prop="name" label="检查内容" />
+ <el-table-column align="center" prop="address" label="检查指标" />
+ <el-table-column align="center" prop="address" label="单位" />
+ <el-table-column align="center" prop="address" label="巡检部位" />
+ <el-table-column align="center" prop="address" label="频次" />
+ <el-table-column align="center" prop="address" label="操作">
+ <template #default>
+ <el-button link type="primary" size="small">查看</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-tab-pane>
+ <el-tab-pane label="巡检记录" name="five">
+ <el-table :data="tableData" style="width: 100%">
+ <el-table-column align="center" type="selection" width="75" />
+ <el-table-column align="center" sortable prop="name" label="任务编号" />
+ <el-table-column align="center" sortable prop="address" label="任务名称" />
+ <el-table-column align="center" sortable prop="address" label="点位类型" />
+ <el-table-column align="center" sortable prop="address" label="检查频次" />
+ <el-table-column align="center" sortable prop="address" label="巡检时间" />
+ <el-table-column align="center" sortable prop="address" label="巡检人" />
+ </el-table>
+ </el-tab-pane>
+ <el-tab-pane label="保养维修标准" name="six" v-if="Dailogtype">
+ <el-upload
+ v-model:file-list="fileList"
+ class="upload-demo"
+ action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
+ multiple
+ :on-preview="handlePreview"
+ :on-remove="handleRemove"
+ :before-remove="beforeRemove"
+ :limit="3"
+ :on-exceed="handleExceed"
+ >
+ <el-button type="primary">点击上传</el-button>
+ <template #tip>
+ <div class="el-upload__tip"></div>
+ </template>
+ </el-upload>
+ </el-tab-pane>
+ </el-tabs>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="dialogVisible = false">关闭</el-button>
+ <el-button type="primary" @click="dialogVisible = false">确定</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ <categoryDailog ref="categoryShow"></categoryDailog>
+ <planDailog ref="planShow"></planDailog>
+ <DailogSearchUser ref="UserShow"></DailogSearchUser>
+ <maintenanceDailog ref="maintenanceShow"></maintenanceDailog>
+ <detectDailog ref="detectShow"></detectDailog>
+ <repairDailog ref="repairShow"></repairDailog>
+ <standardDailog ref="standardShow"></standardDailog>
+</template>
+<script lang="ts">
+import { defineComponent, ref, reactive } from 'vue';
+import { Search,Plus } from '@element-plus/icons-vue';
+import categoryDailog from './categoryDailog.vue';
+import planDailog from './planDailog.vue';
+import maintenanceDailog from './maintenanceDailog.vue';
+import detectDailog from './detectDailog.vue';
+import repairDailog from './repairDailog.vue';
+import standardDailog from './standardDailog.vue';
+import DailogSearchUser from '/@/components/DailogSearchUser/index.vue';
+import { ElMessage, ElMessageBox } from 'element-plus';
+import type { UploadProps, UploadUserFile } from 'element-plus';
+export default defineComponent({
+ components: { categoryDailog, planDailog, DailogSearchUser, maintenanceDailog, detectDailog, repairDailog, standardDailog },
+ setup() {
+ const dialogVisible = ref(false);
+ const form = reactive({
+ name: '',
+ region: '',
+ date1: '',
+ date2: '',
+ delivery: false,
+ type: [],
+ resource: '',
+ desc: '',
+ });
+ const Dailogtype = ref(false);
+ const openDailog = (type: boolean) => {
+ dialogVisible.value = true;
+ Dailogtype.value = type;
+ };
+ const activeName = ref('first');
+ const tableData = [
+ {
+ date: '2016-05-03',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ {
+ date: '2016-05-02',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ {
+ date: '2016-05-04',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ {
+ date: '2016-05-01',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ ];
+ const categoryShow = ref();
+ const opencategory = () => {
+ categoryShow.value.openDailog();
+ };
+ const planShow = ref();
+ const openPlan = () => {
+ planShow.value.openDailog();
+ };
+ const UserShow = ref();
+ const openUser = () => {
+ UserShow.value.openDailog();
+ };
+ const maintenanceShow = ref();
+ const openMaintenance = () => {
+ maintenanceShow.value.openDailog();
+ };
+ const detectShow = ref();
+ const openDetect = () => {
+ detectShow.value.openDailog();
+ };
+ const repairShow = ref();
+ const openRepair = () => {
+ repairShow.value.openDailog();
+ };
+ const standardShow = ref();
+ const openStandard = () => {
+ standardShow.value.openDailog();
+ };
+ // 上传
+ const fileList = ref<UploadUserFile[]>([
+ {
+ name: 'element-plus-logo.svg',
+ url: 'https://element-plus.org/images/element-plus-logo.svg',
+ },
+ {
+ name: 'element-plus-logo2.svg',
+ url: 'https://element-plus.org/images/element-plus-logo.svg',
+ },
+ ]);
+
+ const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => {
+ console.log(file, uploadFiles);
+ };
+
+ const handlePreview: UploadProps['onPreview'] = (uploadFile) => {
+ console.log(uploadFile);
+ };
+
+ const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => {
+ ElMessage.warning(`The limit is 3, you selected ${files.length} files this time, add up to ${files.length + uploadFiles.length} totally`);
+ };
+
+ const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => {
+ return ElMessageBox.confirm(`Cancel the transfert of ${uploadFile.name} ?`).then(
+ () => true,
+ () => false
+ );
+ };
+ //图片提交
+ const imageUrl = ref('');
+
+ const handleAvatarSuccess: UploadProps['onSuccess'] = (response, uploadFile) => {
+ imageUrl.value = URL.createObjectURL(uploadFile.raw!);
+ };
+
+ const beforeAvatarUpload: UploadProps['beforeUpload'] = (rawFile) => {
+ if (rawFile.type !== 'image/jpeg') {
+ ElMessage.error('Avatar picture must be JPG format!');
+ return false;
+ } else if (rawFile.size / 1024 / 1024 > 2) {
+ ElMessage.error('Avatar picture size can not exceed 2MB!');
+ return false;
+ }
+ return true;
+ };
+ return {
+ dialogVisible,
+ Dailogtype,
+ form,
+ openDailog,
+ Search,
+ activeName,
+ tableData,
+ categoryShow,
+ opencategory,
+ planShow,
+ openPlan,
+ UserShow,
+ openUser,
+ maintenanceShow,
+ openMaintenance,
+ detectShow,
+ openDetect,
+ repairShow,
+ openRepair,
+ standardShow,
+ openStandard,
+ fileList,
+ handleRemove,
+ handlePreview,
+ handleExceed,
+ beforeRemove,
+ imageUrl,
+ handleAvatarSuccess,
+ beforeAvatarUpload,
+ Plus
+ };
+ },
+});
+</script>
+<style scoped>
+ .el-row{
+ padding: 0 0 20px 0;
+ }
+.avatar-uploader .avatar {
+ width: 178px;
+ height: 178px;
+ display: block;
+}
+</style>
+<style>
+ .avatar-uploader .el-upload {
+ border: 1px dashed var(--el-border-color);
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden;
+ transition: var(--el-transition-duration-fast);
+}
+
+.avatar-uploader .el-upload:hover {
+ border-color: var(--el-color-primary);
+}
+
+.el-icon.avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 178px;
+ height: 178px;
+ text-align: center;
+}
+</style>
\ No newline at end of file
diff --git a/src/components/equipmentDailog/planDailog.vue b/src/components/equipmentDailog/planDailog.vue
new file mode 100644
index 0000000..25b43fa
--- /dev/null
+++ b/src/components/equipmentDailog/planDailog.vue
@@ -0,0 +1,143 @@
+<template>
+ <el-dialog v-model="dialogVisible" title="选择所属重大危险源单元" width="50%" draggable>
+ <el-row>
+ <el-col :span="17">
+ <el-form ref="ruleFormRef" :model="ruleForm" status-icon>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item>
+ <el-input v-model="ruleForm.pass" placeholder="预案名称" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="11" :offset="1">
+ <el-form-item>
+ <el-button type="primary" @click="submitForm(ruleFormRef)">查询</el-button>
+ <el-button @click="resetForm(ruleFormRef)">重置</el-button>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <el-button size="default" :icon="Delete">清除选择</el-button>
+ <el-table :data="tableData" style="width: 100%; margin-top: 20px">
+ <el-table-column align="center" width="80">
+ <template #default="scope">
+ <el-radio-group v-model="radio1" @change="radio">
+ <el-radio :label="scope.row.date" size="large">{{null}}</el-radio>
+ </el-radio-group>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column align="center" prop="date" label="id"/> -->
+ <el-table-column align="center" prop="name" label="预案名称" />
+ </el-table>
+ <el-pagination
+ style="padding: 20px 0; border-bottom: 1px solid #dedede"
+ v-model:currentPage="currentPage4"
+ v-model:page-size="pageSize4"
+ :page-sizes="[100, 200, 300, 400]"
+ :small="small"
+ :disabled="disabled"
+ :background="background"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="400"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </el-col>
+ <el-col :span="7">
+ <el-tag
+ v-for="tag in dynamicTags"
+ :key="tag"
+ class="mx-1"
+ style="margin: 5px"
+ closable
+ :disable-transitions="false"
+ @close="handleClose(tag)"
+ >
+ {{ tag }}
+ </el-tag>
+ </el-col>
+ </el-row>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="dialogVisible = false" size="default">关闭</el-button>
+ <el-button type="primary" @click="dialogVisible = false" size="default">确定</el-button>
+ </span>
+ </template>
+ </el-dialog>
+</template>
+<script lang="ts">
+import { defineComponent, reactive, ref } from 'vue';
+import { Delete } from '@element-plus/icons-vue';
+export default defineComponent({
+ setup() {
+ const dialogVisible = ref<boolean>(false);
+ const openDailog = () => {
+ dialogVisible.value = true;
+ };
+ // 搜索条件
+ const ruleForm = reactive({
+ pass: '',
+ checkPass: '',
+ });
+ // 表格
+ const tableData = [
+ {
+ date: '2016-05-03',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ {
+ date: '2016-05-02',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ {
+ date: '2016-05-04',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ {
+ date: '2016-05-01',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ ];
+ const pageSize4 = ref(100);
+ const handleSizeChange = (val: number) => {
+ console.log(`${val} items per page`);
+ };
+ const handleCurrentChange = (val: number) => {
+ console.log(`current page: ${val}`);
+ };
+ // 右方点击添加后显示标签
+ const dynamicTags = ref(['2016-05-03']);
+ const handleClose = (tag: string) => {
+ dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1);
+ radio1.value=""
+ };
+ const radio1=ref('2016-05-03')
+ const radio=(event:any)=>{
+ dynamicTags.value[0]=event
+ }
+ return {
+ dialogVisible,
+ openDailog,
+ ruleForm,
+ tableData,
+ pageSize4,
+ handleSizeChange,
+ handleCurrentChange,
+ dynamicTags,
+ handleClose,
+ radio1,
+ radio,
+ Delete,
+ };
+ },
+});
+</script>
+<style scoped>
+.el-row {
+ padding: 0 0 20px 0;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/facilityManagement/EquipmentStatistics/index.vue b/src/views/facilityManagement/EquipmentStatistics/index.vue
new file mode 100644
index 0000000..65cda52
--- /dev/null
+++ b/src/views/facilityManagement/EquipmentStatistics/index.vue
@@ -0,0 +1,67 @@
+<template>
+ <div class="box">
+ <div class="title">设备设施统计</div>
+ <div ref="main" style="width: 100%; height: 400px"></div>
+ </div>
+</template>
+<script lang="ts">
+import { defineComponent, onMounted, ref } from 'vue';
+import * as echarts from 'echarts';
+export default defineComponent({
+ setup() {
+ const main = ref();
+ const init = () => {
+ var myChart = echarts.init(main.value);
+ var option = {
+ tooltip: {},
+ grid: {
+ left: '3%',
+ right: '4%',
+ bottom: '5%',
+ containLabel: true,
+ },
+ xAxis: {
+ type: 'category',
+ data: ['在用数', '报废数', '维修数', '停用数'],
+ },
+ yAxis: {
+ type: 'value',
+ name: '数量',
+ nameTextStyle: {
+ color: '#aaa',
+ nameLocation: 'start',
+ },
+ },
+ color: ['#6394f9'],
+ series: [
+ {
+ data: [120, 200, 150, 80, 70, 110, 130],
+ type: 'bar',
+ },
+ ],
+ };
+
+ myChart.setOption(option);
+ };
+ onMounted(() => {
+ init();
+ });
+ return {
+ init,
+ onMounted,
+ main,
+ };
+ },
+});
+</script>
+<style scoped>
+.box {
+ background-color: #fff;
+ box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
+}
+.title {
+ font-size: 16px;
+ border-bottom: 1px solid #eee;
+ padding: 20px;
+}
+</style>
diff --git a/src/views/facilityManagement/keyEquipment/index.vue b/src/views/facilityManagement/keyEquipment/index.vue
new file mode 100644
index 0000000..aa93974
--- /dev/null
+++ b/src/views/facilityManagement/keyEquipment/index.vue
@@ -0,0 +1,299 @@
+<template>
+ <div>
+ <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle">
+ <el-row>
+ <el-col :span="4">
+ <el-form-item>
+ <el-input v-model="ruleForm.pass" placeholder="装置/部位名称" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="4">
+ <el-form-item>
+ <el-button type="primary" @click="submitForm(ruleFormRef)">查询</el-button>
+ <el-button @click="resetForm(ruleFormRef)">重置</el-button>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <el-row>
+ <el-col :span="4">
+ <div class="tree">
+ <el-input v-model="filterText" style="height: 30px" placeholder="Filter keyword" />
+ <el-tree ref="treeRef" class="filter-tree" :data="data" :props="defaultProps" default-expand-all :filter-node-method="filterNode" />
+ </div>
+ </el-col>
+ <el-col :span="20">
+ <div class="btns">
+ <div>
+ <el-button type="primary" :icon="Plus" @click="openD">新建</el-button>
+ <el-button type="warning" plain :icon="EditPen">修改</el-button>
+ <el-button type="danger" :icon="Delete" plain>删除</el-button>
+ </div>
+ <div>
+ <el-button :icon="Upload" @click="openUp"></el-button>
+ <el-button :icon="Download"></el-button>
+ <el-button :icon="Refresh"></el-button>
+ </div>
+ </div>
+ <div style="padding-left: 10px">
+ <el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
+ <el-table-column type="selection" align="center" width="55" />
+ <el-table-column type="expand">
+ <template #default>
+ <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick" style="margin: 0 5%">
+ <el-tab-pane label="设备保养" name="first">
+ <el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
+ <el-table-column property="name" align="center" label="保养情况" sortable />
+ <el-table-column property="name" align="center" label="保养负责人" sortable />
+ <el-table-column property="name" align="center" label="保养日期" sortable />
+ <el-table-column property="name" align="center" label="保养负责人单位" sortable />
+ </el-table>
+ </el-tab-pane>
+ <el-tab-pane label="设备检查" name="second"
+ ><el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
+ <el-table-column property="name" align="center" label="检查人" sortable />
+ <el-table-column property="name" align="center" label="检查日期" sortable />
+ <el-table-column property="name" align="center" label="检查人部门" sortable />
+ <el-table-column property="name" align="center" label="检查结果" sortable />
+ <el-table-column property="name" align="center" label="检查状态" sortable /> </el-table
+ ></el-tab-pane>
+ <el-tab-pane label="设备检测" name="third">
+ <el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
+ <el-table-column property="name" align="center" label="检测人" sortable />
+ <el-table-column property="name" align="center" label="检测日期" sortable />
+ <el-table-column property="name" align="center" label="检测人单位" sortable />
+ <el-table-column property="name" align="center" label="检测内容" sortable />
+ <el-table-column property="name" align="center" label="检测结果" sortable />
+ <el-table-column property="name" align="center" label="检测状态" sortable />
+ </el-table>
+ </el-tab-pane>
+ <el-tab-pane label="设备维修" name="fourth">
+ <el-table ref="multipleTableRef" :data="tableData" style="width: 100%">
+ <el-table-column property="name" align="center" label="设施异常项" sortable />
+ <el-table-column property="name" align="center" label="维修状态" sortable />
+ <el-table-column property="name" align="center" label="维修情况" sortable />
+ <el-table-column property="name" align="center" label="维修负责人" sortable />
+ <el-table-column property="name" align="center" label="维修负责人单位" sortable />
+ <el-table-column property="name" align="center" label="维修开始日期" sortable />
+ <el-table-column property="name" align="center" label="维修结束日期" sortable />
+ </el-table>
+ </el-tab-pane>
+ </el-tabs>
+ </template>
+ </el-table-column>
+ <el-table-column label="id" align="center" sortable>
+ <template #default="scope">{{ scope.row.date }}</template>
+ </el-table-column>
+ <el-table-column property="name" align="center" label="类型/类别外键" sortable />
+ <el-table-column property="name" align="center" label="装置/部位名称" sortable />
+ <el-table-column property="address" label="所属部门" align="center" sortable show-overflow-tooltip />
+ <el-table-column property="address" label="具体位置" align="center" sortable show-overflow-tooltip />
+ <el-table-column property="address" label="负责人姓名" align="center" sortable show-overflow-tooltip />
+ <el-table-column property="address" label="装置部位分类" align="center" sortable show-overflow-tooltip />
+ <el-table-column label="操作" align="center" style="width: 300px">
+ <template #default>
+ <el-button link type="primary" size="default" :icon="View">查看</el-button>
+ <el-button link type="primary" size="default" :icon="EditPen">修改</el-button>
+ <el-button link type="primary" size="default" :icon="Delete">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div class="pages">
+ <el-pagination
+ v-model:currentPage="currentPage4"
+ v-model:page-size="pageSize4"
+ :page-sizes="[100, 200, 300, 400]"
+ :small="small"
+ :disabled="disabled"
+ :background="background"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="400"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ <updata ref="Show"></updata>
+ <DailogS ref="ShowD"></DailogS>
+ </div>
+</template>
+<script lang="ts">
+import { defineComponent, ref, reactive, watch } from 'vue';
+import updata from '/@/components/updata/updata.vue'
+import DailogS from '/@/components/equipmentDailog/DailogS.vue'
+import { ElTree, TabsPaneContext } from 'element-plus';
+import { EditPen, Plus, Delete, Download, Refresh, Upload } from '@element-plus/icons-vue';
+interface Tree {
+ id: number;
+ label: string;
+ children?: Tree[];
+}
+export default defineComponent({
+ components:{updata,DailogS},
+ setup() {
+ const ruleForm = reactive({
+ pass: '',
+ checkPass: '',
+ });
+ const filterText = ref('');
+ const treeRef = ref<InstanceType<typeof ElTree>>();
+
+ const defaultProps = {
+ children: 'children',
+ label: 'label',
+ };
+
+ watch(filterText, (val) => {
+ treeRef.value!.filter(val);
+ });
+
+ const filterNode = (value: string, data: Tree) => {
+ if (!value) return true;
+ return data.label.includes(value);
+ };
+
+ const data: Tree[] = [
+ {
+ id: 1,
+ label: 'Level one 1',
+ children: [
+ {
+ id: 4,
+ label: 'Level two 1-1',
+ children: [
+ {
+ id: 9,
+ label: 'Level three 1-1-1',
+ },
+ {
+ id: 10,
+ label: 'Level three 1-1-2',
+ },
+ ],
+ },
+ ],
+ },
+ {
+ id: 2,
+ label: 'Level one 2',
+ children: [
+ {
+ id: 5,
+ label: 'Level two 2-1',
+ },
+ {
+ id: 6,
+ label: 'Level two 2-2',
+ },
+ ],
+ },
+ {
+ id: 3,
+ label: 'Level one 3',
+ children: [
+ {
+ id: 7,
+ label: 'Level two 3-1',
+ },
+ {
+ id: 8,
+ label: 'Level two 3-2',
+ },
+ ],
+ },
+ ];
+ const tableData = [
+ {
+ date: '2016-05-03',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ {
+ date: '2016-05-02',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ {
+ date: '2016-05-04',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ {
+ date: '2016-05-01',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ {
+ date: '2016-05-08',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ {
+ date: '2016-05-06',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ {
+ date: '2016-05-07',
+ name: 'Tom',
+ address: 'No. 189, Grove St, Los Angeles',
+ },
+ ];
+ const activeName = ref('first');
+
+ const handleClick = (tab: TabsPaneContext, event: Event) => {
+ console.log(tab, event);
+ };
+ const Show=ref()
+ const openUp=()=>{
+ Show.value.openDialog()
+ }
+ const ShowD=ref()
+ const openD=()=>{
+ ShowD.value.openDailog(false)
+ }
+ return {
+ activeName,
+ handleClick,
+ ruleForm,
+ filterText,
+ treeRef,
+ defaultProps,
+ filterNode,
+ data,
+ tableData,
+ Show,
+ openUp,
+ ShowD,
+ openD,
+ Plus,
+ EditPen,
+ Delete,
+ Download,
+ Refresh,
+ Upload,
+ };
+ },
+});
+</script>
+<style scoped>
+.topTitle {
+ background-color: #fff;
+ padding: 20px 0px 20px 0px;
+ margin-bottom: 10px;
+}
+.tree {
+ height: 750px;
+ background-color: #fff;
+ overflow: hidden;
+ overflow-y: auto;
+}
+.btns {
+ padding: 10px 0px 10px 10px;
+ display: flex;
+ justify-content: space-between;
+ background-color: #fff;
+}
+</style>
--
Gitblit v1.9.2