| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322 | 'use strict';/** * * * @author Mai * @date 2018/8/21 * @version */// 向后端请求中间计量号function getNewCode() {    postData('/tender/'+ tenderId +'/change/newCode', { type: rulesType }, function (code) {        if (code !== '') {            $('#bj-code').val(code);        }    });}class codeRuleSet {    constructor (obj) {        this.body = obj;        // 切换规则组件类型        $('.rule-change', obj).change(function () {            const codeType = this.selectedIndex-1;            if (codeType === ruleConst.ruleType.addNo) {                $('#format', obj).show();                $('#text', obj).show();                $('#text>label', obj).text('起始编号');                $('#text>input', obj).val('001');                const s = '0000000000' + 1;                $('#text>input', obj).val(s.substr(s.length - $('#format>input', obj).val()));            } else if (codeType === ruleConst.ruleType.text) {                $('#format', obj).hide();                $('#text', obj).show();                $('#text>label', obj).text('文本');                $('#text>input', obj).val('').attr('placeholder', '请在这里输入需要的文本');            } else {                $('#format', obj).hide();                $('#text', obj).hide();            }        });        // 修改编号位数        $('#format>input', obj).change(function () {            const s = '0000000000' + parseInt($('#text>input', obj).val());            $('#text>input', obj).val(s.substr(s.length - $(this).val()));        });        // 修改连接符        $('.connector-change', obj).change(function () {            const connectorType = this.options[this.selectedIndex].text;            const rules = $('span>span', obj), ruleText = [];            for (const r of rules) {                ruleText.push($.trim(r.innerText));            }            if (connectorType === '无') {                $('#preview', obj).text(ruleText.join(''));            } else {                $('#preview', obj).text(ruleText.join(connectorType));            }            connectorRule = this.options[this.selectedIndex].value;        });        // 新增规则组件        $('#addRule', obj).click(function () {            const codeType = $('select', obj)[1].selectedIndex-1;            const rule = {rule_type: codeType}, html = [];            let preview;            switch (codeType) {                case ruleConst.ruleType.dealCode: {                    if (dealCode === '') {                        toastr.error('当前标段合同编号为空,请选择其他组件。');                        return false;                    }                    preview = dealCode;                    break;                }                case ruleConst.ruleType.tenderName: {                    preview = tenderName;                    break;                }                case ruleConst.ruleType.text: {                    rule.text = $('#text>input', obj).val();                    if (rule.text === '') {                        toastr.error('文本内容不允许为空。');                        return false;                    }                    preview = rule.text;                    break;                }                case ruleConst.ruleType.inDate: {                    preview = moment().format('YYYY');                    break;                }                case ruleConst.ruleType.addNo: {                    rule.format = parseInt($('#format>input', obj).val());                    rule.start = parseInt($('#text>input', obj).val());                    if ($('#text>input', obj).val().length !== rule.format) {                        toastr.error('起始编号位数和自动编号位数不一致。');                        return false;                    }                    const s = '0000000000';                    preview = s.substr(s.length - rule.format);                    break;                }                default: {                    toastr.error('请选择组件再添加');                    return false;                }            }            // 更新规则            codeRule.push(rule);            // 更新规则显示            html.push('<span class="badge badge-light" title="' + ruleConst.ruleString[codeType] + '" rule="' + JSON.stringify(rule) + '">');            html.push('<span>' + preview + '</span>');            html.push('<a href="javascript: void(0);" class="text-danger" title="移除"><i class="fa fa-remove"></i></a>');            html.push('</span>');            const part = $('#ruleParts', obj).append(html.join(''));            // 更新规则预览            const connectorType = connectorRule !== '' && parseInt(connectorRule) !== ruleConst.connectorType.nothing ? ruleConst.connectorString[connectorRule] : '';            const previewtext = $.trim($('#preview', obj).text()) === '' ? preview : $.trim($('#preview', obj).text()) + connectorType + preview;            $('#preview', obj).text(previewtext);        });        // 删除规则组件        $($('#ruleParts', obj)).on('click', 'a', function () {            const index = $('a', obj).index(this);            codeRule.splice(index-1, 1);            $(this).parent().remove();            const rules = $('span>span', obj), ruleText = [];            for (const r of rules) {                ruleText.push($.trim(r.innerText));            }            const connectorType = connectorRule !== '' && parseInt(connectorRule) !== ruleConst.connectorType.nothing ? ruleConst.connectorString[connectorRule] : '';            $('#preview', obj).text(ruleText.join(connectorType));        });    }}$(document).ready(() => {    // 首次进入设置    let showNoNeed = false;    if (cRuleFirst) {        codeRule = [];        showNoNeed = true;        $('#setting').modal('show');    }    // else if ($('#changeList').children.length === 0) {    //     $('#add-bj').modal('show');    // }    // 设置    const ruleSet = new codeRuleSet($('div.modal-body', '#setting'));    $('#setRule', '#setting').bind('click', function () {        const data = {            rule: ruleType,            type: rulesType,            connector: connectorRule,            data: JSON.stringify(codeRule),        };        if (codeRule.length !== 0) {            $('#autoCodeShow').show();        }        postData('/tender/rule', data, function () {            if (cRuleFirst && showNoNeed) {                $('#changeFirst').click();                $('.ml-auto a[href="#add-bj"]').click();                // $('#add-bj-modal').modal('show');            } else {                $('#setting').modal('hide');            }        });    })    $('.ml-auto').on('click', 'a', function () {        const content = $(this).attr('href');        if (content === '#add-bj') {            $('#add-bj-modal').modal('show')                getNewCode();                if ($('#changeList').children.length === 0) {                    $('#addCancel').hide();                } else {                    $('#addCancel').show();                }                $('#bj-code').removeClass('is-invalid');        }    });    // 获取最新可用变更令号    $('#autoCode').click(getNewCode);    // 新增变更令 确认    $('#addOk').click(function () {        $(this).attr('disabled', true);        if (!openChangeProject && $('#bj-name').val().length === 0) {            $('#bj-name').addClass('is-invalid');            $('#name_error_msg').show();            $('#name_error_msg').text('变更工程名称不能为空。');            $(this).attr('disabled', false);            setTimeout(function () {                $('#bj-name').removeClass('is-invalid');                $('#name_error_msg').hide();            }, 2000);            return;        }        if (!openChangeProject && $('#bj-name').val().length > 100) {            $('#bj-name').addClass('is-invalid');            $('#name_error_msg').show();            $('#name_error_msg').text('名称超过100个字,请缩减名称。');            $(this).attr('disabled', false);            setTimeout(function () {                $('#bj-name').removeClass('is-invalid');                $('#name_error_msg').hide();            }, 2000);            return;        }        const data = {            code: $('#bj-code').val(),            project_code: $('#project-code').val(),            name: $('#bj-name').val(),        };        if (data.code || data.code !== '') {            postData('/tender/'+ tenderId +'/change/apply/add', data, function (rst) {                $('#bj-code').removeClass('is-invalid');                $('#mj-add').modal('hide');                $(this).attr('disabled', false);                window.location.href = '/tender/'+ tenderId +'/change/apply/' + rst.id + '/information';            }, function () {                $('#mj-code').addClass('is-invalid');                $('#mj-Hint').show();                $(this).attr('disabled', false);            });        }    });    $('#project-code').change(function () {        if ($(this).val() === '') {            $('#bj-name').val('');        } else {            const info = _.find(changeProjectList, { code: $(this).val() });            $('#bj-name').val(info.name);        }    });    //状态切换    $('#status_select a').on('click', function () {       const status = $(this).data('val');       let url = '/tender/'+ tenderId +'/change/apply';       if (status !== 0) {           url += '/status/'+ status;       }       let orderSetting = getLocalCache('change-apply-'+ tenderId +'-list-order');       if (orderSetting) {           const orders = orderSetting.split('|');           url += '?sort=' + orders[0] + '&order=' + orders[1];       }       window.location.href = url;    });    // 不再显示首次使用    $('#changeFirst').click(function () {        showNoNeed = false;        $('#changeFirst').remove();        $('#hide_modal').show();        $('#setting').modal('hide');        postData('/tender/'+ tenderId +'/rule/first', { type: rulesType }, function () {        });    });    // 弹出删除变更框赋值    $('.delete-caid-modal').on('click', function () {        $('#delete-caid').val($(this).attr('caid'));    });    // 排序初始化    let orderSetting = getLocalCache('change-apply-'+ tenderId +'-list-order');    if (!orderSetting) orderSetting = 'time|desc';    const orders = orderSetting.split('|');    $("#sort-radio input[value='"+ orders[0] +"']").prop('checked', true);    $("#order-radio input[value='"+ orders[1] +"']").prop('checked', true);    if (orders[0] === 'time') {        $('#bpaixu').text('排序:创建时间');    } else {        $('#bpaixu').text('排序:变更申请编号');    }    // let sortSetting = getLocalCache('change-'+ $('#tenderId').val() +'-list-sort');    // if (sortSetting && parseInt(sortSetting) === 1) {    //     $('#bpaixu').click();    // }    // $('#sort-dropdown').on('shown.bs.dropdown', function () {    //     setLocalCache('change-'+ $('#tenderId').val() +'-list-sort', 1);    // });    // $('#sort-dropdown').on('hidden.bs.dropdown', function () {    //     setLocalCache('change-'+ $('#tenderId').val() +'-list-sort', 0);    // });    $('#sort-radio input[name="paizhi"]').click(function () {        const orderStr = $(this).val() + '|' + $('#order-radio input[name="paixu"]:checked').val();        setLocalCache('change-apply-'+ tenderId +'-list-order', orderStr);        // setLocalCache('change-'+ $('#tenderId').val() +'-list-sort', 1);        const link = window.location.origin + window.location.pathname + '?sort='+ $(this).val() + '&order=' + $('#order-radio input[name="paixu"]:checked').val();        window.location.href = link;    });    $('#order-radio input[name="paixu"]').click(function () {        const orderStr = $('#sort-radio input[name="paizhi"]:checked').val() + '|' + $(this).val();        setLocalCache('change-apply-'+ tenderId +'-list-order', orderStr);        // setLocalCache('change-'+ $('#tenderId').val() +'-list-sort', 1);        const link = window.location.origin + window.location.pathname + '?sort='+ $('#sort-radio input[name="paizhi"]:checked').val() + '&order=' + $(this).val();        window.location.href = link;    })    $.subMenu({        menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list',        toMenu: '#to-menu', toMiniMenu: '#to-mini-menu',        key: 'menu.1.0.0',        miniHint: '#sub-mini-hint', hintKey: 'menu.hint.1.0.1',        callback: function (info) {            if (info.mini) {                $('.panel-title').addClass('fluid');                $('#sub-menu').removeClass('panel-sidebar');            } else {                $('.panel-title').removeClass('fluid');                $('#sub-menu').addClass('panel-sidebar');            }            autoFlashHeight();        }    });});
 |