From 11539543075b17d64a2b8d2c4a085634ba683eed Mon Sep 17 00:00:00 2001 From: shj <1790240199@qq.com> Date: 星期五, 15 七月 2022 16:47:05 +0800 Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqtOut --- src/components/equipmentDailog/DailogS.vue | 444 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 444 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 -- Gitblit v1.9.2