123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- $(function () {
- autoFlashHeight();
- $('#add-tender-btn').click(function () {
- const addTenders = [];
- $('#tenders tr').each(function () {
- if ($(this).find('input').is(':checked') && $(this).find('select').val().length > 0) {
- addTenders.push({
- tid: $(this).find('input').val(),
- sorder: $(this).find('select').val(),
- })
- }
- });
- if (addTenders.length === 0) {
- toastr.warning('请选择添加标段及期数');
- return false;
- }
- postData(window.location.pathname + '/update', {postType: 'add-tender', postData: { tenders: addTenders }}, function (result) {
- window.location.reload();
- });
- });
- $('body').on('click', '#tender-list .del-tender-btn', function () {
- const ftid = $(this).data('id');
- deleteAfterHint(function () {
- postData(window.location.pathname + '/update', {postType: 'del-tender', postData: { node: ftid }}, function (result) {
- window.location.reload();
- })
- }, '确认删除该标段并移除所有附件?');
- });
- $('#lock-transfer-btn').click(function () {
- postData(`/sp/${spid}/financial/transfer/update`, {postType: 'lock-transfer', postData: { node: trid, lock: 1 }}, function (result) {
- window.location.reload();
- });
- });
- $('#unlock-transfer-btn').click(function () {
- postData(`/sp/${spid}/financial/transfer/update`, {postType: 'lock-transfer', postData: { node: trid, lock: 0 }}, function (result) {
- window.location.reload();
- });
- });
- $('#tender-list input[type="text"]').change(function () {
- const ftid = $(this).data('ftid');
- if (!ftid) {
- toastr.error('获取资金划拨标段信息失败');
- return;
- }
- const ftInfo = _.find(tenderList, { id: parseInt(ftid) });
- if (!ftInfo) {
- toastr.error('获取资金划拨信息失败');
- return;
- }
- const value = $(this).val() || 0;
- // 判断只能输入数字,支持负数和小数
- if (!/^-?\d+(\.\d+)?$/.test(value)) {
- toastr.error('请输入正确的金额');
- $(this).val(ftInfo.hb_tp);
- return;
- }
- postData(window.location.pathname + '/update', {postType: 'update-hb_tp', postData: { node: ftid, hb_tp: parseFloat(value) }}, function (result) {
- // window.location.reload();
- ftInfo.hb_tp = parseFloat(value);
- });
- });
- $('body').on('click', '.open-tender-files', function () {
- const ftid = $(this).attr('data-ftid');
- if (!ftid) {
- toastr.error('获取资金划拨标段信息失败');
- return;
- }
- const ftInfo = _.find(tenderList, { id: parseInt(ftid) });
- if (!ftInfo) {
- toastr.error('获取资金划拨信息失败');
- return;
- }
- if (ftInfo.uid === user_id || financialPermission.transfer_file) {
- $('#tender-file .upload-permission').show();
- } else {
- $('#tender-file .upload-permission').hide();
- }
- $('#tender-file').modal('show');
- $('#tender-file input[name="ftid"]').val(ftid);
- openFinancialTransferTenderFiles(ftInfo);
- });
- // 上传附件
- $('#tender-file input[type="file"]').change(function () {
- const files = Array.from(this.files);
- const valiData = files.map(v => {
- const ext = v.name.substring(v.name.lastIndexOf('.') + 1)
- return {
- size: v.size,
- ext
- }
- });
- const ftid = $('#tender-file input[name="ftid"]').val();
- const ftInfo = _.find(tenderList, { id: parseInt(ftid) });
- if (!ftInfo) {
- toastr.warning('不存在该资金划拨标段');
- $('#tender-file input[type="file"]').val('');
- return;
- }
- if (validateFiles(valiData)) {
- if (files.length) {
- const formData = new FormData()
- files.forEach(file => {
- formData.append('name', file.name)
- formData.append('size', file.size)
- formData.append('file', file)
- })
- postDataWithFile(`/sp/${spid}/financial/transfer/${trid}/tender/${ftInfo.id}/file/upload`, formData, function (result) {
- ftInfo.files = result;
- openFinancialTransferTenderFiles(ftInfo);
- $('#tender-list tr[data-id="' + ftInfo.id + '"] .file-num').text(ftInfo.files.length ? ftInfo.files.length : '');
- });
- }
- }
- $('#tender-file input[type="file"]').val('');
- });
- $('body').on('click', '#tender-file .file-del', function () {
- const ftid = $('#tender-file input[name="ftid"]').val();
- const ftInfo = _.find(tenderList, { id: parseInt(ftid) });
- if (!ftInfo) {
- toastr.warning('不存在该资金划拨标段');
- return;
- }
- const fid = $(this).data('id');
- deleteAfterHint(function () {
- postData(`/sp/${spid}/financial/transfer/${trid}/tender/${ftInfo.id}/file/delete`, { id: fid }, function (result) {
- ftInfo.files = result;
- openFinancialTransferTenderFiles(ftInfo);
- $('#tender-list tr[data-id="' + ftInfo.id + '"] .file-num').text(ftInfo.files.length ? ftInfo.files.length : '');
- });
- }, '确认删除该文件?');
- });
- function openFinancialTransferTenderFiles(ftInfo, _this = '#tender-file table tbody') {
- const files = ftInfo.files;
- let filesHtml = '';
- const newFiles = files.map(file => {
- let showDel = false;
- if (file.uid === user_id) {
- showDel = true
- }
- return {...file, showDel}
- })
- newFiles.forEach((file, idx) => {
- filesHtml += `<tr class="text-center">
- <td>${idx + 1}</td><td class="text-left"><a href="${file.filepath}" target="_blank">${file.filename}</a></td><td>${file.username}</td><td>${moment(file.upload_time).format('YYYY-MM-DD HH:mm:ss')}</td>
- <td>
- <div class="btn-group-table">
- ${file.viewpath ? `<a href="${file.viewpath}" target="_blank" class="mr-1"><i class="fa fa-eye fa-fw"></i></a>` : ''}
- <a href="/sp/${spid}/financial/transfer/${trid}/tender/${ftInfo.id}/file/${file.id}/download" class="mr-1"><i class="fa fa-download fa-fw"></i></a>
- ${file.showDel ? `<a href="javascript: void(0);" class="text-danger file-del mr-1" data-id="${file.id}"><i class="fa fa-trash-o fa-fw text-danger"></i></a>` : ''}
- </div>
- </td>
- </tr>`;
- });
- $(_this).html(filesHtml);
- }
- $.subMenu({
- menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list',
- toMenu: '#to-menu', toMiniMenu: '#to-mini-menu',
- key: 'menu.1.0.0',
- miniHint: '#sub-mini-hint', hintKey: 'menu.hint.1.0.1',
- callback: function (info) {
- if (info.mini) {
- $('.panel-title').addClass('fluid');
- $('#sub-menu').removeClass('panel-sidebar');
- } else {
- $('.panel-title').removeClass('fluid');
- $('#sub-menu').addClass('panel-sidebar');
- }
- autoFlashHeight();
- }
- });
- })
- /**
- * 校验文件大小、格式
- * @param {Array} files 文件数组
- */
- function validateFiles(files) {
- if (files.length > 10) {
- toastr.error('至多同时上传10个文件');
- return false
- }
- return files.every(file => {
- if (file.size > 1024 * 1024 * 30) {
- toastr.error('文件大小限制为30MB');
- return false
- }
- if (whiteList.indexOf('.' + file.ext.toLowerCase()) === -1) {
- toastr.error('请上传正确的格式文件');
- return false
- }
- return true
- })
- }
|