Compare commits

...

9 Commits
wh ... master

Author SHA1 Message Date
王壕 955682cd6a w
3 years ago
王壕 f60a7cb38e 3
3 years ago
王壕 2653c698c5 3
3 years ago
王壕 e9a394a98c 123
3 years ago
王壕 7930926338 1
3 years ago
王壕 6ead8d03c2 2
3 years ago
王壕 2dbf0acaa4 Merge branch 'wh'
3 years ago
王壕 426c7b5ff7 2
3 years ago
王壕 acd9b514bb 2
3 years ago

@ -1,2 +0,0 @@
# aw

@ -0,0 +1,47 @@
package com.example.demo.common.util;
public class FormatResponseUtil {
/**
*
*/
public static ResponseResult formatResponse() {
ResponseResult result = null;
return formatResponse(result);
}
private static ResponseResult formatResponse(ResponseResult result) {
if (result == null) {
result = new ResponseResult(true, "请求成功", null);
}
return result;
}
/**
* ,
*/
public static ResponseResult formatResponse(Object object) {
return new ResponseResult(true, "请求成功", object);
}
/**
*
*/
public static ResponseResult formatResponse(String msg, Object object) {
return new ResponseResult(true, msg, object);
}
/**
*
*/
public static ResponseResult error(Exception e) {
return new ResponseResult(false, e.getMessage());
}
/**
*
*/
public static ResponseResult error(String exception) {
return new ResponseResult(false, exception);
}
}

@ -0,0 +1,34 @@
package com.example.demo.common.util;
import lombok.Data;
@Data
public class ResponseResult {
/**
*
*/
private boolean success;
/**
*
*/
private String msg;
/**
*
*/
private Object data;
public ResponseResult(boolean success, String msg, Object data) {
this.success = success;
this.msg = msg;
this.data = data;
}
public ResponseResult(boolean code, String msg) {
this.success = success;
this.msg = msg;
}
public ResponseResult(boolean success) {
this.success = success;
}
}

@ -0,0 +1,33 @@
package com.example.demo.config.config;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.example.demo.domain.Task;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
@Component
public class BaseEntityMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
// 创建时间自动填充
if (metaObject.hasSetter(Task.CREATE_TIME) && ObjectUtil.isNull(getFieldValByName(Task.CREATE_TIME, metaObject))) {
this.strictInsertFill(metaObject, Task.CREATE_TIME, LocalDateTime.class, LocalDateTime.now());
}
}
@Override
public void updateFill(MetaObject metaObject) {
//修改时间自动填充
if (metaObject.hasSetter(Task.MODIFIED_TIME) && ObjectUtil.isNull(getFieldValByName(Task.MODIFIED_TIME, metaObject))) {
this.strictUpdateFill(metaObject, Task.MODIFIED_TIME, LocalDateTime.class, LocalDateTime.now());
}
}
}

@ -0,0 +1,27 @@
package com.example.demo.config.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* MybatisPlus
*
* @author huang
* @since 2022-03-18
*/
@Configuration
public class MybatisPlusConfig {
/**
*
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}

@ -0,0 +1,42 @@
package com.example.demo.controller;
import com.example.demo.common.util.FormatResponseUtil;
import com.example.demo.common.util.ResponseResult;
import com.example.demo.domain.Dragon;
import com.example.demo.service.impl.DragonServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/dragon")
public class DragonController {
@Autowired
DragonServiceImpl dragonService;
@GetMapping("/dragonList")
public ResponseResult queryAll() {
return FormatResponseUtil.formatResponse(dragonService.queryAll());
}
@PostMapping("/addDragon")
public ResponseResult addDragon(@RequestBody Dragon dragon) {
//System.out.println("1111111111");
return FormatResponseUtil.formatResponse(dragonService.save(dragon));
}
@DeleteMapping("/delete")//这里执行的是物理删除
public ResponseResult delTDragonById(Integer id) {
return FormatResponseUtil.formatResponse(dragonService.delDragonById(id));
}
@GetMapping("/one")
public ResponseResult queryById(int id) {
return FormatResponseUtil.formatResponse(dragonService.queryDragonById(id));
}
@PostMapping("/dragonInfo")
public ResponseResult updateArea(@RequestBody Dragon dragon) {
return FormatResponseUtil.formatResponse(dragonService.updateById(dragon));
}
}

@ -0,0 +1,355 @@
package com.example.demo.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.demo.domain.*;
import com.example.demo.mapper.*;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpSession;
import java.util.List;
@Controller
public class Webcontroller {
@RequestMapping("/index")
public String first(){
return "index";
}
@Autowired
RcodeMapper rcodeMapper;
@RequestMapping("/login")
@Operation(summary = "登录")
public String login(
@RequestParam("code") String code,
Model model,
HttpSession session
){
QueryWrapper<Rcode> queryWrapper = new QueryWrapper<>();
queryWrapper.like("code", code);
Rcode authrcode = this.rcodeMapper.selectOne(queryWrapper);
String skey = authrcode.getSkey();
// System.out.println(skey);
if(!skey.isEmpty()){
QueryWrapper<User> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.like("skey",skey);
User user=this.userMapper.selectOne(queryWrapper1);
String id=user.getStudentNumber();
session.setAttribute("loginUser",id);
return "dashboard";
}else{
/*
*/
model.addAttribute("msg","验证码错误");
return "index";
}
}
//@RequestMapping("/list")
/*public String numer(){
return "list";
}*/
@Autowired
UserMapper userMapper;
@RequestMapping("/users")
/*
*/
public String numer(ModelMap map){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("name","student_number","power");
List<User> users = userMapper.selectList(queryWrapper);
map.put("users",users);
// System.out.println(users);
// System.out.println(userList);
// model.addAttribute("users",userList);
return "list";
}
/*
*/
@GetMapping("/deluser/{StudentNumber}")
public String delUser(@PathVariable("StudentNumber") String StudentNumber){
/*
*/
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("student_number").like("student_number", StudentNumber);
List<User> users = userMapper.selectList(queryWrapper);
userMapper.delete(queryWrapper);
// System.out.println(users);
// System.out.println(StudentNumber);
return "redirect:/users";
}
/*
*/
@GetMapping("/user/{StudentNumber}")
public String toUpdateUser(@PathVariable("StudentNumber")String StudentNumber,Model model,ModelMap map){
/*
*/
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("name","student_number","power").like("student_number", StudentNumber);
List<User> users = userMapper.selectList(queryWrapper);
// System.out.println(users);
// System.out.println(users.get(10));
// System.out.println(StudentNumber);
model.addAttribute("users",users);
// map.put("users",users);
return "user/update";
}
@RequestMapping("/update")
public String updateUser(
@RequestParam("Studentnumber") String Studentnumber,
@RequestParam("name") String name,
@RequestParam("power") int power,
@RequestParam("stuid") String stuid,
@RequestParam("stuname" )String stuname
){
//
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("student_number",stuid);
User user=this.userMapper.selectOne(queryWrapper);
if(!name.isEmpty()){
user.setName(name);
}else{
user.setName(stuname);
}
if(!Studentnumber.isEmpty()){
user.setStudentNumber(Studentnumber);
}else{
user.setStudentNumber(stuid);
}
user.setStudentNumber(stuid);
user.setPower(power);
this.userMapper.updateById(user);
// List<User> users = userMapper.selectList(queryWrapper);
// System.out.println(user);
return"redirect:/users";
}
@Autowired
TaskMapper taskMapper;
@RequestMapping("totaltask")
public String totasklist(Model model){
QueryWrapper<Task>queryWrapper = new QueryWrapper<>();
queryWrapper.select("id","name","property","status","deadtime");
List<Task> tasks=this.taskMapper.selectList(queryWrapper);
model.addAttribute("tasks",tasks);
return "task/tasklist";
}
@Autowired
DragonMapper dragonMapper;
@RequestMapping("totalgroupnote")
/*
*/
public String togroupnotelist(Model model){
QueryWrapper<Dragon>queryWrapper = new QueryWrapper<>();
queryWrapper.select("id","name","property","status","deadtime");
List<Dragon> tasks=this.dragonMapper.selectList(queryWrapper);
model.addAttribute("tasks",tasks);
return "task/groupnotelist";
}
@Autowired
TasksonMapper tasksonMapper;
@RequestMapping("/item1/{id}")
public String totaskdetail(@PathVariable("id")String id,Model model){
/*
*/
QueryWrapper<Taskson>queryWrapper = new QueryWrapper<>();
queryWrapper.select("task_id","studentnumber","finishtime","filepath").like("task_id", id);
List<Taskson> taskson=this.tasksonMapper.selectList(queryWrapper);
// System.out.println(taskson);
model.addAttribute("taskdetail",taskson);
return "task/taskdetail";
}
// @Autowired
// TasksonMapper tasksonMapper;
@Autowired
DragonsonMapper dragonsonMapper;
@RequestMapping("/item2/{id}")
/*
*/
public String togroupdetail(@PathVariable("id")String id,Model model){
/*
*/
QueryWrapper<Dragonson>queryWrapper = new QueryWrapper<>();
queryWrapper.select("task_id","studentnumber","finishtime","filepath").like("task_id", id);
List<Dragonson> groupson=this.dragonsonMapper.selectList(queryWrapper);
System.out.println(groupson);
model.addAttribute("groupdetail",groupson);
return "task/groupdetail";
}
@RequestMapping("taskedit")
public String totasklistedit(Model model){
QueryWrapper<Task>queryWrapper = new QueryWrapper<>();
queryWrapper.select("id","name","property","status","deadtime");
List<Task> tasks=this.taskMapper.selectList(queryWrapper);
model.addAttribute("tasks",tasks);
return "task/taskeditlist";
}
@GetMapping ("/itemedit1/{id}")
public String totaskedit(@PathVariable("id") String id,Model model){
/*
*/
QueryWrapper<Task>queryWrapper=new QueryWrapper<>();
queryWrapper.select().like("id",id);
List<Task>tasks=this.taskMapper.selectList(queryWrapper);
model.addAttribute("tasks",tasks);
return "/task/taskupdate";
}
/*
*/
@GetMapping("taskupdate")
public String taskedit(@RequestParam("id")String id,
@RequestParam("name") String name,
@RequestParam("property") String property,
@RequestParam("deadtime") String deadtime,
@RequestParam("status") int status
){
QueryWrapper<Task>queryWrapper = new QueryWrapper<>();
queryWrapper.select().like("id", id);
Task task =this.taskMapper.selectOne(queryWrapper);
if(!name.isEmpty()){
task.setName(name);
}
if(!property.isEmpty()){
task.setProperty(property);
}
if (!deadtime.isEmpty()){
task.setDeadtime(deadtime);
}
task.setStatus(status);
// List<Task> tasks=this.taskMapper.selectList(queryWrapper);
// System.out.println(tasks);
this.taskMapper.updateById(task);
return "redirect:/taskedit";
}
@RequestMapping("togroupnoteedit")
/*
*/
public String togroupnoteeditlist(Model model){
QueryWrapper<Dragon>queryWrapper = new QueryWrapper<>();
queryWrapper.select("id","name","property","status","deadtime");
List<Dragon> tasks=this.dragonMapper.selectList(queryWrapper);
model.addAttribute("tasks",tasks);
return "task/groupnoteeditlist";
}
@GetMapping ("/itemedit2/{id}")
public String togroupnoteedit(@PathVariable("id") String id,Model model){
/*
*/
QueryWrapper<Dragon>queryWrapper=new QueryWrapper<>();
queryWrapper.select().like("id",id);
List<Dragon>tasks=this.dragonMapper.selectList(queryWrapper);
model.addAttribute("tasks",tasks);
return "/task/groupnoteupdate";
}
@GetMapping("groupnoteupdate")
public String groupnoteedit(@RequestParam("id")String id,
@RequestParam("name") String name,
@RequestParam("property") String property,
@RequestParam("deadtime") String deadtime,
@RequestParam("status") int status
){
QueryWrapper<Dragon>queryWrapper = new QueryWrapper<>();
queryWrapper.select().like("id", id);
Dragon task =this.dragonMapper.selectOne(queryWrapper);
if(!name.isEmpty()){
task.setName(name);
}
if(!property.isEmpty()){
task.setProperty(property);
}
if (!deadtime.isEmpty()){
task.setDeadtime(deadtime);
}
task.setStatus(status);
// List<Task> tasks=this.taskMapper.selectList(queryWrapper);
// System.out.println(tasks);
this.dragonMapper.updateById(task);
return "redirect:/togroupnoteedit";
}
/*
*/
@GetMapping("/itemdel1/{id}")
public String delTask(@PathVariable("id") String id){
/*
*/
QueryWrapper<Task> queryWrapper = new QueryWrapper<>();
queryWrapper.select().like("id", id);
List<Task> users = this.taskMapper.selectList(queryWrapper);
this.taskMapper.delete(queryWrapper);
// System.out.println(users);
// System.out.println(StudentNumber);
return "redirect:/taskedit";
}
/*
*/
@GetMapping("/itemdel2/{id}")
public String delgroupnote(@PathVariable("id") String id){
/*
*/
QueryWrapper<Dragon> queryWrapper = new QueryWrapper<>();
queryWrapper.select().like("id", id);
List<Dragon> users = this.dragonMapper.selectList(queryWrapper);
this.dragonMapper.delete(queryWrapper);
// System.out.println(users);
// System.out.println(StudentNumber);
return "redirect:/togroupnoteedit";
}
}

@ -0,0 +1,47 @@
package com.example.demo.controller;
import com.example.demo.domain.Task;
import com.example.demo.service.impl.TaskServiceImpl;
import com.example.demo.common.util.FormatResponseUtil;
import com.example.demo.common.util.ResponseResult;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@Tag(name = "WXL")
@RequestMapping("/task")
public class taskController {
@Autowired
public TaskServiceImpl taskService;
@Operation(summary = "获取任务信息")
@GetMapping("/taskList")
public ResponseResult queryAll() {
return FormatResponseUtil.formatResponse(taskService.queryAll());
}
@PostMapping("/addTask")
public ResponseResult addTask(@RequestBody Task task) {
return FormatResponseUtil.formatResponse(taskService.save(task));
}
@DeleteMapping("/delete")//这里执行的是物理删除
public ResponseResult delTaskById(Integer id){
return FormatResponseUtil.formatResponse(taskService.delTaskById(id));
}
@GetMapping("/one")
public ResponseResult queryById(int id){
return FormatResponseUtil.formatResponse(taskService.queryTaskById(id));
}
@PostMapping("/taskInfo")
public ResponseResult updateArea(@RequestBody Task task){
return FormatResponseUtil.formatResponse(taskService.updateById(task));
}
}

@ -0,0 +1,107 @@
package com.example.demo.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;
public class Dragon {
private static final long serialVersionUID = 1L;
public static final String CREATE_TIME = "createTime";
public static final String MODIFIED_TIME = "lastEditTime";
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private String name;
/*
*
* */
private String property;
/**
*
*/
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
private String deadtime;
private Integer status;
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getDeadtime() {
return deadtime;
}
public void setDeadtime(String deadtime) {
this.deadtime = deadtime;
}
/**
*
*/
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime lastTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
public LocalDateTime getLastEditTime() {
return lastTime;
}
public void setLastEditTime(LocalDateTime lastEditTime) {
this.lastTime = lastEditTime;
}
@Override
public String toString() {
return "Dragon{" +
"id=" + id +
", name=" + name +
", priority=" + property +
", createTime=" + createTime +
", lastEditTime=" + lastTime +
"}";
}
}

@ -0,0 +1,118 @@
package com.example.demo.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;
@TableName("task")
public class Task {
private static final long serialVersionUID = 1L;
public static final String CREATE_TIME = "createTime";
public static final String MODIFIED_TIME = "lastTime";
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private String name;
/*
*
* */
private String property;
//任务关联学号
private String stuid;
//任务截止时间
private String deadtime;
//任务状态默认0未完成
private Integer status;
/**
*
*/
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/**
*
*/
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime lastTime;
public String getDeadtime() {
return deadtime;
}
public void setDeadtime(String deadtime) {
this.deadtime = deadtime;
}
public String getStuid() {
return stuid;
}
public void setStuid(String stuid) {
this.stuid = stuid;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
public LocalDateTime getLastTime() {
return lastTime;
}
public void setLastTime(LocalDateTime lastEditTime) {
this.lastTime = lastEditTime;
}
@Override
public String toString() {
return "Task{" +
"id=" + id +
", name=" + name +
", priority=" + property +
", createTime=" + createTime +
", lastEditTime=" + lastTime +
"}";
}
}

@ -0,0 +1,12 @@
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.domain.Dragon;
import org.apache.ibatis.annotations.Mapper;
/**
*
*/
@Mapper
public interface DragonMapper extends BaseMapper<Dragon> {
}

@ -0,0 +1,18 @@
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.domain.Task;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper
* </p>
*
* @author huang
* @since 2022-03-27
*/
@Mapper
public interface TaskMapper extends BaseMapper<Task> {
}

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.DragonMapper">
</mapper>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.TaskMapper">
</mapper>

@ -0,0 +1,25 @@
package com.example.demo.service;
import com.example.demo.domain.Dragon;
import java.util.List;
/**
*
*/
public interface IDragonService {
/**
* Area
*/
List<Dragon> queryAll();
/**
* IdDragon
*/
Dragon queryDragonById(int id);
/**
* IdDragon
*/
boolean delDragonById(int id);
}

@ -0,0 +1,29 @@
package com.example.demo.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.domain.Task;
import java.util.List;
/**
* <p>
*
* </p>
*/
public interface ITaskService extends IService<Task> {
/**
* Area
*/
List<Task> queryAll();
/**
* IdTask
*/
Task queryTaskById(int id);
/**
* IdTask
*/
boolean delTaskById(int id);
}

@ -0,0 +1,43 @@
package com.example.demo.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.domain.Dragon;
import com.example.demo.mapper.DragonMapper;
import com.example.demo.service.IDragonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class DragonServiceImpl extends ServiceImpl<DragonMapper, Dragon> implements IDragonService {
@Autowired
DragonMapper dragonMapper;
@Override
public List<Dragon> queryAll() {
LambdaQueryWrapper<Dragon> wrapper = Wrappers.lambdaQuery();
wrapper.orderByAsc(Dragon::getId);
List<Dragon> dragonList = dragonMapper.selectList(wrapper);
return dragonList;
}
@Override
public Dragon queryDragonById(int id) {
Dragon dragon = dragonMapper.selectById(id);
return dragon;
}
@Override
public boolean delDragonById(int id) {
boolean ans;
int i = dragonMapper.deleteById(id);
return ans = i > 0 ? true : false;
}
}

@ -0,0 +1,56 @@
package com.example.demo.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.demo.domain.Task;
import com.example.demo.mapper.TaskMapper;
import com.example.demo.service.ITaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* <p>
*
* </p>
*
*/
@Service
public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements ITaskService {
@Autowired(required = false)
TaskMapper taskMapper;
@Override
public List<Task> queryAll() {
LambdaQueryWrapper<Task> wrapper = Wrappers.lambdaQuery();
wrapper.orderByAsc(Task::getId);
List<Task> taskList = taskMapper.selectList(wrapper);
return taskList;
}
@Override
public Task queryTaskById(int id) {
Task task = taskMapper.selectById(id);
return task;
}
@Override
public boolean delTaskById(int id) {
boolean ans;
int i = taskMapper.deleteById(id);
return ans = i>0 ? true:false;
}
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,93 @@
body {
font-size: .875rem;
}
.feather {
width: 16px;
height: 16px;
vertical-align: text-bottom;
}
/*
* Sidebar
*/
.sidebar {
position: fixed;
top: 0;
bottom: 0;
left: 0;
z-index: 100; /* Behind the navbar */
padding: 0;
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1);
}
.sidebar-sticky {
position: -webkit-sticky;
position: sticky;
top: 48px; /* Height of navbar */
height: calc(100vh - 48px);
padding-top: .5rem;
overflow-x: hidden;
overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
}
.sidebar .nav-link {
font-weight: 500;
color: #333;
}
.sidebar .nav-link .feather {
margin-right: 4px;
color: #999;
}
.sidebar .nav-link.active {
color: #007bff;
}
.sidebar .nav-link:hover .feather,
.sidebar .nav-link.active .feather {
color: inherit;
}
.sidebar-heading {
font-size: .75rem;
text-transform: uppercase;
}
/*
* Navbar
*/
.navbar-brand {
padding-top: .75rem;
padding-bottom: .75rem;
font-size: 1rem;
background-color: rgba(0, 0, 0, .25);
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25);
}
.navbar .form-control {
padding: .75rem 1rem;
border-width: 0;
border-radius: 0;
}
.form-control-dark {
color: #fff;
background-color: rgba(255, 255, 255, .1);
border-color: rgba(255, 255, 255, .1);
}
.form-control-dark:focus {
border-color: transparent;
box-shadow: 0 0 0 3px rgba(255, 255, 255, .25);
}
/*
* Utilities
*/
.border-top { border-top: 1px solid #e5e5e5; }
.border-bottom { border-bottom: 1px solid #e5e5e5; }

@ -0,0 +1,49 @@
html,
body {
height: 100%;
}
body {
display: -ms-flexbox;
display: -webkit-box;
display: flex;
-ms-flex-align: center;
-ms-flex-pack: center;
-webkit-box-align: center;
align-items: center;
-webkit-box-pack: center;
justify-content: center;
padding-top: 40px;
padding-bottom: 40px;
/*background-color: #f5f5f5;*/
}
.form-signin {
width: 100%;
max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.form-signin .checkbox {
font-weight: 400;
}
.form-signin .form-control {
position: relative;
box-sizing: border-box;
height: auto;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
.form-signin input[type="email"] {
margin-bottom: -1px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.form-signin input[type="password"] {
margin-bottom: 10px;
border-top-left-radius: 0;
border-top-right-radius: 0;
}

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 612 612">
<g sodipodi:docname="twitter_bootstrap_logo.svg" inkscape:version="0.48.1 r9760" xmlns:svg="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
<path fill="#563D7C" d="M612 510c0 56.1-45.9 102-102 102H102C45.9 612 0 566.1 0 510V102C0 45.9 45.9 0 102 0h408c56.1 0 102 45.9 102 102v408z"/>
<path fill="#FFF" d="M166.3 133h173.5c32 0 57.7 7.3 77 22s29 36.8 29 66.5c0 18-4.4 33.4-13.2 46.2-8.8 12.8-21.4 22.8-37.8 29.8v1c22 4.7 38.7 15.1 50 31.2 11.3 16.2 17 36.4 17 60.8 0 14-2.5 27.1-7.5 39.2-5 12.2-12.8 22.7-23.5 31.5s-24.3 15.8-41 21-36.5 7.8-59.5 7.8h-164V133zm62.5 149.5h102c15 0 27.5-4.2 37.5-12.8s15-20.8 15-36.8c0-18-4.5-30.7-13.5-38s-22-11-39-11h-102v98.6zm0 156.5h110.5c19 0 33.8-4.9 44.2-14.8 10.5-9.8 15.8-23.8 15.8-41.8 0-17.7-5.2-31.2-15.8-40.8s-25.2-14.2-44.2-14.2H228.8V439z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,14 @@
/**
* 网页登录二维码生成
* auther:wangh
* 2022.11.6
*/
createCode()
{
let codeNumber = '';
for (var i = 0; i < 0; i++) {
codeNumber += Math.floor(Math.random() * 10);
}
this.codeNumber = codeNumber;
this.qrCode = ''
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,233 @@
<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="asserts/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="asserts/css/dashboard.css" rel="stylesheet">
<style type="text/css">
/* Chart.js */
@-webkit-keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
@keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
.chartjs-render-monitor {
-webkit-animation: chartjs-render-animation 0.001s;
animation: chartjs-render-animation 0.001s;
}
</style>
</head>
<body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<nav class="col-md-2 d-none d-md-block bg-light sidebar">
<div class="sidebar-sticky">
<ul class="nav flex-column">
<li class="nav-item">
<a class="nav-link active" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-home">
<path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path>
<polyline points="9 22 9 12 15 12 15 22"></polyline>
</svg>
Dashboard <span class="sr-only">(current)</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file">
<path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path>
<polyline points="13 2 13 9 20 9"></polyline>
</svg>
Orders
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-shopping-cart">
<circle cx="9" cy="21" r="1"></circle>
<circle cx="20" cy="21" r="1"></circle>
<path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path>
</svg>
Products
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-users">
<path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
<circle cx="9" cy="7" r="4"></circle>
<path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
<path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
</svg>
Customers
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-bar-chart-2">
<line x1="18" y1="20" x2="18" y2="10"></line>
<line x1="12" y1="20" x2="12" y2="4"></line>
<line x1="6" y1="20" x2="6" y2="14"></line>
</svg>
Reports
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-layers">
<polygon points="12 2 2 7 12 12 22 7 12 2"></polygon>
<polyline points="2 17 12 22 22 17"></polyline>
<polyline points="2 12 12 17 22 12"></polyline>
</svg>
Integrations
</a>
</li>
</ul>
<h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted">
<span>Saved reports</span>
<a class="d-flex align-items-center text-muted" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-plus-circle"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="16"></line><line x1="8" y1="12" x2="16" y2="12"></line></svg>
</a>
</h6>
<ul class="nav flex-column mb-2">
<li class="nav-item">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
<polyline points="14 2 14 8 20 8"></polyline>
<line x1="16" y1="13" x2="8" y2="13"></line>
<line x1="16" y1="17" x2="8" y2="17"></line>
<polyline points="10 9 9 9 8 9"></polyline>
</svg>
Current month
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
<polyline points="14 2 14 8 20 8"></polyline>
<line x1="16" y1="13" x2="8" y2="13"></line>
<line x1="16" y1="17" x2="8" y2="17"></line>
<polyline points="10 9 9 9 8 9"></polyline>
</svg>
Last quarter
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
<polyline points="14 2 14 8 20 8"></polyline>
<line x1="16" y1="13" x2="8" y2="13"></line>
<line x1="16" y1="17" x2="8" y2="17"></line>
<polyline points="10 9 9 9 8 9"></polyline>
</svg>
Social engagement
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
<polyline points="14 2 14 8 20 8"></polyline>
<line x1="16" y1="13" x2="8" y2="13"></line>
<line x1="16" y1="17" x2="8" y2="17"></line>
<polyline points="10 9 9 9 8 9"></polyline>
</svg>
Year-end sale
</a>
</li>
</ul>
</div>
</nav>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<h1>404</h1>
</main>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="asserts/js/jquery-3.2.1.slim.min.js" ></script>
<script type="text/javascript" src="asserts/js/popper.min.js" ></script>
<script type="text/javascript" src="asserts/js/bootstrap.min.js" ></script>
<!-- Icons -->
<script type="text/javascript" src="asserts/js/feather.min.js" ></script>
<script>
feather.replace()
</script>
<!-- Graphs -->
<script type="text/javascript" src="asserts/js/Chart.min.js" ></script>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
datasets: [{
data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],
lineTension: 0,
backgroundColor: 'transparent',
borderColor: '#007bff',
borderWidth: 4,
pointBackgroundColor: '#007bff'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false,
}
}
});
</script>
</body>
</html>

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
<table border="0" style="margin-top:4px; margin-left: 18px">
<tr>
<td><a href="#" class="easyui-linkbutton" onclick="downloadfile();">数据导出</a></td>
</tr>
<script>
function downloadfile() {
window.location.href = "/exceldownload";
}
</script>
</table>
</body>
</html>

@ -0,0 +1,176 @@
<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/css/dashboard.css" rel="stylesheet">
<style type="text/css">
/* Chart.js */
@-webkit-keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
@keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
.chartjs-render-monitor {
-webkit-animation: chartjs-render-animation 0.001s;
animation: chartjs-render-animation 0.001s;
}
</style>
</head>
<body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="">admin</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" th:href="@{/index}">Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<nav class="col-md-2 d-none d-md-block bg-light sidebar" th:fragment="sidebar">
<div class="sidebar-sticky">
<ul class="nav flex-column">
<li class="nav-item">
<a class="nav-link active" th:href="@{/totaltask}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-home">
<path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path>
<polyline points="9 22 9 12 15 12 15 22"></polyline>
</svg>
数据统计 <span class="sr-only">(current)</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" th:href="@{/taskedit}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-shopping-cart">
<circle cx="9" cy="21" r="1"></circle>
<circle cx="20" cy="21" r="1"></circle>
<path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path>
</svg>
任务管理
</a>
</li>
<li class="nav-item">
<a class="nav-link" th:href="@{/users}">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-users">
<path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
<circle cx="9" cy="7" r="4"></circle>
<path d="M23 21v-2a4 4 0 0 0-3-3.87"></path>
<path d="M16 3.13a4 4 0 0 1 0 7.75"></path>
</svg>
成员管理
</a>
</li>
</ul>
</div>
</nav>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<div class="chartjs-size-monitor" style="position: absolute; left: 0px; top: 0px; right: 0px; bottom: 0px; overflow: hidden; pointer-events: none; visibility: hidden; z-index: -1;">
<div class="chartjs-size-monitor-expand" style="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;">
<div style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div>
</div>
<div class="chartjs-size-monitor-shrink" style="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;">
<div style="position:absolute;width:200%;height:200%;left:0; top:0"></div>
</div>
</div>
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom">
<h1 class="h2">Dashboard</h1>
<div class="btn-toolbar mb-2 mb-md-0">
<div class="btn-group mr-2">
<button class="btn btn-sm btn-outline-secondary">Share</button>
<button class="btn btn-sm btn-outline-secondary">Export</button>
</div>
<button class="btn btn-sm btn-outline-secondary dropdown-toggle">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-calendar"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
This week
</button>
</div>
</div>
<canvas class="my-4 chartjs-render-monitor" id="myChart" width="1076" height="454" style="display: block; width: 1076px; height: 454px;"></canvas>
</main>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="asserts/js/jquery-3.2.1.slim.min.js" ></script>
<script type="text/javascript" src="asserts/js/popper.min.js" ></script>
<script type="text/javascript" src="asserts/js/bootstrap.min.js" ></script>
<!-- Icons -->
<script type="text/javascript" src="asserts/js/feather.min.js" ></script>
<script>
feather.replace()
</script>
<!-- Graphs -->
<script type="text/javascript" src="asserts/js/Chart.min.js" ></script>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
datasets: [{
data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],
lineTension: 0,
backgroundColor: 'transparent',
borderColor: '#007bff',
borderWidth: 4,
pointBackgroundColor: '#007bff'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false,
}
}
});
</script>
</body>
</html>

@ -0,0 +1,40 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Signin Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}">
<!-- Custom styles for this template -->
<link rel="stylesheet" th:href="@{/css/signin.css}">
</head>
<body class="text-center">
<form class="form-signin" action="/login">
<img class="mb-4" th:src="@{/img/bootstrap-solid.svg}" alt="" width="72" height="72">
<h1 class="h3 mb-3 font-weight-normal">Please sign in</h1>
<p style="color: red" th:text="${msg}" ></p>
<label class="sr-only">Username</label>
<input type="text" name="code" class="form-control" placeholder="微信授权登录(未实现)" required="" autofocus="">
<div class="checkbox mb-3">
<label>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
<p class="mt-5 mb-3 text-muted">© 2017-2018</p>
<a class="btn btn-sm">中文</a>
<a class="btn btn-sm">English</a>
</form>
</body>
</html>

@ -0,0 +1,146 @@
<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang=xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/css/dashboard.css" rel="stylesheet">
<style type="text/css">
/* Chart.js */
@-webkit-keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
@keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
.chartjs-render-monitor {
-webkit-animation: chartjs-render-animation 0.001s;
animation: chartjs-render-animation 0.001s;
}
</style>
</head>
<body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" >Admin</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" th:href="@{/index}"Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<div th:insert="~{dashboard::sidebar}"></div>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<h2>用户管理</h2>
<div class="table-responsive">
<table class="table table-striped table-sm">
<thead>
<tr>
<th>student_number</th>
<th>name</th>
<!-- <th>gender</th>-->
<!-- <th>city</th>-->
<th>power</th>
</tr>
</thead>
<tbody>
<tr th:each="user : ${users}" >
<td th:text="${user.StudentNumber}"></td>
<!-- <td>11</td>-->
<td th:text="${user.name}"></td>
<!-- <td th:text="${user.gender}"></td>-->
<!-- <td th:text="${user.city}"></td>-->
<td th:text="${user.power==0?'user':'admin'}"></td>
<td>
<a class="btn btn-sm btn-primary"th:href="@{/user/}+${user.StudentNumber}">编辑</a>
<a class="btn btn-sm btn-danger"th:href="@{/deluser/}+${user.StudentNumber}">删除</a>
</td>
</tr>
<!-- <tr>-->
<!-- <td th:text="${user.skey}"></td>-->
<!-- </tr>-->
<!-- <tr th:each="user:${users}">-->
<!-- <td th:text="@{}"></td>-->
<!-- </tr>-->
</tbody>
</table>
</div>
</main>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<!-- Icons -->
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>
feather.replace()
</script>
<!-- Graphs -->
<script type="text/javascript" src="/js/Chart.min.js"></script>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
datasets: [{
data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],
lineTension: 0,
backgroundColor: 'transparent',
borderColor: '#007bff',
borderWidth: 4,
pointBackgroundColor: '#007bff'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false,
}
}
});
</script>
</body>
</html>

@ -0,0 +1,144 @@
<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang=xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/css/dashboard.css" rel="stylesheet">
<style type="text/css">
/* Chart.js */
@-webkit-keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
@keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
.chartjs-render-monitor {
-webkit-animation: chartjs-render-animation 0.001s;
animation: chartjs-render-animation 0.001s;
}
</style>
</head>
<body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<!-- <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>-->
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" th:href="@{/index}">Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<div th:insert="~{dashboard::sidebar}"></div>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<table class="table table-striped table-sm">
<thead>
<tr>
<th>ID</th>
<th>学号</th>
<th>提交时间</th>
<th>文件地址</th>
</tr>
</thead>
<tbody>
<tr th:each="item : ${groupdetail}" >
<form th:action="@{/totalgroupnote}" method="get">
<td th:text="${item.Taskid}"></td>
<td th:text="${item.studentnumber}"></td>
<td th:text="${item.finishtime}"></td>
<td th:text="${item.filepath}"></td>
<td><a class="btn btn-sm btn-success"th:href="@{/exceldownload/}+${item.Taskid}">导出</a></td>
<button type="submit" class="btn btn-primary">返回</button>
</form>
</tr>
</tbody>
</table>
</main>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<!-- Icons -->
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>
feather.replace()
</script>
<!-- Graphs -->
<script type="text/javascript" src="/js/Chart.min.js"></script>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
datasets: [{
data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],
lineTension: 0,
backgroundColor: 'transparent',
borderColor: '#007bff',
borderWidth: 4,
pointBackgroundColor: '#007bff'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false,
}
}
});
</script>
</body>
</html>

@ -0,0 +1,139 @@
<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang=xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/css/dashboard.css" rel="stylesheet">
<style type="text/css">
/* Chart.js */
@-webkit-keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
@keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
.chartjs-render-monitor {
-webkit-animation: chartjs-render-animation 0.001s;
animation: chartjs-render-animation 0.001s;
}
</style>
</head>
<body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<!-- <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>-->
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" th:href="@{/index}">Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<div th:insert="~{dashboard::sidebar}"></div>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<h2>接龙管理</h2>
<a class="btn btn-sm btn-success"th:href="@{/taskedit}">切换</a>
<div class="table-responsive">
<table class="table table-striped table-sm">
<thead>
<tr>
<th>id</th>
<th>名称</th>
<th>内容</th>
<th>完成状态</th>
<th>截止时间</th>
</tr>
</thead>
<tbody>
<tr th:each="item : ${tasks}" >
<td th:text="${item.id}"></td>
<td th:text="${item.name}"></td>
<td th:text="${item.property}"></td>
<td th:text="${item.status==0?'未完成':'已完成'}"></td>
<td th:text="${item.deadtime}"></td>
<td><a class="btn btn-sm btn-primary"th:href="@{/itemedit2/}+${item.id}">编辑</a>
<a class="btn btn-sm btn-danger"th:href="@{/itemdel2/}+${item.id}">删除</a></td>
</tbody>
</table>
</div>
</main>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<!-- Icons -->
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>
feather.replace()
</script>
<!-- Graphs -->
<script type="text/javascript" src="/js/Chart.min.js"></script>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
datasets: [{
data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],
lineTension: 0,
backgroundColor: 'transparent',
borderColor: '#007bff',
borderWidth: 4,
pointBackgroundColor: '#007bff'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false,
}
}
});
</script>
</body>
</html>

@ -0,0 +1,138 @@
<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang=xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/css/dashboard.css" rel="stylesheet">
<style type="text/css">
/* Chart.js */
@-webkit-keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
@keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
.chartjs-render-monitor {
-webkit-animation: chartjs-render-animation 0.001s;
animation: chartjs-render-animation 0.001s;
}
</style>
</head>
<body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<!-- <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>-->
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" th:href="@{/index}">Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<div th:insert="~{dashboard::sidebar}"></div>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<h2>数据统计(接龙)</h2>
<a class="btn btn-sm btn-success"th:href="@{/totaltask}">切换</a>
<div class="table-responsive">
<table class="table table-striped table-sm">
<thead>
<tr>
<th>id</th>
<th>名称</th>
<th>内容</th>
<th>完成状态</th>
<th>截止时间</th>
</tr>
</thead>
<tbody>
<tr th:each="item : ${tasks}" >
<td th:text="${item.id}"></td>
<td th:text="${item.name}"></td>
<td th:text="${item.property}"></td>
<td th:text="${item.status==0?'未完成':'已完成'}"></td>
<td th:text="${item.deadtime}"></td>
<td><a class="btn btn-sm btn-success"th:href="@{/exceldownload/}+${item.id}">导出</a></td>
<td><a class="btn btn-sm btn-primary"th:href="@{/item2/}+${item.id}">详情</a></td>
</tbody>
</table>
</div>
</main>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<!-- Icons -->
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>
feather.replace()
</script>
<!-- Graphs -->
<script type="text/javascript" src="/js/Chart.min.js"></script>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
datasets: [{
data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],
lineTension: 0,
backgroundColor: 'transparent',
borderColor: '#007bff',
borderWidth: 4,
pointBackgroundColor: '#007bff'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false,
}
}
});
</script>
</body>
</html>

@ -0,0 +1,211 @@
<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang=xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/css/dashboard.css" rel="stylesheet">
<style type="text/css">
/* Chart.js */
@-webkit-keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
@keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
.chartjs-render-monitor {
-webkit-animation: chartjs-render-animation 0.001s;
animation: chartjs-render-animation 0.001s;
}
</style>
</head>
<body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<div th:insert="~{dashboard::sidebar}"></div>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<table class="table table-striped table-sm">
<tbody>
<tr th:each="item : ${tasks}" >
<form th:action="@{/groupnoteupdate}" method="get">
<div class="form-group">
<label th:text="@{/ID:/}+${item.id}"></label>
<div></div>
<!-- <div th:text="${item.id}"></div>-->
<input type="hidden" name="id" th:value="${item.id}">
<label>任务名称</label>
<input type="text" name="name" class="form-control" th:placeholder="${item.name}">
</div>
<div class="form-group">
<label>内容</label>
<input type="text" name="property" class="form-control" th:placeholder="${item.property}">
</div>
<div class="form-group">
<label>截止时间</label>
<input type="text" name="deadtime" class="form-control" th:placeholder="${item.deadtime}">
</div>
<div class="form-group">
<label>完成状态</label><br>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="status" value="1">
<label class="form-check-label">已完成</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="status" value="0">
<label class="form-check-label">未完成</label>
</div>
</div>
<!-- <div class="form-group">-->
<!-- <label>管理员</label>-->
<!-- <select class="form-control">-->
<!-- <option>是</option>-->
<!-- <option>否</option>-->
<!-- &lt;!&ndash; <option>3</option>&ndash;&gt;-->
<!-- &lt;!&ndash; <option>4</option>&ndash;&gt;-->
<!-- &lt;!&ndash; <option>5</option>&ndash;&gt;-->
<!-- </select>-->
<!-- </div>-->
<!-- <div class="form-group">-->
<!-- <label>Birth</label>-->
<!-- <input type="text" class="form-control" placeholder="嘤嘤嘤">-->
<!-- </div>-->
<button type="submit" class="btn btn-primary">添加</button>
</form>
</tr>
<!-- <tr>-->
<!-- <td th:text="${user.skey}"></td>-->
<!-- </tr>-->
<!-- <tr th:each="user:${users}">-->
<!-- <td th:text="@{}"></td>-->
<!-- </tr>-->
</tbody>
</table>
<!-- <form th:action="@{/user}">-->
<!-- <div class="form-group">-->
<!-- <label>学号</label>-->
<!-- <input th:text="${user.name}" type="text" class="form-control" placeholder="海绵宝宝">-->
<!-- <div th:text="${users}"></div>-->
<!-- </div>-->
<!-- <div class="form-group">-->
<!-- <label>姓名</label>-->
<!-- <input type="email" class="form-control" placeholder="">-->
<!-- </div>-->
<!--&lt;!&ndash; <div class="form-group">&ndash;&gt;-->
<!--&lt;!&ndash; <label>Gender</label><br>&ndash;&gt;-->
<!--&lt;!&ndash; <div class="form-check form-check-inline">&ndash;&gt;-->
<!--&lt;!&ndash; <input class="form-check-input" type="radio" name="gender" value="1">&ndash;&gt;-->
<!--&lt;!&ndash; <label class="form-check-label">男</label>&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!--&lt;!&ndash; <div class="form-check form-check-inline">&ndash;&gt;-->
<!--&lt;!&ndash; <input class="form-check-input" type="radio" name="gender" value="0">&ndash;&gt;-->
<!--&lt;!&ndash; <label class="form-check-label">女</label>&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!-- <div class="form-group">-->
<!-- <label>管理员</label>-->
<!-- <select class="form-control">-->
<!-- <option>是</option>-->
<!-- <option>否</option>-->
<!--&lt;!&ndash; <option>3</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>4</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>5</option>&ndash;&gt;-->
<!-- </select>-->
<!-- </div>-->
<!--&lt;!&ndash; <div class="form-group">&ndash;&gt;-->
<!--&lt;!&ndash; <label>Birth</label>&ndash;&gt;-->
<!--&lt;!&ndash; <input type="text" class="form-control" placeholder="嘤嘤嘤">&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!-- <button type="submit" class="btn btn-primary">添加</button>-->
<!-- </form>-->
</main>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<!-- Icons -->
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>
feather.replace()
</script>
<!-- Graphs -->
<script type="text/javascript" src="/js/Chart.min.js"></script>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
datasets: [{
data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],
lineTension: 0,
backgroundColor: 'transparent',
borderColor: '#007bff',
borderWidth: 4,
pointBackgroundColor: '#007bff'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false,
}
}
});
</script>
</body>
</html>

@ -0,0 +1,143 @@
<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang=xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/css/dashboard.css" rel="stylesheet">
<style type="text/css">
/* Chart.js */
@-webkit-keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
@keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
.chartjs-render-monitor {
-webkit-animation: chartjs-render-animation 0.001s;
animation: chartjs-render-animation 0.001s;
}
</style>
</head>
<body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<div th:insert="~{dashboard::sidebar}"></div>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<table class="table table-striped table-sm">
<thead>
<tr>
<th>ID</th>
<th>学号</th>
<th>提交时间</th>
<th>文件地址</th>
</tr>
</thead>
<tbody>
<tr th:each="item : ${taskdetail}" >
<form th:action="@{/totaltask}" method="get">
<td th:text="${item.Taskid}"></td>
<td th:text="${item.studentnumber}"></td>
<td th:text="${item.finishtime}"></td>
<td th:text="${item.filepath}"></td>
<button type="submit" class="btn btn-primary">返回</button>
</form>
</tr>
</tbody>
</table>
</main>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<!-- Icons -->
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>
feather.replace()
</script>
<!-- Graphs -->
<script type="text/javascript" src="/js/Chart.min.js"></script>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
datasets: [{
data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],
lineTension: 0,
backgroundColor: 'transparent',
borderColor: '#007bff',
borderWidth: 4,
pointBackgroundColor: '#007bff'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false,
}
}
});
</script>
</body>
</html>

@ -0,0 +1,139 @@
<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang=xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/css/dashboard.css" rel="stylesheet">
<style type="text/css">
/* Chart.js */
@-webkit-keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
@keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
.chartjs-render-monitor {
-webkit-animation: chartjs-render-animation 0.001s;
animation: chartjs-render-animation 0.001s;
}
</style>
</head>
<body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<div th:insert="~{dashboard::sidebar}"></div>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<h2>任务管理</h2>
<a class="btn btn-sm btn-success"th:href="@{/togroupnoteedit}">切换</a>
<div class="table-responsive">
<table class="table table-striped table-sm">
<thead>
<tr>
<th>id</th>
<th>名称</th>
<th>内容</th>
<th>完成状态</th>
<th>截止时间</th>
</tr>
</thead>
<tbody>
<tr th:each="item : ${tasks}" >
<td th:text="${item.id}"></td>
<td th:text="${item.name}"></td>
<td th:text="${item.property}"></td>
<td th:text="${item.status==0?'未完成':'已完成'}"></td>
<td th:text="${item.deadtime}"></td>
<td><a class="btn btn-sm btn-primary"th:href="@{/itemedit1/}+${item.id}">编辑</a>
<a class="btn btn-sm btn-danger"th:href="@{/itemdel1/}+${item.id}">删除</a></td>
</tbody>
</table>
</div>
</main>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<!-- Icons -->
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>
feather.replace()
</script>
<!-- Graphs -->
<script type="text/javascript" src="/js/Chart.min.js"></script>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
datasets: [{
data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],
lineTension: 0,
backgroundColor: 'transparent',
borderColor: '#007bff',
borderWidth: 4,
pointBackgroundColor: '#007bff'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false,
}
}
});
</script>
</body>
</html>

@ -0,0 +1,140 @@
<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang=xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/css/dashboard.css" rel="stylesheet">
<style type="text/css">
/* Chart.js */
@-webkit-keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
@keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
.chartjs-render-monitor {
-webkit-animation: chartjs-render-animation 0.001s;
animation: chartjs-render-animation 0.001s;
}
</style>
</head>
<body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<div th:insert="~{dashboard::sidebar}"></div>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<h2>数据统计(任务)</h2>
<a class="btn btn-sm btn-success"th:href="@{/totalgroupnote}">切换</a>
<div class="table-responsive">
<table class="table table-striped table-sm">
<thead>
<tr>
<th>id</th>
<th>名称</th>
<th>内容</th>
<th>完成状态</th>
<th>截止时间</th>
</tr>
</thead>
<tbody>
<tr th:each="item : ${tasks}" >
<td th:text="${item.id}"></td>
<td th:text="${item.name}"></td>
<td th:text="${item.property}"></td>
<td th:text="${item.status==0?'未完成':'已完成'}"></td>
<td th:text="${item.deadtime}"></td>
<td><a class="btn btn-sm btn-success"th:href="@{/filedownload/}+${item.id}">导出</a></td>
<td><a class="btn btn-sm btn-primary"th:href="@{/item1/}+${item.id}">编辑</a></td>
</tbody>
</table>
</div>
</main>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<!-- Icons -->
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>
feather.replace()
</script>
<!-- Graphs -->
<script type="text/javascript" src="/js/Chart.min.js"></script>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
datasets: [{
data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],
lineTension: 0,
backgroundColor: 'transparent',
borderColor: '#007bff',
borderWidth: 4,
pointBackgroundColor: '#007bff'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false,
}
}
});
</script>
</body>
</html>

@ -0,0 +1,156 @@
<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang=xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/css/dashboard.css" rel="stylesheet">
<style type="text/css">
/* Chart.js */
@-webkit-keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
@keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
.chartjs-render-monitor {
-webkit-animation: chartjs-render-animation 0.001s;
animation: chartjs-render-animation 0.001s;
}
</style>
</head>
<body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<div th:insert="~{dashboard::sidebar}"></div>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<table class="table table-striped table-sm">
<tbody>
<tr th:each="item : ${tasks}" >
<form th:action="@{/taskupdate}" method="get">
<div class="form-group">
<label th:text="@{/ID:/}+${item.id}"></label>
<div></div>
<!-- <div th:text="${item.id}"></div>-->
<input type="hidden" name="id" th:value="${item.id}">
<label>任务名称</label>
<input type="text" name="name" class="form-control" th:placeholder="${item.name}">
</div>
<div class="form-group">
<label>内容</label>
<input type="text" name="property" class="form-control" th:placeholder="${item.property}">
</div>
<div class="form-group">
<label>截止时间</label>
<input type="text" name="deadtime" class="form-control" th:placeholder="${item.deadtime}">
</div>
<div class="form-group">
<label>完成状态</label><br>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="status" value="1">
<label class="form-check-label">已完成</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="status" value="0">
<label class="form-check-label">未完成</label>
</div>
</div>
<button type="submit" class="btn btn-primary">添加</button>
</form>
</tr>
</tbody>
</table>
</main>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<!-- Icons -->
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>
feather.replace()
</script>
<!-- Graphs -->
<script type="text/javascript" src="/js/Chart.min.js"></script>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
datasets: [{
data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],
lineTension: 0,
backgroundColor: 'transparent',
borderColor: '#007bff',
borderWidth: 4,
pointBackgroundColor: '#007bff'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false,
}
}
});
</script>
</body>
</html>

@ -0,0 +1,203 @@
<!DOCTYPE html>
<!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->
<html lang=xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Dashboard Template for Bootstrap</title>
<!-- Bootstrap core CSS -->
<link href="/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/css/dashboard.css" rel="stylesheet">
<style type="text/css">
/* Chart.js */
@-webkit-keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
@keyframes chartjs-render-animation {
from {
opacity: 0.99
}
to {
opacity: 1
}
}
.chartjs-render-monitor {
-webkit-animation: chartjs-render-animation 0.001s;
animation: chartjs-render-animation 0.001s;
}
</style>
</head>
<body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3">
<li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a>
</li>
</ul>
</nav>
<div class="container-fluid">
<div class="row">
<div th:insert="~{dashboard::sidebar}"></div>
<main role="main" class="col-md-9 ml-sm-auto col-lg-10 pt-3 px-4">
<table class="table table-striped table-sm">
<tbody>
<tr th:each="user : ${users}" >
<form th:action="@{/update}" method="get">
<input type="hidden" name="stuid" th:value="${user.StudentNumber}">
<input type="hidden" name="stuname" th:value="${user.name}">
<div class="form-group">
<label>学号</label>
<input type="text" name="Studentnumber" class="form-control" th:placeholder="${user.StudentNumber}">
</div>
<div class="form-group">
<label>姓名</label>
<input type="text" name="name" class="form-control" th:placeholder="${user.name}">
</div>
<div class="form-group">
<label>权限</label><br>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="power" value="1">
<label class="form-check-label">管理员</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="power" value="0">
<label class="form-check-label">用户</label>
</div>
</div>
<!-- <div class="form-group">-->
<!-- <label>管理员</label>-->
<!-- <select class="form-control">-->
<!-- <option>是</option>-->
<!-- <option>否</option>-->
<!-- &lt;!&ndash; <option>3</option>&ndash;&gt;-->
<!-- &lt;!&ndash; <option>4</option>&ndash;&gt;-->
<!-- &lt;!&ndash; <option>5</option>&ndash;&gt;-->
<!-- </select>-->
<!-- </div>-->
<!-- <div class="form-group">-->
<!-- <label>Birth</label>-->
<!-- <input type="text" class="form-control" placeholder="嘤嘤嘤">-->
<!-- </div>-->
<button type="submit" class="btn btn-primary">添加</button>
</form>
</tr>
<!-- <tr>-->
<!-- <td th:text="${user.skey}"></td>-->
<!-- </tr>-->
<!-- <tr th:each="user:${users}">-->
<!-- <td th:text="@{}"></td>-->
<!-- </tr>-->
</tbody>
</table>
<!-- <form th:action="@{/user}">-->
<!-- <div class="form-group">-->
<!-- <label>学号</label>-->
<!-- <input th:text="${user.name}" type="text" class="form-control" placeholder="海绵宝宝">-->
<!-- <div th:text="${users}"></div>-->
<!-- </div>-->
<!-- <div class="form-group">-->
<!-- <label>姓名</label>-->
<!-- <input type="email" class="form-control" placeholder="">-->
<!-- </div>-->
<!--&lt;!&ndash; <div class="form-group">&ndash;&gt;-->
<!--&lt;!&ndash; <label>Gender</label><br>&ndash;&gt;-->
<!--&lt;!&ndash; <div class="form-check form-check-inline">&ndash;&gt;-->
<!--&lt;!&ndash; <input class="form-check-input" type="radio" name="gender" value="1">&ndash;&gt;-->
<!--&lt;!&ndash; <label class="form-check-label">男</label>&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!--&lt;!&ndash; <div class="form-check form-check-inline">&ndash;&gt;-->
<!--&lt;!&ndash; <input class="form-check-input" type="radio" name="gender" value="0">&ndash;&gt;-->
<!--&lt;!&ndash; <label class="form-check-label">女</label>&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!-- <div class="form-group">-->
<!-- <label>管理员</label>-->
<!-- <select class="form-control">-->
<!-- <option>是</option>-->
<!-- <option>否</option>-->
<!--&lt;!&ndash; <option>3</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>4</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>5</option>&ndash;&gt;-->
<!-- </select>-->
<!-- </div>-->
<!--&lt;!&ndash; <div class="form-group">&ndash;&gt;-->
<!--&lt;!&ndash; <label>Birth</label>&ndash;&gt;-->
<!--&lt;!&ndash; <input type="text" class="form-control" placeholder="嘤嘤嘤">&ndash;&gt;-->
<!--&lt;!&ndash; </div>&ndash;&gt;-->
<!-- <button type="submit" class="btn btn-primary">添加</button>-->
<!-- </form>-->
</main>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script type="text/javascript" src="/js/jquery-3.2.1.slim.min.js"></script>
<script type="text/javascript" src="/js/popper.min.js"></script>
<script type="text/javascript" src="/js/bootstrap.min.js"></script>
<!-- Icons -->
<script type="text/javascript" src="/js/feather.min.js"></script>
<script>
feather.replace()
</script>
<!-- Graphs -->
<script type="text/javascript" src="/js/Chart.min.js"></script>
<script>
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
datasets: [{
data: [15339, 21345, 18483, 24003, 23489, 24092, 12034],
lineTension: 0,
backgroundColor: 'transparent',
borderColor: '#007bff',
borderWidth: 4,
pointBackgroundColor: '#007bff'
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false,
}
}
});
</script>
</body>
</html>

@ -0,0 +1 @@
{"containers":[],"config":{}}

@ -0,0 +1,47 @@
{
"pages": [
"pages/index/index",
"pages/menu/menu",
"pages/my/my",
"pages/bd/bd",
"pages/uploadfile/uploadfile",
"pages/list/list",
"pages/operation/operation",
"pages/list1/list1",
"pages/operation1/operation1",
"pages/mmm/mmm",
"pages/submit/submit",
"pages/dragon/dragon"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "班级通",
"navigationBarTextStyle": "black"
},
"tabBar": {
"selectedColor": "#33a3dc",
"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "/static/index/index.png",
"selectedIconPath": "/static/index/index_active.png"
},
{
"pagePath": "pages/menu/menu",
"text": "菜单",
"iconPath": "/static/menu/menu.png",
"selectedIconPath": "/static/menu/menu_active.png"
},
{
"pagePath": "pages/my/my",
"text": "我的",
"iconPath": "/static/my/my.png",
"selectedIconPath": "/static/my/my_active.png"
}
]
},
"style": "v2",
"sitemapLocation": "sitemap.json"
}

@ -0,0 +1,20 @@
// app.ts
App<IAppOption>({
globalData: {
},
onLaunch() {
// 展示本地存储能力
// const logs = wx.getStorageSync('logs') || []
// logs.unshift(Date.now())
// wx.setStorageSync('logs', logs)
// 登录
// wx.login({
// success: res => {
// console.log(res.code)
// 发送 res.code 到后台换取 openId, sessionKey, unionId
// },
// })
},
})

@ -0,0 +1,6 @@
/**app.wxss**/
page {
height: 100%;
overflow-y: scroll;
background: rgb(243, 243, 243);
}

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,135 @@
// const app = getApp()
Page({
data: {
realName: '',
number: '',
isDisabled: true //表示页面加载完成时disabled为禁用状态
},
onLoad: function(options) {
let number = options.number
let realName = options.realName
this.setData({
number,
realName
})
},
save: function() {
let realName = this.data.realName;
let number=this.data.number
let skey = wx.getStorageSync('skey')
wx.request({
url: 'http://127.0.0.1:81/atbind',
method: 'GET',
data: {
skey:skey,
studentnumber:number,
name:realName
},
success: function(res :any) {
if (res.data.error == true) {
wx.showToast({
title: res.data.message,
icon: 'none',
duration: 2000
})
} else {
wx.showToast({
title: res.data.message,
icon: 'success',
duration: 5000
})
wx.removeStorageSync('info')
wx.navigateBack({
delta: 2
})
}
}
})
},
inputRealName: function(e :any) {
var realName = e.detail.value
this.setData({
realName
})
console.log(realName)
if (realName !== '') {
this.setData({
isDisabled: false
})
} else {
this.setData({
isDisabled: true
})
}
},
inputNumber: function(e :any) {
var number = e.detail.value
this.setData({
number
})
// console.log()
if (number !== '') {
this.setData({
isDisabled: false
})
} else {
this.setData({
isDisabled: true
})
}
},
onReady: function() {
},
/**
* --
*/
onShow: function() {
},
/**
* --
*/
onHide: function() {
},
/**
* --
*/
onUnload: function() {
},
/**
* --
*/
onPullDownRefresh: function() {
},
/**
*
*/
onReachBottom: function() {
},
/**
*
*/
onShareAppMessage: function() {
}
})

@ -0,0 +1,15 @@
<!--pages/bd/bd.wxml-->
<view>
<view class="btn-area" id="buttonContainer">
<view class='binding-item'>
<view>姓名</view>
<input type="text" placeholder="请输入您的真实姓名" value="{{realName}}" bindinput="inputRealName"></input>
</view>
<view class='binding-item'>
<view>学号</view>
<input type="number" placeholder="请输入您的学号" value="{{number}}" bindinput="inputNumber"></input>
</view>
<button type="submit" bindtap="save" class="save" disabled='{{isDisabled}}'>提交</button>
</view>
</view>

@ -0,0 +1,30 @@
/* pages/bd/bd.wxss */
.binding-item {
margin: 40rpx;
padding-top: 20rpx;
padding-bottom: 40rpx;
display: flex;
font-size: 32rpx;
/* 在模拟器为iphone 6 时1px=2rpx 这里设置32rpx即16px */
border-bottom: 1rpx solid #dedede;
}
.binding-item input {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
padding-left: 20rpx;
}
.binding-btn{
background-color:#19be6b;
padding: 28rpx;
margin: 40rpx;
color: pink;
text-align: center;
}
.button{
margin-top: 30rpx;
margin-bottom: 30rpx;
}

@ -0,0 +1,3 @@
{
"navigationBarTitleText": "接龙信息表单"
}

@ -0,0 +1,164 @@
// pages/list/list.js
Page({
/**
*
*/
data: {
id:"",
property:"",
name:"",
list:[]
},
/**
* --
*/
onLoad: function () {
},
/**
* --
*/
onReady: function () {
},
/**
* --
* Show
*/
onShow: function () {
//这里的this是指窗口而在request中this是指onShow方法(因为是页面调用onShow,onShow调用request),所以要先定义
var that = this;
wx.request({
//后端接口提供的url
url: 'http://localhost:81/dragon/dragonList',
method:'GET',
//需要传入的参数
data:{},
success:function(res :any){
var list = res.data.data;
if(list == null){
//如果获取数据失败,提示使用者
var toastText = '获取数据失败' + res.data.msg;
wx.showToast({
title: toastText,
//显示时长为2s
duration:2000
})
}else{
that.setData({
list:list
})
}
}
})
},
/**
* --
*/
onHide: function () {
},
/**
* --
*/
onUnload: function () {
},
/**
* --
*/
onPullDownRefresh: function () {
},
/**
*
*/
onReachBottom: function () {
},
/**
*
*/
onShareAppMessage: function () {
},
addTask: function(){
wx.navigateTo({
url: '../operation1/operation1',
})
},
//e表示响应的控件
delTask: function(e :any){
var that = this;
//相当于confirm窗口
wx.showModal({
title: '提示',
//这里的变量名需要与响应控件的data-后面的变量名相同
content: '确认要删除['+e.target.dataset.name+']吗?',
success:function(sm){
if(sm.confirm){
wx.request({
url: 'http://localhost:81/dragon/delete',
data: {'id':e.target.dataset.id},
header: {
//默认是 'content-type': 'application/json'要传post的参数必须写成这样要传delete参数则为null
"content-type": "application/x-www-form-urlencoded"
},
method: 'DELETE',
success: function(res:any) {
var result = res.data.success;
var toastText='删除成功';
if(result == true){
that.data.list.splice(e.target.dataset.index,1);
that.setData({
list:that.data.list
});
}else{
toastText = '删除失败';
}
wx.showToast({
title: toastText,
duration:2000
})
},
})
}
}
})
},
submitDragon: function(e:any) {
wx.navigateTo({
url: '../uploadfile/uploadfile',
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
acceptDataFromOpenedPage: function(data:any) {//参数名字随便起,前后页面对应上即可
//对发送回来的数据进行处理
console.log(data)
},
someEvent: function(data:any) {//参数名字随便起,前后页面对应上即可
console.log(data)
}
},
success: function(res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('id', {id: e.target.dataset.id })//参数名字随便起,前后页面对应上即可
res.eventChannel.emit('name', {id: e.target.dataset.name })//参数名字随便起,前后页面对应上即可
res.eventChannel.emit('property', {id: e.target.dataset.property })//参数名字随便起,前后页面对应上即可
},
})
//, name: e.target.dataset.name , property: e.target.dataset.property
}
})

@ -0,0 +1,29 @@
<!--pages/list/list.wxml-->
<view class='container'>
<view class='widget'>
<text class='column'>您发布的接龙信息如下:</text>
</view>
<scroll-view scroll-y="true">
<!--遍历list变量名要和js中的名字相同且item是定值不可修改 -->
<block class='widget' wx:for="{{list}}">
<view class='widget'>
<text class='row'>ID:</text>
<text class='row'>{{item.id}}</text>
<text class='column'>名字:</text>
<text class='column'>{{item.name}}</text>
<view>
<text class='column'>信息:</text>
<text class='column'>{{item.property}}</text>
</view>
<text class='column'>时间:</text>
<text class='column'>{{item.deadtime}}</text>
<view>
</view>
<button class="mini-btn" type='plain' size="mini"
bindtap='submitDragon' data-id='{{item.id}}' data-name='{{item.name}}'data-property='{{item.property}}'>提交接龙</button>
</view>
</block>
<button type='primary' bindtap='addTask'>添加接龙信息</button>
</scroll-view>
</view>

@ -0,0 +1,40 @@
/* pages/list/list.wxss */
.container{
display: flex;
flex-direction: column;
justify-content: space-between;
box-sizing: border-box;
padding-top: 10rpx;
padding-bottom: 10rpx;
}
.widget{
position: relative;
margin-top: 5rpx;
margin-bottom: 5rpx;
padding-top: 20rpx;
padding-bottom: 20rpx;
padding-left: 5rpx;
padding-right: 4rpx;
border: rgb(16, 196, 157) 1px solid;
}
.row{
width: 3rem;
display: table-cell;
}
.form-box picker{
margin: 30rpx 30rpx 0 0;
color: rgb(187, 19, 19);
}
.link-row{
width: 5rem;
display: table-cell;
}
.link{
color: blue;
display: inline-table;
}

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,155 @@
// index.ts
// 获取应用实例
const app = getApp<IAppOption>()
// pages/list/list.js
Page({
/**
*
*/
data: {
list:[]
},
/**
* --
*/
onLoad: function () {
},
/**
* --
*/
onReady: function () {
},
/**
* --
* Show
*/
onShow: function () {
//这里的this是指窗口而在request中this是指onShow方法(因为是页面调用onShow,onShow调用request),所以要先定义
var that = this;
wx.request({
//后端接口提供的url
url: 'http://localhost:81/task/taskList',
method:'GET',
//需要传入的参数
data:{},
success:function(res :any){
var list = res.data.data;
if(list == null){
//如果获取数据失败,提示使用者
var toastText = '获取数据失败' + res.data.msg;
wx.showToast({
title: toastText,
//显示时长为2s
duration:2000
})
}else{
that.setData({
list:list
})
}
}
})
},
/**
* --
*/
onHide: function () {
},
/**
* --
*/
onUnload: function () {
},
/**
* --
*/
onPullDownRefresh: function () {
},
/**
*
*/
onReachBottom: function () {
},
/**
*
*/
onShareAppMessage: function () {
},
submitTask: function(e:any){
wx.navigateTo({
url: '../submit/submit',
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
acceptDataFromOpenedPage: function(data:any) {//参数名字随便起,前后页面对应上即可
//对发送回来的数据进行处理
console.log(data)
},
someEvent: function(data:any) {//参数名字随便起,前后页面对应上即可
console.log(data)
}
},
success: function(res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('id', {id: e.target.dataset.id })//参数名字随便起,前后页面对应上即可
res.eventChannel.emit('name', {id: e.target.dataset.name })//参数名字随便起,前后页面对应上即可
res.eventChannel.emit('property', {id: e.target.dataset.property })//参数名字随便起,前后页面对应上即可
},
})
//, name: e.target.dataset.name , property: e.target.dataset.property
},
delTask: function(e :any){
var that = this;
//相当于confirm窗口
wx.showModal({
title: '提示',
//这里的变量名需要与响应控件的data-后面的变量名相同
content: '确认要删除['+e.target.dataset.name+']吗?',
success:function(sm){
if(sm.confirm){
wx.request({
url: 'http://localhost:81/task/delete',
data: {'id':e.target.dataset.id},
header: {
//默认是 'content-type': 'application/json'要传post的参数必须写成这样要传delete参数则为null
"content-type": "application/x-www-form-urlencoded"
},
method: 'DELETE',
success: function(res:any) {
var result = res.data.success;
var toastText='删除成功';
if(result == true){
that.data.list.splice(e.target.dataset.index,1);
that.setData({
list:that.data.list
});
}else{
toastText = '删除失败';
}
wx.showToast({
title: toastText,
duration:2000
})
},
})
}
}
})
}
})

@ -0,0 +1,36 @@
<view class="wrip-view">
<!-- 轮播区域 -->
<view>
<view class="swip">
<text class="swip-text">公告栏</text>
<swiper indicator-dots="{{true}}" autoplay="{{true}}" interval="{{2000}}">
<block wx:for="{{3}}" wx:key="*this">
<swiper-item>
<view class="swiper-item">
<image src="/static/index/spwr01.jpg"></image>
</view>
</swiper-item>
</block>
</swiper>
</view>
</view>
<!-- 任务列表 -->
<view class="task" wx:if="{{list.length!=0}}">
<block wx:for="{{list}}" wx:key="id">
<view class="task-item">
<view class="task-item -title"><test>任务名称:</test> {{item.name}}</view>
<view class="task-item -title"><test>任务内容:</test> {{item.property}} </view>
<view class="task-item-text">
<text> 截止时间:{{item.deadtime}} </text>
</view>
<!-- <text bindtap='delTask' data-id='{{item.id}}' data-index='{{index}}' data-name='{{item.name}}'>提交任务
</text> -->
<button class="mini-btn" type='plain' size="mini"
bindtap='submitTask' data-id='{{item.id}}' data-name='{{item.name}}'data-property='{{item.property}}'>提交任务</button>
</view>
</block>
</view>
<view class="error" wx:else>
暂无数据
</view>
</view>

@ -0,0 +1,47 @@
.wrip-view {
height: 100%;
}
.swip {
background: rgb(243, 243, 243);
position: relative;
}
.swip-text {
position: absolute;
width: 100%;
z-index: 100;
text-align: center;
font-size: 20px;
color: rgb(95, 95, 95);
}
.task {
padding: 8px;
}
.task-item {
padding: 8px 4px 10px 4px;
margin: 10px 0;
border-radius: 10px;
background-color: rgb(240, 234, 234);
}
.task-item-title {
font-family: "楷体";
font-size: 18px;
margin-bottom: 6px;
}
.task-item-text {
font-family: "楷体";
font-size: 20px;
color: rgb(241, 10, 10);
}
.error{
text-align: center;
padding: 20px;
}
.mini-btn{
margin-right: 10rpx;
}

@ -0,0 +1,3 @@
{
"navigationBarTitleText": "任务信息列表"
}

@ -0,0 +1,138 @@
// pages/list/list.js
Page({
/**
*
*/
data: {
list:[]
},
/**
* --
*/
onLoad: function () {
},
/**
* --
*/
onReady: function () {
},
/**
* --
* Show
*/
onShow: function () {
//这里的this是指窗口而在request中this是指onShow方法(因为是页面调用onShow,onShow调用request),所以要先定义
var that = this;
wx.request({
//后端接口提供的url
url: 'http://localhost:81/task/taskList',
method:'GET',
//需要传入的参数
data:{},
success:function(res :any){
var list = res.data.data;
if(list == null){
//如果获取数据失败,提示使用者
var toastText = '获取数据失败' + res.data.msg;
wx.showToast({
title: toastText,
//显示时长为2s
duration:2000
})
}else{
that.setData({
list:list
})
}
}
})
},
/**
* --
*/
onHide: function () {
},
/**
* --
*/
onUnload: function () {
},
/**
* --
*/
onPullDownRefresh: function () {
},
/**
*
*/
onReachBottom: function () {
},
/**
*
*/
onShareAppMessage: function () {
},
addTask: function(){
wx.navigateTo({
url: '../operation/operation',
})
},
//e表示响应的控件
delTask: function(e :any){
var that = this;
//相当于confirm窗口
wx.showModal({
title: '提示',
//这里的变量名需要与响应控件的data-后面的变量名相同
content: '确认要删除['+e.target.dataset.name+']吗?',
success:function(sm){
if(sm.confirm){
wx.request({
url: 'http://localhost:81/task/delete',
data: {'id':e.target.dataset.id},
header: {
//默认是 'content-type': 'application/json'要传post的参数必须写成这样要传delete参数则为null
"content-type": "application/x-www-form-urlencoded"
},
method: 'DELETE',
success: function(res:any) {
var result = res.data.success;
var toastText='删除成功';
if(result == true){
that.data.list.splice(e.target.dataset.index,1);
that.setData({
list:that.data.list
});
}else{
toastText = '删除失败';
}
wx.showToast({
title: toastText,
duration:2000
})
},
})
}
}
})
}
})

@ -0,0 +1,31 @@
<!--pages/list/list.wxml-->
<view class='container'>
<view class='widget'>
<text class='column'>您发布的任务信息如下:</text>
</view>
<scroll-view scroll-y="true">
<!--遍历list变量名要和js中的名字相同且item是定值不可修改 -->
<block class='widget' wx:for="{{list}}">
<view class='widget'>
<text class='row'>ID:</text>
<text class='row'>{{item.id}}</text>
<text class='column'>名字:</text>
<text class='column'>{{item.name}}</text>
<view>
<text class='column'>信息:</text>
<text class='column'>{{item.property}}</text>
</view>
<text class='column'>时间:</text>
<text class='column'>{{item.deadtime}}</text>
<text class='link-row'>任务编辑:</text>
<view class='link-row'>
<navigator class='link' url='../operation/operation?id={{item.id}}'>编辑</navigator>|
<text class='link' bindtap='delTask' data-id='{{item.id}}' data-index='{{index}}' data-name='{{item.name}}'>删除
</text>
</view>
</view>
</block>
<button type='primary' bindtap='addTask'>添加任务信息</button>
</scroll-view>
</view>

@ -0,0 +1,40 @@
/* pages/list/list.wxss */
.container{
display: flex;
flex-direction: column;
justify-content: space-between;
box-sizing: border-box;
padding-top: 10rpx;
padding-bottom: 10rpx;
}
.widget{
position: relative;
margin-top: 5rpx;
margin-bottom: 5rpx;
padding-top: 20rpx;
padding-bottom: 20rpx;
padding-left: 5rpx;
padding-right: 4rpx;
border: rgb(16, 196, 157) 1px solid;
}
.row{
width: 3rem;
display: table-cell;
}
.form-box picker{
margin: 30rpx 30rpx 0 0;
color: rgb(187, 19, 19);
}
.link-row{
width: 5rem;
display: table-cell;
}
.link{
color: blue;
display: inline-table;
}

@ -0,0 +1,3 @@
{
"navigationBarTitleText": "接龙信息列表"
}

@ -0,0 +1,138 @@
// pages/list/list.js
Page({
/**
*
*/
data: {
list:[]
},
/**
* --
*/
onLoad: function () {
},
/**
* --
*/
onReady: function () {
},
/**
* --
* Show
*/
onShow: function () {
//这里的this是指窗口而在request中this是指onShow方法(因为是页面调用onShow,onShow调用request),所以要先定义
var that = this;
wx.request({
//后端接口提供的url
url: 'http://localhost:81/dragon/dragonList',
method:'GET',
//需要传入的参数
data:{},
success:function(res :any){
var list = res.data.data;
if(list == null){
//如果获取数据失败,提示使用者
var toastText = '获取数据失败' + res.data.msg;
wx.showToast({
title: toastText,
//显示时长为2s
duration:2000
})
}else{
that.setData({
list:list
})
}
}
})
},
/**
* --
*/
onHide: function () {
},
/**
* --
*/
onUnload: function () {
},
/**
* --
*/
onPullDownRefresh: function () {
},
/**
*
*/
onReachBottom: function () {
},
/**
*
*/
onShareAppMessage: function () {
},
addTask: function(){
wx.navigateTo({
url: '../operation1/operation1',
})
},
//e表示响应的控件
delTask: function(e :any){
var that = this;
//相当于confirm窗口
wx.showModal({
title: '提示',
//这里的变量名需要与响应控件的data-后面的变量名相同
content: '确认要删除['+e.target.dataset.name+']吗?',
success:function(sm){
if(sm.confirm){
wx.request({
url: 'http://localhost:81/dragon/delete',
data: {'id':e.target.dataset.id},
header: {
//默认是 'content-type': 'application/json'要传post的参数必须写成这样要传delete参数则为null
"content-type": "application/x-www-form-urlencoded"
},
method: 'DELETE',
success: function(res:any) {
var result = res.data.success;
var toastText='删除成功';
if(result == true){
that.data.list.splice(e.target.dataset.index,1);
that.setData({
list:that.data.list
});
}else{
toastText = '删除失败';
}
wx.showToast({
title: toastText,
duration:2000
})
},
})
}
}
})
}
})

@ -0,0 +1,31 @@
<!--pages/list/list.wxml-->
<view class='container'>
<view class='widget'>
<text class='column'>您发布的接龙信息如下:</text>
</view>
<scroll-view scroll-y="true">
<!--遍历list变量名要和js中的名字相同且item是定值不可修改 -->
<block class='widget' wx:for="{{list}}">
<view class='widget'>
<text class='row'>ID:</text>
<text class='row'>{{item.id}}</text>
<text class='column'>名字:</text>
<text class='column'>{{item.name}}</text>
<view>
<text class='column'>信息:</text>
<text class='column'>{{item.property}}</text>
</view>
<text class='column'>时间:</text>
<text class='column'>{{item.deadtime}}</text>
<text class='link-row'>接龙编辑:</text>
<view class='link-row'>
<navigator class='link' url='../operation1/operation1?id={{item.id}}'>编辑</navigator>|
<text class='link' bindtap='delTask' data-id='{{item.id}}' data-index='{{index}}' data-name='{{item.name}}'>删除
</text>
</view>
</view>
</block>
<button type='primary' bindtap='addTask'>添加接龙信息</button>
</scroll-view>
</view>

@ -0,0 +1,40 @@
/* pages/list/list.wxss */
.container{
display: flex;
flex-direction: column;
justify-content: space-between;
box-sizing: border-box;
padding-top: 10rpx;
padding-bottom: 10rpx;
}
.widget{
position: relative;
margin-top: 5rpx;
margin-bottom: 5rpx;
padding-top: 20rpx;
padding-bottom: 20rpx;
padding-left: 5rpx;
padding-right: 4rpx;
border: rgb(16, 196, 157) 1px solid;
}
.row{
width: 3rem;
display: table-cell;
}
.form-box picker{
margin: 30rpx 30rpx 0 0;
color: rgb(187, 19, 19);
}
.link-row{
width: 5rem;
display: table-cell;
}
.link{
color: blue;
display: inline-table;
}

@ -0,0 +1,135 @@
// logs.ts
// const util = require('../../utils/util.js')
import { formatTime } from '../../utils/util'
Page({
data: {
logs: [],
taskList: [],
taskFlag: false,
releaseFlag: false,
from: {
taskName: "",
end: ""
}
},
inputFrom(event: any) {
if (event.currentTarget.dataset.gater == "from.end") {
let num = event.detail.value;
if (num.length == 4) num += "-";
if (num.length == 7) num += "-";
this.setData({ [`from.end`]: num })
} else if(event.currentTarget.dataset.gater == "from.taskName"){
this.setData({
[`${event.currentTarget.dataset.gater}`]: event.detail.value
})
}else{
this.setData({
[`${event.currentTarget.dataset.gater}`]: event.detail.value
})
}
},
addSelect() {
const { taskName, end } = this.data.from;
if (end.length != 10) return;
if (!taskName || !end) {
wx.showToast({
title: "请填写任务名称和任务进度",
icon: 'error',
});
return;
}
const list = wx.getStorageSync("taskList") || [];
const index = list.findIndex((item: any) => item.title == taskName);
if (index >= 0) {
wx.showToast({
title: "任务名称重复",
icon: 'error',
});
return;
}
const data = {
id: list.length + 1,
title: taskName,
startTime: formatTime(new Date), endTime: end, end: '40',
}
list.push(data)
wx.setStorageSync("taskList", list);
wx.showToast({
title: "发布成功",
icon: 'success',
});
this.setData({
taskList: wx.getStorageSync("taskList") || []
});
},
atReleaseFlag() {
const user = wx.getStorageSync("userInfo");
console.log(user)
if (!user) {
wx.showToast({
title: "请先登录",
icon: 'error',
});
return;
}
this.setData({ releaseFlag: !this.data.releaseFlag })
const power = +wx.getStorageSync('power');
console.log(power)
if (power === 0) { // 0 为用户
wx.showToast({
title: "暂无权限",
icon: 'error',
});
} else if (power === 1) { // 1 为管理员
wx.navigateTo({ url: '/pages/list/list' })
}
},
onPublishJielong() {
const power = +wx.getStorageSync('power');
if (power === 0) {
wx.showToast({
title: "暂无权限",
icon: 'error',
});
}
else if (power === 1) { // 1 为管理员
wx.navigateTo({ url: '/pages/list1/list1' })
}
},
atTaskFlag() {
const power = +wx.getStorageSync('power');
if (power === 0) {
wx.showToast({
title: "暂无权限",
icon: 'error',
});
return;
}
this.setData({ taskFlag: !this.data.taskFlag })
},
onDragon() {
wx.navigateTo({ url: '/pages/dragon/dragon' });
},
onShow() {
this.setData({
taskList: wx.getStorageSync("taskList") || []
});
},
onLoad() {
this.setData({
taskList: wx.getStorageSync("taskList") || []
});
// this.setData({
// logs: (wx.getStorageSync('logs') || []).map((log: string) => {
// return {
// date: formatTime(new Date(log)),
// timeStamp: log
// }
// }),
// })
},
})

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save