vue+ElementUI遇到的问题
"placeholder="selectdate"format="yyyyMMddday"value-format="yyyy-MM-dd":picker-options="pickerOptions">
value-format="yyyy-MM-dd"日期格式转换5、点击下拉选项@change时遇到的一个函数,根据下拉的选择执行box不同的值可以用来改变周围的属性值。6.后台返回的值是前台值对应的标签转换成的值:formatter为每一列绑定属性formatter,值为一个函数,返回待翻译的中文字符串
中的定义数据Expertsp:[{value:'1',label:'New'},{value:'2',label:'Approving'},{value:'3',label:'Approved'},{value:'4',label:'ApprovingNotpassed'}],//这个函数执行了多少次on会触发多少条数据(后台数据传输,前台遍历显示对应值)functiongetExpertsp(row,col){for(variinthis.Expertsp){if(this.Expertsp[i].value==row.expertsp){returnthis.Expertsp[i].label}}},7.vue为每一行添加序号①当我们要在el-table中添加序号列时,如下我们翻页的时候会惊奇的发现,序号会一直从1开始,因为每次翻页都是按照当前数据的索引显示,所以我们需要自定义转换如下{{(page-1)*pageSize+scope.$index+1}}两个{{scope.$index+1}}8.clearableinthedrop-downbox函数可以清除下拉框中的内容可过滤The搜索功能,可以搜索该字段已有的内容9.遇到功能,跳转到本页翻完后,返回打开的页面,刷新原来的Interface//跳转后页面刷新,数据和方法同级beforeRouteLeave(to,from,next){console.log(to.path)to.meta.keepAlive=falsenext()},10.解决界面无法渲染,但是属性有值,无法显示。方法:手动渲染this.$forceUpdate()//当数据层过多时,可以手动调用触发render函数自动更新this.$set(this.formdata,'firstname',name+sex)我理解的意思:this.formdata(可以是表单的绑定属性,也可以是表格;'firstname'是属性名的单引号;name+sex是firstname赋值)11.附件下载特殊字符问题附件下载路径包含空格/等特殊字符,前台会报400错误,无法访问后台。您需要使用encodeURIComponent函数对特殊url字符进行转码。location.href=this.serverName+'/noticeDaiGuaWang/purchaseDocDownload.do?path='+encodeURIComponent(row.noticefile)12.头痛!!!大bug元素的dateTimePicker组件清除选择时间报错TypeError:Cannotreadproperty'0'ofnull。在vue脚本中添加如下代码:"form2.date"对应el-date-picker的v-model值watch:{"formdata.createtime"(newVal){if(newVal==null){this.formdata.createtime=[];}}},13.解决vue点击链接后第一次可以访问到后台查询数据,第二次找不到数据的问题/*监控路径跳转,第二次点击没有的解决方法生效!!!/watch:{'$route'(to,from){//阻止先清除缓存数据this.formdata={}this.tableData=[]//this.$route.query.(自己业务需要的值)this.loadRouteRow(this.$route.query.row,this.$route.query.batch,this.$route.query.noticeName)//跳转后赋值//自己调用querymethodthis.selectMaterialSizeMsgList(this.$route.query.row)}},14.在跳转界面解决再次跳转到另一个界面返回红色数据丢失,保存跳转前页面的数据。/**如果不知道什么时候会跳转,写在这个生命周期,跳转到页面时保存本页的值Data*/beforeDestroy(){//变量名,要存储的对象sessionStorage.setItem('formdata',JSON.stringify(this.formdata))sessionStorage.setItem('tableData',JSON.stringify(this.tableData))sessionStorage.setItem('optionsSupplierName',JSON.stringify(this.optionsSupplierName))},创建(){//获取源数据getItem('optionsSupplierName'))//Object.assign方法赋值(目标对象,源对象)Object.assign(this.formdata,formdata)Object.assign(this.tableData,tableData)Object.assign(this.optionsSupplierName,optionsSupplierName)},15.求解BigDecimal类型query没有值则显示0letdata=response.data.data//如果判断值为0,for(letkeyindata){if(data[key]==0){data[key]=''}}16.解决点击dialog会有阴影的问题弹出窗口。Dialog有影子解决方法:解决方法:在el-dialog中添加append-to-body。17.实例解决methods方法调用想实现同步(因为axions和ajax有点不同)避免接收到promise类型的数据,很难获取值/***我自己的实例(这个是调用method),*我的理解是因为这里有表单验证,async放在(validate)之后*然后调用同步方法需要加上await关键字*//**新建save函数*/newSave(ruleForm){this.$refs[ruleForm].validate(async(valid)=>{if(valid){//validationmaxXuhao=awaitthis.getUnitID()})}/***这是被调用的方法*关键字:asyncawait*//**Queryunitid*/asyncgetUnitID(){varurl='PurchaseResultEdit/getUnitID.do'varparam={}awaitaxios.get(url,param).then(response=>{if(response.data.code=='0'){letmaxXuhao=''if(response.data.data!=null){maxXuhao=response.data.data+1}else{maxXuhao=1}this.unitID=maxXuhao}else{this.$message({type:'error',message:'操作失败!'+response.data.msg});}});},18。vue判断是否包含indexof,如果判断不等于-1,则存在存在值if(',11,12,13,14,15,32,'&&',11,12,13,14,15,32,'.indexOf(','+localStorage.affairid+',')!=-1&&localStorage.deptid!=''&&localStorage.deptid!=null){zhongxin=localStorage.deptid}