From 3d98a5d6dcc2e1f9b59a89570fa086548366ed72 Mon Sep 17 00:00:00 2001 From: 李旭东 <woaiguo66@sina.com> Date: 星期五, 27 十月 2023 15:50:42 +0800 Subject: [PATCH] 环境监测和焊接烟尘增加 --- sz_app/api/module/system.js | 2 sz_app/pages/spotCheck/deviceSpot.vue | 340 ++++++++++++++++++ web/src/views/GreenBuild/EnvironMonitor.vue | 102 +++++ web/src/api/index.js | 4 sz_app/api/api.js | 4 web/src/views/GreenBuild/WeldSmoke.vue | 106 +++++ sz_app/api/http.js | 2 web/.env.production | 3 web/src/api/modules/green.js | 14 web/src/views/EquipmentManage/EquipSpot.vue | 4 web/src/views/Basics/MouldIndex.vue | 4 sz_app/pages/spotCheck/index.vue | 255 ++++++++++++++ sz_app/pages.json | 21 + sz_app/pages/spotCheck/spotDetail.vue | 133 +++++++ web/.env.development | 1 sz_app/api/module/spot.js | 46 ++ sz_app/manifest.json | 2 17 files changed, 1,029 insertions(+), 14 deletions(-) diff --git a/sz_app/api/api.js b/sz_app/api/api.js index 72fb3af..e0a7797 100644 --- a/sz_app/api/api.js +++ b/sz_app/api/api.js @@ -9,6 +9,7 @@ import cistern from './module/cistern.js'; // 管片入池 import putbank from './module/putbank.js'; // 管片入库 import exit from './module/exit.js'; // 管片出库 +import spot from './module/spot.js'; // 点检 export default { system, @@ -17,5 +18,6 @@ ductpiece, cistern, putbank, - exit + exit, + spot }; diff --git a/sz_app/api/http.js b/sz_app/api/http.js index fedc918..6ffb703 100644 --- a/sz_app/api/http.js +++ b/sz_app/api/http.js @@ -1,7 +1,7 @@ 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:8880'; +export const basrUrl = 'http://111.30.93.212:8089/suapi'; Request.prototype = { post: function(url, params) { return new Promise(function(resolve, reject) { diff --git a/sz_app/api/module/spot.js b/sz_app/api/module/spot.js new file mode 100644 index 0000000..2aa2063 --- /dev/null +++ b/sz_app/api/module/spot.js @@ -0,0 +1,46 @@ +import axios from '../http.js'; + +export default { + /** + * 点检接口 + */ + + // 查询字典信息 + searchDictionary: params => { + return axios({ + url: '/engineering/dict/dictList', + method: 'post', + ...params, + header: { + pageNum: params.pageNum, + pageSize: params.pageSize + } + }) + }, + // 查询设备点检列表信息 + searchSpotCheckList: (params) => + axios({ + method: 'post', + url: '/m/checkDevice/findList', + ...params, + header: { + pageNum: params.pageNum, + pageSize: params.pageSize + } + }), + // 添加设备点检信息 + 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'), +} \ No newline at end of file diff --git a/sz_app/api/module/system.js b/sz_app/api/module/system.js index 6d2dcef..87e2009 100644 --- a/sz_app/api/module/system.js +++ b/sz_app/api/module/system.js @@ -6,7 +6,7 @@ */ // 登录 userLogin: params => - axios.post(`/m/login`, params), + axios.post(`/usercore/login`, params), // 退出登录 logingOut: params => axios.post('/usercore/login/logout', params), diff --git a/sz_app/manifest.json b/sz_app/manifest.json index 3fd69af..06963e0 100644 --- a/sz_app/manifest.json +++ b/sz_app/manifest.json @@ -1,6 +1,6 @@ { "name" : "智慧管片", - "appid" : "__UNI__EBC4C2D", + "appid" : "__UNI__D1E1AF0", "description" : "", "versionName" : "1.1.1", "versionCode" : 111, diff --git a/sz_app/pages.json b/sz_app/pages.json index 7f051d2..2abc331 100644 --- a/sz_app/pages.json +++ b/sz_app/pages.json @@ -85,6 +85,27 @@ "navigationBarTextStyle": "white", "navigationBarTitleText": "管片出库" } + },{ + "path": "pages/spotCheck/index", + "style": { + "navigationStyle": "custom", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/spotCheck/spotDetail", + "style": { + "navigationBarBackgroundColor": "#1976FF", + "navigationBarTextStyle": "white", + "navigationBarTitleText": "点检详情" + } + },{ + "path": "pages/spotCheck/deviceSpot", + "style": { + "navigationBarBackgroundColor": "#1976FF", + "navigationBarTextStyle": "white", + "navigationBarTitleText": "设备点检" + } } ], "globalStyle": { diff --git a/sz_app/pages/spotCheck/deviceSpot.vue b/sz_app/pages/spotCheck/deviceSpot.vue new file mode 100644 index 0000000..917dcff --- /dev/null +++ b/sz_app/pages/spotCheck/deviceSpot.vue @@ -0,0 +1,340 @@ +<template> + <view class="device_spot"> + <view class="header_semicircle"></view> + <view class="device_spot_content"> + <view class="device_item"> + <view class="device_item_title"> + <span>HSHS-001</span> + </view> + <view class="device_item_value"> + <span class="label">设备名称:</span> + <span>混凝土搅拌机</span> + </view> + <view class="device_item_value"> + <span class="label">型号规格:</span> + <span>混凝土搅拌机</span> + </view> + <view class="device_item_value"> + <span class="label">设备类型:</span> + <span>混凝土搅拌机</span> + </view> + </view> + <view class="device_form"> + <u-form + ref="form" + labelWidth="auto" + :model="formSpot" + :rules="rulesSpot"> + <u-form-item + labelPosition="left" + label="点检时间" + prop="checkTime" + borderBottom + @click="ckickTime()"> + <u-input + v-model="formSpot.checkTime" + border="none" + placeholder="请选择点检时间" + disabled + disabledColor="#FFFFFF" + inputAlign="right"> + </u-input> + <u-icon + slot="right" + name="calendar" + ></u-icon> + </u-form-item> + <u-form-item + labelPosition="left" + label="点检类型" + prop="checkTypeName" + borderBottom + @click="clickCheckType()"> + <u-input + v-model="formSpot.checkTypeName" + border="none" + placeholder="请选择点检类型" + disabled + disabledColor="#FFFFFF" + inputAlign="right"> + </u-input> + <u-icon + slot="right" + name="arrow-right" + ></u-icon> + </u-form-item> + <u-form-item label="点检内容及结果" labelPosition="top" prop="checkContent"> + <view style="margin: 5px 0; width: 100%;"> + <u-textarea + v-model="formSpot.checkContent" + height="100" + border="surround" + placeholder="请输入点检内容及结果"> + </u-textarea> + </view> + </u-form-item> + <u-form-item label="上传照片" labelPosition="top" prop="checkContent"> + <view style="margin: 5px 0; width: 100%;"> + <u-upload + :fileList="fileList" + name="1" + accept="image" + uploadIcon="plus" + @afterRead="afterRead" + @delete="deleteImage" + ></u-upload> + </view> + </u-form-item> + <view class="login_content_button"> + <u-button + type="primary" + :color="colorStyle" + @click="submitForm()">提交</u-button> + </view> + </u-form> + </view> + </view> + <u-datetime-picker + :show="showTime" + v-model="defaultTime" + mode="datetime" + @cancel="cancelTime" + @confirm="confirmTime"> + </u-datetime-picker> + <u-picker + :show="showCheckType" + :columns="checkTypeData" + keyName="dictName" + closeOnClickOverlay + @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'; + export default { + data() { + return { + formSpot: { + checkTime: '', + checkTypeName: '', + }, + rulesSpot: { + checkTime: [{ + required: true, + message: '请选择点检时间', + trigger: 'blur', + }], + checkTypeName: [{ + required: true, + message: '请选择点检类型', + trigger: 'blur', + }], + checkContent: [{ + required: true, + message: '请输入点检内容及结果', + trigger: 'blur', + }] + }, + fileList: [], + colorStyle: 'linear-gradient(to right, rgb(79, 142, 244), rgb(85, 109, 254))', + showTime: false, + defaultTime: Number(new Date()), + deviceId: '' + } + }, + onReady() { + this.$refs.form.setRules(this.rulesSpot); + }, + onLoad(option) { + this.deviceId = option.deviceId; + this.getChackAllTypes(); + }, + methods: { + // 获取点检类型 + async getChackAllTypes(){ + const { data } = await this.$api.spot.searchDictionary({ + pageNum: 1, + pageSize: 100000000, + dictType: 'check_type' + }); + this.checkTypeData = data.list; + }, + // 读取图片后 + afterRead(event) { + console.log(event); + this.fileList.push({ + status: 'loading', + message: '上传中', + }) + uni.uploadFile({ + url: `${baseUrl}/file/file/upload`, + fileType: 'image', + filePath: event.file.url, + name: 'file', + success: (res) => { + const data = JSON.parse(res.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}` + }) + }, + fail: (error) => { + uni.$u.toast('上传失败!'); + } + }) + }, + // 删除图片 + deleteImage(event) { + this.fileList.splice(event.index, 1); + }, + // 选择时间 + ckickTime() { + this.showTime = true; + this.$set(this.formSpot, 'checkTime', ''); + }, + // 点击取消选择时间 + cancelTime() { + this.showTime = false; + this.$set(this.formSpot, 'checkTime', ''); + }, + // 点击选择时间 + confirmTime({ value }) { + this.$set(this.formSpot, 'checkTime', changeTime(value)); + this.showTime = false; + }, + // 选择点检类型 + clickCheckType() { + this.showCheckType = true; + this.$set(this.formSpot, 'checkTypeName', ''); + this.$set(this.formSpot, 'checkType', ''); + }, + // 点击取消选择时间 + cancelCheckType() { + this.showCheckType = false; + this.$set(this.formSpot, 'checkTypeName', ''); + this.$set(this.formSpot, 'checkType', ''); + }, + // 点击选择点检类型 + confirmCheckType({ value }) { + 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) { + const params = Object.assign({}, this.formSpot); + delete params.checkTypeName; + params.deviceId = this.deviceId; + if(this.fileList.length > 0) { + params.fileList = this.fileList.map(item => { + return { + file: item.data + } + }) + } + this.$api.spot.insertSpotCheckInfo(params).then(res => { + if(res.success) { + uni.$u.toast('添加成功!'); + setTimeout(() => { + uni.navigateBack(); + }, 1500) + } else { + uni.$u.toast(res.statusMsg); + } + }) + } + }) + }, 3000), + } + } +</script> + +<style scoped lang="scss"> +.device_spot { + position: relative; + width: 100%; + height: 100vh; + background: rgba(246, 246, 246, 1); + + .header_semicircle { + width: 100%; + height: 100px; + background: #1977FF; + border-radius: 0 0 50% 50%; + } + + .device_spot_content { + position: absolute; + top: 10px; + left: 50%; + transform: translateX(-50%); + display: flex; + flex-direction: column; + padding: 15px; + width: calc(100% - 60px); + height: calc(100% - 40px); + background: #FFFFFF; + border-radius: 6px; + overflow-y: auto; + box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.04); + + .device_item { + display: flex; + flex-direction: column; + justify-content: space-around; + padding: 10px 15px; + // height: 280px; + background: #F6FAFF; + border-radius: 4px; + border-top: 3px solid rgba(25, 119, 255, 1); + + .device_item_title { + position: relative; + padding: 0 10px; + margin: 5px 0; + color: rgba(25, 119, 255, 1); + font-size: 18px; + + &:before { + content: ""; + position: absolute; + top: 50%; + left: 0%; + transform: translateY(-50%); + width: 3px; + height: 80%; + background-color: rgba(25, 119, 255, 1); + } + } + + .device_item_value { + margin: 5px 0; + } + + .label { + display: inline-block; + color: #999999; + white-space: nowrap; + } + + .value { + color: #1977FF; + } + } + + .device_form { + // margin-top: 20px; + } + } +} +</style> \ No newline at end of file diff --git a/sz_app/pages/spotCheck/index.vue b/sz_app/pages/spotCheck/index.vue new file mode 100644 index 0000000..bc8c683 --- /dev/null +++ b/sz_app/pages/spotCheck/index.vue @@ -0,0 +1,255 @@ +<template> + <view class="spot_index"> + <u-navbar + title="点检列表" + bgColor="#1977FF" + :autoBack="true" + :placeholder="true" + leftIconColor="#FFFFFF" + :titleStyle="{ + color: '#FFFFFF' + }"> + <view slot="right"> + <span @click="scanDevice()">点检</span> + </view> + </u-navbar> + <view class="header_semicircle"></view> + <scroll-view class="spot_content" :scroll-top="scrollTop" refresher-enabled="true" scroll-y="true" refresher-background="#EAEAEA" + @scrolltolower="scrolltoLower" :refresher-triggered="triggered" @refresherrefresh="refresherrefresh"> + <view + class="spot_item" + v-for="item in spotList" + :key="item.id" + @click="navgetToDetail(item)"> + <view class="spot_item_title"> + <span>设备编号:{{item.bigNumber}}</span> + <span>详情</span> + </view> + <view class="spot_item_content"> + <view class=""> + <span class="label">设备名称:</span> + <span>{{item.bigDeviceName}}</span> + </view> + <view class=""> + <span class="label">型号规格:</span> + <span>{{item.bigDeviceModel}}</span> + </view> + <view class=""> + <span class="label">设备类型:</span> + <span>{{item.bigTypeStr}}</span> + </view> + <view class=""> + <span class="label">点检时间:</span> + <span class="value">{{item.checkTime}}</span> + </view> + <view class=""> + <span class="label">责任人:</span> + <span>{{item.adminUserName}}</span> + </view> + <view class=""> + <span class="label">责任人电话:</span> + <span>{{item.adminUserPhone}}</span> + </view> + </view> + </view> + <u-loadmore :status="status" :icon-type="iconType" :load-text="loadText" /> + </scroll-view> + </view> +</template> + +<script> +import { throttle } from '../../plugins/public'; + export default { + data() { + return { + scrollTop: 0, + triggered: true, + status: 'loading', + iconType: 'flower', + loadText: { + loading: '努力加载中', + nomore: '没有更多数据了' + }, + showState: false, + columnData: [[{ + label: '未匹配', + id: 1 + },{ + label: '匹配成功入模', + id: 2 + },{ + label: '匹配失败无法入模', + id: 3 + }]], + pageNum: 1, + pageSize: 10, + loadPage: '', + spotList: [{id: 1}, {id: 2}, {id: 3}], + } + }, + onShow() { + this.searchData(); + }, + methods: { + // 查询模具质检列表 + async searchSpotCheckList() { + const { data } = await this.$api.spot.searchSpotCheckList({ + pageNum: this.pageNum, + pageSize: this.pageSize + }) + return data; + }, + // 查询信息 + searchData() { + this.triggered = true; + this.spotList = []; + this.searchSpotCheckList().then(data => { + this.spotList = data.list; + this.loadPage = data.pages; + this.triggered = false; + this.status = 'nomore'; + }).catch(() => { + this.triggered = false; + this.status = 'nomore'; + uni.$u.toast('没有更数据了'); + }) + }, + //自定义下拉刷新 + refresherrefresh: throttle(function() { + this.status = 'loading'; + this.pageNum = 1; + this.searchData(); + uni.$u.toast('刷新成功'); + }, 500), + //触底刷新 + scrolltoLower: throttle(function() { + this.status = 'loading'; + if(this.pageNum >= this.loadPage) { + setTimeout(() => { + this.status = 'nomore' + uni.$u.toast('没有更多数据了'); + },1000) + return + } else { + this.pageNum += 1; + this.searchSpotCheckList().then((data) => { + this.loadPage = data.pages; + this.spotList.push(...data.list); + this.status = 'nomore'; + }) + } + }, 3000), + // 点检 + scanDevice() { + const that = this; + uni.$off('scancodedate'); + uni.$on('scancodedate', function(data) { + console.log(data.code); + if(data.code) { + uni.navigateTo({ + url: './deviceSpot' + }) + } + // 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'); + }) + }, + // 跳转详情 + navgetToDetail(item) { + uni.navigateTo({ + url: './spotDetail?id=' + item.id + }) + } + } + } +</script> + +<style scoped lang="scss"> + .spot_index { + position: relative; + width: 100%; + height: 100vh; + background: rgba(246, 246, 246, 1); + + .header_semicircle { + width: 100%; + height: 100px; + background: #1977FF; + border-radius: 0 0 50% 50%; + } + + .spot_content { + position: absolute; + top: 70px; + left: 50%; + transform: translateX(-50%); + display: flex; + flex-direction: column; + width: calc(100% - 30px); + height: calc(100% - 70px); + + .spot_item { + padding: 10px; + margin: 12px 0; + // width: 100%; + height: 250px; + background: #FFFFFF; + border-radius: 6px; + box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.04); + + &:first-child { + margin-top: 0; + } + + .spot_item_title { + position: relative; + padding: 0 10px; + display: flex; + justify-content: space-between; + color: rgba(25, 119, 255, 1); + font-size: 16px; + + &:before { + content: ''; + position: absolute; + top: 50%; + left: 0; + transform: translateY(-50%); + width: 3px; + height: 80%; + background-color: rgba(25, 119, 255, 1); + } + } + + .spot_item_content { + display: flex; + flex-direction: column; + justify-content: space-around; + padding: 10px; + margin-top: 10px; + height: calc(90% - 30px); + background: rgba(25,119,255,0.04); + + .label { + display: inline-block; + width: 100px; + color: #999999; + } + + .value { + color: #1977FF; + } + } + } + } + } +</style> \ No newline at end of file diff --git a/sz_app/pages/spotCheck/spotDetail.vue b/sz_app/pages/spotCheck/spotDetail.vue new file mode 100644 index 0000000..3aeae43 --- /dev/null +++ b/sz_app/pages/spotCheck/spotDetail.vue @@ -0,0 +1,133 @@ +<template> + <view class="spot_detail"> + <u-form + ref="form" + labelWidth="auto" + :model="formData" + :labelStyle="{ + color: '#999999' + }"> + <u-form-item labelPosition="left" label="设备编号" borderBottom> + <u-input + v-model="formData.bigDeviceModel" + border="none" + disabled + disabledColor="#FFFFFF" + inputAlign="right"> + </u-input> + </u-form-item> + <u-form-item labelPosition="left" label="设备名称" borderBottom> + <u-input + v-model="formData.bigDeviceName" + border="none" + disabled + disabledColor="#FFFFFF" + inputAlign="right"> + </u-input> + </u-form-item> + <u-form-item labelPosition="left" label="型号规格" borderBottom> + <u-input + v-model="formData.bigDeviceModel" + border="none" + disabled + disabledColor="#FFFFFF" + inputAlign="right"> + </u-input> + </u-form-item> + <u-form-item labelPosition="left" label="设备类型" borderBottom> + <u-input + v-model="formData.bigTypeStr" + border="none" + disabled + disabledColor="#FFFFFF" + inputAlign="right"> + </u-input> + </u-form-item> + <u-form-item labelPosition="left" label="点检时间" borderBottom> + <u-input + v-model="formData.checkTime" + border="none" + disabled + disabledColor="#FFFFFF" + inputAlign="right"> + </u-input> + </u-form-item> + <u-form-item labelPosition="left" label="责任人" borderBottom> + <u-input + v-model="formData.adminUserName" + border="none" + disabled + disabledColor="#FFFFFF" + inputAlign="right"> + </u-input> + </u-form-item> + <u-form-item labelPosition="left" label="责任人电话" borderBottom> + <u-input + v-model="formData.adminUserPhone" + border="none" + disabled + disabledColor="#FFFFFF" + inputAlign="right"> + </u-input> + </u-form-item> + <u-form-item labelPosition="left" label="点检类型" borderBottom> + <u-input + v-model="formData.checkType" + border="none" + disabled + disabledColor="#FFFFFF" + inputAlign="right"> + </u-input> + </u-form-item> + <u-form-item labelPosition="top" label="点检内容及结果" borderBottom> + <u-input + v-model="formData.checkContent" + border="none" + disabled + disabledColor="#FFFFFF" + inputAlign="left"> + </u-input> + </u-form-item> + <u-form-item labelPosition="top" label="上传照片" borderBottom> + <view style="margin: 5px 0; width: 100%; display: flex;"> + <u-image + v-for="item in formData.fileList" + :key="item.id" + :src="`http://filemanage.thhy-tj.com:8888${item.file}`" + width="100px" + height="100px" + radius="4"> + </u-image> + </view> + </u-form-item> + </u-form> + </view> +</template> + +<script> + + export default { + data() { + return { + formData: {}, + } + }, + onLoad(option) { + console.log(option,'=='); + this.$api.spot.getSpotCheckDetail({ + id: option.id + }).then((res) => { + this.formData = res.success ? res.data : {}; + }) + }, + methods: { + + } + } +</script> + +<style scoped lang="scss"> +.spot_detail { + padding: 15px; +} +</style> \ No newline at end of file diff --git a/web/.env.development b/web/.env.development index a2cd8ab..1644fb6 100644 --- a/web/.env.development +++ b/web/.env.development @@ -3,4 +3,5 @@ # VUE_APP_BASE_URL = 'https://logadd.com:8443/pipe' # VUE_APP_BASE_URL = 'https://ssfp.thhy-tj.com/api' VUE_APP_BASE_URL = 'http://111.30.93.212:8089/suapi' +# VUE_APP_BASE_URL = 'http://192.168.0.247:8880' # VUE_APP_BASE_URL = 'http://111.30.93.212:8089/pipesu' \ No newline at end of file diff --git a/web/.env.production b/web/.env.production index 3dd7b05..8784e7a 100644 --- a/web/.env.production +++ b/web/.env.production @@ -1,3 +1,4 @@ # VUE_APP_BASE_URL = 'https://pipe.thhy-tj.com:8880' -VUE_APP_BASE_URL = 'http://111.30.93.212:10100' \ No newline at end of file +VUE_APP_BASE_URL = 'http://111.30.93.212:8089/suapi' +# VUE_APP_BASE_URL = 'http://111.30.93.247:8880' \ No newline at end of file diff --git a/web/src/api/index.js b/web/src/api/index.js index d731477..9428f63 100644 --- a/web/src/api/index.js +++ b/web/src/api/index.js @@ -22,6 +22,7 @@ import Analyse from './modules/analyse'; // 数据分析模块 import Safety from './modules/safety'; // 安全管理模块 import Scan from './modules/scan'; // 扫码跳转到对应页面 +import Green from './modules/green'; // 扫码跳转到对应页面 export default { System, @@ -44,5 +45,6 @@ Report, Analyse, Safety, - Scan + Scan, + Green } diff --git a/web/src/api/modules/green.js b/web/src/api/modules/green.js new file mode 100644 index 0000000..5de779b --- /dev/null +++ b/web/src/api/modules/green.js @@ -0,0 +1,14 @@ +/** + * 绿色施工 + */ +import axios from '../request'; + +export default { + // 查询环境监测 + searchEnvironMonitorList: (params) => + axios.post('/materials/helmet/dataValuesList ', params), + // 查询焊接烟尘信息 + searchSmokeList: params => + axios.post('/materials/helmet/dataSmockList', params), + +} \ No newline at end of file diff --git a/web/src/views/Basics/MouldIndex.vue b/web/src/views/Basics/MouldIndex.vue index 661dd28..c4b7b51 100644 --- a/web/src/views/Basics/MouldIndex.vue +++ b/web/src/views/Basics/MouldIndex.vue @@ -192,10 +192,10 @@ </el-select> </el-form-item> <el-form-item label="模具检查预警值:" prop="supplierId"> - <el-input placeholder="请输入次数" v-model="input2" style="margin-right:15px"> + <el-input placeholder="请输入次数" v-model="formMould.input2" style="margin-right:15px"> <template slot="append">次数</template> </el-input> - <el-input placeholder="请输入天数" v-model="input2"> + <el-input placeholder="请输入天数" v-model="formMould.input2"> <template slot="append">天数</template> </el-input> </el-form-item> diff --git a/web/src/views/EquipmentManage/EquipSpot.vue b/web/src/views/EquipmentManage/EquipSpot.vue index 036c4b9..9feb288 100644 --- a/web/src/views/EquipmentManage/EquipSpot.vue +++ b/web/src/views/EquipmentManage/EquipSpot.vue @@ -179,8 +179,8 @@ bigNumber: this.bigNumber, pageNum: this.pageNum, pageSize: this.pageSize, - startTime: this.timeData ? this.timeData[0] : '', - endTime: this.timeData ? this.timeData[1] : '' + startTime: this.timeData ? this.timeData[0] + ' 00:00:00' : '', + endTime: this.timeData ? this.timeData[1] + ' 23:59:59' : '' }).then(res => { if(res.success) { this.total = res.data.total; diff --git a/web/src/views/GreenBuild/EnvironMonitor.vue b/web/src/views/GreenBuild/EnvironMonitor.vue index 61c5bb7..e2954e0 100644 --- a/web/src/views/GreenBuild/EnvironMonitor.vue +++ b/web/src/views/GreenBuild/EnvironMonitor.vue @@ -1,3 +1,101 @@ <template> - <div>环境监测</div> -</template> \ No newline at end of file + <div class="main"> + <div class="main_header"> + <div class="header_item"> + <span class="header_label">时间范围:</span> + <el-date-picker + v-model="dataTime" + type="daterange" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期" + value-format="yyyy-MM-dd"> + </el-date-picker> + </div> + <div class="header_item"> + <el-button icon="el-icon-search" @click="searchEnvironMonitorList(true)">查询</el-button> + <!-- <el-button icon="el-icon-search" v-if="showButton('search')">查询</el-button> --> + </div> + </div> + <div class="main_content"> + <el-table + v-loading="loading" + :data="monitorList" + height="100%"> + <el-table-column label="序号" align="center" > + <template #default="scope"> + <div> + <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span> + </div> + </template> + </el-table-column> + <el-table-column prop="uploadTime" label="采集时间" align="center" ></el-table-column> + <el-table-column prop="deviceName" label="设备" align="center"></el-table-column> + <el-table-column prop="pm25" label="PM2.5(微克/立方米)" width="200" align="center" ></el-table-column> + <el-table-column prop="pm10" label="PM10(微克/立方米)" width="200" align="center" ></el-table-column> + <el-table-column prop="tsp" label="TSP(微克/立方米)" width="200" align="center" ></el-table-column> + <el-table-column prop="temperature" label="温度(摄氏度)" align="center" ></el-table-column> + <el-table-column prop="humidity" label="湿度(%)" align="center" ></el-table-column> + <el-table-column prop="bigDeviceModel" label="大气压(千帕)" align="center" ></el-table-column> + <el-table-column prop="windSpeed" label="风速(米/秒)" align="center" ></el-table-column> + <el-table-column prop="windDirection" label="风向" align="center" ></el-table-column> + <el-table-column prop="noise" label="噪声(分贝)" align="center" ></el-table-column> + </el-table> + </div> + <div class="main_footer"> + + </div> + </div> +</template> + +<script> +import { buttonPinia } from '../../pinia'; +export default { + data() { + return { + dataTime: '', + pageNum: 1, + pageSize: 10, + total: 0, + loading: false, + monitorList: [] + } + }, + mounted() { + this.searchEnvironMonitorList(true); + }, + methods: { + // 查询环境监测 + searchEnvironMonitorList(bol) { + if(bol) { + this.pageNum = 1; + } + this.loading = true; + this.monitorList = []; + this.$api.Green.searchEnvironMonitorList({ + strTime: this.dataTime ? this.dataTime[0] : '', + endTime: this.dataTime ? this.dataTime[1] : '', + pageNum: this.pageNum, + pageSize: this.pageSize + }).then(res => { + if(res.success) { + this.total = res.data.total; + this.monitorList = res.data.list; + } + this.loading = false; + }).catch(() => { + this.loading = false; + }) + }, + // 判断按钮权限信息 + showButton(str) { + const pinia = buttonPinia(); + return pinia.$state.buttonInfo.includes(str); + } + } +}; +</script> + +<style lang="scss" scoped> +@import '@/style/layout-main.scss'; +</style> \ No newline at end of file diff --git a/web/src/views/GreenBuild/WeldSmoke.vue b/web/src/views/GreenBuild/WeldSmoke.vue index d9b1573..dc7e116 100644 --- a/web/src/views/GreenBuild/WeldSmoke.vue +++ b/web/src/views/GreenBuild/WeldSmoke.vue @@ -1,3 +1,105 @@ <template> - <div>焊接烟尘</div> -</template> \ No newline at end of file + <div class="main"> + <div class="main_header"> + <div class="header_item"> + <span class="header_label">时间范围:</span> + <el-date-picker + v-model="dataTime" + type="daterange" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期" + value-format="yyyy-MM-dd"> + </el-date-picker> + </div> + <div class="header_item"> + <el-button icon="el-icon-search" @click="searchSmokeList(true)">查询</el-button> + <!-- <el-button icon="el-icon-search" v-if="showButton('search')">查询</el-button> --> + </div> + </div> + <div class="main_content"> + <el-table + v-loading="loading" + :data="smokeList" + height="100%"> + <el-table-column label="序号" align="center" > + <template #default="scope"> + <div> + <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span> + </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" > + <template #default="{ row }"> + <div> + {{row.fanrun ? row.fanrun == 1 ? '运行' : '未运行' : ''}} + </div> + </template> + </el-table-column> + </el-table> + </div> + <div class="main_footer"> + + </div> + </div> +</template> + +<script> +import { buttonPinia } from '../../pinia'; +export default { + data() { + return { + dataTime: '', + pageNum: 1, + pageSize: 10, + total: 0, + loading: false, + smokeList: [] + } + }, + mounted() { + this.searchSmokeList(true); + }, + methods: { + // 查询焊接烟尘信息 + searchSmokeList(bol) { + if(bol) { + this.pageNum = 1; + } + this.loading = true; + this.smokeList = []; + this.$api.Green.searchSmokeList({ + strTime: this.dataTime ? this.dataTime[0] : '', + endTime: this.dataTime ? this.dataTime[1] : '', + pageNum: this.pageNum, + pageSize: this.pageSize + }).then(res => { + if(res.success) { + this.total = res.data.total; + this.smokeList = res.data.list; + } + this.loading = false; + }).catch(() => { + this.loading = false; + }) + }, + // 判断按钮权限信息 + showButton(str) { + const pinia = buttonPinia(); + return pinia.$state.buttonInfo.includes(str); + } + } +}; +</script> + +<style lang="scss" scoped> +@import '@/style/layout-main.scss'; +</style> \ No newline at end of file -- Gitblit v1.9.3