微信咨询

微信咨询

13610*910*9

服务热线 7*24小时

电话咨询

明道云视图插件 显示指定字段表格 VUE3开发

iamdu2025-01-20 23:26:18 浏览: 2052
<template>
  <div>
    <table>
      <thead>
        <tr>
          <!-- 根据选择的字段动态生成表头,显示字段名称 -->
          <th v-for="field in selectedFields" :key="field">
            {{ getFieldName(field) }}
          </th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="(item, index) in recentRecords" :key="index">
          <!-- 根据选择的字段动态显示数据 -->
          <td v-for="field in selectedFields" :key="`${index}-${field}`">
            {{ item[field] }}
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script setup>
import { ref, onMounted } from 'vue';
import { api, env, config } from'mdye';

// 用于存储最近十条数据
const recentRecords = ref([]);
// 用于存储选择的显示字段
const selectedFields = ref(env.showFields || []);
// 用于存储字段ID到名称的映射
const fieldNameMap = ref({});

// 获取字段名称的函数
const getFieldName = (fieldId) => {
    return fieldNameMap.value[fieldId] || fieldId;
};

// 获取最近十条数据的函数
const fetchRecentRecords = async () => {
    try {
        const { worksheetId, viewId } = config;
        const res = await api.getFilterRows({
            worksheetId,
            viewId,
            pageIndex: 1,
            pageSize: 10,
            sortId: '创建时间字段的controlId', // 根据实际的创建时间字段ID修改
            isAsc: false // 降序排列,以获取最近的数据
        });
        recentRecords.value = res.data;
    } catch (error) {
        console.error('获取数据失败:', error);
    }
};

onMounted(() => {
    // 初始化字段ID到名称的映射
    config.controls.forEach(control => {
        fieldNameMap.value[control.controlId] = control.controlName;
    });
    fetchRecentRecords();
});
</script>

<style scoped>
table {
    width: 100%;
    border-collapse: collapse;
}
th, td {
    border: 1px solid #ccc;
    padding: 8px;
    text-align: left;
}
</style>

欢迎留下你的看法

共 0 条评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注