当前位置: 首页 > news >正文

木鱼的网站宁波应用多的建站行业

木鱼的网站,宁波应用多的建站行业,新媒体管家wordpress,属于网站建设过程规划和准备阶段的是根据关键字合并表格 1.实现初始化表格2.实现添加班级与学生的功能3.添加的弹窗4.删除班级5.删除学生 首先看最终实现的效果 1.实现初始化表格 这里主要用到的是表格的span-method这个方法 templatediv classmain-pagediv classflex-en… 根据关键字合并表格 1.实现初始化表格2.实现添加班级与学生的功能3.添加的弹窗4.删除班级5.删除学生 首先看最终实现的效果 1.实现初始化表格 这里主要用到的是表格的span-method这个方法 templatediv classmain-pagediv classflex-enddiv classpublic-search添加班级/div/divel-table border :datatableData stripe stylewidth: 100%; :span-methodobjectSpanMethodel-table-column label班级 aligncenter propclass /el-table-column label姓名 aligncenter propname /el-table-column label课程 aligncenter propcourse /el-table-column label备注 aligncenter propremark /el-table-column fixedright label删除学生 aligncentertemplate #defaultscopespan classdel-btn删除/span/template/el-table-columnel-table-column fixedright label操作 aligncentertemplate #defaultscopespan classadd-btn添加学生/spanspan classdel-btn删除班级/span/template/el-table-column/el-table/div /templatescript setup import { ref } from vue;const tableData ref() //表格数据// 第一列的的索引 const firstIndex ref([]) // 相同行数名的索引的值 const mergerRowIndex ref([]) //合并表格列 const objectSpanMethod ({ row, column, rowIndex, columnIndex }) {if (![1, 2, 3, 4].includes(columnIndex)) { // 从0开始数第1,2, 3, 4列是需要合并的if (rowIndex 0) {return {rowspan: firstIndex.value[0],colspan: 1}}if (firstIndex.value[0] rowIndex rowIndex 0) {return {rowspan: 0,colspan: 0}}for (let i 0; i firstIndex.value.length; i) {if (rowIndex firstIndex.value[i]) {return {rowspan: firstIndex.value[i 1] - firstIndex.value[i],colspan: 1}}if (firstIndex.value[i 1] rowIndex rowIndex firstIndex.value[i]) {return {rowspan: 0,colspan: 0}}}} } // 查验有无相同行数名的对象,如果知道不同行数名的位置则记住其位置并且压入 const getMergerRowIndex () {// 每次调用这个函数就需要把之前压入到函数内的值给清空mergerRowIndex.value []firstIndex.value []for (let i 1; i tableData.value.length; i) {if (tableData.value[i].class ! tableData.value[i - 1].class) {mergerRowIndex.value.push(i);firstIndex.value.push(i);}}// 并且还要压入表格的的长度mergerRowIndex.value.push(tableData.value.length);firstIndex.value.push(tableData.value.length); }//请求接口获取数据 const getData () {let data [{ id: 1, class: 一班, name: 张三, course: 数学, remark: 数学年级第二, },{ id: 2, class: 一班, name: 李四, course: 语文, remark: 语文还行, },{ id: 3, class: 一班, name: 王五, course: 英语, remark: 英语一般般, },{ id: 4, class: 二班, name: 向小小, course: 语文, remark: 语文年级第一, },{ id: 5, class: 二班, name: 杨六六, course: 数学, remark: 数学年级第一, },]tableData.value datagetMergerRowIndex() } getData() /scriptstyle langscss scoped .main-page {.flex-end {display: flex;justify-content: end;margin-bottom: 10px;}.add-btn {color: #0077ef;margin-right: 4px;cursor: pointer;}.del-btn {color: #f56c6c;cursor: pointer;}.public-search {background: #0077ef;border-radius: 4px;height: 32px;padding: 0 14px;text-align: center;color: #ffffff;cursor: pointer;align-items: center;display: flex;user-select: none;} } /style 初始化后的页面 2.实现添加班级与学生的功能 关键代码 //给添加班级与添加学生绑定事件 div classpublic-search clickaddStudents(null, null)添加班级/div span classadd-btn clickaddStudents(scope.$index, scope.row)添加学生/span //为了方便管理数据给新增弹窗重新定义了一个组件AddClass AddClass v-model:showshowClass :rowrowList :tableDatatableData addClassaddClass /script import AddClass from ./AddClass.vue; //引入组件const showClass ref(false) const rowList ref() //行数据 const rowIndex ref(0) //点击的多少行//添加学生和班级 const addStudents (index, row) {rowIndex.value index || 0rowList.value row || {}showClass.value true }//添加班级或学生 const addClass (form) {//这里全局都是根据class来判断唯一值的视具体情况而修改let len tableData.value.filter(res res.class form.class).length;if (len 0) {len tableData.value.length;}//新增学生的随机idform.id Math.random()//使用splice(xx,0,{}) 这个方法在指定位置加数据tableData.value.splice(len rowIndex.value, 0, {...form})getMergerRowIndex() } /script最后实现的效果 3.添加的弹窗 templatediv classadd-classel-dialog v-modeldialogVisible title新增 width480px :before-closecloseDialogel-form refruleFormRef :modelruleForm label-width120px label-positiontop classdemo-ruleFormel-form-item label班级 propclass v-if!hasClassel-select v-modelruleForm.class filterable allow-create default-first-option placeholder请输入或者选择班级el-option label一班 value一班 /el-option label二班 value二班 /el-option label三班 value三班 /el-option label四班 value四班 /el-option label五班 value五班 //el-select/el-form-itemel-form-item label姓名 propnameel-input v-modelruleForm.name //el-form-itemel-form-item label课程 propcourseel-input v-modelruleForm.course //el-form-itemel-form-item label备注 propremarkel-input v-modelruleForm.remark :rows2 typetextarea //el-form-item/el-formtemplate #footerspan classdialog-footerel-button typeprimary clickonSubmit确定/el-buttonel-button clickcloseDialog取消/el-button/span/template/el-dialog/div /templatescript setup import { ref, reactive, defineEmits, defineProps, computed, watch } from vue import { ElMessage } from element-plus const emits defineEmits([update:show]); const props defineProps({show: Boolean,row: Object || {},tableData: Array }) watch(props, () {if (props.row props.row.class) {ruleForm.class props.row.classhasClass.value true} else {ruleForm.class hasClass.value false} }) const hasClass ref(false) //是否有class const dialogVisible computed({get: () { return props.show },set: newVal emits(update:show, newVal) }); const ruleForm reactive({ class: ,name: ,course: ,remark: , }) const ruleFormRef ref() const closeDialog () {dialogVisible.value falseruleFormRef.value ruleFormRef.value.resetFields() } const onSubmit async () {//如果存在班级则不能继续添加班级if (!hasClass.value) {if (props.tableData.some(res res.class ruleForm.class)) {ElMessage.error(已存在该班级);return;}}emits(addClass, ruleForm)closeDialog() } /scriptstyle langscss scoped .add-class { } /style 新增班级弹窗效果 新增学生的效果 4.删除班级 关键代码 //绑定事件span classdel-btn clickdelClass(scope.$index, scope.row)删除班级/spanimport { ElMessage, ElMessageBox } from element-plus //删除班级 const delClass (index, row) {ElMessageBox.confirm(是否删除班级${row.class}?,{confirmButtonText: 确定,cancelButtonText: 取消,type: warning,}).then(() {let len tableData.value.filter(res res.class row.class).lengthtableData.value.splice(index, len)getMergerRowIndex()ElMessage({type: success,message: 删除成功,})}).catch(() {ElMessage({type: info,message: 取消操作,})}) }实现效果 5.删除学生 关键代码 //绑定事件 span classdel-btn clickdelStudents(scope.row)删除/span//删除学生 const delStudents (row) {ElMessageBox.confirm(是否删除学生${row.name}?,{confirmButtonText: 确定,cancelButtonText: 取消,type: warning,}).then(() {tableData.value tableData.value.filter(item {return item.id ! row.id})getMergerRowIndex()ElMessage({type: success,message: 删除成功,})}).catch(() {ElMessage({type: info,message: 取消操作,})}) }效果图 end 关于修改其实和新增差不多这里就没有写了合并表格并实现增删改查的功能就是这些。 全部代码可以关注这里哦
http://www.w-s-a.com/news/6178/

相关文章:

  • google 浏览器开源seo软件
  • 网站空间是什么意思自己怎样建设网站
  • 国外家装设计网站如何做软件开发
  • 凡科建站登录官网当当网网站建设策划书
  • 网站百度屏蔽关键词杭州排名优化公司
  • h5响应式网站模板下载wordpress鼠标指针
  • 摄影作品投稿网站目前最好的引流推广方法
  • 资源站源码永久dede网站搬家 空间转移的方法
  • 网站建设销售的技巧话语it培训机构
  • 自建本地网站服务器wordpress南充房产网最新楼盘最近房价
  • 郑州代做网站天津哪里能做网站
  • 网站如何做排名网站建设项目的工作分解
  • 洛阳网络建站公司网站开发主流语言
  • 广州各区正在进一步优化以下措施seo值是什么意思
  • 滨州建网站公司京东云 wordpress
  • 网站视频背景怎么做免费的网络推广有哪些
  • 申请网站怎样申请广西壮族自治区专升本业务系统
  • 写作网站哪个网站做ic外单好
  • 苏州和城乡建设局网站撸撸撸做最好的导航网站
  • 网站被同行抄袭怎么办深圳中装建设集团
  • 建站及推广瓦房店 网站建设
  • 怎么查网站是在哪里备案的广州电力建设有限公司网站
  • 做网站自己申请域名还是对方wordpress管理地址
  • 专门做二手书网站或appwordpress首页显示特定分类文章
  • 无锡网站设计厂家一建十个专业含金量排名
  • 网站刷链接怎么做成都高度网站技术建设公司
  • flash网站模板怎么用xml网站地图生成
  • 英文网站优化群晖wordpress中文
  • saas建站平台源码济南品牌网站建设公司
  • 网站建设一般是用哪个软件网站百度