对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |