工作日记

33 阅读4分钟

2025.11.3

1.给评分界面增加一个总分计算: 前端需要传用户ID给后端,用get请求即可,带上自定义的字段:

// 计算总分 
let user = tool.data.get('USER_INFO')
let userInfo = JSON.stringify(user)
let data = {
	createUser: JSON.parse(userInfo).id
}
ywScoreApi.allScore(data).then((data)=>{
	console.log("收到分数" + data)
	allScore.value=data
})

后端接收,比较重要的是查SQL语句,用到了sum函数,同时增加条件DELETE_FLAG='NOT DELETE'

@Select(
"select sum(SCORE),CREATE_USER from YW_SCORE_DETAIL where CREATE_USER = #{create_user} and DELETE_FLAG = 'NOT_DELETE'")
Long scoreAll(String createUser);

2.点击评分的时候输入框的数字不要立刻重置为0:

// formState.score = 0

3.自学了a-row、a-col、a-card用法

1)a-row:
gutter:列之间的间距(单位:px)`gutter="10"`(列间距 10px)
justify:控制列在水平方向的对齐方式 `start`(左对齐)、`center`(居中)、`end`(右对齐)、`space-between`(两端对齐)
align:控制列在垂直方向的对齐方式 `top`(顶部对齐)、`middle`(垂直居中)、`bottom`(底部对齐)
(2)a-col:
`span` 列占的份数(0-1212 为满行) `span="4"`(占 1/3 行) `xs` 超小屏幕(<576px,如手机)时的占比 `xs="12"`(手机上占满行)
`sm` 小屏幕(≥576px,如平板竖屏)时的占比 `sm="6"`(平板竖屏占半行)
`md` 中屏幕(≥768px,如平板横屏)时的占比 `md="4"` 
`lg` 大屏幕(≥992px,如小电脑)时的占比 `lg="3"`
`xl` 超大屏幕(≥1200px,如大电脑)时的占比 `xl="2"`3)a-card:
`title` 卡片标题(显示在顶部) `title="用户信息"`             `bordered` 是否显示边框(默认 `true` 显示) `bordered="false"`(无边框)
`extra` 卡片右上角的额外内容(比如操作按钮) `extra="编辑"` 或 `<template #extra><a-button>编辑</a-button></template>`
`bodyStyle` 卡片内容区的样式(比如内边距、背景色) `bodyStyle="{ padding: '20px' }"`                           `hoverable` 鼠标悬停时是否显示阴影效果 `hoverable="true"`

2025.11.4

今天早上写了个用户手册
代码改好,功能一定要测试是不是完整可用了再上传代码打包到正式环境,前端是用npm run build,后端用maven的package打包

2025.11.5

今天更改了两个需求,一个是前端显示pdf要分页展示,另一个是打分的时候要提示用户还有哪一项指标还没有打分

思路:第一个

2025.11.6~11.18

做了物料管理和物料分类和项目信息管理,其中项目信息管理要批量新增

2025.11.18

1、a-select组件初始化时会根据value渲染为label,a-switch组件如果你绑定的是一个布尔属性变量的话,就不用去绑定checked-value和un-checked-value,不然传的就是字符串值,js用if判定字符串的话就一直是true3

2、/flw/templateSn/gen/{templateCode}面对这种格式的请求路径,springboot怎么接收,这是问豆包的结果,前端传值的话就是'gen/直接拼接数据'

@GetMapping("/gen/{templateCode}")
    public ResultVO<String> genTemplateSn(
            // 校验规则:非空 + 长度2-32位
            @PathVariable("templateCode") 
            @NotBlank(message = "模板编码不能为空")
            @Size(min = 2, max = 32, message = "模板编码长度必须在2-32位之间")
            String templateCode
    ) {
        String sn = templateSnService.generateSn(templateCode);
        return ResultVO.success("生成成功", sn);
    }

3、vue3父传子以及子传父

父传子:直接在组件用 :子定义的名字=父定义的名字 ,子用const props = defineProps(['子定义的名字'])接收,调用用props.自定义的名字,支持横杆转驼峰式。

子传父:数据只能单向流动,因此不能直接改props里的内容来传递给父,只能通过事件绑定
1、defineExpose({})

2025.11.19

今天修改了评分系统,增加了一个下载佐证材料的功能,点击按钮进行下载,关键是用dom创建标签

const link = document.createElement('a')
	link.href = fileName.value
	link.style.display = 'none'
	document.body.appendChild(link)
	link.click()
	document.body.removeChild(link)

本来在弄库存盘点的,那个盘点方案和盘点任务联合起来真的是有点麻烦,只有源码参考,后面说不急先不用搞了,弄采购需求和供货清单去了。

2025.11.20

又是修改评分系统,要点击某个具体的内容加载内容的,直接丢了个count变量,点击的话不为0才去加载具体内容,不然返回空,这里返回空要从后端返回,不能前端直接返回,这样会报错。

点击会亮的动态绑定

:class="变量名==1 ? '类名-active' : '类名-common'"

测试发现编辑功能回显异常,通过f12查看到后端把name设置到id里面去了,所以回显异常,直接在后端把这段注释即可