From a637cdb04ab7e0954196ad0d8e7cc24ae22ee93a Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 10 三月 2026 13:22:22 +0800
Subject: [PATCH] #

---
 src/main/webapp/static/js/userLogin/userLogin.js |  821 ++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 460 insertions(+), 361 deletions(-)

diff --git a/src/main/webapp/static/js/userLogin/userLogin.js b/src/main/webapp/static/js/userLogin/userLogin.js
index f0907ef..3f90a84 100644
--- a/src/main/webapp/static/js/userLogin/userLogin.js
+++ b/src/main/webapp/static/js/userLogin/userLogin.js
@@ -1,369 +1,468 @@
-var pageCurr;
-layui.use(['table','laydate', 'form'], function(){
-    var table = layui.table;
-    var $ = layui.jquery;
-    var layer = layui.layer;
-    var layDate = layui.laydate;
-    var form = layui.form;
-
-    // 鏁版嵁娓叉煋
-    tableIns = table.render({
-        elem: '#userLogin',
-        headers: {token: localStorage.getItem('token')},
-        url: baseUrl+'/userLogin/list/auth',
-        page: true,
-        limit: 16,
-        limits: [16, 30, 50, 100, 200, 500],
-        toolbar: '#toolbar',
-        cellMinWidth: 50,
-        cols: [[
-            {type: 'checkbox', fixed: 'left'}
-            ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
-            ,{field: 'userUsername', align: 'center',title: '鍛樺伐',event: 'User', style: 'text-decoration: underline;cursor:pointer'}
-            ,{field: 'token', align: 'center',title: '鍑瘉鍊�'}
-            ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
-
-            ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
-        ]],
-        request: {
-            pageName: 'curr',
-            pageSize: 'limit'
-        },
-        parseData: function (res) {
-            return {
-                'code': res.code,
-                'msg': res.msg,
-                'count': res.data.total,
-                'data': res.data.records
-            }
-        },
-        response: {
-            statusCode: 200
-        },
-        done: function(res, curr, count) {
-            if (res.code === 403) {
-                top.location.href = baseUrl+"/";
-            }
-            pageCurr=curr;
-            limit();
-        }
-    });
-
-    // 鐩戝惉鎺掑簭浜嬩欢
-    table.on('sort(userLogin)', function (obj) {
-        var searchData = {};
-        $.each($('#search-box [name]').serializeArray(), function() {
-            searchData[this.name] = this.value;
-        });
-        searchData['orderByField'] = obj.field;
-        searchData['orderByType'] = obj.type;
-        tableIns.reload({
-            where: searchData,
-            page: {
-                curr: 1
-            },
-            done: function (res, curr, count) {
-                if (res.code === 403) {
-                    top.location.href = baseUrl+"/";
-                }
-                pageCurr=curr;
-                limit();
-            }
-        });
-    });
-
-    // 鐩戝惉澶村伐鍏锋爮浜嬩欢
-    table.on('toolbar(userLogin)', function (obj) {
-        var checkStatus = table.checkStatus(obj.config.id);
-        switch(obj.event) {
-            case 'addData':
-                layer.open({
-                    type: 2,
-                    title: '鏂板',
-                    maxmin: true,
-                    area: [top.detailWidth, top.detailHeight],
-                    shadeClose: false,
-                    content: 'userLogin_detail.html',
-                    success: function(layero, index){
-                    	clearFormVal(layer.getChildFrame('#detail', index));
-                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
-                    }
-                });
-                break;
-            case 'refreshData':
-                tableIns.reload({
-                    page: {
-                        curr: pageCurr
-                    }
-                });
-                limit();
-                break;
-            case 'deleteData':
-                var data = checkStatus.data;
-                var ids=[];
-                data.map(function (track) {
-                    ids.push(track.id);
-                });
-                if (ids.length === 0){
-                    layer.msg('璇烽�夋嫨鏁版嵁');
-                } else {
-                    layer.confirm('纭畾鍒犻櫎'+(ids.length===1?'姝�':ids.length)+'鏉℃暟鎹悧', function(){
-                        $.ajax({
-                            url: baseUrl+"/userLogin/delete/auth",
-                            headers: {'token': localStorage.getItem('token')},
-                            data: {ids: ids},
-                            method: 'POST',
-                            traditional:true,
-                            success: function (res) {
-                                if (res.code === 200){
-                                    layer.closeAll();
-                                    tableReload(false);
-                                } else if (res.code === 403){
-                                    top.location.href = baseUrl+"/";
-                                } else {
-                                    layer.msg(res.msg)
-                                }
-                            }
-                        })
-                    });
-                }
-                break;
-            case 'exportData':
-                layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function() {
-                    var titles = [];
-                    var fields = [];
-                    obj.config.cols[0].map(function (col) {
-                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
-                            titles.push(col.title);
-                            fields.push(col.field);
-                        }
-                    });
-                    var exportData = {};
-                    $.each($('#search-box [name]').serializeArray(), function () {
-                        exportData[this.name] = this.value;
-                    });
-                    var param = {
-                        'userLogin': exportData,
-                        'fields': fields
-                    };
-                    $.ajax({
-                        url: baseUrl+"/userLogin/export/auth",
-                        headers: {'token': localStorage.getItem('token')},
-                        data: JSON.stringify(param),
-                        dataType: 'json',
-                        contentType: 'application/json;charset=UTF-8',
-                        method: 'POST',
-                        success: function (res) {
-                            layer.closeAll();
-                            if (res.code === 200) {
-                                table.exportFile(titles, res.data, 'xls');
-                            } else if (res.code === 403) {
-                                top.location.href = baseUrl+"/";
-                            } else {
-                                layer.msg(res.msg)
-                            }
-                        }
-                    });
-                });
-                break;
-        }
-    });
-
-    // 鐩戝惉琛屽伐鍏蜂簨浠�
-    table.on('tool(userLogin)', function(obj){
-        var data = obj.data;
-        switch (obj.event) {
-            // 璇︽儏
-            case 'detail':
-                layer.open({
-                    type: 2,
-                    title: '璇︽儏',
-                    maxmin: true,
-                    area: [top.detailWidth, top.detailHeight],
-                    shadeClose: false,
-                    content: 'userLogin_detail.html',
-                    success: function(layero, index){
-                        setFormVal(layer.getChildFrame('#detail', index), data);
-                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
-                        layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
-                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
-                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
-                    }
-                });
-                break;
-            // 缂栬緫
-            case 'edit':
-                layer.open({
-                    type: 2,
-                    title: '淇敼',
-                    maxmin: true,
-                    area: [top.detailWidth, top.detailHeight],
-                    shadeClose: false,
-                    content: 'userLogin_detail.html',
-                    success: function(layero, index){
-                        setFormVal(layer.getChildFrame('#detail', index), data);
-                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
-                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
-                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
-                    }
-                });
-                break;
-            case 'User':
-                var param = top.reObject(data).userId;
-                if (param === undefined) {
-                    layer.msg("鏃犳暟鎹�");
-                } else {
-                    layer.open({
-                        type: 2,
-                        title: '璇︽儏',
-                        maxmin: true,
-                        area: [top.detailHeight, top.detailWidth],
-                        shadeClose: false,
-                        content: '../user/user_detail.html',
-                        success: function(layero, index){
-                            $.ajax({
-                                url: baseUrl+"/user/"+ param +"/auth",
-                                headers: {'token': localStorage.getItem('token')},
-                                method: 'GET',
-                                success: function (res) {
-                                    if (res.code === 200){
-                                        setFormVal(layer.getChildFrame('#detail', index), res.data);
-                                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
-                                        layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
-                                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
-                                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
-                                    } else if (res.code === 403){
-                                        parent.location.href = "/";
-                                    }else {
-                                        layer.msg(res.msg)
-                                    }
-                                }
-                            })
-                        }
-                    });
-                }
-                break;
-
-        }
-    });
-
-    // 鏁版嵁淇敼鍔ㄤ綔
-    form.on('submit(edit)', function () {
-        var index = layer.load(1, {
-            shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
-        });
-        var data = {
-            id: $('#id').val(),
-            userId: $('#userId').val(),
-            token: $('#token').val(),
-            createTime: top.strToDate($('#createTime\\$').val()),
-
+(function () {
+    function authHeaders() {
+        return {
+            token: localStorage.getItem('token') || ''
         };
-        $.ajax({
-            url: baseUrl+"/userLogin/edit/auth",
-            headers: {'token': localStorage.getItem('token')},
-            data: top.reObject(data),
-            method: 'POST',
-            success: function (res) {
-                if (res.code === 200){
-                    parent.layer.closeAll();
-                    tableReload(true);
-                    $("#data-detail :input").each(function () {
-                        $(this).val("");
-                    });
-                } else if (res.code === 403){
-                    top.location.href = baseUrl+"/";
-                }else {
-                    layer.msg(res.msg)
+    }
+
+    function isForbidden(res) {
+        return res && Number(res.code) === 403;
+    }
+
+    function isOk(res) {
+        return res && Number(res.code) === 200;
+    }
+
+    function normalizeId(value) {
+        if (value === null || value === undefined || value === '') {
+            return null;
+        }
+        var numberValue = Number(value);
+        return isNaN(numberValue) ? value : numberValue;
+    }
+
+    function createLoginForm() {
+        return {
+            id: null,
+            userId: null,
+            token: '',
+            createTime: ''
+        };
+    }
+
+    function escapeHtml(value) {
+        return String(value == null ? '' : value)
+            .replace(/&/g, '&amp;')
+            .replace(/</g, '&lt;')
+            .replace(/>/g, '&gt;')
+            .replace(/"/g, '&quot;')
+            .replace(/'/g, '&#39;');
+    }
+
+    function downloadExcel(filename, headers, rows) {
+        var headHtml = headers.map(function (title) {
+            return '<th style="mso-number-format:\\@;">' + escapeHtml(title) + '</th>';
+        }).join('');
+        var bodyHtml = rows.map(function (row) {
+            return '<tr>' + row.map(function (cell) {
+                return '<td style="mso-number-format:\\@;">' + escapeHtml(cell) + '</td>';
+            }).join('') + '</tr>';
+        }).join('');
+        var workbook = [
+            '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel">',
+            '<head><meta charset="UTF-8"></head>',
+            '<body><table border="1"><tr>',
+            headHtml,
+            '</tr>',
+            bodyHtml,
+            '</table></body></html>'
+        ].join('');
+        var blob = new Blob([workbook], {type: 'application/vnd.ms-excel;charset=utf-8;'});
+        var link = document.createElement('a');
+        link.href = URL.createObjectURL(blob);
+        link.download = filename;
+        document.body.appendChild(link);
+        link.click();
+        document.body.removeChild(link);
+        URL.revokeObjectURL(link.href);
+    }
+
+    new Vue({
+        el: '#app',
+        data: function () {
+            return {
+                loading: false,
+                exportLoading: false,
+                userSearchLoading: false,
+                dialogUserLoading: false,
+                tableHeight: Math.max(window.innerHeight - 220, 360),
+                tableData: [],
+                selection: [],
+                pagination: {
+                    curr: 1,
+                    limit: 16,
+                    total: 0
+                },
+                searchForm: {
+                    userId: null
+                },
+                userSearchOptions: [],
+                loginDialog: {
+                    visible: false,
+                    mode: 'create',
+                    readonly: false,
+                    submitting: false
+                },
+                loginForm: createLoginForm(),
+                loginRules: {
+                    userId: [
+                        {required: true, message: '璇烽�夋嫨鍛樺伐', trigger: 'change'}
+                    ],
+                    token: [
+                        {required: true, message: '璇疯緭鍏ュ嚟璇佸��', trigger: 'blur'}
+                    ],
+                    createTime: [
+                        {required: true, message: '璇烽�夋嫨娣诲姞鏃堕棿', trigger: 'change'}
+                    ]
+                },
+                dialogUserOptions: [],
+                userDetail: {
+                    visible: false,
+                    data: {}
                 }
-                layer.close(index);
-            }
-        })
-    });
-
-    // 鎼滅储鏍忔悳绱簨浠�
-    form.on('submit(search)', function (data) {
-        pageCurr = 1;
-        tableReload(false);
-    });
-
-    // 鎼滅储鏍忛噸缃簨浠�
-    form.on('submit(reset)', function (data) {
-        pageCurr = 1;
-        clearFormVal($('#search-box'));
-        tableReload(false);
-    });
-
-    // 鏃堕棿閫夋嫨鍣�
-    layDate.render({
-        elem: '#createTime\\$',
-        type: 'datetime'
-    });
-
-});
-
-// 鍏抽棴鍔ㄤ綔
-$(document).on('click','#data-detail-close', function () {
-    parent.layer.closeAll();
-});
-
-function tableReload(child) {
-    var searchData = {};
-    $.each($('#search-box [name]').serializeArray(), function() {
-        searchData[this.name] = this.value;
-    });
-    (child ? parent.tableIns : tableIns).reload({
-        where: searchData,
-        page: {
-            curr: pageCurr
+            };
         },
-        done: function (res, curr, count) {
-            if (res.code === 403) {
-                top.location.href = baseUrl+"/";
-            }
-            pageCurr=curr;
-            if (res.data.length === 0 && count !== 0) {
-                tableIns.reload({
-                    where: searchData,
-                    page: {
-                        curr: pageCurr-1
+        created: function () {
+            this.loadList();
+        },
+        mounted: function () {
+            window.addEventListener('resize', this.handleResize);
+        },
+        beforeDestroy: function () {
+            window.removeEventListener('resize', this.handleResize);
+        },
+        methods: {
+            handleResize: function () {
+                this.tableHeight = Math.max(window.innerHeight - 220, 360);
+                this.refreshTableLayout();
+            },
+            handleForbidden: function (res) {
+                if (isForbidden(res)) {
+                    top.location.href = baseUrl + '/';
+                    return true;
+                }
+                return false;
+            },
+            refreshTableLayout: function () {
+                var vm = this;
+                this.$nextTick(function () {
+                    if (vm.$refs.dataTable && vm.$refs.dataTable.doLayout) {
+                        vm.$refs.dataTable.doLayout();
                     }
                 });
-                pageCurr -= 1;
+            },
+            currentQuery: function () {
+                return {
+                    curr: this.pagination.curr,
+                    limit: this.pagination.limit,
+                    userId: this.searchForm.userId
+                };
+            },
+            loadList: function () {
+                var vm = this;
+                vm.loading = true;
+                $.ajax({
+                    url: baseUrl + '/userLogin/list/auth',
+                    method: 'GET',
+                    headers: authHeaders(),
+                    data: vm.currentQuery(),
+                    success: function (res) {
+                        vm.loading = false;
+                        if (vm.handleForbidden(res)) {
+                            return;
+                        }
+                        if (!isOk(res)) {
+                            vm.$message.error(res && res.msg ? res.msg : '鍑瘉鍔犺浇澶辫触');
+                            return;
+                        }
+                        var data = res.data || {};
+                        vm.tableData = data.records || [];
+                        vm.pagination.total = data.total || 0;
+                        vm.selection = [];
+                        vm.refreshTableLayout();
+                    },
+                    error: function () {
+                        vm.loading = false;
+                        vm.$message.error('鍑瘉鍔犺浇澶辫触');
+                    }
+                });
+            },
+            fetchUserOptions: function (keyword, target) {
+                var vm = this;
+                var loadingKey = target === 'search' ? 'userSearchLoading' : 'dialogUserLoading';
+                vm[loadingKey] = true;
+                $.ajax({
+                    url: baseUrl + '/userQuery/auth',
+                    method: 'GET',
+                    headers: authHeaders(),
+                    data: {
+                        condition: keyword || ''
+                    },
+                    success: function (res) {
+                        vm[loadingKey] = false;
+                        if (vm.handleForbidden(res)) {
+                            return;
+                        }
+                        if (!isOk(res)) {
+                            vm.$message.error(res && res.msg ? res.msg : '鐢ㄦ埛鏌ヨ澶辫触');
+                            return;
+                        }
+                        if (target === 'search') {
+                            vm.userSearchOptions = res.data || [];
+                        } else {
+                            vm.dialogUserOptions = res.data || [];
+                        }
+                    },
+                    error: function () {
+                        vm[loadingKey] = false;
+                        vm.$message.error('鐢ㄦ埛鏌ヨ澶辫触');
+                    }
+                });
+            },
+            searchUserOptions: function (keyword) {
+                this.fetchUserOptions(keyword, 'search');
+            },
+            searchDialogUserOptions: function (keyword) {
+                this.fetchUserOptions(keyword, 'dialog');
+            },
+            ensureDialogUserOption: function (id, label) {
+                if (!id || !label) {
+                    return;
+                }
+                var exists = this.dialogUserOptions.some(function (item) {
+                    return normalizeId(item.id) === normalizeId(id);
+                });
+                if (!exists) {
+                    this.dialogUserOptions = [{
+                        id: normalizeId(id),
+                        value: label
+                    }].concat(this.dialogUserOptions);
+                }
+            },
+            handleSelectionChange: function (rows) {
+                this.selection = rows || [];
+            },
+            handleSearch: function () {
+                this.pagination.curr = 1;
+                this.loadList();
+            },
+            handleReset: function () {
+                this.searchForm.userId = null;
+                this.userSearchOptions = [];
+                this.pagination.curr = 1;
+                this.loadList();
+            },
+            handleCurrentChange: function (page) {
+                this.pagination.curr = page;
+                this.loadList();
+            },
+            handleSizeChange: function (size) {
+                this.pagination.limit = size;
+                this.pagination.curr = 1;
+                this.loadList();
+            },
+            resetLoginDialog: function () {
+                this.loginForm = createLoginForm();
+                this.dialogUserOptions = [];
+                var vm = this;
+                this.$nextTick(function () {
+                    if (vm.$refs.loginForm) {
+                        vm.$refs.loginForm.clearValidate();
+                    }
+                });
+            },
+            openCreateDialog: function () {
+                this.loginDialog.mode = 'create';
+                this.loginDialog.readonly = false;
+                this.loginDialog.visible = true;
+                this.resetLoginDialog();
+            },
+            openEditDialog: function (row) {
+                this.loginDialog.mode = 'edit';
+                this.loginDialog.readonly = false;
+                this.loginDialog.visible = true;
+                this.loginForm = {
+                    id: normalizeId(row.id),
+                    userId: normalizeId(row.userId),
+                    token: row.token || '',
+                    createTime: row['createTime$'] || ''
+                };
+                this.dialogUserOptions = [];
+                this.ensureDialogUserOption(row.userId, row.userUsername);
+                var vm = this;
+                this.$nextTick(function () {
+                    if (vm.$refs.loginForm) {
+                        vm.$refs.loginForm.clearValidate();
+                    }
+                });
+            },
+            openDetailDialog: function (row) {
+                this.loginDialog.mode = 'edit';
+                this.loginDialog.readonly = true;
+                this.loginDialog.visible = true;
+                this.loginForm = {
+                    id: normalizeId(row.id),
+                    userId: normalizeId(row.userId),
+                    token: row.token || '',
+                    createTime: row['createTime$'] || ''
+                };
+                this.dialogUserOptions = [];
+                this.ensureDialogUserOption(row.userId, row.userUsername);
+                var vm = this;
+                this.$nextTick(function () {
+                    if (vm.$refs.loginForm) {
+                        vm.$refs.loginForm.clearValidate();
+                    }
+                });
+            },
+            submitLogin: function () {
+                var vm = this;
+                if (!vm.$refs.loginForm) {
+                    return;
+                }
+                vm.$refs.loginForm.validate(function (valid) {
+                    if (!valid) {
+                        return false;
+                    }
+                    vm.loginDialog.submitting = true;
+                    $.ajax({
+                        url: baseUrl + '/userLogin/' + (vm.loginDialog.mode === 'create' ? 'add' : 'update') + '/auth',
+                        method: 'POST',
+                        headers: authHeaders(),
+                        data: {
+                            id: vm.loginDialog.mode === 'edit' ? normalizeId(vm.loginForm.id) : null,
+                            userId: normalizeId(vm.loginForm.userId),
+                            token: $.trim(vm.loginForm.token),
+                            createTime: vm.loginForm.createTime
+                        },
+                        success: function (res) {
+                            vm.loginDialog.submitting = false;
+                            if (vm.handleForbidden(res)) {
+                                return;
+                            }
+                            if (!isOk(res)) {
+                                vm.$message.error(res && res.msg ? res.msg : '淇濆瓨澶辫触');
+                                return;
+                            }
+                            vm.$message.success(res.msg || '淇濆瓨鎴愬姛');
+                            vm.loginDialog.visible = false;
+                            vm.loadList();
+                        },
+                        error: function () {
+                            vm.loginDialog.submitting = false;
+                            vm.$message.error('淇濆瓨澶辫触');
+                        }
+                    });
+                    return true;
+                });
+            },
+            removeSelection: function () {
+                var vm = this;
+                if (!vm.selection.length) {
+                    vm.$message.warning('璇烽�夋嫨鏁版嵁');
+                    return;
+                }
+                var ids = vm.selection.map(function (row) {
+                    return normalizeId(row.id);
+                }).filter(function (id) {
+                    return id !== null;
+                });
+                vm.$confirm('纭畾鍒犻櫎閫変腑鍑瘉鍚楋紵', '鎻愮ず', {
+                    confirmButtonText: '纭畾',
+                    cancelButtonText: '鍙栨秷',
+                    type: 'warning'
+                }).then(function () {
+                    $.ajax({
+                        url: baseUrl + '/userLogin/delete/auth',
+                        method: 'POST',
+                        headers: authHeaders(),
+                        traditional: true,
+                        data: {
+                            ids: ids
+                        },
+                        success: function (res) {
+                            if (vm.handleForbidden(res)) {
+                                return;
+                            }
+                            if (!isOk(res)) {
+                                vm.$message.error(res && res.msg ? res.msg : '鍒犻櫎澶辫触');
+                                return;
+                            }
+                            vm.$message.success(res.msg || '鍒犻櫎鎴愬姛');
+                            if (vm.tableData.length === ids.length && vm.pagination.curr > 1) {
+                                vm.pagination.curr -= 1;
+                            }
+                            vm.loadList();
+                        },
+                        error: function () {
+                            vm.$message.error('鍒犻櫎澶辫触');
+                        }
+                    });
+                }).catch(function () {
+                });
+            },
+            exportRows: function () {
+                var vm = this;
+                vm.exportLoading = true;
+                $.ajax({
+                    url: baseUrl + '/userLogin/export/auth',
+                    method: 'POST',
+                    headers: authHeaders(),
+                    dataType: 'json',
+                    contentType: 'application/json;charset=UTF-8',
+                    data: JSON.stringify({
+                        userLogin: {
+                            userId: vm.searchForm.userId
+                        },
+                        fields: ['id', 'userUsername', 'token', 'createTime$']
+                    }),
+                    success: function (res) {
+                        vm.exportLoading = false;
+                        if (vm.handleForbidden(res)) {
+                            return;
+                        }
+                        if (!isOk(res)) {
+                            vm.$message.error(res && res.msg ? res.msg : '瀵煎嚭澶辫触');
+                            return;
+                        }
+                        downloadExcel('鍑瘉璁板綍.xls', ['ID', '鍛樺伐', '鍑瘉鍊�', '娣诲姞鏃堕棿'], res.data || []);
+                    },
+                    error: function () {
+                        vm.exportLoading = false;
+                        vm.$message.error('瀵煎嚭澶辫触');
+                    }
+                });
+            },
+            openUserDetail: function (row) {
+                var vm = this;
+                if (!row.userId) {
+                    vm.$message.warning('鏃犵敤鎴锋暟鎹�');
+                    return;
+                }
+                $.ajax({
+                    url: baseUrl + '/user/' + row.userId + '/auth',
+                    method: 'GET',
+                    headers: authHeaders(),
+                    success: function (res) {
+                        if (vm.handleForbidden(res)) {
+                            return;
+                        }
+                        if (!isOk(res)) {
+                            vm.$message.error(res && res.msg ? res.msg : '鍛樺伐璇︽儏鍔犺浇澶辫触');
+                            return;
+                        }
+                        vm.userDetail.data = res.data || {};
+                        vm.userDetail.visible = true;
+                    },
+                    error: function () {
+                        vm.$message.error('鍛樺伐璇︽儏鍔犺浇澶辫触');
+                    }
+                });
             }
-            limit(child);
+        },
+        watch: {
+            'loginDialog.visible': function (visible) {
+                if (!visible) {
+                    this.loginDialog.submitting = false;
+                    this.loginDialog.readonly = false;
+                    this.resetLoginDialog();
+                }
+            },
+            'userDetail.visible': function (visible) {
+                if (!visible) {
+                    this.userDetail.data = {};
+                }
+            }
         }
     });
-}
-
-function setFormVal(el, data) {
-    for (var val in data) {
-        el.find(":input[id='" + val + "']").val(data[val]);
-    }
-}
-
-function clearFormVal(el) {
-    $(':input', el)
-        .val('')
-        .removeAttr('checked')
-        .removeAttr('selected');
-}
-
-function detailScreen(index) {
-    var detail = layer.getChildFrame('#data-detail', index);
-    var height = detail.height()+60;
-    if (height > ($(window).height()*0.9)) {
-        height = ($(window).height()*0.9);
-    }
-    layer.style(index, {
-        top: (($(window).height()-height)/3)+"px",
-        height: height+'px'
-    });
-    $(".layui-layer-shade").remove();
-}
-
-$('body').keydown(function () {
-    if (event.keyCode === 13) {
-        $("#search").click();
-    }
-});
+})();

--
Gitblit v1.9.1