【el】表格

news2024/11/23 21:10:48

一、用法

1、动态表格

后端返回的值:第一个数组是表头,其余是内容

      <el-table
            ref="tableHeight"
            :data="tableColumns"
            :height="tableHeight"
            border
            style="width: 100%; margin-top: 1%"
            @row-click="rowclick"
          >
            <el-table-column
              v-for="(item, index) in tableData"
              :key="item.label"
              :prop="item.prop"
              align="center"
              :label="item.label"
            >
              <template slot-scope="scope">
                {{ scope.row[index] }}
              </template>
            </el-table-column>
          </el-table>

          <el-row
            ref="row"
            class="block"
            type="flex"
            justify="end"
            align="middle"
          >
            <el-pagination
              ref="pagination"
              :page-sizes="[10, 30, 50]"
              :current-page.sync="page.page"
              :page-size.sync="page.pagesize"
              layout="total, sizes, prev, pager, next, jumper"
              :total="total"
              @size-change="handleSizeChange"
              @current-change="handleCurrentChange"
            />
          </el-row>
<script>
import { mapGetters } from "vuex";
import {
  GetHomeData,
  BpmGetList,
  GetFrom,
  GetFromData,
  AddFromData,
} from "@/api/Bpm";

export default {
  name: "Process",
  computed: {
    ...mapGetters(["userid", "name"]),
  },
  data() {
    return {
      BpmName: {}, //从常用中携带的项目信息
      tableHeight: "0px", //表格高度(有切换status)
      tableData: [], //表头
      tableColumns: [], //表格内容
      tableform: {}, //表格返回的数据之一
      form: {
        appid: 1, //应用编号
        type: 0, //0)待办列表 1)已办列表 2)抄送 3)我发起的
        keyword: "", //关键词
        status: 0, //只在 我的发起时有作用  标签如下 0)草稿 1)流程中 2)已结束
      },
      page: {
        page: 1,
        pagesize: 10,
      },
      total: 50,
    }
  },
   created() {
    this.BpmGetList(this.form);
   },
   methods: {
     // 获取列表
    BpmGetList(form) {
      const a = JSON.parse(localStorage.getItem("Goprocess"));
      this.BpmName = a;
      this.form.appid = this.BpmName.id;
      BpmGetList({
        ...this.page,
        ...form,
        userid: this.userid,
      }).then((res) => {
        this.tableform = res.data;
        this.total = res.data.total;

        // console.log(this.tableform, "列表");
        if (res.data.table) {
          // 表头
          this.tableData = res.data.table[0].map((i, j) => {
            return {
              label: i,
              prop: "a" + [j],
            };
          });
          this.tableColumns = res.data.table.filter(function (
            item,
            index,
            arr
          ) {
            return index != 0;
          });
        }
      });
    },
   }
}
</script>

2、调用后端接口进行表格排序,点击分页不再是当前页排序

将sortable设置为custom、在 Table 上监听sort-change事件,在事件回调中可以获取当前排序的字段名和排序顺序、并且通过default-sort属性设置默认的排序列和排序顺序。

<template>
      <el-table
        :data="FieldRecordData"
        :default-sort="{ prop: 'date' }"
        @sort-change="sortchange"
      >
        <el-table-column
          prop="date"
          sortable="custom"
          label="填报日期"
          align="center"
        >
          <template slot-scope="scope">
            {{ scope.row.date | formatDate }}
          </template>
        </el-table-column>
      </el-table>
      <el-row class="block" type="flex" justify="end" align="middle">
        <el-pagination
          :current-page="page.page"
          :page-size.sync="page.pagesize"
          :page-sizes="[10, 20, 30, 40]"
          layout="total, sizes, prev, pager, next, jumper"
          :total="page.total"
          :pager-count="5"
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
        />
      </el-row>
</template>
<script>
import { getRecordsList } from '@/api/FieldRecord'
export default {
  data () {
    return {
      FieldRecordData: [], // 列表数据(展示的数据)
      num: 0,//正序
      page: {
        pagesize: 10,
        page: 1,
        total: 50
      },
    }
  },
  created () {
    this.getlist(0, this.page.page, this.page.pagesize)
  },
  methods: {
    // 排序
    async sortchange (column, prop, order) {
      // 降序
      if (column.order === 'descending') {
        this.getlist(1, this.page.page, this.page.pagesize)
        this.num = 1
      } else if (column.order === 'ascending') {
        this.getlist(0, this.page.page, this.page.pagesize)
        this.num = 0
      } else {
        this.getlist(0, this.page.page, this.page.pagesize)
        this.num = 0
      }
    },
    // 获取数据
    async getlist (num, page, pagesize) {
      const id = this.$route.params.id
      this.loading = true
      const res = await getRecordsList({ page: page, pagesize: pagesize, projectid: id, order: num })
      this.FieldRecordData = res.data.records
      this.page.total = res.data.total
      this.loading = false
    },
    // 分页
    handleSizeChange (Sizechange) {
      this.page.pagesize = Sizechange
      this.getlist(this.num, this.page.page, this.page.pagesize)
    },
    handleCurrentChange (val) {
      this.page.page = val
      this.getlist(this.num, this.page.page, this.page.pagesize)
    }
  }
}
</script>

3、表格的序号为连续

表格使用分页,第一页的序号是1-5,第二页则是6-10,不再从头开始

<el-table-column  :index="CljcMethod"   type="index"    label="序号"    width="50"   align="center"   >
</el-table-column>

 methods: {
         //this.Cljcpage.page是页码,this.Cljcpage.pagesize是一页显示条数
        CljcMethod (index) { return (index + 1) + (this.Cljcpage.page - 1) * this.Cljcpage.pagesize; },
}

4、表格中可编辑的日期选择器设置使用范围

因为是在表格中的选择器,还要进行新增编辑,所以这里的picker-options都定义了两个,一个在data中,一个在methods中获取列表数据的时候。

目标:
1、所有日期都要在总进度的开始日期—实际结束日期之间
2、开始日期:总进度开始日期之后以及包含总进度的开始日期——实际结束日期之前以及包含实际结束日期
3、实际结束日期:与开始日期同理
4、计划结束日期:在当前行的开始日期之后以及包含开始日期——实际结束日期之前以及包含实际结束日期,(若不想包含,则把- 8.64e7去掉即可)

第一张是编辑,需要在获取列表数据的时候就要进行设置使用范围,

  // 获取项目表格数据
    async List () {
      this.da = JSON.parse(localStorage.getItem('ProgressData'))
      const res = await GetSpeed({ projectid: this.da.id })
      res.data.forEach((i, index) => {
        i.plan = {
          disabledDate: (time) => {
            if (i.starttime) {
              return new Date(time).getTime() < new Date(i.starttime).getTime() - 8.64e7 || new Date(time).getTime() > new Date(res.data[0].endtime).getTime()
            }
          }
        }
        i.end = {
          disabledDate: (time) => {
            if (i.starttime) {
              return new Date(time).getTime() < new Date(i.starttime).getTime() - 8.64e7 || new Date(time).getTime() > new Date(res.data[0].endtime).getTime()
            }
          }
        }
        i.start = {
          disabledDate: (time) => {
            if (i.plan_endtime) {
              return new Date(time).getTime() > new Date(i.plan_endtime).getTime() || new Date(time).getTime() < new Date(res.data[0].starttime).getTime() - 8.64e7
            }
          }
        }
      })
      this.tableData = res.data

第二张是新增,既是表单,则在data中设置使用范围即可

data () {
    return {
      plan_endtime: {
        disabledDate: (time) => {
          return new Date(time).getTime() < new Date(this.form.starttime).getTime() || new Date(time).getTime() < new Date(this.tableData[0].starttime).getTime() - 8.64e7 || new Date(time).getTime() > new Date(this.tableData[0].endtime).getTime()
        }
      },
      endtime: {
        disabledDate: (time) => {
          return new Date(time).getTime() < new Date(this.form.starttime).getTime() || new Date(time).getTime() < new Date(this.tableData[0].starttime).getTime() - 8.64e7 || new Date(time).getTime() > new Date(this.tableData[0].endtime).getTime()
        }
      },
      starttime: {
        disabledDate: (time) => {
          return new Date(time).getTime() > new Date(this.form.plan_endtime).getTime() || new Date(time).getTime() < new Date(this.tableData[0].starttime).getTime() - 8.64e7 || new Date(time).getTime() > new Date(this.tableData[0].endtime).getTime()
        }
      },
    }
  },

完整代码

<template>
  <div id="pro" class="pro-container">
    <div class="center">
      <div class="top">
        <el-button class="new" type="primary" size="small" @click="Add()"
          >新建节点</el-button
        >
        <div>
          <el-button class="aboutCancel" size="small" @click="home()"
            >返回项目列表</el-button
          >
        </div>
      </div>
      <el-table
        ref="tableData"
        v-loading="loading"
        :cell-style="cellStyle"
        :data="tableData"
        border
        style="width: 100%"
        element-loading-text="拼命加载中"
        element-loading-spinner="el-icon-loading"
        :header-cell-style="{ 'text-align': 'center' }"
      >
        <el-table-column width="80px" prop="no" label="序号" align="center">
        </el-table-column>
        <el-table-column align="center" prop="name" label="任务名称">
          <template slot-scope="scope">
            <div v-if="scope.row.show">
              <el-input
                v-model="scope.row.name"
                placeholder="请输入"
              ></el-input>
            </div>
            <div v-else>{{ scope.row.name }}</div>
          </template>
        </el-table-column>
        <el-table-column prop="starttime" label="开始日期" align="center">
          <template slot-scope="scope">
            <div v-if="scope.row.show">
              <el-date-picker
                v-model="scope.row.starttime"
                type="date"
                placeholder="选择日期"
                :picker-options="scope.row.start || starttime"
              >
              </el-date-picker>
            </div>
            <div v-else>{{ scope.row.starttime | formatDate }}</div>
          </template>
        </el-table-column>
        <el-table-column
          prop="plan_endtime"
          label="计划结束日期"
          align="center"
        >
          <template slot-scope="scope">
            <div v-if="scope.row.show">
              <el-date-picker
                v-model="scope.row.plan_endtime"
                type="date"
                placeholder="选择日期"
                :picker-options="scope.row.plan || plan_endtime"
              >
              </el-date-picker>
            </div>
            <div v-else>{{ scope.row.plan_endtime | formatDate }}</div>
          </template>
        </el-table-column>

        <el-table-column prop="endtime" label="实际结束日期" align="center">
          <template slot-scope="scope">
            <div v-if="scope.row.show">
              <el-date-picker
                v-model="scope.row.endtime"
                type="date"
                placeholder="选择日期"
                format="yyyy-MM-dd"
                value-format="yyyy-MM-dd"
                :picker-options="scope.row.end || endtime"
              >
              </el-date-picker>
            </div>
            <div v-else>{{ scope.row.endtime | formatDate }}</div>
          </template>
        </el-table-column>
        <el-table-column width="120" prop="day" label="天数" align="center">
          <template slot-scope="scope">
            {{ scope.row.day }}
          </template>
        </el-table-column>
        <el-table-column prop="change_desc" label="时间变动" align="center">
          <template slot-scope="scope">
            <div v-if="scope.row.change_desc === ''">正常</div>
            <div v-else>
              <span>{{ scope.row.change_desc }}</span>
            </div>
          </template>
        </el-table-column>
        <el-table-column
          width="120"
          prop="state"
          label="项目状态"
          align="center"
        >
          <template slot-scope="scope">
            <div v-show="scope.row.state === 1">未开始</div>
            <div v-show="scope.row.state === 2">进行中</div>
            <div v-show="scope.row.state === 3">延期</div>
            <div v-show="scope.row.state === 4">已结束</div>
          </template>
        </el-table-column>
        <el-table-column width="130px" label="操作" align="center">
          <template slot-scope="scope">
            <div v-if="scope.$index === 0"></div>
            <div v-else>
              <div v-if="scope.row.show" style="display: flex">
                <el-button
                  type="text"
                  @click="change(scope.row, scope.column, scope.$index)"
                  >保存</el-button
                >
                <el-button
                  type="text"
                  @click="cancel(scope.row, scope.column, scope.$index)"
                  >取消</el-button
                >
              </div>
              <div v-else style="display: flex">
                <el-button
                  type="text"
                  :disabled="state"
                  @click="Edit(scope.row, scope.column, scope.$index)"
                  >编辑</el-button
                >
                <el-button
                  type="text"
                  :disabled="state"
                  @click="deleterow(scope.row, scope.column, scope.$index)"
                  >删除</el-button
                >
              </div>
            </div>
          </template>
        </el-table-column>
      </el-table>
    </div>
  </div>
</template>

<script>
import { GetSpeed, AddSpeed, DeleteSpeed } from '@/api/pro'

export default {
  data () {
    return {
      plan_endtime: {
        disabledDate: (time) => {
          return new Date(time).getTime() < new Date(this.form.starttime).getTime() || new Date(time).getTime() < new Date(this.tableData[0].starttime).getTime() - 8.64e7 || new Date(time).getTime() > new Date(this.tableData[0].endtime).getTime()
        }
      },
      endtime: {
        disabledDate: (time) => {
          return new Date(time).getTime() < new Date(this.form.starttime).getTime() || new Date(time).getTime() < new Date(this.tableData[0].starttime).getTime() - 8.64e7 || new Date(time).getTime() > new Date(this.tableData[0].endtime).getTime()
        }
      },
      starttime: {
        disabledDate: (time) => {
          return new Date(time).getTime() > new Date(this.form.plan_endtime).getTime() || new Date(time).getTime() < new Date(this.tableData[0].starttime).getTime() - 8.64e7 || new Date(time).getTime() > new Date(this.tableData[0].endtime).getTime()
        }
      },
      tableData: [], // 列表数据
      show: false, // 状态
      loading: false, // 加载
      upload: true,
      form: {},//当前行数据
      da: {},//上一页数据
      state: false,
      flagchange: 0, // 表单值是否有改
    }
  },
  created () {
    this.List()
  },
  watch: {
    // 监听编辑是否有修改 - departAddForm
    form: {
      handler (val, oldval) {
        this.flagchange++  // 默认值有变更的话
      },
      deep: true,// 深度监听
    },
  },
  methods: {
    // 获取项目表格数据
    async List () {
      this.loading = true
      this.da = JSON.parse(localStorage.getItem('ProgressData'))
      const res = await GetSpeed({ projectid: this.da.id })
      res.data.forEach((i, index) => {
        i.plan = {
          disabledDate: (time) => {
            if (i.starttime) {
              return new Date(time).getTime() < new Date(i.starttime).getTime() - 8.64e7 || new Date(time).getTime() > new Date(res.data[0].endtime).getTime()
            }
          }
        }
        i.end = {
          disabledDate: (time) => {
            if (i.starttime) {
              return new Date(time).getTime() < new Date(i.starttime).getTime() - 8.64e7 || new Date(time).getTime() > new Date(res.data[0].endtime).getTime()
            }
          }
        }
        i.start = {
          disabledDate: (time) => {
            if (i.plan_endtime) {
              return new Date(time).getTime() > new Date(i.plan_endtime).getTime() || new Date(time).getTime() < new Date(res.data[0].starttime).getTime() - 8.64e7
            }
          }
        }
      })

      // 重新排序
      res.data.forEach((i, index) => {
        if (index > 0) {
          i.no = 1 + '.' + Number(index)
        }
      })
      this.tableData = res.data
      this.loading = false
    },
    // 编辑
    Edit (row, col, index) {
      this.$set(row, 'show', true)
      this.state = true
      this.form = row
      // 初始化检测数据,取消的时候判断是否修改过值
      this.flagchange = 0
    },
    // 新建
    Add () {
      // 判断上一个有没有保存,保存才添加
      if (!this.state) {
        const index = this.tableData[0].no
        this.form = {
          id: 0,
          no: index + '.' + Number(this.tableData.length),
          projectid: this.da.id,
          name: '',
          starttime: '',
          enddtime: '',
          plan_endtime: '',
          show: true
        }
        this.tableData.push(this.form)
        this.state = true
      } else {
        this.$message({
          type: 'warning',
          message: '请先保存上一任务'
        })
      }
      // 初始化检测数据,取消的时候判断是否修改过值
      this.flagchange = 0
    },
    // 删除
    async deleterow (row, col, index) {
      this.$confirm('是否删除此信息', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(async () => {
        const res = await DeleteSpeed({ speedid: row.id })
        if (res.code === 200) {
          this.$message({
            type: 'success',
            message: '删除成功'
          })
        }
        this.List()
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消删除'
        });
      });
      this.form = {}
    },
    // 保存
    async change (row) {
      // 必须全部都写,才会保存
      if (row.name === '' || row.starttime === '' || row.plan_endtime === '' || row.endtime === '') {
        this.$message({
          type: 'warning',
          message: '请填写完整'
        })
      } else {
        row.show = false
        const res = await AddSpeed(this.form)
        if (res.code === 200) {
          this.$message({
            type: 'success',
            message: '保存成功'
          })
        }
        this.List()
        this.state = false
        this.form = {}
      }
    },
    // 取消
    cancel (row) {
      if (row.name === '' || row.starttime === '' || row.plan_endtime === '' || row.endtime === '') {
        row.show = false
        this.List()
      } else {
        if (this.flagchange > 1) { // 说明监听值有变化
          this.$confirm('内容还未保存,是否需要保存', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(async () => {
            const res = await AddSpeed(this.form)
            if (res.code === 200) {
              this.$message({
                type: 'success',
                message: '保存成功'
              })
            }
          }).catch(() => {
            this.$message({
              type: 'info',
              message: '取消保存'
            })
          })
          row.show = false
          this.List()
        } else {
          row.show = false
          this.List()
        }
      }
      this.state = false
      this.flagchange = 0
    },
  
  }
}
</script>

二、样式

1、斑马纹表格(鼠标划过表格,表格颜色不变)

可以通过指定 Table 组件的 row-class-name 属性来为 Table 中的某一行添加 class,表明该行处于某种状态

<el-table
          :row-class-name="tableRowClassName"
          stripe
          :data="tableData"
          style="width: 100%"
        >
          <el-table-column prop="date" label="编号" align="center">
          </el-table-column>
          <el-table-column prop="amount" label="总金额" align="center">
          </el-table-column>
          <el-table-column prop="author" label="创建人" align="center">
          </el-table-column>
</el-table>

方法一

methods: {
    tableRowClassName ({ row, rowIndex }) {
      if (row.sfjg == 1) {
        return "el-table__row--striped";
      } else {
        return "";
      }
    },
    //第二种
     tableRowClassName ({ row, rowIndex }) {
      if (rowIndex % 2 !== 0) {
        return 'el-table__row--striped'
      }
    },
}

方法二

<style lang="scss">
// 显示的颜色
  .el-table--striped .el-table__body tr.el-table__row--striped td {
    background-color: #f2f9ff;
  }
  .el-table__row {
    background: #fff;
  }
  // 鼠标划过表格,表格颜色不变
  .el-table--striped .el-table__body tr.el-table__row--striped:hover td {
    background-color: #f2f9ff;
  }
  .el-table--enable-row-hover .el-table__body tr:hover > td {
    background: #fff;
  }
 
/* 对应第二种方法:表格内背景颜色 */
  .el-table--fit {
    border: 1px solid #64717d;
  }
  .tablewhite {
    background-color: #eef1ff;
  }
  .el-table th > .cell {
    color: #fff;
  }
</style>

2、动态更改某一个单元格字体颜色

通过 :cell-style="cellStyle" 方法返回一个回调

编辑

<el-table
          :row-class-name="tableRowClassName"
          stripe
          :cell-style="cellStyle"
          :data="tableData"
          style="width: 100%"
        >
</el-table>
methods: {
    // 字体颜色
    // row为某一行的除操作外的全部数据
    // * column为某一列的属性
    //  * rowIndex为某一行(从0开始数起)
    // * columnIndex为某一列(从0开始数起
    cellStyle ({ row, column, rowIndex, columnIndex }) {
      // 状态列字体颜色
      if (row.status === 'deleted' && columnIndex === 7) {
        return 'color: red'
      } else if (row.status === 'published' && columnIndex ===7) {
        return 'color: #10bf5d'
      } else {
        return 'color: #1a1a1b'
      }
},
}

3、表格行与行之间留有缝隙

一种是直接在页面中使用

<style lang="scss">
/* 最外层透明 */
#dashboard .el-table,
#dashboard .el-table__expanded-cell {
  background-color: transparent;
}
/* 表格内背景颜色 */
#dashboard .el-table th,
#dashboard .el-table tr,
#dashboard .el-table td {
  background-color: transparent;
}
// 表格单元格的样式
.el-table td.el-table__cell div {
  background-color: #183847;
  border-top: 1px solid #0153bf;
  border-bottom: 1px solid #0153bf;
}
// 第一个单元格的左边框
.el-table td.el-table__cell:first-child div {
  border-left: 1px solid #0153bf;
}
// 最后一个单元格的有边框
.el-table td.el-table__cell:last-child div {
  border-right: 1px solid #0153bf;
}
//el-table既可以滚动又可以自适应
// 表格的滚动条隐藏(table一定要设置行内样式height才有滚动效果,如果还要自适应则设置成height="calc(100%-10rem)")
#dashboard .el-table--scrollable-y ::-webkit-scrollbar {
  display: none;
}
// 头部下方线条长度
#dashboard .el-table__header-wrapper {
  width: 97%;
}
/* 表格内头部 */
#dashboard .el-table th {
  color: #e1e6e9;
  border-bottom: 1px solid #0153bf;
}
/* 表格内每单元格样式 */
#dashboard .el-table td {
  padding: 0;
  background-color: #183847;
  border-bottom: 1px solid #0153bf;
}
/* 表格内每行 */
#dashboard .el-table__row {
  height: 30px;
  background-color: #183847;
}
/* 去除表格内最下面的一条线 */
#dashboard .el-table::before {
  height: 0px;
}
// 取消表格鼠标进入高亮显示
  .el-table__row:hover > td {
    background-color: transparent !important;
  }
</style>

第二种在弹窗中使用,弹窗中的表格,不知道为啥,使用上面的样式它不生效,但是下面的就有用

 .el-table th {
    background-color: transparent !important;
color: #000 !important;
    border-bottom: none;
    padding-bottom: 0;

  }
  .el-table tr {
    background-color: transparent !important;
    color: #000 !important;
    border: 1px solid #64707c !important;
  }
  .el-table__body {
    border-collapse: separate;
    border-spacing: 0px 10px;
  }
  .el-table td {
    padding: 6px 0;
    border: transparent; //表格下边框没有
  }
  .el-table .el-table__row {
    height: 27px;
  }
  .el-table td.is-center {
    border-top: 1px solid #0153bf !important;
    border-bottom: 1px solid #0153bf;
  }
  .el-table td.is-center:first-child {
    border-left: 1px solid #0153bf !important;
  }
  .el-table td.is-center:last-child {
    height: 27px;
    border-right: 1px solid #0153bf !important;
  }
  .el-table::before {
    height: 0px;
  }

4、去掉表格多选框

<style lang="scss" scoped>
//去掉表头多选框
::v-deep .el-table__header-wrapper .el-checkbox {
  display: none;
}
</style

这篇文章看完如果您觉得有所收获,认为还行的话,就点个赞收藏一下呗

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

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

相关文章

14、字符串处理函数

目录 一、字符串复制 二、字符串连接 三、字符串比较 四、字符串大小写转换 五、获得字符串长度 一、字符串复制 在字符串处理函数中包含strcpy函数&#xff0c;该函数可用于复制特定长度的字符串到另一个字符串中。其语法格式如下&#xff1a; 功能&#xff1a;把源字符…

张驰咨询:用六西格玛方法降低锂电池内部短路缺陷

锂电池作为现代电子设备中最常用的电池类型之一&#xff0c;由于其高能量密度和长寿命等优点&#xff0c;已经广泛应用于手机、笔记本电脑、电动车等领域。然而&#xff0c;在锂电池制造过程中&#xff0c;由于材料、工艺、设备等多种因素的影响&#xff0c;会产生内部短路的问…

基于麻雀算法改进的SVM电器启动识别,基于麻雀算法优化SVM分类预测

目录 摘要 背影 Eggholder测试函数 MATALB编程 测试函数代码 麻雀算法原理 麻雀算法主要参数 麻雀算法流程图 麻雀算法优化测试函数代码 基于麻雀算法改进的SVM电器启动识别 matlab编程实现 效果图 结果分析 展望 摘要 麻雀算法理论&#xff0c;SSA-SVM,电器启动识别&#x…

Android开发之简单控件

文章目录一 文本显示1.1 文本设置的两种方式1.2 常见字号单位类型2.2 设置文本的颜色三 视图基础3.1 设置视图的宽高3.2 设置视图的间距3.3 设置视图的对齐方式四常用布局4.1 线性布局LinearLayout4.2 相对布局RelativeLayout4.3 网格布局GridLayout4.4 滚动视图ScrollView五 按…

【uni-app教程】二、UniAPP 初始化相关配置

二、UniAPP 初始化相关配置 (1)工程目录结构 https://uniapp.dcloud.net.cn/tutorial/project.html#目录结构) 工程简介 一个工程&#xff0c;就是一个 Vue 项目&#xff0c;你可以通过 HBuilderX 或 cli 方式快速创建 uni-app 工程&#xff0c;详见&#xff1a;快速上手。 …

arduino烧录引导程序(BootLoader)方法及出错点

文章目录一、硬件电路准备1、328P的管脚图2、电路连接图&#xff08;1&#xff09;连接图&#xff08;2&#xff09; ISP连接及端口介绍&#xff08;3&#xff09;管脚连接对应表1、准备ArduinoISP2、使用Arduino as ISP烧录设置Arduino板为烧写器3、烧录及错误4、为新烧录328p…

无代码开发浅谈

前 言互联网共享软件工厂KAPT无代码开发平台&#xff0c;提供了可视化编程方法&#xff0c;经过拖拽组件&#xff0c;就像做ppt一样&#xff0c;快速的就能搭建一个软件应用&#xff0c;更高效的构建业务应用程序。以前开发软件大多只能编写代码完成&#xff0c;所以有软件开发…

Mit6.S081-实验1-Xv6 and Unix utilities-pingpong问题

Mit6.S081-实验1-Xv6 and Unix utilities-pingpong问题在进行pingpong实验的时候遇到了许多问题在这里记录一下。 1.输出乱序问题 出现这个问题主要是因为没有弄懂wait(0)的作用&#xff0c; wait(0)暂时停止目前进程的执行&#xff0c;直到信号来到或子进程结束&#xff0c;…

如何让自动化测试框架更自动化?

一、引言 ​对于大厂的同学来说&#xff0c;接口自动化是个老生常谈的话题了&#xff0c;毕竟每年的MTSC大会议题都已经能佐证了&#xff0c;不是大数据测试&#xff0c;就是AI测试等等&#xff08;越来越高大上了&#xff09;。不可否认这些专项的方向是质量智能化发展的方向…

csgo搬砖项目,真的能月入6k?

01 相信很多粉丝都知道steam这个平台&#xff0c;steam是一个游戏平台&#xff0c;这里面的游戏都是要通过去充值购买才能去玩&#xff0c;有的是买游戏的账号&#xff0c;有的是买这个游戏的使用权&#xff0c;买了之后安装到手机上或者电脑上我们才能去畅玩游戏&#xff0c;…

【人工智能 Open AI 】我们程序员真的要下岗了- 全能写Go / C / Java / C++ / Python / JS 人工智能机器人

文章目录[toc]人工智能 AI Code 写代码测试用golang实现冒泡排序用golang实现计算环比函数goroutine and channel用golang实现二叉树遍历代码用golang实现线程安全的HashMap操作代码using C programming language write a tiny Operation Systemuse C language write a tiny co…

【9】SCI易中期刊推荐——工程技术-计算机:软件工程(中科院4区)

🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…

电脑C盘满了,怎么清理c盘空间?

电脑的C盘是系统盘&#xff0c;存储着操作系统和软件等关键文件&#xff0c;因此当C盘空间不足时&#xff0c;电脑的性能和稳定性都会受到影响。 真实案例&#xff1a;c盘空间莫名其妙变小&#xff1f; “C盘快满了不敢乱删&#xff0c;请问该如何清理&#xff1f;” “求大佬…

八股文(一)

一、箭头函数和普通函数有什么区别 (1)箭头函数比普通函数更加简洁 (2)箭头函数没有自己的this 箭头函数不同于传统JavaScript中的函数&#xff0c;箭头函数并没有属于⾃⼰的this&#xff0c;它所谓的this是捕获其所在上下⽂的 this 值&#xff0c;作为⾃⼰的 this 值&#…

希赛PMP模拟题2022(第9套)

希赛PMP模拟题2022&#xff08;第9套&#xff09; 22 需求和范围 区别 21 什么阶段&#xff1f; 在开发过程中不断衡量 价值 和优先级关系排序20 产品路线图 回顾 团队沟通方式 无法面对面沟通时候 其他人参与 了解项目 需求发布计划 风险 排序发表计划 vs 评审会议 老母鸡 是…

ESP-C3入门14. 实现基本的web server

ESP-C3入门14. 实现基本的web server一、ESP32 IDF创建WEB SERVER的流程1. 配置web服务器2. 注册 URI处理器3. 实现 URI处理器函数4. 处理HTTP请求5. 处理web socket连接6. 注册 URI 处理函数7. 启动HTTP服务器8. 发送响应9. 关闭 http 服务二、本要主要使用API的说明1. httpd_…

编码器的作用和功能有哪些

编码器的作用和功能有哪些 最近很多咨询编码器的作用的&#xff0c;小编结合一下线上和线下的资料&#xff0c;总结了一下&#xff0c;供大家参考。 要说编码器&#xff0c;它的作用很多&#xff0c;主要是用来测量机械运动的速度、位置、角度、距离或计数的&#xff0c;编码器…

SkyWalking使用案例-2

文章目录SkyWalking实现基于容器环境Dubbo微服务链路跟踪部署Dubbo Provider构建Dubbo Provider镜像运行dubbo-provider部署Dubbo Consumer构建Dubbo Consumer镜像运行dubbo-consumer验证SkyWalking收集python项目数据Skywalking告警Skywalking指标Skywalking告警规则SkyWalkin…

62. 不同路径

62. 不同路径 一个机器人位于一个 m∗nm * nm∗n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路…

virtualbox7虚拟机中安装苹果macOS big sur系统详细教程

第1步&#xff0c;在 Windows 10/11 PC 上启用虚拟化。 现在的电脑一般都默认开启虚拟化技术了。 如果你遇到一些报错&#xff0c;比如收到错误消息“无法在虚拟机上打开会话”&#xff0c;可以查看 如果没有遇到问题&#xff0c;可以直接进入到第二步。 第2步&#xff0c;在…