Authored by 王涛

Merge branch 'master-mj-joke' into 'master-mj'

fix:工作日志附件预览及下载功能优化,禅道bug#1587,1589

fix:工作日志附件预览及下载功能优化,禅道bug#1587,1589

See merge request !1110
... ... @@ -16,6 +16,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect
exports('workReportAdd', function (data) {
// var accessToken = session.getToken()['access_token']
var accessToken = common.getMjToken();
var tokenKey = common.getMjTokenKey();
var userSelect = {}
var currentDate = {}
var uploadInst = {}
... ... @@ -351,9 +352,10 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect
function initUploadPlus() {
var param = {"access_token": accessToken}
var fileName = []
uploadInst = upload.render({
elem: '#attachment', //绑定元素
url: common.domainName + '/api-web/workreport/upload?accessToken='+accessToken,
url: common.domainName + `/api-web/workreport/upload?${tokenKey}=${accessToken}`,
data: param,
multiple: true,
auto: false, //选择文件后不自动上传
... ... @@ -388,8 +390,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect
//初始化用户下拉列表框
function initUserSelect() {
$.ajax({
url: domainName + '/mj/user/page?username=&nickname=&enabled=&perPage=10000&page=1&accessToken=' + common.getMjToken(),
// url: domainName + '/api-user/users/getAll?access_token=' + accessToken,
url: domainName + `/mj/user/page?username=&nickname=&enabled=&perPage=10000&page=1&${tokenKey}=${accessToken}`,
success: function (res) {
userSelect = xmSelect.render({
el: '.reportUser',
... ... @@ -520,7 +521,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect
var id = $(this).data('id')
var suffix = $(this).data('suffix')
if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型
var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?access_token=` + accessToken
var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?${tokenKey}=${accessToken}`;
layer.open({
type: 1,
content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`,
... ... @@ -558,20 +559,18 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect
layer.confirm('附件删除后将无法恢复,您确定要删除吗?', {
btn: ['确定', '取消'] //按钮
}, function () {
$.ajax({
url: domainName + `/api-web/workreport/deleteAttachment/${id}/${attachId}?access_token=` + accessToken,
type: "get",
}).done(function (res) {
layer.msg('删除成功', {
offset: '15px'
, icon: 1
, time: 1000
}, function () {
$("#tags_span_" + attachId).remove();
});
}).error(function (error) {
console.log(error);
});
admin.req({
url: domainName + `/api-web/workreport/deleteAttachment/${id}/${attachId}`,
done: function (res) {
layer.msg('删除成功', {
offset: '15px'
, icon: 1
, time: 1000
}, function () {
$("#tags_span_" + attachId).remove();
});
}
})
});
});
}
... ...
... ... @@ -11,7 +11,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function
//对外暴露的接口
exports("workReportList", function (d) {
var accessToken = session.getToken()['access_token']
var accessToken = common.getMjToken();
var tokenKey = common.getMjTokenKey();
if (d.type == 'attachment') {
$('#attachmentTable').show()
$('#reportUserTable').hide()
... ... @@ -121,7 +122,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function
var suffix = $(this).data('suffix')
var filepath = $(this).data('path')
if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型
var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?access_token=` + accessToken
var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?${tokenKey}=${accessToken}`;
layer.open({
type: 1,
content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`,
... ... @@ -129,15 +130,44 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function
area: ['60%', '90%']
})
} else {
var loadIndex = layer.load(1, {shade: [0.3], content: ''});
let name = Base64.encode(filepath, true);
admin.req({
url: domainName + `/api-web/openoffice/convertPdfMJ?pathBase64=${name}`,
type: 'get'
}).done(function (res) {
layer.close(loadIndex);
if (res && res.success) {
let win = window.parent;
if (win) {
window.parent.postMessage({
type: "previewFile",
message: {
params: {
url: res.str
}
}
}, '*')
}
} else {
layer.confirm("文档不支持预览,是否下载!", function () {
const url = domainName + `/api-web/openoffice/download/${id}?${tokenKey}=${accessToken}`;
window.open(url)
});
}
}).error(function (error) {
layer.close(loadIndex);
console.log(error)
})
//附件为文档类型
common.fileviewer(filepath);
// common.fileviewer(filepath);
}
})
$('.attachment-download-btn').on('click', function () {
var id = $(this).data('id')
var suffix = $(this).data('suffix')
var url = domainName + `/api-web/openoffice/download/${id}?access_token=` + accessToken
var url = domainName + `/api-web/openoffice/download/${id}?${tokenKey}=${accessToken}`;
window.open(url)
})
}
... ...
... ... @@ -330,7 +330,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat
url: domainName + '/mj/user/page?username=&nickname=&enabled=&perPage=10000&page=1&accessToken=' + common.getMjToken(),
success: function (response) {
var options = "<option value=''>=选择汇报人=</option>";
$.each(response, function (i, v) {
$.each(response.data.rows, function (i, v) {
options += "<option value='" + v.username + "'>" + v.nickname + "</option>"
});
$('#slt-workreport-user').html(options);
... ...
/**
* Minified by jsDelivr using Terser v5.15.1.
* Original file: /npm/js-base64@3.7.5/base64.js
*
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
*/
!function(t,n){var r,e;"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(r=t.Base64,(e=n()).noConflict=function(){return t.Base64=r,e},t.Meteor&&(Base64=e),t.Base64=e)}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:this,(function(){"use strict";var t,n="3.7.5",r="function"==typeof atob,e="function"==typeof btoa,o="function"==typeof Buffer,u="function"==typeof TextDecoder?new TextDecoder:void 0,i="function"==typeof TextEncoder?new TextEncoder:void 0,f=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),c=(t={},f.forEach((function(n,r){return t[n]=r})),t),a=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,d=String.fromCharCode.bind(String),s="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):function(t){return new Uint8Array(Array.prototype.slice.call(t,0))},l=function(t){return t.replace(/=/g,"").replace(/[+\/]/g,(function(t){return"+"==t?"-":"_"}))},h=function(t){return t.replace(/[^A-Za-z0-9\+\/]/g,"")},p=function(t){for(var n,r,e,o,u="",i=t.length%3,c=0;c<t.length;){if((r=t.charCodeAt(c++))>255||(e=t.charCodeAt(c++))>255||(o=t.charCodeAt(c++))>255)throw new TypeError("invalid character found");u+=f[(n=r<<16|e<<8|o)>>18&63]+f[n>>12&63]+f[n>>6&63]+f[63&n]}return i?u.slice(0,i-3)+"===".substring(i):u},y=e?function(t){return btoa(t)}:o?function(t){return Buffer.from(t,"binary").toString("base64")}:p,A=o?function(t){return Buffer.from(t).toString("base64")}:function(t){for(var n=[],r=0,e=t.length;r<e;r+=4096)n.push(d.apply(null,t.subarray(r,r+4096)));return y(n.join(""))},b=function(t,n){return void 0===n&&(n=!1),n?l(A(t)):A(t)},g=function(t){if(t.length<2)return(n=t.charCodeAt(0))<128?t:n<2048?d(192|n>>>6)+d(128|63&n):d(224|n>>>12&15)+d(128|n>>>6&63)+d(128|63&n);var n=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320);return d(240|n>>>18&7)+d(128|n>>>12&63)+d(128|n>>>6&63)+d(128|63&n)},B=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,x=function(t){return t.replace(B,g)},C=o?function(t){return Buffer.from(t,"utf8").toString("base64")}:i?function(t){return A(i.encode(t))}:function(t){return y(x(t))},m=function(t,n){return void 0===n&&(n=!1),n?l(C(t)):C(t)},v=function(t){return m(t,!0)},U=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,F=function(t){switch(t.length){case 4:var n=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return d(55296+(n>>>10))+d(56320+(1023&n));case 3:return d((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return d((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},w=function(t){return t.replace(U,F)},S=function(t){if(t=t.replace(/\s+/g,""),!a.test(t))throw new TypeError("malformed base64.");t+="==".slice(2-(3&t.length));for(var n,r,e,o="",u=0;u<t.length;)n=c[t.charAt(u++)]<<18|c[t.charAt(u++)]<<12|(r=c[t.charAt(u++)])<<6|(e=c[t.charAt(u++)]),o+=64===r?d(n>>16&255):64===e?d(n>>16&255,n>>8&255):d(n>>16&255,n>>8&255,255&n);return o},E=r?function(t){return atob(h(t))}:o?function(t){return Buffer.from(t,"base64").toString("binary")}:S,D=o?function(t){return s(Buffer.from(t,"base64"))}:function(t){return s(E(t).split("").map((function(t){return t.charCodeAt(0)})))},R=function(t){return D(T(t))},z=o?function(t){return Buffer.from(t,"base64").toString("utf8")}:u?function(t){return u.decode(D(t))}:function(t){return w(E(t))},T=function(t){return h(t.replace(/[-_]/g,(function(t){return"-"==t?"+":"/"})))},Z=function(t){return z(T(t))},j=function(t){return{value:t,enumerable:!1,writable:!0,configurable:!0}},I=function(){var t=function(t,n){return Object.defineProperty(String.prototype,t,j(n))};t("fromBase64",(function(){return Z(this)})),t("toBase64",(function(t){return m(this,t)})),t("toBase64URI",(function(){return m(this,!0)})),t("toBase64URL",(function(){return m(this,!0)})),t("toUint8Array",(function(){return R(this)}))},O=function(){var t=function(t,n){return Object.defineProperty(Uint8Array.prototype,t,j(n))};t("toBase64",(function(t){return b(this,t)})),t("toBase64URI",(function(){return b(this,!0)})),t("toBase64URL",(function(){return b(this,!0)}))},P={version:n,VERSION:"3.7.5",atob:E,atobPolyfill:S,btoa:y,btoaPolyfill:p,fromBase64:Z,toBase64:m,encode:m,encodeURI:v,encodeURL:v,utob:x,btou:w,decode:Z,isValid:function(t){if("string"!=typeof t)return!1;var n=t.replace(/\s+/g,"").replace(/={0,2}$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(n)||!/[^\s0-9a-zA-Z\-_]/.test(n)},fromUint8Array:b,toUint8Array:R,extendString:I,extendUint8Array:O,extendBuiltins:function(){I(),O()},Base64:{}};return Object.keys(P).forEach((function(t){return P.Base64[t]=P[t]})),P}));
//# sourceMappingURL=/sm/555281732ed54ee1693a772f485329378d8ea5052ffa4370e9c2e9947eb42d22.map
\ No newline at end of file
... ...
... ... @@ -24,6 +24,7 @@
<body>
<div id="LAY_app"></div>
<script src="/monitor-web/start/layui/layui.js"></script>
<script src="/monitor-web/src/lib/extend/js/base64.min.js"></script>
<script>
layui.use(['jquery', 'layer','config'], function () {
var $ = layui.jquery;
... ...