jeecgboot修改登录界面、背景图等的页面记录

本文介绍JeecgBoot框架的个性化配置方法,包括登录界面调整、前后端疑难问题解决技巧,如排序、字段省略、自定义校验等功能实现。


页面及对应操作

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 = url
            link.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;
### 使用 JeecgBoot 创建登录页面 JeecgBoot 是一款基于 Spring Boot 和 Vue 技术栈的企业级低代码开发框架,提供了丰富的功能模块和灵活的扩展能力。为了创建自定义的登录页面,可以通过以下方式实现。 #### 自定义登录页面的核心流程 在 JeecgBoot 中,默认提供了一个基础的登录页面模板,如果需要对其进行修改或者完全替换,则可以按照如下方法操作: 1. **定位默认登录页面路径** 默认情况下,JeecgBoot登录页面位于 `src/views/login` 文件夹下[^1]。开发者可以根据需求调整该文件中的 HTML 结构以及样式设计。 2. **修改 Shiro 配置** 如果希望某些接口无需经过身份验证即可访问(例如验证码获取),则需编辑 `ShiroConfig.java` 文件,在其中设置相应的拦截规则并释放特定 URL 请求[^2]。以下是示例代码片段: ```java @Bean public ShiroFilterChainDefinition shiroFilterChainDefinition() { DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition(); // 放行静态资源与公共 API 接口 chainDefinition.addPathDefinition("/captcha.jpg", "anon"); chainDefinition.addPathDefinition("/login", "anon"); // 其他受保护的路由... chainDefinition.addPathDefinition("/**", "authc"); return chainDefinition; } ``` 3. **更新前端逻辑** 对于前端部分,主要涉及两个方面的工作:一是调整表单提交行为;二是处理服务端返回的结果状态码。具体而言,可以在 Vue 组件中通过 Axios 发送 POST 请求完成用户认证过程。下面展示一段简单的 JavaScript 实现代码作为参考: ```javascript methods: { handleSubmit() { const params = { username: this.username, password: this.password }; axios.post('/sys/login', params).then(response => { if (response.data.success) { localStorage.setItem('token', response.data.result.token); this.$router.push('/'); } else { alert('用户名或密码错误!'); } }).catch(error => console.error(error)); }, }, ``` 4. **优化用户体验** 考虑到实际应用场景下的多样性需求,还可以进一步增强交互效果,比如加入图形验证码机制来提升安全性、适配移动端设备显示布局等。 --- #### 注意事项 - 在进行任何动之前,请务必先备份原始文件以防意外丢失重要数据。 - 若计划引入第三方库辅助开发,则应仔细阅读官方文档确认兼容性情况后再行动。 ---
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值