const data = [] const tooltip = [ 'x*y', (x, y) => ({ name: x, value: y }) ] const scale = [{ dataKey: 'x', min: 2 }, { dataKey: 'y', title: '时间', min: 1, max: 22 }] export default { name: 'MiniArea', data() { return { data, scale, tooltip, height: 100, TopicCase: [] } }, methods: { // 典型案例总分析 lysisTopicCase() { eightWeekTotalAnalysisTopicCase().then(res => { this.TopicCase = res.data.data console.log(this.TopicCase, "典型案例八周总分析"); }); }, }, mounted() { this.lysisTopicCase() } } </script>如何将TopicCase的数据赋值给const data = []
时间: 2024-03-10 09:43:39 浏览: 25
要将 `this.TopicCase` 的数据赋值给 `const data`,可以在 `lysisTopicCase()` 方法里面设置:
```javascript
methods: {
// 典型案例总分析
lysisTopicCase() {
eightWeekTotalAnalysisTopicCase().then(res => {
this.TopicCase = res.data.data;
// 将 this.TopicCase 的数据赋值给 const data
this.data = this.TopicCase.map(item => ({ x: item.time, y: item.score }));
});
},
},
```
在这个代码中,我们通过 `map()` 方法将 `this.TopicCase` 中的每个元素转换成一个对象,对象中的 `x` 属性对应 `time`,`y` 属性对应 `score`。然后将转换后的数组赋值给 `this.data`。这样,`const data` 就会被赋值为 `this.TopicCase` 转换后的数组了。
相关问题
我是想赋值给const data = []
哦,抱歉,我理解错了你的问题。要将 `this.TopicCase` 的数据赋值给 `const data`,需要将 `const data` 定义为一个函数或者一个可响应式的变量,然后在需要使用 `data` 的地方调用这个函数或者变量的值。
例如,我们可以将 `const data` 定义为一个函数:
```javascript
data() {
return {
data: () => [], // 定义一个空数组的函数
scale,
tooltip,
height: 100,
TopicCase: []
}
}
```
然后在 `lysisTopicCase()` 方法中,将 `this.TopicCase` 的数据赋值给 `data()` 函数的返回值:
```javascript
methods: {
async lysisTopicCase() {
const res = await eightWeekTotalAnalysisTopicCase();
const topicCase = res.data.data;
const data = topicCase.map(item => ({ x: item.time, y: item.score }));
this.TopicCase = topicCase;
this.data = () => data; // 将数据赋值给 data() 的返回值
}
}
```
这样,每次调用 `data()` 函数时,都会返回最新的数据。需要注意的是,因为 `data()` 函数的返回值是一个函数,所以在使用 `data()` 的地方需要将其当做函数调用,例如:
```html
<template>
<div>
<div id="chart" style="width: 600px; height: 400px;"></div>
</div>
</template>
<script>
import echarts from 'echarts';
export default {
data() {
return {
data: () => [],
scale: [{ dataKey: 'x', min: 2 }, { dataKey: 'y', title: '时间', min: 1, max: 22 }],
tooltip: ['x*y', (x, y) => ({ name: x, value: y })],
height: 100,
TopicCase: []
}
},
methods: {
async lysisTopicCase() {
const res = await eightWeekTotalAnalysisTopicCase();
const topicCase = res.data.data;
const data = topicCase.map(item => ({ x: item.time, y: item.score }));
this.TopicCase = topicCase;
this.data = () => data;
}
},
mounted() {
this.lysisTopicCase().then(() => {
const chart = echarts.init(document.getElementById('chart'));
chart.setOption({
xAxis: { type: 'time' },
yAxis: {},
series: [{ type: 'line', data: this.data() }] // 注意这里需要调用 this.data() 函数
});
});
}
}
</script>
```
希望这次回答能够解决你的问题。
<template> <el-form :inline="true" :model="formData" class="demo-form-inline"> <el-form-item label="品牌 "> <el-select v-model="formData.name" multiple placeholder="请选择窗口" style="width: 240px"> <el-option v-for="item in options" :key="item.id" :label="item.winname" :value="item.id" /> </el-select> </el-form-item> <el-form-item> <el-date-picker style="width: 260px;" v-model="formData.dateRange" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD" /> </el-form-item> <el-form-item> <el-button type="primary" @click="onSubmit">查询</el-button> </el-form-item> </el-form> <div id="myChart" :style="{ height: '300px' }"></div> </template> <script setup lang="ts"> import { onMounted, ref, reactive } from 'vue' import * as echarts from 'echarts' import { lendlistApi,windataApi,typeinfoApi} from '@/api/index' import * as dayjs from 'dayjs' import { lowerCase } from 'lodash'; import { type } from 'os'; const formData = reactive({ winids: [], name:'', dateRange: [dayjs().add(-10, 'day').format("YYYY-MM-DD"), dayjs().format("YYYY-MM-DD")] }) const options = ref([]) onMounted(() => { callwindataApi() calltypeinfoApi() }) const calltypeinfoApi = () => { typeinfoApi.select.call().then((res: any) => { console.log(res); options.value = res }) } const onSubmit = () => { console.log(formData.winids.length); callwindataApi() } const callwindataApi = () => { let params = {} if (formData.length != 0) { params.type = formData.type } windataApi.select.call({type :formData.type} ).then((data: any) => { console.log(data) initChart(data) }) } const initChart = (data: any) => { let days = new Set(data.map((item: any) => item.day)) let types = new Set(data.map((item: any) => item.type)) let myChart = echarts.init(document.getElementById("myChart")); console.log(data); myChart.clear() let option = { title: { text: '借用统计' }, tooltip: {}, legend: { data: [...types] }, xAxis: { data: [...days] }, yAxis: {}, series: [] }; for (let type of types) { option.series.push({ name: type, type: 'bar', data: data.filter(p => p.type == type).map(item => item.count) }) } myChart.setOption(option
这是一个使用 Vue.js 和 Echarts 进行数据可视化的示例代码,其中通过调用 API 获取数据,并根据数据绘制柱状图。其中,通过 reactive 和 ref 创建了响应式数据,使用 onMounted 生命周期钩子函数在组件挂载时调用 API 获取数据,使用 initChart 函数将数据绘制成图表。同时,该代码还包括了表单提交和数据筛选等交互功能。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)