| | |
| | | function Request() {} |
| | | // export const basrUrl = 'https://pipe.thhy-tj.com/api'; |
| | | // export const basrUrl = 'http://192.168.0.170:8880'; |
| | | export const basrUrl = 'http://111.30.93.212:8089/suapi'; |
| | | // export const baseUrl = 'https://pipe.thhy-tj.com/api'; |
| | | // export const baseUrl = 'http://192.168.0.170:8880'; |
| | | export const baseUrl = 'http://111.30.93.212:8089/suapi'; |
| | | Request.prototype = { |
| | | post: function(url, params) { |
| | | return new Promise(function(resolve, reject) { |
| | | const userToken = uni.getStorageSync('userToken') || ""; |
| | | uni.request({ |
| | | url: `${basrUrl}${url}`, |
| | | url: `${baseUrl}${url}`, |
| | | data: params, |
| | | method: 'POST', |
| | | header: { |
| | |
| | | const userToken = uni.getStorageSync('userToken') || ""; |
| | | uni.request({ |
| | | method: 'GET', |
| | | url: `${basrUrl}${url}`, |
| | | url: `${baseUrl}${url}`, |
| | | data: params, |
| | | header: { |
| | | usertoken: userToken, |
| | |
| | | */ |
| | | |
| | | // 查询字典信息 |
| | | searchDictionary: params => { |
| | | return axios({ |
| | | url: '/engineering/dict/dictList', |
| | | method: 'post', |
| | | searchDictionary: params => |
| | | axios.post('/engineering/dict/dictList',{ |
| | | ...params, |
| | | header: { |
| | | pageNum: params.pageNum, |
| | | pageSize: params.pageSize |
| | | } |
| | | }) |
| | | }, |
| | | }), |
| | | // 查询设备点检列表信息 |
| | | searchSpotCheckList: (params) => |
| | | axios({ |
| | | method: 'post', |
| | | url: '/m/checkDevice/findList', |
| | | axios.post('/m/checkDevice/findList',{ |
| | | ...params, |
| | | header: { |
| | | pageNum: params.pageNum, |
| | |
| | | }), |
| | | // 添加设备点检信息 |
| | | insertSpotCheckInfo: (params) => |
| | | axios.post('m/checkDevice/addCheckDevice', params), |
| | | axios.post('/m/checkDevice/addCheckDevice', params), |
| | | // 修改设备点检信息 |
| | | updateSpotCheckInfo: (params) => |
| | | axios.post('m/checkDevice/addCheckDevice', params), |
| | | axios.post('/m/checkDevice/addCheckDevice', params), |
| | | //删除设备点检信息 |
| | | deleteSpotCheckInfo: (params) => |
| | | axios.post('/m/checkDevice/delete', params), |
| | | // 获取点检详情 |
| | | getSpotCheckDetail: (params) => |
| | | axios.post('m/checkDevice/checkDeviceInfo', params), |
| | | axios.post('/m/checkDevice/checkDeviceInfo', params), |
| | | // 获取全部设备信息 |
| | | getAllDeviceData: () => |
| | | axios.post('/m/checkDevice/deviceList'), |
| | | // 获取设备信息详情 |
| | | getDeviceDetails: (params) => |
| | | axios.get('/engineering/bigDevice/bigDeviceInfo', params ), |
| | | } |
| | |
| | | */ |
| | | // 登录 |
| | | userLogin: params => |
| | | axios.post(`/usercore/login`, params), |
| | | axios.post(`/m/login`, params), |
| | | // 退出登录 |
| | | logingOut: params => |
| | | axios.post('/usercore/login/logout', params), |
| | |
| | | this.height = (deviceInfo.windowWidth / 3) - 32; |
| | | const menuData = JSON.parse(uni.getStorageSync('menuData')) || []; |
| | | this.homeTabList = menuData.map(item => { |
| | | console.log(item.menuIcon); |
| | | item.menuIcon = `http://filemanage.thhy-tj.com:8888/${item.menuIcon}` |
| | | return item; |
| | | }) |
| | |
| | | data() { |
| | | return { |
| | | formLogin: { |
| | | username: '', |
| | | password: '' |
| | | username: '15010128058', |
| | | password: '123456' |
| | | }, |
| | | rulesLogin: { |
| | | username: [{ |
| | |
| | | if(valid) { |
| | | const params = Object.assign({}, this.formLogin); |
| | | this.$api.system.userLogin(params).then((res) => { |
| | | console.log(res.data, '----'); |
| | | console.log(res, '----'); |
| | | if(res.success) { |
| | | uni.$u.toast('登录成功!'); |
| | | uni.setStorageSync('realName', res.data.realName); |
| | |
| | | </view> |
| | | <view class="device_item_value"> |
| | | <span class="label">设备名称:</span> |
| | | <span>混凝土搅拌机</span> |
| | | <span>{{deviceData.bigDeviceName}}</span> |
| | | </view> |
| | | <view class="device_item_value"> |
| | | <span class="label">型号规格:</span> |
| | | <span>混凝土搅拌机</span> |
| | | <span>{{deviceData.bigDeviceModel}}</span> |
| | | </view> |
| | | <view class="device_item_value"> |
| | | <span class="label">设备类型:</span> |
| | | <span>混凝土搅拌机</span> |
| | | <span>{{deviceData.bigType === 1 ? '特种设备' : '一般设备'}}</span> |
| | | </view> |
| | | </view> |
| | | <view class="device_form"> |
| | |
| | | :columns="checkTypeData" |
| | | keyName="dictName" |
| | | closeOnClickOverlay |
| | | @cancel="cancelCheckType()" |
| | | @confirm="confirmCheckType()" |
| | | @cancel="cancelCheckType" |
| | | @confirm="confirmCheckType" |
| | | @close="showCheckType = false" |
| | | ></u-picker> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import baseUrl from '../../api/http.js'; |
| | | import { changeTime, throttle } from '../../plugins/public.js'; |
| | | import { baseUrl } from '../../api/http.js'; |
| | | import { changeTime, throttle } from '../../plugins/public.js'; |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | colorStyle: 'linear-gradient(to right, rgb(79, 142, 244), rgb(85, 109, 254))', |
| | | showTime: false, |
| | | defaultTime: Number(new Date()), |
| | | deviceId: '' |
| | | deviceId: '', |
| | | deviceData: {}, |
| | | showCheckType: false, |
| | | checkTypeData: [], |
| | | } |
| | | }, |
| | | onReady() { |
| | |
| | | }, |
| | | onLoad(option) { |
| | | this.deviceId = option.deviceId; |
| | | console.log(option,'option') |
| | | this.getChackAllTypes(); |
| | | this.$api.spot.getDeviceDetails({ |
| | | bigDeviceId: option.deviceId |
| | | }).then((res) => { |
| | | this.deviceData = res.data; |
| | | }) |
| | | }, |
| | | methods: { |
| | | // 获取点检类型 |
| | |
| | | pageSize: 100000000, |
| | | dictType: 'check_type' |
| | | }); |
| | | this.checkTypeData = data.list; |
| | | this.checkTypeData.push(data.list); |
| | | }, |
| | | // 读取图片后 |
| | | afterRead(event) { |
| | | console.log(event); |
| | | console.log(event,'event', `${baseUrl}/file/file/upload`); |
| | | this.fileList.push({ |
| | | status: 'loading', |
| | | message: '上传中', |
| | |
| | | name: 'file', |
| | | success: (res) => { |
| | | const data = JSON.parse(res.data); |
| | | console.log(data,'?????'); |
| | | this.$set(this.fileList, this.fileList.length - 1, { |
| | | id: this.fileList.length + 1, |
| | | status: 'success', |
| | | message: '', |
| | | data: data.data, |
| | | url: `http://filemanage.thhy-tj.com:8888/${data.data}` |
| | | url: `http://filemanage.thhy-tj.com:8888/suapi/${data.data}` |
| | | }) |
| | | }, |
| | | fail: (error) => { |
| | | console.log(error,'error'); |
| | | uni.$u.toast('上传失败!'); |
| | | } |
| | | }) |
| | |
| | | }, |
| | | // 点击选择点检类型 |
| | | confirmCheckType({ value }) { |
| | | this.$set(this.formSpot, 'checkTypeName', value[0].dictName); |
| | | this.$set(this.formSpot, 'checkType', value[0].dictId); |
| | | this.showCheckType = false; |
| | | this.$set(this.formSpot, 'checkTypeName', value[0].checkTypeName); |
| | | this.$set(this.formSpot, 'checkType', value[0].checkType); |
| | | }, |
| | | // 提交点检信息 |
| | | submitForm: throttle(function() { |
| | | this.$refs.form.validate().then((valid) => { |
| | | if(valid) { |
| | | console.log(valid,'valid'); |
| | | const params = Object.assign({}, this.formSpot); |
| | | delete params.checkTypeName; |
| | | params.deviceId = this.deviceId; |
| | |
| | | file: item.data |
| | | } |
| | | }) |
| | | } else { |
| | | params.fileList = []; |
| | | } |
| | | console.log(params,'params'); |
| | | this.$api.spot.insertSpotCheckInfo(params).then(res => { |
| | | if(res.success) { |
| | | uni.$u.toast('添加成功!'); |
| | |
| | | <view |
| | | class="spot_item" |
| | | v-for="item in spotList" |
| | | :key="item.id" |
| | | @click="navgetToDetail(item)"> |
| | | :key="item.id"> |
| | | <view class="spot_item_title"> |
| | | <span>设备编号:{{item.bigNumber}}</span> |
| | | <span>详情</span> |
| | | <span @click="navgetToDetail(item)">详情</span> |
| | | </view> |
| | | <view class="spot_item_content"> |
| | | <view class=""> |
| | |
| | | </view> |
| | | <view class=""> |
| | | <span class="label">设备类型:</span> |
| | | <span>{{item.bigTypeStr}}</span> |
| | | <span>{{item.bigType == 1 ? '特殊设备' : '一般设备'}}</span> |
| | | </view> |
| | | <view class=""> |
| | | <span class="label">点检时间:</span> |
| | |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | loadPage: '', |
| | | spotList: [{id: 1}, {id: 2}, {id: 3}], |
| | | spotList: [], |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.searchData(); |
| | | }, |
| | | onUnload() { |
| | | // 移除监听事件 |
| | | uni.$off('scancodedate'); |
| | | }, |
| | | methods: { |
| | | // 查询模具质检列表 |
| | |
| | | pageNum: this.pageNum, |
| | | pageSize: this.pageSize |
| | | }) |
| | | console.log(data); |
| | | return data; |
| | | }, |
| | | // 查询信息 |
| | |
| | | uni.$on('scancodedate', function(data) { |
| | | console.log(data.code); |
| | | if(data.code) { |
| | | uni.navigateTo({ |
| | | url: './deviceSpot' |
| | | const list = data.code ? data.code.split('bigDeviceId=') : []; |
| | | const codeStr = list.length > 0 ? list[list.length - 1] : ''; |
| | | that.$api.spot.getDeviceDetails({ |
| | | bigDeviceId: codeStr |
| | | }).then((res) => { |
| | | if(res.success) { |
| | | uni.$u.toast('扫描完成!'); |
| | | uni.navigateTo({ |
| | | url: './deviceSpot?deviceId=' + codeStr |
| | | }) |
| | | } else { |
| | | uni.$u.toast(res.statusMsg); |
| | | } |
| | | }) |
| | | uni.$off('scancodedate'); |
| | | } |
| | | // that.$api.spot.scanCheckMould({ |
| | | // mouldNum: data.code |
| | | // }).then((res) => { |
| | | // if(res.success) { |
| | | // uni.$u.toast('扫描完成!'); |
| | | // console.log(res,'==='); |
| | | // } else { |
| | | // uni.$u.toast(res.statusMsg); |
| | | // } |
| | | // }) |
| | | uni.$off('scancodedate'); |
| | | }) |
| | | }, |
| | | // 跳转详情 |
| | |
| | | url: './spotDetail?id=' + item.id |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | |
| | | id: option.id |
| | | }).then((res) => { |
| | | this.formData = res.success ? res.data : {}; |
| | | res.data.bigTypeStr = res.data.bigType == 1 ? '特殊设备' : '一般设备'; |
| | | }) |
| | | }, |
| | | methods: { |
| | |
| | | /** |
| | | * 设备管理 |
| | | */ |
| | | import axios from '../request'; |
| | | export default{ |
| | | import axios from '../request'; |
| | | export default { |
| | | /** |
| | | * 设备信息管理 |
| | | */ |
| | | // 查询设备列表信息 |
| | | searchDeviceInfoList: (params) => |
| | | axios.post('/engineering/bigDevice/bigDeviceList', params), |
| | | // 添加设备信息 |
| | | insertDeviceInfo: (params) => |
| | | axios.post('/engineering/bigDevice/bigDeviceInsert', params), |
| | | // 修改设备信息 |
| | | updateDeviceInfo: (params) => |
| | | axios.post('/engineering/bigDevice/bigDeviceUpdate', params), |
| | | // 删除设备信息 |
| | | deleteDeviceInfo: (params) => |
| | | axios.get('/engineering/bigDevice/bigDeviceDel', { params }), |
| | | // 获取设备信息详情 |
| | | getDeviceDetails: (params) => |
| | | axios.get('/engineering/bigDevice/bigDeviceInfo', { params }), |
| | | // 导出设备excel |
| | | exportDeviceExcel: (params) => |
| | | axios({ |
| | | method: 'post', |
| | | url: '/engineering/bigDevice/bigDeviceExcel', |
| | | responseType: 'blob', |
| | | data: params |
| | | }), |
| | | |
| | | /** |
| | | * 设备点检 |
| | | */ |
| | | // 查询设备点检列表信息 |
| | | searchSpotCheckList: (params) => |
| | | axios({ |
| | | method: 'post', |
| | | url: '/m/checkDevice/findList', |
| | | headers: { |
| | | pageNum: params.pageNum, |
| | | pageSize: params.pageSize |
| | | }, |
| | | data: { |
| | | startTime: params.startTime, |
| | | endTime: params.endTime, |
| | | bigNumber: params.bigNumber |
| | | } |
| | | }), |
| | | // 添加设备点检信息 |
| | | insertSpotCheckInfo: (params) => |
| | | axios.post('m/checkDevice/addCheckDevice', params), |
| | | // 修改设备点检信息 |
| | | updateSpotCheckInfo: (params) => |
| | | axios.post('m/checkDevice/addCheckDevice', params), |
| | | //删除设备点检信息 |
| | | deleteSpotCheckInfo: (params) => |
| | | axios.post('/m/checkDevice/delete', params), |
| | | // 获取点检详情 |
| | | getSpotCheckDetail: (params) => |
| | | axios.post('m/checkDevice/checkDeviceInfo', params), |
| | | // 获取全部设备信息 |
| | | getAllDeviceData: () => |
| | | axios.post('/m/checkDevice/deviceList'), |
| | | |
| | | /** |
| | | * 生产采集设备 |
| | | * |
| | |
| | | // 删除设备信息 |
| | | deleteProductDevice: params => |
| | | axios.get('/engineering/device/deviceDel', {params}), |
| | | |
| | | /** |
| | | * 视频监控 |
| | | */ |
| | | // 查询视频列表信息 |
| | | searchDeviceInfo: params => |
| | | axios.post('/materials/video/webVideoList', params), |
| | | // 添加视频信息 |
| | | insertDeviceInfo: params => |
| | | axios.post('/engineering/video/videoInsert', params), |
| | | // 修改视频信息 |
| | | updateDeviceInfo: params => |
| | | axios.post('/engineering/video/videoUpdate', params), |
| | | // 视频信息详情 |
| | | detailsDeviceInfo: params => |
| | | axios.get('/engineering/video/videoInfo', {params}), |
| | | // 删除视频信息 |
| | | deleteDeviceInfo: params => |
| | | axios.get('/engineering/video/videoDel', {params}), |
| | | //返回视频播放地址 |
| | | backVideosUrlList: params => |
| | | axios.post('/materials/video/videoListPath', params), |
| | | |
| | | /** |
| | | * 大型生产设备 |
| | | */ |
| | | // 查询大型生产设备列表信息 |
| | | searchBigDevice: params => |
| | | axios.post('/engineering/bigDevice/bigDeviceList', params), |
| | | // 添加大型生产设备信息 |
| | | insertBigDevice: params => |
| | | axios.post('/engineering/bigDevice/bigDeviceInsert', params), |
| | | // 修改大型生产设备信息 |
| | | updateBigDevice: params => |
| | | axios.post('/engineering/bigDevice/bigDeviceUpdate', params), |
| | | // 大型生产设备信息详情 |
| | | detailsBigDevice: params => |
| | | axios.get('/engineering/bigDevice/bigDeviceInfo', {params}), |
| | | // 删除大型生产设备信息 |
| | | deleteBigDevice: params => |
| | | axios.get('/engineering/bigDevice/bigDeviceDel', {params}), |
| | | //大型生产设备下拉 |
| | | getAllBigDevice: params => |
| | | axios.get('/engineering/bigDevice/bigDevicePull', {params}), |
| | | //导出数据 |
| | | exportBigDatas:params=> |
| | | axios({ |
| | | method: 'post', |
| | | url: '/engineering/bigDevice/bigDeviceExcel', |
| | | responseType: 'blob', |
| | | data: params |
| | | }), |
| | | |
| | | /** |
| | | * 设备检查 |
| | | */ |
| | | |
| | | // 设备检查列表信息 |
| | | searchCheckDevice: params => |
| | | axios.post('/engineering/bigInspect/bigInspectList', params), |
| | | // 添加设备检查信息 |
| | | insertCheckDevice: params => |
| | | axios.post('/engineering/bigInspect/bigInspectInsert', params), |
| | | // 修改设备检查信息 |
| | | updateCheckDevice: params => |
| | | axios.post('/engineering/bigInspect/bigInspectUpdate', params), |
| | | // 设备检查信息详情 |
| | | detailsCheckDevice: params => |
| | | axios.get('/engineering/bigInspect/bigInspectInfo', {params}), |
| | | // 删除设备检查信息 |
| | | deleteCheckDevice: params => |
| | | axios.get('/engineering/bigInspect/bigInspectDel', {params}), |
| | | |
| | | /** |
| | | * 设备保养 |
| | | */ |
| | | |
| | | // 设备保养列表信息 |
| | | searchKeepDevice: params => |
| | | axios.post('/engineering/maintenance/maintenanceList', params), |
| | | // 添加设备保养信息 |
| | | insertKeepDevice: params => |
| | | axios.post('/engineering/maintenance/maintenanceInsert', params), |
| | | // 修改设备保养信息 |
| | | updateKeepDevice: params => |
| | | axios.post('/engineering/maintenance/maintenanceUpdate', params), |
| | | // 设备保养详情 |
| | | detailsKeepDevice: params => |
| | | axios.get('/engineering/maintenance/maintenanceInfo', {params}), |
| | | // 删除设备保养信息 |
| | | deleteKeepDevice: params => |
| | | axios.get('/engineering/maintenance/maintenanceDel', {params}), |
| | | |
| | | /** |
| | | * 设备维修 |
| | | */ |
| | | // 设备维修列表信息 |
| | | searchServiceDevice: params => |
| | | axios.post('/engineering/overhaul/overhaulList', params), |
| | | // 添加设备维修信息 |
| | | insertServiceDevice: params => |
| | | axios.post('/engineering/overhaul/overhaulInsert', params), |
| | | // 修改设备维修信息 |
| | | updateServiceDevice: params => |
| | | axios.post('/engineering/overhaul/overhaulUpdate', params), |
| | | // 设备维修详情 |
| | | detailsServiceDevice: params => |
| | | axios.get('/engineering/overhaul/overhaulInfo', {params}), |
| | | // 删除设备维修信息 |
| | | deleteServiceDevice: params => |
| | | axios.get('/engineering/overhaul/overhaulDel', {params}), |
| | | |
| | | /** |
| | | * 设备点检 |
| | | */ |
| | | // 查询设备点检列表信息 |
| | | searchSpotCheckList: (params) => |
| | | axios({ |
| | | method: 'post', |
| | | url: '/m/checkDevice/findList', |
| | | headers: { |
| | | pageNum: params.pageNum, |
| | | pageSize: params.pageSize |
| | | }, |
| | | data: { |
| | | startTime: params.startTime, |
| | | endTime: params.endTime, |
| | | bigNumber: params.bigNumber |
| | | } |
| | | }), |
| | | // 添加设备点检信息 |
| | | insertSpotCheckInfo: (params) => |
| | | axios.post('m/checkDevice/addCheckDevice', params), |
| | | // 修改设备点检信息 |
| | | updateSpotCheckInfo: (params) => |
| | | axios.post('m/checkDevice/addCheckDevice', params), |
| | | //删除设备点检信息 |
| | | deleteSpotCheckInfo: (params) => |
| | | axios.post('/m/checkDevice/delete', params), |
| | | // 获取点检详情 |
| | | getSpotCheckDetail: (params) => |
| | | axios.post('m/checkDevice/checkDeviceInfo', params), |
| | | // 获取全部设备信息 |
| | | getAllDeviceData: () => |
| | | axios.post('/m/checkDevice/deviceList'), |
| | | } |
| | | } |
| | |
| | | path: '/scanDetail', |
| | | name: 'scanDetail', |
| | | meta: { |
| | | title: '大型生产设备信息' |
| | | title: '设备信息' |
| | | }, |
| | | component: () => import('../views/ScanInfo/ScanDetail.vue'), |
| | | }, |
| | |
| | | } |
| | | .el-checkbox { |
| | | color: #fff; |
| | | } |
| | | |
| | | .el-month-table td .cell{ |
| | | color: #FFFFFF; |
| | | } |
对比新文件 |
| | |
| | | <template> |
| | | <div class="main tabs_main"> |
| | | <div class="main_header"> |
| | | <div class="header_item"> |
| | | <span class="header_label">设备名称:</span> |
| | | <el-input v-model="bigDeviceName" clearable placeholder="请输入设备名称"></el-input> |
| | | </div> |
| | | <div class="header_item"> |
| | | <span class="header_label">设备编号:</span> |
| | | <el-input v-model="bigNumber" clearable placeholder="请输入设备编号"></el-input> |
| | | </div> |
| | | <div class="header_item"> |
| | | <el-button icon="el-icon-search" @click="searchDeviceInfoList(true)">查询</el-button> |
| | | <el-button class="search_btn" icon="el-icon-plus" @click="propInsert()">新增</el-button> |
| | | <el-button icon="el-icon-upload2" @click="exportExcel()">导出Excel</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="main_content"> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="generalList" |
| | | height="100%"> |
| | | <el-table-column label="序号" width="55" align="center"> |
| | | <template #default="scope"> |
| | | <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="bigDeviceName" label="设备名称" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="bigDeviceModel" label="规格型号" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="bigNumber" label="设备编号" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="manufacturer" label="生产厂家" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="dateOfProduction" label="出厂年月" align="center"></el-table-column> |
| | | <el-table-column prop="useYearMonth" label="使用年月" align="center"></el-table-column> |
| | | <el-table-column prop="useLife" label="使用年限" align="center"></el-table-column> |
| | | <el-table-column prop="shapeSize" label="外形尺寸mm(长*宽*高)" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="totalPower" label="总功率(KW)" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="totalWeight" label="总重量(KG)" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="originalValue" label="原值(元)" align="center"></el-table-column> |
| | | <el-table-column prop="yearDepreciationRate" label="年折旧率" align="center"></el-table-column> |
| | | <el-table-column prop="accumulatedDepreciation" label="已提折旧" align="center"></el-table-column> |
| | | <el-table-column prop="netWorth" label="净值(元)" align="center"></el-table-column> |
| | | <el-table-column label="使用状况" align="center"> |
| | | <template #default="{ row }"> |
| | | <div> |
| | | {{ row.useStatus ? row.useStatus === 1 ? '良好' : '老化' : '' }} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="是否满足需要" align="center" width="120"> |
| | | <template #default="{ row }"> |
| | | <div> |
| | | {{ row.isNeed ? row.isNeed === 1 ? '是' : '否' : '' }} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="deviceSource" label="设备来源" align="center"></el-table-column> |
| | | <el-table-column prop="deviceNexus" label="设备配属关系" align="center" width="150"></el-table-column> |
| | | <el-table-column prop="fixedPerson" label="定机人" align="center"></el-table-column> |
| | | <el-table-column label="操作" align="center" width="400"> |
| | | <template #default="{ row }"> |
| | | <el-button class="table_btn" size="mini" @click="propUpdate(row)">查看</el-button> |
| | | <el-button class="table_btn" size="mini" @click="propUpdate(row)">修改</el-button> |
| | | <el-button class="table_btn" size="mini" @click="propPlate(row)">设备标识牌</el-button> |
| | | <el-button class="table_btn" size="mini" @click="propPlate(row)">打印</el-button> |
| | | <el-button class="delete_btn" size="mini" @click="deleteInfo(row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="main_footer"> |
| | | <el-pagination |
| | | background |
| | | @current-change="changePageNum" |
| | | @size-change="changePageSize" |
| | | :current-page="pageNum" |
| | | :page-sizes="[10, 20, 50, 100]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | <!-- 新增 修改 --> |
| | | <el-dialog |
| | | class="prop_dialog" |
| | | :title="asyncTitle ? '新增特种设备' : '修改特种设备信息'" |
| | | :visible.sync="asyncDevice" |
| | | width="35%"> |
| | | <el-form ref="form" :model="formDevice" :rules="rulesDevice" label-width="auto" class="rule_form"> |
| | | <el-form-item label="设备名称:" prop="bigDeviceName"> |
| | | <el-input v-model="formDevice.bigDeviceName" clearable placeholder="请输入设备名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="规格型号:" prop="bigDeviceModel"> |
| | | <el-input v-model="formDevice.bigDeviceModel" clearable placeholder="请输入规格型号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="设备编号:" prop="bigNumber"> |
| | | <el-input v-model="formDevice.bigNumber" clearable placeholder="请输入设备编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="生产厂家:" prop="manufacturer"> |
| | | <el-input v-model="formDevice.manufacturer" clearable placeholder="请输入生产厂家"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="出厂年月:" prop="dateOfProduction"> |
| | | <el-date-picker |
| | | v-model="formDevice.dateOfProduction" |
| | | type="month" |
| | | placeholder="请选择出厂年月" |
| | | value-format="yyyy-MM"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="使用年月:" prop="useYearMonth"> |
| | | <el-date-picker |
| | | v-model="formDevice.useYearMonth" |
| | | type="month" |
| | | placeholder="请选择使用年月" |
| | | value-format="yyyy-MM"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="使用年限:" prop="useLife"> |
| | | <el-input-number |
| | | v-model="formDevice.useLife" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入使用年限"> |
| | | </el-input-number> |
| | | </el-form-item> |
| | | <el-form-item label="外形尺寸:" prop="shapeSize"> |
| | | <div class="form_flex"> |
| | | <el-input-number |
| | | v-model="formDevice.shapeSize" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入外形尺寸"> |
| | | </el-input-number> |
| | | <span class="form_flex_slot" style="min-width: 120px">mm(长*宽*高)</span> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="总功率:" prop="totalPower"> |
| | | <div class="form_flex"> |
| | | <el-input-number |
| | | v-model="formDevice.totalPower" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入总功率"> |
| | | </el-input-number> |
| | | <span class="form_flex_slot">KW</span> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="总重量:" prop="totalWeight"> |
| | | <div class="form_flex"> |
| | | <el-input-number |
| | | v-model="formDevice.totalWeight" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入总重量"> |
| | | </el-input-number> |
| | | <span class="form_flex_slot">KG</span> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="原值:" prop="originalValue"> |
| | | <div class="form_flex"> |
| | | <el-input-number |
| | | v-model="formDevice.originalValue" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入原值"> |
| | | </el-input-number> |
| | | <span class="form_flex_slot">元</span> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="年折旧率:" prop="yearDepreciationRate"> |
| | | <el-input-number |
| | | v-model="formDevice.yearDepreciationRate" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入年折旧率"> |
| | | </el-input-number> |
| | | </el-form-item> |
| | | <el-form-item label="已提折旧:" prop="accumulatedDepreciation"> |
| | | <el-input v-model="formDevice.accumulatedDepreciation" clearable placeholder="请输入已提折旧"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="净值:" prop="netWorth"> |
| | | <div class="form_flex"> |
| | | <el-input-number |
| | | v-model="formDevice.netWorth" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入净值"> |
| | | </el-input-number> |
| | | <span class="form_flex_slot">元</span> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="使用状况:" prop="useStatus"> |
| | | <el-radio-group v-model="formDevice.useStatus"> |
| | | <el-radio :label="1">良好</el-radio> |
| | | <el-radio :label="2">老化</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="是否满足需要:" prop="isNeed"> |
| | | <el-radio-group v-model="formDevice.isNeed"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="2">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="设备来源:" prop="deviceSource"> |
| | | <el-input v-model="formDevice.deviceSource" clearable placeholder="请输入设备来源"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="设备配属关系:" prop="deviceNexus"> |
| | | <el-input v-model="formDevice.deviceNexus" clearable placeholder="请输入设备配属关系"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="定机人:" prop="fixedPerson"> |
| | | <el-select v-model="formDevice.fixedPerson" clearable placeholder="请选择定机人"> |
| | | <el-option |
| | | v-for="item in plateUserData" |
| | | :key="item.userId" |
| | | :label="item.realName" |
| | | :value="item.realName"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="责任人:" prop="userId"> |
| | | <el-select v-model="formDevice.userId" clearable placeholder="请选择责任人" @change="changePerson"> |
| | | <el-option |
| | | v-for="item in plateUserData" |
| | | :key="item.userId" |
| | | :label="item.realName" |
| | | :value="item.userId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="责任人联系电话:" prop="zrrPhone"> |
| | | <el-input v-model="formDevice.zrrPhone" disabled placeholder="请输入责任人联系电话"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="管理员联系电话:" prop="adminPhone"> |
| | | <el-input v-model="formDevice.adminPhone" clearable placeholder="请输入管理员联系电话:"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="备注:"> |
| | | <el-input |
| | | v-model="formDevice.bigNotes" |
| | | clearable |
| | | placeholder="请输入备注" |
| | | type="textarea"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer"> |
| | | <el-button @click="asyncDevice = false">取 消</el-button> |
| | | <el-button class="submit_btn" @click="asyncTitle ? submitInsertForm() : submitUpdateForm()">提 交</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 设备标识牌 --> |
| | | <el-dialog |
| | | class="prop_dialog" |
| | | title="设备标识牌" |
| | | :visible.sync="asyncPlate" |
| | | width="50%"> |
| | | <div class="prop_plate"> |
| | | <div class="prop_plate_header"> |
| | | <img :src="`${baseUrl}/materials/steelPrint/test?bigDeviceId=${bigDeviceId}&type=1`" width="100px" height="100px"> |
| | | <span>设备标识牌</span> |
| | | </div> |
| | | <div class="prop_plate_content"> |
| | | <div |
| | | v-for="item in plateList" |
| | | :key="item.id" |
| | | class="plate_item"> |
| | | <span>{{item.label}}</span> |
| | | <span>{{plateData[item.value]}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="prop_plate_footer"> |
| | | <img src="../../../../assets/logos.png" width="44px" height="35px"> |
| | | <span>中铁十四局集团房桥有限公司胶东分公司</span> |
| | | </div> |
| | | </div> |
| | | <div slot="footer"> |
| | | <el-button @click="asyncPlate = false">取 消</el-button> |
| | | <el-button class="submit_btn" @click="asyncPlate = false">打 印</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { buttonPinia } from '../../../../pinia/index'; |
| | | import { downFiles, throttle } from '../../../../plugins/public'; |
| | | export default { |
| | | name: 'SpecialEquipment', |
| | | data() { |
| | | return { |
| | | bigDeviceName: '', |
| | | bigNumber: '', |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | total: 0, |
| | | loading: false, |
| | | generalList: [], |
| | | asyncTitle: true, // true 新增 false 修改 |
| | | asyncDevice: false, |
| | | formDevice: {}, |
| | | rulesDevice: { |
| | | bigDeviceName: [{ |
| | | required: true, |
| | | message: '请输入设备名称', |
| | | trigger: 'blur' |
| | | }], |
| | | bigDeviceModel: [{ |
| | | required: true, |
| | | message: '请输入规格型号', |
| | | trigger: 'blur' |
| | | }], |
| | | bigNumber: [{ |
| | | required: true, |
| | | message: '请输入设备编号', |
| | | trigger: 'blur' |
| | | }], |
| | | manufacturer: [{ |
| | | required: true, |
| | | message: '请输入生产厂家', |
| | | trigger: 'blur' |
| | | }], |
| | | dateOfProduction: [{ |
| | | required: true, |
| | | message: '请选择出厂年月', |
| | | trigger: ['blur', 'change'] |
| | | }], |
| | | useYearMonth: [{ |
| | | required: true, |
| | | message: '请选择使用年月', |
| | | trigger: ['blur', 'change'] |
| | | }], |
| | | useLife: [{ |
| | | required: true, |
| | | message: '请输入使用年限', |
| | | trigger: 'blur' |
| | | }], |
| | | shapeSize: [{ |
| | | required: true, |
| | | message: '请输入外形尺寸', |
| | | trigger: 'blur' |
| | | }], |
| | | totalPower: [{ |
| | | required: true, |
| | | message: '请输入总功率', |
| | | trigger: 'blur' |
| | | }], |
| | | totalWeight: [{ |
| | | required: true, |
| | | message: '请输入总重量', |
| | | trigger: 'blur' |
| | | }], |
| | | originalValue: [{ |
| | | required: true, |
| | | message: '请输入原值', |
| | | trigger: 'blur' |
| | | }], |
| | | yearDepreciationRate: [{ |
| | | required: true, |
| | | message: '请输入年折旧率', |
| | | trigger: 'blur' |
| | | }], |
| | | accumulatedDepreciation: [{ |
| | | required: true, |
| | | message: '请输入已提折旧', |
| | | trigger: 'blur' |
| | | }], |
| | | netWorth: [{ |
| | | required: true, |
| | | message: '请输入净值', |
| | | trigger: 'blur' |
| | | }], |
| | | useStatus: [{ |
| | | required: true, |
| | | message: '请选择使用状况', |
| | | trigger: ['blur', 'change'] |
| | | }], |
| | | isNeed: [{ |
| | | required: true, |
| | | message: '请选择是否满足需要', |
| | | trigger: ['blur', 'change'] |
| | | }], |
| | | deviceSource: [{ |
| | | required: true, |
| | | message: '请输入设备来源', |
| | | trigger: 'blur' |
| | | }], |
| | | deviceNexus: [{ |
| | | required: true, |
| | | message: '请输入设备配属关系', |
| | | trigger: 'blur' |
| | | }], |
| | | fixedPerson: [{ |
| | | required: true, |
| | | message: '请选择定机人', |
| | | trigger: ['blur', 'change'] |
| | | }], |
| | | adminPhone: [{ |
| | | required: true, |
| | | message: '请输入管理员联系电话', |
| | | trigger: 'blur' |
| | | }], |
| | | userId: [{ |
| | | required: true, |
| | | message: '请选择责任人', |
| | | trigger: ['blur', 'change'] |
| | | }], |
| | | zrrPhone: [{ |
| | | required: true, |
| | | message: '请输入责任人联系电话', |
| | | trigger: 'blur' |
| | | }, { |
| | | validator: (rule, value, callback) => { |
| | | const reg = /^1[3456789]\d{9}$/ |
| | | if(reg.test(value)) { |
| | | callback() |
| | | } else { |
| | | callback(new Error('请输入正确的电话格式')) |
| | | } |
| | | }, |
| | | trigger: 'blur' |
| | | }] |
| | | }, |
| | | baseUrl: process.env.VUE_APP_BASE_URL, |
| | | asyncPlate: false, |
| | | bigDeviceId: '', |
| | | plateList: [{ |
| | | id: 1, |
| | | label: '设备名称', |
| | | value: 'bigDeviceName' |
| | | },{ |
| | | id: 2, |
| | | label: '编号', |
| | | value: 'bigNumber' |
| | | },{ |
| | | id: 3, |
| | | label: '规格型号', |
| | | value: 'bigDeviceModel' |
| | | },{ |
| | | id: 4, |
| | | label: '生产厂家', |
| | | value: 'manufacturer' |
| | | },{ |
| | | id: 5, |
| | | label: '设备状态', |
| | | value: 'useStatusName' |
| | | },{ |
| | | id: 6, |
| | | label: '责任人', |
| | | value: 'realName' |
| | | },{ |
| | | id: 7, |
| | | label: '设备管理员联系方式', |
| | | value: 'adminPhone' |
| | | },{ |
| | | id: 8, |
| | | label: '责任人联系方式', |
| | | value: 'zrrPhone' |
| | | }], |
| | | plateData: {}, |
| | | plateUserData: [] |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.searchDeviceInfoList(true); |
| | | }, |
| | | methods: { |
| | | // 获取全部人员 |
| | | async getAllPlatUserpulldown() { |
| | | const { data } = await this.$api.Personnerl.GETSTAFFALLDATA(); |
| | | this.plateUserData = data; |
| | | }, |
| | | // 查询特种设备信息 |
| | | searchDeviceInfoList(bol) { |
| | | if(bol) { |
| | | this.pageNum = 1; |
| | | } |
| | | this.loading = true; |
| | | this.generalList = []; |
| | | this.$api.Device.searchDeviceInfoList({ |
| | | pageNum: this.pageNum, |
| | | pageSize: this.pageSize, |
| | | bigType: 2, |
| | | bigDeviceName: this.bigDeviceName, |
| | | bigNumber: this.bigNumber |
| | | }).then((result) => { |
| | | if(result.success) { |
| | | this.total = result.data.total; |
| | | this.generalList = result.data.list; |
| | | } |
| | | this.loading = false; |
| | | }).catch(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // 打开添加信息 |
| | | propInsert() { |
| | | this.asyncTitle = true; |
| | | this.asyncDevice = true; |
| | | }, |
| | | // 打开修改信息 |
| | | propUpdate(row) { |
| | | this.asyncTitle = false; |
| | | this.asyncDevice = true; |
| | | this.$api.Device.getDeviceDetails({ |
| | | bigDeviceId : row.bigDeviceId |
| | | }).then((res) => { |
| | | this.$set(this.formDevice, 'bigDeviceId', res.data.bigDeviceId); |
| | | this.$set(this.formDevice, 'bigDeviceName', res.data.bigDeviceName); |
| | | this.$set(this.formDevice, 'bigDeviceModel', res.data.bigDeviceModel); |
| | | this.$set(this.formDevice, 'bigNumber', res.data.bigNumber); |
| | | this.$set(this.formDevice, 'manufacturer', res.data.manufacturer); |
| | | this.$set(this.formDevice, 'dateOfProduction', res.data.dateOfProduction); |
| | | this.$set(this.formDevice, 'useYearMonth', res.data.useYearMonth); |
| | | this.$set(this.formDevice, 'useLife', res.data.useLife); |
| | | this.$set(this.formDevice, 'shapeSize', res.data.shapeSize); |
| | | this.$set(this.formDevice, 'totalPower', res.data.totalPower); |
| | | this.$set(this.formDevice, 'totalWeight', res.data.totalWeight); |
| | | this.$set(this.formDevice, 'originalValue', res.data.originalValue); |
| | | this.$set(this.formDevice, 'yearDepreciationRate', res.data.yearDepreciationRate); |
| | | this.$set(this.formDevice, 'accumulatedDepreciation', res.data.accumulatedDepreciation); |
| | | this.$set(this.formDevice, 'netWorth', res.data.netWorth); |
| | | this.$set(this.formDevice, 'useStatus', res.data.useStatus); |
| | | this.$set(this.formDevice, 'isNeed', res.data.isNeed); |
| | | this.$set(this.formDevice, 'deviceSource', res.data.deviceSource); |
| | | this.$set(this.formDevice, 'deviceNexus', res.data.deviceNexus); |
| | | this.$set(this.formDevice, 'fixedPerson', res.data.fixedPerson); |
| | | this.$set(this.formDevice, 'userId', res.data.userId); |
| | | this.$set(this.formDevice, 'zrrPhone', res.data.zrrPhone); |
| | | this.$set(this.formDevice, 'adminPhone', res.data.adminPhone); |
| | | this.$set(this.formDevice, 'bigNotes', res.data.bigNotes); |
| | | }) |
| | | }, |
| | | // 查看设备标识牌 |
| | | propPlate(row) { |
| | | this.bigDeviceId = row.bigDeviceId; |
| | | this.asyncPlate = true; |
| | | this.$api.Device.getDeviceDetails({ |
| | | bigDeviceId : row.bigDeviceId |
| | | }).then(res => { |
| | | this.plateData = res.data; |
| | | }) |
| | | }, |
| | | // 删除设备信息 |
| | | deleteInfo(row) { |
| | | this.$confirm("该操作将删除该设备信息,是否继续删除?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | this.$api.Device.deleteDeviceInfo({ |
| | | bigDeviceId: row.bigDeviceId |
| | | }) |
| | | .then(res => { |
| | | if(res.statusMsg === 'ok') { |
| | | this.searchDeviceInfoList(true); |
| | | this.$message.success("删除成功!"); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | }) |
| | | .catch(() => { |
| | | this.$message.warning("您已取消"); |
| | | }) |
| | | }, |
| | | // 导出 |
| | | exportExcel() { |
| | | this.$api.Device.exportDeviceExcel({ |
| | | bigType: 2, |
| | | bigDeviceName: this.bigDeviceName, |
| | | bigNumber: this.bigNumber |
| | | }).then(res => { |
| | | downFiles(res, '一般设备信息', 'xls') |
| | | }) |
| | | }, |
| | | // 提交添加信息 |
| | | submitInsertForm: throttle(function() { |
| | | this.$refs.form.validate((valid) => { |
| | | if(valid) { |
| | | const params = Object.assign({}, this.formDevice); |
| | | params.bigType = 2; |
| | | this.$api.Device.insertDeviceInfo(params).then((res) => { |
| | | if(res.success) { |
| | | this.asyncDevice = false; |
| | | this.$message.success('添加成功!'); |
| | | this.searchDeviceInfoList(true); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 提交修改信息 |
| | | submitUpdateForm: throttle(function() { |
| | | this.$refs.form.validate((valid) => { |
| | | if(valid) { |
| | | const params = Object.assign({}, this.formDevice); |
| | | params.bigType = 2; |
| | | this.$api.Device.updateDeviceInfo(params).then((res) => { |
| | | if(res.success) { |
| | | this.asyncDevice = false; |
| | | this.$message.success('修改成功!'); |
| | | this.searchDeviceInfoList(true); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // |
| | | changePerson(data) { |
| | | if(data) { |
| | | const dataInfo = this.plateUserData.find(item => item.userId == data); |
| | | this.$set(this.formDevice, 'zrrPhone', dataInfo.phone); |
| | | } else { |
| | | this.$set(this.formDevice, 'zrrPhone', ''); |
| | | } |
| | | |
| | | }, |
| | | // 切换页数 |
| | | changePageNum(page) { |
| | | this.pageNum = page; |
| | | this.searchDeviceInfoList(); |
| | | }, |
| | | // 切换每页条数 |
| | | changePageSize(size) { |
| | | this.pageSize = size; |
| | | this.searchDeviceInfoList(); |
| | | }, |
| | | // 判断按钮权限信息 |
| | | showButton(str) { |
| | | const pinia = buttonPinia(); |
| | | return pinia.$state.buttonInfo.includes(str); |
| | | }, |
| | | }, |
| | | watch: { |
| | | asyncDevice(bol) { |
| | | if(!bol) { |
| | | this.formDevice = {}; |
| | | this.$refs.form.resetFields(); |
| | | } else { |
| | | this.getAllPlatUserpulldown(); |
| | | } |
| | | }, |
| | | asyncPlate(bol) { |
| | | if(!bol) { |
| | | this.plateData = {}; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import'@/style/layout-main.scss'; |
| | | |
| | | .form_flex { |
| | | display: flex; |
| | | align-items: center; |
| | | width: 100%; |
| | | |
| | | .form_flex_slot { |
| | | padding: 0 10px;; |
| | | min-width: 60px; |
| | | white-space: nowrap; |
| | | text-align: center; |
| | | color: #EAEAEA; |
| | | background: #0B5274; |
| | | border: 1px solid #1B428F; |
| | | border-radius: 0 2px 2px 0; |
| | | } |
| | | } |
| | | |
| | | .prop_plate { |
| | | padding: 0 15px 10px 0; |
| | | height: 500px; |
| | | |
| | | .prop_plate_header { |
| | | position: relative; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | height: 120px; |
| | | background: #153876; |
| | | |
| | | img { |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 35px; |
| | | transform: translateY(-50%); |
| | | } |
| | | |
| | | span { |
| | | color: #FFFFFF; |
| | | font-size: 70px; |
| | | font-weight: 600; |
| | | letter-spacing: 32px; |
| | | } |
| | | } |
| | | |
| | | .prop_plate_content { |
| | | position: relative; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | padding: 40px 0; |
| | | height: 320px; |
| | | background: #FFFFFF; |
| | | |
| | | &::before { |
| | | content: ''; |
| | | position: absolute; |
| | | top: 2px; |
| | | width: 100%; |
| | | height: 100%; |
| | | background: url('../../../../assets/sign_bg.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | |
| | | .plate_item { |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 5px 0 8px; |
| | | margin: 5px 20px 10px; |
| | | width: calc(50% - 40px); |
| | | color: #050402; |
| | | font-size: 22px; |
| | | letter-spacing: 2px; |
| | | border-bottom: 1px solid #E4E4E4; |
| | | |
| | | & > span:last-child { |
| | | padding-left: 20px; |
| | | color: #555; |
| | | letter-spacing: 0; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .prop_plate_footer { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | height: 50px; |
| | | color: #000; |
| | | font-size: 16px; |
| | | letter-spacing: 2px; |
| | | background: #FFFFFF; |
| | | |
| | | span { |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /deep/ .el-radio { |
| | | padding: 10px 0; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="main tabs_main"> |
| | | <div class="main_header"> |
| | | <div class="header_item"> |
| | | <span class="header_label">设备名称:</span> |
| | | <el-input v-model="bigDeviceName" clearable placeholder="请输入设备名称"></el-input> |
| | | </div> |
| | | <div class="header_item"> |
| | | <span class="header_label">设备编号:</span> |
| | | <el-input v-model="bigNumber" clearable placeholder="请输入设备编号"></el-input> |
| | | </div> |
| | | <div class="header_item"> |
| | | <el-button icon="el-icon-search" @click="searchDeviceInfoList(true)">查询</el-button> |
| | | <el-button class="search_btn" icon="el-icon-plus" @click="propInsert()">新增</el-button> |
| | | <el-button icon="el-icon-upload2" @click="exportExcel()">导出Excel</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="main_content"> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="specialList" |
| | | height="100%"> |
| | | <el-table-column label="序号" width="55" align="center"> |
| | | <template #default="scope"> |
| | | <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="bigDeviceName" label="设备名称" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="bigDeviceModel" label="规格型号" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="bigNumber" label="设备编号" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="manufacturer" label="生产厂家" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="dateOfProduction" label="出厂年月" align="center"></el-table-column> |
| | | <el-table-column prop="useYearMonth" label="使用年月" align="center"></el-table-column> |
| | | <el-table-column prop="useLife" label="使用年限" align="center"></el-table-column> |
| | | <el-table-column prop="shapeSize" label="外形尺寸mm(长*宽*高)" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="totalPower" label="总功率(KW)" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="totalWeight" label="总重量(KG)" align="center" width="200"></el-table-column> |
| | | <el-table-column prop="originalValue" label="原值(元)" align="center"></el-table-column> |
| | | <el-table-column prop="yearDepreciationRate" label="年折旧率" align="center"></el-table-column> |
| | | <el-table-column prop="accumulatedDepreciation" label="已提折旧" align="center"></el-table-column> |
| | | <el-table-column prop="netWorth" label="净值(元)" align="center"></el-table-column> |
| | | <el-table-column label="使用状况" align="center"> |
| | | <template #default="{ row }"> |
| | | <div> |
| | | {{ row.useStatus ? row.useStatus === 1 ? '良好' : '老化' : '' }} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="是否满足需要" align="center" width="120"> |
| | | <template #default="{ row }"> |
| | | <div> |
| | | {{ row.isNeed ? row.isNeed === 1 ? '是' : '否' : '' }} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="deviceSource" label="设备来源" align="center"></el-table-column> |
| | | <el-table-column prop="deviceNexus" label="设备配属关系" align="center" width="150"></el-table-column> |
| | | <el-table-column prop="fixedPerson" label="定机人" align="center"></el-table-column> |
| | | <el-table-column label="操作" align="center" width="400"> |
| | | <template #default="{ row }"> |
| | | <el-button class="table_btn" size="mini" @click="propUpdate(row)">查看</el-button> |
| | | <el-button class="table_btn" size="mini" @click="propUpdate(row)">修改</el-button> |
| | | <el-button class="table_btn" size="mini" @click="propPlate(row)">设备标识牌</el-button> |
| | | <el-button class="table_btn" size="mini" @click="propPlate(row)">打印</el-button> |
| | | <el-button class="delete_btn" size="mini" @click="deleteInfo(row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="main_footer"> |
| | | <el-pagination |
| | | background |
| | | @current-change="changePageNum" |
| | | @size-change="changePageSize" |
| | | :current-page="pageNum" |
| | | :page-sizes="[10, 20, 50, 100]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | <!-- 新增 修改 --> |
| | | <el-dialog |
| | | class="prop_dialog" |
| | | :title="asyncTitle ? '新增特种设备' : '修改特种设备信息'" |
| | | :visible.sync="asyncDevice" |
| | | width="35%"> |
| | | <el-form ref="form" :model="formDevice" :rules="rulesDevice" label-width="auto" class="rule_form"> |
| | | <el-form-item label="设备名称:" prop="bigDeviceName"> |
| | | <el-input v-model="formDevice.bigDeviceName" clearable placeholder="请输入设备名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="规格型号:" prop="bigDeviceModel"> |
| | | <el-input v-model="formDevice.bigDeviceModel" clearable placeholder="请输入规格型号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="设备编号:" prop="bigNumber"> |
| | | <el-input v-model="formDevice.bigNumber" clearable placeholder="请输入设备编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="生产厂家:" prop="manufacturer"> |
| | | <el-input v-model="formDevice.manufacturer" clearable placeholder="请输入生产厂家"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="出厂年月:" prop="dateOfProduction"> |
| | | <el-date-picker |
| | | v-model="formDevice.dateOfProduction" |
| | | type="month" |
| | | placeholder="请选择出厂年月" |
| | | value-format="yyyy-MM"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="使用年月:" prop="useYearMonth"> |
| | | <el-date-picker |
| | | v-model="formDevice.useYearMonth" |
| | | type="month" |
| | | placeholder="请选择使用年月" |
| | | value-format="yyyy-MM"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="使用年限:" prop="useLife"> |
| | | <el-input-number |
| | | v-model="formDevice.useLife" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入使用年限"> |
| | | </el-input-number> |
| | | </el-form-item> |
| | | <el-form-item label="外形尺寸:" prop="shapeSize"> |
| | | <div class="form_flex"> |
| | | <el-input-number |
| | | v-model="formDevice.shapeSize" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入外形尺寸"> |
| | | </el-input-number> |
| | | <span class="form_flex_slot" style="min-width: 120px">mm(长*宽*高)</span> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="总功率:" prop="totalPower"> |
| | | <div class="form_flex"> |
| | | <el-input-number |
| | | v-model="formDevice.totalPower" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入总功率"> |
| | | </el-input-number> |
| | | <span class="form_flex_slot">KW</span> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="总重量:" prop="totalWeight"> |
| | | <div class="form_flex"> |
| | | <el-input-number |
| | | v-model="formDevice.totalWeight" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入总重量"> |
| | | </el-input-number> |
| | | <span class="form_flex_slot">KG</span> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="原值:" prop="originalValue"> |
| | | <div class="form_flex"> |
| | | <el-input-number |
| | | v-model="formDevice.originalValue" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入原值"> |
| | | </el-input-number> |
| | | <span class="form_flex_slot">元</span> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="年折旧率:" prop="yearDepreciationRate"> |
| | | <el-input-number |
| | | v-model="formDevice.yearDepreciationRate" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入年折旧率"> |
| | | </el-input-number> |
| | | </el-form-item> |
| | | <el-form-item label="已提折旧:" prop="accumulatedDepreciation"> |
| | | <el-input v-model="formDevice.accumulatedDepreciation" clearable placeholder="请输入已提折旧"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="净值:" prop="netWorth"> |
| | | <div class="form_flex"> |
| | | <el-input-number |
| | | v-model="formDevice.netWorth" |
| | | :controls="false" |
| | | :min="0" |
| | | placeholder="请输入净值"> |
| | | </el-input-number> |
| | | <span class="form_flex_slot">元</span> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="使用状况:" prop="useStatus"> |
| | | <el-radio-group v-model="formDevice.useStatus"> |
| | | <el-radio :label="1">良好</el-radio> |
| | | <el-radio :label="2">老化</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="是否满足需要:" prop="isNeed"> |
| | | <el-radio-group v-model="formDevice.isNeed"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="2">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="设备来源:" prop="deviceSource"> |
| | | <el-input v-model="formDevice.deviceSource" clearable placeholder="请输入设备来源"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="设备配属关系:" prop="deviceNexus"> |
| | | <el-input v-model="formDevice.deviceNexus" clearable placeholder="请输入设备配属关系"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="定机人:" prop="fixedPerson"> |
| | | <el-select v-model="formDevice.fixedPerson" clearable placeholder="请选择定机人"> |
| | | <el-option |
| | | v-for="item in plateUserData" |
| | | :key="item.userId" |
| | | :label="item.realName" |
| | | :value="item.realName"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="责任人:" prop="userId"> |
| | | <el-select v-model="formDevice.userId" clearable placeholder="请选择责任人" @change="changePerson"> |
| | | <el-option |
| | | v-for="item in plateUserData" |
| | | :key="item.userId" |
| | | :label="item.realName" |
| | | :value="item.userId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="责任人联系电话:" prop="zrrPhone"> |
| | | <el-input v-model="formDevice.zrrPhone" disabled placeholder="请输入责任人联系电话"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="管理员联系电话:" prop="adminPhone"> |
| | | <el-input v-model="formDevice.adminPhone" clearable placeholder="请输入管理员联系电话:"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="备注:"> |
| | | <el-input |
| | | v-model="formDevice.bigNotes" |
| | | clearable |
| | | placeholder="请输入备注" |
| | | type="textarea"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer"> |
| | | <el-button @click="asyncDevice = false">取 消</el-button> |
| | | <el-button class="submit_btn" @click="asyncTitle ? submitInsertForm() : submitUpdateForm()">提 交</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 设备标识牌 --> |
| | | <el-dialog |
| | | class="prop_dialog" |
| | | title="设备标识牌" |
| | | :visible.sync="asyncPlate" |
| | | width="50%"> |
| | | <div class="prop_plate"> |
| | | <div class="prop_plate_header"> |
| | | <img :src="`${baseUrl}/materials/steelPrint/test?bigDeviceId=${bigDeviceId}&type=1`" width="100px" height="100px"> |
| | | <span>设备标识牌</span> |
| | | </div> |
| | | <div class="prop_plate_content"> |
| | | <div |
| | | v-for="item in plateList" |
| | | :key="item.id" |
| | | class="plate_item"> |
| | | <span>{{item.label}}</span> |
| | | <span>{{plateData[item.value]}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="prop_plate_footer"> |
| | | <img src="../../../../assets/logos.png" width="44px" height="35px"> |
| | | <span>中铁十四局集团房桥有限公司胶东分公司</span> |
| | | </div> |
| | | </div> |
| | | <div slot="footer"> |
| | | <el-button @click="asyncPlate = false">取 消</el-button> |
| | | <el-button class="submit_btn" @click="asyncPlate = false">打 印</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { buttonPinia } from '../../../../pinia/index'; |
| | | import { throttle } from '../../../../plugins/public'; |
| | | import { downFiles } from '@/plugins/public'; |
| | | export default { |
| | | name: 'SpecialEquipment', |
| | | data() { |
| | | return { |
| | | bigDeviceName: '', |
| | | bigNumber: '', |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | total: 0, |
| | | loading: false, |
| | | specialList: [], |
| | | asyncTitle: true, // true 新增 false 修改 |
| | | asyncDevice: false, |
| | | formDevice: {}, |
| | | rulesDevice: { |
| | | bigDeviceName: [{ |
| | | required: true, |
| | | message: '请输入设备名称', |
| | | trigger: 'blur' |
| | | }], |
| | | bigDeviceModel: [{ |
| | | required: true, |
| | | message: '请输入规格型号', |
| | | trigger: 'blur' |
| | | }], |
| | | bigNumber: [{ |
| | | required: true, |
| | | message: '请输入设备编号', |
| | | trigger: 'blur' |
| | | }], |
| | | manufacturer: [{ |
| | | required: true, |
| | | message: '请输入生产厂家', |
| | | trigger: 'blur' |
| | | }], |
| | | dateOfProduction: [{ |
| | | required: true, |
| | | message: '请选择出厂年月', |
| | | trigger: ['blur', 'change'] |
| | | }], |
| | | useYearMonth: [{ |
| | | required: true, |
| | | message: '请选择使用年月', |
| | | trigger: ['blur', 'change'] |
| | | }], |
| | | useLife: [{ |
| | | required: true, |
| | | message: '请输入使用年限', |
| | | trigger: 'blur' |
| | | }], |
| | | shapeSize: [{ |
| | | required: true, |
| | | message: '请输入外形尺寸', |
| | | trigger: 'blur' |
| | | }], |
| | | totalPower: [{ |
| | | required: true, |
| | | message: '请输入总功率', |
| | | trigger: 'blur' |
| | | }], |
| | | totalWeight: [{ |
| | | required: true, |
| | | message: '请输入总重量', |
| | | trigger: 'blur' |
| | | }], |
| | | originalValue: [{ |
| | | required: true, |
| | | message: '请输入原值', |
| | | trigger: 'blur' |
| | | }], |
| | | yearDepreciationRate: [{ |
| | | required: true, |
| | | message: '请输入年折旧率', |
| | | trigger: 'blur' |
| | | }], |
| | | accumulatedDepreciation: [{ |
| | | required: true, |
| | | message: '请输入已提折旧', |
| | | trigger: 'blur' |
| | | }], |
| | | netWorth: [{ |
| | | required: true, |
| | | message: '请输入净值', |
| | | trigger: 'blur' |
| | | }], |
| | | useStatus: [{ |
| | | required: true, |
| | | message: '请选择使用状况', |
| | | trigger: ['blur', 'change'] |
| | | }], |
| | | isNeed: [{ |
| | | required: true, |
| | | message: '请选择是否满足需要', |
| | | trigger: ['blur', 'change'] |
| | | }], |
| | | deviceSource: [{ |
| | | required: true, |
| | | message: '请输入设备来源', |
| | | trigger: 'blur' |
| | | }], |
| | | deviceNexus: [{ |
| | | required: true, |
| | | message: '请输入设备配属关系', |
| | | trigger: 'blur' |
| | | }], |
| | | fixedPerson: [{ |
| | | required: true, |
| | | message: '请选择定机人', |
| | | trigger: ['blur', 'change'] |
| | | }], |
| | | adminPhone: [{ |
| | | required: true, |
| | | message: '请输入管理员联系电话', |
| | | trigger: 'blur' |
| | | }], |
| | | userId: [{ |
| | | required: true, |
| | | message: '请选择责任人', |
| | | trigger: ['blur', 'change'] |
| | | }], |
| | | zrrPhone: [{ |
| | | required: true, |
| | | message: '请输入责任人联系电话', |
| | | trigger: 'blur' |
| | | }, { |
| | | validator: (rule, value, callback) => { |
| | | const reg = /^1[3456789]\d{9}$/ |
| | | if(reg.test(value)) { |
| | | callback() |
| | | } else { |
| | | callback(new Error('请输入正确的电话格式')) |
| | | } |
| | | }, |
| | | trigger: 'blur' |
| | | }] |
| | | }, |
| | | baseUrl: process.env.VUE_APP_BASE_URL, |
| | | asyncPlate: false, |
| | | bigDeviceId: '', |
| | | plateList: [{ |
| | | id: 1, |
| | | label: '设备名称', |
| | | value: 'bigDeviceName' |
| | | },{ |
| | | id: 2, |
| | | label: '编号', |
| | | value: 'bigNumber' |
| | | },{ |
| | | id: 3, |
| | | label: '规格型号', |
| | | value: 'bigDeviceModel' |
| | | },{ |
| | | id: 4, |
| | | label: '生产厂家', |
| | | value: 'manufacturer' |
| | | },{ |
| | | id: 5, |
| | | label: '设备状态', |
| | | value: 'useStatusName' |
| | | },{ |
| | | id: 6, |
| | | label: '责任人', |
| | | value: 'realName' |
| | | },{ |
| | | id: 7, |
| | | label: '设备管理员联系方式', |
| | | value: 'adminPhone' |
| | | },{ |
| | | id: 8, |
| | | label: '责任人联系方式', |
| | | value: 'zrrPhone' |
| | | }], |
| | | plateData: {}, |
| | | plateUserData: [] |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.searchDeviceInfoList(true); |
| | | }, |
| | | methods: { |
| | | // 获取全部人员 |
| | | async getAllPlatUserpulldown() { |
| | | const { data } = await this.$api.Personnerl.GETSTAFFALLDATA(); |
| | | this.plateUserData = data; |
| | | }, |
| | | // 查询特种设备信息 |
| | | searchDeviceInfoList(bol) { |
| | | if(bol) { |
| | | this.pageNum = 1; |
| | | } |
| | | this.loading = true; |
| | | this.specialList = []; |
| | | this.$api.Device.searchDeviceInfoList({ |
| | | pageNum: this.pageNum, |
| | | pageSize: this.pageSize, |
| | | bigType: 1, |
| | | bigDeviceName: this.bigDeviceName, |
| | | bigNumber: this.bigNumber |
| | | }).then((result) => { |
| | | if(result.success) { |
| | | this.total = result.data.total; |
| | | this.specialList = result.data.list; |
| | | } |
| | | this.loading = false; |
| | | }).catch(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // 打开添加信息 |
| | | propInsert() { |
| | | this.asyncTitle = true; |
| | | this.asyncDevice = true; |
| | | }, |
| | | // 打开修改信息 |
| | | propUpdate(row) { |
| | | this.asyncTitle = false; |
| | | this.asyncDevice = true; |
| | | this.$api.Device.getDeviceDetails({ |
| | | bigDeviceId : row.bigDeviceId |
| | | }).then((res) => { |
| | | this.$set(this.formDevice, 'bigDeviceId', res.data.bigDeviceId); |
| | | this.$set(this.formDevice, 'bigDeviceName', res.data.bigDeviceName); |
| | | this.$set(this.formDevice, 'bigDeviceModel', res.data.bigDeviceModel); |
| | | this.$set(this.formDevice, 'bigNumber', res.data.bigNumber); |
| | | this.$set(this.formDevice, 'manufacturer', res.data.manufacturer); |
| | | this.$set(this.formDevice, 'dateOfProduction', res.data.dateOfProduction); |
| | | this.$set(this.formDevice, 'useYearMonth', res.data.useYearMonth); |
| | | this.$set(this.formDevice, 'useLife', res.data.useLife); |
| | | this.$set(this.formDevice, 'shapeSize', res.data.shapeSize); |
| | | this.$set(this.formDevice, 'totalPower', res.data.totalPower); |
| | | this.$set(this.formDevice, 'totalWeight', res.data.totalWeight); |
| | | this.$set(this.formDevice, 'originalValue', res.data.originalValue); |
| | | this.$set(this.formDevice, 'yearDepreciationRate', res.data.yearDepreciationRate); |
| | | this.$set(this.formDevice, 'accumulatedDepreciation', res.data.accumulatedDepreciation); |
| | | this.$set(this.formDevice, 'netWorth', res.data.netWorth); |
| | | this.$set(this.formDevice, 'useStatus', res.data.useStatus); |
| | | this.$set(this.formDevice, 'isNeed', res.data.isNeed); |
| | | this.$set(this.formDevice, 'deviceSource', res.data.deviceSource); |
| | | this.$set(this.formDevice, 'deviceNexus', res.data.deviceNexus); |
| | | this.$set(this.formDevice, 'fixedPerson', res.data.fixedPerson); |
| | | this.$set(this.formDevice, 'userId', res.data.userId); |
| | | this.$set(this.formDevice, 'zrrPhone', res.data.zrrPhone); |
| | | this.$set(this.formDevice, 'adminPhone', res.data.adminPhone); |
| | | this.$set(this.formDevice, 'bigNotes', res.data.bigNotes); |
| | | }) |
| | | }, |
| | | // 查看设备标识牌 |
| | | propPlate(row) { |
| | | this.bigDeviceId = row.bigDeviceId; |
| | | this.asyncPlate = true; |
| | | this.$api.Device.getDeviceDetails({ |
| | | bigDeviceId : row.bigDeviceId |
| | | }).then(res => { |
| | | this.plateData = res.data; |
| | | }) |
| | | }, |
| | | // 导出 |
| | | exportExcel() { |
| | | this.$api.Device.exportDeviceExcel({ |
| | | bigType: 1, |
| | | bigDeviceName: this.bigDeviceName, |
| | | bigNumber: this.bigNumber |
| | | }).then(res => { |
| | | downFiles(res, '特种设备信息', 'xls') |
| | | }) |
| | | }, |
| | | // 删除设备信息 |
| | | deleteInfo(row) { |
| | | this.$confirm("该操作将删除该设备信息,是否继续删除?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | this.$api.Device.deleteDeviceInfo({ |
| | | bigDeviceId: row.bigDeviceId |
| | | }) |
| | | .then(res => { |
| | | if(res.statusMsg === 'ok') { |
| | | this.searchDeviceInfoList(true); |
| | | this.$message.success("删除成功!"); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | }) |
| | | .catch(() => { |
| | | this.$message.warning("您已取消"); |
| | | }) |
| | | }, |
| | | // 提交添加信息 |
| | | submitInsertForm: throttle(function() { |
| | | this.$refs.form.validate((valid) => { |
| | | if(valid) { |
| | | const params = Object.assign({}, this.formDevice); |
| | | params.bigType = 1; |
| | | this.$api.Device.insertDeviceInfo(params).then((res) => { |
| | | if(res.success) { |
| | | this.asyncDevice = false; |
| | | this.$message.success('添加成功!'); |
| | | this.searchDeviceInfoList(true); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 提交修改信息 |
| | | submitUpdateForm: throttle(function() { |
| | | this.$refs.form.validate((valid) => { |
| | | if(valid) { |
| | | const params = Object.assign({}, this.formDevice); |
| | | params.bigType = 1; |
| | | this.$api.Device.updateDeviceInfo(params).then((res) => { |
| | | if(res.success) { |
| | | this.asyncDevice = false; |
| | | this.$message.success('修改成功!'); |
| | | this.searchDeviceInfoList(true); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // |
| | | changePerson(data) { |
| | | if(data) { |
| | | const dataInfo = this.plateUserData.find(item => item.userId == data); |
| | | this.$set(this.formDevice, 'zrrPhone', dataInfo.phone); |
| | | } else { |
| | | this.$set(this.formDevice, 'zrrPhone', ''); |
| | | } |
| | | |
| | | }, |
| | | // 切换页数 |
| | | changePageNum(page) { |
| | | this.pageNum = page; |
| | | this.searchDeviceInfoList(); |
| | | }, |
| | | // 切换每页条数 |
| | | changePageSize(size) { |
| | | this.pageSize = size; |
| | | this.searchDeviceInfoList(); |
| | | }, |
| | | // 判断按钮权限信息 |
| | | showButton(str) { |
| | | const pinia = buttonPinia(); |
| | | return pinia.$state.buttonInfo.includes(str); |
| | | }, |
| | | }, |
| | | watch: { |
| | | asyncDevice(bol) { |
| | | if(!bol) { |
| | | this.formDevice = {}; |
| | | this.$refs.form.resetFields(); |
| | | } else { |
| | | this.getAllPlatUserpulldown(); |
| | | } |
| | | }, |
| | | asyncPlate(bol) { |
| | | if(!bol) { |
| | | this.plateData = {}; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import'@/style/layout-main.scss'; |
| | | |
| | | .form_flex { |
| | | display: flex; |
| | | align-items: center; |
| | | width: 100%; |
| | | |
| | | .form_flex_slot { |
| | | padding: 0 10px;; |
| | | min-width: 60px; |
| | | white-space: nowrap; |
| | | text-align: center; |
| | | color: #EAEAEA; |
| | | background: #0B5274; |
| | | border: 1px solid #1B428F; |
| | | border-radius: 0 2px 2px 0; |
| | | } |
| | | } |
| | | |
| | | .prop_plate { |
| | | padding: 0 15px 10px 0; |
| | | height: 500px; |
| | | |
| | | .prop_plate_header { |
| | | position: relative; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | height: 120px; |
| | | background: #153876; |
| | | |
| | | img { |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 35px; |
| | | transform: translateY(-50%); |
| | | } |
| | | |
| | | span { |
| | | color: #FFFFFF; |
| | | font-size: 70px; |
| | | font-weight: 600; |
| | | letter-spacing: 32px; |
| | | } |
| | | } |
| | | |
| | | .prop_plate_content { |
| | | position: relative; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | padding: 40px 0; |
| | | height: 320px; |
| | | background: #FFFFFF; |
| | | |
| | | &::before { |
| | | content: ''; |
| | | position: absolute; |
| | | top: 2px; |
| | | width: 100%; |
| | | height: 100%; |
| | | background: url('../../../../assets/sign_bg.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | |
| | | .plate_item { |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 5px 0 8px; |
| | | margin: 5px 20px 10px; |
| | | width: calc(50% - 40px); |
| | | color: #050402; |
| | | font-size: 22px; |
| | | letter-spacing: 2px; |
| | | border-bottom: 1px solid #E4E4E4; |
| | | |
| | | & > span:last-child { |
| | | padding-left: 20px; |
| | | color: #555; |
| | | letter-spacing: 0; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .prop_plate_footer { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | height: 50px; |
| | | color: #000; |
| | | font-size: 16px; |
| | | letter-spacing: 2px; |
| | | background: #FFFFFF; |
| | | |
| | | span { |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /deep/ .el-radio { |
| | | padding: 10px 0; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="main"> |
| | | <div class="main_tabs"> |
| | | <el-tabs v-model="activeName"> |
| | | <el-tab-pane label="特种设备" name="first"></el-tab-pane> |
| | | <el-tab-pane label="一般设备" name="second"></el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | <div class="main_content"> |
| | | <component :is="activeName === 'first' ? 'SpecialEquipment' : 'GeneralEquipment'"></component> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import SpecialEquipment from './components/SpecialEquipment.vue'; |
| | | import GeneralEquipment from './components/GeneralEquipment.vue'; |
| | | export default { |
| | | components: { |
| | | SpecialEquipment, |
| | | GeneralEquipment |
| | | }, |
| | | data() { |
| | | return { |
| | | activeName: 'first' |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '../../../style/layout-main.scss'; |
| | | |
| | | /deep/.main { |
| | | background: none; |
| | | } |
| | | </style> |
| | |
| | | required: true, |
| | | message: '请选择设备', |
| | | trigger: ['blur', 'change'] |
| | | }] |
| | | }], |
| | | bigDeviceModel: [{ |
| | | |
| | | }] |
| | | }, |
| | | deviceData: [], |
| | | checkTypeData: [] |
| | |
| | | // 切换页数 |
| | | changePageNum(page) { |
| | | this.pageNum = page; |
| | | this.searchSpotCheckList(); |
| | | }, |
| | | // 切换每页条数 |
| | | changePageSize(size) { |
| | | this.pageSize = size; |
| | | this.searchSpotCheckList(); |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="bigDeviceName" label="采集时间" align="center" ></el-table-column> |
| | | <el-table-column prop="bigNumber" label="设备" align="center"></el-table-column> |
| | | <el-table-column prop="dc" label="粉尘浓度(mg/m³)" align="center" ></el-table-column> |
| | | <el-table-column prop="t" label="温度(℃)" align="center" ></el-table-column> |
| | | <el-table-column prop="dp" label="压差(pa)" align="center" ></el-table-column> |
| | | <el-table-column prop="oc" label="氧气浓度(%)" align="center" ></el-table-column> |
| | | <el-table-column prop="fans" label="风速(m/s)" align="center" ></el-table-column> |
| | | <el-table-column prop="alarm" label="设备报警" align="center" ></el-table-column> |
| | | <el-table-column label="风机启动" align="center" > |
| | | <el-table-column label="当前焊接机开启台数" align="center" width="150"> |
| | | <template #default="{ row }"> |
| | | <div> |
| | | {{row.fanrun ? row.fanrun == 1 ? '运行' : '未运行' : ''}} |
| | | {{row.vb0 + ' 台'}} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <template |
| | | v-for="(item, index) in 10"> |
| | | <el-table-column |
| | | :prop="`i${index <= 7 ? '0'+index : index + 2}`" |
| | | :label="`${index + 1}#焊机开机信号`" |
| | | align="center" |
| | | :key="index" |
| | | width="150"> |
| | | </el-table-column> |
| | | </template> |
| | | <template |
| | | v-for="(item, index) in 6"> |
| | | <el-table-column |
| | | :prop="`q${index <= 10 ? '0'+index : index}`" |
| | | :label="`${index + 1}#除尘器运行状态`" |
| | | align="center" |
| | | :key="index" |
| | | width="150"> |
| | | </el-table-column> |
| | | </template> |
| | | <el-table-column label="第一组除尘器延时关闭计时" align="center" width="200"> |
| | | <template #default="{ row }"> |
| | | <div> |
| | | {{row.vb10 + ' 秒'}} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="第二组除尘器延时关闭计时" align="center" width="200"> |
| | | <template #default="{ row }"> |
| | | <div> |
| | | {{row.vb11 + ' 秒'}} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="第三组除尘器延时关闭计时" align="center" width="200"> |
| | | <template #default="{ row }"> |
| | | <div> |
| | | {{row.vb12 + ' 秒'}} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="main_footer"> |
| | | |
| | | <el-pagination |
| | | background |
| | | @current-change="changePageNum" |
| | | @size-change="changePageSize" |
| | | :current-page="pageNum" |
| | | :page-sizes="[10, 20, 50, 100]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | this.loading = false; |
| | | }) |
| | | }, |
| | | // 切换页数 |
| | | changePageNum(page) { |
| | | this.pageNum = page; |
| | | this.searchSmokeList(); |
| | | }, |
| | | // 切换每页条数 |
| | | changePageSize(size) { |
| | | this.pageSize = size; |
| | | this.searchSmokeList(); |
| | | }, |
| | | // 判断按钮权限信息 |
| | | showButton(str) { |
| | | const pinia = buttonPinia(); |
| | |
| | | <span>{{three.meta.title}}</span> |
| | | </template> |
| | | <template v-for="items in three.children"> |
| | | <el-menu-item :index="items.path" :key="items.name">{{items.meta.title}}</el-menu-item> |
| | | <el-menu-item |
| | | :index="items.path" |
| | | :key="items.name"> |
| | | {{items.meta.title}} |
| | | </el-menu-item> |
| | | </template> |
| | | </el-submenu> |
| | | </template> |
| | |
| | | /deep/ .el-menu-item.is-active { |
| | | padding-left: 45px!important; |
| | | position: relative; |
| | | margin-left: 10px; |
| | | color: #3DC8FF; |
| | | // margin-left: 10px; |
| | | color: #EAEAEA; |
| | | border-radius: 3px; |
| | | background: linear-gradient( |
| | | 90deg, |
| | |
| | | } |
| | | } |
| | | |
| | | .three_item { |
| | | background: #0B5274 !important; |
| | | } |
| | | |
| | | /deep/ .el-submenu .el-submenu__title:hover { |
| | | color: #3DC8FF; |
| | | background: rgba(57,181,254,0.7) !important; |
| | |
| | | <div class="scan_row_data">{{devicesInfo&&devicesInfo.bigNumber}}</div> |
| | | </div> |
| | | <div class="scan_row"> |
| | | <div class="scan_row_text">设备类型:</div> |
| | | <div class="scan_row_data">{{devicesInfo&&devicesInfo.bigTypeName}}</div> |
| | | </div> |
| | | <div class="scan_row"> |
| | | <div class="scan_row_text">安装位置:</div> |
| | | <div class="scan_row_data">{{devicesInfo&&devicesInfo.bigPosition}}</div> |
| | | <div class="scan_row_text">生产厂家:</div> |
| | | <div class="scan_row_data">{{devicesInfo&&devicesInfo.manufacturer}}</div> |
| | | </div> |
| | | <div class="scan_row"> |
| | | <div class="scan_row_text">设备状态:</div> |
| | | <div class="scan_row_data">{{devicesInfo&&devicesInfo.bigState===1?'在线':'离线'}}</div> |
| | | <div class="scan_row_data">{{devicesInfo&&devicesInfo.useStatus === 1 ? '良好' : '老化'}}</div> |
| | | </div> |
| | | <div class="scan_row"> |
| | | <div class="scan_row_text">责任人:</div> |
| | | <div class="scan_row_data">{{devicesInfo&&devicesInfo.realName===null?'':devicesInfo.realName}}</div> |
| | | <div class="scan_row_data">{{devicesInfo&&devicesInfo.realName ? devicesInfo.realName : ''}}</div> |
| | | </div> |
| | | <div class="scan_row"> |
| | | <div class="scan_row_text">供应商:</div> |
| | | <div class="scan_row_data">{{devicesInfo&&devicesInfo.supplierName}}</div> |
| | | <div class="scan_row_text">责任人电话:</div> |
| | | <div class="scan_row_data">{{devicesInfo&&devicesInfo.zrrPhone}}</div> |
| | | </div> |
| | | <div class="scan_row"> |
| | | <div class="scan_row_text">钥匙柜编号:</div> |
| | | <div class="scan_row_data">{{devicesInfo&&devicesInfo.keyCabinet}}</div> |
| | | <div class="scan_row_text">设备管理员联系方式:</div> |
| | | <div class="scan_row_data">{{devicesInfo&&devicesInfo.adminPhone}}</div> |
| | | </div> |
| | | <div class="scan_row"> |
| | | <div class="scan_row_text">使用年限:</div> |
| | |
| | | //获取设备信息 |
| | | getDeviceInnfo(){ |
| | | this.url = window.location.href.split('?')[1].split('=')[1] |
| | | window.document.title="大型生产设备" |
| | | this.$api.Device.detailsBigDevice({bigDeviceId:this.url}).then(res=>{ |
| | | window.document.title="设备信息" |
| | | this.$api.Device.getDeviceDetails({bigDeviceId: this.url}).then(res=>{ |
| | | if(res.statusMsg === 'ok'){ |
| | | this.devicesInfo = res.data |
| | | }else{ |