首页 > 其他分享 >vue学习记录 10

vue学习记录 10

时间:2023-07-03 11:55:49浏览次数:40  
标签:10 vue false val 记录 -- components 2023

项目目录……改一点

“src/view/learn-bussiness-catch”:
| bsns0628
|--| components
|--|--| additem.vue  //组件 添加事件 表单
|--|--| eidtitem.vue //组件 编辑 项事件 表单
|--|--| seeitem.vue  //组件 查看详情 项事件 表单
|--|--| prgitem.vue  //组件 审批详情 项事件 表单
|--|--| loadup.vue   //组件 上传文件确认事件 弹窗
|--|--| loaddown.vue //组件 下载文件确认事件 弹窗
|--|--| sethead.vue  //组件 改变表头项
|--|--| sub-req.vue  //搜索条件
|--| index.vue       //数据处理都搁这,还有表格显示
| bsns0630

开始重写


 nextTick用法参考网址: https://www.jianshu.com/p/a7550c0e164f 用于苟住数据。

在created用:渲染html前调用,初始化值再渲染。
在mounted用:渲染html后调用,页面完成后操作dom。


 

过程中错愕的发现个人习惯 import subReq from './components/sub-req' 

但是VS Code输入import subReq回车会自动写成 import subReqVue from './components/sub-req.vue' 

上网查了一下,都可以,那就辛苦VS Code了。


 

对于el-table的属性:
    ref="用于引用的表名"
    :data="数据源变量"
    tooltip-effect="dark"
    style="width: 100%"
    @selection-change="选择行时的函数"

单行选中事件:

选择行时的函数(val) {
  this.存单行数据的变量 = val;
  //done
}

多行选中的事件:

toggleSelection(rows){
  //用的时候直接写toggleSelection(),不用带参
  //如果带参,写toggleSelection([数据源[i]]),表示对应项
  if (rows) {
    rows.forEach(row => {
      this.$refs.multipleTable.toggleRowSelection(row);
    });
  } else {
    this.$refs.multipleTable.clearSelection();
  }
}

index施工:

 

  1 <template>
  2   <div class="normal-price">
  3     <el-tag>
  4         这是一个练习页面,创建于20230628,目标为订单状态追踪,参考订单管理(新)界面。
  5     </el-tag>
  6     <!-- 条件筛选栏 sub-req 传值form,按钮处返回data-->
  7     <sub-req :sform="form" @search="search"/>
  8     <!-- 按钮操作栏 el-row-->
  9     <el-row style="margin: 10px;">
 10       <div style="float: left; display: flex;">
 11         <el-button size="small" @click="isadd = true" icon="el-icon-plus">添加</el-button>
 12         <el-button size="small" @click="datadel()" icon="el-icon-delete">删除</el-button>
 13         <el-button size="small" @click="isloadup = true" icon="el-icon-upload2">导入</el-button>
 14         <el-button size="small" @click="isloaddown = true" icon="el-icon-download">导出</el-button>
 15       </div>
 16       <div style="float: right; display: flex;">
 17         <el-button circle plain icon="el-icon-refresh" type="primary" size="small"
 18         @click="loadData()"/>
 19         <el-button circle plain icon="el-icon-s-tools" type="primary" size="small"
 20         @click="issethead = true"/>
 21       </div>
 22     </el-row>
 23     <!-- 数据表单 el-table 
 24     参数说明:
 25       ref="datatable"//表示调用可以用这个名datatable
 26       border//表示带边框,可以拖曳调整列宽
 27       height="400"//为了固定表头、定下表单高度
 28       v-loading="isload"//是否显示加载图标
 29       :data="data"//表单数据源
 30       :hdata="hdata"//表头数据源
 31       @selection-change="getItem"//获取单行选中数据
 32     -->
 33     <el-table
 34       header-cell-style="
 35         background-color: RGB(236,245,255);
 36         color: #409EFF;
 37         border-color: RGB(236,245,255);"
 38       ref="datatable"
 39       border
 40       v-loading="isload"
 41       :data="data"
 42       :hdata="hdata"
 43       size="mini"
 44       @selection-change="getItem"
 45     >
 46       <!-- 多选框的选择框框列 -->
 47       <el-table-column type="selection"/>
 48       <!-- 若干数据列 -->
 49       <el-table-column
 50         v-for="item in hdata"
 51         :key="item"
 52         :prop="item.prop"
 53         :label="item.label"
 54         :fixed="item.fixed"
 55         :sortable="item.sortable">
 56       </el-table-column>
 57       <!-- 行末操作列 -->
 58       <el-table-column
 59         fixed="right"
 60         label="操作"
 61         width="150">
 62         <template slot-scope="scope">
 63           <el-tooltip class="item" effect="dark" content="编辑内容" placement="top-end">
 64             <el-button circle size="mini" icon="el-icon-edit" 
 65             @click="OPENedit(scope.row)"></el-button>
 66           </el-tooltip>
 67           <el-tooltip class="item" effect="dark" content="查看详情" placement="top-end">
 68             <el-button circle size="mini" icon="el-icon-s-order" 
 69             @click="OPENsee(scope.row)"></el-button>
 70           </el-tooltip>
 71           <el-tooltip class="item" effect="dark" content="查看审批" placement="top-end">
 72             <el-button circle size="mini" icon="el-icon-s-promotion" 
 73             @click="OPENprg(scope.row)"></el-button>
 74           </el-tooltip>
 75         </template>
 76       </el-table-column>
 77     </el-table>
 78     <!-- 分页功能条 -->
 79     <el-pagination
 80       style="margin: 5px 0; display: flex; justify-content: flex-end"
 81       @current-change="PageChange"
 82       @size-change="SizeChange"
 83       :current-page.sync="pageInfo.pageIndex"
 84       :page-sizes="[5, 10, 20, 50, 100]"
 85       :page-size="pageInfo.pageSize"
 86       :total="pageInfo.pageCount"
 87       layout="total,sizes, prev, pager, next, jumper"
 88     ></el-pagination>
 89 
 90     <!-- 到此直接显示内容编辑完毕 -->
 91     <!-- 以下为按钮事件弹窗dialog
 92       dialog提交事件统一命名为SB函数-即SubmitXXX
 93       dialog传值-父传子变量统一命名为FTC变量-即FatherToChildXXX
 94       dialog传值-子传父事件统一命名为CTF函数-即ChildToFatherXXX -->
 95 
 96     <!-- 上传文件事件 传值已部署:CTF-data -->
 97     <el-dialog
 98       title="上传文件"
 99       :visible.sync="isloadup">
100       <loadup-vue @CTFaddexcel="CTFaddexcel"/>
101     </el-dialog>
102     <!-- 下载文件事件 传值已部署:FTC-data -->
103     <el-dialog
104       title="下载文件"
105       :visible.sync="isloaddown">
106       <loaddown-vue :FTCloaddown="data"/>
107     </el-dialog>
108     <!-- 添加按钮表单 传值已部署:CTF-data -->
109     <el-dialog
110       title="添加数据"
111       :visible.sync="isadd">
112       <additem-vue @CTFadd="CTFadd"/>
113     </el-dialog>
114     <!-- 更改表头表单 传值已部署:FTC+CTF-hdata -->
115     <el-dialog
116       title="更改表头"
117       :visible.sync="issethead">
118       <sethead-vue :FTCsethead="hdata" @CTFsethead="CTFsethead"/>
119     </el-dialog>
120 
121     <!-- 编辑项表单 传值已部署:FTC+CTF-dataitem
122     {{dataitem}}将用于测试选中功能是否正常-->
123     <el-dialog
124       title="信息编辑"
125       :visible.sync="isedit">
126       <eidtitem-vue :FTCedit="dataitem" @CTFedit="CTFedit"/>
127       {{ dataitem }}
128     </el-dialog>
129     <!-- 查看项详情表单 传值已部署:FTC-dataitem -->
130     <el-dialog
131       title="查看详情"
132       :visible.sync="issee">
133       <seeitem-vue :FTCsee="dataitem"/>
134       {{ dataitem }}
135       <span slot="footer" class="dialog-footer">
136         <el-button @click="issee = false">取 消</el-button>
137         <el-button type="primary" @click="SBsee">确 定</el-button>
138       </span>
139     </el-dialog>
140     <!-- 查看项审批表单 传值已部署:FTC-dataitem -->
141     <el-dialog
142       title="查看审批"
143       :visible.sync="isprg">
144       <prgitem-vue :FTCprg="dataitem"/>
145       {{ dataitem }}
146       <span slot="footer" class="dialog-footer">
147         <el-button @click="isprg = false">取 消</el-button>
148         <el-button type="primary" @click="SBprg">确 定</el-button>
149       </span>
150     </el-dialog>
151 
152     <!-- 功能测试: 删除按钮能否对特定行操作 Notification → methods -->
153   </div>
154 </template>
155 
156 <script type="text/ecmascript-6">
157 import { isNullOrUndefined } from 'util'
158 import additemVue from './components/additem.vue'
159 import eidtitemVue from './components/eidtitem.vue'
160 import loaddownVue from './components/loaddown.vue'
161 import loadupVue from './components/loadup.vue'
162 import prgitemVue from './components/prgitem.vue'
163 import seeitemVue from './components/seeitem.vue'
164 import setheadVue from './components/sethead.vue'
165 import subReq from './components/sub-req.vue'
166 
167 export default {
168   name: 'learn0628',
169   components: {
170     subReq,
171     setheadVue,
172     seeitemVue,
173     prgitemVue,
174     loaddownVue,
175     loadupVue,
176     eidtitemVue,
177     additemVue,
178   },
179   data () {
180     return {
181       pageInfo: { //分页默认展示配置
182         pageIndex: 1,    //所在页数
183         pageSize: 10,    //每页展示项数
184         pageCount: 6,    //总项数
185       },
186       form: {}, //存放sub-req表单的选择数据
187       data: [],//每页展示的数据列表
188       dataget: [//数据源
189         {
190         ssid:'SSA1',
191         ssdate:'2023-06-27',
192         cstname:'张三',
193         cstpower:'A',
194         money:'1234',
195         gotime:'2023-06-28',
196         sskind:'已审核',
197         htid:'HTA1',
198         paykind:'3期',
199         paybool:'已付款'
200       },{
201         ssid:'SSA2',
202         ssdate:'2023-06-27',
203         cstname:'李四',
204         cstpower:'B',
205         money:'4321',
206         gotime:'2023-06-28',
207         sskind:'未审核',
208         htid:'HTA2',
209         paykind:'3期',
210         paybool:'未付款'
211       },{
212         ssid:'SSA3',
213         ssdate:'2023-06-27',
214         cstname:'王五',
215         cstpower:'C',
216         money:'1111',
217         gotime:'2023-06-28',
218         sskind:'已审核',
219         htid:'HTA3',
220         paykind:'6期',
221         paybool:'未付款'
222       },{
223         ssid:'SSA4',
224         ssdate:'2023-06-27',
225         cstname:'赵六',
226         cstpower:'C',
227         money:'1001',
228         gotime:'2023-06-28',
229         sskind:'已审核',
230         htid:'HTO3',
231         paykind:'3期',
232         paybool:'未付款'
233       },{
234         ssid:'SSA5',
235         ssdate:'2023-06-27',
236         cstname:'王五',
237         cstpower:'C',
238         money:'2211',
239         gotime:'2023-06-28',
240         sskind:'已审核',
241         htid:'HTW3',
242         paykind:'6期',
243         paybool:'已付款'
244       },{
245         ssid:'SSA6',
246         ssdate:'2023-06-27',
247         cstname:'陈二',
248         cstpower:'A',
249         money:'2211',
250         gotime:'2023-06-28',
251         sskind:'已审核',
252         htid:'HTS1',
253         paykind:'3期',
254         paybool:'已付款'
255       }],
256       hdata:[],  // 表单的表头
257       hdataget: [//表头源
258       {
259         prop:'ssid',
260         label:'订单号',
261         fixed:"left",
262       },{
263         prop:'cstname',
264         label:'客户名',
265         fixed:"left",
266       },{
267         prop:'cstpower',
268         label:'客户等级',
269         fixed:"left",
270       },{
271         prop:'money',
272         label:'金额',
273         fixed:false,
274       },{
275         prop:'ssdate',
276         label:'下单日期',
277         fixed:false,
278       },{
279         prop:'gotime',
280         label:'发货日期',
281         fixed:false,
282       },{
283         prop:'sskind',
284         label:'订单状态',
285         fixed:false,
286       },{
287         prop:'htid',
288         label:'合同号',
289         fixed:false,
290       },{
291         prop:'paykind',
292         label:'结算方式',
293         fixed:false,
294       },{
295         prop:'paybool',
296         label:'付款状态',
297         fixed:false,
298       }],
299       dataitems: [],   //表单选中项
300       dataitem:[],     //表单操作选择项
301       isload: false,   //表单是否只展示加载图标
302 
303       //是否打开表单
304       isadd:false,
305       isedit:false,
306       isloadup:false,
307       isloaddown:false,
308       isprg:false,
309       issee:false,
310       issethead:false,
311     }
312   },
313   created() {
314     console.log("dataget",this.dataget)
315     //下载数据
316     this.loadData()
317     //重新设置表头
318     this.$nextTick(() => {
319       this.setHead()
320     })
321   },
322   methods: {
323     datadel() {
324       //测试: 删除按钮能否对特定行操作 Notification
325       //不敢真的删了
326       this.$notify({
327         title:"删除",
328         message: this.dataitems,
329         type:'success'
330       })
331     },
332     //表单数据项选择
333     getItem(val) {
334       this.dataitems = val
335     },
336     //页面功能布置-表单行操作
337     OPENedit(val) {
338       this.isedit=true
339       this.dataitem=val
340     },
341     SBedit(val) {
342       this.isedit=false
343       this.dataitem=val
344     },
345     OPENsee(val) {
346       this.issee=true
347       this.dataitem=val
348     },
349     SBsee(val) {
350       this.issee=false
351       this.dataitem=val
352     },
353     OPENprg(val) {
354       this.isprg=true
355       this.dataitem=val
356     },
357     SBprg(val) {
358       this.isprg=false
359       this.dataitem=val
360     },
361     //传值事件
362     CTFsethead(val) {
363       if(isNullOrUndefined(val)){
364         this.$notify({
365           title:"表头设置运行结果",
366           message: "表头设置返回为空",
367           type:'info'
368         })
369       } else {
370         this.hdata=val
371       }
372     },
373     CTFadd(val) {
374       if(isNullOrUndefined(val)){
375         this.$notify({
376           title:"按钮添加项事件运行结果",
377           message: "添加项返回为空",
378           type:'info'
379         })
380       } else {
381         this.data.unshift(val)
382       }
383     },
384     CTFaddexcel(val){
385       if(isNullOrUndefined(val)){
386         this.$notify({
387           title:"按钮添加文件事件运行结果",
388           message: "添加项返回为空",
389           type:'info'
390         })
391       } else {
392         cnt=0
393         val.array.forEach(it => {
394           this.data.unshift(it)
395           cnt++
396         })
397         this.$notify({
398           title:"文件上传事件运行结果",
399           message: "文件上传成功,数据已添加 "+cnt+" 项",
400           type:'info'
401         })
402       }
403     },
404     CTFedit(val){
405       if(isNullOrUndefined(val)){
406         this.$notify({
407           title:"按钮编辑项事件运行结果",
408           message: "编辑项返回为空",
409           type:'info'
410         })
411       } else {
412         this.dataitem=val
413         //需要测试能否在table改变,不能的话遍历data改变。
414       }
415     },
416     search(val) { //返回查询结果data
417       if(isNullOrUndefined(val)){
418         this.$notify({
419           title:"按钮搜索事件运行结果",
420           message: "搜索返回为空",
421           type:'info'
422         })
423       } else {
424         this.data=val
425       }
426     },
427     //页面事件
428     loadData() { //表单刷新
429       //Todo
430       this.pageInfo.pageIndex=1
431       if(this.pageInfo.pageSize<this.dataget.length){
432         this.data=this.dataget.slice(0,this.pageInfo.pageSize)
433       }else{
434         this.data=this.dataget
435       }
436     },
437     setHead() { //表头刷新
438       //Todo
439       this.hdata=this.hdataget
440     },
441     PageChange(val) { //页数变化时触发
442       this.pageInfo.pageIndex=val
443       var bgn=(this.pageInfo.pageIndex-1)*this.pageInfo.pageSize
444       var end=bgn+this.pageInfo.pageSize
445       if(end>this.dataget.length){
446         end=this.dataget.length
447       }
448       this.data=this.dataget.slice(bgn,end)
449       console.log("tablePageInfo",this.pageInfo)
450     },
451     SizeChange(val) { //每页行数变化时触发
452       this.pageInfo.pageSize=val
453       this.pageInfo.pageIndex=1
454       if(this.pageInfo.pageSize<this.dataget.length){
455         this.data=this.dataget.slice(0,this.pageInfo.pageSize)
456       }else{
457         this.data=this.dataget
458       }
459       console.log("tablePageInfo",this.pageInfo)
460     },
461   }
462 }
463 </script>
464 
465 <style lang="stylus" rel="stylesheet/stylus" scoped>
466 .normal-price {
467   width: 100%;
468   height: 100%;
469 }
470 </style>

没连数据库,用的测试数据。

发现代码有可以精简的地方,不过先把components下的补完再说。

标签:10,vue,false,val,记录,--,components,2023
From: https://www.cnblogs.com/yyn20230517/p/17514166.html

相关文章

  • vue 插槽透传
    vue2:<templatev-for="(_,name)in$scopedSlots"v-slot:[name]="data"><slot:name="name"v-bind="data"/></template>vue3: <templatev-for="namein$slots":key="nam......
  • MIT6.5840 lab2,3 记录
    参考链接课程地址如何Debug:没有它可怎么活,几万行的日志怎么看Students'GuidetoRaftraft算法可视化:直观展示raft可视化简单入门raft讲解视频:强烈推荐感想感觉理论+实践来学一个东西才学的深刻,特别是对于我这样对抽象理解不太行的,每次见识了一个算法或系统真正如何运行......
  • 天合光能产品怎么样?新一代光储电站系统以及210至尊系列“黄金尺寸”组件闪耀欧洲
     6月16日,德国Intersolar展会圆满落幕。天合光能携新一代光储电站系统解决方案以及领先的至尊N型700W超高功率组件首度亮相欧洲市场。此外,包括中版型605W及小版型450W在内的210“黄金尺寸”全系列N型组件,以及新一代N型i-TOPcon先进技术吸引了大量专业参观者深度交流。 01“黄......
  • LTC1042CN8#PBF ADI芯片 电子元器件 芯脉芯城
    LTC1042CN8#PBF是一款精密可编程单电源比较器的集成电路。以下是关于LTC1042CN8#PBF的详细参数:供电电压范围:LTC1042CN8#PBF的工作电源电压范围为2.7V至16V。它适用于多种电源电压条件,提供了灵活的供电选项。低功耗:该器件采用CMOS技术,具有低功耗特性。它的工作电流非常低,典型值为2......
  • vue+elementui实现树形结构表格且合并同一个children的单元格
    1、实现效果2、结构代码(给table添加classname)3、通过设置css实现合并同一个children的单元格.nonRelationalDatabase{//去除横向边框::v-deep.el-table__row{  td{   border-bottom:none!important;  } }//......
  • 【调试笔记】韦东山:在100ASK_IMX6ULL板子上支持其他型号的屏幕
    论  坛:http://bbs.100ask.net/(学术答疑)公 众 号:百问科技版本日期作者说明V12020韦东山技术文档在100ASK_IMX6ULL板子上支持其他型号的屏幕1.在100ASK_IMX6ULL底板上如何接其他厂家的屏幕很多学员有过STM32的学习经验,他们手上的开发板很多,LCD也很多。一个LCD还挺贵的,不能浪......
  • UVA210 双端队列模拟并行程序
    #include<iostream>#include<algorithm>#include<string>#include<sstream>#include<vector>#include<queue>#include<cstring>usingnamespacestd;constintmaxn=10001;//uva210:题意模拟n个程序的并行执行,有赋值,打印,lock,unlock,......
  • 100W数据去重,用distinct还是group by
    京东太狠:100W数据去重,用distinct还是groupby,说说理由?原创 40岁老架构师尼恩 技术自由圈 2023-06-0411:37 发表于广东收录于合集#面试题86个技术自由圈疯狂创客圈(技术自由架构圈):一个技术狂人、技术大神、高性能发烧友圈子。圈内一大波顶级高手、架构师、......
  • Python 3.10 - Original Packages
    zzh@ZZHPC:~$pip3listPackage                Version------------------------------------apturl                 0.5.2bcrypt                 3.2.0blinker                1.4Brlapi      ......
  • 前端Vue腾讯地图SDK Api经纬度解析为地址信息Geocoding 可用于定位经纬度信息解析为地
    前端Vue腾讯地图SDKApi经纬度解析为地址信息Geocoding可用于定位经纬度信息解析为地址, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13311效果图如下:cc-tencentGeocoding使用方法//引入腾讯地图sdkimportqqmapsdkfrom"../../util......