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