# 会员导出一周功能
# 1. 前端模块修改
- 先确定要添加的按钮,以及对应要展示的信息。
- 然后去首页那里找了上一周以及下一周的按钮以及中间的toolTips信息
- 再从菜单管理,找到对应的组件位置,copy过来到指定的位置,然后再把相关的属性也一并paste过来。
**注意:新增的属性以及方法要放到原本对应位置的后面,方便后续修改调试。以及与自己******要使用到的参数尽量要从新定义,不与别人的参数进行复用。****
- 就是根据是否点击导出,将起止时间与对应的参数进行绑定,然后直接添加一个按钮触发函数onClick,并在里面完成增就是从xxxx-M/M-d/d 的格式转换成YYYY-MM-DD的格式;就是如下函数:
`html
oneClickWeek() {
this.$parent.one_click = 1
this.$parent.one_clickWeek = 1
var startStr = this.weekDayArr0.adate.substring(0, this.weekDayArr0.adate.length - 4)
var endStr = this.weekDayArr6.adate.substring(0, this.weekDayArr6.adate.length - 4)
// var startTime = "2024年10月10日"
// console.log(startTime);
// console.log(endTime);
startStr = startStr.replace(/(d{4})年(d{1,2})月(d{1,2})日/g, (_, year, month, day) => {
// 使用模板字符串和逻辑或操作符来补齐月份和日期的前导零
return ${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}
;
});
endStr = endStr.replace(/(d{4})年(d{1,2})月(d{1,2})日/g, (_, year, month, day) => {
// 使用模板字符串和逻辑或操作符来补齐月份和日期的前导零
return ${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}
;
});
// console.log(startTime);
// console.log(endTime);
this.query.one_week_time0 = new Date(startStr)
this.query.one_week_time1 = new Date(endStr)
console.log("ee", endStr);
this.$parent.toDownload()
},
`
因为本来已经有了一个导出本月会员的功能,因此我也是直接调用了,这里只是对起止日期参数进行格式化。
- 最后有一个关键的参数就是one_clickWeek,就是如果点击了该按钮,将该参数的值设置为1,并将该参数也传入后端,然后多传入两个参数给后端进行SQL查询,判断如下:
`html
this.params'one_clickWeek' = this.one_clickWeek
if (this.one_clickWeek) {
this.params'week_start_time' = moment(one_week_time0).format('YYYY-MM-DD HH:mm:ss')
this.params'week_end_time' = moment(one_week_time1).format('YYYY-MM-DD') " 23:59:59"
}
`
**其实这里有个问题,在方法内定义的const类型参数,为什么要用this指向他才可以获取,否则会提示未定义(undefined)。**
- 最后将参数传入之后,在finally语句块中再将相关参数进行初始化
# 2. 后端模块修改
- 这里直接根据导出功能所在的api接口去修改。可以f12查看调用了哪个接口,然后再在idea中**ctrl shif r进行全局搜索**,这下就可以快速查找出来api所在的文件。
- 找到之后梳理代码逻辑。最终添加了获取新传过来的参数,确定是否要进行导出一周操作,还是导出一个月的操作,判断语句如下即可:代码如下:
`python
one_click_week = params.get("one_clickWeek", 0) # 是否导出一周 1:是 0:否
if int(one_click_week) == 1:
print("one_click_week")
where = 'AND u.date_joined between %s and %s '
week_start_time = params.get('week_start_time', None)
week_end_time = params.get('week_end_time', None)
where_params.append(week_start_time)
where_params.append(week_end_time)
else:
print("one_click_mouth")
now_time = datetime.now()
month_start = datetime(now_time.year, now_time.month, 1)
where = 'AND u.date_joined between %s and %s '
where_params.append(month_start)
where_params.append(now_time)
`
其实这里都可以把"where = 'AND u.date_joined between %s and %s '"这句话提出外面,但是当时忘记了,就算了。
工作心得
转眼间,我在这家公司已经度过了数个春秋,每一天都像是与时间赛跑,既忙碌又充实。回望这段旅程,我深刻体会到,工作不仅仅是为了生计,更是一场自我提升与实现的征途。
初入职场时,我满怀激情却也不乏迷茫。面对复杂多变的业务环境和层出不穷的新任务,我常常感到力不从心。但正是这些挑战,激发了我不断学习的动力。我开始主动加班加点,利用业余时间钻研业务知识,参加各种培训和学习交流会,不断提升自己的专业素养和综合能力。
随着时间的推移,我逐渐适应了工作的节奏,也开始在工作中找到属于自己的位置。我发现,工作不仅仅是对专业技能的考验,更是对心态和意志的磨砺。每当遇到困难和挫折时,我都会提醒自己保持冷静和乐观,积极寻找解决问题的办法。这种积极向上的心态,让我在工作中更加从容不迫,也赢得了同事和领导的信任和认可。
更重要的是,我深刻体会到了团队合作的力量。在团队中,我们共同面对挑战、分享成功、互相学习、共同成长。每当我遇到难题时,总会有同事伸出援手;每当我取得成绩时,也会得到团队的热烈祝贺。这种温暖和谐的氛围,让我更加热爱这份工作,也更加珍惜与同事们的深厚情谊。
展望未来,我深知前方还有更多的挑战和机遇等待着我。但我相信,只要保持一颗学习的心、一份坚韧的意志、一份积极的态度和一份团队的精神,我就一定能够在工作中不断取得新的成绩和突破。我相信,未来的我一定会感谢现在努力奋斗的自己。