|  | @@ -22,27 +22,137 @@ module.exports = async (util) => {
 | 
	
		
			
				|  |  |      api: {
 | 
	
		
			
				|  |  |        // 在其他文件里的 api
 | 
	
		
			
				|  |  |        ...api(util).api,
 | 
	
		
			
				|  |  | -      'post /api/login': util.side({
 | 
	
		
			
				|  |  | -        tags: [`admin`],
 | 
	
		
			
				|  |  | -        summary: `根据用户名获取 token`,
 | 
	
		
			
				|  |  | -        schema: {
 | 
	
		
			
				|  |  | -          body: joi
 | 
	
		
			
				|  |  | -            .object({
 | 
	
		
			
				|  |  | -              username: joi
 | 
	
		
			
				|  |  | -                .string()
 | 
	
		
			
				|  |  | -                .default(`李蕾`)
 | 
	
		
			
				|  |  | -                .required()
 | 
	
		
			
				|  |  | -                .description(`用户名`),
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | -            .description(`用户信息`),
 | 
	
		
			
				|  |  | +      'get /api/currentWeather': util.side({
 | 
	
		
			
				|  |  | +        tags: [`公用`],
 | 
	
		
			
				|  |  | +        summary: `当前天气`,
 | 
	
		
			
				|  |  | +        async action(req, res) {
 | 
	
		
			
				|  |  | +          res.json(
 | 
	
		
			
				|  |  | +            wrapApiData(
 | 
	
		
			
				|  |  | +              util.libObj.mockjs.mock({
 | 
	
		
			
				|  |  | +                data: {
 | 
	
		
			
				|  |  | +                  温度: `@integer(0, 40)`,
 | 
	
		
			
				|  |  | +                  天气: `@pick(多云, 少云, 晴, 雨, 雪, 雾, 暴雨)`,
 | 
	
		
			
				|  |  | +                },
 | 
	
		
			
				|  |  | +              })
 | 
	
		
			
				|  |  | +            )
 | 
	
		
			
				|  |  | +          )
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  | +      }),
 | 
	
		
			
				|  |  | +      'get /api/realTimeStatistics': util.side({
 | 
	
		
			
				|  |  | +        tags: [`综合总览`],
 | 
	
		
			
				|  |  | +        summary: `实时统计`,
 | 
	
		
			
				|  |  | +        async action(req, res) {
 | 
	
		
			
				|  |  | +          res.json(
 | 
	
		
			
				|  |  | +            wrapApiData(
 | 
	
		
			
				|  |  | +              util.libObj.mockjs.mock({
 | 
	
		
			
				|  |  | +                data: {
 | 
	
		
			
				|  |  | +                  目标完成率: `@integer(0, 100)`,
 | 
	
		
			
				|  |  | +                  年移栽数量: `@integer(9, 9e4)`,
 | 
	
		
			
				|  |  | +                  年移栽面积: `@integer(9, 9e4)`,
 | 
	
		
			
				|  |  | +                  移载区域数: `@integer(9, 9e4)`,
 | 
	
		
			
				|  |  | +                  烟农数量: `@integer(9, 9e4)`,
 | 
	
		
			
				|  |  | +                },
 | 
	
		
			
				|  |  | +              })
 | 
	
		
			
				|  |  | +            )
 | 
	
		
			
				|  |  | +          )
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +      }),
 | 
	
		
			
				|  |  | +      'get /api/analysisOfTransplantYieldInVariousRegions': util.side({
 | 
	
		
			
				|  |  | +        tags: [`综合总览`],
 | 
	
		
			
				|  |  | +        summary: `各区域移栽产量分析`,
 | 
	
		
			
				|  |  | +        async action(req, res) {
 | 
	
		
			
				|  |  | +          res.json(
 | 
	
		
			
				|  |  | +            wrapApiData(
 | 
	
		
			
				|  |  | +              util.libObj.mockjs.mock({
 | 
	
		
			
				|  |  | +                'data|10': [
 | 
	
		
			
				|  |  | +                  {
 | 
	
		
			
				|  |  | +                    名称: `@county`,
 | 
	
		
			
				|  |  | +                    值: `@integer(0, 1000)`,
 | 
	
		
			
				|  |  | +                  },
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +              })
 | 
	
		
			
				|  |  | +            )
 | 
	
		
			
				|  |  | +          )
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +      }),
 | 
	
		
			
				|  |  | +      'get /api/weatherForecast': util.side({
 | 
	
		
			
				|  |  | +        tags: [`综合总览`],
 | 
	
		
			
				|  |  | +        summary: `天气预报`,
 | 
	
		
			
				|  |  | +        async action(req, res) {
 | 
	
		
			
				|  |  | +          res.json(
 | 
	
		
			
				|  |  | +            wrapApiData(
 | 
	
		
			
				|  |  | +              util.libObj.mockjs.mock({
 | 
	
		
			
				|  |  | +                'data|24': [
 | 
	
		
			
				|  |  | +                  {
 | 
	
		
			
				|  |  | +                    '时间|+1': 0,
 | 
	
		
			
				|  |  | +                    温度: `@integer(0, 40)`,
 | 
	
		
			
				|  |  | +                    天气: `@pick(多云, 少云, 晴, 雨, 雪, 雾, 暴雨)`,
 | 
	
		
			
				|  |  | +                  },
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +              })
 | 
	
		
			
				|  |  | +            )
 | 
	
		
			
				|  |  | +          )
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +      }),
 | 
	
		
			
				|  |  | +      'get /api/transplantAreaInEachRegion': util.side({
 | 
	
		
			
				|  |  | +        tags: [`综合总览`],
 | 
	
		
			
				|  |  | +        summary: `各区域移栽面积`,
 | 
	
		
			
				|  |  | +        async action(req, res) {
 | 
	
		
			
				|  |  | +          res.json(
 | 
	
		
			
				|  |  | +            wrapApiData(
 | 
	
		
			
				|  |  | +              util.libObj.mockjs.mock({
 | 
	
		
			
				|  |  | +                'data|10': [
 | 
	
		
			
				|  |  | +                  {
 | 
	
		
			
				|  |  | +                    名称: `@county`,
 | 
	
		
			
				|  |  | +                    今年: `@integer(0, 80)`,
 | 
	
		
			
				|  |  | +                    去年: `@integer(0, 80)`,
 | 
	
		
			
				|  |  | +                  },
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +              })
 | 
	
		
			
				|  |  | +            )
 | 
	
		
			
				|  |  | +          )
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +      }),
 | 
	
		
			
				|  |  | +      'get /api/analysisOfTransplantingSituation': util.side({
 | 
	
		
			
				|  |  | +        tags: [`综合总览`],
 | 
	
		
			
				|  |  | +        summary: `移栽情况分析`,
 | 
	
		
			
				|  |  | +        async action(req, res) {
 | 
	
		
			
				|  |  | +          res.json(
 | 
	
		
			
				|  |  | +            wrapApiData(
 | 
	
		
			
				|  |  | +              util.libObj.mockjs.mock({
 | 
	
		
			
				|  |  | +                'data|10': [
 | 
	
		
			
				|  |  | +                  {
 | 
	
		
			
				|  |  | +                    名称: `@county`,
 | 
	
		
			
				|  |  | +                    已移载: `@integer(9, 9e4)`,
 | 
	
		
			
				|  |  | +                    未移栽: `@integer(9, 9e4)`,
 | 
	
		
			
				|  |  | +                    比率() {
 | 
	
		
			
				|  |  | +                      return (this.已移载 / (this.已移载 + this.未移栽)) * 100
 | 
	
		
			
				|  |  | +                    },
 | 
	
		
			
				|  |  | +                  },
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +              })
 | 
	
		
			
				|  |  | +            )
 | 
	
		
			
				|  |  | +          )
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +      }),
 | 
	
		
			
				|  |  | +      'get /api/transplantTrendAnalysis': util.side({
 | 
	
		
			
				|  |  | +        tags: [`综合总览`],
 | 
	
		
			
				|  |  | +        summary: `移栽趋势分析`,
 | 
	
		
			
				|  |  |          async action(req, res) {
 | 
	
		
			
				|  |  | -          const { username } = req.body
 | 
	
		
			
				|  |  | -          res.json({
 | 
	
		
			
				|  |  | -            status: 200,
 | 
	
		
			
				|  |  | -            message: `欢迎 ${username}, 登录成功`,
 | 
	
		
			
				|  |  | -            token: `tokentoken`,
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  | +          res.json(
 | 
	
		
			
				|  |  | +            wrapApiData(
 | 
	
		
			
				|  |  | +              util.libObj.mockjs.mock({
 | 
	
		
			
				|  |  | +                'data|31': [
 | 
	
		
			
				|  |  | +                  {
 | 
	
		
			
				|  |  | +                    '时间|+1': 1,
 | 
	
		
			
				|  |  | +                    名称: `@county`,
 | 
	
		
			
				|  |  | +                    今年: `@integer(0, 2000)`,
 | 
	
		
			
				|  |  | +                    去年: `@integer(0, 2000)`,
 | 
	
		
			
				|  |  | +                  },
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  | +              })
 | 
	
		
			
				|  |  | +            )
 | 
	
		
			
				|  |  | +          )
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |        }),
 | 
	
		
			
				|  |  |        // 当为基本数据类型时, 直接返回数据, 这个接口返回 {"msg":"ok"}
 |