// vue页面的操作
// vue页面中引入组件;组件放入components文件夹中
import pension from "@/components/CarWenShidu/echart.vue";
import pensionshidu from "@/components/CarWenShidu/echartshidu.vue";
// 向组件中传值 handleMethod 通过datecode进行赋值
<div><el-tag type="primary">车厢温度变化曲线</el-tag><pension :handleMethod ="datecode"/></div>
// 引入js接口api
import { listcode, getWenshidu, delWenshidu, addWenshidu, updateWenshidu } from "@/api/system/wenshidu";
// vue页面中调用接口传值
function getList() {
loading.value = true;
listcode(queryParams.value).then(response => {
wenshiduList.value = response.rows;
datecode.value = response.data
console.log(datecode.value)
console.log(response.data)
total.value = response.total;
loading.value = false;
});
//组件数据的接收
let wenducode = defineProps(['handleMethod'])
const showH1= false;
// 获取使用传入的数值
<h1 v-if="showH1">{{ wenducode }}</h1>
//数据的赋值
Data1.value = wenducode.handleMethod.wendu01;
Data2.value = wenducode.handleMethod.wendu02;
Data3.value = wenducode.handleMethod.wendu03;
//完整代码示例
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="auto">
<el-form-item label="车辆信息编码" prop="carCodeNumber">
<el-input
v-model="queryParams.carCodeNumber"
placeholder="请输入车辆信息编码"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="车厢温度记录时间" prop="carBoxWenduTime">
<el-date-picker clearable
v-model="queryParams.carBoxWenduTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择车厢温度记录时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- 添加或修改车厢信息温度,湿度对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="wenshiduRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="车辆信息编码" prop="carCodeNumber">
<el-input v-model="form.carCodeNumber" placeholder="请输入车辆信息编码" />
</el-form-item>
<el-form-item label="车厢温度记录时间" prop="carBoxWenduTime">
<el-date-picker clearable
v-model="form.carBoxWenduTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择车厢温度记录时间">
</el-date-picker>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
<div class="dialog-footer">
<div ref = "chart" style="width: 1000px; height: 400px;"></div>
</div>
</template>
</el-dialog>
<div><el-tag type="primary">车厢温度变化曲线</el-tag><pension :handleMethod="datecode"/></div>
<div><el-tag type="primary">车厢湿度变化曲线</el-tag><pensionshidu/></div>
</div>
</template>
<script setup name="Wenshidu">
import { listcode, getWenshidu, delWenshidu, addWenshidu, updateWenshidu } from "@/api/system/wenshidu";
import pension from "@/components/CarWenShidu/echart.vue";
import pensionshidu from "@/components/CarWenShidu/echartshidu.vue";
const { proxy } = getCurrentInstance();
let datecode = ref() ;//定义变量传值给组件
const wenshiduList = ref([123]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
carCodeNumber: null,
carBoxWenduTime: null,
carBoxWendu1: null,
carBoxWendu2: null,
carBoxWendu3: null,
carBoxWendu4: null,
carBoxWendu5: null,
carBoxWendu6: null,
carBoxWendu7: null,
carBoxWendu8: null,
carBoxShidu1: null,
carBoxShidu2: null,
carBoxShidu3: null,
carBoxShidu4: null,
carBoxShidu5: null,
carBoxShidu6: null,
carBoxShidu7: null,
carBoxShidu8: null,
companyId: null,
deptId: null,
createUserId: null,
updateUserId: null,
},
rules: {
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询车厢信息温度,湿度列表 */
function getList() {
loading.value = true;
listcode(queryParams.value).then(response => {
wenshiduList.value = response.rows;
datecode.value = response.data
total.value = response.total;
loading.value = false;
});
}
// 取消按钮
function cancel() {
open.value = false;
reset();
}
// 表单重置
function reset() {
form.value = {
carCodeNumber: null,
carBoxWenduTime: null,
carBoxWendu1: null,
carBoxWendu2: null,
carBoxWendu3: null,
carBoxWendu4: null,
carBoxWendu5: null,
carBoxWendu6: null,
carBoxWendu7: null,
carBoxWendu8: null,
carBoxShidu1: null,
carBoxShidu2: null,
carBoxShidu3: null,
carBoxShidu4: null,
carBoxShidu5: null,
carBoxShidu6: null,
carBoxShidu7: null,
carBoxShidu8: null,
objId: null,
companyId: null,
deptId: null,
createUserId: null,
createTime: null,
updateUserId: null,
updateTime: null,
delFlag: null
};
proxy.resetForm("wenshiduRef");
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
// 多选框选中数据
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.objId);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = "添加车厢信息温度,湿度";
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const _objId = row.objId || ids.value
getWenshidu(_objId).then(response => {
form.value = response.data;
open.value = true;
title.value = "修改车厢信息温度,湿度";
});
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["wenshiduRef"].validate(valid => {
if (valid) {
if (form.value.objId != null) {
updateWenshidu(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
addWenshidu(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
});
}
/** 删除按钮操作 */
function handleDelete(row) {
const _objIds = row.objId || ids.value;
proxy.$modal.confirm('是否确认删除车厢信息温度,湿度编号为"' + _objIds + '"的数据项?').then(function() {
return delWenshidu(_objIds);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
}
/** 导出按钮操作 */
function handleExport() {
proxy.download('mqtts/wenshidu/export', {
...queryParams.value
}, `wenshidu_${new Date().getTime()}.xlsx`)
}
getList();
</script>
//组件代码
<template>
<div class="dialog-footer">
<div ref="chart" style="width: 1000px; height: 400px;"> </div>
<h1 v-if="showH1">{{ wenducode }}</h1>
</div>
</template>
<script setup>
import { listcode } from "@/api/system/wenshidu";
import { ref, onMounted, reactive, watchEffect } from "vue";
import * as echarts from "echarts";
let constres = reactive([]);
const chart = ref();
const axisData = ['1 号车厢温度', '2 号车厢温度', '3 号车厢温度', '4 号车厢温度', '5 号车厢温度', '6 号车厢温度', '7 号车厢温度', '8 号车厢温度'];
//let xData = ['00:00', '01:15', '02:30', '03:45', '05:00', '06:15', '07:30', '08:45', '10:00', '11:15', '12:30', '13:45', '15:00', '16:15', '17:30', '18:45', '20:00', '21:15', '22:30', '23:45'];
let Data1 = ref([]);
let Data2 = ref([]);
let Data3 = ref([]);
let Data4 = ref([]);
let Data5 = ref([]);
let Data6 = ref([]);
let Data7 = ref([]);
let Data8 = ref([]);
let xData = ref([]);
let echart=null
const showH1= false;
// 获取vue文件传入组件的值
let wenducode = defineProps(['handleMethod'])
const lineChart = () => {}
// 基于 dom,初始化 echarts 实例
// 绘制图表
// watchEffect(() => {
listcode().then(response => {
Data1.value = wenducode.handleMethod.wendu01;
Data2.value = wenducode.handleMethod.wendu02;
Data3.value = wenducode.handleMethod.wendu03;
Data4.value = wenducode.handleMethod.wendu04;
Data5.value = wenducode.handleMethod.wendu05;
Data6.value = wenducode.handleMethod.wendu06;
Data7.value = wenducode.handleMethod.wendu07;
Data8.value = wenducode.handleMethod.wendu08;
xData.value = wenducode.handleMethod.xData;
// 添加在这里
console.log(Data1.value);
// console.log(response);
echart.setOption({
// title: {
// text: '车厢温度变化',
// size:'1px'
// },
tooltip: {
trigger: 'axis'
},
legend: {
data: axisData
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: xData.value
},
yAxis: {
type: 'value',
axisLabel: {
formatter: '{value} °C'
}
},
series: [
{
name: '1 号车厢温度',
type: 'line',
smooth: true, // 开启平滑过度
emphasis: { // 高亮选择
focus: "serice"
},
data: Data1.value
},
{
name: '2 号车厢温度',
type: 'line',
smooth: true, // 开启平滑过度
emphasis: { // 高亮选择
focus: "serice"
},
data: Data2.value
},
{
name: '3 号车厢温度',
type: 'line',
smooth: true, // 开启平滑过度
emphasis: { // 高亮选择
focus: "serice"
},
data: Data3.value
},
{
name: '4 号车厢温度',
type: 'line',
smooth: true, // 开启平滑过度
emphasis: { // 高亮选择
focus: "serice"
},
data: Data4.value
},
{
name: '5 号车厢温度',
type: 'line',
smooth: true, // 开启平滑过度
emphasis: { // 高亮选择
focus: "serice"
},
data: Data5.value
},
{
name: '6 号车厢温度',
type: 'line',
smooth: true, // 开启平滑过度
emphasis: { // 高亮选择
focus: "serice"
},
data: Data6.value
},
{
name: '7 号车厢温度',
type: 'line',
smooth: true, // 开启平滑过度
emphasis: { // 高亮选择
focus: "serice"
},
data: Data7.value
},
{
name: '8 号车厢温度',
type: 'line',
smooth: true, // 开启平滑过度
emphasis: { // 高亮选择
focus: "serice"
},
data: Data8.value
}
]
},true);
});
onMounted(()=>{
echart = echarts.init(chart.value);
lineChart()
})
window.onresize = function () {
echart.resize();
};
// listcode();
// Data1 = reactive([1,5,6])
</script>
<style scoped></styl