| 
 | 
 
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<%@include file="/context/mytags.jsp"%> 
<!DOCTYPE html> 
<html> 
<head> 
        <title>故障申报表</title> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
        <meta name=viewportcontent="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,minimal-ui"> 
        <link rel="stylesheet" href="${webRoot}/plug-in/element-ui/css/index.css"> 
        <link rel="stylesheet" href="${webRoot}/plug-in/element-ui/css/elementui-ext.css"> 
        <script src="${webRoot}/plug-in/vue/vue.js"></script> 
        <script src="${webRoot}/plug-in/vue/vue-resource.js"></script> 
        <script src="${webRoot}/plug-in/element-ui/index.js"></script> 
        <!-- Jquery组件引用 --> 
        <script src="${webRoot}/plug-in/jquery/jquery-1.9.1.js"></script> 
        <script type="text/javascript" src="${webRoot}/plug-in/jquery-plugs/i18n/jquery.i18n.properties.js"></script> 
        <script type="text/javascript" src="${webRoot}/plug-in/mutiLang/zh-cn.js"></script> 
        <script type="text/javascript" src="${webRoot}/plug-in/lhgDialog/lhgdialog.min.js?skin=metrole"></script> 
        <script type="text/javascript" src="${webRoot}/plug-in/tools/curdtools.js"></script> 
        <style> 
        .toolbar { 
            padding: 10px; 
            margin: 10px 0; 
        } 
        .toolbar .el-form-item { 
            margin-bottom: 10px; 
        } 
        .el-table__header tr th{ 
                padding:3px 0px; 
        } 
        [v-cloak] { display: none } 
        </style> 
</head> 
<body style="background-color: #FFFFFF;"> 
        <div id="bugReportList" v-cloak> 
                <!--工具条--> 
                <el-row style="margin-top: 15px;"> 
                        <el-form :inline="true" :model="filters" size="mini" ref="filters"> 
                                <el-form-item style="margin-bottom: 8px;" prop="bugStatus"> 
                                        <el-select v-model="filters.bugStatus" placeholder="请选择工单状态"> 
                                      <el-option :label="option.typename" :value="option.typecode" v-for="option in Options"></el-option> 
                                    </el-select> 
                                </el-form-item> 
                                <el-form-item> 
                                    <el-button type="primary" icon="el-icon-search" v-on:click="getBugReports">查询</el-button> 
                            </el-form-item> 
                            <el-form-item> 
                                    <el-button icon="el-icon-refresh" @click="resetForm('filters')">重置</el-button> 
                            </el-form-item> 
                            <el-form-item> 
                                    <el-button type="primary" icon="el-icon-edit" @click="handleAdd">新增</el-button> 
                            </el-form-item> 
                            <el-form-item> 
                                    <el-button type="primary" icon="el-icon-edit" @click="ExportXls">导出</el-button> 
                            </el-form-item> 
                            <el-form-item> 
                                    <el-button type="primary" icon="el-icon-edit" @click="ImportXls">导入</el-button> 
                            </el-form-item> 
                        </el-form> 
                </el-row> 
                 
                <!--列表--> 
                <el-table :data="bugReports" border stripe size="mini" highlight-current-row v-loading="listLoading" @sort-change="handleSortChange"  @selection-change="selsChange" style="width: 100%;"> 
                        <el-table-column type="selection" width="55"></el-table-column> 
                        <el-table-column type="index" width="60"></el-table-column> 
                        <el-table-column prop="content" label="申报内容" min-width="120" sortable="custom" show-overflow-tooltip></el-table-column> 
                        <el-table-column prop="attachfiles" label="附件" min-width="120" sortable="custom" show-overflow-tooltip> 
                                <template slot-scope="scope" v-if="scope.row.attachfiles"> 
                                        <img width="30" height="30" :src="'img/server/'+scope.row.attachfiles" alt="附件"/> 
                                </template> 
                        </el-table-column> 
                        <el-table-column prop="sysCompanyCode" label="所属公司" min-width="120" sortable="custom" show-overflow-tooltip></el-table-column> 
                        <el-table-column prop="sysOrgCode" label="所属部门" min-width="120" sortable="custom" show-overflow-tooltip></el-table-column> 
                        <el-table-column prop="position" label="岗位" min-width="120" sortable="custom" show-overflow-tooltip></el-table-column> 
                        <el-table-column prop="contact" label="联系方式" min-width="120" sortable="custom" show-overflow-tooltip></el-table-column> 
                        <el-table-column prop="bugStatus" label="工单状态" min-width="120" sortable="custom" show-overflow-tooltip :formatter="formatDict"></el-table-column> 
                        <el-table-column label="操作" width="150"> 
                                <template scope="scope"> 
                                        <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button> 
                                        <el-button type="danger" size="mini" @click="handleDel(scope.$index, scope.row)">删除</el-button> 
                                </template> 
                        </el-table-column> 
                </el-table> 
                 
                <!--工具条--> 
                <el-col :span="24" class="toolbar"> 
                        <el-button type="danger" size="mini" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button> 
                         <el-pagination small background @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10, 20, 50, 100]" 
                              :page-size="pageSize" :total="total" layout="sizes, prev, pager, next"  style="float:right;"></el-pagination> 
                </el-col> 
                 
                <!--新增界面--> 
                <el-dialog :title="formTitle" fullscreen z-index="800" :visible.sync="formVisible" :close-on-click-modal="false"> 
                        <el-form :model="form" label-width="80px" :rules="formRules" ref="form" size="mini"> 
                                        <el-form-item label="附件" prop="attachfiles"> 
                                                <el-upload 
                                                  :action="url.upload" 
                                                  :data="{isup:'1'}" 
                                                   n-success="handleAttachfilesUploadFile" 
                                                   n-remove="handleAttachfilesRemoveFile" 
                                                  :file-list="formFile.attachfiles" 
                                                  list-type="picture"> 
                                                  <el-button size="small" type="primary">点击上传</el-button> 
                                                </el-upload> 
                                        </el-form-item> 
                                        <el-form-item label="所属公司" prop="sysCompanyCode"> 
                                                <el-input v-model="form.sysCompanyCode" auto-complete="off" placeholder="请输入所属公司"></el-input> 
                                        </el-form-item> 
                                        <el-form-item label="所属部门" prop="sysOrgCode"> 
                                                <el-input v-model="form.sysOrgCode" auto-complete="off" placeholder="请输入所属部门"></el-input> 
                                        </el-form-item> 
                                        <el-form-item label="岗位" prop="position"> 
                                                <el-input v-model="form.position" auto-complete="off" placeholder="请输入岗位"></el-input> 
                                        </el-form-item> 
                                        <el-form-item label="联系方式" prop="contact"> 
                                                <el-input v-model="form.contact" auto-complete="off" placeholder="请输入联系方式"></el-input> 
                                        </el-form-item> 
                                        <el-form-item label="工单状态"> 
                                                <el-select v-model="form.bugStatus" placeholder="请选择工单状态"> 
                                              <el-option :label="option.typename" :value="option.typecode" v-for="option in Options"></el-option> 
                                            </el-select> 
                                        </el-form-item> 
                                        <el-form-item label="申报内容"> 
                                                <el-input type="textarea" name="content" v-model="form.content"></el-input> 
                                        </el-form-item> 
                        </el-form> 
                        <div slot="footer" class="dialog-footer"> 
                                <el-button @click.native="formVisible = false">取消</el-button> 
                                <el-button type="primary" @click.native="formSubmit" :loading="formLoading">提交</el-button> 
                        </div> 
                </el-dialog> 
        </div> 
</body> 
<script> 
        var vue = new Vue({                         
                el:"#bugReportList", 
                data() { 
                        return { 
                                filters: { 
                                        bugStatus:'', 
                                }, 
                                url:{ 
                                        list:'${webRoot}/bugReportController.do?datagrid', 
                                        del:'${webRoot}/bugReportController.do?doDel', 
                                        batchDel:'${webRoot}/bugReportController.do?doBatchDel', 
                                        queryDict:'${webRoot}/systemController.do?typeListJson', 
                                        save:'${webRoot}/bugReportController.do?doAdd', 
                                        edit:'${webRoot}/bugReportController.do?doUpdate', 
                                        upload:'${webRoot}/systemController/filedeal.do', 
                                        downFile:'${webRoot}/img/server/', 
                                        exportXls:'${webRoot}/bugReportController.do?exportXls&id=', 
                                        ImportXls:'${webRoot}/bugReportController.do?upload' 
                                }, 
                                bugReports: [], 
                                total: 0, 
                                page: 1, 
                                pageSize:10, 
                                sort:{ 
                                        sort:'id', 
                                        order:'desc' 
                                }, 
                                listLoading: false, 
                                sels: [],//列表选中列 
                                 
                                formTitle:'新增', 
                                formVisible: false,//表单界面是否显示 
                                formLoading: false, 
                                formRules: { 
                                }, 
                                //表单界面数据 
                                form: {}, 
                                 
                                formFile: { 
                                        attachfiles:[], 
                                }, 
                                 
                                //数据字典  
                        } 
                }, 
                methods: { 
                        handleAttachfilesUploadFile: function(response, file, fileList){ 
                                file.url="img/server/"+response.obj; 
                                this.form.attachfiles=response.obj; 
                                if(fileList.length>1){ 
                                        this.handleAttachfilesRemoveFile(fileList.splice(0,1)[0],fileList); 
                                } 
                        }, 
                        handleAttachfilesRemoveFile: function(file, fileList){ 
                                if(fileList.length==0){ 
                                        this.form.attachfiles=""; 
                                } 
                                this.$http.get(this.url.upload,{ 
                                        params:{ 
                                                isdel:'1', 
                                                path:file.url 
                                        } 
                                }).then((res) => { 
                                }); 
                        }, 
                        handleSortChange(sort){ 
                                this.sort={ 
                                        sort:sort.prop, 
                                        order:sort.order=='ascending'?'asc':'desc' 
                                }; 
                                this.getBugReports(); 
                        }, 
                        handleDownFile(type,filePath){ 
                                var downUrl=this.url.downFile+ filePath +"?down=true"; 
                                window.open(downUrl); 
                        }, 
                        formatDate: function(row,column,cellValue, index){ 
                                return !!cellValue?utilFormatDate(new Date(cellValue), 'yyyy-MM-dd'):''; 
                        }, 
                        formatDateTime: function(row,column,cellValue, index){ 
                                return !!cellValue?utilFormatDate(new Date(cellValue), 'yyyy-MM-dd hh:mm:ss'):''; 
                        }, 
                        handleCurrentChange(val) { 
                                this.page = val; 
                                this.getBugReports(); 
                        }, 
                        handleSizeChange(val) { 
                                this.pageSize = val; 
                                this.page = 1; 
                                this.getBugReports(); 
                        }, 
                        resetForm(formName) { 
                        this.$refs[formName].resetFields(); 
                        this.getBugReports(); 
                    }, 
                        //获取用户列表 
                        getBugReports() { 
                                var fields=[]; 
                                fields.push('id'); 
                                fields.push('id'); 
                                fields.push('content'); 
                                fields.push('attachfiles'); 
                                fields.push('createName'); 
                                fields.push('createBy'); 
                                fields.push('createDate'); 
                                fields.push('updateName'); 
                                fields.push('updateBy'); 
                                fields.push('updateDate'); 
                                fields.push('sysCompanyCode'); 
                                fields.push('sysOrgCode'); 
                                fields.push('position'); 
                                fields.push('contact'); 
                                fields.push('bugStatus'); 
                                fields.push('bpmStatus'); 
                                let para = { 
                                        params: { 
                                                page: this.page, 
                                                rows: this.pageSize, 
                                                //排序 
                                                sort:this.sort.sort, 
                                                order:this.sort.order, 
                                                 bugStatus:this.filters.bugStatus, 
                                                field:fields.join(',') 
                                        } 
                                }; 
                                this.listLoading = true; 
                                this.$http.get(this.url.list,para).then((res) => { 
                                        this.total = res.data.total; 
                                        var datas=res.data.rows; 
                                        for (var i = 0; i < datas.length; i++) { 
                                                var data = datas[i]; 
                                        } 
                                        this.bugReports = datas; 
                                        this.listLoading = false; 
                                }); 
                        }, 
                        //删除 
                        handleDel: function (index, row) { 
                                this.$confirm('确认删除该记录吗?', '提示', { 
                                        type: 'warning' 
                                }).then(() => { 
                                        this.listLoading = true; 
                                        let para = { id: row.id }; 
                                        this.$http.post(this.url.del,para,{emulateJSON: true}).then((res) => { 
                                                this.listLoading = false; 
                                                this.$message({ 
                                                        message: '删除成功', 
                                                        type: 'success', 
                                                        duration:1500 
                                                }); 
                                                this.getBugReports(); 
                                        }); 
                                }).catch(() => { 
 
                                }); 
                        }, 
                        //显示编辑界面 
                        handleEdit: function (index, row) { 
                                this.formTitle='编辑'; 
                                this.formVisible = true; 
                                this.form = Object.assign({}, row); 
                                var attachfiles=[]; 
                                if(!!this.form.attachfiles){ 
                                        attachfiles=[{ 
                                                name:this.form.attachfiles.substring(this.form.attachfiles.lastIndexOf('\\')+1), 
                                                url:"img/server/"+this.form.attachfiles 
                                        }] 
                                } 
                                this.formFile={ 
                                        attachfiles:attachfiles, 
                                }; 
                        }, 
                        //显示新增界面 
                        handleAdd: function () { 
                                this.formTitle='新增'; 
                                this.formVisible = true; 
                                this.form = { 
                                        attachfiles:'', 
                                        sysCompanyCode:'', 
                                        sysOrgCode:'', 
                                        position:'', 
                                        contact:'', 
                                        bugStatus:'', 
                                }; 
                                this.formFile={ 
                                        attachfiles:[], 
                                }; 
                        }, 
                        //新增 
                        formSubmit: function () { 
                                this.$refs.form.validate((valid) => { 
                                        if (valid) { 
                                                this.$confirm('确认提交吗?', '提示', {}).then(() => { 
                                                        this.formLoading = true; 
                                                        let para = Object.assign({}, this.form); 
                                                         
                                                         
                                                         
                                                        this.$http.post(!!para.id?this.url.edit:this.url.save,para,{emulateJSON: true}).then((res) => { 
                                                                this.formLoading = false; 
                                                                this.$message({ 
                                                                        message: '提交成功', 
                                                                        type: 'success', 
                                                                        duration:1500 
                                                                }); 
                                                                this.$refs['form'].resetFields(); 
                                                                this.formVisible = false; 
                                                                this.getBugReports(); 
                                                        }); 
                                                }); 
                                        } 
                                }); 
                        }, 
                        selsChange: function (sels) { 
                                this.sels = sels; 
                        }, 
                        //批量删除 
                        batchRemove: function () { 
                                var ids = this.sels.map(item => item.id).toString(); 
                                this.$confirm('确认删除选中记录吗?', '提示', { 
                                        type: 'warning' 
                                }).then(() => { 
                                        this.listLoading = true; 
                                        let para = { ids: ids }; 
                                        this.$http.post(this.url.batchDel,para,{emulateJSON: true}).then((res) => { 
                                                this.listLoading = false; 
                                                this.$message({ 
                                                        message: '删除成功', 
                                                        type: 'success', 
                                                        duration:1500 
                                                }); 
                                                this.getBugReports(); 
                                        }); 
                                }).catch(() => { 
                                }); 
                        }, 
                        //导出 
                        ExportXls: function() { 
                                        var ids = this.sels.map(item => item.id).toString(); 
                                        window.location.href = this.url.exportXls+ids; 
                        }, 
                        //导入 
                        ImportXls: function(){ 
                                openuploadwin('Excel导入',this.url.ImportXls, "bugReportList"); 
                        }, 
                        //初始化数据字典 
                        initDictsData:function(){ 
                        var _this = this; 
                }, 
                initDictByCode:function(code,_this,dictOptionsName){ 
                        if(!code || !_this[dictOptionsName] || _this[dictOptionsName].length>0) 
                                return; 
                        this.$http.get(this.url.queryDict,{params: {typeGroupName:code}}).then((res) => { 
                                var data=res.data; 
                                        if(data.success){ 
                                          _this[dictOptionsName] = data.obj; 
                                          _this[dictOptionsName].splice(0, 1);//去掉请选择 
                                        } 
                                }); 
                } 
                }, 
                mounted() { 
                        this.initDictsData(); 
                        this.getBugReports(); 
                } 
        }); 
         
        function utilFormatDate(date, pattern) { 
        pattern = pattern || "yyyy-MM-dd"; 
        return pattern.replace(/([yMdhsm])(\1*)/g, function ($0) { 
            switch ($0.charAt(0)) { 
                case 'y': return padding(date.getFullYear(), $0.length); 
                case 'M': return padding(date.getMonth() + 1, $0.length); 
                case 'd': return padding(date.getDate(), $0.length); 
                case 'w': return date.getDay() + 1; 
                case 'h': return padding(date.getHours(), $0.length); 
                case 'm': return padding(date.getMinutes(), $0.length); 
                case 's': return padding(date.getSeconds(), $0.length); 
            } 
        }); 
    }; 
        function padding(s, len) { 
            var len = len - (s + '').length; 
            for (var i = 0; i < len; i++) { s = '0' + s; } 
            return s; 
        }; 
        function reloadTable(){ 
                 
        } 
</script> 
</html> 
 
 
 
 
 
 |   
- 
 
 
 
 
 
 
 
 |