define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) { var Controller = { index: function () { // 初始化表格参数配置 Table.api.init({ extend: { index_url: 'oa/task/index' + location.search, add_url: 'oa/task/add', edit_url: 'oa/task/edit', del_url: 'oa/task/del', multi_url: 'oa/task/multi', import_url: 'oa/task/import', table: 'task', } }); var table = $("#table"); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, pk: 'id', sortName: 'id', fixedColumns: true, fixedRightNumber: 1, columns: [ [ {checkbox: true}, {field: 'id', title: __('Id')}, {field: 'exec.nickname', title: __('ExecAdmin.nickname'), operate: 'LIKE'}, {field: 'type', title: __('Type'), searchList: {"1":__('Type 1'),"2":__('Type 2'),"3":__('Type 3')}, formatter: Table.api.formatter.normal}, {field: 'title', title: __('Title'), operate: 'LIKE'}, {field: 'desc', title: __('Desc'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, {field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"2":__('Status 2'),"3":__('Status 3'),"4":__('Status 4'),"5":__('Status 5'),"6":__('Status 6')}, formatter: Table.api.formatter.status}, { field: 'buttons', width: "120px", title: __('附件'), table: table, events: Table.api.events.operate, buttons: [ { name: 'detail', text: __('查看附件'), title: __('查看附件'), classname: 'btn btn-xs btn-primary btn-preview', extend: function(row) { return 'data-type="' + row.filetype + '" data-url="' + row.url + '"'; } } ], formatter: Table.api.formatter.buttons }, {field: 'prove_desc', title: __('Prove_desc'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, {field: 'refuse_reason', title: __('Refuse_reason'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content}, {field: 'expire_start_time', title: __('Expire_start_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false}, {field: 'expire_end_time', title: __('Expire_end_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false}, {field: 'complete_time', title: __('Complete_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false}, {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate, buttons:[ { name: 'pass', text:"通过", title: '通过', classname: 'btn btn-xs btn-success btn-click', icon: 'fa fa-magic', click: function (e, row) { Layer.confirm("确定通过?", { }, function (index) { Fast.api.ajax({ url: "oa/task/review/ids/"+ row.id, data: {status:4} }, function (data) { Layer.closeAll(); $(".btn-refresh").trigger("click"); }); layer.close(index); }, function (index) { layer.close(index); }); return false; }, visible:function(row){ if (row.status != 3) { return false; } if (!Config.review) { return false; } return true; }, }, { name: 'abort', text:"驳回", title: '驳回', classname: 'btn btn-xs btn-info btn-click', icon: 'fa fa-magic', click: function (e, row) { Layer.prompt({ title: "填写驳回原因", success: function (layero) { $("input", layero).prop("placeholder", "填写驳回原因"); } }, function (value) { Fast.api.ajax({ url: "oa/task/review/ids/"+ row.id, data: {status:5, remark: value}, }, function (data, ret) { Layer.closeAll(); $(".btn-refresh").trigger("click"); //return false; }); }); return false; }, visible:function(row){ if (row.status != 3) { return false; } if (!Config.review) { return false; } return true; }, } ]} ] ] }); $(document).on('click', '.btn-preview', function (e) { e.preventDefault(); var fileType = $(this).data('type'); // 自动从 data-type 获取,比如 pdf, jpg, doc var url = $(this).data('url'); if (fileType === 'pdf') { Layer.open({ type: 2, title: '预览PDF文件', area: ['80%', '80%'], content: url }); } else if (['jpg', 'jpeg', 'png', 'gif', 'webp'].includes(fileType)) { Layer.photos({ photos: { "title": "图片预览", "data": [{"src": url}] }, anim: 5 }); } else if (['mp4', 'webm', 'ogg'].includes(fileType)) { Layer.open({ type: 1, title: '视频预览', area: ['800px', '500px'], content: `` }); } else { window.open(url, '_blank'); } }); // 为表格绑定事件 Table.api.bindevent(table); }, add: function () { Controller.api.bindevent(); }, edit: function () { Controller.api.bindevent(); }, api: { bindevent: function () { Form.api.bindevent($("form[role=form]")); } } }; return Controller; });