Administrator
16 hours ago f7def4651e48093c47008031a313c88df9811c88
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<div class="layui-fluid layui-anim febs-anim" id="febs-aiKnowledgeFile-add" lay-title="新增">
    <div class="layui-row febs-container">
        <div class="layui-col-md12">
            <div class="layui-fluid" id="aiKnowledgeFile-add">
                <form class="layui-form" action="" lay-filter="aiKnowledgeFile-add-form">
                    <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
                        <ul class="layui-tab-title">
                            <li class="layui-this">基础信息</li>
                        </ul>
                        <div class="layui-tab-content">
                            <div class="layui-tab-item layui-show">
                                <div class="layui-row layui-col-space10 layui-form-item">
                                    <div class="layui-col-lg12">
                                        <label class="layui-form-label febs-form-item-require">文件上传:</label>
                                        <div class="layui-input-block">
                                            <div class="layui-upload">
                                                <button type="button" class="layui-btn layui-btn-normal" id="test1">选择文件</button>
                                                <div class="layui-upload-list">
                                                    <input type="hidden" name="savePath" id="savePath">
                                                    <input type="hidden" name="name" id="name">
                                                    <div class="layui-progress layui-progress-big" lay-filter="demo" id="uploadProgress" style="display: none;">
                                                        <div class="layui-progress-bar layui-bg-green" lay-percent="0%"></div>
                                                    </div>
                                                    <table class="layui-table">
                                                        <thead>
                                                            <tr><th>文件名</th><th>大小</th><th>状态</th></tr>
                                                        </thead>
                                                        <tbody id="fileList">
                                                            <!-- 上传文件列表将在这里显示 -->
                                                        </tbody>
                                                    </table>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
 
                    <div class="layui-form-item febs-hide">
                        <button class="layui-btn" lay-submit="" lay-filter="aiKnowledgeFile-add-form-submit" id="submit">保存</button>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>
 
<!-- 表格操作栏 end -->
<script data-th-inline="javascript">
    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','dropdown', 'laydate', 'layedit', 'upload', 'element', 'table', 'xmSelect','jquery'], function () {
        var $ = layui.jquery,
            febs = layui.febs,
            layer = layui.layer,
            table = layui.table,
            formSelects = layui.formSelects,
            treeSelect = layui.treeSelect,
            form = layui.form,
            laydate = layui.laydate,
            eleTree = layui.eleTree,
            $view = $('#aiKnowledgeFile-add'),
            layedit = layui.layedit,
            upload = layui.upload,
            validate = layui.validate,
            element = layui.element;
 
        form.render();
        element.render('progress');
        
        // 文件上传配置
        var uploadInst = upload.render({
            elem: '#test1',
            url: ctx + 'admin/goods/fileUploadEsc', // 上传接口
            accept: 'file',
            size: 50 * 1024, // 50MB
            exts: '', // 不限制文件类型
            auto: true, // 选择文件后自动上传
            before: function(obj) {
                // 显示进度条
                $('#uploadProgress').show();
                // 预读本地文件示例,不支持ie8
                obj.preview(function(index, file, result) {
                    // 显示文件信息
                    var fileSize = (file.size / 1024 / 1024).toFixed(2) + 'MB';
                    var tr = $(['<tr id="upload-'+ index +'">',
                        '<td>'+ file.name +'</td>',
                        '<td>'+ fileSize +'</td>',
                        '<td><div class="layui-progress layui-progress-big" lay-filter="progress-'+ index +'">',
                        '<div class="layui-progress-bar layui-bg-green" lay-percent="0%"></div>',
                        '</div></td>',
                        '</tr>'].join(''));
                    
                    $('#fileList').html(tr);
                    element.render('progress');
                });
            },
            done: function(res, index, upload) {
                if (res.code == 200) { // 上传成功
                    // 保存文件信息到隐藏字段
                    $('#savePath').val(res.data.path);
                    $('#name').val(res.data.title);
                    
                    // 更新进度条为100%
                    element.progress('progress-'+index, '100%');
                    
                    // 显示上传成功状态
                    $('#upload-'+index).find('td:eq(2)').html('<span style="color: #52c41a;">上传成功</span>');
                    febs.alert.success('文件上传成功');
                    
                    return false;
                } else {
                    this.error(index, upload);
                }
            },
            error: function(index, upload) {
                $('#upload-'+index).find('td:eq(2)').html('<span style="color: #ff5722;">上传失败</span>');
                febs.alert.warn('文件上传失败');
            },
            progress: function(n, elem, res, index) {
                element.progress('progress-'+index, n + '%'); // n为上传进度
                element.progress('demo', n + '%'); // 总进度
            }
        });
        
        // 表单数据提交函数
        function submitFormData() {
            var data = form.val('aiKnowledgeFile-add-form');
            
            // 验证文件是否已上传
            if (!data.name) {
                febs.alert.warn('请先上传文件');
                return;
            }
            
            $.ajax({
                'url':ctx + 'admin/aiKnowledgeFile/add',
                'type':'post',
                'dataType':'json',
                'headers' : {'Content-Type' : 'application/json;charset=utf-8'},
                'traditional': true,
                'data':JSON.stringify(data),
                'success':function (res) {
                    if(res.code==200){
                        layer.closeAll();
                        febs.alert.success(res.message);
                        $('#febs-aiKnowledgeFile').find('#query').click();
                    }else{
                        febs.alert.warn(res.message);
                    }
                },
                'error':function () {
                    febs.alert.warn('服务器繁忙');
                }
            })
        }
        
        // 修改保存按钮行为,点击时直接提交表单数据
        form.on('submit(aiKnowledgeFile-add-form-submit)', function () {
            submitFormData();
            return false;
        });
 
    });
</script>