经营简报及考核360表格

news2024/11/18 5:38:50

文章目录

  • 经营简报
    • 效果图
    • 代码
      • 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>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基础实验篇 | CopterSim中回传提示消息实验

基础实验篇|CopterSim中回传提示消息实验 01实验名称及目的 回传提示消息实验&#xff1a;在飞控中&#xff0c;我们时常需要向外发布一些文字消息&#xff0c;来反映系统当前的运行状态&#xff0c;这个功能可以通过发送“mavlink_log”的uORB消息来实现。 02实验效果 在Cop…

如何让 ChatGPT 更懂你?新功能 Custom Instructions 尝试

对比 我们先来做一个对比实验。这里咱们让 ChatGPT 执行一个很简单的任务 —— 介绍一下 AI 生成内容&#xff08;AIGC&#xff09;。为了能够让 ChatGPT 查询资料&#xff0c;咱们给它提供了 Web Pilot 插件。但是 ChatGPT 并没有主动调用插件&#xff0c;而是直接给出了解释。…

Cisco IOS操作(红茶三杯CCNA)

Cisco IOS模式 &#xff1a;用户模式 #&#xff1a;特权模式(config)#&#xff1a;全局配置模式 接口模式&#xff1a;(config-if)#线路模式&#xff1a;(config-line)#路由配置模式&#xff1a;(config-router)# 使用CLI的帮助 - 命令提示及补全:?、Tab、命令关键字&…

【微信支付】Java微信支付流程

微信支付 微信支付流程 当我们需要支付一件商品时&#xff0c;首先从前端像后端传来商品ID&#xff0c;后端根据商品ID查询商品信息&#xff0c;然后封装订单信息&#xff0c;保存订单。下一步就是向微信远程调用支付接口&#xff0c;微信返回code_url&#xff0c;后端封装co…

vscode恢复被误删的文件(巧用本地历史记录)

背景&#xff1a;&#xff08;希望永远不要有这个背景&#xff09;使用vscode开发项目时&#xff0c;新建了文件&#xff0c;且文件没有git add、没有git stash、没有git commit。但是不小心点中了撤销更改&#xff08;新文件的撤销更改&#xff0c;其实就是删除该新文件&#…

【教学类-34-06】20230726拼图(“三角”凹凸拼图)3*4格子(中班主题《个别化拼图》偏美术)

图片展示&#xff1a; 圆形凹凸角变成三角形凹凸角&#xff0c;便于幼儿剪直线。 背景需求&#xff1a; 5月底&#xff0c;我自制凹凸角拼图&#xff08;动画片图片转拼图&#xff09;给幼儿裁剪&#xff0c;拼贴 教学实际操作时&#xff0c;发现圆形的凸角不适合幼儿裁剪&…

ROS 2 — 托管(生命周期)节点简介

一、说明 这篇文章是关于理解ROS 2中托管&#xff08;生命周期&#xff09;节点的概念。我们描述了概念性的想法以及我们为什么需要它。所以让我们开始吧&#xff01; 二、托管式节点 — 什么和为什么&#xff1f; 为了理解托管式节点&#xff0c;让我们从一个简单的问题陈述开…

微服务——服务异步通讯RabbitMQ

前置文章 消息队列——RabbitMQ基本概念容器化部署和简单工作模式程序_北岭山脚鼠鼠的博客-CSDN博客 消息队列——rabbitmq的不同工作模式_北岭山脚鼠鼠的博客-CSDN博客 消息队列——spring和springboot整合rabbitmq_北岭山脚鼠鼠的博客-CSDN博客 目录 Work queues 工作队列…

数据结构(c++实现)

数据结构 目录 数据结构1.链表实现单链表双链表 2.栈(先进后出&#xff0c;后进先出)3.单调栈4.队列&#xff08;先进先出&#xff09;5.单调队列6.小根堆操作 7.KMP8.Trie树(字典树) 1.链表实现 单链表 #include <iostream>using namespace std;const int N 100010;/…

AcWing 3708. 求矩阵的鞍点

输入样例&#xff1a; 3 4 1 2 3 4 1 2 3 4 1 2 3 4输出样例&#xff1a; 1 4 4 2 4 4 3 4 4 #include<bits/stdc.h> using namespace std; const int N1010; int n,m,a[N][N],x[N],y[N],flag1; int main(){scanf("%d%d",&n,&m);for(int i1;i<n;i…

抖音西瓜实时作品监控,一秒更新提醒

抖音西瓜实时作品监控&#xff0c;一秒更新提醒 安装必要的依赖库&#xff1a;使用pip安装aweme库。 pip install aweme 导入所需的库。 import datetime import time import schedule from aweme import API 创建一个函数&#xff0c;用于检查抖音作品是否更新。 def check_u…

端到端的视频编码方法及码率控制算法

文章目录 基于卷积神经网络的的端到端的视频编码方法自编码器 基于端到端学习的图像编码研究及进展变换量化熵编码 面向视频会议场景的 H.266/VVC 码率控制算法研究基于强化学习的视频码率自适应决策研究自适应流媒体传输技术码率自适应算法研究现状强化学习深度强化学习算法介…

mp4视频太大怎么压缩?教你轻松减小视频大小

MP4视频太大怎么办&#xff1f;很多人都会遇到这样的问题&#xff0c;MP4视频往因为画面清晰度高&#xff0c;画面流畅&#xff0c;所以视频文件会比较大&#xff0c;如果你想向朋友或者家人分享这个视频&#xff0c;但是又因为文件太大无法发送&#xff0c;那么怎么办呢&#…

可视化开发工具:让软件应用开发变得更轻松

一、前言 你是否为编程世界的各种挑战感到头痛&#xff1f;想要以更高效、简单的方式开发出专业级的项目&#xff1f; JNPF低代码工具正是你苦心寻找的产品&#xff01;它是一款专为稍微懂一点点编程思想的入门级人员设计的神奇工具&#xff0c;集成了丰富的功能和组件&#xf…

使用 CSS 自定义属性

我们常见的网站日夜间模式的变化&#xff0c;其实用到了 css 自定义属性。 CSS 自定义属性&#xff08;也称为 CSS 变量&#xff09;是一种在 CSS 中预定义和使用的变量。它们提供了一种简洁和灵活的方式来通过多个 CSS 规则共享相同的值&#xff0c;使得样式更易于维护和修改。…

深度剖析APP开发中的UI/UX设计

作为一个 UI/UX设计师&#xff0c;除了要关注 UI/UX设计之外&#xff0c;还要掌握移动开发知识&#xff0c;同时在日常工作中也需要对用户体验有一定的认知&#xff0c;在本次分享中&#xff0c;笔者就针对自己在工作中积累的一些经验来进行一个总结&#xff0c;希望能够帮助到…

暑假学生使用什么牌子台灯好?分享五款学生使用的台灯

临近暑假&#xff0c;是不是开始补课或写暑假作业了呢&#xff1f;是不是还在为选一款学生使用的台灯而发愁&#xff1f;今天小编就来给大家推荐几款台灯供大家参考参考。 那么问题来了&#xff0c;怎么选择合适的护眼台灯&#xff1f; 第一&#xff1a;先考虑个人预算选择适…

Modbus RTU通信应用

一、功能概述 1.1 概述 Modbus串行通信协议是Modicon公司在1970年开发的。 Modbus串行通信协议有Modbus ASCII和Modbus RTU两种模式&#xff0c;Modbus RTU协议通信效率较高&#xff0c;应用更加广泛。 Modbus RTU协议是基于RS232和RS485串行通信的一种协议&#xff0c;数据通…

论文解读|用于从RGB-D数据进行3D物体检测的Frustum PointNets

原创 | 文 BFT机器人 01 摘要 论文研究了室内和室外场景中基于RGBD数据的3D目标检测。论文的方法不仅仅依赖于3D方案&#xff0c;而是利用成熟的2D对象检测器和先进的3D深度学习进行对象定位&#xff0c;即使是小对象也能实现高效率和高召回。 直接在原始点云中学习&#xff0…

如何让GPT自己命令自己?榨干最后一丝智能,解放双手!

1.让GPT先别说话 2.接下来&#xff0c;看看它学的怎么样 使用成功了&#xff01;效果拔群&#xff01; 3.接下来&#xff0c;让他回答自己生成的指令&#xff1a; 效果比想象的还要好&#xff01;果然最懂GPT的还是它自己&#xff0c;生成的prompt比自己手写的prompt更加精准有…