本网站正在建设中(~ ̄▽ ̄)~

  • 你好~!欢迎来到中文歌声合成个人收集站-VCPedia.cn!
  • 若发现页面信息有误投稿至本站,请联系管理员。

MediaWiki:Gadget-vote.js

VCPedia.cn ——关于中文歌声合成的一切。
MilkBoy讨论 | 贡献2025年1月29日 (三) 22:44的版本
跳到导航 跳到搜索

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
"use strict";
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        if (typeof b !== "function" && b !== null)
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
$(function () {
    var candidate = ['JackBlock', '不可逆', 'MilkBoy', 'LFTW'];
    var voter = mw.config.get("wgUserName");
    var isVoted = localStorage.getItem('isVoted') === 'true';
    var windowManager = new OO.ui.WindowManager();
    $(document.body).append(windowManager.$element);
    var button = $('<div></div>').addClass('vcep-button').text('管理员投票');
    $('body').append(button);
    var candidatePrompt = $('<div>').addClass('candidatePrompt');
    var candidateDiv = $('<div>').addClass('candidate');
    var candidate1 = new OO.ui.FieldLayout(new OO.ui.RadioSelectInputWidget({
        options: [
            {
                data: '1',
                label: '同意'
            },
            {
                data: '0',
                label: '弃权'
            }
        ]
    }), {
        label: '选举候选人:' + candidate[0],
        align: 'inline',
    });
    var candidate2 = new OO.ui.FieldLayout(new OO.ui.RadioSelectInputWidget({
        options: [
            {
                data: '1',
                label: '同意'
            },
            {
                data: '0',
                label: '弃权'
            }
        ]
    }), {
        label: '选举候选人:' + candidate[1],
        align: 'inline',
    });
    var candidate3 = new OO.ui.FieldLayout(new OO.ui.RadioSelectInputWidget({
        options: [
            {
                data: '1',
                label: '同意'
            },
            {
                data: '0',
                label: '弃权'
            }
        ]
    }), {
        label: '选举候选人:' + candidate[2],
        align: 'inline',
    });
    var candidate4 = new OO.ui.FieldLayout(new OO.ui.RadioSelectInputWidget({
        options: [
            {
                data: '1',
                label: '同意'
            },
            {
                data: '0',
                label: '弃权'
            }
        ]
    }), {
        label: '选举候选人:' + candidate[3],
        align: 'inline',
    });
    console.log(candidate1.getField().getValue());
    candidateDiv.append(candidate1.$element, candidate2.$element, candidate3.$element, candidate4.$element);
    var dialogs = /** @class */ (function (_super) {
        __extends(dialogs, _super);
        function dialogs() {
            return _super !== null && _super.apply(this, arguments) || this;
        }
        dialogs.prototype.initialize = function () {
            _super.prototype.initialize.call(this);
            this.content = new OO.ui.PanelLayout({
                padded: true,
                expanded: false
            });
            this.$body.append(this.content.$element);
        };
        dialogs.prototype.getBodyHeight = function () {
            return this.content.$element.outerHeight(true);
        };
        dialogs.static = {
            name: 'voteResult',
            title: '投票结果',
        };
        return dialogs;
    }(OO.ui.Dialog));
    var main = /** @class */ (function (_super) {
        __extends(main, _super);
        function main() {
            return _super !== null && _super.apply(this, arguments) || this;
        }
        main.prototype.initialize = function () {
            _super.prototype.initialize.call(this);
            if (candidate.includes(voter)) {
                this.$body.append(candidatePrompt.append($('<p>').text('您是本届管理员选举的候选人,不可投票。')).append($('<p>').text('请耐心等待选举结果。')));
                return;
            }
            else if (isVoted) {
                this.$body.append(candidatePrompt.append($('<p>').text('您已投票完毕,感谢您的投票。')).append($('<p>').text('请耐心等待选举结果。')));
                return;
            }
            this.$body.append(candidateDiv);
        };
        main.prototype.getBodyHeight = function () {
            if (candidate.includes(voter) || isVoted) {
                return 110;
            }
            return 425;
        };
        main.prototype.getActionProcess = function (action) {
            var _this = this;
            if (action === 'cancel') {
                return new OO.ui.Process(function () {
                    _this.close({ action: action });
                });
            }
            else if (action === 'submit') {
                return new OO.ui.Process(function () {
                    var vote = [candidate1.getField().getValue(), candidate2.getField().getValue(), candidate3.getField().getValue(), candidate4.getField().getValue()];
                    if (!isVoted && !candidate.includes(voter)) {
                        fetch("https://m8.ctymc.cn:26613/api/vote/vote?id=".concat(1, "&vote=").concat(vote.join('')), { method: 'POST' });
                    }
                    //localStorage.setItem('isVoted', 'true');
                    isVoted = true;
                    mw.notify('感谢您的参与!', {
                        title: '投票成功',
                        type: 'success',
                        autoHide: true
                    });
                    _this.close({ action: action });
                });
            }
            return _super.prototype.getActionProcess.call(this, action);
        };
        ;
        main.static = {
            name: 'vote',
            title: 'VCPedia第1届(2025)管理员选举',
            size: 'medium',
            actions: [{ action: 'cancel', label: '取消', flags: ['safe', 'close'] },
                { action: 'submit', label: '提交', flags: ['primary', 'progressive'] }]
        };
        return main;
    }(OO.ui.ProcessDialog));
    var dialog = new main();
    windowManager.addWindows([dialog]);
    button.on('click', function () {
        windowManager.openWindow(dialog);
    });
});