<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
    <th:block th:include="include :: header('新增兑换券')" />
    <th:block th:include="include :: select2-css" />
    <link rel="stylesheet" href="">
    <style>
        .layui-form {
            padding: 20px;
        }
        .main_title, .main_type, .money, .scope_application,.phoneNumber,.playMethod {
            margin-bottom: 20px;
        }

        .phoneNumber,#test1,.playMethod {
            display: none;
        }

        #test1 {
            display: none;
        }
        .labelName {
            display: inline-block;
            width: 100px;
            text-align: right;
        }
        input {
            border: 1px solid #ddd;
            border-radius: 4px;
            background: transparent;
            outline: none;
            padding-left: 5px;
            height: 30px;
        }
        .main_title input {
            width: 200px;
        }
        .prompt {
            margin-left: 100px !important;
        }

        .main_type input,.playMethod input {
            margin-top: -2px;
            margin-right: 5px;
        }
        .main_type span, .playMethod span {
            margin-right: 12px;
            line-height: 28px;
        }
        .layui-form .money input {
            width: 60px;
        }
        .changeData .dataOne {
            margin-bottom: 20px;
        }
        .changeData .dataOne p {
            margin: 12px 0 0 20px;
            color: #ccc;
        }
        .changeData .dataOne input {
            width: 60px;
        }
        .main_bottom .describe, .main_bottom .sendTime {
            margin-bottom: 20px;
        }
        .describe,.main_type {
            display: flex;
        }
        .describe textarea,.phoneNumber textarea {
            width: 400px;
        }
        .sendTime {
            display: flex;
        }
        .sendTime input {
            margin-top: -6px;
            margin-right: 5px;
        }
        .bottom_btn {
            width: 25%;
            text-align: center;
        }
        select {
            border: 1px solid #ddd;
            border-radius: 4px;
            background: transparent;
            outline: none;
            height: 30px;
            width: 200px;
        }
        #test1 {
            display: none;
        }
        .required {
            font-style: normal;
            color: red;
        }
        #iptModal {
            display: none;
        }
        #valOver, #valMinus {
            margin: 0 12px;
        }
        #showNum {
            display: none;
        }
        .search_ipt {
            width: 200px !important;
            display: inline-block;
        }
        .scope_application {
            display: flex;
        }
        .scope_application .input-group-btn {
            top: 33px;
        }
    </style>
</head>
<body>
<form id="form-user-add"  class="layui-form">
    <div class="main_title">
        <span class="labelName"><i class="required">*</i>名称：</span><input type="text" id="title" name="keyword" placeholder="券名称" />
    </div>
    <div class="scope_application" id="scope_application">
        <span class="labelName">适用范围：</span>
        <!-- <div class="search_ipt" style="position: relative;display: inline;">
            <input type="text" id="searchIpt" autocomplete="off" class="layui-input" placeholder="全部">
            <ul id="dataList" style="position: absolute;"></ul>
        </div> -->
        <div class="input-group search_ipt" style="margin-right: 12px;">
            <input id="searchIpt" data-id="" type="text" class="form-control" placeholder="全部">
            <div class="input-group-btn">
                <ul class="dropdown-menu dropdown-menu-right" role="menu">
                </ul>
            </div>
        </div>
        <select name="bindType" id="selectTwo" style="margin-right: 12px;">
            <option value="">所有</option>
        </select>
        <select name="bindType" id="selectThree">
            <option value="">所有</option>
        </select>
        <!-- <span style="margin-left: 12px;color: #ccc;" id="showNum">
            演出库存：<span id="totalGeneral"></span>
            兑换库存：<span id="totalExchange"></span>
        </span> -->
    </div>
    <div class="changeData">
        <div id="modalOne">
            <div class="dataOne">
                <span class="labelName"><i class="required">*</i>数量：</span>
                <input type="text" id="num" required />
                张
            </div>
            <div class="dataOne">
                <span class="labelName"><i class="required">*</i>有效期：</span>
                <input type="text" id="ticketTime" required />
                天
                <p class="prompt">*可兑换的时间</p>
            </div>
        </div>
    </div>
    <div class="main_bottom">
        <div class="describe">
                <span class="labelName">
                    <i class="required">*</i>描述说明：
                </span>
            <textarea id="describeTxt" class="form-control" rows="4"></textarea>
        </div>
        <div class="bottom_btn">
            <!-- <button type="button" class="layui-btn btn btn-primary" lay-filter="formDemo" onclick="create()">创建代金券</button> -->
            <button type="button" class="btn btn-primary" onclick="create()">创建兑换券</button>
        </div>
    </div>
</form>
<th:block th:include="include :: footer" />
<th:block th:include="include :: select2-js" />
<th:block th:include="include :: bootstrap-suggest-js"/>
</body>
<script th:inline="javascript">
    var phpMallUrl = [[${phpMallUrl}]];
    var roadShowId = '[[${roadShowId}]]'.replaceAll("\"", "");
    let prefix = ctx;
    let searchVal = ''; // 输入框内数据
    let searchData = []; // 搜索总数据
    let showId = ''; // 选中演出id
    let selectTwoId = ''; // 选中演出下级的ID
    let selectTwoName = ''; // 选中演出下级的名称
    let selectThreeId = ''; // 选中演出三级的ID
    let selectThreeName = ''; // 选中演出三级的名称
    $("#searchIpt").bsSuggest('init', {
        idField: 'performancesId',                 // data.value 的第几个数据，作为input输入框的内容
        keyField: 'title',                // data.value 的第几个数据，作为input输入框的内容
        allowNoKeyword: false, //是否允许无关键字时请求数据
        showBtn: false,
        multiWord: true, //以分隔符号分割的多关键字支持
        hideOnSelect: true,
        getDataMethod: "url", //获取数据的方式，总是从 URL 获取
        effectiveFields: ['title'],
        url: ctx+'kylin/base/performance/status?status=(3,6,8,9)&title=',
        /*如果从 url 获取数据，并且需要跨域，则该参数必须设置*/
        processData: function (json) { // url 获取数据时，对数据的处理，作为 getData 的回调函数
            let data = {
                value: []
            };
            searchData = [...json.value];
            let obj = {};
            searchData.reduce((cur,next) => {
                if (!obj[next.performancesId]) {
                    obj[next.performancesId] = true
                    data.value.push(next)
                }
            },[]) //设置cur默认类型为数组，并且初始值为空的数组
            return data
            
        }
    }).on('onDataRequestSuccess', function (e, result) {
    }).on('onSetSelectValue', function (e, selectedData,selectedRawData ) { // 当前行的所有值都能拿到
        selectOne(selectedData.id, selectedData.key)
    }).on('onUnsetSelectValue', function (e) {
    });;
    function selectOne(id,name) {
        searchData.some(item => {
            if (item[name] == id) {
                return $("#searchIpt").val(item.title);
            }
        })
        showId = id;
        let str = `<option value="" label="">所有</option>`;
        let obj = {};
        let filterData = [];
        searchData.forEach(item=>{
            if (item.performancesId == id) {
                filterData.push(item)
            }
        })
        filterData.reduce((cur, next) => {
            if (!obj[next.timeId]) {
                obj[next.timeId] = true
                str+= `<option value='${next.timeId}' label='${next.timeTitle}'>${next.timeTitle}</option>`
            }
        }, [])
        selectTwoId = ''; // 选中演出下级的ID
        selectThreeId = ''; // 选中演出三级的ID
        $('#selectTwo').empty().append(str);
        $('#selectThree').empty().append('<option value="" label="">所有</option>');
    };
    
    $('#selectTwo').change(function(e){
        selectTwoId = $(this).val();
        selectTwoName = $('#selectTwo').find('option:selected').attr('label');
        let str = `<option value="" label="" >所有</option>`;
        searchData.forEach(item=>{
            if (item.timeId == selectTwoId) {
                str+= `<option value='${item.ticketId}' label='${item.ticketTitle}'>${item.ticketTitle}</option>`
            }
        })
        selectThreeId = ''; // 选中演出三级的ID
        $('#selectThree').empty().append(str);
    });
    $('#selectThree').change(function(e){
        selectThreeId = $(this).val();
        selectThreeName = $('#selectThree').find('option:selected').attr('label');
    });
    function create() {
        if (!$('#title').val() || !$('#num').val() || !$('#ticketTime').val() || !$('#describeTxt').val()) {
            return layer.msg('请将必填项输入完整～！');
        }
        if ($("#describeTxt").val().match(/^\s+$/)) {
            return layer.msg('描述说明不可全为空格！');
        }
        let useScope = 100;
        let busiName = $("#searchIpt").val();
        let busiId = '';
        if (!$('#searchIpt').val()) {
            showId = '';
        }
        if (showId) {
            useScope = 90;
            busiId = showId;
        }
        if (selectTwoId) {
            useScope = 91;
            busiId = selectTwoId;
            // busiName = selectTwoName;
        }
        if (selectThreeId) {
            useScope = 92;
            busiId = selectThreeId;
            // busiName = selectThreeName;
        }
        let data = {
            "couType": 3, // 券类型
            "bindType": 0, // 输入兑换
            "busiType": 1,
            "couponRuleList": [ // 适用范围[100-全场｜90-演出｜91-场次｜92-票｜80-商品｜81-款式]
                {
                "useScope": useScope,
                "busiName": busiName || '全部演出',
                "busiId": busiId
                }
            ],
            "eventAmt": Number($('#num').val()), // 数量
            "label": "标注", // 不需管
            "notice": $('#describeTxt').val(),
            "title": $('#title').val(),
            "eventAt": $.common.dateFormat(new Date(), 'yyyy-MM-dd HH:mm:ss'),
            "validity": Number($('#ticketTime').val()),
            "redeemValidity": Number($('#ticketTime').val()) // 兑换有效期
        }
        promiseMethods('/candy/coupon/mgt/add','post',JSON.stringify(data),'application/json').then(res=>{
            layer.msg('' + res);
            if (res.code != undefined && res.code != web_status.SUCCESS) {
                $.modal.alertWarning(res.msg);
                return [];
            } else if (res.code == web_status.SUCCESS) {
                $.operate.successTabCallback(res);
                closeItem();
            }
        })
    }
    function promiseMethods(url,type,data,contentType) {
        return new Promise((resolve,reject)=>{
            $.ajax({
                url,
                type,
                data,
                contentType,
                success:function(res) {
                    resolve(res)
                }
            })
        })
    }
</script>
</html>
