管理办法wps在线文件更新

This commit is contained in:
yujh_java 2025-07-21 09:04:49 +08:00 committed by zhaolei
parent 06668a41f7
commit 5a0a56f776

View File

@ -9,6 +9,7 @@
<link type='text/css' rel='stylesheet' href='../apps/com.actionsoft.apps.coe.pal/lib/designer/themes/default/diagraming/designer.css' />
<link type='text/css' rel='stylesheet' href='../apps/com.actionsoft.apps.coe.pal/lib/designer/themes/default/diagraming/ui.css' />
<link type='text/css' rel='stylesheet' href='../apps/com.actionsoft.apps.coe.pal/lib/designer/themes/default/diagraming/designer.colorpicker.css' />
<link type='text/css' rel='stylesheet' href='../apps/com.actionsoft.apps.coe.pal/lib/designer/themes/default/diagraming/designer.versionCompare.css' />
<link rel="stylesheet" href="../commons/css/awsui.css">
<style>
.button.blue {
@ -177,6 +178,100 @@
<script type='text/javascript' src='../commons/js/jquery/scripts/jquery.js'></script>
<script type="text/javascript" src="../commons/js/jquery/scripts/jquery-migrate.js"></script>
<script type='text/javascript' charset='UTF-8' src='../apps/com.actionsoft.apps.coe.pal/lib/designer/scripts/util.js'></script>
<!-- i18n -->
<script>
var 快速查询 = "<I18N#快速查询>";
var 已保存成功 = "<I18N#已保存成功>";
var 保存成功 = "<I18N#保存成功>";
var 页面中有未保存的内容请先保存 = "<I18N#页面中有未保存的内容请先保存>";
var 保存失败 = "<I18N#保存失败>";
var 列的第 = "<I18N#列的第>";
var 行不允许为空 = "<I18N#行不允许为空>";
var 文件属性 = "<I18N#文件属性>";
var 不允许为空 = "<I18N#不允许为空>";
var 返回 = "<I18N#返回>";
var 版本号 = "<I18N#版本号>";
var 吸色 = "<I18N#吸色>";
var 退出 = "<I18N#退出>";
var 当前颜色 = "<I18N#当前颜色>";
$(document).ready(function(){
$("#queryInput").attr("placeholder", 快速查询);
$("#back-vue-page-span").attr("awsui-qtip", 返回);
$("#toolbar_designer_version_no").attr("awsui-qtip", 版本号);
$("#color_draw").attr("awsui-qtip", 吸色 + "Esc" + 退出);
$("#color_show_now").attr("awsui-qtip", 当前颜色);
});
// designer.ui.debug.js i18n
var 颜色渐变 = "<I18N#颜色渐变>";
var 起始版本 = "<I18N#起始版本>";
var 错误个数 = "<I18N#错误个数>";
var 校验通过 = "<I18N#校验通过>";
var 文件过大不允许超过 = "<I18N#文件过大, 不允许超过>";
var 上传成功 = "<I18N#上传成功>";
var 正在加载预览 = "<I18N#正在加载预览>";
var 此地址下无法加载图片 = "<I18N#此地址下无法加载图片>";
var 请检查图片地址是否正确 = "<I18N#请检查图片地址是否正确>";
var 确保图片地址处于公开状态 = "<I18N#确保图片地址处于公开状态>";
var 正在加载图片 = "<I18N#正在加载图片>";
var 显示更多结果 = "<I18N#显示更多结果>";
var 正在应用图片请稍候 = "<I18N#正在应用图片请稍候>";
var 无法使用此图片请选择其他图片 = "<I18N#无法使用此图片请选择其他图片>";
var 页面中有未保存的内容请先保存 = "<I18N#页面中有未保存的内容请先保存>";
var 请稍后 = "<I18N#请稍后>";
var 请您先保存一个版本 = "<I18N#请您先保存一个版本>";
var 预览 = "<I18N#预览>";
var 图片创建完成 = "<I18N#图片创建完成>";
var 是否打开图片预览 = "<I18N#是否打开图片预览>";
var 导出完成 = "<I18N#导出完成>";
var 确定 = "<I18N#确定>";
var 关闭 = "<I18N#关闭>";
var 节点编号排序 = "<I18N#节点编号排序>";
var 提示 = "<I18N#提示>";
var 拖动排序确定后请保存设计器 = "<I18N#拖动排序确定后请保存设计器>";
var 无名称 = "<I18N#无名称>";
var 不支持编号排序 = "<I18N#不支持编号排序>";
var 画布没有形状或者形状没有编号属性 = "<I18N#画布没有形状或者形状没有编号属性>";
var 名称 = "<I18N#名称>";
var 节点号 = "<I18N#节点号>";
var 新发布 = "<I18N#新发布>";
var 变更 = "<I18N#变更>";
var 停用 = "<I18N#停用>";
var 暂无发布历史 = "<I18N#暂无发布历史>";
var 文件链接 = "<I18N#文件链接>";
var 自定义链接 = "<I18N#自定义链接>";
var 暂无链接 = "<I18N#暂无链接>";
var 处修改 = "<I18N#处修改>";
var 暂停 = "<I18N#暂停>";
var 从此版本播放 = "<I18N#从此版本播放>";
var 浏览器限制无法进入演示视图 = "<I18N#浏览器限制无法进入演示视图>";
var 无法进入全屏视图您可以按F11进入 = "<I18N#无法进入全屏视图您可以按(F11)进入>";
var 秒后自动保存 = "<I18N#秒后自动保存>";
var 修改 = "<I18N#修改>"
var 由 = "<I18N#>"
var 创建 = "<I18N#创建>"
var 新建版本 = "<I18N#新建版本>"
var 版本对比 = "<I18N#版本对比>"
var 切换该版本 = "<I18N#切换该版本>"
var 设计中 = "<I18N#设计中>"
var 已发布 = "<I18N#已发布>"
var 已停用 = "<I18N#已停用>"
var 审核中 = "<I18N#审核中>"
var 设计 = "<I18N#设计>"
var 是否继续切换 = "<I18N#是否继续切换>"
var 历史版本 = "<I18N#历史版本>"
var 提示 = "<I18N#提示>"
var 确定将 = "<I18N#确定将>"
var 版本为模板创建新版本文件 = "<I18N#版本为模板创建新版本文件>"
var 历史版本为模板创建新版本文件 = "<I18N#历史版本为模板创建新版本文件>"
var 请选择版本号 = "<I18N#请选择版本号>"
var 文件修改未保存 = "<I18N#文件修改未保存>"
var 文件已修改未保存 = "<I18N#文件已修改未保存>"
var 附件 = "<I18N#附件>"
var 形状属性 = "<I18N#形状属性>"
var 链接 = "<I18N#链接>"
</script>
<!--扩展设计器的样式-->
<link type='text/css' rel='stylesheet' href='../apps/com.actionsoft.apps.coe.pal/lib/designer/extend/css/designer.extend.css' />
<!--针对设计器进行颜色扩展,以及文字扩充-->
@ -191,6 +286,7 @@
<script src="../apps/com.actionsoft.apps.coe.pal/lib/designer/extend/js/driver.min.js"></script>
<script type="text/javascript">
//公共信息
var wsId = "<#wsId>";
var browserId = "<#browserId>";// 浏览器唯一标识
var appId = "<#appId>";
var sessionId = "<#sid>";
@ -220,6 +316,13 @@
//三员管理
var isHighSecurity = "<#isHighSecurity>";
// BPMN所需参数
var BPMN_TYPE_START_EVENT = "<#BPMN_TYPE_START_EVENT>";
var AWS_ELEMENT_START_EVENT_MESSAGE_EVENT_DEFINITION = "<#AWS_ELEMENT_START_EVENT_MESSAGE_EVENT_DEFINITION>";
@ -346,6 +449,7 @@
var pid = "<#parentChartId>";
var teamId = "<#teamId>";
var jssdk;
var mrStatus = "0";
</script>
<!--工具js-->
<script type='text/javascript' charset='UTF-8' src='../apps/com.actionsoft.apps.coe.pal/lib/designer/extend/js/util/map.js'></script>
@ -496,6 +600,11 @@
$("#switchViews").css('display','none');
}
// 只有epc和泳道图显示切换按钮
if (methodId !== 'process.epc' && methodId !== 'process.flowchart') {
$("#switchMRViews").css('display', 'none');
}
isGetHidden();
if (!installBatch) {// 未安装批处理应用,删除功能入口
@ -547,6 +656,149 @@
});
// 页面停留时间统计
class PageStayTimeTracker {
constructor() {
this.startTime = null;
this.lastReportTime = null;
this.reportInterval = 60000; // 60秒报告一次
this.isPageVisible = true; // 默认页面是可见的
this.visibilityBound = false; // 是否已绑定可见性事件
}
// 延迟绑定可见性事件
bindVisibilityEvents() {
if (this.visibilityBound) return;
document.addEventListener('visibilitychange', this.handleVisibilityChange.bind(this));
this.visibilityBound = true;
// 初始检查页面可见状态
this.isPageVisible = !document.hidden;
if (!this.isPageVisible) {
this.lastReportTime = new Date(); // 更新最后记录时间
}
}
// 开始跟踪
startTracking() {
if (this.isActive) return;
this.startTime = new Date();
this.lastReportTime = this.startTime;
this.isActive = true;
// 设置定时器
this.intervalId = setInterval(() => {
if (this.isPageVisible) {
this.reportStayTime();
}
}, this.reportInterval);
// 页面卸载前发送剩余时间
window.addEventListener('beforeunload', this.finalReport.bind(this));
// 延迟绑定可见性事件(在用户首次交互后)
const bindOnInteraction = () => {
this.bindVisibilityEvents();
// 移除所有交互监听器
['click', 'scroll', 'keydown', 'mousemove', 'touchstart'].forEach(event => {
window.removeEventListener(event, bindOnInteraction);
});
};
// 添加多种交互监听
['click', 'scroll', 'keydown', 'mousemove', 'touchstart'].forEach(event => {
window.addEventListener(event, bindOnInteraction, { once: true });
});
}
// 报告停留时间
reportStayTime() {
const now = new Date();
const elapsed = now - this.lastReportTime;
this.totalStayTime += elapsed;
this.lastReportTime = now;
this.sendStayTimeToServer(elapsed, true);
}
// 最终报告
finalReport() {
if (!this.isActive) return;
if (this.isPageVisible) {
const now = new Date();
const elapsed = now - this.lastReportTime;
}
this.sendStayTimeToServer(elapsed, false);
this.cleanUp();
}
// 处理页面可见性变化
handleVisibilityChange() {
var now = new Date();
if (document.hidden) {
if (this.isPageVisible) {
this.isPageVisible = false;
// 页面不可见,暂停计时
const now = new Date();
const elapsed = now - this.lastReportTime;
this.totalStayTime += elapsed;
this.sendStayTimeToServer(elapsed, false);
clearInterval(this.intervalId);
}
} else {
// 页面恢复可见
if (!this.isPageVisible) {
this.lastReportTime = now; // 重置最后记录时间
}
this.isPageVisible = true;
}
}
// 发送数据到服务器
sendStayTimeToServer(elapsedMs,isActive) {
$.ajax({
type : "POST",
url : "./w?sid=" + encodeURIComponent($('#sid').val()) + "&cmd=com.awspaas.user.apps.browsing_data.service.insertReadingLog",
data : "userId="+userId+"&userName="+userName+"&ruuid="+ruuid+"&fileName="+fileName+"&startTime="+new Date(this.startTime).getTime()+"&currentTime="+new Date().getTime()+"&browserId="+browserId+"&isActive="+isActive,
success : function(msg) {
if (msg.result == "error") {
$.simpleAlert("新增失败", "error");
}
}
});
}
// 清理资源
cleanUp() {
clearInterval(this.intervalId);
document.removeEventListener('visibilitychange', this.handleVisibilityChange);
window.removeEventListener('beforeunload', this.finalReport);
this.isActive = false;
}
}
// 使用示例
const tracker = new PageStayTimeTracker();
tracker.startTracking();
//初始化封面模板
function initCoverTpl(){
@ -602,11 +854,14 @@
function initContentHtml(obj){
var checkHtml = '';
obj.forEach(function(model, index) {
checkHtml += '<p>';
checkHtml += '<input class="awsui-checkbox" name="tplRadio" id="'+model.id+'" showText="'+model.text+'" type="radio"/>';
checkHtml += '<label class="awsui-checkbox-label">'+model.text+'</label>';
});
if (obj!=undefined) {
obj.forEach(function(model, index) {
checkHtml += '<p>';
checkHtml += '<input class="awsui-checkbox" name="tplRadio" id="'+model.id+'" showText="'+model.text+'" type="radio"/>';
checkHtml += '<label class="awsui-checkbox-label">'+model.text+'</label>';
});
}
return checkHtml;
}
@ -929,6 +1184,33 @@
reloadFile();
}
}
async function switchWpsMRDisplay(flag) {
if (flag) {//显示wps页面隐藏其余页面
$("#wpsPage").css('display', 'block');
$("#wpsPage").height($('#designer_viewport').height());
$("#shape_panel").css('display', 'none');
$("#shape_panel_more_shape").css('display', 'none');
$("#designer_layout").css('display', 'none');
//打开wps在线编辑页面
$("#dock").css("right", 0);
openWpsMRUrl();
} else {
//先判断是否要更新管理办法的生效状态
updateMrStatus();
$("#wpsPage").css('display', 'none');
$("#shape_panel").css('display', 'block');
$("#shape_panel_more_shape").css('display', 'block');
$("#designer_layout").css('display', 'block');
var layoutW = $("#designer_layout").width();
var viewW = $("#layout_block").width();
// 总宽度减去可视区域的宽度,得到滚动条宽度
var navRight = layoutW - viewW;
$("#dock").css("right", navRight);
//先触发保存
await saveWps();
updateShapePanel();
}
}
//切换视图页面
function switchViews(){
if ($("#wpsPage").is(":visible")) {
@ -937,6 +1219,41 @@
switchWpsDisplay(true);
}
}
//切换管理要求视图
function switchMRViews() {
if ($("#wpsPage").is(":visible")) {
switchWpsMRDisplay(false);
} else {
switchWpsMRDisplay(true);
}
}
function updateMrStatus(){//更新管理办法的生效状态
//先判断是否要更新管理办法的生效状态
if(mrStatus == 0){//生效
//先弹出二次确认框
var options = {
title : "当前管理办法未生效,是否更新管理办法的生效状态?",
content:"确认生效",
onConfirm: function(){
$.ajax({
url: "./jd?sid=" + sid + "&cmd=com.awspaas.user.apps.yiliwps.updateMrStatus&palId=" + ruuid,
type: 'GET',
success: function (data) {
mrStatus = data.data.mrStatus;
}
});
},
onCancel : function(){
$.simpleAlert("您选择了取消");
}
};
$.confirm(options);
}
}
//保存wps内容
async function saveWps() {
try {
@ -967,6 +1284,28 @@
}
});
}
function openWpsMRUrl() {
$.ajax({
url: "./jd?sid=" + sid + "&cmd=com.awspaas.user.apps.yiliwps.previewUrl_mr&palId=" + ruuid,
type: 'GET',
success: function (data) {
mrStatus = data.data.mrStatus;
if (data.data.content.code === 200) {
//换一种打开方式
console.log('引入后可以开始使用 JSSDK 了~');
jssdk = WebOfficeSDK.config({
url: data.data.content.data.link, // 该地址需要对接方服务端提供,形如 https://wwo.wps.cn/office/p/xxx
mount: document.querySelector('#wpsPage')
})
jssdk.on('fileOpen', (data) => {
console.log('打开文档成功: ', data)
})
}
}
});
}
//渲染形状配置信息
/*function painterShapeConfig(dataArray, shapeId, key) {
for (var i = 0; i < dataArray.length; i++) {
@ -1010,9 +1349,12 @@
}
}*/
</script>
<!-- 版本对比 -->
<script type='text/javascript' async charset='UTF-8' src='../apps/com.actionsoft.apps.coe.pal/lib/designer/scripts/diagraming/versionCompare/version.methods.debug.js'></script>
</head>
<body style="overflow:hidden;" onload="updateShapePanel();">
<div class="compare-main" id="versionCompareBox" style="display:none;"></div>
<canvas id="support_canvas" style="display: none;"></canvas>
<div id="designer_header">
@ -1021,9 +1363,12 @@
<span class="diagram_title"><#fileName></span>
<span id="securityLevelName" style="display: none;"><#securityLevelName></span>
<div id="toolbar_wfversion_info" class="toolbar_info">
<div id="toolbar_designer_version_no" class="info version" awsui-qtip="版本管理">
<!-- <div id="toolbar_designer_version_no" class="info version" awsui-qtip="版本管理">
<#versionNum>
</div>
</div> -->
<span id="toolbar_designer_version_no" class="info version" style="cursor: pointer" awsui-qtip="版本号" onclick="versionListFun.openVersionList()">
<#versionNum>
</span>
<div id="toolbar_wfversion_info_status" style="display:none;" class="versioninfo version0" awsui-qtip="<#state>"><#state></div>
</div>
</div>
@ -1223,6 +1568,9 @@
<div id="switchViews" awsui-qtip='切换视图' class="toolbar_button">
<div class="ico switchViews" onclick="switchViews()"></div>
</div>
<div id="switchMRViews" awsui-qtip='切换管理要求视图' class="toolbar_button">
<div class="ico switchViews" onclick="switchMRViews()"></div>
</div>
<!-- <div id="bar_import" awsui-qtip='导入' class="toolbar_button" style="<#importStyle>">
<div class="ico ico_import"></div>
</div> -->