Merge branch '王西霖.branch' of https://bdgit.educoder.net/puhw8ejfm/project into 王西霖.branch
@ -0,0 +1,7 @@
|
|||||||
|
0c28388c09ff373d391fe66d085dd39d
|
||||||
|
|
||||||
|
wx08c675f6ba5b2cdc
|
||||||
|
|
||||||
|
3317b29d14270cebb8f4e3521506f285
|
||||||
|
|
||||||
|
wx954296403ec15396
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.example.demo;
|
||||||
|
|
||||||
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
|
||||||
|
@ComponentScan(basePackages = {"com.example.demo.controller", "com.example.demo.config", "com.example.demo.service.impl","com.example.demo.mapper"})
|
||||||
|
@MapperScan("com.example.demo.mapper")
|
||||||
|
|
||||||
|
public class DemoApplication {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(DemoApplication.class, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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,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,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,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,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();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过Id查询Task
|
||||||
|
*/
|
||||||
|
Task queryTaskById(int id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过Id删除Task
|
||||||
|
*/
|
||||||
|
boolean delTaskById(int id);
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
|||||||
|
server:
|
||||||
|
port: 81
|
||||||
|
|
||||||
|
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: wxlogin
|
||||||
|
|
||||||
|
datasource:
|
||||||
|
|
||||||
|
driver-class-name: com.mysql.jdbc.Driver
|
||||||
|
url: jdbc:mysql://127.0.0.1:3306/wxlogin?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false
|
||||||
|
username: root
|
||||||
|
password: root
|
||||||
|
thymeleaf:
|
||||||
|
cache: false
|
@ -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;
|
||||||
|
}
|
After Width: | Height: | Size: 1.1 KiB |
@ -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 = ''
|
||||||
|
}
|
@ -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>-->
|
||||||
|
<!-- <!– <option>3</option>–>-->
|
||||||
|
<!-- <!– <option>4</option>–>-->
|
||||||
|
<!-- <!– <option>5</option>–>-->
|
||||||
|
<!-- </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>-->
|
||||||
|
<!--<!– <div class="form-group">–>-->
|
||||||
|
<!--<!– <label>Gender</label><br>–>-->
|
||||||
|
<!--<!– <div class="form-check form-check-inline">–>-->
|
||||||
|
<!--<!– <input class="form-check-input" type="radio" name="gender" value="1">–>-->
|
||||||
|
<!--<!– <label class="form-check-label">男</label>–>-->
|
||||||
|
<!--<!– </div>–>-->
|
||||||
|
<!--<!– <div class="form-check form-check-inline">–>-->
|
||||||
|
<!--<!– <input class="form-check-input" type="radio" name="gender" value="0">–>-->
|
||||||
|
<!--<!– <label class="form-check-label">女</label>–>-->
|
||||||
|
<!--<!– </div>–>-->
|
||||||
|
<!--<!– </div>–>-->
|
||||||
|
<!-- <div class="form-group">-->
|
||||||
|
<!-- <label>管理员</label>-->
|
||||||
|
<!-- <select class="form-control">-->
|
||||||
|
<!-- <option>是</option>-->
|
||||||
|
<!-- <option>否</option>-->
|
||||||
|
<!--<!– <option>3</option>–>-->
|
||||||
|
<!--<!– <option>4</option>–>-->
|
||||||
|
<!--<!– <option>5</option>–>-->
|
||||||
|
<!-- </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>-->
|
||||||
|
</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>-->
|
||||||
|
<!-- <!– <option>3</option>–>-->
|
||||||
|
<!-- <!– <option>4</option>–>-->
|
||||||
|
<!-- <!– <option>5</option>–>-->
|
||||||
|
<!-- </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>-->
|
||||||
|
<!--<!– <div class="form-group">–>-->
|
||||||
|
<!--<!– <label>Gender</label><br>–>-->
|
||||||
|
<!--<!– <div class="form-check form-check-inline">–>-->
|
||||||
|
<!--<!– <input class="form-check-input" type="radio" name="gender" value="1">–>-->
|
||||||
|
<!--<!– <label class="form-check-label">男</label>–>-->
|
||||||
|
<!--<!– </div>–>-->
|
||||||
|
<!--<!– <div class="form-check form-check-inline">–>-->
|
||||||
|
<!--<!– <input class="form-check-input" type="radio" name="gender" value="0">–>-->
|
||||||
|
<!--<!– <label class="form-check-label">女</label>–>-->
|
||||||
|
<!--<!– </div>–>-->
|
||||||
|
<!--<!– </div>–>-->
|
||||||
|
<!-- <div class="form-group">-->
|
||||||
|
<!-- <label>管理员</label>-->
|
||||||
|
<!-- <select class="form-control">-->
|
||||||
|
<!-- <option>是</option>-->
|
||||||
|
<!-- <option>否</option>-->
|
||||||
|
<!--<!– <option>3</option>–>-->
|
||||||
|
<!--<!– <option>4</option>–>-->
|
||||||
|
<!--<!– <option>5</option>–>-->
|
||||||
|
<!-- </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>-->
|
||||||
|
</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>
|
@ -1,13 +0,0 @@
|
|||||||
package com.example.demo;
|
|
||||||
|
|
||||||
import org.springframework.boot.SpringApplication;
|
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|
||||||
|
|
||||||
@SpringBootApplication
|
|
||||||
public class Demo1Application {
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
SpringApplication.run(Demo1Application.class, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
|
|
@ -1,8 +0,0 @@
|
|||||||
wx:
|
|
||||||
miniapp:
|
|
||||||
configs:
|
|
||||||
- appid: #微信小程序的appid
|
|
||||||
secret: #微信小程序的Secret
|
|
||||||
token: #微信小程序消息服务器配置的token
|
|
||||||
aesKey: #微信小程序消息服务器配置的EncodingAESKey
|
|
||||||
msgDataFormat: JSON
|
|
@ -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 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "任务信息列表"
|
||||||
|
}
|
@ -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,99 @@
|
|||||||
|
// pages/mmm/mmm.ts
|
||||||
|
Page({
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面的初始数据
|
||||||
|
*/
|
||||||
|
data: {
|
||||||
|
mmm:'',
|
||||||
|
releaseFlag: false
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面加载
|
||||||
|
*/
|
||||||
|
onLoad: function () {
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
atbutton(){
|
||||||
|
let skey = wx.getStorageSync('skey')
|
||||||
|
var that = this
|
||||||
|
wx.request({ //请求地址
|
||||||
|
url: 'http://127.0.0.1:81/getrcode',
|
||||||
|
method: 'GET',
|
||||||
|
data:{
|
||||||
|
skey:skey},
|
||||||
|
header: { //请求头
|
||||||
|
'content-type': 'application/json'
|
||||||
|
// "Content-Type": "application/x-www-form-urlencoded"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
success: function (res:any) {
|
||||||
|
wx.showModal({
|
||||||
|
title: '验证码',
|
||||||
|
content: res.data
|
||||||
|
})
|
||||||
|
|
||||||
|
if (res.confirm) {//这里是点击了确定以后
|
||||||
|
console.log('用户点击确定')
|
||||||
|
} else {//这里是点击了取消以后
|
||||||
|
console.log('用户点击取消')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面初次渲染完成
|
||||||
|
*/
|
||||||
|
onReady() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面显示
|
||||||
|
*/
|
||||||
|
onShow() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面隐藏
|
||||||
|
*/
|
||||||
|
onHide() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面卸载
|
||||||
|
*/
|
||||||
|
onUnload() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面相关事件处理函数--监听用户下拉动作
|
||||||
|
*/
|
||||||
|
onPullDownRefresh() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面上拉触底事件的处理函数
|
||||||
|
*/
|
||||||
|
onReachBottom() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户点击右上角分享
|
||||||
|
*/
|
||||||
|
onShareAppMessage() {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
@ -0,0 +1,6 @@
|
|||||||
|
<!--pages/mmm/mmm.wxml-->
|
||||||
|
<view class="page-body">
|
||||||
|
<view class="btn-area" id="buttonContainer" catchtap="atbutton">
|
||||||
|
<button type="primary" >获取验证码</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
@ -0,0 +1,5 @@
|
|||||||
|
/* pages/mmm/mmm.wxss */
|
||||||
|
button{
|
||||||
|
margin-top: 30rpx;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "任务信息表单"
|
||||||
|
}
|
@ -0,0 +1,147 @@
|
|||||||
|
// logs.ts
|
||||||
|
// const util = require('../../utils/util.js')
|
||||||
|
import { formatTime } from '../../utils/util'
|
||||||
|
|
||||||
|
Page({
|
||||||
|
data: {
|
||||||
|
logs: [],
|
||||||
|
taskList: [],
|
||||||
|
taskFlag: false,
|
||||||
|
releaseFlag: false,
|
||||||
|
id:undefined,
|
||||||
|
name:'',
|
||||||
|
property:'',
|
||||||
|
stuid:'',
|
||||||
|
deadtime:'',
|
||||||
|
addUrl:'http://localhost:81/task/addTask',
|
||||||
|
updateUrl:'http://localhost:81/task/taskInfo',
|
||||||
|
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") || []
|
||||||
|
});
|
||||||
|
},
|
||||||
|
formSubmit:function(e:any){
|
||||||
|
var that = this;
|
||||||
|
//获取表单值
|
||||||
|
var formData = e.detail.value;
|
||||||
|
var url = this.data.addUrl;
|
||||||
|
if(this.data.id != undefined){
|
||||||
|
//如果是编辑按钮跳转
|
||||||
|
formData.id = this.data.id;
|
||||||
|
url = this.data.updateUrl;
|
||||||
|
}
|
||||||
|
console.log(JSON.stringify(formData));
|
||||||
|
wx.request({
|
||||||
|
url: url,
|
||||||
|
//将其转换成JSON
|
||||||
|
data: JSON.stringify(formData),
|
||||||
|
method: 'POST',
|
||||||
|
success: function(res:any) {
|
||||||
|
var result = res.data.success;
|
||||||
|
var toastText = '请求成功';
|
||||||
|
if(!result){
|
||||||
|
toastText = '请求失败'+res.data.msg;
|
||||||
|
}
|
||||||
|
wx.showToast({
|
||||||
|
title: toastText,
|
||||||
|
duration: 2000,
|
||||||
|
})
|
||||||
|
if(result){
|
||||||
|
wx.redirectTo({
|
||||||
|
//操作结束后跳转回列表页
|
||||||
|
url: '../list/list',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
},
|
||||||
|
atTaskFlag() {
|
||||||
|
this.setData({ taskFlag: !this.data.taskFlag })
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
this.setData({
|
||||||
|
taskList: wx.getStorageSync("taskList") || []
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onLoad: function (options:any) {
|
||||||
|
//options为页面跳转带来的参数
|
||||||
|
var that = this;
|
||||||
|
if(options.id != undefined){
|
||||||
|
//若是由编辑按钮跳转过来的
|
||||||
|
that.setData({
|
||||||
|
id:options.id
|
||||||
|
});
|
||||||
|
wx.request({
|
||||||
|
url: 'http://localhost:81/task/one',
|
||||||
|
data: {'id':options.id},
|
||||||
|
method: 'GET',
|
||||||
|
success: function(res:any) {
|
||||||
|
var result = res.data.success;
|
||||||
|
if(result){
|
||||||
|
that.setData({
|
||||||
|
areaName:res.data.data.name,
|
||||||
|
priority: res.data.data.priority
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
wx.showToast({
|
||||||
|
title: '请求失败'+res.data.msg,
|
||||||
|
duration: 2000,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
@ -0,0 +1,19 @@
|
|||||||
|
<view class="release-view">
|
||||||
|
<form bindsubmit='formSubmit' bindreset='formReset'>
|
||||||
|
<label>任务名称
|
||||||
|
<input type='text' name='name' placeholder='请输入任务名' value='{{name}}'></input>
|
||||||
|
</label>
|
||||||
|
<label>任务结束时间
|
||||||
|
<input type="text" name="deadtime" value="{{deadtime}}" placeholder="输入任务结束时间" ></input>
|
||||||
|
</label>
|
||||||
|
<label>任务详情
|
||||||
|
<input type="text" name="property" value="{{property}}" placeholder="输入任务详情" ></input>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
|
||||||
|
<view class='row'>
|
||||||
|
<button type='primary' form-type='submit' catchtap="addSelect">提交</button>
|
||||||
|
<button type='primary' form-type='reset'>清空</button>
|
||||||
|
</view>
|
||||||
|
</form>
|
||||||
|
</view>
|
@ -0,0 +1,69 @@
|
|||||||
|
/* pages/opration/opration.wxss */
|
||||||
|
.row input {
|
||||||
|
font-size: 0.7rem;
|
||||||
|
flex-grow: 3;
|
||||||
|
border: ipx solid #09c;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 0.3rem;
|
||||||
|
box-shadow: 0 0 0.15rem #aaa;
|
||||||
|
padding: 0.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row button {
|
||||||
|
padding: 0.3rem;
|
||||||
|
margin: 3rem 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
padding: 1rem;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
line-height: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 0.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row text {
|
||||||
|
flex-grow: 1.5;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.form-box picker{
|
||||||
|
margin: 30rpx 30rpx 0 0;
|
||||||
|
color: rgb(153, 153, 153);
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
background: #fff;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px;
|
||||||
|
margin: 10px 0;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
width: 100vw;
|
||||||
|
height: 4px;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.release-view{
|
||||||
|
padding: 8px;
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.release-view input{
|
||||||
|
border: 1px #ccc solid;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin: 6px 0;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "接龙信息表单"
|
||||||
|
}
|
@ -0,0 +1,95 @@
|
|||||||
|
// logs.ts
|
||||||
|
// const util = require('../../utils/util.js')
|
||||||
|
import { formatTime } from '../../utils/util'
|
||||||
|
|
||||||
|
Page({
|
||||||
|
data: {
|
||||||
|
logs: [],
|
||||||
|
taskList: [],
|
||||||
|
taskFlag: false,
|
||||||
|
releaseFlag: false,
|
||||||
|
id:undefined,
|
||||||
|
name:'',
|
||||||
|
property:'',
|
||||||
|
stuid:'',
|
||||||
|
deadtime:'',
|
||||||
|
addUrl:'http://localhost:81/dragon/addDragon',
|
||||||
|
updateUrl:'http://localhost:81/dragon/dragonInfo',
|
||||||
|
from: {
|
||||||
|
taskName: "",
|
||||||
|
end: ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formSubmit:function(e:any){
|
||||||
|
var that = this;
|
||||||
|
//获取表单值
|
||||||
|
var formData = e.detail.value;
|
||||||
|
var url = this.data.addUrl;
|
||||||
|
if(this.data.id != undefined){
|
||||||
|
//如果是编辑按钮跳转
|
||||||
|
formData.id = this.data.id;
|
||||||
|
url = this.data.updateUrl;
|
||||||
|
}
|
||||||
|
console.log(JSON.stringify(formData));
|
||||||
|
wx.request({
|
||||||
|
url: url,
|
||||||
|
//将其转换成JSON
|
||||||
|
data: JSON.stringify(formData),
|
||||||
|
method: 'POST',
|
||||||
|
success: function(res:any) {
|
||||||
|
var result = res.data.success;
|
||||||
|
var toastText = '请求成功';
|
||||||
|
if(!result){
|
||||||
|
toastText = '请求失败'+res.data.msg;
|
||||||
|
}
|
||||||
|
wx.showToast({
|
||||||
|
title: toastText,
|
||||||
|
duration: 2000,
|
||||||
|
})
|
||||||
|
if(result){
|
||||||
|
wx.redirectTo({
|
||||||
|
//操作结束后跳转回列表页
|
||||||
|
url: '../list1/list1',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
},
|
||||||
|
atTaskFlag() {
|
||||||
|
this.setData({ taskFlag: !this.data.taskFlag })
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
this.setData({
|
||||||
|
taskList: wx.getStorageSync("taskList") || []
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onLoad: function (options:any) {
|
||||||
|
//options为页面跳转带来的参数
|
||||||
|
var that = this;
|
||||||
|
if(options.id != undefined){
|
||||||
|
//若是由编辑按钮跳转过来的
|
||||||
|
that.setData({
|
||||||
|
id:options.id
|
||||||
|
});
|
||||||
|
wx.request({
|
||||||
|
url: 'http://localhost:81/dragon/one',
|
||||||
|
data: {'id':options.id},
|
||||||
|
method: 'GET',
|
||||||
|
success: function(res:any) {
|
||||||
|
var result = res.data.success;
|
||||||
|
if(result){
|
||||||
|
that.setData({
|
||||||
|
areaName:res.data.data.name,
|
||||||
|
priority: res.data.data.priority
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
wx.showToast({
|
||||||
|
title: '请求失败'+res.data.msg,
|
||||||
|
duration: 2000,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
@ -0,0 +1,18 @@
|
|||||||
|
<view class="release-view">
|
||||||
|
<form bindsubmit='formSubmit' bindreset='formReset'>
|
||||||
|
<label>接龙名称
|
||||||
|
<input type='text' name='name' placeholder='请输入接龙名' value='{{name}}'></input>
|
||||||
|
</label>
|
||||||
|
<label>接龙结束时间
|
||||||
|
<input type="text" name="deadtime" value="{{deadtime}}" placeholder="输入接龙结束时间" ></input>
|
||||||
|
</label>
|
||||||
|
<label>接龙详情
|
||||||
|
<input type="text" name="property" value="{{property}}" placeholder="输入接龙详情" ></input>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<view class='row'>
|
||||||
|
<button type='primary' form-type='submit' catchtap="addSelect">提交</button>
|
||||||
|
<button type='primary' form-type='reset'>清空</button>
|
||||||
|
</view>
|
||||||
|
</form>
|
||||||
|
</view>
|
@ -0,0 +1,69 @@
|
|||||||
|
/* pages/opration/opration.wxss */
|
||||||
|
.row input {
|
||||||
|
font-size: 0.7rem;
|
||||||
|
flex-grow: 3;
|
||||||
|
border: ipx solid #09c;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 0.3rem;
|
||||||
|
box-shadow: 0 0 0.15rem #aaa;
|
||||||
|
padding: 0.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row button {
|
||||||
|
padding: 0.3rem;
|
||||||
|
margin: 3rem 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
padding: 1rem;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
line-height: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 0.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row text {
|
||||||
|
flex-grow: 1.5;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.form-box picker{
|
||||||
|
margin: 30rpx 30rpx 0 0;
|
||||||
|
color: rgb(153, 153, 153);
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
background: #fff;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 4px;
|
||||||
|
margin: 10px 0;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
width: 100vw;
|
||||||
|
height: 4px;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.release-view{
|
||||||
|
padding: 8px;
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.release-view input{
|
||||||
|
border: 1px #ccc solid;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin: 6px 0;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
|
||||||
|
"rules": [{
|
||||||
|
"action": "allow",
|
||||||
|
"page": "*"
|
||||||
|
}]
|
||||||
|
}
|
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 12 KiB |
@ -0,0 +1,19 @@
|
|||||||
|
export const formatTime = (date: Date) => {
|
||||||
|
const year = date.getFullYear()
|
||||||
|
const month = date.getMonth() + 1
|
||||||
|
const day = date.getDate()
|
||||||
|
// const hour = date.getHours()
|
||||||
|
// const minute = date.getMinutes()
|
||||||
|
// const second = date.getSeconds()
|
||||||
|
|
||||||
|
return (
|
||||||
|
[year, month, day].map(formatNumber).join('-')
|
||||||
|
// + ' ' +
|
||||||
|
// [hour, minute, second].map(formatNumber).join(':')
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const formatNumber = (n: number) => {
|
||||||
|
const s = n.toString()
|
||||||
|
return s[1] ? s : '0' + s
|
||||||
|
}
|