jeecgboot修改登录界面、背景图等
页面及对应操作前端页面疑难杂症1.实现按某一字段排序: list 页面使用2.实现字段的省略:3.实现list页面点击某一字段,实现正序倒序切换;4.输入框添加自定义校验5下拉框默认选择6刷新vue页面中某一组件7导出时,数据按某个字段排序后端疑难杂症1.queryWrapper中时间的比较:2.实体类中使用非数据库的字段页面及对应操作
userLayout.vue:可修改登录背景图、标题、下方文字连接
login.vue:登录模块的相应设
index.html:可修改页面在浏览器中标签页的名称、logo,以及全局配置
logo.vue:可修改对应的logo,有logo路径,还有项目标题
GlobalHeader.vue:修改头部样式
GlobalFooter.vue:修改底部样式
TabLayout:修改进入系统后,浏览器标签页名称,
shiroconfig:用于在未登录系统时,就可以执行一些请求(拦截器释放请求)
前端页面疑难杂症
1.实现按某一字段排序: list 页面使用
/* 排序参数 */
isorter:{
column: ‘titleSort’,
order: ‘asc’,
},
在data(){return{}}中存放;
2.实现字段的省略:
在字段中添加属性
、
3.实现list页面点击某一字段,实现正序倒序切换;
sorter: (a, b) => a.keyTaskSupervisionSort - b.keyTaskSupervisionSort,
代码如下:
{title:'督办排序',align:"center",dataIndex: 'keyTaskSupervisionSort',width:100,sorter: (a, b) => a.keyTaskSupervisionSort - b.keyTaskSupervisionSort,},
4.输入框添加自定义校验
level2Category: {rules: [{ required: true, message: '请输入二级类别!'},{ validator: this.validateTemplateCode}]},
validateTemplateCode(rule, value, callback){getAction("/yc/titleManagement/queryById",{id:value}).then((res)=>{console.log("表单",this.form)if(res.result.titleType != 2){callback("只能为二级标题添加任务");}else{callback();}})},
5下拉框默认选择
在校验规则中添加:
v-decorator="[ 'equipmentType', {initialValue:this.defaultType,rules: validatorRules.equipmentType.rules}]"
在data(){return{ }}中写入 defaultType的值;
data () {return {defaultType:'1',}
6刷新vue页面中某一组件
为某一组件绑定key值,当key值发生改变时,该组件会重新刷新。
//组件<j-dict-select-tag :key="reLoadModul" type="list" v-decorator="['equipmentId', validatorRules.equipmentId]" :trigger-change="true" dictCode="pre_equipment_management,equipment_code,id,pre_equipment_management.id NOT IN (SELECT equipment_id FROM collecter_equipment_address )" placeholder="请选择设备id"/>//methods中 调用该方法后,该组件重新加载add () {this.reLoadModul += 1;this.edit({});},
7导出时,数据按某个字段排序
在导出方法中的param处指定order、column两个属性
handleExportXls_person(fileName){if(!fileName || typeof fileName != "string"){fileName = "导出文件"}else{fileName = this.value + fileName;}let param = {...this.queryParam};if(this.selectedRowKeys && this.selectedRowKeys.length>0){param['selections'] = this.selectedRowKeys.join(",")}console.log("导出参数",param)param.order = 'asc'; //此处指定排序方式param.column = 'month'; //此处指定按什么字段downFile(this.url.exportXlsUrl,param).then((data)=>{if (!data) {this.$message.warning("文件下载失败")return}if (typeof window.navigator.msSaveBlob !== 'undefined') {window.navigator.msSaveBlob(new Blob([data],{type: 'application/vnd.ms-excel'}), fileName+'.xls')}else{let url = window.URL.createObjectURL(new Blob([data],{type: 'application/vnd.ms-excel'}))let link = document.createElement('a')link.style.display = 'none'link.href = urllink.setAttribute('download', fileName+'.xls')document.body.appendChild(link)link.click()document.body.removeChild(link); //下载完成移除元素window.URL.revokeObjectURL(url); //释放掉blob对象}})},//导出方法
后端疑难杂症
1.queryWrapper中时间的比较:
String time= DateFormatUtils.format(new
Date(),“yyyy-MM-dd HH:mm:ss”);//当前时间
queryWrapper.apply(“UNIX_TIMESTAMP(end_time) >= UNIX_TIMESTAMP(’” + time + “’)”);
2.实体类中使用非数据库的字段
@TableField(exist = false)//非数据库字段private java.lang.String appearTime;