添加天气配置

This commit is contained in:
jiayu 2024-08-24 17:38:18 +08:00
parent 66d1ef3f45
commit 0e80445d8b
5 changed files with 284 additions and 2 deletions

View File

@ -18,7 +18,7 @@ var COMPANY = ""; //通用
// COMPANY = 'jlw'//金林湾
// COMPANY = 'shzj' //上海张江
// COMPANY = 'shjg'//上海优益(上海建工)
COMPANY = "agjt"; //鞍钢集团
// COMPANY = "agjt"; //鞍钢集团
// COMPANY = 'zkax' //中科安信
// COMPANY = 'hfqc' //乌丹站舍(合肥启程)
// COMPANY = 'mulei' //木垒

View File

@ -0,0 +1,9 @@
/**
* api接口统一管理
*/
import { post, get } from '../http'
export const getWeatherPage = data => post('xmgl/weather/page', data) //查询列表数据
export const weatherAdd = data => post('xmgl/weather/add', data) //新增
export const weatherEdit = data => post('xmgl/weather/edit', data) //编辑
export const weatherDelete = data => post('xmgl/weather/delete', data) //删除
export const weatherImportExcel = data => post('xmgl/weather/importExcel', data)

View File

@ -638,7 +638,7 @@ export default {
this.jumpToken = localStorage.getItem("jumpToken");
let userId = this.$store.state.userInfo.userId;
window.open(this.newBigScreen + "?userId=" + userId + '&sn=' + this.$store.state.projectSn, "_self");
// window.open('http://192.168.34.138:8081/#/large?token=' + this.jumpToken + '&sn=' + this.$store.state.projectSn, "_self")//token
// window.open('http://192.168.34.216:8081/#/large?userId=' + userId + '&sn=' + this.$store.state.projectSn, "_self")//token
}
// if (this.newBigScreen != null) {
// console.log("",this.newBigScreen)

View File

@ -295,6 +295,13 @@ const routes2 = [{
component: () =>
import ("@/views/projectFront/projectSummary/manageTeam.vue"),
},
//天气管理
{
path: "/project/summary/weatherManagement",
name: "天气管理",
component: () =>
import ("@/views/projectFront/projectSummary/weatherManagement.vue"),
},
{
path: "/project/summary/cooperationUnit",
name: "项目概况_合作单位",

View File

@ -0,0 +1,266 @@
<template>
<div class="fullHeight">
<div class="searchBox whiteBlock">
<el-button type="warning" size="medium" plain @click="refresh">{{ $t('message.deviceManage.refresh') }}</el-button>
<el-button type="primary" size="medium" @click="add">{{ $t('message.deviceManage.add') }}</el-button>
<!-- <el-upload
style="margin: 0px 15px; display: inline"
class="upload-demo expintBtn"
name="mppFile"
:on-success="handleImportSuccess"
:file-list="fileList"
:action="$http.defaults.baseURL + 'xmgl/weather/importExcel'"
:data="{ projectSn: $store.state.projectSn }"
:show-file-list="false"
:headers="headers"
>
<el-button size="medium" type="primary">导入</el-button>
</el-upload> -->
</div>
<div class="table_wrap whiteBlock">
<el-table class="tables" :data="dataList" height="800">
<el-table-column prop="city" align="center" label="城市名称"></el-table-column>
<el-table-column prop="date" label="预报日期" align="center"></el-table-column>
<el-table-column prop="temDay" label="白天温度(高温)" align="center"></el-table-column>
<el-table-column prop="temNight" label="白天温度(低温)" align="center"></el-table-column>
<el-table-column prop="wea" label="天气情况" align="center"></el-table-column>
<el-table-column prop="win" label="风向" align="center"></el-table-column>
<el-table-column prop="winSpeed" label="风力等级" align="center"></el-table-column>
<el-table-column :label="$t('message.deviceManage.operation')" align="center">
<template slot-scope="scope">
<div class="tableBtns">
<div
v-permission="{ key: 'gltd_edit', menuPath: '/project/summary/manageTeam' }"
@click="edit(scope.row)"
class="operationText"
>
<img src="@/assets/images/icon-edit.png" width="15px" height="15px" />
<span>{{ $t('message.deviceManage.edit') }}</span>
</div>
<div
v-permission="{ key: 'gltd_delete', menuPath: '/project/summary/manageTeam' }"
@click="deleteDev(scope.row)"
class="operationText"
>
<img src="@/assets/images/icon-delete.png" width="15px" height="15px" />
<span>{{ $t('message.deviceManage.delete') }}</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
<el-dialog
:modal-append-to-body="false"
@close="close"
:title="Popup.type === 'add' ? '新增天气' : '编辑天气'"
:visible.sync="Popup.show"
width="667px"
>
<div class="dialog_content">
<el-form
v-if="Popup.type === 'add' || Popup.type === 'edit'"
size="medium"
ref="addEditForm"
:model="addEditForm"
:rules="addEditRules"
label-width="140px"
class="dialogFormBox"
>
<el-form-item label="城市名称" prop="city">
<el-input v-model="addEditForm.city" :placeholder="$t('message.deviceManage.placeholder')"></el-input>
</el-form-item>
<el-form-item label="预报日期" prop="date">
<el-date-picker
v-model="addEditForm.date"
value-format="yyyy-MM-dd"
type="date"
:placeholder="$t('message.projectInfo.chooseDate')"
>
</el-date-picker>
</el-form-item>
<el-form-item label="白天温度(高温)" prop="temDay">
<el-input v-model="addEditForm.temDay" :placeholder="$t('message.deviceManage.placeholder')"></el-input>
</el-form-item>
<el-form-item label="白天温度(低温)" prop="date">
<el-input v-model="addEditForm.temNight" :placeholder="$t('message.deviceManage.placeholder')"></el-input>
</el-form-item>
<el-form-item label="天气情况" prop="wea">
<el-input v-model="addEditForm.wea" :placeholder="$t('message.deviceManage.placeholder')"></el-input>
</el-form-item>
<el-form-item label="天气图标" prop="weaImg">
<el-select v-model="addEditForm.weaImg" placeholder="请选择">
<el-option v-for="item in iconOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="风向" prop="win">
<el-input v-model="addEditForm.win" :placeholder="$t('message.deviceManage.placeholder')"></el-input>
</el-form-item>
<el-form-item label="风力等级" prop="winSpeed">
<el-input v-model="addEditForm.winSpeed" type="number" :placeholder="$t('message.deviceManage.placeholder')"></el-input>
</el-form-item>
<div class="dialog-footer">
<el-button class="cancleBtn" @click="Popup.show = false" icon="el-icon-circle-close" size="medium"
>{{ $t('message.deviceManage.cancel') }}
</el-button>
<el-button type="primary" icon="el-icon-circle-check" @click="submit" size="medium"
>{{ $t('message.deviceManage.save') }}
</el-button>
</div>
</el-form>
</div>
</el-dialog>
</div>
</template>
<script>
import { getWeatherPage, weatherAdd, weatherEdit, weatherDelete } from '@/assets/js/api/weather'
export default {
mounted() {
this.getList()
},
computed: {
headers() {
return { Authorization: this.$store.state.userInfo.token }
}
},
data() {
return {
props: {
multiple: true
},
fileList: [], //
// xueleishachenwubingbaoyunyuyinqing
iconOptions: [
{ label: '晴', value: 'qing' },
{ label: '阴', value: 'yin' },
{ label: '雨', value: 'yu' },
{ label: '雪', value: 'xue' },
{ label: '雷', value: 'lei' },
{ label: '沙尘', value: 'shachen' },
{ label: '雾', value: 'wu' },
{ label: '冰雹', value: 'bingbao' },
{ label: '云', value: 'yun' }
],
addEditRules: {
city: [{ required: true, message: '请输入城市名称', trigger: 'blur' }],
date: [{ required: true, message: '请选择预报日期', trigger: 'change' }],
temDay: [{ required: true, message: '请输入白天温度', trigger: 'blur' }],
temNight: [{ required: true, message: '请输入白天温度', trigger: 'blur' }],
wea: [{ required: true, message: '请输入天气情况', trigger: 'blur' }],
weaImg: [{ required: true, message: '请选择天气图标', trigger: 'change' }],
win: [{ required: true, message: '请输入风向', trigger: 'blur' }],
winSpeed: [{ required: true, message: '请输入风力等级', trigger: 'blur' }]
},
addEditForm: {},
dataList: [],
Popup: {
type: 'add',
show: false
}
}
},
methods: {
handle(type, show) {
//
this.Popup = {
type: type,
show: show
}
},
add() {
this.handle('add', true)
},
edit(obj) {
this.addEditForm = JSON.parse(JSON.stringify(obj))
// this.$forceUpdate();
console.log('#编辑', obj)
this.handle('edit', true)
},
deleteDev(obj) {
console.log('删除', obj)
this.$confirm(this.$t('message.projectInfo.confirmTipText') + '?', this.$t('message.projectInfo.tip'), {
confirmButtonText: /* '确定', */ this.$t('message.energyManage.material.confirm'),
cancelButtonText: /* '取消', */ this.$t('message.energyManage.material.cancel'),
type: 'warning'
})
.then(() => {
weatherDelete({ id: obj.id }).then(result => {
if (result.success) {
this.$message.success(result.message)
this.getList()
}
})
})
.catch(() => {})
},
submit() {
let params = JSON.parse(JSON.stringify(this.addEditForm))
params.projectSn = this.$store.state.projectSn
this.$refs.addEditForm.validate(valid => {
if (valid) {
const api = this.Popup.type === 'add' ? weatherAdd : weatherEdit
api(params).then(result => {
if (result.success) {
this.$message.success(result.message)
this.getList()
}
})
this.Popup.show = false
} else {
return false
}
})
},
//
handleImportSuccess(res) {
if (res.code == 200) {
this.$message.success(res.message)
this.getList()
} else {
this.$message.error(res.message)
}
console.log('导入', res)
},
refresh() {
this.getList()
},
getList() {
getWeatherPage({
projectSn: this.$store.state.projectSn
}).then(res => {
if (res.success) {
console.log('records', res.result.records)
this.dataList = res.result.records
console.log('run', this.dataList)
}
})
},
close() {
this.addEditForm = {}
this.$nextTick(() => {
this.$refs.addEditForm.clearValidate()
})
}
}
}
</script>
<style lang="less" scoped>
.tables {
img {
cursor: pointer;
}
}
.tableBtns {
display: flex;
justify-content: center;
}
.yj-dialogFormBox {
width: 462px;
}
::v-deep .el-input__inner {
line-height: 1px !important;
}
</style>