经营简报及考核360表格

文章目录

  • 经营简报
    • 效果图
    • 代码
      • tableObjectSpanMethod.js
  • 考核360委员会
    • 效果图
  • 经营简报
    • 效果图
    • 不需要合并单元格且有汇总表头的

懒得封装了,所以整体没有封装

经营简报

效果图

在这里插入图片描述

代码

<template>
  <el-table
    ref="tableRef"
    :data="tableData.length>0?tableData.slice(1,tableData.length):[]"
    tooltip-effect="dark"
    :span-method="objectSpanMethod"
    :header-cell-style="handerMethod"
    style="width: 100%; margin-top: 16px"
    :row-class-name="tableRowClassName"
    :cell-class-name="columnStyle"
  >
    <template v-for="item in tableHeader">
      <el-table-column :label="item.label" :prop="item.label" :key="item.id" v-if="item.children && item.children.length">
        <template v-for="i in item.children">
          <el-table-column
            :key="i.id"
            :label="i.label"
            :prop="i.prop?i.prop:'/'"
            align="center"
            label-class-name="orange"
          >
          </el-table-column>
        </template>
      </el-table-column>
      <el-table-column
        v-else
        :key="item.id"
        :label="item.label"
        :prop="item.prop?item.prop:'/'"
        align="center"
      >
      </el-table-column>
    </template>
  </el-table>
</template>
<script>
//引入封装的js
import { dataMethod } from "@/components/element/tableObjectSpanMethod.js";
export default {
  data() {
    return {
      tableData: [],
      spanObj: {},
      tableHeader:[
        {
            label:'执行日期',
            id:1,
            prop:'data',
            children:[
                {
                id:11,
                label:'总分1',
                prop:'data'
                },
                 {
                id:12,
                label:'总分',
                prop:'time'
                }
            ]
        },
        {
            label:'指标',
            id:2,
            prop:'time',
            children:[
                {
                id:12,
                label:'总分',
                prop:'time'
                }
            ]
        },
        {
            label:'任务名称',
            id:3,
            prop:'taskName',
            children:[
                {
                id:13,
                label:'/',
                prop:'taskName'
                }
            ]
        },
        {
            label:'任务进度状态',
            id:4,
            prop:'progressStatus',
            children:[
                {
                id:14,
                label:'/',
                prop:'progressStatus'
                }
            ]
        },
        {
            label:'任务结果状态',
            id:5,
            prop:'resultStatue',
            children:[
                {
                id:15,
                label:'/',
                prop:'resultStatue'
                }
            ]
        },
        {
            label:'操作',
            id:6,
            prop:'/',
             children:[
                {
                id:15,
                label:'/',
                prop:'/'
                }
            ]
        },
      ]
    };
  },
  created() {
    (this.tableData = [
      {
        data: "总分1",
        time: "总分2",
        taskName: "任务20210903",
        progressStatus: "0",
        resultStatue: "0",
      },
      {
        data: "收入贡献(万元)",
        time: "收入贡献(万元)",
        taskName: "任务",
        progressStatus: "0",
        resultStatue: "0",
        teachingAffairsProjectId:1
      },
      {
        data: "2022-01-07",
        time: "15:56:08",
        taskName: "任务20210903",
        progressStatus: "1",
        resultStatue: "0",
      },
      {
        data: "2022-01-07",
        time: "15:56:08",
        taskName: "任务20210903",
        progressStatus: "2",
        resultStatue: "1",
      },
      {
        data: "2022-01-07",
        time: "15:56:08",
        taskName: "任务20210903",
        progressStatus: "3",
        resultStatue: "1",
      },
      {
        data: "2022-01-08",
        time: "15:56:08",
        taskName: "任务20210903",
        progressStatus: "4",
        resultStatue: "0",
      },
      {
        data: "2022-01-09",
        time: "15:56:08",
        taskName: "任务20210903",
        progressStatus: "5",
        resultStatue: "1",
      },
      {
        data: "2022-01-09",
        time: "15:56:08",
        taskName: "任务20210903",
        progressStatus: "5",
        resultStatue: "1",
      },
      {
        data: "2022-01-09",
        time: "15:56:08",
        taskName: "任务20210903",
        progressStatus: "5",
        resultStatue: "1",
      },
      {
        data: "2022-11-09",
        time: "15:56:08",
        taskName: "任务20210903",
        progressStatus: "5",
        resultStatue: "1",
      },
    ]),
      //动态渲染 请渲染数剧结束后在执行此方法
      (this.spanObj = dataMethod(this.tableData));
  },
  methods: {
    /**表格合并单元格 */
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      // 判断哪一列 如果需要处理多了 使用 || 进行处理即可
      let addArr = ["总分1"];
      let delArr = ["总分"];
       if (row.teachingAffairsProjectId&&rowIndex==0) {
        // label匹配则开始合并
        if (addArr.includes(column.label)) {
          return {
            // 占位(合并单元格)
            rowspan: 1, // 行
            colspan: 2, // 列
          };
        } 
        else if (delArr.includes(column.label)) {
          return [0, 0]; // 清除单元格(一定要做)
        }
      }
      if (columnIndex === 0&&rowIndex!==0) {
        const _row = this.flitterData(this.tableData.slice(1,this.tableData.length)).one[rowIndex];
        const _col = _row > 0 ? 1 : 0;
        return {
          rowspan: _row,
          colspan: _col,
        };
      }
    },
    //合并单位表头
    handerMethod ({ row, column, rowIndex, columnIndex }) {
    //   if (row[0].level == 1) {
        //这里有个非常坑的bug 必须是row[0]=0 row[1]=2才会生效
        row[0].colSpan = 0
        // row[2].colSpan = 0
        row[1].colSpan = 2
        if (columnIndex === 0) {
          return { display: 'none' }
        }
        // if (columnIndex === 3) {
        //   return { display: 'none' }
        // }
    },
    /**合并表格的第一列,处理表格数据 */
    flitterData(arr) {
      let spanOneArr = [];
      let concatOne = 0;
      arr.forEach((item, index) => {
          if (index === 0) {
              spanOneArr.push(1);
        } else {
          //注意这里的data是表格绑定的字段,根据自己的需求来改
          if (item.data === arr[index - 1].data) {
            //第一列需合并相同内容的判断条件
            spanOneArr[concatOne] += 1;
            spanOneArr.push(0);
          } else {
            spanOneArr.push(1);
            concatOne = index;
          }
        }
      });
      return {
        one: spanOneArr,
      };
    },
    // 表格斑马纹
    tableRowClassName({ row, rowIndex }) {
        // if(rowIndex===0){
        //     return "orange"
        // }
      if (rowIndex % 2 === 0) {
        return "marginL";
      } else {
        return "blueRow marginL";
      }
    },
    columnStyle({ row, column, rowIndex, columnIndex }) {
      if (columnIndex == 0 &&rowIndex!=0) {
        return "firstColumn";
      }
    },
  },
};
</script>
 <style >
/* ::v-deep { */
.el-table {
  /* background-color: #000; */
}
.el-table td.el-table__cell,
.el-table th.el-table__cell.is-leaf {
  border: 1px solid #ebeef5;
}
.blueRow {
  background: #f6f9ff !important;
}
.orange {
  background: rgb(252, 216, 149) !important;
}
.orange>td {
  background:  rgb(252, 216, 149) !important;
}
.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {

  background-color: #E7EFFF !important;
  color: #292929 !important;
  font-weight: 600 !important;
}
.firstColumn{
    background: #f6f9ff !important;
    border:none;
}
.el-table--enable-row-hover .el-table__body tr:hover>.firstColumn.el-table__cell{
     background: #f6f9ff !important;
      color: #606266 !important;
  font-weight: 500 !important;
      border: 1px solid #ebeef5;
}
/* } */
</style>

tableObjectSpanMethod.js


```// 表格单元格合并多列
let [spanObj, pos] = [{}, {}];
//spanObj 存储每个key 对应的合并值
//pos  存储的是 key合并值得索引 大概吧
const dataMethod = (data, isH = []) => {
  //循环数据
  for (let i in data) {
    let dataI = data[i];
    //循环数据内对象,查看有多少key
    for (let j in dataI) {
      //如果只有一条数据时默认为1即可,无需合并
      if (~~i === 0) {
        spanObj[j] = [1];
        pos[j] = 0;
      } else {
        let [e, k] = [dataI, data[i - 1]];
        //判断上一级别是否存在 ,
        //存在当前的key是否和上级别的key是否一样
        //判断是否有数组规定只允许那几列需要合并单元格的
        if (k && e?.[j] === k?.[j] && (!isH?.length || isH?.includes(j))) {
          //如果上一级和当前一级相当,数组就加1 数组后面就添加一个0
          spanObj[j][pos[j]] += 1;
          spanObj?.[j]?.push(0);
        } else {
          spanObj?.[j]?.push(1);
          pos[j] = i;
        }
        console.log(e, k);
      }
    }
  }
  return spanObj;
};

export { dataMethod };

考核360委员会

以下以指标明细表格作为参考,整体区别不大,我只合并单元格及第一列值相同自动合并的内容,有其他修改需要自己处理一下

效果图

在这里插入图片描述

<template>
  <el-table
    ref="tableRef"
    :data="tableData"
    tooltip-effect="dark"
    :span-method="objectSpanMethod"
    :header-cell-style="handerMethod"
    style="width: 100%; margin-top: 16px"
    :row-class-name="tableRowClassName"
    :cell-class-name="columnStyle"
  >
    <template v-for="item in tableHeader">
      <el-table-column :label="item.label" :prop="item.label" :key="item.id" v-if="item.children && item.children.length">
        <template v-for="i in item.children">
          <el-table-column
            :key="i.id"
            :label="i.label"
            :prop="i.prop?i.prop:'/'"
            align="center"
          >
          </el-table-column>
        </template>
      </el-table-column>
      <el-table-column
        v-else
        :key="item.id"
        :label="item.label"
        :prop="item.prop?item.prop:'/'"
        align="center"
      >
      </el-table-column>
    </template>
  </el-table>
</template>
<script>
//引入封装的js
import { dataMethod } from "@/components/element/tableObjectSpanMethod.js";
export default {
  data() {
    return {
      tableData: [],
      spanObj: {},
      tableHeader:[
        {
            label:'项目',
            id:1,
            prop:'data',
        },
        {
            label:'项目',
            id:122,
            prop:'data2',
        },
        {
            label:'收入指标',
            id:2,
            prop:'time',
            children:[
                {
                id:12,
                label:'全收入-净(万元)',
                prop:'time'
                },
                 {
                id:121,
                label:'地区收入份额',
                prop:'taskName'
                }
            ]
        },
        {
            label:'业务指标',
            id:3,
            prop:'taskName',
            children:[
                {
                id:13,
                label:'有效地区股基份额',
                prop:'taskName'
                },
                  {
                id:131,
                label:'有效地区股基份额',
                prop:'progressStatus'
                },
                  {
                id:132,
                label:'金融产品销售规模(亿元)',
                prop:'taskName'
                },
                  {
                id:133,
                label:'金融产品年均保有净值规模(亿元)',
                prop:'time'
                },
                  {
                id:134,
                label:'日均两融余额(亿元)',
                prop:'taskName'
                },
            ]
        },
        {
            label:'任务进度状态',
            id:4,
            prop:'progressStatus',
            children:[
                {
                id:14,
                label:'/',
                prop:'progressStatus'
                }
            ]
        },
        {
            label:'任务结果状态',
            id:5,
            prop:'resultStatue',
            children:[
                {
                id:15,
                label:'/',
                prop:'resultStatue'
                }
            ]
        },
        {
            label:'操作',
            id:6,
            prop:'/',
             children:[
                {
                id:65,
                label:'/',
                prop:'resultStatue'
                }
            ]
        },
        {
            label:'操作',
            id:7,
            prop:'/',
             children:[
                {
                id:75,
                label:'/',
                prop:'resultStatue'
                }
            ]
        },
        {
            label:'操作',
            id:8,
            prop:'/',
             children:[
                {
                id:85,
                label:'/',
                prop:'resultStatue'
                }
            ]
        },
      ]
    };
  },
  created() {
    (this.tableData = [
     
      {
        data: "2022-01-07",
        data2: "33",
        time: "15:56:08",
        taskName: "任务20210903",
        progressStatus: "1",
        resultStatue: "0",
      },
      {
        data: "2022-01-07",
        time: "15:56:08",
        data2: "44",
        taskName: "任务20210903",
        progressStatus: "2",
        resultStatue: "1",
      },
      {
        data: "2022-01-07",
        time: "15:56:08",
        data2: "55",
        taskName: "任务20210903",
        progressStatus: "3",
        resultStatue: "1",
      },
      {
        data: "2022-01-08",
        time: "15:56:08",
        data2: "66",
        taskName: "任务20210903",
        progressStatus: "4",
        resultStatue: "0",
      },
      {
        data: "2022-01-09",
        time: "15:56:08",
        taskName: "任务20210903",
        progressStatus: "5",
        data2: "77",
        resultStatue: "1",
      },
      {
        data: "2022-01-09",
        time: "15:56:08",
        data2: "88",
        taskName: "任务20210903",
        progressStatus: "5",
        resultStatue: "1",
      },
      {
        data: "2022-01-09",
        time: "15:56:08",
        data2: "99",
        taskName: "任务20210903",
        progressStatus: "5",
        resultStatue: "1",
      },
      {
        data: "2022-11-09",
        time: "15:56:08",
        data2: "10",
        taskName: "任务20210903",
        progressStatus: "5",
        resultStatue: "1",
      },
    ]),
      //动态渲染 请渲染数剧结束后在执行此方法
      this.spanObj = dataMethod(this.tableData);
  },
  methods: {
    /**表格合并单元格 */
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      if (columnIndex === 0) {
        const _row = this.flitterData(this.tableData).one[rowIndex];
        const _col = _row > 0 ? 1 : 0;
        return {
          rowspan: _row,
          colspan: _col,
        };
      }
    },
    //合并单位表头,第一列和第二列第一行的表头,如不需要合并把这个方法注释即可
    handerMethod ({ row, column, rowIndex, columnIndex }) {
      if (row[0].level == 1) {
        row[0].colSpan = 0
        row[1].colSpan = 2
        if (columnIndex === 0) {
          return { display: 'none' }
        }
        }
    },
    /**合并表格的第一列,处理表格数据 */
    flitterData(arr) {
      let spanOneArr = [];
      let concatOne = 0;
      arr.forEach((item, index) => {
          if (index === 0) {
              spanOneArr.push(1);
        } else {
          //注意这里的data是表格绑定的字段,根据自己的需求来改
          if (item.data === arr[index - 1].data) {
            //第一列需合并相同内容的判断条件
            spanOneArr[concatOne] += 1;
            spanOneArr.push(0);
          } else {
            spanOneArr.push(1);
            concatOne = index;
          }
        }
      });
      return {
        one: spanOneArr,
      };
    },
    // 表格斑马纹
    tableRowClassName({ row, rowIndex }) {
      if (rowIndex % 2 === 0) {
        return "marginL";
      } else {
        return "blueRow marginL";
      }
    },
    columnStyle({ row, column, rowIndex, columnIndex }) {
      if (columnIndex == 0 ) {
        return "firstColumn";
      }
    },
  },
};
</script>
 <style >
/* ::v-deep { */
.el-table {
  /* background-color: #000; */
}
.el-table td.el-table__cell,
.el-table th.el-table__cell.is-leaf {
  border: 1px solid #ebeef5;
}
.blueRow {
  background: #f6f9ff !important;
}
.orange {
  background: rgb(252, 216, 149) !important;
}
.orange>td {
  background:  rgb(252, 216, 149) !important;
}
.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {

  background-color: #E7EFFF !important;
  color: #292929 !important;
  font-weight: 600 !important;
}
.firstColumn{
    background: #f6f9ff !important;
    border:none;
}
.el-table--enable-row-hover .el-table__body tr:hover>.firstColumn.el-table__cell{
     background: #f6f9ff !important;
      color: #606266 !important;
  font-weight: 500 !important;
      border: 1px solid #ebeef5;
}
.el-table thead.is-group th.el-table__cell{
    text-align: center;
}
/* } */
</style>

经营简报

效果图

在这里插入图片描述

不需要合并单元格且有汇总表头的

<template>
  <el-table
    ref="tableRef"
    :data="tableData"
    tooltip-effect="dark"
    :span-method="objectSpanMethod"
    :header-cell-style="handerMethod"
    style="width: 100%; margin-top: 16px"
    :row-class-name="tableRowClassName"
    :cell-class-name="columnStyle"
  >
    <template v-for="item in tableHeader">
      <el-table-column :label="item.label" :prop="item.label" :key="item.id" v-if="item.children && item.children.length">
        <template v-for="i in item.children">
          <el-table-column
            :key="i.id"
            :label="i.label"
            :prop="i.prop?i.prop:'/'"
            align="center"
             label-class-name="orange"
          >
          </el-table-column>
        </template>
      </el-table-column>
      <el-table-column
        v-else
        :key="item.id"
        :label="item.label"
        :prop="item.prop?item.prop:'/'"
        align="center"
      >
      </el-table-column>
    </template>
  </el-table>
</template>
<script>
//引入封装的js
import { dataMethod } from "@/components/element/tableObjectSpanMethod.js";
export default {
  data() {
    return {
      tableData: [],
      spanObj: {},
      tableHeader:[
        {
            label:'项目',
            id:1,
            prop:'data',
             children:[
                {
                id:111,
                label:'全净',
                prop:'data'
                },
            ]
        },
        {
            label:'项目',
            id:122,
            prop:'data2',
             children:[
                {
                id:1222,
                label:'全收入',
                prop:'data2'
                },
            ]
        },
        {
            label:'收入指标',
            id:2,
            prop:'time',
            children:[
                {
                id:12,
                label:'全收入-净',
                prop:'time'
                },
            ]
        },
        {
            label:'业务指标',
            id:3,
            prop:'taskName',
            children:[
                {
                id:13,
                label:'有效地区',
                prop:'taskName'
                },
            ]
        },
        {
            label:'任务进度状态',
            id:4,
            prop:'progressStatus',
            children:[
                {
                id:14,
                label:'/',
                prop:'progressStatus'
                }
            ]
        },
        {
            label:'任务结果状态',
            id:5,
            prop:'resultStatue',
            children:[
                {
                id:15,
                label:'/',
                prop:'resultStatue'
                }
            ]
        },
        {
            label:'操作',
            id:6,
            prop:'/',
             children:[
                {
                id:65,
                label:'/',
                prop:'resultStatue'
                }
            ]
        },
        {
            label:'操作',
            id:7,
            prop:'/',
             children:[
                {
                id:75,
                label:'/',
                prop:'resultStatue'
                }
            ]
        },
        {
            label:'操作',
            id:8,
            prop:'/',
             children:[
                {
                id:85,
                label:'/',
                prop:'resultStatue'
                }
            ]
        },
      ]
    };
  },
  created() {
    (this.tableData = [
     
      {
        data: "2022-01-07",
        time: "15:56:08",
        data2: "55",
        taskName: "任务2021",
        progressStatus: "3",
        resultStatue: "1",
      },
      {
        data: "2022-01-08",
        time: "15:56:08",
        data2: "66",
        taskName: "任务2",
        progressStatus: "4",
        resultStatue: "0",
      },
      {
        data: "2022-01-09",
        time: "15:56:08",
        taskName: "任务202",
        progressStatus: "5",
        data2: "77",
        resultStatue: "1",
      },
      {
        data: "2022-01-09",
        time: "15:56:08",
        data2: "88",
        taskName: "任务903",
        progressStatus: "5",
        resultStatue: "1",
      },
      {
        data: "2022-01-09",
        time: "15:56:08",
        data2: "99",
        taskName: "任务3",
        progressStatus: "5",
        resultStatue: "1",
      },
      {
        data: "2022-11-09",
        time: "15:56:08",
        data2: "10",
        taskName: "任务03",
        progressStatus: "5",
        resultStatue: "1",
      },
    ]),
      //动态渲染 请渲染数剧结束后在执行此方法
      this.spanObj = dataMethod(this.tableData);
  },
  methods: {
    /**表格合并单元格 */
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      if (columnIndex === 0) {
        const _row = this.flitterData(this.tableData).one[rowIndex];
        const _col = _row > 0 ? 1 : 0;
        return {
          rowspan: _row,
          colspan: _col,
        };
      }
    },
    //合并单位表头
    handerMethod ({ row, column, rowIndex, columnIndex }) {
    //   if (row[0].level == 1) {
    //     row[0].colSpan = 0
    //     row[1].colSpan = 2
    //     if (columnIndex === 0) {
    //       return { display: 'none' }
    //     }
    //     }
    },
    /**合并表格的第一列,处理表格数据 */
    flitterData(arr) {
      let spanOneArr = [];
      let concatOne = 0;
      arr.forEach((item, index) => {
          if (index === 0) {
              spanOneArr.push(1);
        } else {
          //注意这里的data是表格绑定的字段,根据自己的需求来改
          if (item.data === arr[index - 1].data) {
            //第一列需合并相同内容的判断条件
            spanOneArr[concatOne] += 1;
            spanOneArr.push(0);
          } else {
            spanOneArr.push(1);
            concatOne = index;
          }
        }
      });
      return {
        one: spanOneArr,
      };
    },
    // 表格斑马纹
    tableRowClassName({ row, rowIndex }) {
      if (rowIndex % 2 === 0) {
        return "marginL";
      } else {
        return "blueRow marginL";
      }
    },
    columnStyle({ row, column, rowIndex, columnIndex }) {
      if (columnIndex == 0 ) {
        return "firstColumn";
      }
    },
  },
};
</script>
 <style >
/* ::v-deep { */
.el-table {
  /* background-color: #000; */
}
.el-table td.el-table__cell,
.el-table th.el-table__cell.is-leaf {
  border: 1px solid #ebeef5;
}
.blueRow {
  background: #f6f9ff !important;
}
.orange {
  background: rgb(252, 216, 149) !important;
}
.orange>td {
  background:  rgb(252, 216, 149) !important;
}
.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {

  background-color: #E7EFFF !important;
  color: #292929 !important;
  font-weight: 600 !important;
}
.firstColumn{
    background: #f6f9ff !important;
    border:none;
}
.el-table--enable-row-hover .el-table__body tr:hover>.firstColumn.el-table__cell{
     background: #f6f9ff !important;
      color: #606266 !important;
  font-weight: 500 !important;
      border: 1px solid #ebeef5;
}
.el-table thead.is-group th.el-table__cell{
    text-align: center;
}
/* } */
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/47089.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【团队协作开发】将Gitee项目导入到本地IDEA中出现根目录不完整的问题解决(已解决)

前言&#xff1a;在团队协作开发过程中&#xff0c;通常我们的Gitee完整项目中会包含很多内容&#xff1a;后端代码、前端代码、项目结构图、项目文档等一系列资产。 将Gitee项目导入到本地IDEA中&#xff0c;通常会出现根目录不完整的问题。这是因为项目里面包含了后端代码、前…

DevOps(三)

CD(二) 1. 整体流程2. 环境准备1. jenkins安装2. 编译安装git3. docker安装4. docker-compose安装5. sonarqube安装6. harbor安装7. gitlab私服8. maven安装9. Nexus部署10. K8s部署3. 安装java及编写代码3.1 安装java3.2 安装IntelliJ IDEA3.3 安装tomcat3.4 安装maven3.5 c…

访问:http://localhost:8070/actuator/bus-refresh 问题

1、请求发送不出去 原因&#xff1a; 自己 config-server端 application.yml 配置的端口号是8888&#xff0c;访问server修改为配置的端口号 2、请求报错405 几个解决办法&#xff1a; 1、版本问题变为busrefresh 2、bus-refresh加单引号或双引号尝试 3、加配置尝试&#xff1a…

【MySQL】复合查询

目录 一、基本查询 1、查询工资高于500或岗位为MANAGER的雇员&#xff0c;同时还要满足他们的姓名首字母为大写的J 2、按照部门号升序而雇员的工资降序排序 3、使用年薪进行降序排序 4、显示工资最高的员工的名字和工作岗位 5、显示工资高于平均工资的员工信息 6、显示每…

【Lua学习笔记】Lua进阶——Table,迭代器

文章目录 官方唯一指定数据结构--tabletable的一万种用法字典和数组 迭代器ipairs()pairs() 回到Table 在【Lua学习笔记】Lua入门中我们讲到了Lua的一些入门知识点&#xff0c;本文将补充Lua的一些进阶知识 官方唯一指定数据结构–table 在上篇文章的最后&#xff0c;我们指出…

【飞书】飞书导出md文档 | 飞书markdown文档导出 | 解决飞书只能导出pdf word

一、飞书导出markdown github地址&#xff1a;https://github.com/Wsine/feishu2md 这是一个下载飞书文档为 Markdown 文件的工具&#xff0c;使用 Go 语言实现。 请看这里&#xff1a;招募有需求和有兴趣的开发者&#xff0c;共同探讨开发维护&#xff0c;有兴趣请联系。 二、…

Hive视图

hive的视图 简介 hive的视图简单理解为逻辑上的表hive只支持逻辑视图&#xff0c;不支持物化视图视图存在的意义 对数据进行局部暴露&#xff08;涉及隐私的数据不暴露&#xff09;简化复杂查询 创建视图&#xff1a; create view if not exists v_1 as select uid,movie f…

Esp32_Arduino接入腾讯云笔记

ESP32是一款由乐鑫科技&#xff08;Espressif Systems&#xff09;推出的双核、低功耗、集成Wi-Fi和蓝牙的单芯片微控制器。它采用了Tensilica Xtensa LX6高性能处理器&#xff0c;具有大量的GPIO引脚、模数转换器、SPI、I2S、UART、PWM、I2C和SD卡接口等功能&#xff0c;可以满…

vue数据单双渲染以及代码讲解

&#x1f600;前言 本片文章是vue系列第2篇整理了vue的单双数据绑定以及代码讲解 &#x1f3e0;个人主页&#xff1a;尘觉主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是尘觉&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力&#x1f…

了解Unity编辑器之组件篇Tilemap(五)

Tilemap&#xff1a;用于创建和编辑2D网格地图的工具。Tilemap的主要作用是简化2D游戏中地图的创建、编辑和渲染过程。以下是一些Tilemap的主要用途&#xff1a; 2D地图绘制&#xff1a;Tilemap提供了一个可视化的编辑器界面&#xff0c;可以快速绘制2D地图&#xff0c;例如迷…

Flask 页面展示文件目录及文件,通过勾选复习框删除

(45条消息) flask 读取文件夹文件&#xff0c;展示在页面&#xff0c;可以通过勾选删除_U盘失踪了的博客-CSDN博客 基本实现 针对上面的功能再优化 项目结构 app.py import os import shutil from flask import Flask, render_template, request, redirect, url_forapp F…

服务器数据恢复-Windows服务器RAID5数据恢复案例

服务器数据恢复环境&#xff1a; 一台服务器挂载三台IBM某型号存储设备&#xff0c;共64块SAS硬盘&#xff0c;组建RAID5磁盘阵列&#xff1b; 服务器操作系统&#xff1a;Windows Server&#xff1b;文件系统&#xff1a;NTFS。 服务器故障&#xff1a; 一台存储中的一块硬盘离…

android app控制ros机器人一

android开发app&#xff0c;进而通过控制ros机器人&#xff0c;记录开发过程 查阅资料&#xff1a; rosjava使用较多&#xff0c;已经开发好的app也有开源的案例 rosjava GitHub https://github.com/ros-autom/RobotCA https://github.com/ROS-Mobile/ROS-Mobile-Android…

Godot 4 着色器 - Shader调试

我之前用OpenCV进行图像相关处理&#xff0c;觉得已经很不错&#xff0c;结合GDI可以实现流畅的动画效果 直到近来用Shader后才发现&#xff0c;着色器更上一层楼&#xff0c;原来这是入了GPU的坑 Shader编程限制很多&#xff0c;各种不支持&#xff0c;看在它性能不错功能炫…

vue 封装一个鼠标拖动选择时间段功能

<template><div class"timeRange"><div class"calendar"><table><thead><tr><th rowspan"6" class"weekRow"><b>周/时间</b></th><th colspan"24"><…

vue中的数据代理

vue数据代理 Vue实现数据代理的核心----Object.defineProperty(); 数据代理 数据代理的定义是&#xff1a;一个对象操作(读\写)另一个对象中的属性和方法。 // 数据代理&#xff1a;通过一个对象代理对另一个对象中属性的操作&#xff08;读/写&#xff09;let obj { x: 100…

vue element ui web端引入百度地图,并获取经纬度

最近接到一个新需要&#xff0c;要求如下&#xff1a; 当我点击选择地址时&#xff0c;弹出百度地图&#xff0c; 效果如下图&#xff1a; 实现方法&#xff1a; 1、首先要在百度地图开放平台去申请一个账号和key 2、申请好之后&#xff0c;在项目的index.html中引入 3、…

Error: Please select Android SDK解决方案(仅供参考)

一、问题描述 今天开始正式接触项目的工作内容&#xff0c;然后从组里的代码仓库里git clone了一份Android Studio项目下来。下好了以后我使用Android Studio打开这个项目&#xff0c;但在尝试编译运行的时候遇到了很多错误。例如&#xff0c;开发环境界面上边用于编译的小锤子…

五,Eureka 第五章

5.3.2 修改pom添加依赖 <dependencies><!--公共部门--><dependency><groupId>cn.bdqn</groupId><artifactId>springcloud-api-commons</artifactId><version>${project.version}</version></dependency><!--e…

Python电商爬虫保姆级入门教程(纯新手向)

图灵Python课堂 长沙图灵教育于2001年开始进入教育行业&#xff0c;立足泛IT类职业教育&#xff0c;以打造高新技术人才为宗旨&#xff0c;专注于提供多层次、个性化的职业技能培训课程&#xff0c;为各行业培养技术开发、应用和管理等岗位的中高端人才&#xff0c;致力于成为…