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