| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628 | <!DOCTYPE html><html class="remModel"><head>    <meta charset="UTF-8">    <meta http-equiv="Cache-Control" content="no-cache,no-store,no-siteapp,must-revalidate">    <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="expires" content="0">    <meta name="author" content="">    <meta name="description" content=""/>    <meta name="keywords" content="扫码支付,线上投币,运营数据,物联网"/>    <meta name="format-detection" content="telephone=no,email=no">    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">    <title>用户反馈</title>    <link rel="stylesheet" href="https://cdn.washpayer.com/components/lib/mui.min.css">    <link rel="stylesheet" href="../components/lib/weui.min.css">    <link rel="stylesheet" href="../components/custom/css/common.css">    <link rel="stylesheet" href="css/xyf.common.min.css">    <style>        .watermark {            font-size: 60px;            width: 60px;            height: 60px;            position: absolute;            left: 20%;            top: 0;        }        .checkbox-btn {            height: 80px !important;        }        .mui-checkbox-wear {            display: none;        }        .batch-model .fade-node {            display: none;        }        .batch-model .mui-checkbox-wear {            display: block;            width: 42px;            float: left;        }        .batch-model .text-part {            width: calc(100% - 42px);            float: right;            position: relative;        }    </style></head><body><div class="mui-input-group mui-reset">    <form class="mui-row" action="">        <div class="mui-col-xs-7 mui-col-sm-7">            <div class="mui-input-row mui-search">                <input type="search" class="mui-input-clear" id="searchKey" placeholder=" 用户昵称、反馈内容">            </div>        </div>        <div class="mui-col-xs-5 mui-col-sm-5 mui-text-right">            <div class="filter-btn"><span>筛选</span><i class="iconfont icon-triangle-up"></i></div>            <div class="in-row-btn" onclick="batchOper()">多选<i class="iconfont icon-triangle-up"></i></div>        </div>    </form></div><div class="filter-panel" style="display: none" id="options">    <div class="input-group-vertical mui-table-view clear-b-border">        <div class="or-border-fir mui-input-row input-clear or-order-status" id="feedbackType">            <label class="or-label-text">问题类型</label>            <span class="mui-icon mui-icon-arrowright"></span>            <span class="or-order-status-font selected-text">全部</span>        </div>        <div class="or-border-fir mui-input-row input-clear or-order-status" id="status">            <label class="or-label-text">处理状态</label>            <span class="mui-icon mui-icon-arrowright"></span>            <span class="or-order-status-font selected-text">全部</span>        </div>        <div class="or-border-fir mui-input-row input-clear or-order-status select-date" id="start-date">            <label class="or-label-text">开始日期</label>            <span class="mui-icon mui-icon-arrowright"></span>            <span class="or-order-status-font selected-text"></span>        </div>        <div class="mui-input-row input-clear or-order-status select-date" id="end-date">            <label class="or-label-text">结束日期</label>            <span class="mui-icon mui-icon-arrowright"></span>            <span class="or-order-status-font selected-text"></span>        </div>        <div class="mui-input-row filter-panel-btn flexbox">            <span class="cancel-btn flex">取消</span>            <span class="ok-btn flex">确定</span>        </div>    </div></div><!--下拉刷新容器--><div id="pullrefresh" class="mui-content mui-scroll-wrapper" style="margin-top: 45px;padding-top: 10px">    <div class="mui-scroll">        <!--数据列表-->        <ul class="group-wrap ">        </ul>    </div></div><div class="c-handle-panel mui-hidden">    <div class="handle-btn">        <div class="mui-checkbox ">            <input id="checkbox-all" class="checkbox-all" type="checkbox">            <label for="checkbox-all">全选</label>        </div>    </div>    <div class="handle-btn-list mui-text-right">        <button type="button" class="mui-btn mui-btn-outlined mui-btn-danger "                onclick="goBatch()">批量关闭        </button>    </div></div><script src="https://cdn.washpayer.com/components/lib/jquery.min.js"></script><script src="../components/lib/weui.min.js"></script><script src="https://cdn.washpayer.com/components/lib/mui.min.js"></script><script src="https://cdn.washpayer.com/components/lib/moment.min.js"></script><script src="/components/custom/js/common.js"></script><script src="js/xyf.login.js"></script><script src="js/xyf.common.js"></script><script>    $(function () {        //ios返回刷新        var isPageHide = false;        window.addEventListener('pageshow', function () {            if (isPageHide) {                window.location.reload();            }        });        window.addEventListener('pagehide', function () {            isPageHide = true;        });    });    //如果调到子页面,返回后还是保留查询条件    var orRecordBack = getQueryString('orRecord');    if (orRecordBack) {        history.replaceState(null, null, "user-feedback.html");    }    /**     * 向localStorage写入条件数据     */    var startDate;//开始日期    var endDate;//结束日期    var searchKey = null;// 定义为null,如果是undefined,ios8 微信ajax时会崩溃,但是有的接口有 undefined却不会崩溃。。。    var feedbackType = null;//问题类型    var status = '';//处理状态    var condition;    var pageType = 'userFeedback';    //获取条件缓存数据    if (orRecordBack) {        condition = localStorage.condition ? JSON.parse(localStorage.condition)[pageType] : null;    } else {        condition = null;    }    function setCondition() {        var data = {            startDate: startDate,//开始日期            endDate: endDate,//结束日期            searchKey: searchKey,            feedType: feedbackType,            status: status,        };        var conArr = localStorage.condition ? JSON.parse(localStorage.condition) : {};        conArr[pageType] = data;        localStorage.condition = JSON.stringify(conArr);    }    /**     * 计算日期范围     */    function computeDateRange(range) {        endDate = moment().format("YYYY-MM-DD");        if (range == "today") {            startDate = endDate;        } else if (range == "week") {            startDate = moment().add("day", -7).format("YYYY-MM-DD");        } else if (range == "month") {            startDate = moment().add("month", -1).format("YYYY-MM-DD");        } else if (range == "year") {            startDate = moment().add("year", -1).format("YYYY-MM-DD");        }        $('#start-date .selected-text').html(startDate);        $('#end-date .selected-text').html(endDate);        //写入数据        setCondition();    }    var typeList = [        {            label: '全部',            value: null        },        {            label: '故障',            value: 'fault'        },        {            label: '订单投诉(扫码)',            value: 'netpay'        },        {            label: '订单投诉(IC卡)',            value: 'ic'        },        {            label: '订单投诉(投币)',            value: 'putCoin'        },        {            label: '其他',            value: 'other'        },    ];    var types = {'putCoin': '订单投诉(投币)', 'ic': '订单投诉(IC卡)', 'netpay': '订单投诉(扫码)', 'fault': '故障', 'other': '其他'};    var statusList = [        {            label: '全部',            value: null        },        {            label: '待处理',            value: 0        },        {            label: '已处理',            value: 1        },        {            label: '驳回',            value: 2        }    ];    var statusMap = {0: '待处理', 1: '已处理', 2: '驳回'};    /*根据缓存渲染已有条件数据*/    if (condition) {        if (condition.startDate) {            startDate = condition.startDate;            endDate = condition.endDate;            $('#start-date .selected-text').html(condition.startDate);            $('#end-date .selected-text').html(condition.endDate);            if (condition.feedType) {                feedbackType = condition.feedType;                $("#feedbackType .selected-text").html(types[condition.feedType]);            }            if (condition.status != null) {                status = condition.status;                $("#status .selected-text").html(statusMap[condition.status]);            }        }        if (condition.searchKey != '') {            searchKey = condition.searchKey;            $("#searchKey").val(searchKey);        }    } else {        //设置默认选中为:待处理、日期为一年        status = 0;        $("#status .selected-text").html(statusMap[0]);        computeDateRange('year');//设置日期范围    }    mui.init({        pullRefresh: {            container: '#pullrefresh',            up: {                contentrefresh: '正在加载...',                contentnomore: '没有更多数据了...',                callback: pullupRefresh            }        }    });    //关键字搜索    document.onkeydown = function (ev) {        if (ev.keyCode == 13) {            ev.preventDefault();            search();        }    };    //刷新数据    function pullupRefresh() {        pageIndex++;        var url = "/dealer/userFeedbackRecords";        var data = {            searchKey: searchKey,            feedType: feedbackType,            status: status || '',            dateEnd: endDate,            dateStart: startDate,            pageIndex: pageIndex,            pageSize: pageSize,        };        setCondition();//设置条件到缓存        sendRequest(url, "GET", data, function (res) {            if (res.result == 1) {                if (pageIndex == 1) {                    total = res.payload.total;                    if (total == 0) {                        $('#pullrefresh').addClass('mui-hidden');                        $("body").append('<div class="nomore"></div>');                    } else {                        $('#pullrefresh').removeClass('mui-hidden');                        $('.nomore').remove();                    }                }                mui('#pullrefresh').pullRefresh().endPullupToRefresh((pageIndex * pageSize >= total));                var groupWrap = $('.group-wrap');                var length = res.para.items.length;                for (var i = 0; i < length; i++) {                    var obj = res.para.items[i];                    var ul = document.createElement('ul');                    ul.className = 'mui-table-view split interval ';                    var typeText = types[obj.feedType];                    var html = '<li class="mui-table-view-cell  or-jump-html" id="' + obj.id + '">' +                        '<div class="mui-checkbox-wear">' +                        '<div class="mui-checkbox">' +                        '      <input class="checkbox-btn" value="" type="checkbox"  id="input-' + obj.id + '">' +                        '</div>' +                        '</div>' +                        '<div class="text-part">' +                        '<p>用户昵称<span class="mui-pull-right font-b">' + obj.nickname + '</span></p>' +                        '<p>问题类型<span class="mui-pull-right font-b"><i class="iconfont c-red icon-' + obj.feedType + '"></i> ' + typeText + '</span></p>' +                        '<p>问题描述<span class="mui-pull-right font-b mui-col-xs-8 mui-col-sm-8 mui-text-right mui-ellipsis">' + obj.description + '</span></p>' +                        '<p>提交时间<span class="mui-pull-right font-b">' + obj.createTime + '</span></p>' +                        '<p class="mui-hidden">设备场地<span class="mui-pull-right font-b">' + obj.detailInfo.groupName + '</span></p>' +                        '<p class="mui-hidden">设备名称<span class="mui-pull-right font-b">' + obj.detailInfo.devTypeName + "-" + obj.detailInfo.groupNumber + " (" + obj.detailInfo.logicalCode + ')</span></p>' +                        '</div>' +                        '</li>';                    ul.innerHTML = html;                    var tp = $(ul).find('.text-part')                    //待处理                    if (obj.status == 0) {                        tp.append("<i class='watermark iconfont c-blue icon-pending'></i>");                    } else if (obj.status == 1) {                        tp.append("<i class='watermark iconfont c-success icon-handled'></i>");                        $(ul).addClass("fade-node");                    } else if (obj.status == 2) {                        tp.append("<i class='watermark iconfont c-orange icon-reject'></i>");                        $(ul).addClass("fade-node");                    }                    groupWrap.append(ul);                }            } else {                mui.toast(res.description);            }        });    }    /*当前时间*/    var curDate = new Date();    /*对比时间*/    var compareTime = function (smaller, larger) {        var genDate = function (value) {            var type = typeof value;            var date = null;            if (type == 'string' || type == 'number') {                date = new Date(value);            } else if (type == 'object') {                date = value;            }            return date;        };        return genDate(smaller).getTime() <= genDate(larger).getTime();    };    /**     * 选择日期弹窗函数     * @param options     */    var showDatePicker = function (options) {        var defaultDate = options.default ? new Date(options.default) : curDate;        options = $.extend({            start: moment().add(-1, "year").toDate(),            end: moment().add(1, "second").toDate(),//注意!!可能是多次打开后渲染延迟,必须把end往后推至少一秒,才能渲染出当天为结束日期,否则无法选择今天            defaultValue: [defaultDate.getFullYear(), defaultDate.getMonth() + 1, defaultDate.getDate()]        }, options);        if (!options.id) {            return;        }        weui.datePicker({            start: options.start,            end: options.end,            defaultValue: options.defaultValue,            onChange: function (result) {                options.onChange && options.onChange(result);            },            onConfirm: function (result) {                options.onConfirm && options.onConfirm(result);            },            id: options.id        });    };    //开始、结束时间选择器    $('.select-date').click(function (e) {        var $ele = $(e.currentTarget);        var $eleId = $ele.attr('id');        showDatePicker({            id: $eleId,            default: $eleId == 'start-date' ? startDate : endDate,//默认选择的时间            onChange: function (data) {            },            onConfirm: function (data) {                var year = data[0];                var month = data[1];                var date = data[2];                var flag = true;                var dateStr = year + '-' + (month > 9 ? month : '0' + month) + '-' + (date > 9 ? date : '0' + date);                //校验输入合法性                if ($eleId == 'start-date') {                    if (endDate && !compareTime(dateStr, endDate)) {                        /* dialog('温馨提示','开始日期不能大于结束日期','确定');*/                        flag = false;                    }                    startDate = dateStr;                } else {                    if (startDate && !compareTime(startDate, dateStr)) {                        /* dialog('温馨提示','开始日期不能大于结束日期','确定');*/                        flag = false;                    }                    endDate = dateStr;                }                //修改页面                $ele.find('.selected-text').html(dateStr);                //写入数据                if (flag) {                    setCondition();                }            }        });    });    //通用选择器    var showTypePicker = function (list, options) {        weui.picker(list, {            className: options.className,            defaultValue: [options.default],            onChange: function (result) {                options.onChange && options.onChange(result);            },            onConfirm: function (result) {                options.onConfirm && options.onConfirm(result);            },            id: options.id        })    };    FilterComponent({        ok: function () {            /*合法性验证*/            //日期校验            if (true) {                if (!startDate) {                    mui.alert('请选择开始日期', '温馨提示', '确定');                }                if (!endDate) {                    mui.alert('请选择结束日期', '温馨提示', '确定');                }                if (!compareTime(startDate, endDate)) {                    mui.alert('开始日期不能大于结束日期', '温馨提示', '确定');                    return false;                }            }            pageIndex = 0;            search();        }    });    /**     * 查询的基本条件     */    var pageIndex = 0;    var pageSize = 10;    var total = 0;// 记录一次数据总数,用来做刷新判断    function search() {        pageIndex = 0;        $('.group-wrap').html("");        mui('#pullrefresh').pullRefresh().refresh(true);//重置上拉加载        searchKey = $("#searchKey").val();        //写入数据        pullupRefresh();    }    //问题类型    $("#feedbackType").click(function (e) {        var $ele = $(e.currentTarget);        showTypePicker(typeList, {            id: $ele.attr('id'),            default: feedbackType || typeList[0].value,            onChange: function (data) {            },            onConfirm: function (data) {                $ele.find(".selected-text").html(data[0].label);                feedbackType = data[0].value;                //写入数据                setCondition();            }        });    });    //处理状态,待处理0,成功1,不处理2    $("#status").click(function (e) {        var $ele = $(e.currentTarget);        showTypePicker(statusList, {            id: $ele.attr('id'),            default: status,//如果没有 null则表示全部            onConfirm: function (data) {                $ele.find(".selected-text").html(data[0].label);                status = data[0].value;                //写入数据                setCondition();            }        });    });    //查看反馈详情跳转    $('body').on('tap', '.or-jump-html', function (evt) {        if ($("body").hasClass("batch-model")) {            return        }        history.replaceState(null, null, "user-feedback.html?orRecord=true&t=" + new Date().getTime());        var url = '/dealer/index.html#/feedback/detail?id=' + $(this).attr('id');        goPage(url);    });    //初始化刷新一次数据    if (mui.os.plus) {        mui.plusReady(function () {            setTimeout(function () {                mui('#pullrefresh').pullRefresh().pullupLoading();            }, 1000);        });    } else {        mui.ready(function () {            mui('#pullrefresh').pullRefresh().pullupLoading();        });    }    //全选    $("#checkbox-all").on("change", function () {        if ($(this).is(":checked")) {            $(".checkbox-btn").prop("checked", true);        } else {            $(".checkbox-btn").prop("checked", false);        }    });    //激活批量操作    function batchOper() {        if ($("body").hasClass("batch-model")) {            $(".in-row-btn").removeClass('active');            $("body").removeClass("batch-model");            $(".c-handle-panel").addClass('mui-hidden')        } else {            $(".in-row-btn").addClass('active');            $("body").addClass("batch-model");            $(".c-handle-panel").removeClass('mui-hidden')        }    }    function getSelectIdInfo() {        var ids = []        $(".or-jump-html").each(function () {            var checked = $(this).find("input").is(":checked");            if (checked) {                var fade = $(this).closest("ul").hasClass('fade-node')                var id = $(this).closest(".or-jump-html").attr('id')                if (!fade) {                    ids.push(id)                }            }        });        return ids    }    function goBatch() {        var ids = getSelectIdInfo()        if (ids.length == 0) {            mui.toast('请选择数据');            return        }        var url = 'user-feedback-multiple.html?ids=' + JSON.stringify(ids)        goPage(url);    }</script></body></html>
 |