Helius
2020-12-17 f76c9c5beb39916771402de95f05be18f39a9db6
finish vip_detail vipInfo fn
4 files added
9 files modified
472 ■■■■ changed files
zq-erp/src/main/java/com/matrix/core/tools/DateUtil.java 35 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/SysVipLabelController.java 60 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java 9 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java 14 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java 35 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipLabel.java 76 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java 1 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipLabelDao.java 17 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java 2 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java 6 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml 10 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/SysVipLabelDao.xml 47 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip_detail.html 160 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/core/tools/DateUtil.java
@@ -726,4 +726,39 @@
        return targetDate;
    }
    public static String getAgeForBirthDay(Date birthDay) {
        Calendar cal = Calendar.getInstance();
        if (birthDay == null) {
            return "-";
        }
        // 出生日期晚于当前时间,无法计算
        if (cal.before(birthDay)) {
            return "-";
        }
        // 当前年份
        int yearNow = cal.get(Calendar.YEAR);
        // 当前月份
        int monthNow = cal.get(Calendar.MONTH);
        // 当前日期
        int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
        cal.setTime(birthDay);
        int yearBirth = cal.get(Calendar.YEAR);
        int monthBirth = cal.get(Calendar.MONTH);
        int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
        // 计算整岁数
        Integer age = yearNow - yearBirth;
        if (monthNow <= monthBirth) {
            if (monthNow == monthBirth) {
                if (dayOfMonthNow < dayOfMonthBirth) {
                    // 当前日期在生日之前,年龄减一
                    age--;
                }
            } else {
                age--;
            }
        }
        return age.toString();
    }
}
zq-erp/src/main/java/com/matrix/system/hive/action/SysVipLabelController.java
New file
@@ -0,0 +1,60 @@
package com.matrix.system.hive.action;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.hive.bean.SysVipLabel;
import com.matrix.system.hive.dao.SysVipLabelDao;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import jodd.util.CollectionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Date;
import java.util.List;
/**
 * @author wzy
 * @date 2020-12-17
 **/
@Controller
@RequestMapping(value = "/admin/label")
public class SysVipLabelController extends BaseController{
    @Autowired
    private SysVipLabelDao sysVipLabelDao;
    @RequestMapping(value = "/add")
    @ResponseBody
    public AjaxResult add(SysVipLabel sysVipLabel) {
        SysUsers sysUsers = getMe();
        List<SysVipLabel> sysVipLabels = sysVipLabelDao.selectByModel(sysVipLabel);
        if (CollectionUtils.isNotEmpty(sysVipLabels)) {
            return AjaxResult.buildFailInstance("已存在该标签");
        }
        sysVipLabel.setCreateBy(sysUsers.getSuName());
        sysVipLabel.setCreateTime(new Date());
        int i = sysVipLabelDao.insert(sysVipLabel);
        if (i > 0) {
            AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("添加成功");
            ajaxResult.putInMap("label", sysVipLabel);
            return ajaxResult;
        }
        return AjaxResult.buildFailInstance("添加失败");
    }
    @RequestMapping(value = "/del")
    @ResponseBody
    public AjaxResult del(Long id) {
        int i = sysVipLabelDao.deleteById(id);
        if (i > 0) {
            return AjaxResult.buildSuccessInstance("删除成功");
        }
        return AjaxResult.buildFailInstance("删除失败");
    }
}
zq-erp/src/main/java/com/matrix/system/hive/action/VipInfoController.java
@@ -22,6 +22,7 @@
import com.matrix.system.hive.action.util.QueryUtil;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.MoneyCardUseDao;
import com.matrix.system.hive.dao.SysVipLabelDao;
import com.matrix.system.hive.dao.VipAnswerDao;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.pojo.RegisterInfo;
@@ -76,10 +77,15 @@
    private MoneyCardUseDao moneyCardUseDao;
    @Autowired
    private SysVipLabelDao sysVipLabelDao;
    @Autowired
    private SystemDictionaryService dataDictionaryService;
    @Autowired
    private CustomerDataDictionaryDao customerDataDictionaryDao;
    @Resource
    private SysOrderService sysOrderService;
    @RequestMapping(value = "/showVipLevel")
@@ -124,6 +130,7 @@
        List<SysVipInfo> vips = vipInfoService.findByVipNoOrTel(keyWord);
        if (vips.size() > 0) {
            // 在session存放当前查询的客户
            vips.get(0).setSysOrder(sysOrderService.findSysOrderTjByVipId(vips.get(0).getId()));
            vips.get(0).setLevelCard(cardUseService.findByVipId(vips.get(0).getId()));
            WebUtil.getSession().setAttribute(SystemConstance.CURRENT_CUSTOMER, vips.get(0));
            // 满20后删除一个
@@ -140,6 +147,8 @@
            if (isNoRepeat) {
                userList.add(vips.get(0));
            }
            vips.get(0).setLabels(sysVipLabelDao.selectByVipId(vips.get(0).getId()));
            vips.get(0).setAge(DateUtil.getAgeForBirthDay(vips.get(0).getBirthday1()));
            vips.get(0).setBalance(moneyCardUseDao.selectVipCardTotalMoney(vips.get(0).getId()));
            AjaxResult result=  new AjaxResult(AjaxResult.STATUS_SUCCESS, vips, 0);
            return result;
zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java
@@ -1,5 +1,6 @@
package com.matrix.system.hive.bean;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.matrix.core.tools.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
@@ -36,6 +37,7 @@
    /**
     * 收款
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GTM-8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date payTime;
@@ -155,6 +157,18 @@
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM)
    private Date endTimeVo;
    /**
     * 消费次数
     */
    private Integer times;
    public Integer getTimes() {
        return times;
    }
    public void setTimes(Integer times) {
        this.times = times;
    }
    public String getBeatuyId() {
        return beatuyId;
zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipInfo.java
@@ -1,5 +1,6 @@
package com.matrix.system.hive.bean;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.ExcelAnnotation;
import org.springframework.format.annotation.DateTimeFormat;
@@ -91,8 +92,11 @@
    /**
     * 生日
     */
    @JsonFormat(pattern = DateUtil.DATE_FORMAT_MM, timezone = "GTM-8")
    @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD)
    private Date birthday1;
    private String age;
 
    /**
     * 地址
@@ -139,6 +143,7 @@
    /**
     * 注册时间
     */
    @JsonFormat(pattern = DateUtil.DATE_FORMAT_MM, timezone = "GTM-8")
    private Date createTime;
    /**
     * 备注
@@ -203,6 +208,15 @@
    
    private Date createDistributionTime;
    private SysOrder sysOrder;
    public SysOrder getSysOrder() {
        return sysOrder;
    }
    public void setSysOrder(SysOrder sysOrder) {
        this.sysOrder = sysOrder;
    }
    public Integer getIsDeal() {
        return isDeal;
@@ -349,6 +363,27 @@
     */
    List<VipAnswer> vipAnswers;
    /**
     * 会员标签
     */
    List<SysVipLabel> labels;
    public List<SysVipLabel> getLabels() {
        return labels;
    }
    public void setLabels(List<SysVipLabel> labels) {
        this.labels = labels;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public Long getCompanyId() {
        return companyId;
    }
zq-erp/src/main/java/com/matrix/system/hive/bean/SysVipLabel.java
New file
@@ -0,0 +1,76 @@
package com.matrix.system.hive.bean;
import java.io.Serializable;
import java.util.Date;
/**
 * @author wzy
 * @date 2020-12-17
 **/
public class SysVipLabel implements Serializable {
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 创建人
     */
    private String createBy;
    /**
     * 主键ID
     */
    private Long id;
    /**
     * 会员ID
     */
    private Long vipId;
    /**
     * 标签内容
     */
    private String label;
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateBy() {
        return createBy;
    }
    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public Long getVipId() {
        return vipId;
    }
    public void setVipId(Long vipId) {
        this.vipId = vipId;
    }
    public String getLabel() {
        return label;
    }
    public void setLabel(String label) {
        this.label = label;
    }
}
zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java
@@ -34,4 +34,5 @@
    public void updateOrderTime(@Param("orderTime") Date orderTime, @Param("id") Long id);
    
    SysOrder selectVipOrderInfoTotal(@Param("vipId") Long vipId);
}
zq-erp/src/main/java/com/matrix/system/hive/dao/SysVipLabelDao.java
New file
@@ -0,0 +1,17 @@
package com.matrix.system.hive.dao;
import com.matrix.system.hive.bean.SysVipLabel;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface SysVipLabelDao {
    int insert(SysVipLabel sysVipLabel);
    int deleteById(@Param("id") Long id);
    List<SysVipLabel> selectByVipId(@Param("vipId") Long vipId);
    List<SysVipLabel> selectByModel(@Param("record") SysVipLabel sysVipLabel);
}
zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
@@ -126,4 +126,6 @@
     * @return
     */
    SysOrder checkAndSaveOrder(SysOrder sysOrder);
    SysOrder findSysOrderTjByVipId(Long vipId);
}
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -1200,6 +1200,8 @@
    }
    @Override
    public SysOrder findSysOrderTjByVipId(Long vipId) {
        return sysOrderDao.selectVipOrderInfoTotal(vipId);
    }
}
zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
@@ -465,4 +465,14 @@
    </sql>
    <select id="selectVipOrderInfoTotal" resultType="com.matrix.system.hive.bean.SysOrder">
        select
            sum(ZK_TOTAL) zkTotal,
            count(1) times,
            MAX(pay_time) payTime,
            GROUP_CONCAT(DISTINCT t2.shop_short_name) shopName
        from sys_order t1
        left join sys_shop_info t2 on t1.SHOP_ID=t2.ID
        where VIP_ID=#{vipId} and STATU='已付款';
    </select>
</mapper>
zq-erp/src/main/resources/mybatis/mapper/hive/SysVipLabelDao.xml
New file
@@ -0,0 +1,47 @@
<?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.matrix.system.hive.dao.SysVipLabelDao">
    <insert id="insert" parameterType="com.matrix.system.hive.bean.SysVipLabel" useGeneratedKeys="true"
            keyProperty="id">
        insert sys_vip_label (
            create_time,
            create_by,
            id,
            vip_id,
            label
        ) values (
            #{createTime},
            #{createBy},
            #{id},
            #{vipId},
            #{label}
        )
    </insert>
    <delete id="deleteById">
        delete from sys_vip_label
        where id=#{id}
    </delete>
    <select id="selectByVipId" resultType="com.matrix.system.hive.bean.SysVipLabel">
        select *
        from sys_vip_label
        where vip_id=#{vipId}
    </select>
    <select id="selectByModel" resultType="com.matrix.system.hive.bean.SysVipLabel">
        select * from sys_vip_label
        where 1=1
        <if test="record!=null">
            <if test="record.label!=null  and record.label!=''">
                and label=#{record.label}
            </if>
            <if test="record.vipId!=null">
                and vip_id=#{record.vipId}
            </if>
        </if>
    </select>
</mapper>
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip_detail.html
@@ -92,16 +92,16 @@
    </style>
</head>
<body onkeypress="dosearch(event)">
<body>
<div class="ibox-content container-fluid" id="app">
    <el-container>
        <el-header style="background-color: white; margin: 15px; line-height: 60px">
            <el-col :span="7">
                <el-col :span="19">
                    <el-input placeholder="请输入内容"></el-input>
                    <el-input v-model="searchValue" placeholder="输入会员姓名/手机号码/编号" @keyup.enter.native="searchVipInfo"></el-input>
                </el-col>
                <el-col :span="1">
                    <el-button type="primary">查询</el-button>
                    <el-button type="primary" @click="searchVipInfo">查询</el-button>
                </el-col>
            </el-col>
            <el-col :span="9" style="float: right; margin-right: 20px;">
@@ -123,30 +123,30 @@
                    </el-row>
                    <el-row type="flex" justify="center">
                        <el-col :span="4" style="text-align: center;"><span style="font-weight: bolder">{{vipInfo.vipName}}</span></el-col>
                        <el-col :span="4" style="text-align: center;">{{vipInfo.vipType}}</el-col>
                        <el-col :span="5" style="text-align: center;">{{vipInfo.vipType}}</el-col>
                    </el-row>
                    <el-row type="flex" justify="center">
                        <span class="col-style">24岁</span>
                        <span class="col-style">{{vipInfo.addr}}</span>
                        <span class="col-style"><span v-if="vipInfo.age != null && vipInfo.age != ''">{{vipInfo.age}}</span><span v-else>-</span></span>
                        <span class="col-style"><span v-if="vipInfo.addr != null && vipInfo.addr != ''">{{vipInfo.addr}}</span><span v-else>-</span></span>
                        <span class="col-style">{{vipInfo.phone}}</span>
                    </el-row>
                    <el-row style="padding: 10px 20px;">
                        <p>余额:<span v-if="vipInfo.bal != null">{{vipInfo.bal}}元</span></p>
                        <p>余额:<span v-if="vipInfo.balance != null">{{vipInfo.balance}}元</span></p>
                        <p>积分:<span v-if="vipInfo.pointAll != null">{{vipInfo.pointAll}}</span></p>
                        <p>累计消费金额:10元</p>
                        <p>累计消费次数:1次</p>
                        <p>上次消费时间:2020-12-12 19:19:19</p>
                        <p>累计消费金额:<span v-if="vipInfo.totalMoney != null">{{vipInfo.totalMoney}} 元</span></p>
                        <p>累计消费次数:<span v-if="vipInfo.totalTimes != null">{{vipInfo.totalTimes}} 次</span></p>
                        <p>上次消费时间:<span v-if="vipInfo.payTime">{{vipInfo.payTime}}</span></p>
                    </el-row>
                    <el-row style="border-top: 2px dashed #E4E7ED; border-bottom: 2px dashed #E4E7ED; padding: 10px 0px;">
                        <h4>标签</h4>
                        <el-tag type="info"
                                size="small"
                                :key="tag"
                                :key="tag.label"
                                v-for="tag in tags.tags"
                                closable
                                :disable-transitions="false"
                                @close="handleClose(tag)">
                            {{tag}}
                            {{tag.label}}
                        </el-tag>
                        <el-input
                                class="input-new-tag"
@@ -162,17 +162,9 @@
                    <el-row style="padding: 10px 0;">
                        <h4>消费门店</h4>
                        <el-row style="text-align: center">
                            <el-col :span="10">
                            <el-col :span="10" v-for="item in vipInfo.shopNames">
                                <el-avatar size="small" :src="circleUrl"></el-avatar>
                                <span class="col-style">龙华店</span>
                            </el-col>
                            <el-col :span="10">
                                <el-avatar size="small" :src="circleUrl"></el-avatar>
                                <span class="col-style">星海店</span>
                            </el-col>
                            <el-col :span="10">
                                <el-avatar size="small" :src="circleUrl"></el-avatar>
                                <span class="col-style">测试店</span>
                                <span class="col-style">{{item}}</span>
                            </el-col>
                        </el-row>
                    </el-row>
@@ -183,17 +175,17 @@
                    <el-tab-pane label="会员信息" name="vipInfo">
                        <el-row>
                            <el-col :span="10">
                                <p>生日 : {{vipInfo.birthday1}}}</p>
                                <p>生日 : {{vipInfo.birthday1}}</p>
                                <p>会员状态 : {{vipInfo.vipState}}</p>
                                <p>会员编号 : {{vipInfo.vipNo}}</p>
                                <p>注册时间 : {{vipInfo.createTime}}</p>
                                <p>到店途径 : {{vipInfo.arrivalWay}}}</p>
                                <p>到店途径 : {{vipInfo.arrivalWay}}</p>
                            </el-col>
                            <el-col :span="10">
                                <p>会员卡类型 : {{vipInfo.vipType}}</p>
                                <p>会员等级 : {{vipInfo.levelName}}</p>
                                <p>生肖/星座 : {{vipInfo.constell}}</p>
                                <p>地址 : {{vipInfo.addr}}}</p>
                                <p>地址 : {{vipInfo.addr}}</p>
                                <p>健康顾问 : {{vipInfo.staffName}}</p>
                            </el-col>
                        </el-row>
@@ -597,11 +589,6 @@
<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script>
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
<script th:inline="javascript">
    //初始带入vip的电话
    var key = $.query.get("vipPhone");
    if(key){
        selectList(key);
    }
    var app = new Vue({
        el: '#app',
        data : {
@@ -612,7 +599,9 @@
                inputVisible: false,
                inputValue: ''
            },
            searchValue : "",
            vipInfo : {},
            // 项目/套餐 tab
            projTab : {
                projType : "proj",
                projOptions : [{ value : '有效', label : "有效" }, { value : '失效', label : "失效" }],
@@ -625,6 +614,7 @@
                    currentPage : 1
                }
            },
            // 服务单tab
            serviceOrderTab : {
                tableData : [],
                selectTime : '',
@@ -636,6 +626,7 @@
                    currentPage : 1,
                },
            },
            // 订单 tab
            orderTab : {
                orderTableData : [],
                selectTime : '',
@@ -645,6 +636,7 @@
                    currentPage : 1,
                },
            },
            // 皮肤检测tab
            skinTab : {
                skinTableDate : [],
                selectTime : '',
@@ -658,26 +650,82 @@
            let _this = this;
            if (key) {
                vipInfo(key);
                _this.vipInfoFn(key);
            }
        },
        methods : {
            vipInfo(key) {
            vipInfoFn(key) {
                let _this = this;
                // 请求用户信息
                $.AjaxProxy({
                    p: {
                        keyWord: key
                    }
                }).invoke(basePath + "/admin/vipInfo/showVipInfo", function (loj) {});
                }).invoke(basePath + "/admin/vipInfo/showVipInfo", function (loj) {
                    if (loj.getRowCount() == 0) {
                        layer.msg('未查询到客户信息', {
                            icon: 5
                        });
                        return false;
                    }
                    console.log(loj);
                    let data = loj[0].result.rows[0];
                    _this.vipInfo = {};
                    _this.vipInfo = data;
                    if (data.sysOrder != null) {
                        _this.vipInfo.totalMoney = data.sysOrder.zkTotal;
                        _this.vipInfo.totalTimes = data.sysOrder.times;
                        _this.vipInfo.payTime = data.sysOrder.payTime;
                        if (data.sysOrder.shopName) {
                            var shopNames = data.sysOrder.shopName.split(',');
                            _this.vipInfo.shopNames = shopNames;
                        }
                    }
                    _this.tags.tags = data.labels;
                });
            },
            radioChange() {
                console.log(this.projTab.projType);
            addLabelFn(key) {
                let _this = this;
                // 请求用户信息
                $.AjaxProxy({
                    p: {
                        vipId: _this.vipInfo.id,
                        label : key
                    }
                }).invoke(basePath + "/admin/label/add", function (loj) {
                    let label = loj.getResult().mapInfo.label;
                    _this.tags.tags.push(label);
                });
            },
            delLabelFn(id) {
                $.AjaxProxy({
                    p: {
                        id: id
                    }
                }).invoke(basePath + "/admin/label/del", function (loj) {
                });
            },
            searchVipInfo() {
                let _this = this;
                let inputVisible = _this.tags.inputVisible;
                console.log(inputVisible)
                if (!inputVisible) {
                    if (_this.searchValue) {
                        _this.vipInfoFn(_this.searchValue);
                    }
                }
            },
            radioChange() {},
            tabHandleClick() {
            },
            handleClose(tag) {
                this.tags.tags.splice(this.tags.tags.indexOf(tag), 1);
                this.delLabelFn(tag.id);
            },
            showInput() {
                this.tags.inputVisible = true;
@@ -688,7 +736,7 @@
            handleInputConfirm() {
                let inputValue = this.tags.inputValue;
                if (inputValue) {
                    this.tags.tags.push(inputValue);
                    this.addLabelFn(inputValue);
                }
                this.tags.inputVisible = false;
                this.tags.inputValue = '';
@@ -703,47 +751,7 @@
                console.log(`当前页: ${val}`);
            }
        }
    })
    $(function () {
        $("#key").keyup(
            function () {
                var $input = $("#key");
                if ($input.val().length > 1) {
                    $.AjaxProxy({
                        p: {
                            keyWord: $input.val(),
                        },
                        c: false,
                    })
                        .invoke(
                            basePath + "/admin/vipInfo/findUserByPhotoOrName",
                            function (loj) {
                                var html = "";
                                for (var i = 0; i < loj
                                    .getRowCount(); i++) {
                                    html += '<li onclick="selectList(\'' + loj.getString(i, 'phone') + '\')" >'
                                        + loj.getString(i, 'phone') + "-" + loj.getString(i, 'vipName')
                                        + "-" + loj.getString(i, 'vipNo')
                                        + '</li>';
                                }
                                $("#userList").html(html).show();
                            });
                } else {
                    $("#userList").hide();
                }
            });
        updateHistory();
        $("#userList").mouseleave(function () {
            $(this).hide();
        })
    })
    function selectList(phone) {
        $("#userList").hide();
        $("#key").val(phone);
        selectByKey();
    }
</script>
</body>
</html>