2021-7-10 SDU暑期项目实训日志报告06

学习目标:

这篇博客记录我7-08、7-09号两天的学习工作。
工作目标:实现座位图形的可视化展示,力争实现拖拽或单击来编辑座位布局的功能。


学习内容:

(一)部分代码展示:

<template> 
 
	<el-form :inline="true" :model="formInline" class="user-search">
		
	<el-form-item label="行数:">
	  <el-input size="small" v-model="formInline.row" 
			placeholder="输入行数"></el-input>
	</el-form-item>  
	<el-form-item label="列数:">
	  <el-input size="small" v-model="formInline.col" 
			placeholder="输入列数"></el-input>
	</el-form-item>  
	<el-form-item>
	  <el-button size="small" type="primary" icon="el-icon-search" @click="createSeat">创建布局</el-button> 
	</el-form-item>
 
    <div>点击控制可用不可用</div>
      <div v-for="(item,index) in list" :key="item"   >
		 <vuedraggable    >
		   <transition-group class="wrapper">
          <div v-for="(item2,index2) in item.split(',') " 
		  :key="item2"  
		  class="item" 
		   @click="setName(index,index2,item2)" >
                        {{item2}}
            </div>
		</transition-group>
		</vuedraggable> 
      </div> 

  
  </el-form>
</template>

<script>
import vuedraggable from 'vuedraggable';
import axios from 'axios';
export default { 
  components: {vuedraggable},
  props: {
  },
  data() {
    return {
	  formInline:{row:'',col:''},
      list: []
    }
  },
  updated() { 
  },
  methods: {
	  createSeat(){
		  var row=this.formInline.row;
		  if(row==''){
			  this.$message({
			    type: 'fail',
			    message: '行数不能为空!'
			  })
			  return;
		  }
		  
		   var col=this.formInline.col;
		   if(col==''){
		   			  this.$message({
		   			    type: 'fail',
		   			    message: '列数不能为空!'
		   			  })
		   			  return;
		   }
		   var mylist=[];
		   var x=1;
		   for(var i=0;i<row;i++){
			   var str="";
			  for(var j=1;j<=col;j++){
				  str+="座位"+x+",";
				  x++;
			  }  
			   mylist.push( str.substring(0,str.length-1));
		   } 
		   this.list=mylist;
		   
		   
	  },setName(index,index2,e){
		  var col=this.formInline.col;
		  var mylist=this.list;
		   var newlist=[]; 
		  for(var i=0;i<mylist.length;i++){
			  var seat=mylist[i];
			  if(i==index){
				  var myseat=seat.split(",");
				  var seatStr="";
				  for(var x=0;x<myseat.length;x++){
					  if(x==index2){
						   if(e=='不可用'){
							    seatStr+="座位"+(index2+1+index*col)+",";  
						   }else{
							    seatStr+="不可用,";  
						   }
						  
					  }else{
						 seatStr+=myseat[x]+",";  
					  } 
					
				  }
				  
				  newlist.push( seatStr.substring(0,seatStr.length-1));
			  }else{
				 newlist.push(seat); 
			  } 
		  }
		  this.list=newlist;
	  }
  }
}
</script>
<style scoped>
.wrapper { 
   display: flex;
   -webkit-flex-wrap: wrap;
   flex-wrap: wrap;
   -webkit-align-content: center;
   align-content: flex-start;
}
.item{
  width: 80px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  background-color: #42b983;
  margin-right: 20px;
  margin-top: 20px;
  color: #ffffff;
}
</style>

(二)成果展示
目前已经实现通过单击将座位变为不可用来编辑座位状态。如图:
创建一个5*6的教室
在这里插入图片描述
通过单击将某些座位变为不可用状态
在这里插入图片描述
再次单击部分已变为不可用的座位,将其再变为可用。
在这里插入图片描述


学习过程总结:

需要反复调试,挺麻烦的。在自己编码的时候也意识到了前期学习的基础知识的重要性。


学习计划:

下周将进一步完善目前已有的界面,并与后端组进行对接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值