提交 db31af0c 编写于 作者: Skyeye云's avatar Skyeye云

我的打卡记录重构完成

上级 1b14d52a
var rowId = "";
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({
window: 'js/winui.window'
}).define(['window', 'table', 'jquery', 'winui', 'laydate', 'form'], function (exports) {
winui.renderColor();
var $ = layui.$,
table = layui.table,
form = layui.form,
laydate = layui.laydate;
// 考勤日期选取时间段表格
laydate.render({elem: '#checkDate', range: '~'});
// 获取当前登陆人的考勤班次
checkWorkUtil.getCurrentUserCheckWorkTimeList(function (json) {
$("#checkTime").html(getDataUseHandlebars($("#workTimeTemplate").html(), json));
form.render('select');
loadMyCheckAttend();
});
// 我的考勤统计列表
function loadMyCheckAttend(){
table.render({
id: 'messageTable',
elem: '#messageTable',
method: 'post',
url: flowableBasePath + 'checkwork003',
where: getTableParams(),
even: true,
page: true,
limits: getLimits(),
limit: getLimit(),
cols: [[
{ title: systemLanguage["com.skyeye.serialNumber"][languageType], type: 'numbers' },
{ field: 'userName', title: '姓名', align: 'left', width: 100},
{ field: 'checkDate', title: '考勤日期', align: 'center', width: 100},
{ field: 'title', title: '班次', align: 'left', width: 270, templet: function (d) {
if(isNull(d.timeId)){
return "";
}
if (!isNull(d.startTime) && !isNull(d.endTime)){
return '<a lay-event="details" class="notice-title-click">' + d.title + '[' + d.startTime + '~' + d.endTime + ']' + '</a>';
} else {
return '<a lay-event="details" class="notice-title-click">' + d.title + '</a>';
}
}},
{ title: '星期几', align: 'center', width: 80, templet: function (d) {
return getMyDay(new Date(d.checkDate));
}},
{ field: 'clockIn', title: '上班打卡时间', align: 'center', width: 120, templet: function (d) {
var time = d.clockIn;
if(d.clockInState == '0'){
time += " ( <span class='state-down'>系统填充</span> )";
} else if (d.clockInState == '1'){
time += " ( <span class='state-up'>正常</span> )";
} else if (d.clockInState == '2'){
if(d.appealInState == '1' && d.appealInType == '2'){
time += " ( <span class='state-down'>迟到</span> )" + "<span class='state-up'> ( 申诉成功 ) </span>";
} else {
time += " ( <span class='state-down'>迟到</span> )";
}
} else if (d.clockInState == '3'){
time += " ( <span class='state-down'>未打卡</span> )";
} else {
return "";
}
return time;
}},
{ field: 'clockOut', title: '下班打卡时间', align: 'center', width: 120, templet: function (d) {
var time = d.clockOut;
if(d.clockOutState == '0'){
time += " ( <span class='state-down'>系统填充</span> )";
} else if (d.clockOutState == '1'){
time += " ( <span class='state-up'>正常</span> )";
} else if (d.clockOutState == '2'){
if(d.appealOutState == '1' && d.appealOutType == '3'){
time += " ( <span class='state-down'>早退</span> )" + "<span class='state-up'> ( 申诉成功 ) </span>";
} else {
time += " ( <span class='state-down'>早退</span> )";
}
} else if (d.clockOutState == '3'){
time += " ( <span class='state-down'>未打卡</span> )";
} else {
return "";
}
return time;
}},
{ field: 'workHours', title: '工时', align: 'left', width: 80},
{ field: 'state', title: '考勤状态', align: 'left', width: 100, templet: function (d) {
if(d.state == '0'){
return "<span class='state-up'>早卡</span>";
} else if (d.state == '1'){
return "<span class='state-up'>全勤</span>";
} else if (d.state == '2'){
if(d.appealAllState == '1' && d.appealAllType == '1'){
return "<span class='state-down'>缺勤</span>" + "<span class='state-up'> ( 申诉成功 ) </span>";
} else {
return "<span class='state-down'>缺勤</span>";
}
} else if (d.state == '3'){
return "<span class='state-down'>工时不足</span>";
} else if (d.state == '4'){
if(d.appealAllState == '1' && d.appealAllType == '1'){
return "<span class='state-down'>缺早卡</span>" + "<span class='state-up'> ( 申诉成功 ) </span>";
} else {
return "<span class='state-down'>缺早卡</span>";
}
} else if (d.state == '5'){
if(d.appealAllState == '1' && d.appealAllType == '1'){
return "<span class='state-down'>缺晚卡</span>" + "<span class='state-up'> ( 申诉成功 ) </span>";
} else {
return "<span class='state-down'>缺晚卡</span>";
}
} else {
return "参数错误";
}
}}
]],
done: function(json) {
matchingLanguage();
}
});
table.on('tool(messageTable)', function (obj) {
var data = obj.data;
var layEvent = obj.event;
if (layEvent === 'details') { //详情
details(data);
}
});
}
// 详情
function details(data) {
rowId = data.timeId;
_openNewWindows({
url: "../../tpl/checkWorkTime/checkWorkTimeDetails.html",
title: systemLanguage["com.skyeye.detailsPageTitle"][languageType],
pageId: "checkWorkTimeDetails",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
}});
}
form.render();
// 搜索我的考勤统计
$("body").on("click", "#searchForm", function() {
table.reloadData("messageTable", {page: {curr: 1}, where: getTableParams()});
});
// 刷新我的考勤信息
$("body").on("click", "#reloadMyDkTable", function() {
loadTable();
});
function loadTable() {
table.reloadData("messageTable", {where: getTableParams()});
}
function getTableParams() {
var startTime = "", endTime = "";
if (!isNull($("#checkDate").val())) {
startTime = $("#checkDate").val().split('~')[0].trim();
endTime = $("#checkDate").val().split('~')[1].trim();
}
return {
firstTime: startTime,
lastTime: endTime,
state: $("#state").val(),
clockInState: $("#clockInState").val(),
clockOutState: $("#clockOutState").val(),
timeId: $("#checkTime").val()
};
}
exports('checkWorkMyAttendanceStatistics', {});
});
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
<style type="text/css">
.scheduleContent .ui-widget-content .fc-day-number{
color: black !important;
}
</style>
</head>
<body>
<div class="txtcenter" style="margin: 0 auto; padding-top: 10px;">
<form class="layui-form layui-form-pane" action="" autocomplete="off">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">班次:</label>
<div class="layui-input-inline">
<select lay-filter="checkTime" lay-search="" id="checkTime">
</select>
</div>
<label class="layui-form-label">时间</label>
<div class="layui-input-inline">
<input type="text" id="checkDate" name="checkDate" placeholder="" class="layui-input" />
</div>
<label class="layui-form-label">考勤状态</label>
<div class="layui-input-inline">
<select id="state">
<option value="">全部</option>
<option value="2">缺勤</option>
<option value="1">全勤</option>
<option value="3">工时不足</option>
</select>
</div>
<label class="layui-form-label">迟到</label>
<div class="layui-input-inline">
<select id="clockInState">
<option value="">全部</option>
<option value="2"></option>
<option value="1"></option>
<option value="3">未打卡</option>
</select>
</div>
<label class="layui-form-label">早退</label>
<div class="layui-input-inline">
<select id="clockOutState">
<option value="">全部</option>
<option value="2"></option>
<option value="1"></option>
<option value="3">未打卡</option>
</select>
</div>
<button type="reset" class="layui-btn layui-btn-primary list-form-search"><language showName="com.skyeye.reset"></language></button>
<button class="layui-btn list-form-search" type="button" id="searchForm"><language showName="com.skyeye.search2"></language></button>
</div>
</div>
</form>
</div>
<script type="text/html" id="workTimeTemplate">
<option value="">全部</option>
{{#each rows}}
<option value="{{timeId}}">{{title}}[{{startTime}}~{{endTime}}]</option>
{{/each}}
</script>
<div class="winui-toolbar">
<div class="winui-tool">
<button id="reloadMyDkTable" class="winui-toolbtn"><i class="fa fa-refresh" aria-hidden="true"></i><language showName="com.skyeye.refreshDataBtn"></language></button>
</div>
</div>
<div style="margin:auto 10px;">
<table id="messageTable" lay-filter="messageTable"></table>
</div>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/checkWorkMyAttendanceStatistics/'}).use('checkWorkMyAttendanceStatistics');
</script>
</body>
</html>
\ No newline at end of file
...@@ -11,14 +11,11 @@ var customerJS = { ...@@ -11,14 +11,11 @@ var customerJS = {
"mailUtil": "../../assets/lib/layui/customer/mailUtil.js", // 通讯录工具函数 "mailUtil": "../../assets/lib/layui/customer/mailUtil.js", // 通讯录工具函数
"systemDateUtil": "../../assets/lib/layui/customer/systemDateUtil.js", // 日期工具函数 "systemDateUtil": "../../assets/lib/layui/customer/systemDateUtil.js", // 日期工具函数
"calculationUtil": "../../assets/lib/layui/customer/calculationUtil.js", // 加减乘除工具函数 "calculationUtil": "../../assets/lib/layui/customer/calculationUtil.js", // 加减乘除工具函数
"skyeyeEnclosure": "../../assets/lib/layui/customer/skyeyeEnclosure.js", // 附件工具函数
"ajaxPostUtil": "../../assets/lib/layui/customer/ajaxPostUtil.js", // ajax工具函数 "ajaxPostUtil": "../../assets/lib/layui/customer/ajaxPostUtil.js", // ajax工具函数
"dsFormUtil": "../../assets/lib/layui/customer/skyeye/dsFormUtil.js", // 动态表单工具函数 "dsFormUtil": "../../assets/lib/layui/customer/skyeye/dsFormUtil.js", // 动态表单工具函数
"systemModelUtil": "../../assets/lib/layui/customer/systemModelUtil.js", // 系统编辑器模板工具函数 "systemModelUtil": "../../assets/lib/layui/customer/systemModelUtil.js", // 系统编辑器模板工具函数
"ueEditorUtil": "../../assets/lib/layui/customer/ueEditorUtil.js", // ueEditor编辑器工具函数 "ueEditorUtil": "../../assets/lib/layui/customer/ueEditorUtil.js", // ueEditor编辑器工具函数
"sysCustomerUtil": "../../assets/lib/layui/customer/sysCustomerUtil.js", // CRM相关的工具函数 "sysCustomerUtil": "../../assets/lib/layui/customer/sysCustomerUtil.js", // CRM相关的工具函数
"sysIfsUtil": "../../assets/lib/layui/customer/sysIfsUtil.js", // 财务相关的工具函数
"sysFileUtil": "../../assets/lib/layui/customer/sysFileUtil.js", // 系统文件相关处理工具
"publicKeyCode": "../../assets/lib/layui/customer/publicKeyCode.js", // 快捷键 "publicKeyCode": "../../assets/lib/layui/customer/publicKeyCode.js", // 快捷键
"sysSupplierUtil": "../../assets/lib/layui/customer/sysSupplierUtil.js", // 供应商相关工具 "sysSupplierUtil": "../../assets/lib/layui/customer/sysSupplierUtil.js", // 供应商相关工具
"sysMemberUtil": "../../assets/lib/layui/customer/sysMemberUtil.js", // 会员相关工具 "sysMemberUtil": "../../assets/lib/layui/customer/sysMemberUtil.js", // 会员相关工具
...@@ -30,7 +27,6 @@ var customerJS = { ...@@ -30,7 +27,6 @@ var customerJS = {
"threeUtil": "../../assets/lib/layui/customer/threeUtil.js", // 3D编辑器相关工具类 "threeUtil": "../../assets/lib/layui/customer/threeUtil.js", // 3D编辑器相关工具类
"reportModelTypeUtil": "../../assets/lib/layui/customer/reportModelTypeUtil.js", // 模型分类工具类 "reportModelTypeUtil": "../../assets/lib/layui/customer/reportModelTypeUtil.js", // 模型分类工具类
"schoolUtil": "../../assets/lib/layui/customer/skyeye/schoolUtil.js", // 学校模块工具类 "schoolUtil": "../../assets/lib/layui/customer/skyeye/schoolUtil.js", // 学校模块工具类
"arrayUtil": "../../assets/lib/layui/customer/arrayUtil.js", // 集合工具类
"initTableChooseUtil": "../../assets/lib/layui/customer/tableUtil/initTableChooseUtil.js", // 加载表格选择的表格插件 "initTableChooseUtil": "../../assets/lib/layui/customer/tableUtil/initTableChooseUtil.js", // 加载表格选择的表格插件
"sysDictDataUtil": "../../assets/lib/layui/customer/skyeye/sysDictDataUtil.js", // 数据字典插件 "sysDictDataUtil": "../../assets/lib/layui/customer/skyeye/sysDictDataUtil.js", // 数据字典插件
"initTableSearchUtil": "../../assets/lib/layui/customer/tableUtil/initTableSearchUtil.js", // 表格高级查询插件 "initTableSearchUtil": "../../assets/lib/layui/customer/tableUtil/initTableSearchUtil.js", // 表格高级查询插件
......
// 集合工具类函数
var arrayUtil = {
/**
* 移除集合中指定name的元素
*
* @param list 集合
* @param name 指定name
*/
removeArrayPointName: function (list, name) {
return arrayUtil.removeArrayPointKey(list, 'name', name);
},
/**
* 移除集合中指定key的元素
*
* @param list 集合
* @param key 指定key
* @param value 指定的值
*/
removeArrayPointKey: function (list, key, value) {
var inArray = -1;
$.each(list, function(i, item) {
if(value === item[key]) {
inArray = i;
return false;
}
});
if(inArray != -1) {
list.splice(inArray, 1);
}
return [].concat(list);
}
}
\ No newline at end of file
// 附件插件
var skyeyeEnclosure = {
enclosureListKey: 'skyeyeJsonKey',
enclosureBtnTemplate: '<button type="button" class="layui-btn layui-btn-primary layui-btn-xs" id="{{btnId}}">附件上传</button>',
/**
* 初始化附件插件,多个使用逗号隔开,只支持id
*
* @param ids 需要初始化的附件盒子的id
* @param callback 回调函数
*/
init: function (ids, callback) {
var idsArray = ids.split(',');
$.each(idsArray, function (i, id) {
// 按钮id
var btnId = id + "Btn";
// 初始化数据为[]
$("#" + id).attr(skyeyeEnclosure.enclosureListKey, JSON.stringify([]));
// 加载dom对象
skyeyeEnclosure.loadEnclosureHTML(id, btnId, 1);
// 添加[附件上传]按钮的监听事件
skyeyeEnclosure.initClick(id, btnId, callback);
});
},
/**
* 初始化附件插件,多个使用逗号隔开,只支持id
*
* @param param {需要初始化的附件盒子的id: 默认数据}
* @param callback 回调函数
*/
initTypeISData: function (param, callback) {
$.each(param, function (boxId, data) {
// 按钮id
var btnId = boxId + "Btn";
var dataList = skyeyeEnclosure.getDataList(data);
// 初始化数据
$("#" + boxId).attr(skyeyeEnclosure.enclosureListKey, JSON.stringify(dataList));
// 加载dom对象
skyeyeEnclosure.loadEnclosureHTML(boxId, btnId, 1);
// 添加[附件上传]按钮的监听事件
skyeyeEnclosure.initClick(boxId, btnId, callback);
});
},
getDataList: function (data) {
var dataList = [];
if (!isNull(data)) {
if (!isNull(data.enclosureInfoList)) {
dataList = [].concat(data.enclosureInfoList);
} else {
dataList = [].concat(data);
}
}
return dataList;
},
/**
* 初始化点击事件
*
* @param id 盒子id
* @param btnId 按钮id
* @param callback 回调函数
*/
initClick: function (id, btnId, callback){
$("body").on("click", "#" + btnId, function() {
_openNewWindows({
url: "../../tpl/sysEnclosure/enclosureBusinessChoose.html?boxId=" + id,
title: "上传附件",
pageId: "enclosureBusinessChoose",
area: ['70vw', '70vh'],
callBack: function (refreshCode) {
// 重新加载dom对象
skyeyeEnclosure.loadEnclosureHTML(id, btnId, 1);
if(typeof(callback) == "function") {
callback(skyeyeEnclosure.getJSONEnclosureListByBoxId(id));
}
}});
});
},
/**
* 附件详情展示
*
* @param param
*/
showDetails: function (param) {
$.each(param, function (boxId, data) {
// 按钮id
var btnId = boxId + "Btn";
var dataList = skyeyeEnclosure.getDataList(data);
// 初始化数据
$("#" + boxId).attr(skyeyeEnclosure.enclosureListKey, JSON.stringify(dataList));
// 加载dom对象
skyeyeEnclosure.loadEnclosureHTML(boxId, btnId, 2);
});
},
/**
* 加载附件列表
*
* @param boxId 盒子id
* @param btnId 按钮id
* @param type 1.允许出现[附件上传]按钮 2.不允许出现[附件上传]按钮
*/
loadEnclosureHTML: function (boxId, btnId, type){
var enclosureList = skyeyeEnclosure.getJSONEnclosureListByBoxId(boxId);
var str = "";
$.each(enclosureList, function(i, item) {
if(type == 1){
str += '<br><a rowid="' + item.id + '" class="enclosureItem" rowpath="' + item.fileAddress + '" href="javascript:;" style="color:blue;">' + item.name + '</a>';
} else {
str += '<a rowid="' + item.id + '" class="enclosureItem" rowpath="' + item.fileAddress + '" href="javascript:;" style="color:blue;">' + item.name + '</a><br>';
}
});
var btnHtml = "";
if(type == 1){
btnHtml += getDataUseHandlebars(skyeyeEnclosure.enclosureBtnTemplate, {btnId: btnId});
}
$("#" + boxId).html(btnHtml + str);
// 加载点击下载事件
skyeyeEnclosure.initDownloadEvent();
},
/**
* 加载点击下载事件
*/
initDownloadEvent: function () {
$("body").on("click", ".enclosureItem", function() {
download(fileBasePath + $(this).attr("rowpath"), $(this).html());
});
},
/**
* 获取指定id的附件
*
* @param id 盒子id
*/
getJSONEnclosureListByBoxId: function (id) {
return [].concat(JSON.parse($("#" + id).attr(skyeyeEnclosure.enclosureListKey)));
},
/**
* 获取指定id的附件id,逗号隔开
*
* @param id 盒子id
*/
getEnclosureIdsByBoxId: function (id){
var enclosureList = skyeyeEnclosure.getJSONEnclosureListByBoxId(id);
var enclosureInfo = "";
$.each(enclosureList, function (i, item) {
enclosureInfo += item.id + ',';
})
return enclosureInfo;
}
};
\ No newline at end of file
...@@ -201,4 +201,380 @@ var proUtil = { ...@@ -201,4 +201,380 @@ var proUtil = {
}, async: false}); }, async: false});
}, },
}; };
\ No newline at end of file
// 财务模块工具类
var sysIfsUtil = {
/**
* 会计科目选择页面
*
* @param callback 回调函数
*/
chooseAccountSubjectMation: {}, // 已经选择的会计科目信息
openSysAccountSubjectChoosePage: function (callback) {
_openNewWindows({
url: "../../tpl/ifsAccountSubject/ifsAccountSubjectListChoose.html",
title: "会计科目选择",
pageId: "ifsAccountSubjectListChoose",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
if (typeof (callback) == "function") {
callback(sysIfsUtil.chooseAccountSubjectMation);
}
}
});
},
/**
* 凭证选择页面
*
* @param callback 回调函数
*/
chooseVoucherMation: {}, // 已经选择的凭证信息
openIfsVoucherChoosePage: function (callback) {
_openNewWindows({
url: "../../tpl/ifsVoucher/ifsVoucherListChoose.html",
title: "凭证选择",
pageId: "ifsVoucherListChoose",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
if (typeof (callback) == "function") {
callback(sysIfsUtil.chooseVoucherMation);
}
}
});
},
/**
* 账套选择页面
*
* @param callback 回调函数
*/
ifsSetOfBooksMation: {},
openIfsSetOfBooksListChoosePage: function (callback) {
_openNewWindows({
url: "../../tpl/ifsSetOfBooks/ifsSetOfBooksListChoose.html",
title: "账套选择",
pageId: "ifsSetOfBooksListChoose",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
if (typeof (callback) == "function") {
callback(sysIfsUtil.ifsSetOfBooksMation);
}
}
});
}
}
// 系统文件相关处理工具
var sysFileUtil = {
/**
* 获取文件路径后缀
*
* @param url 文件路径
*/
getFileExt: function (url) {
return (/[.]/.exec(url)) ? /[^.]+$/.exec(url.toLowerCase()) : '';
},
/**
* 下载
* @param {String} url 目标文件地址
* @param {String} filename 想要保存的文件名称
*/
download: function (url, filename) {
sysFileUtil.getBlob(url, function (blob) {
sysFileUtil.saveAs(blob, filename);
});
},
/**
* 下载图片
*
* @param path
* @param imgName
*/
downloadImage: function (path, imgName) {
var _OBJECT_URL;
var request = new XMLHttpRequest();
request.addEventListener('readystatechange', function (e) {
if (request.readyState == 4) {
_OBJECT_URL = URL.createObjectURL(request.response);
var $a = $("<a></a>").attr("href", _OBJECT_URL).attr("download", imgName);
$a[0].click();
}
});
request.responseType = 'blob';
request.open('get', path);
request.send();
},
/**
* 获取 blob
* @param {String} url 目标文件地址
* @return {cb}
*/
getBlob: function (url, cb) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function () {
if (xhr.status === 200) {
cb(xhr.response);
}
};
xhr.send();
},
/**
* 根据文件路径转换成File对象
*
* @param url 文件路径
* @param callback 回调函数
*/
getFileByUrl: function (url, callback) {
sysFileUtil.getBlob(url, function (blob) {
const files = new File(
[blob],
sysFileUtil.getFileNameByUrl(url)
);
callback(files);
});
},
/**
* 根据文件路径获取文件名
*
* @param url 文件路径
* @returns {*}
*/
getFileNameByUrl: function (url) {
// 通过\分隔字符串,成字符串数组
var arr = url.split('\\');
// 取最后一个,就是文件全名,含后缀
var fileName = arr[arr.length - 1];
return fileName;
},
/**
* 保存
* @param {Blob} blob
* @param {String} filename 想要保存的文件名称
*/
saveAs: function (blob, filename) {
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename);
} else {
var link = document.createElement('a');
var body = document.querySelector('body');
link.href = window.URL.createObjectURL(blob);
link.download = filename;
// fix Firefox
link.style.display = 'none';
body.appendChild(link);
link.click();
body.removeChild(link);
window.URL.revokeObjectURL(link.href);
}
;
}
}
// 附件插件
var skyeyeEnclosure = {
enclosureListKey: 'skyeyeJsonKey',
enclosureBtnTemplate: '<button type="button" class="layui-btn layui-btn-primary layui-btn-xs" id="{{btnId}}">附件上传</button>',
/**
* 初始化附件插件,多个使用逗号隔开,只支持id
*
* @param ids 需要初始化的附件盒子的id
* @param callback 回调函数
*/
init: function (ids, callback) {
var idsArray = ids.split(',');
$.each(idsArray, function (i, id) {
// 按钮id
var btnId = id + "Btn";
// 初始化数据为[]
$("#" + id).attr(skyeyeEnclosure.enclosureListKey, JSON.stringify([]));
// 加载dom对象
skyeyeEnclosure.loadEnclosureHTML(id, btnId, 1);
// 添加[附件上传]按钮的监听事件
skyeyeEnclosure.initClick(id, btnId, callback);
});
},
/**
* 初始化附件插件,多个使用逗号隔开,只支持id
*
* @param param {需要初始化的附件盒子的id: 默认数据}
* @param callback 回调函数
*/
initTypeISData: function (param, callback) {
$.each(param, function (boxId, data) {
// 按钮id
var btnId = boxId + "Btn";
var dataList = skyeyeEnclosure.getDataList(data);
// 初始化数据
$("#" + boxId).attr(skyeyeEnclosure.enclosureListKey, JSON.stringify(dataList));
// 加载dom对象
skyeyeEnclosure.loadEnclosureHTML(boxId, btnId, 1);
// 添加[附件上传]按钮的监听事件
skyeyeEnclosure.initClick(boxId, btnId, callback);
});
},
getDataList: function (data) {
var dataList = [];
if (!isNull(data)) {
if (!isNull(data.enclosureInfoList)) {
dataList = [].concat(data.enclosureInfoList);
} else {
dataList = [].concat(data);
}
}
return dataList;
},
/**
* 初始化点击事件
*
* @param id 盒子id
* @param btnId 按钮id
* @param callback 回调函数
*/
initClick: function (id, btnId, callback){
$("body").on("click", "#" + btnId, function() {
_openNewWindows({
url: "../../tpl/sysEnclosure/enclosureBusinessChoose.html?boxId=" + id,
title: "上传附件",
pageId: "enclosureBusinessChoose",
area: ['70vw', '70vh'],
callBack: function (refreshCode) {
// 重新加载dom对象
skyeyeEnclosure.loadEnclosureHTML(id, btnId, 1);
if(typeof(callback) == "function") {
callback(skyeyeEnclosure.getJSONEnclosureListByBoxId(id));
}
}});
});
},
/**
* 附件详情展示
*
* @param param
*/
showDetails: function (param) {
$.each(param, function (boxId, data) {
// 按钮id
var btnId = boxId + "Btn";
var dataList = skyeyeEnclosure.getDataList(data);
// 初始化数据
$("#" + boxId).attr(skyeyeEnclosure.enclosureListKey, JSON.stringify(dataList));
// 加载dom对象
skyeyeEnclosure.loadEnclosureHTML(boxId, btnId, 2);
});
},
/**
* 加载附件列表
*
* @param boxId 盒子id
* @param btnId 按钮id
* @param type 1.允许出现[附件上传]按钮 2.不允许出现[附件上传]按钮
*/
loadEnclosureHTML: function (boxId, btnId, type){
var enclosureList = skyeyeEnclosure.getJSONEnclosureListByBoxId(boxId);
var str = "";
$.each(enclosureList, function(i, item) {
if(type == 1){
str += '<br><a rowid="' + item.id + '" class="enclosureItem" rowpath="' + item.fileAddress + '" href="javascript:;" style="color:blue;">' + item.name + '</a>';
} else {
str += '<a rowid="' + item.id + '" class="enclosureItem" rowpath="' + item.fileAddress + '" href="javascript:;" style="color:blue;">' + item.name + '</a><br>';
}
});
var btnHtml = "";
if(type == 1){
btnHtml += getDataUseHandlebars(skyeyeEnclosure.enclosureBtnTemplate, {btnId: btnId});
}
$("#" + boxId).html(btnHtml + str);
// 加载点击下载事件
skyeyeEnclosure.initDownloadEvent();
},
/**
* 加载点击下载事件
*/
initDownloadEvent: function () {
$("body").on("click", ".enclosureItem", function() {
download(fileBasePath + $(this).attr("rowpath"), $(this).html());
});
},
/**
* 获取指定id的附件
*
* @param id 盒子id
*/
getJSONEnclosureListByBoxId: function (id) {
return [].concat(JSON.parse($("#" + id).attr(skyeyeEnclosure.enclosureListKey)));
},
/**
* 获取指定id的附件id,逗号隔开
*
* @param id 盒子id
*/
getEnclosureIdsByBoxId: function (id){
var enclosureList = skyeyeEnclosure.getJSONEnclosureListByBoxId(id);
var enclosureInfo = "";
$.each(enclosureList, function (i, item) {
enclosureInfo += item.id + ',';
})
return enclosureInfo;
}
};
// 集合工具类函数
var arrayUtil = {
/**
* 移除集合中指定name的元素
*
* @param list 集合
* @param name 指定name
*/
removeArrayPointName: function (list, name) {
return arrayUtil.removeArrayPointKey(list, 'name', name);
},
/**
* 移除集合中指定key的元素
*
* @param list 集合
* @param key 指定key
* @param value 指定的值
*/
removeArrayPointKey: function (list, key, value) {
var inArray = -1;
$.each(list, function(i, item) {
if(value === item[key]) {
inArray = i;
return false;
}
});
if(inArray != -1) {
list.splice(inArray, 1);
}
return [].concat(list);
}
}
\ No newline at end of file
// 系统文件相关处理工具
var sysFileUtil = {
/**
* 获取文件路径后缀
*
* @param url 文件路径
*/
getFileExt: function (url) {
return (/[.]/.exec(url)) ? /[^.]+$/.exec(url.toLowerCase()) : '';
},
/**
* 下载
* @param {String} url 目标文件地址
* @param {String} filename 想要保存的文件名称
*/
download: function (url, filename) {
sysFileUtil.getBlob(url, function (blob) {
sysFileUtil.saveAs(blob, filename);
});
},
/**
* 下载图片
*
* @param path
* @param imgName
*/
downloadImage: function (path, imgName) {
var _OBJECT_URL;
var request = new XMLHttpRequest();
request.addEventListener('readystatechange', function (e) {
if (request.readyState == 4) {
_OBJECT_URL = URL.createObjectURL(request.response);
var $a = $("<a></a>").attr("href", _OBJECT_URL).attr("download", imgName);
$a[0].click();
}
});
request.responseType = 'blob';
request.open('get', path);
request.send();
},
/**
* 获取 blob
* @param {String} url 目标文件地址
* @return {cb}
*/
getBlob: function (url, cb) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function () {
if (xhr.status === 200) {
cb(xhr.response);
}
};
xhr.send();
},
/**
* 根据文件路径转换成File对象
*
* @param url 文件路径
* @param callback 回调函数
*/
getFileByUrl: function (url, callback) {
sysFileUtil.getBlob(url, function (blob) {
const files = new File(
[blob],
sysFileUtil.getFileNameByUrl(url)
);
callback(files);
});
},
/**
* 根据文件路径获取文件名
*
* @param url 文件路径
* @returns {*}
*/
getFileNameByUrl: function (url) {
// 通过\分隔字符串,成字符串数组
var arr = url.split('\\');
// 取最后一个,就是文件全名,含后缀
var fileName = arr[arr.length - 1];
return fileName;
},
/**
* 保存
* @param {Blob} blob
* @param {String} filename 想要保存的文件名称
*/
saveAs: function (blob, filename) {
if (window.navigator.msSaveOrOpenBlob) {
navigator.msSaveBlob(blob, filename);
} else {
var link = document.createElement('a');
var body = document.querySelector('body');
link.href = window.URL.createObjectURL(blob);
link.download = filename;
// fix Firefox
link.style.display = 'none';
body.appendChild(link);
link.click();
body.removeChild(link);
window.URL.revokeObjectURL(link.href);
}
;
}
}
\ No newline at end of file
// 财务模块工具类
var sysIfsUtil = {
/**
* 会计科目选择页面
*
* @param callback 回调函数
*/
chooseAccountSubjectMation: {}, // 已经选择的会计科目信息
openSysAccountSubjectChoosePage: function (callback) {
_openNewWindows({
url: "../../tpl/ifsAccountSubject/ifsAccountSubjectListChoose.html",
title: "会计科目选择",
pageId: "ifsAccountSubjectListChoose",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
if (typeof (callback) == "function") {
callback(sysIfsUtil.chooseAccountSubjectMation);
}
}
});
},
/**
* 凭证选择页面
*
* @param callback 回调函数
*/
chooseVoucherMation: {}, // 已经选择的凭证信息
openIfsVoucherChoosePage: function (callback) {
_openNewWindows({
url: "../../tpl/ifsVoucher/ifsVoucherListChoose.html",
title: "凭证选择",
pageId: "ifsVoucherListChoose",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
if (typeof (callback) == "function") {
callback(sysIfsUtil.chooseVoucherMation);
}
}
});
},
/**
* 账套选择页面
*
* @param callback 回调函数
*/
ifsSetOfBooksMation: {},
openIfsSetOfBooksListChoosePage: function (callback) {
_openNewWindows({
url: "../../tpl/ifsSetOfBooks/ifsSetOfBooksListChoose.html",
title: "账套选择",
pageId: "ifsSetOfBooksListChoose",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
if (typeof (callback) == "function") {
callback(sysIfsUtil.ifsSetOfBooksMation);
}
}
});
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册