輸入框搜索功能的實(shí)現(xiàn)

先寫輸入框:

<label class="col-md-1 control-label" for="txtRDKeyWord">關(guān)鍵字</label>
    <div class="col-md-9">
        <input type="text" id="txtRDKeyWord" class="form-control" autocomplete="off" placeholder="請(qǐng)輸入病歷號(hào)/門診號(hào)關(guān)鍵字"/>
    </div>
    <div class="col-sm-2">
        <button id="btnRDSearch" class="btn btn-block btn-pink">搜索</button>
    </div>

按鈕觸發(fā)事件及function方法(window.open為打開新的頁面具體頁面后續(xù)):

$("#btnRDSearch").click(reserveDetail.loadReserve);

//搜索關(guān)鍵字
reserveDetail.loadReserve = function(){
    var sUrl = "reserveAction_loadReserve";
    var objParams = { "hasLoading": false, "cvoParameter.keyWord": $("#txtRDKeyWord").val()};
        commonJs.openAjax(sUrl, objParams,function(data){
            if (!data.success) {
                commonJs.openDialog("error", data.message);
            } else {
                var lstResult = data.lstResult;
                if (typeof(lstResult) =="undefined") {
                    commonJs.openDialog("error", "無查詢結(jié)果請(qǐng)重新輸入!");
                } else {
                    if (lstResult.length == 1) {
                        var sId = lstResult[0].id;
                        var sMrn = lstResult[0].medicalRecordNumber;
                        var sCn = lstResult[0].clinicNumber;
                        var sOrderId = lstResult[0].orderId;
                        var sTargetId = lstResult[0].targetId;
                        window.open(BASE_PATH + "/spv2/nurse/reserve/reserve_detail.jsp?id="+sId+"&mrn="+sMrn+"&cn="+sCn+"&oid="+sOrderId+"&tid="+sTargetId);
                    } else if (lstResult.length > 1){
                        commonJs.openDialog("warning","查詢數(shù)據(jù)條數(shù)為"+lstResult.length+",請(qǐng)重新輸入蛔糯!");
                        return;
                    }
                }
            }
        });
}

在commonJs中已經(jīng)封裝好openAjax拯腮、openDialog方法了:

//打開ajax請(qǐng)求(請(qǐng)求地址, 參數(shù), 成功后回調(diào)的函數(shù), 失敗后回調(diào)的函數(shù))
commonJs.openAjax = function(sUrl, vParams, funSuccess, funError) {
    if (sUrl == null || sUrl == '') return false;
    // 默認(rèn)顯示加載層,如果不需要蚁飒,請(qǐng)?jiān)O(shè)置vParams.hasLoading為false
    var hasLoading = true;
    if (vParams != null && vParams.hasLoading == false) { hasLoading = false; }
    if (hasLoading) { commonJs.openLoadDialog(); }
    $.ajax({
        url:        sUrl,
        data:       vParams,
        type:       'POST',
        dataType:   'json',// xml,html,script,json,jsonp
        timeout:    30 * 60 * 1000,
        success:    function(data) {
            if (hasLoading) { commonJs.closeLoadDialog(); }
            if (data != null && data.code == "login"){
                commonJs.openDialog("error", data.message, function(){
                    location.href = BASE_PATH + "/spv2/login.jsp?returnUrl=" + commonJs.enReturnUrl();
                });
            }else{
                funSuccess(data);
            }
        },
        error:      funError
    });
};

// 打開頁面對(duì)話框
commonJs.openPageDialog = function(par) {
    if (par != null && par.closable == null) { par.closable = false; }
    if (par != null && par.lg != null && par.lg == true) {
        par.lg = BootstrapDialog.SIZE_WIDE;
    } else {
        par.lg = BootstrapDialog.SIZE_NORMAL;
    }
    var dialog = new BootstrapDialog({
        id:     par.id,// 窗口id
        title:  par.title,// 標(biāo)題
        size:   par.lg,// 是否大窗口
        closable: par.closable,// 是否可關(guān)閉(默認(rèn)為不關(guān)閉)
        closeByKeyboard: par.closable,// 是否可用Esc關(guān)閉窗口(與closable一致)
        message: function(dialog) {
            var $message = $('<div><i class="fa fa-spinner fa-spin loading" style="font-size:24px;"></i><span style="font-size:16px;">?加載中动壤,請(qǐng)稍候...</span></div>');
            setTimeout(function() {
                if (par.url == null || par.url == '') return;
                if (par.url.indexOf('?') > -1) {
                    // par.url += '&ran=' + Math.random();
                } else {
                    // par.url += '?ran=' + Math.random();
                }
                $message.load(par.url, par.data, function() { });
            }, 500);
            return $message;
        },
        buttons: par.buttons
    }).open();
    return dialog;
}

編寫action方法:

    IReserve funReserve = FunFactory.getReserve();
    /**
     * 加載預(yù)約就診客戶
     * @return
     */
    @IAccess(competenceNumber = { GlobalCache.UserRole.SPD }, returnFormat = GlobalCache.JSON)
    public void loadReserve() {
        MessageVo mvoResult = new MessageVo();
        CommonVo cvoParams = getCvoParameter();
        if ("".equals(cvoParams.getKeyWord()) || cvoParams.getKeyWord() == null) {
            mvoResult.setSuccess(false);
            mvoResult.setMessage("輸入關(guān)鍵字不能為空!");
        } else {
            mvoResult = funReserve.pageListReserve(cvoParams);
        }
        this.outJson(mvoResult);
    }

commonVo為公共值對(duì)象,MessageVo 為返回值對(duì)象淮逻,立面包含你所要傳輸?shù)闹祵?duì)象狼电。
funReserve 為FunFactory的獲取對(duì)象。
pageListReserve方法為:

/**
     * 獲取預(yù)約確認(rèn)列表
     */
    public MessageVo pageListReserve(CommonVo cvoParams) {
        String sSql = "";
        cvoParams.setIsPay("1");// 已付款
        sSql += CommonBean.getRangeCondition(cvoParams.getRange(), "reserve_date", "4");
        if (!"".equals(cvoParams.getKeyWord()) && cvoParams.getKeyWord() != null) {
            sSql += " and (CLINIC_NUMBER LIKE '%" + cvoParams.getKeyWord() + "%' OR MEDICAL_RECORD_NUMBER LIKE '%" + cvoParams.getKeyWord() + "%' OR TARGET_NAME LIKE '%" + cvoParams.getKeyWord()
                    + "%')";
            sSql += " and (DOCTOR_ID = '" + cvoParams.getDoctorId() + "' OR DOCTOR_ID IS NULL)";
        }
        cvoParams.setSql(sSql);
        cvoParams.setOrderBy("order by DOCTOR_ID,RESERVE_DATE,QUEUE_ID");
        return tdoReserveOrder.getList(cvoParams);
    }

封裝好的dao包(盡量不要修改這文件):

@Repository("VReserveOrderViewDao")
public class VReserveOrderViewDao extends DaoSupport implements IViewDao {
    private static String TABLE_NAME = "VReserveOrder";

    public MessageVo getList(CommonVo cvoSelect) {
        String sHql = "from " + TABLE_NAME + " where 1=1 ";// 查詢語句
        String sCount = "select count(*) from " + TABLE_NAME + " where 1=1 ";// 分頁語句
        MessageVo mvoResult = new MessageVo();
        try {
            Object[] objParameter = null;
            ArrayList<Object[]> arrParameter = new ArrayList<Object[]>();
            // 設(shè)置搜索條件
            objParameter = new Object[] { " and id = ? ", cvoSelect.getId() };
            arrParameter.add(objParameter);// 編號(hào)
            objParameter = new Object[] { " and order_number like ? ", "%" + cvoSelect.getOrderNumber() + "%" };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and medical_record_number like ? ", "%" + cvoSelect.getMedicalRecordNumber() + "%" };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and target_id = ? ", cvoSelect.getTargetId() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and customer_id = ? ", cvoSelect.getCustomerId() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and target_name like ? ", "%" + cvoSelect.getTargetName() + "%" };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and room_id = ? ", cvoSelect.getRoomId() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and room_name like ? ", "%" + cvoSelect.getRoomName() + "%" };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and doctor_name like ? ", "%" + cvoSelect.getDoctorName() + "%" };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and reserve_type = ? ", cvoSelect.getReserveType() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and order_status = ? ", cvoSelect.getOrderStatus() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and evaluate_status = ? ", cvoSelect.getEvaluateStatus() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and is_pay = ? ", cvoSelect.getIsPay() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and reserve_mode = ? ", cvoSelect.getReserveMode() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and create_time >= ? ", cvoSelect.getBeginTime() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and create_time <= ? ", cvoSelect.getEndTime() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and sp_id = ? ", cvoSelect.getSpId() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and service_mode = ? ", cvoSelect.getServiceMode() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and is_book_time = ? ", cvoSelect.getIsBookTime() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and is_deduct = ? ", cvoSelect.getIsDeduct() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and clinic_type = ? ", cvoSelect.getClinicType() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and create_name like ? ", "%" + cvoSelect.getCreateName() + "%" };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and is_delete = ? ", cvoSelect.getIsDelete() };
            arrParameter.add(objParameter);// 是否已刪除

            // 將參數(shù)傳入到分頁Bean中
            String[] sHqlArr = { sHql, sCount, cvoSelect.getSql(), cvoSelect.getOrderBy() };
            int[] iInfoArr = { cvoSelect.getPageNum(), cvoSelect.getLimitNum(), cvoSelect.getForUpdateWait() };
            SpringPageBean spbQuery = new SpringPageBean(sHqlArr, iInfoArr, arrParameter, getCustomSession());;
            List<?> lstResult = (List<?>) getHibernateTemplate().execute(spbQuery);
            mvoResult.setSuccess(true);
            mvoResult.setLstResult(lstResult);
            mvoResult.setTotalPage(spbQuery.getTotalPage());
            mvoResult.setTotalSize(spbQuery.getTotalNum());
        } catch (Exception e) {
            e.printStackTrace();
        }
        // 返回搜索結(jié)果
        return mvoResult;
    }

    public CommonVo getOne(CommonVo cvoSelect) {
        String sHql = "from " + TABLE_NAME + " where 1=1 ";// 查詢語句
        CommonVo cvoResult = null;
        try {
            Object[] objParameter = null;
            ArrayList<Object[]> arrParameter = new ArrayList<Object[]>();
            // 設(shè)置排序和是否刪除的默認(rèn)值
            if (cvoSelect.getOrderBy() == null || "".equals(cvoSelect.getOrderBy())) {
                cvoSelect.setOrderBy(" order by id desc");
            }
            // 設(shè)置搜索條件
            objParameter = new Object[] { " and id = ? ", cvoSelect.getId() };
            arrParameter.add(objParameter);// 編號(hào)
            objParameter = new Object[] { " and order_number = ? ", cvoSelect.getOrderNumber() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and medical_record_number = ? ", cvoSelect.getMedicalRecordNumber() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and target_id = ? ", cvoSelect.getTargetId() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and room_id = ? ", cvoSelect.getRoomId() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and sp_id = ? ", cvoSelect.getSpId() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and doctor_id = ? ", cvoSelect.getDoctorId() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and doctor_name like ? ", "%" + cvoSelect.getDoctorName() + "%" };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and reserve_type = ? ", cvoSelect.getReserveType() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and order_status = ? ", cvoSelect.getOrderStatus() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and customer_id = ? ", cvoSelect.getCustomerId() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and service_mode = ? ", cvoSelect.getServiceMode() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and clinic_type = ? ", cvoSelect.getClinicType() };
            arrParameter.add(objParameter);//
            objParameter = new Object[] { " and is_delete = ? ", cvoSelect.getIsDelete() };
            arrParameter.add(objParameter);// 是否已刪除
            // 將參數(shù)傳入到分頁Bean中
            String[] sHqlArr = { sHql, null, cvoSelect.getSql(), cvoSelect.getOrderBy() };
            int[] iInfoArr = { 1, 1 };
            SpringPageBean spbQuery = new SpringPageBean(sHqlArr, iInfoArr, arrParameter, getCustomSession());;
            // 搜索數(shù)據(jù)
            List<?> lstResult = (List<?>) getHibernateTemplate().execute(spbQuery);
            if (lstResult != null && lstResult.size() > 0) {
                cvoResult = (CommonVo) lstResult.get(0);
                getHibernateTemplate().evict(cvoResult);// 分離對(duì)象
                lstResult.clear();
            }
            // 清空參數(shù)
            lstResult = null;
            arrParameter.clear();
            arrParameter = null;
            objParameter = null;
        } catch (Exception e) {
            e.printStackTrace();
        }
        // 返回搜索結(jié)果
        return cvoResult;
    }

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末弦蹂,一起剝皮案震驚了整個(gè)濱河市肩碟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凸椿,老刑警劉巖削祈,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異脑漫,居然都是意外死亡髓抑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門优幸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吨拍,“玉大人,你說我怎么就攤上這事网杆「危” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵碳却,是天一觀的道長(zhǎng)队秩。 經(jīng)常有香客問我,道長(zhǎng)昼浦,這世上最難降的妖魔是什么馍资? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮关噪,結(jié)果婚禮上鸟蟹,老公的妹妹穿的比我還像新娘。我一直安慰自己使兔,他們只是感情好建钥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著火诸,像睡著了一般锦针。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天奈搜,我揣著相機(jī)與錄音悉盆,去河邊找鬼。 笑死馋吗,一個(gè)胖子當(dāng)著我的面吹牛焕盟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宏粤,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼脚翘,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了绍哎?” 一聲冷哼從身側(cè)響起来农,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎崇堰,沒想到半個(gè)月后沃于,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡海诲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年繁莹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片特幔。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咨演,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚯斯,到底是詐尸還是另有隱情薄风,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布溉跃,位于F島的核電站村刨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏撰茎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一打洼、第九天 我趴在偏房一處隱蔽的房頂上張望龄糊。 院中可真熱鬧,春花似錦募疮、人聲如沸炫惩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽他嚷。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間筋蓖,已是汗流浹背卸耘。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粘咖,地道東北人蚣抗。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像瓮下,于是被迫代替她去往敵國和親翰铡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容