From efc07c6b90c7383847555c3f88fa354d4cadc8d0 Mon Sep 17 00:00:00 2001
From: huangdeliang <huangdeliang@skieer.com>
Date: Sun, 29 Nov 2020 18:54:10 +0800
Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91=E5=BE=AE=E4=BF=A1=E6=89=93?=
 =?UTF-8?q?=E5=8D=A1=E7=B3=BB=E7=BB=9F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 sql/ry_20200920.sql                           | 11 +--
 .../custom/SysWxUserInfoController.java       | 72 +++++++++++------
 .../custom/SysWxUserLogController.java        | 80 +++++++++++--------
 .../stdiet/custom/domain/SysWxUserLog.java    | 50 ++++++------
 .../stdiet/custom/page/WxCurUserLogInfo.java  |  9 +++
 .../com/stdiet/custom/page/WxServeInfo.java   | 67 ++++++++++++++++
 .../custom/service/ISysWxUserInfoService.java |  2 +
 .../mapper/custom/SysWxUserLogMapper.xml      |  1 +
 stdiet-ui/src/views/custom/order/index.vue    |  3 +
 9 files changed, 205 insertions(+), 90 deletions(-)
 create mode 100644 stdiet-custom/src/main/java/com/stdiet/custom/page/WxCurUserLogInfo.java
 create mode 100644 stdiet-custom/src/main/java/com/stdiet/custom/page/WxServeInfo.java

diff --git a/sql/ry_20200920.sql b/sql/ry_20200920.sql
index f81727db5..2b958dbca 100644
--- a/sql/ry_20200920.sql
+++ b/sql/ry_20200920.sql
@@ -790,22 +790,23 @@ create table sys_wx_user_info (
 -- ----------------------------
 drop table if exists sys_wx_user_log;
 create table sys_wx_user_log (
-       openid           varchar(100)    not null default 'manual'  comment '微信openid',
+       id               BIGINT(20)       not null auto_increment   comment 'id',
+       openid           varchar(100)     default 'manual'          comment '微信openid',
        appid            varchar(100)                               comment '微信appid',
        weight           decimal(10,2)                              comment '体重',
        phone            varchar(30)                                comment '电话',
-       sleep_time       datetime                                   comment '睡觉时间',
+       sleep_time       varchar(10)                                comment '睡觉时间',
        avatar_url       varchar(255)                               comment '用户头像',
-       wakeup_time      datetime                                   comment '起床时间',
+       wakeup_time      varchar(10)                                comment '起床时间',
        sport            char(1)                                    comment '运动情况(Y是 N否)',
        diet             char(1)                                    comment '饮食情况(Y是 N否)',
        insomnia         char(1)                                    comment '熬夜失眠(Y是 N否)',
        defecation       char(1)                                    comment '排便情况',
-       water            tinyint                                    comment '饮水量',
+       water            bigint(20)                                 comment '饮水量',
        create_by        varchar(64)     default ''                 comment '创建者',
        create_time      datetime                                   comment '创建时间',
        update_by        varchar(64)     default ''                 comment '更新者',
        update_time      datetime                                   comment '更新时间',
        remark           varchar(500)    default null               comment '备注',
-       primary key (openid)
+       primary key (id)
 ) engine=innodb comment = '微信用户记录';
\ No newline at end of file
diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserInfoController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserInfoController.java
index 59be66f3c..0db476160 100644
--- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserInfoController.java
+++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserInfoController.java
@@ -1,25 +1,22 @@
 package com.stdiet.web.controller.custom;
 
-import java.util.List;
-
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 import com.stdiet.common.annotation.Log;
 import com.stdiet.common.core.controller.BaseController;
 import com.stdiet.common.core.domain.AjaxResult;
-import com.stdiet.common.enums.BusinessType;
-import com.stdiet.custom.domain.SysWxUserInfo;
-import com.stdiet.custom.service.ISysWxUserInfoService;
-import com.stdiet.common.utils.poi.ExcelUtil;
 import com.stdiet.common.core.page.TableDataInfo;
+import com.stdiet.common.enums.BusinessType;
+import com.stdiet.common.utils.StringUtils;
+import com.stdiet.common.utils.poi.ExcelUtil;
+import com.stdiet.custom.domain.SysOrder;
+import com.stdiet.custom.domain.SysWxUserInfo;
+import com.stdiet.custom.page.WxServeInfo;
+import com.stdiet.custom.service.ISysOrderService;
+import com.stdiet.custom.service.ISysWxUserInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * 微信用户Controller
@@ -33,6 +30,9 @@ public class SysWxUserInfoController extends BaseController {
     @Autowired
     private ISysWxUserInfoService sysWxUserInfoService;
 
+    @Autowired
+    private ISysOrderService sysOrderService;
+
     /**
      * 查询微信用户列表
      */
@@ -95,17 +95,41 @@ public class SysWxUserInfoController extends BaseController {
         return toAjax(sysWxUserInfoService.deleteSysWxUserInfoByIds(openids));
     }
 
-    @PostMapping("/wx/adduser")
+    @PostMapping("/wx/serveinfo")
     public AjaxResult addUser(@RequestBody SysWxUserInfo sysWxUserInfo) {
 
+        // 查询微信用户
         SysWxUserInfo userInfo = sysWxUserInfoService.selectSysWxUserInfoById(sysWxUserInfo.getOpenid());
-        int resultCode = 0;
-        if (userInfo == null) {
-            resultCode = sysWxUserInfoService.insertSysWxUserInfo(sysWxUserInfo);
-        } else {
-            sysWxUserInfo.setPhone(userInfo.getPhone());
-            resultCode = sysWxUserInfoService.updateSysWxUserInfo(sysWxUserInfo);
+        if (StringUtils.isNull(userInfo) && StringUtils.isEmpty(sysWxUserInfo.getPhone())
+                || StringUtils.isEmpty(userInfo.getPhone()) && StringUtils.isEmpty(sysWxUserInfo.getPhone())) {
+            return AjaxResult.error(5001, "没有手机号");
         }
-        return toAjax(resultCode);
+
+        // 插入/更新用户信息
+        if (StringUtils.isNull(userInfo)) {
+            sysWxUserInfoService.insertSysWxUserInfo(sysWxUserInfo);
+        } else {
+            if (StringUtils.isNotEmpty(userInfo.getPhone())) {
+                sysWxUserInfo.setPhone(userInfo.getPhone());
+            }
+            sysWxUserInfoService.updateSysWxUserInfo(sysWxUserInfo);
+        }
+
+        // 查找订单记录
+        SysOrder querySysOrder = new SysOrder();
+        querySysOrder.setPhone(sysWxUserInfo.getPhone());
+        List<SysOrder> list = sysOrderService.selectSysOrderList(querySysOrder);
+
+        if (list.isEmpty()) {
+            return AjaxResult.error(5002, "没有订单信息");
+        }
+
+        WxServeInfo wxServeInfo = new WxServeInfo();
+        wxServeInfo.setServeStatus(list.get(0).getStatus());
+        wxServeInfo.setServeTime(list.get(0).getServeTime());
+        wxServeInfo.setStartTime(list.get(list.size() - 1).getStartTime());
+        wxServeInfo.setWeight(list.get(list.size() - 1).getWeight());
+
+        return AjaxResult.success(wxServeInfo);
     }
 }
\ No newline at end of file
diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserLogController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserLogController.java
index 8df2f7657..30c372b96 100644
--- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserLogController.java
+++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserLogController.java
@@ -1,23 +1,23 @@
 package com.stdiet.web.controller.custom;
-import java.util.List;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+
 import com.stdiet.common.annotation.Log;
 import com.stdiet.common.core.controller.BaseController;
 import com.stdiet.common.core.domain.AjaxResult;
-import com.stdiet.common.enums.BusinessType;
-import com.stdiet.custom.domain.SysWxUserLog;
-import com.stdiet.custom.service.ISysWxUserLogService;
-import com.stdiet.common.utils.poi.ExcelUtil;
 import com.stdiet.common.core.page.TableDataInfo;
+import com.stdiet.common.enums.BusinessType;
+import com.stdiet.common.utils.StringUtils;
+import com.stdiet.common.utils.poi.ExcelUtil;
+import com.stdiet.custom.domain.SysOrder;
+import com.stdiet.custom.domain.SysWxUserInfo;
+import com.stdiet.custom.domain.SysWxUserLog;
+import com.stdiet.custom.service.ISysOrderService;
+import com.stdiet.custom.service.ISysWxUserInfoService;
+import com.stdiet.custom.service.ISysWxUserLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * 微信用户记录Controller
@@ -27,18 +27,21 @@ import com.stdiet.common.core.page.TableDataInfo;
  */
 @RestController
 @RequestMapping("/custom/wxUserLog")
-public class SysWxUserLogController extends BaseController
-{
+public class SysWxUserLogController extends BaseController {
     @Autowired
     private ISysWxUserLogService sysWxUserLogService;
 
+    @Autowired
+    private ISysWxUserInfoService sysWxUserInfoService;
+
+    private ISysOrderService sysOrderService;
+
     /**
      * 查询微信用户记录列表
      */
     @PreAuthorize("@ss.hasPermi('custom:wxUserLog:list')")
     @GetMapping("/list")
-    public TableDataInfo list(SysWxUserLog sysWxUserLog)
-    {
+    public TableDataInfo list(SysWxUserLog sysWxUserLog) {
         startPage();
         List<SysWxUserLog> list = sysWxUserLogService.selectSysWxUserLogList(sysWxUserLog);
         return getDataTable(list);
@@ -50,8 +53,7 @@ public class SysWxUserLogController extends BaseController
     @PreAuthorize("@ss.hasPermi('custom:wxUserLog:export')")
     @Log(title = "微信用户记录", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
-    public AjaxResult export(SysWxUserLog sysWxUserLog)
-    {
+    public AjaxResult export(SysWxUserLog sysWxUserLog) {
         List<SysWxUserLog> list = sysWxUserLogService.selectSysWxUserLogList(sysWxUserLog);
         ExcelUtil<SysWxUserLog> util = new ExcelUtil<SysWxUserLog>(SysWxUserLog.class);
         return util.exportExcel(list, "wxUserLog");
@@ -62,8 +64,7 @@ public class SysWxUserLogController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('custom:wxUserLog:query')")
     @GetMapping(value = "/{openid}")
-    public AjaxResult getInfo(@PathVariable("openid") String openid)
-    {
+    public AjaxResult getInfo(@PathVariable("openid") String openid) {
         return AjaxResult.success(sysWxUserLogService.selectSysWxUserLogById(openid));
     }
 
@@ -73,8 +74,7 @@ public class SysWxUserLogController extends BaseController
     @PreAuthorize("@ss.hasPermi('custom:wxUserLog:add')")
     @Log(title = "微信用户记录", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody SysWxUserLog sysWxUserLog)
-    {
+    public AjaxResult add(@RequestBody SysWxUserLog sysWxUserLog) {
         return toAjax(sysWxUserLogService.insertSysWxUserLog(sysWxUserLog));
     }
 
@@ -84,8 +84,7 @@ public class SysWxUserLogController extends BaseController
     @PreAuthorize("@ss.hasPermi('custom:wxUserLog:edit')")
     @Log(title = "微信用户记录", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody SysWxUserLog sysWxUserLog)
-    {
+    public AjaxResult edit(@RequestBody SysWxUserLog sysWxUserLog) {
         return toAjax(sysWxUserLogService.updateSysWxUserLog(sysWxUserLog));
     }
 
@@ -95,17 +94,28 @@ public class SysWxUserLogController extends BaseController
     @PreAuthorize("@ss.hasPermi('custom:wxUserLog:remove')")
     @Log(title = "微信用户记录", businessType = BusinessType.DELETE)
     @DeleteMapping("/{openids}")
-    public AjaxResult remove(@PathVariable String[] openids)
-    {
+    public AjaxResult remove(@PathVariable String[] openids) {
         return toAjax(sysWxUserLogService.deleteSysWxUserLogByIds(openids));
     }
 
     @GetMapping(value = "/wx/logs/{openid}")
-    public TableDataInfo getLogInfo(@PathVariable("openid") String openid)
-    {
-        SysWxUserLog sysWxUserLog = new SysWxUserLog();
-        sysWxUserLog.setOpenid(openid);
-        List<SysWxUserLog> list = sysWxUserLogService.selectSysWxUserLogList(sysWxUserLog);
-        return getDataTable(list);
+    public AjaxResult getLogs(@PathVariable String openId) {
+        SysWxUserLog querySysWxUserLog = new SysWxUserLog();
+        querySysWxUserLog.setOpenid(openId);
+        List<SysWxUserLog> list = sysWxUserLogService.selectSysWxUserLogList(querySysWxUserLog);
+        return AjaxResult.success(list);
+    }
+
+    @PostMapping(value = "/wx/logs/add")
+    public AjaxResult addLog(@RequestBody SysWxUserLog sysWxUserLog) {
+        // 查询微信用户
+        SysWxUserInfo userInfo = sysWxUserInfoService.selectSysWxUserInfoById(sysWxUserLog.getOpenid());
+        if(StringUtils.isNull(userInfo)) {
+            return AjaxResult.error(5003, "没有用户信息");
+        }
+        // 提取有用值
+        sysWxUserLog.setAvatarUrl(userInfo.getAvatarUrl());
+        sysWxUserLog.setPhone(userInfo.getPhone());
+        return add(sysWxUserLog);
     }
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxUserLog.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxUserLog.java
index 9437b844d..ea881c0f5 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxUserLog.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxUserLog.java
@@ -12,7 +12,7 @@ import com.stdiet.common.core.domain.BaseEntity;
  * 微信用户记录对象 sys_wx_user_log
  *
  * @author wonder
- * @date 2020-11-28
+ * @date 2020-11-29
  */
 public class SysWxUserLog extends BaseEntity
 {
@@ -34,34 +34,32 @@ public class SysWxUserLog extends BaseEntity
     private String phone;
 
     /** 睡觉时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "睡觉时间", width = 30, dateFormat = "yyyy-MM-dd")
-    private Date sleepTime;
+    @Excel(name = "睡觉时间")
+    private String sleepTime;
 
     /** 起床时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "起床时间", width = 30, dateFormat = "yyyy-MM-dd")
-    private Date wakeupTime;
+    @Excel(name = "起床时间")
+    private String wakeupTime;
 
-    /** 运动情况 */
-    @Excel(name = "运动情况")
-    private Long sport;
+    /** 运动情况(Y是 N否) */
+    @Excel(name = "运动情况", readConverterExp = "Y=是,N=否")
+    private String sport;
 
     /** 用户头像 */
     @Excel(name = "用户头像")
     private String avatarUrl;
 
-    /** 饮食情况 */
-    @Excel(name = "饮食情况")
-    private Long diet;
+    /** 饮食情况(Y是 N否) */
+    @Excel(name = "饮食情况", readConverterExp = "Y=是,N=否")
+    private String diet;
 
     /** 熬夜失眠(Y是 N否) */
     @Excel(name = "熬夜失眠", readConverterExp = "Y=是,N=否")
     private String insomnia;
 
-    /** 排便情况 */
-    @Excel(name = "排便情况")
-    private Long defecation;
+    /** 排便情况(Y是 N否) */
+    @Excel(name = "排便情况", readConverterExp = "Y=是,N=否")
+    private String defecation;
 
     /** 饮水量 */
     @Excel(name = "饮水量")
@@ -103,30 +101,30 @@ public class SysWxUserLog extends BaseEntity
     {
         return phone;
     }
-    public void setSleepTime(Date sleepTime)
+    public void setSleepTime(String sleepTime)
     {
         this.sleepTime = sleepTime;
     }
 
-    public Date getSleepTime()
+    public String getSleepTime()
     {
         return sleepTime;
     }
-    public void setWakeupTime(Date wakeupTime)
+    public void setWakeupTime(String wakeupTime)
     {
         this.wakeupTime = wakeupTime;
     }
 
-    public Date getWakeupTime()
+    public String getWakeupTime()
     {
         return wakeupTime;
     }
-    public void setSport(Long sport)
+    public void setSport(String sport)
     {
         this.sport = sport;
     }
 
-    public Long getSport()
+    public String getSport()
     {
         return sport;
     }
@@ -139,12 +137,12 @@ public class SysWxUserLog extends BaseEntity
     {
         return avatarUrl;
     }
-    public void setDiet(Long diet)
+    public void setDiet(String diet)
     {
         this.diet = diet;
     }
 
-    public Long getDiet()
+    public String getDiet()
     {
         return diet;
     }
@@ -157,12 +155,12 @@ public class SysWxUserLog extends BaseEntity
     {
         return insomnia;
     }
-    public void setDefecation(Long defecation)
+    public void setDefecation(String defecation)
     {
         this.defecation = defecation;
     }
 
-    public Long getDefecation()
+    public String getDefecation()
     {
         return defecation;
     }
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/page/WxCurUserLogInfo.java b/stdiet-custom/src/main/java/com/stdiet/custom/page/WxCurUserLogInfo.java
new file mode 100644
index 000000000..5842358a5
--- /dev/null
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/page/WxCurUserLogInfo.java
@@ -0,0 +1,9 @@
+package com.stdiet.custom.page;
+
+import java.io.Serializable;
+
+public class WxCurUserLogInfo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+}
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/page/WxServeInfo.java b/stdiet-custom/src/main/java/com/stdiet/custom/page/WxServeInfo.java
new file mode 100644
index 000000000..bbc066ac4
--- /dev/null
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/page/WxServeInfo.java
@@ -0,0 +1,67 @@
+package com.stdiet.custom.page;
+
+import com.stdiet.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class WxServeInfo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String serveTime;
+
+    private String serveStatus;
+
+    private String startTime;
+
+    private String weight;
+
+    public String getServeTime() {
+        return serveTime;
+    }
+
+    public void setServeTime(String serveTime) {
+        this.serveTime = serveTime;
+    }
+
+    public String getServeStatus() {
+        return serveStatus;
+    }
+
+    public void setServeStatus(String serveStatus) {
+        if (serveStatus.equals("0")) {
+            this.serveStatus = "进行中";
+        } else if (serveStatus.equals("1")) {
+            this.serveStatus = "暂停";
+        } else if (serveStatus.equals("")) {
+            this.serveStatus = "已完成";
+        }
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTime);
+    }
+
+    public String getWeight() {
+        return weight;
+    }
+
+    public void setWeight(BigDecimal weight) {
+        this.weight = weight.toString() + "kg";
+    }
+
+    @Override
+    public String toString() {
+        return "WxServeInfo{" +
+                "serveTime='" + serveTime + '\'' +
+                ", serveStatus='" + serveStatus + '\'' +
+                ", startTime='" + startTime + '\'' +
+                ", weight='" + weight + '\'' +
+                '}';
+    }
+}
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxUserInfoService.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxUserInfoService.java
index e5dcc1ca8..06f905cce 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxUserInfoService.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysWxUserInfoService.java
@@ -58,4 +58,6 @@ public interface ISysWxUserInfoService
      * @return 结果
      */
     public int deleteSysWxUserInfoById(String openid);
+
+
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysWxUserLogMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysWxUserLogMapper.xml
index 4d6911980..2ecf966ef 100644
--- a/stdiet-custom/src/main/resources/mapper/custom/SysWxUserLogMapper.xml
+++ b/stdiet-custom/src/main/resources/mapper/custom/SysWxUserLogMapper.xml
@@ -34,6 +34,7 @@
             <if test="appid != null  and appid != ''"> and appid = #{appid}</if>
             <if test="phone != null  and phone != ''"> and phone = #{phone}</if>
         </where>
+        order by create_time asc
     </select>
 
     <select id="selectSysWxUserLogById" parameterType="String" resultMap="SysWxUserLogResult">
diff --git a/stdiet-ui/src/views/custom/order/index.vue b/stdiet-ui/src/views/custom/order/index.vue
index 9f3daddb0..9f1f66a28 100644
--- a/stdiet-ui/src/views/custom/order/index.vue
+++ b/stdiet-ui/src/views/custom/order/index.vue
@@ -585,6 +585,9 @@
           ],
           phone: [
             {required: true, message: "手机号不能为空", trigger: "blur"}
+          ],
+          startTime: [
+            {required: true, message: "开始时间不能为空", trigger: "blur"}
           ]
           // payTypeId: [
           //   {required: true, message: "收款方式不能为空", trigger: "blur"}