From cf3b3fe3f9d46e28ac84f1aa61a3d9754aabf421 Mon Sep 17 00:00:00 2001
From: jiazx0107 <jiazx0107@163.com>
Date: 星期六, 17 一月 2026 00:05:13 +0800
Subject: [PATCH] 调整工单审批2
---
fzzy-igdss-web/src/main/resources/templates/work/flow-his.html | 168 +++--
fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java | 36 -
fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml | 242 ++++----
fzzy-igdss-web/src/main/resources/templates/work/flow-his-bak.html | 285 +++++++++
fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java | 21
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java | 49 +
fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder-bak.view.xml | 939 +++++++++++++++++++++++++++++++
fzzy-igdss-web/src/main/resources/application-dev.yml | 2
fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java | 19
fzzy-igdss-web/pom.xml | 3
fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java | 11
fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkOrderParam.java | 5
12 files changed, 1,542 insertions(+), 238 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkOrderParam.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkOrderParam.java
index a59a1ef..a159b43 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkOrderParam.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkOrderParam.java
@@ -14,6 +14,8 @@
@EqualsAndHashCode(callSuper=false)
public class WorkOrderParam {
+ public static final String SCOPE_SELF = "self";
+
private String companyId;
private String deptId;
@@ -25,4 +27,7 @@
private Date start;
private Date end;
+
+ //鑾峰彇鏁版嵁鑼冨洿-all锛宻elf
+ private String scope;
}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java
index 4f58eec..7a3edae 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/domain/WorkOrderProcess.java
@@ -2,13 +2,11 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
@@ -54,6 +52,7 @@
@TableField("action")
private String action;
+ @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
@Column(name = "create_time")
@TableField("create_time")
private Date createTime;
@@ -62,4 +61,8 @@
@TableField("remark")
private String remark;
+
+ @Transient
+ @TableField(exist = false)
+ private String nodeName;
}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
index 1261414..1cedead 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
@@ -12,6 +12,7 @@
import com.fzzy.work.domain.WorkOrderConf;
import com.fzzy.work.domain.WorkOrderProcess;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -168,10 +169,20 @@
*/
public BaseResp todoByProcess(WorkOrderProcess process) {
+ String action = process.getAction();
+ if (StringUtils.isEmpty(action)) {
+ return BaseResp.error("娌℃湁璇嗗埆鍒板鐞嗗姩浣滐紝璇烽噸鏂板皾璇�");
+ }
+
log.info("-----宸ュ崟澶勭悊-----{}", process);
//鑾峰彇宸ュ崟
WorkOrder work = orderService.selectById(process.getOrderId());
if (null == work) return BaseResp.error("褰撳墠宸ュ崟宸蹭笉瀛樺湪");
+
+ if (work.getStatus().equals(WorkStatus.STATUS_50.getCode())
+ || work.getStatus().equals(WorkStatus.STATUS_60.getCode())) {
+ return BaseResp.error("褰撳墠宸ュ崟宸插鐞嗭紝璇峰埛鏂伴〉闈㈤噸璇曪紒锛�");
+ }
String curNode = process.getNode();
//鑾峰彇澶勭悊浜�
@@ -183,8 +194,6 @@
WorkOrderConf conf = confService.selectById(work.getConfId());
if (null == conf) return BaseResp.error("褰撳墠宸ュ崟鏈厤缃祦绋�");
-
- String action = process.getAction();
//娣诲姞璁板綍
process.setId(ContextUtil.UUID());
process.setCreateTime(new Date());
@@ -202,8 +211,12 @@
process.setNode(node.getCode());
//缁撴潫鍒ゆ柇锛屽鏋滄槸缁撴潫鑺傜偣锛屽垯缁撴潫宸ュ崟
- if(WorkNode.NODE_END.getCode().equals(process.getNode())){
+ if (WorkNode.NODE_END.getCode().equals(process.getNode())) {
work.setStatus(WorkStatus.STATUS_50.getCode());
+
+ work.setAssigneeName(process.getAssigneeName());
+ work.setAssigneeId(process.getAssigneeId());
+
orderService.complete(work);
}
}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
index c8978c5..ba1ea5f 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
@@ -2,11 +2,13 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.constant.InoutConstant;
import com.fzzy.igds.mapper.InoutNoticeInMapper;
import com.fzzy.igds.mapper.InoutNoticeOutMapper;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.igds.utils.DateUtil;
+import com.fzzy.work.data.WorkNode;
import com.fzzy.work.data.WorkStatus;
import com.fzzy.work.data.WorkBizType;
import com.fzzy.work.data.WorkOrderParam;
@@ -54,18 +56,47 @@
workOrderMapper.insert(data);
}
- public void pageQuery(Page<WorkOrder> page, WorkOrderParam param) {
-
+ public void pageQueryByUserType(Page<WorkOrder> page, WorkOrderParam param) {
+ //鑾峰彇褰撳墠鐧诲綍浜�
+ SysUser user = ContextUtil.getLoginUser();
QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("company_id", user.getCompanyId());
- if (null == param) {
- param = new WorkOrderParam();
+ String scope = param.getScope();
+ if (StringUtils.isEmpty(scope)) scope = WorkOrderParam.SCOPE_SELF;
+
+ //鐩戠鐢ㄦ埛-鏌ョ湅鎵�鏈夊簱鍖哄拰寰呭姙
+ if (Constant.USER_TYPE_10.equals(user.getUserType())) {
+
+ if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
+ queryWrapper.eq("node", WorkNode.NODE2.getCode());
+ }
+ }
+
+ //搴撳尯鐢ㄦ埛锛屽鏋滄槸鍏徃鐢ㄦ埛鍙互鏌ョ湅鍏徃涓嬪睘鎵�鏈夊簱鍖猴紝濡傛灉涓哄綋鍓嶅簱鍖哄彧鏌ヨ褰撳墠搴撳尯
+ if (Constant.USER_TYPE_30.equals(user.getUserType())) {
+ if (ContextUtil.isDepotUser(user.getDeptId() + "")) {
+ queryWrapper.eq("dept_id", user.getDeptId() + "");
+ } else {
+ queryWrapper.likeRight("dept_id", user.getDeptId() + "");
+ }
+ if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
+ queryWrapper.eq("node", WorkNode.NODE1.getCode());
+ }
}
- if (null == param.getCompanyId()) param.setCompanyId(ContextUtil.getCompanyId());
- queryWrapper.eq("company_id", param.getCompanyId());
+ //閾惰鐢ㄦ埛锛屾牴鎹悎鍚屾煡璇㈤摱琛屼笅鎵�鏈夊簱鍖�
+ if (Constant.USER_TYPE_20.equals(user.getUserType())) {
+ //濡傛灉娌℃湁閰嶇疆閾惰锛岃缃竴涓笉瀛樺湪鐨勯摱琛屽彿
+ if (StringUtils.isBlank(user.getUserData())) user.setUserData("9");
+ queryWrapper.eq("bank_id", user.getUserData());
+
+ if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
+ queryWrapper.eq("node", WorkNode.NODE3.getCode());
+ }
+ }
queryWrapper.eq(null != param.getDeptId(), "dept_id", param.getDeptId());
queryWrapper.like(null != param.getName(), "title", param.getName());
@@ -131,8 +162,8 @@
}
public void complete(WorkOrder work) {
- //鏇存柊宸ュ崟鐘舵��
- workOrderMapper.updateStatus(work.getId(), work.getStatus());
+ //鏇存柊宸ュ崟
+ workOrderMapper.updateById(work);
//鏇存柊鍏ュ簱閫氱煡鍗曠姸鎬�
if (work.getBizType().equals(WorkBizType.TYPE_10.getCode())) {
@@ -144,4 +175,6 @@
noticeOutMapper.auditComplete(work.getBusinessId(), work.getStatus());
}
}
+
+
}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder-bak.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder-bak.view.xml
new file mode 100644
index 0000000..b01b72c
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder-bak.view.xml
@@ -0,0 +1,939 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ViewConfig>
+ <Arguments/>
+ <Context/>
+ <Model>
+ <DataType name="dtMain">
+ <Property name="creationType">com.fzzy.work.domain.WorkOrder</Property>
+ <PropertyDef name="id">
+ <Property></Property>
+ <Property name="label">宸ュ崟ID</Property>
+ </PropertyDef>
+ <PropertyDef name="title">
+ <Property></Property>
+ <Property name="label">宸ュ崟鍚嶇О</Property>
+ </PropertyDef>
+ <PropertyDef name="description">
+ <Property></Property>
+ <Property name="label">宸ュ崟鎻忚堪</Property>
+ </PropertyDef>
+ <PropertyDef name="bizType">
+ <Property></Property>
+ <Property name="label">宸ュ崟鍒嗙被</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("workOrderPR#triggerBizType").getResult()}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="status">
+ <Property></Property>
+ <Property name="label">宸ュ崟鐘舵��</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("workOrderPR#triggerStatus").getResult()}</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ <Property name="keyProperty">dictValue</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="assigneeId">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="assigneeName">
+ <Property></Property>
+ <Property name="label">褰撳墠澶勭悊浜�</Property>
+ </PropertyDef>
+ <PropertyDef name="receiveTime">
+ <Property name="dataType">DateTime</Property>
+ <Property name="label">褰撳墠鐜妭鎺ユ敹鏃堕棿</Property>
+ </PropertyDef>
+ <PropertyDef name="createTime">
+ <Property name="dataType">DateTime</Property>
+ <Property name="label">鍒涘缓鏃堕棿</Property>
+ </PropertyDef>
+ <PropertyDef name="createUserId">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="createUserName">
+ <Property></Property>
+ <Property name="label">鍒涘缓浜�</Property>
+ </PropertyDef>
+ <PropertyDef name="businessId">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="businessUrl">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="remark">
+ <Property></Property>
+ <Property name="label">澶囨敞璇存槑</Property>
+ </PropertyDef>
+ <PropertyDef name="companyId">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="deptId">
+ <Property></Property>
+ <Property name="label">鎵�灞炲簱鍖�</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("deptPR#getDeptByUserType").getResult()}</Property>
+ <Property name="keyProperty">id</Property>
+ <Property name="valueProperty">kqmc</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="node">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="createById">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="bankId">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="confId">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="createBy">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="updateBy">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="updateTime">
+ <Property name="dataType">Date</Property>
+ </PropertyDef>
+ </DataType>
+ <DataType name="dtParam">
+ <Property name="creationType">com.fzzy.work.data.WorkOrderParam</Property>
+ <PropertyDef name="companyId">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="deptId">
+ <Property></Property>
+ <Property name="label">鎵�灞炲簱鍖�</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("deptPR#getDeptByUserType").getResult()}</Property>
+ <Property name="keyProperty">id</Property>
+ <Property name="valueProperty">kqmc</Property>
+ </Property>
+ </PropertyDef>
+ <PropertyDef name="name">
+ <Property></Property>
+ <Property name="label">宸ュ崟鍚嶇О</Property>
+ </PropertyDef>
+ <PropertyDef name="status">
+ <Property></Property>
+ <Property name="label">宸ュ崟鐘舵��</Property>
+ </PropertyDef>
+ <PropertyDef name="start">
+ <Property name="dataType">Date</Property>
+ <Property name="label">寮�濮嬫椂闂�</Property>
+ </PropertyDef>
+ <PropertyDef name="end">
+ <Property name="dataType">Date</Property>
+ <Property name="label">鎴鏃堕棿</Property>
+ </PropertyDef>
+ </DataType>
+ <DataType name="dtWordProcess">
+ <Property name="creationType">com.fzzy.work.domain.WorkOrderProcess</Property>
+ <PropertyDef name="orderId">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="action">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="remark">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="id">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="assigneeId">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="assigneeName">
+ <Property></Property>
+ <Property name="label">澶勭悊浜�</Property>
+ </PropertyDef>
+ <PropertyDef name="node">
+ <Property></Property>
+ <Property name="label">褰撳墠鑺傜偣</Property>
+ </PropertyDef>
+ <PropertyDef name="createTime">
+ <Property name="dataType">Date</Property>
+ </PropertyDef>
+ </DataType>
+ </Model>
+ <View layout="padding:10">
+ <ClientEvent name="onReady">query= function(){
+ var param = view.get("#dsQuery.data");
+ var tabIndex = view.get("#tabMain.currentIndex");
+ if(0 == tabIndex){
+ view.get("#dsMain").set("parameter",param).flushAsync();
+ }else{
+ view.get("#dsMain2").set("parameter",param).flushAsync();
+ }
+}
+ 
+//瀹d紶鎿嶄綔
+renderCell1 = function(arg,self,index){
+ var data = arg.data;
+ var htm = "<a onClick='audit()' class='a-btn1'>鎸囨淳</a>&nbsp;|&nbsp;<a onClick='showDetail()' class='a-btn2'>璇︾粏</a>";
+ if(1 == index){
+ htm = "<a onClick='showDetail()' class='a-btn2'>璇︾粏</a>";
+ }
+ arg.dom.innerHTML = htm;
+};
+
+renderStatus = function(arg){
+ var val = arg.data.get("status");
+ var txt = arg.data.getText("status");
+ if(!val) return true;
+ var htm = "<span class='s1'>"+txt+"</span>";
+ if(val=="20"){//宸叉淳鍗�
+ htm = "<span class='s2'>"+txt+"</span>";
+ }
+ if(val=="30"){//澶勭悊涓�
+ htm = "<span class='s4'>"+txt+"</span>";
+ }
+ if(val=="40"){//宸茶В鍐�
+ htm = "<span class='s3'>"+txt+"</span>";
+ }
+ if(val=="50"){//宸插叧闂�
+ htm = "<span class='s3'>"+txt+"</span>";
+ }
+ if(val=="60"){//鎸傝捣
+ htm = "<span class='s3'>"+txt+"</span>";
+ }
+ arg.dom.innerHTML = htm;
+}
+
+//鐐瑰嚮瀹℃牳
+audit = function(){
+ 
+}
+//鐐瑰嚮璇︾粏
+showDetail = function(){
+ var tabIndex = view.get("#tabMain.currentIndex");
+ var cur = view.get("#dsMain.data:#");
+ var dialog = view.get("#dialogMain");
+ view.get('^btnTag').set('visible',true);
+ if(1 == tabIndex){
+ view.get('^btnTag').set('visible',false);
+ cur = view.get("#dsMain2.data:#");
+ }
+ dialog.show();
+ 
+ var orderId = cur.get("id");
+ //鍘嗗彶鏁版嵁
+ view.get('#iFrameFlowHis').set('path','/work/flow-his?orderId='+orderId);
+ //涓氬姟淇℃伅
+ if(cur.get("businessUrl")){
+ var url = cur.get("businessUrl")+"?businessId="+cur.get("businessId")+"&orderId="+orderId;
+ view.get("#iFrameBiz").set("path",url);
+ }else{
+ view.get("#iFrameBiz").set("path","/work/no-business?orderId="+orderId);
+ }
+}
+//鎵ц瀹℃壒
+todo = function(){
+ var cur = view.get("#dsMain.data:#");
+ var process = view.get("#dsProcess.data");
+ process.set("orderId", cur.get("id"));
+ process.set("node", cur.get("node"));
+ var remark = process.get('remark');
+ if(!remark){
+ $notify("璇峰~鍐欏鎵规剰瑙佲�︹��");
+ return;
+ }
+ view.get("#ajaxTodo").set('parameter',process).execute(function(result){
+ if('200' != result.code){
+ $alert(result.message);
+ }else{
+ $alert("鎵ц鎴愬姛锛�");
+ view.get('#dialogTodo').hide();
+ query();
+ }
+ });
+}
+cancelTodo = function(){
+ var process = view.get("#dsProcess.data");
+ process.set("action",null);
+ process.set('remark',null);
+ view.get('#dialogTodo').hide();
+}
+</ClientEvent>
+ <Property name="packages">font-awesome,css-common</Property>
+ <DataSet id="dsMain">
+ <ClientEvent name="onLoadData">$notify("鏁版嵁鍔犺浇瀹屾垚鈥︹��");</ClientEvent>
+ <Property name="dataType">[dtMain]</Property>
+ <Property name="dataProvider">workOrderPR#pageQueryByUserType</Property>
+ <Property name="pageSize">10</Property>
+ <Property name="loadMode">lazy</Property>
+ </DataSet>
+ <DataSet id="dsMain2">
+ <ClientEvent name="onLoadData">$notify("鏁版嵁鍔犺浇瀹屾垚鈥︹��");</ClientEvent>
+ <Property name="dataType">[dtMain]</Property>
+ <Property name="dataProvider">workOrderPR#pageQuery2</Property>
+ <Property name="pageSize">10</Property>
+ <Property name="loadMode">lazy</Property>
+ </DataSet>
+ <DataSet id="dsQuery">
+ <ClientEvent name="onReady">self.insert({});</ClientEvent>
+ <Property name="dataType">dtParam</Property>
+ </DataSet>
+ <DataSet id="dsProcess">
+ <ClientEvent name="onReady">self.insert();</ClientEvent>
+ <Property name="dataType">dtWordProcess</Property>
+ </DataSet>
+ <HtmlContainer layoutConstraint="top ">
+ <Property name="content"><style>
+.parent {
+ display: flex;
+ width: 100%;
+ background: #FFF;
+}
+.console-link-block {
+ font-size: 16px;
+ padding: 20px 20px;
+ border-radius: 4px;
+ background-color: #40D4B0;
+ color: #FFFFFF !important;
+ box-shadow: 0 2px 3px rgba(0, 0, 0, .05);
+ position: relative;
+ overflow: hidden;
+ display: block;
+}
+
+.console-link-block .console-link-block-num {
+ font-size: 40px;
+ margin-bottom: 5px;
+ opacity: .9;
+}
+
+.console-link-block .console-link-block-text {
+ opacity: .8;
+}
+.console-link-block .console-link-block-icon {
+ position: absolute;
+ top: 50%;
+ right: 20px;
+ width: 50px;
+ height: 50px;
+ font-size: 50px;
+ line-height: 50px;
+ margin-top: -25px;
+ color: #FFFFFF;
+ opacity: .8;
+}
+.console-link-block .console-link-block-band {
+ color: #fff;
+ width: 100px;
+ font-size: 12px;
+ padding: 2px 0 3px 0;
+ background-color: #E32A16;
+ line-height: inherit;
+ text-align: center;
+ position: absolute;
+ top: 8px;
+ right: -30px;
+ transform-origin: center;
+ transform: rotate(45deg) scale(.8);
+ opacity: .95;
+ z-index: 2;
+}
+.bg2{
+ background-color: #55A5EA;
+}
+.bg3{
+ background-color: #9DAFFF;
+}
+.bg4{
+ background-color: #F591A2;
+}
+.bg5{
+ background-color: #FEAA4F;
+}
+.child {
+ flex: 1;
+ padding: 10px;
+ box-sizing: border-box;
+}
+.child:last-child {
+ border-right: none;
+}
+.console-icon{
+ height:50px;
+ position:absolute;
+ right:20px;
+ opacity:.8;
+ top:50%;
+ margin-top:-25px;
+}
+ 
+</style>
+ 
+ <!-- 蹇嵎鏂瑰紡 -->
+ <div class="parent">
+ 
+ <div class="child">
+ <div class="console-link-block">
+ <div class="console-link-block-num">0</div>
+ <div class="console-link-block-text">浠婃棩宸ュ崟缁熻</div>
+ <img class="console-icon" src="/img/icon-wj.png">
+ </div>
+ </div>
+ 
+ <div class="child">
+ <div class="console-link-block bg2">
+ <div class="console-link-block-num">0</div>
+ <div class="console-link-block-text">浠婃棩寰呭畬鎴愬伐鍗�</div>
+ <img class="console-icon" src="/img/icon-wj2.png">
+ </div>
+ </div>
+ 
+ <div class="child">
+ <div class="console-link-block bg3">
+ <div class="console-link-block-num">0</div>
+ <div class="console-link-block-text">鎬诲伐鍗曠粺璁�</div>
+ <img class="console-icon" src="/img/icon-tj.png">
+ </div>
+ </div>
+ 
+ <div class="child">
+ <div class="console-link-block bg4">
+ <div class="console-link-block-num">0</div>
+ <div class="console-link-block-text">鎬绘湭瀹屾垚宸ュ崟</div>
+ <img class="console-icon" src="/img/icon-tj2.png">
+ </div>
+ </div>
+ 
+ </div></Property>
+ <Property name="style">
+ <Property name="background-color">#FFF</Property>
+ </Property>
+ </HtmlContainer>
+ <Container>
+ <Property name="className">c-param</Property>
+ <Property name="style">
+ <Property name="margin-top">10px</Property>
+ </Property>
+ <AutoForm>
+ <Property name="cols">*,*,*,*,90,90</Property>
+ <Property name="dataSet">dsQuery</Property>
+ <Property name="labelAlign">right</Property>
+ <Property name="labelWidth">100</Property>
+ <AutoFormElement>
+ <Property name="name">deptId</Property>
+ <Property name="property">deptId</Property>
+ <Property name="trigger">autoMappingDropDown2</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">name</Property>
+ <Property name="property">name</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">start</Property>
+ <Property name="property">start</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">end</Property>
+ <Property name="property">end</Property>
+ <Editor/>
+ </AutoFormElement>
+ <Button>
+ <ClientEvent name="onClick">query();</ClientEvent>
+ <Property name="caption">鎼滅储</Property>
+ <Property name="iconClass">fa fa-search</Property>
+ <Property name="exClassName">btn-q1</Property>
+ </Button>
+ <Button>
+ <ClientEvent name="onClick">view.get("#dsQuery").set("data",{});</ClientEvent>
+ <Property name="caption">閲嶇疆</Property>
+ <Property name="exClassName">btn-q2</Property>
+ <Property name="iconClass">fa fa-refresh</Property>
+ </Button>
+ </AutoForm>
+ </Container>
+ <Container>
+ <Property name="className">c-data</Property>
+ <TabControl id="tabMain">
+ <ControlTab>
+ <Property name="caption">鎴戠殑宸ュ崟</Property>
+ <Property name="iconClass">fa fa-th-large</Property>
+ <Property name="width">150</Property>
+ <Container>
+ <DataGrid layoutConstraint="padding:8">
+ <ClientEvent name="onDataRowClick">self.set("selection",arg.data);</ClientEvent>
+ <Property name="dataSet">dsMain</Property>
+ <Property name="readOnly">true</Property>
+ <Property name="selectionMode">singleRow</Property>
+ <Property name="readOnly">true</Property>
+ <Property name="fixedColumnCount">3</Property>
+ <RowSelectorColumn/>
+ <RowNumColumn>
+ <Property name="width">50</Property>
+ <Property name="caption">搴忓彿</Property>
+ </RowNumColumn>
+ <DataColumn>
+ <ClientEvent name="onRenderCell">renderCell1(arg,self,0);</ClientEvent>
+ <Property name="caption">鎿嶄綔</Property>
+ <Property name="width">80</Property>
+ <Property name="align">center</Property>
+ <Editor/>
+ </DataColumn>
+ <DataColumn name="id">
+ <Property name="property">id</Property>
+ <Property name="width">180</Property>
+ </DataColumn>
+ <DataColumn name="deptId">
+ <Property name="property">deptId</Property>
+ <Property name="width">250</Property>
+ </DataColumn>
+ <DataColumn name="title">
+ <Property name="property">title</Property>
+ <Property name="width">300</Property>
+ </DataColumn>
+ <DataColumn>
+ <ClientEvent name="onRenderCell">renderStatus(arg);</ClientEvent>
+ <Property name="property">status</Property>
+ <Property name="width">120</Property>
+ <Property name="align">center</Property>
+ <Property name="name">status</Property>
+ </DataColumn>
+ <DataColumn name="bizType">
+ <Property name="property">bizType</Property>
+ <Property name="width">120</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="assigneeName">
+ <Property name="property">assigneeName</Property>
+ <Property name="align">center</Property>
+ <Property name="width">150</Property>
+ </DataColumn>
+ <DataColumn name="receiveTime">
+ <Property name="property">receiveTime</Property>
+ <Property name="width">150</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="createUserName">
+ <Property name="property">createUserName</Property>
+ <Property name="align">center</Property>
+ <Property name="width">150</Property>
+ </DataColumn>
+ <DataColumn name="createTime">
+ <Property name="property">createTime</Property>
+ <Property name="align">center</Property>
+ <Property name="width">150</Property>
+ </DataColumn>
+ </DataGrid>
+ <ToolBar layoutConstraint="bottom">
+ <Fill/>
+ <DataPilot layoutConstraint="right">
+ <Property name="itemCodes">pageSize,pages</Property>
+ <Property name="dataSet">dsMain</Property>
+ </DataPilot>
+ </ToolBar>
+ </Container>
+ </ControlTab>
+ <ControlTab>
+ <Property name="caption">鍏ㄩ儴宸ュ崟</Property>
+ <Property name="iconClass">fa fa-history</Property>
+ <Property name="width">150</Property>
+ <Container>
+ <DataGrid layoutConstraint="padding:8">
+ <ClientEvent name="onDataRowClick">self.set("selection",arg.data);</ClientEvent>
+ <Property name="dataSet">dsMain2</Property>
+ <Property name="readOnly">true</Property>
+ <Property name="selectionMode">singleRow</Property>
+ <Property name="readOnly">true</Property>
+ <Property name="fixedColumnCount">3</Property>
+ <RowSelectorColumn/>
+ <RowNumColumn>
+ <Property name="width">50</Property>
+ <Property name="caption">搴忓彿</Property>
+ </RowNumColumn>
+ <DataColumn>
+ <ClientEvent name="onRenderCell">renderCell1(arg,self,1);</ClientEvent>
+ <Property name="caption">鎿嶄綔</Property>
+ <Property name="width">150</Property>
+ <Property name="align">center</Property>
+ <Editor/>
+ </DataColumn>
+ <DataColumn name="id">
+ <Property name="property">id</Property>
+ <Property name="width">180</Property>
+ </DataColumn>
+ <DataColumn name="deptId">
+ <Property name="property">deptId</Property>
+ <Property name="width">250</Property>
+ </DataColumn>
+ <DataColumn name="title">
+ <Property name="property">title</Property>
+ <Property name="width">300</Property>
+ </DataColumn>
+ <DataColumn>
+ <ClientEvent name="onRenderCell">renderStatus(arg);</ClientEvent>
+ <Property name="property">status</Property>
+ <Property name="width">120</Property>
+ <Property name="align">center</Property>
+ <Property name="name">status</Property>
+ </DataColumn>
+ <DataColumn name="bizType">
+ <Property name="property">bizType</Property>
+ <Property name="width">120</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="assigneeName">
+ <Property name="property">assigneeName</Property>
+ <Property name="align">center</Property>
+ <Property name="width">150</Property>
+ </DataColumn>
+ <DataColumn name="receiveTime">
+ <Property name="property">receiveTime</Property>
+ <Property name="width">150</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="createUserName">
+ <Property name="property">createUserName</Property>
+ <Property name="align">center</Property>
+ <Property name="width">150</Property>
+ </DataColumn>
+ <DataColumn name="createTime">
+ <Property name="property">createTime</Property>
+ <Property name="align">center</Property>
+ <Property name="width">150</Property>
+ </DataColumn>
+ </DataGrid>
+ <ToolBar layoutConstraint="bottom">
+ <Fill/>
+ <DataPilot layoutConstraint="right">
+ <Property name="itemCodes">pageSize,pages</Property>
+ <Property name="dataSet">dsMain2</Property>
+ </DataPilot>
+ </ToolBar>
+ </Container>
+ </ControlTab>
+ </TabControl>
+ </Container>
+ <Dialog id="dialogMain" layout="regionPadding:8">
+ <Property name="closeable">false</Property>
+ <Property name="caption">宸ュ崟璇︾粏</Property>
+ <Property name="iconClass">fa fa-tasks</Property>
+ <Property name="width">90%</Property>
+ <Property name="showCaptionBar">false</Property>
+ <Property name="style">
+ <Property name="background-color">#e6e6e6</Property>
+ </Property>
+ <Property name="height">95%</Property>
+ <Buttons/>
+ <Children>
+ <TabControl>
+ <ControlTab>
+ <Property name="caption">宸ュ崟淇℃伅</Property>
+ <Property name="iconClass">fa fa-edit</Property>
+ <Property name="width">120</Property>
+ <Container>
+ <Container>
+ <Property name="exClassName">c-data</Property>
+ <AutoForm>
+ <Property name="dataSet">dsMain</Property>
+ <Property name="cols">*,*,*</Property>
+ <Property name="labelAlign">right</Property>
+ <Property name="labelSeparator">锛�</Property>
+ <Property name="labelWidth">100</Property>
+ <Property name="readOnly">true</Property>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">title</Property>
+ <Property name="property">title</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">deptId</Property>
+ <Property name="property">deptId</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:3">
+ <Property name="name">description</Property>
+ <Property name="property">description</Property>
+ <Property name="editorType">TextArea</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">bizType</Property>
+ <Property name="property">bizType</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">status</Property>
+ <Property name="property">status</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">assigneeName</Property>
+ <Property name="property">assigneeName</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">createTime</Property>
+ <Property name="property">createTime</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">createUserName</Property>
+ <Property name="property">createUserName</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">receiveTime</Property>
+ <Property name="property">receiveTime</Property>
+ <Property name="labelWidth">140</Property>
+ <Editor/>
+ </AutoFormElement>
+ </AutoForm>
+ <ToolBar>
+ <Fill/>
+ <ToolBarButton>
+ <ClientEvent name="onClick">var process = view.get("#dsProcess.data");
+process.set('action','pass')
+view.get("#dialogTodo").show();</ClientEvent>
+ <Property name="caption">閫氳繃</Property>
+ <Property name="width">80</Property>
+ <Property name="exClassName">btn1</Property>
+ <Property name="iconClass">fa fa-check-circle</Property>
+ <Property name="tags">btnTag</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <Property name="caption">杞氦</Property>
+ <Property name="width">80</Property>
+ <Property name="exClassName">btn2</Property>
+ <Property name="iconClass">fa fa-check-circle</Property>
+ <Property name="tags">btnTag</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <ClientEvent name="onClick">var process = view.get("#dsProcess.data");
+process.set('action','refuse')
+view.get("#dialogTodo").show();</ClientEvent>
+ <Property name="caption">鎷掔粷</Property>
+ <Property name="width">80</Property>
+ <Property name="exClassName">btn5</Property>
+ <Property name="iconClass">fa fa-check-circle</Property>
+ <Property name="tags">btnTag</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <ClientEvent name="onClick">view.get("#dialogMain").hide();</ClientEvent>
+ <Property name="caption">鍏抽棴</Property>
+ <Property name="width">80</Property>
+ <Property name="exClassName">btn3</Property>
+ <Property name="iconClass">fa fa-times-circle</Property>
+ </ToolBarButton>
+ <Separator>
+ <Property name="width">30</Property>
+ </Separator>
+ </ToolBar>
+ </Container>
+ <IFrame id="iFrameFlowHis">
+ <Property name="path">/work/flow-his?orderId=1</Property>
+ </IFrame>
+ </Container>
+ </ControlTab>
+ <ControlTab>
+ <Property name="caption">涓氬姟淇℃伅</Property>
+ <Property name="iconClass">fa fa-file-o</Property>
+ <Property name="width">120</Property>
+ <IFrame id="iFrameBiz"/>
+ </ControlTab>
+ </TabControl>
+ </Children>
+ <Tools/>
+ </Dialog>
+ <Dialog id="dialogMain2" layout="regionPadding:8">
+ <Property name="closeable">false</Property>
+ <Property name="caption">宸ュ崟璇︾粏</Property>
+ <Property name="iconClass">fa fa-tasks</Property>
+ <Property name="width">90%</Property>
+ <Property name="showCaptionBar">false</Property>
+ <Property name="style">
+ <Property name="background-color">#e6e6e6</Property>
+ </Property>
+ <Property name="height">95%</Property>
+ <Buttons/>
+ <Children>
+ <TabControl>
+ <ControlTab>
+ <Property name="caption">宸ュ崟淇℃伅</Property>
+ <Property name="iconClass">fa fa-edit</Property>
+ <Property name="width">120</Property>
+ <Container>
+ <Container>
+ <Property name="exClassName">c-data</Property>
+ <AutoForm>
+ <Property name="dataSet">dsMain</Property>
+ <Property name="cols">*,*,*</Property>
+ <Property name="labelAlign">right</Property>
+ <Property name="labelSeparator">锛�</Property>
+ <Property name="labelWidth">100</Property>
+ <Property name="readOnly">true</Property>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">title</Property>
+ <Property name="property">title</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">deptId</Property>
+ <Property name="property">deptId</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:3">
+ <Property name="name">description</Property>
+ <Property name="property">description</Property>
+ <Property name="editorType">TextArea</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">bizType</Property>
+ <Property name="property">bizType</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">status</Property>
+ <Property name="property">status</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">assigneeName</Property>
+ <Property name="property">assigneeName</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">createTime</Property>
+ <Property name="property">createTime</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">createUserName</Property>
+ <Property name="property">createUserName</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">receiveTime</Property>
+ <Property name="property">receiveTime</Property>
+ <Property name="labelWidth">140</Property>
+ <Editor/>
+ </AutoFormElement>
+ </AutoForm>
+ <ToolBar>
+ <Fill/>
+ <ToolBarButton>
+ <ClientEvent name="onClick">var process = view.get("#dsProcess.data");
+process.set('action','pass')
+view.get("#dialogTodo").show();</ClientEvent>
+ <Property name="caption">閫氳繃</Property>
+ <Property name="width">80</Property>
+ <Property name="exClassName">btn1</Property>
+ <Property name="iconClass">fa fa-check-circle</Property>
+ <Property name="tags">btnTag</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <Property name="caption">杞氦</Property>
+ <Property name="width">80</Property>
+ <Property name="exClassName">btn2</Property>
+ <Property name="iconClass">fa fa-check-circle</Property>
+ <Property name="tags">btnTag</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <ClientEvent name="onClick">var process = view.get("#dsProcess.data");
+process.set('action','refuse')
+view.get("#dialogTodo").show();</ClientEvent>
+ <Property name="caption">鎷掔粷</Property>
+ <Property name="width">80</Property>
+ <Property name="exClassName">btn5</Property>
+ <Property name="iconClass">fa fa-check-circle</Property>
+ <Property name="tags">btnTag</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <ClientEvent name="onClick">view.get("#dialogMain").hide();</ClientEvent>
+ <Property name="caption">鍏抽棴</Property>
+ <Property name="width">80</Property>
+ <Property name="exClassName">btn3</Property>
+ <Property name="iconClass">fa fa-times-circle</Property>
+ </ToolBarButton>
+ <Separator>
+ <Property name="width">30</Property>
+ </Separator>
+ </ToolBar>
+ </Container>
+ <IFrame id="iFrameFlowHis">
+ <Property name="path">/work/flow-his?orderId=1</Property>
+ </IFrame>
+ </Container>
+ </ControlTab>
+ <ControlTab>
+ <Property name="caption">涓氬姟淇℃伅</Property>
+ <Property name="iconClass">fa fa-file-o</Property>
+ <Property name="width">120</Property>
+ <IFrame id="iFrameBiz"/>
+ </ControlTab>
+ </TabControl>
+ </Children>
+ <Tools/>
+ </Dialog>
+ <UpdateAction id="updateSave">
+ <UpdateItem>
+ <Property name="dataPath">[#current]</Property>
+ <Property name="dataSet">dsMain</Property>
+ </UpdateItem>
+ </UpdateAction>
+ <AjaxAction id="ajaxDel">
+ <Property name="confirmMessage">纭畾瑕佹墽琛屽垹闄や箞锛�</Property>
+ </AjaxAction>
+ <Dialog id="dialogTodo">
+ <Property name="width">600</Property>
+ <Property name="caption">瀹℃壒澶勭悊</Property>
+ <Property name="closeable">false</Property>
+ <Property name="iconClass">fa fa-bookmark</Property>
+ <Buttons>
+ <Button>
+ <ClientEvent name="onClick">todo();</ClientEvent>
+ <Property name="caption">纭畾</Property>
+ <Property name="iconClass">fa fa-check</Property>
+ <Property name="exClassName">btn1</Property>
+ <Property name="width">90</Property>
+ </Button>
+ <Button>
+ <ClientEvent name="onClick">cancelTodo();</ClientEvent>
+ <Property name="caption">鍙栨秷</Property>
+ <Property name="iconClass">fa fa-times</Property>
+ <Property name="exClassName">btn3</Property>
+ <Property name="width">90</Property>
+ </Button>
+ </Buttons>
+ <Children>
+ <Container>
+ <AutoForm>
+ <Property name="cols">*</Property>
+ <Property name="dataSet">dsProcess</Property>
+ <AutoFormElement>
+ <Property name="name">remark</Property>
+ <Property name="property">remark</Property>
+ <Property name="showHint">false</Property>
+ <Property name="showLabel">false</Property>
+ <Editor>
+ <TextArea>
+ <Property name="blankText">-- 濉啓瀹℃壒寤鸿 --</Property>
+ <Property name="height">100</Property>
+ </TextArea>
+ </Editor>
+ </AutoFormElement>
+ </AutoForm>
+ </Container>
+ </Children>
+ <Tools/>
+ </Dialog>
+ <AjaxAction id="ajaxTodo">
+ <Property name="service">workOrderPR#todo</Property>
+ <Property name="executingMessage">澶勭悊涓�︹��</Property>
+ </AjaxAction>
+ </View>
+</ViewConfig>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml
index c7e3aae..08c7be5 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml
@@ -131,6 +131,9 @@
<Property name="dataType">Date</Property>
<Property name="label">鎴鏃堕棿</Property>
</PropertyDef>
+ <PropertyDef name="scope">
+ <Property/>
+ </PropertyDef>
</DataType>
<DataType name="dtWordProcess">
<Property name="creationType">com.fzzy.work.domain.WorkOrderProcess</Property>
@@ -163,20 +166,26 @@
</DataType>
</Model>
<View layout="padding:10">
- <ClientEvent name="onReady">query= function(){
+ <ClientEvent name="onReady">view.TAG = 1;
+query= function(){
var param = view.get("#dsQuery.data");
var tabIndex = view.get("#tabMain.currentIndex");
+ param.set("scope","all");
if(0 == tabIndex){
- view.get("#dsMain").set("parameter",param).flushAsync();
- }else{
- view.get("#dsMain2").set("parameter",param).flushAsync();
+ param.set("scope","self");
}
+ view.get("#dsMain").set("parameter",param).flushAsync();
}
+query();

//瀹d紶鎿嶄綔
renderCell1 = function(arg,self){
+ var tabIndex = view.get("#tabMain.currentIndex");
var data = arg.data;
var htm = "<a onClick='audit()' class='a-btn1'>鎸囨淳</a>&nbsp;|&nbsp;<a onClick='showDetail()' class='a-btn2'>璇︾粏</a>";
+ if(1 == tabIndex){
+ htm = "<a onClick='showDetail()' class='a-btn2'>璇︾粏</a>";
+ }
arg.dom.innerHTML = htm;
};

@@ -212,8 +221,9 @@
var tabIndex = view.get("#tabMain.currentIndex");
var cur = view.get("#dsMain.data:#");
var dialog = view.get("#dialogMain");
+ view.get('^btnTag').set('visible',true);
if(1 == tabIndex){
- cur = view.get("#dsMain2.data:#");
+ view.get('^btnTag').set('visible',false);
}
dialog.show();

@@ -229,13 +239,11 @@
}
}
//鎵ц瀹℃壒
-todo = function(action){
+todo = function(){
var cur = view.get("#dsMain.data:#");
var process = view.get("#dsProcess.data");
process.set("orderId", cur.get("id"));
- process.set("action", action);
process.set("node", cur.get("node"));
- 
var remark = process.get('remark');
if(!remark){
$notify("璇峰~鍐欏鎵规剰瑙佲�︹��");
@@ -243,15 +251,17 @@
}
view.get("#ajaxTodo").set('parameter',process).execute(function(result){
if('200' != result.code){
- $alert(result.msg);
+ $alert(result.message);
}else{
$alert("鎵ц鎴愬姛锛�");
view.get('#dialogTodo').hide();
+ query();
}
});
}
cancelTodo = function(){
var process = view.get("#dsProcess.data");
+ process.set("action",null);
process.set('remark',null);
view.get('#dialogTodo').hide();
}
@@ -260,16 +270,9 @@
<DataSet id="dsMain">
<ClientEvent name="onLoadData">$notify("鏁版嵁鍔犺浇瀹屾垚鈥︹��");</ClientEvent>
<Property name="dataType">[dtMain]</Property>
- <Property name="dataProvider">workOrderPR#pageQuery</Property>
+ <Property name="dataProvider">workOrderPR#pageQueryByUserType</Property>
<Property name="pageSize">10</Property>
- <Property name="loadMode">lazy</Property>
- </DataSet>
- <DataSet id="dsMain2">
- <ClientEvent name="onLoadData">$notify("鏁版嵁鍔犺浇瀹屾垚鈥︹��");</ClientEvent>
- <Property name="dataType">[dtMain]</Property>
- <Property name="dataProvider">workOrderPR#pageQuery2</Property>
- <Property name="pageSize">10</Property>
- <Property name="loadMode">lazy</Property>
+ <Property name="loadMode">manual</Property>
</DataSet>
<DataSet id="dsQuery">
<ClientEvent name="onReady">self.insert({});</ClientEvent>
@@ -454,9 +457,88 @@
<Container>
<Property name="className">c-data</Property>
<TabControl id="tabMain">
+ <ClientEvent name="onTabChange">if(view.TAG) query();</ClientEvent>
<ControlTab>
- <Property name="caption">鍏ㄩ儴</Property>
+ <Property name="caption">鎴戠殑宸ュ崟</Property>
<Property name="iconClass">fa fa-th-large</Property>
+ <Property name="width">150</Property>
+ <Container>
+ <DataGrid layoutConstraint="padding:8">
+ <ClientEvent name="onDataRowClick">self.set("selection",arg.data);</ClientEvent>
+ <Property name="dataSet">dsMain</Property>
+ <Property name="readOnly">true</Property>
+ <Property name="selectionMode">singleRow</Property>
+ <Property name="readOnly">true</Property>
+ <Property name="fixedColumnCount">3</Property>
+ <RowSelectorColumn/>
+ <RowNumColumn>
+ <Property name="width">50</Property>
+ <Property name="caption">搴忓彿</Property>
+ </RowNumColumn>
+ <DataColumn>
+ <ClientEvent name="onRenderCell">renderCell1(arg,self);</ClientEvent>
+ <Property name="caption">鎿嶄綔</Property>
+ <Property name="width">80</Property>
+ <Property name="align">center</Property>
+ <Editor/>
+ </DataColumn>
+ <DataColumn name="id">
+ <Property name="property">id</Property>
+ <Property name="width">180</Property>
+ </DataColumn>
+ <DataColumn name="deptId">
+ <Property name="property">deptId</Property>
+ <Property name="width">250</Property>
+ </DataColumn>
+ <DataColumn name="title">
+ <Property name="property">title</Property>
+ <Property name="width">300</Property>
+ </DataColumn>
+ <DataColumn>
+ <ClientEvent name="onRenderCell">renderStatus(arg);</ClientEvent>
+ <Property name="property">status</Property>
+ <Property name="width">120</Property>
+ <Property name="align">center</Property>
+ <Property name="name">status</Property>
+ </DataColumn>
+ <DataColumn name="bizType">
+ <Property name="property">bizType</Property>
+ <Property name="width">120</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="assigneeName">
+ <Property name="property">assigneeName</Property>
+ <Property name="align">center</Property>
+ <Property name="width">150</Property>
+ </DataColumn>
+ <DataColumn name="receiveTime">
+ <Property name="property">receiveTime</Property>
+ <Property name="width">150</Property>
+ <Property name="align">center</Property>
+ </DataColumn>
+ <DataColumn name="createUserName">
+ <Property name="property">createUserName</Property>
+ <Property name="align">center</Property>
+ <Property name="width">150</Property>
+ </DataColumn>
+ <DataColumn name="createTime">
+ <Property name="property">createTime</Property>
+ <Property name="align">center</Property>
+ <Property name="width">150</Property>
+ </DataColumn>
+ </DataGrid>
+ <ToolBar layoutConstraint="bottom">
+ <Fill/>
+ <DataPilot layoutConstraint="right">
+ <Property name="itemCodes">pageSize,pages</Property>
+ <Property name="dataSet">dsMain</Property>
+ </DataPilot>
+ </ToolBar>
+ </Container>
+ </ControlTab>
+ <ControlTab>
+ <Property name="caption">鍏ㄩ儴宸ュ崟</Property>
+ <Property name="iconClass">fa fa-history</Property>
<Property name="width">150</Property>
<Container>
<DataGrid layoutConstraint="padding:8">
@@ -528,84 +610,6 @@
<DataPilot layoutConstraint="right">
<Property name="itemCodes">pageSize,pages</Property>
<Property name="dataSet">dsMain</Property>
- </DataPilot>
- </ToolBar>
- </Container>
- </ControlTab>
- <ControlTab>
- <Property name="caption">宸茬粨鏉�</Property>
- <Property name="iconClass">fa fa-history</Property>
- <Property name="width">150</Property>
- <Container>
- <DataGrid layoutConstraint="padding:8">
- <ClientEvent name="onDataRowClick">self.set("selection",arg.data);</ClientEvent>
- <Property name="dataSet">dsMain2</Property>
- <Property name="readOnly">true</Property>
- <Property name="selectionMode">singleRow</Property>
- <Property name="readOnly">true</Property>
- <Property name="fixedColumnCount">3</Property>
- <RowSelectorColumn/>
- <RowNumColumn>
- <Property name="width">50</Property>
- <Property name="caption">搴忓彿</Property>
- </RowNumColumn>
- <DataColumn>
- <ClientEvent name="onRenderCell">renderCell1(arg,self);</ClientEvent>
- <Property name="caption">鎿嶄綔</Property>
- <Property name="width">150</Property>
- <Property name="align">center</Property>
- <Editor/>
- </DataColumn>
- <DataColumn name="id">
- <Property name="property">id</Property>
- <Property name="width">180</Property>
- </DataColumn>
- <DataColumn name="deptId">
- <Property name="property">deptId</Property>
- <Property name="width">250</Property>
- </DataColumn>
- <DataColumn name="title">
- <Property name="property">title</Property>
- <Property name="width">300</Property>
- </DataColumn>
- <DataColumn>
- <ClientEvent name="onRenderCell">renderStatus(arg);</ClientEvent>
- <Property name="property">status</Property>
- <Property name="width">120</Property>
- <Property name="align">center</Property>
- <Property name="name">status</Property>
- </DataColumn>
- <DataColumn name="bizType">
- <Property name="property">bizType</Property>
- <Property name="width">120</Property>
- <Property name="align">center</Property>
- </DataColumn>
- <DataColumn name="assigneeName">
- <Property name="property">assigneeName</Property>
- <Property name="align">center</Property>
- <Property name="width">150</Property>
- </DataColumn>
- <DataColumn name="receiveTime">
- <Property name="property">receiveTime</Property>
- <Property name="width">150</Property>
- <Property name="align">center</Property>
- </DataColumn>
- <DataColumn name="createUserName">
- <Property name="property">createUserName</Property>
- <Property name="align">center</Property>
- <Property name="width">150</Property>
- </DataColumn>
- <DataColumn name="createTime">
- <Property name="property">createTime</Property>
- <Property name="align">center</Property>
- <Property name="width">150</Property>
- </DataColumn>
- </DataGrid>
- <ToolBar layoutConstraint="bottom">
- <Fill/>
- <DataPilot layoutConstraint="right">
- <Property name="itemCodes">pageSize,pages</Property>
- <Property name="dataSet">dsMain2</Property>
</DataPilot>
</ToolBar>
</Container>
@@ -690,22 +694,34 @@
<ToolBar>
<Fill/>
<ToolBarButton>
- <ClientEvent name="onClick">view.get("#dialogTodo").show();
-</ClientEvent>
- <Property name="caption">澶勭悊</Property>
+ <ClientEvent name="onClick">var process = view.get("#dsProcess.data");
+process.set('action','pass')
+view.get("#dialogTodo").show();</ClientEvent>
+ <Property name="caption">閫氳繃</Property>
<Property name="width">80</Property>
<Property name="exClassName">btn1</Property>
<Property name="iconClass">fa fa-check-circle</Property>
+ <Property name="tags">btnTag</Property>
</ToolBarButton>
<ToolBarButton>
<Property name="caption">杞氦</Property>
<Property name="width">80</Property>
<Property name="exClassName">btn2</Property>
<Property name="iconClass">fa fa-check-circle</Property>
+ <Property name="tags">btnTag</Property>
</ToolBarButton>
<ToolBarButton>
- <ClientEvent name="onClick">view.get("#dsMain.data:#").cancel();
-view.get("#dialogMain").hide();</ClientEvent>
+ <ClientEvent name="onClick">var process = view.get("#dsProcess.data");
+process.set('action','refuse')
+view.get("#dialogTodo").show();</ClientEvent>
+ <Property name="caption">鎷掔粷</Property>
+ <Property name="width">80</Property>
+ <Property name="exClassName">btn5</Property>
+ <Property name="iconClass">fa fa-check-circle</Property>
+ <Property name="tags">btnTag</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <ClientEvent name="onClick">view.get("#dialogMain").hide();</ClientEvent>
<Property name="caption">鍏抽棴</Property>
<Property name="width">80</Property>
<Property name="exClassName">btn3</Property>
@@ -731,15 +747,6 @@
</Children>
<Tools/>
</Dialog>
- <UpdateAction id="updateSave">
- <UpdateItem>
- <Property name="dataPath">[#current]</Property>
- <Property name="dataSet">dsMain</Property>
- </UpdateItem>
- </UpdateAction>
- <AjaxAction id="ajaxDel">
- <Property name="confirmMessage">纭畾瑕佹墽琛屽垹闄や箞锛�</Property>
- </AjaxAction>
<Dialog id="dialogTodo">
<Property name="width">600</Property>
<Property name="caption">瀹℃壒澶勭悊</Property>
@@ -747,22 +754,15 @@
<Property name="iconClass">fa fa-bookmark</Property>
<Buttons>
<Button>
- <ClientEvent name="onClick">todo('pass');</ClientEvent>
- <Property name="caption">閫氳繃</Property>
+ <ClientEvent name="onClick">todo();</ClientEvent>
+ <Property name="caption">纭畾</Property>
<Property name="iconClass">fa fa-check</Property>
<Property name="exClassName">btn1</Property>
<Property name="width">90</Property>
</Button>
<Button>
- <ClientEvent name="onClick">todo('refuse');</ClientEvent>
- <Property name="caption">鎷掔粷</Property>
- <Property name="exClassName">btn4</Property>
- <Property name="iconClass">fa fa-times</Property>
- <Property name="width">90</Property>
- </Button>
- <Button>
<ClientEvent name="onClick">cancelTodo();</ClientEvent>
- <Property name="caption">鍙栨秷鎿嶄綔</Property>
+ <Property name="caption">鍙栨秷</Property>
<Property name="iconClass">fa fa-times</Property>
<Property name="exClassName">btn3</Property>
<Property name="width">90</Property>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java
index c3ac938..dca987b 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java
@@ -17,6 +17,7 @@
import com.fzzy.work.service.WorkOrderService;
import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.core.domain.entity.SysUser;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
@@ -42,44 +43,19 @@
private BizWorkService bizWorkService;
/**
- *
- * workOrderPR#pageQuery
- * 鍒嗛〉鏌ヨ
- * @param page
- * @param param
+ * 鏍规嵁鐢ㄦ埛瑙掕壊閫夋嫨涓嶅悓鐨勫伐鍗曚俊鎭�
+ * @param page 鍒嗛〉淇℃伅
+ * @param param 鍙傛暟
*/
@DataProvider
- public void pageQuery(Page<WorkOrder> page, WorkOrderParam param) {
+ public void pageQueryByUserType(Page<WorkOrder> page, WorkOrderParam param) {
com.baomidou.mybatisplus.extension.plugins.pagination.Page<WorkOrder> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
if (null == param) param = new WorkOrderParam();
param.setCompanyId(ContextUtil.getCompanyId());
- workOrderService.pageQuery(corePage, param);
-
- // 閲嶆柊灏佽
- page.setEntities(corePage.getRecords());
- page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal())));
- }
-
- /**
- *
- * workOrderPR#pageQuery2
- * 宸茬粡瀹屾垚锛屽垎椤垫煡璇�
- * @param page
- * @param param
- */
- @DataProvider
- public void pageQuery2(Page<WorkOrder> page, WorkOrderParam param) {
-
- com.baomidou.mybatisplus.extension.plugins.pagination.Page<WorkOrder> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
-
- if (null == param) param = new WorkOrderParam();
- param.setStatus(WorkStatus.STATUS_50.getCode());
- param.setCompanyId(ContextUtil.getCompanyId());
-
- workOrderService.pageQuery(corePage, param);
+ workOrderService.pageQueryByUserType(corePage, param);
// 閲嶆柊灏佽
page.setEntities(corePage.getRecords());
diff --git a/fzzy-igdss-web/pom.xml b/fzzy-igdss-web/pom.xml
index 71bc8c2..d8e3caa 100644
--- a/fzzy-igdss-web/pom.xml
+++ b/fzzy-igdss-web/pom.xml
@@ -57,12 +57,13 @@
<version>${fzzy.igdss.version}</version>
</dependency>
- <!-- 鎺ュ彛妯″潡-->
+ <!-- 鎺ュ彛妯″潡
<dependency>
<groupId>com.fzzy</groupId>
<artifactId>fzzy-igdss-inte</artifactId>
<version>${fzzy.igdss.version}</version>
</dependency>
+ -->
</dependencies>
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java b/fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java
index eeff0d3..a36f80c 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java
@@ -1,8 +1,12 @@
package com.fzzy.work;
+import com.fzzy.igds.utils.DateUtil;
import com.fzzy.work.domain.WorkOrderConf;
+import com.fzzy.work.domain.WorkOrderProcess;
import com.fzzy.work.service.WorkOrderConfService;
+import com.fzzy.work.service.WorkOrderProcessService;
import com.ruoyi.common.core.controller.BaseController;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
@@ -10,10 +14,13 @@
import org.springframework.web.bind.annotation.RequestParam;
import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
/**
* 宸ュ崟绠$悊
*/
+@Slf4j
@Controller
@RequestMapping("/work")
public class WorkOrderController extends BaseController {
@@ -23,6 +30,8 @@
@Resource
private WorkOrderConfService workOrderConfService;
+ @Resource
+ private WorkOrderProcessService workOrderProcessService;
/**
@@ -69,8 +78,18 @@
*/
@GetMapping("/flow-his")
public String flowHis(@RequestParam("orderId") String orderId, ModelMap mmap) {
+ log.info("宸ュ崟璁板綍-宸ュ崟ID锛歿}", orderId);
+ List<WorkOrderProcess> list = workOrderProcessService.queryList(orderId);
+ mmap.put("list", list);
+ mmap.put("tipTime", 1);
+ mmap.put("tipCount", 1);
- mmap.put("list", null);
+ if (null != list && !list.isEmpty()) {
+ //娆℃暟榛樿鍑忓幓绗竴娆℃彁浜�
+ mmap.put("tipCount", list.size() - 1);
+ long tipTime = DateUtil.difMin(list.get(0).getCreateTime(), new Date());
+ mmap.put("tipTime", tipTime);
+ }
return prefix + "/flow-his";
}
diff --git a/fzzy-igdss-web/src/main/resources/application-dev.yml b/fzzy-igdss-web/src/main/resources/application-dev.yml
index 73a03a8..ea067a0 100644
--- a/fzzy-igdss-web/src/main/resources/application-dev.yml
+++ b/fzzy-igdss-web/src/main/resources/application-dev.yml
@@ -71,7 +71,7 @@
# Redis鐩稿叧閰嶇疆
redis:
- database: 0
+ database: 2
host: 127.0.0.1
port: 6379
password:
diff --git a/fzzy-igdss-web/src/main/resources/templates/work/flow-his-bak.html b/fzzy-igdss-web/src/main/resources/templates/work/flow-his-bak.html
new file mode 100644
index 0000000..f6ac683
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/templates/work/flow-his-bak.html
@@ -0,0 +1,285 @@
+<!DOCTYPE html>
+<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>宸ュ崟澶勭悊鍘嗗彶璁板綍</title>
+ <link rel="stylesheet" th:href="@{/ajax/libs/layui-ruoyi/css/layui.css}"/>
+ <style>
+ /* 闅愯棌婊氬姩鏉$殑鍩虹CSS */
+ .hide-scrollbar {
+ /* 闅愯棌鏍囧噯婊氬姩鏉� */
+ scrollbar-width: none; /* Firefox */
+ -ms-overflow-style: none; /* IE 鍜� Edge */
+ }
+ /* Chrome, Safari 鍜� Opera */
+ .hide-scrollbar::-webkit-scrollbar {
+ display: none;
+ }
+ /* 骞虫粦婊氬姩鏁堟灉 */
+ .smooth-scroll {
+ scroll-behavior: smooth;
+ }
+ html{
+ overflow: hidden ;
+ }
+ /* 椤甸潰鍩虹鏍峰紡 */
+ body {
+ background-color: #FFF;
+ padding: 20px;
+ font-family: "Microsoft YaHei", Arial, sans-serif;
+ font-size: 14px;
+ overflow-x: hidden;
+ }
+ .container {
+ margin: 0 auto;
+ background-color: #fff;
+ border-radius: 8px;
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ overflow: hidden;
+ }
+ .header {
+ background-color: #e6e6e6;
+ padding: 15px;
+ font-weight: bold;
+ }
+ .summary-box {
+ margin: 20px;
+ padding: 15px;
+ background-color: #f0f9ff;
+ border-left: 4px solid #1E9FFF;
+ border-radius: 4px;
+ font-size: 14px;
+ }
+ .summary-box .layui-icon {
+ margin-right: 8px;
+ color: #1E9FFF;
+ }
+ .timeline-container {
+ padding: 0 20px 20px;
+ }
+ /* 鑷畾涔夋椂闂磋酱鏍峰紡 */
+ .custom-timeline {
+ position: relative;
+ padding: 20px 0;
+ }
+ .custom-timeline:before {
+ content: '';
+ position: absolute;
+ left: 18px;
+ top: 0;
+ bottom: 0;
+ width: 2px;
+ background-color: #e8e8e8;
+ }
+ .timeline-item {
+ position: relative;
+ padding-left: 50px;
+ margin-bottom: 25px;
+ }
+ .timeline-item:last-child {
+ margin-bottom: 0;
+ }
+ .timeline-icon {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 38px;
+ height: 38px;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: white;
+ z-index: 2;
+ }
+ .timeline-content {
+ background-color: #f9f9f9;
+ border-radius: 6px;
+ padding: 15px;
+ border-left: 3px solid #1E9FFF;
+ font-size: 14px;
+ }
+ .operator-info {
+ font-weight: bold;
+ color: #333;
+ margin-bottom: 5px;
+ }
+ .status-change {
+ color: #666;
+ margin-bottom: 5px;
+ }
+ .status-description {
+ color: #888;
+ font-size: 13px;
+ }
+ .time-info {
+ text-align: right;
+ color: #999;
+ font-size: 13px;
+ margin-top: 8px;
+ }
+ /* 涓嶅悓鐘舵�佺殑鍥炬爣棰滆壊 */
+ .status-created { background-color: #FFB800; }
+ .status-waiting { background-color: #FF5722; }
+ .status-processing { background-color: #1E9FFF; }
+ .status-completed { background-color: #009688; }
+
+ /* 鍙粴鍔ㄥ尯鍩熸牱寮� */
+ .scrollable-area {
+ max-height: 400px; /* 璁剧疆鏈�澶ч珮搴� */
+ overflow-y: auto; /* 鍨傜洿鏂瑰悜鍏佽婊氬姩 */
+ overflow-x: hidden; /* 姘村钩鏂瑰悜闅愯棌 */
+ }
+
+ /* 鏂规硶1锛氬畬鍏ㄩ殣钘忔粴鍔ㄦ潯 */
+ .method-1 {
+ scrollbar-width: none; /* Firefox */
+ -ms-overflow-style: none; /* IE 鍜� Edge */
+ }
+
+ .method-1::-webkit-scrollbar {
+ display: none; /* Chrome, Safari 鍜� Opera */
+ }
+
+ /* 鍝嶅簲寮忚皟鏁� */
+ @media (max-width: 768px) {
+ .container {
+ margin: 10px;
+ }
+ .timeline-item {
+ padding-left: 40px;
+ }
+ .timeline-icon {
+ width: 32px;
+ height: 32px;
+ }
+ .scrollable-area {
+ max-height: 300px; /* 绉诲姩绔皟鏁撮珮搴� */
+ }
+ }
+ /* 棰濆鐨勫伐鍗曡褰曠敤浜庢紨绀烘粴鍔� */
+ .extra-records {
+ display: none;
+ }
+ </style>
+</head>
+<body>
+<div class="container">
+<!-- <div class="header">-->
+<!-- <i class="layui-icon layui-icon-form"></i> 宸ュ崟澶勭悊璁板綍-->
+<!-- </div>-->
+ <div class="summary-box">
+ <i class="layui-icon layui-icon-tips"></i>
+ 澶勭悊璁板綍锛氳宸ュ崟绱澶勭悊鏃堕暱 <span style="color:#1E9FFF; font-weight:bold;" th:text="${tipTime}">1鍒嗛挓</span>锛岀疮璁″鐞嗘鏁� <span style="color:#1E9FFF; font-weight:bold;" th:text="${tipCount}">1娆�</span>
+ </div>
+
+ <div class="timeline-container">
+ <!-- 杩欓噷鏄彲婊氬姩鐨勬椂闂磋酱鍖哄煙 -->
+ <div class="custom-timeline scrollable-area method-1 smooth-scroll" id="timelineScroll">
+ <!-- 宸插畬鎴� -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-completed">
+ <i class="layui-icon layui-icon-ok"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">缁忓姙浜� 鏌崇櫧</div>
+ <div class="status-change">灏嗗伐鍗曠姸鎬佽缃负 宸插畬鎴�</div>
+ <div class="time-info">2026-01-06 13:56:21</div>
+ </div>
+ </div>
+
+ <!-- 澶勭悊涓� -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-processing">
+ <i class="layui-icon layui-icon-loading"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">缁忓姙浜� 鏌崇櫧</div>
+ <div class="status-change">灏嗗伐鍗曠姸鎬佽缃负 澶勭悊涓�</div>
+ <div class="status-description">宸叉帴鏀跺伐鍗�</div>
+ <div class="time-info">2026-01-06 13:56:01</div>
+ </div>
+ </div>
+
+ <!-- 寰呮帴鏀� -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-waiting">
+ <i class="layui-icon layui-icon-user"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">缁忓姙浜� 鏌崇櫧</div>
+ <div class="status-change">灏嗗伐鍗曠姸鎬佽缃负 寰呮帴鏀讹紝涓嬩釜鍙楃悊浜轰负 鏌崇櫧</div>
+ <div class="time-info">2026-01-06 13:55:20</div>
+ </div>
+ </div>
+
+ <!-- 鏂板缓宸ュ崟 -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-created">
+ <i class="layui-icon layui-icon-add-circle"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="status-change">鏂板缓宸ュ崟</div>
+ <div class="status-description">鍏紬鍙仿稺GCLOUD</div>
+ <div class="time-info">2026-01-06 13:55:00</div>
+ </div>
+ </div>
+
+ <!-- 浠ヤ笅涓洪澶栬褰曪紝鐢ㄤ簬婕旂ず婊氬姩鏁堟灉 -->
+ <div class="extra-records">
+ <!-- 棰濆璁板綍1 -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-waiting">
+ <i class="layui-icon layui-icon-user"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">绯荤粺鑷姩</div>
+ <div class="status-change">宸ュ崟宸插垱寤猴紝绛夊緟鍒嗛厤</div>
+ <div class="time-info">2026-01-06 13:54:30</div>
+ </div>
+ </div>
+
+ <!-- 棰濆璁板綍2 -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-waiting">
+ <i class="layui-icon layui-icon-notice"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">绯荤粺鑷姩</div>
+ <div class="status-change">鍙戦�佸伐鍗曞垱寤洪�氱煡</div>
+ <div class="time-info">2026-01-06 13:54:15</div>
+ </div>
+ </div>
+
+ <!-- 棰濆璁板綍3 -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-completed">
+ <i class="layui-icon layui-icon-ok"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">鐢ㄦ埛鎻愪氦</div>
+ <div class="status-change">宸ュ崟鎻愪氦鎴愬姛</div>
+ <div class="status-description">鐢ㄦ埛閫氳繃Web绔彁浜ゅ伐鍗�</div>
+ <div class="time-info">2026-01-06 13:54:00</div>
+ </div>
+ </div>
+
+ <!-- 棰濆璁板綍4 -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-created">
+ <i class="layui-icon layui-icon-edit"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">鐢ㄦ埛 寮犱笁</div>
+ <div class="status-change">濉啓宸ュ崟淇℃伅</div>
+ <div class="status-description">闂鎻忚堪锛氬叕浼楀彿鏃犳硶姝e父鐧诲綍</div>
+ <div class="time-info">2026-01-06 13:53:45</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/fzzy-igdss-web/src/main/resources/templates/work/flow-his.html b/fzzy-igdss-web/src/main/resources/templates/work/flow-his.html
index 0a9fb72..d634785 100644
--- a/fzzy-igdss-web/src/main/resources/templates/work/flow-his.html
+++ b/fzzy-igdss-web/src/main/resources/templates/work/flow-his.html
@@ -23,8 +23,8 @@
scroll-behavior: smooth;
}
- html{
- overflow: hidden ;
+ html {
+ overflow: hidden;
}
/* 椤甸潰鍩虹鏍峰紡 */
@@ -121,12 +121,10 @@
color: #333;
margin-bottom: 5px;
}
-
.status-change {
color: #666;
margin-bottom: 5px;
}
-
.status-description {
color: #888;
font-size: 13px;
@@ -140,10 +138,21 @@
}
/* 涓嶅悓鐘舵�佺殑鍥炬爣棰滆壊 */
- .status-created { background-color: #FFB800; }
- .status-waiting { background-color: #FF5722; }
- .status-processing { background-color: #1E9FFF; }
- .status-completed { background-color: #009688; }
+ .status-created {
+ background-color: #FFB800;
+ }
+
+ .status-waiting {
+ background-color: #FF5722;
+ }
+
+ .status-processing {
+ background-color: #1E9FFF;
+ }
+
+ .status-completed {
+ background-color: #009688;
+ }
/* 鍙粴鍔ㄥ尯鍩熸牱寮� */
.scrollable-area {
@@ -167,37 +176,43 @@
.container {
margin: 10px;
}
+
.timeline-item {
padding-left: 40px;
}
+
.timeline-icon {
width: 32px;
height: 32px;
}
+
.scrollable-area {
max-height: 300px; /* 绉诲姩绔皟鏁撮珮搴� */
}
}
- /* 棰濆鐨勫伐鍗曡褰曠敤浜庢紨绀烘粴鍔� */
+
+ /* 棰濆鐨勫伐鍗曡褰曠敤浜庢紨绀烘粴鍔�
.extra-records {
display: none;
}
+ */
</style>
</head>
<body>
<div class="container">
-<!-- <div class="header">-->
-<!-- <i class="layui-icon layui-icon-form"></i> 宸ュ崟澶勭悊璁板綍-->
-<!-- </div>-->
+ <!-- <div class="header">-->
+ <!-- <i class="layui-icon layui-icon-form"></i> 宸ュ崟澶勭悊璁板綍-->
+ <!-- </div>-->
<div class="summary-box">
<i class="layui-icon layui-icon-tips"></i>
- 澶勭悊璁板綍锛氳宸ュ崟绱澶勭悊鏃堕暱 <span style="color:#1E9FFF; font-weight:bold;">1鍒嗛挓</span>锛岀疮璁″鐞嗘鏁� <span style="color:#1E9FFF; font-weight:bold;">3娆�</span>
+ 澶勭悊璁板綍锛氳宸ュ崟绱澶勭悊鏃堕暱 <span style="color:#1E9FFF; font-weight:bold;">1鍒嗛挓</span>锛岀疮璁″鐞嗘鏁� <span
+ style="color:#1E9FFF; font-weight:bold;">3娆�</span>
</div>
<div class="timeline-container">
<!-- 杩欓噷鏄彲婊氬姩鐨勬椂闂磋酱鍖哄煙 -->
<div class="custom-timeline scrollable-area method-1 smooth-scroll" id="timelineScroll">
- <!-- 宸插畬鎴� -->
+ <!-- 宸插畬鎴�
<div class="timeline-item">
<div class="timeline-icon status-completed">
<i class="layui-icon layui-icon-ok"></i>
@@ -208,8 +223,9 @@
<div class="time-info">2026-01-06 13:56:21</div>
</div>
</div>
+ -->
- <!-- 澶勭悊涓� -->
+ <!-- 澶勭悊涓�
<div class="timeline-item">
<div class="timeline-icon status-processing">
<i class="layui-icon layui-icon-loading"></i>
@@ -221,8 +237,9 @@
<div class="time-info">2026-01-06 13:56:01</div>
</div>
</div>
+ -->
- <!-- 寰呮帴鏀� -->
+ <!-- 寰呮帴鏀�
<div class="timeline-item">
<div class="timeline-icon status-waiting">
<i class="layui-icon layui-icon-user"></i>
@@ -233,8 +250,9 @@
<div class="time-info">2026-01-06 13:55:20</div>
</div>
</div>
+ -->
- <!-- 鏂板缓宸ュ崟 -->
+ <!-- 鏂板缓宸ュ崟
<div class="timeline-item">
<div class="timeline-icon status-created">
<i class="layui-icon layui-icon-add-circle"></i>
@@ -245,61 +263,73 @@
<div class="time-info">2026-01-06 13:55:00</div>
</div>
</div>
+ -->
- <!-- 浠ヤ笅涓洪澶栬褰曪紝鐢ㄤ簬婕旂ず婊氬姩鏁堟灉 -->
- <div class="extra-records">
- <!-- 棰濆璁板綍1 -->
- <div class="timeline-item">
- <div class="timeline-icon status-waiting">
- <i class="layui-icon layui-icon-user"></i>
- </div>
- <div class="timeline-content">
- <div class="operator-info">绯荤粺鑷姩</div>
- <div class="status-change">宸ュ崟宸插垱寤猴紝绛夊緟鍒嗛厤</div>
- <div class="time-info">2026-01-06 13:54:30</div>
- </div>
- </div>
-
- <!-- 棰濆璁板綍2 -->
- <div class="timeline-item">
- <div class="timeline-icon status-waiting">
- <i class="layui-icon layui-icon-notice"></i>
- </div>
- <div class="timeline-content">
- <div class="operator-info">绯荤粺鑷姩</div>
- <div class="status-change">鍙戦�佸伐鍗曞垱寤洪�氱煡</div>
- <div class="time-info">2026-01-06 13:54:15</div>
- </div>
- </div>
-
- <!-- 棰濆璁板綍3 -->
- <div class="timeline-item">
- <div class="timeline-icon status-completed">
- <i class="layui-icon layui-icon-ok"></i>
- </div>
- <div class="timeline-content">
- <div class="operator-info">鐢ㄦ埛鎻愪氦</div>
- <div class="status-change">宸ュ崟鎻愪氦鎴愬姛</div>
- <div class="status-description">鐢ㄦ埛閫氳繃Web绔彁浜ゅ伐鍗�</div>
- <div class="time-info">2026-01-06 13:54:00</div>
- </div>
- </div>
-
- <!-- 棰濆璁板綍4 -->
- <div class="timeline-item">
- <div class="timeline-icon status-created">
- <i class="layui-icon layui-icon-edit"></i>
- </div>
- <div class="timeline-content">
- <div class="operator-info">鐢ㄦ埛 寮犱笁</div>
- <div class="status-change">濉啓宸ュ崟淇℃伅</div>
- <div class="status-description">闂鎻忚堪锛氬叕浼楀彿鏃犳硶姝e父鐧诲綍</div>
- <div class="time-info">2026-01-06 13:53:45</div>
- </div>
- </div>
- </div>
</div>
</div>
</div>
+
+<!-- 鍏ㄥ眬js -->
+<script th:src="@{/js/jquery.min.js}"></script>
+
+<script th:inline="javascript">
+ var list = [[${list}]];
+
+ $(function () {
+ if (list && list.length > 0) {
+ init();
+ }
+ function getNodeName(node) {
+ if (node.indexOf('start') > 0) {
+ return '鎻愪氦';
+ } else if (node.indexOf('end') > 0) {
+ return '瀹屾垚';
+ } else if ('node1' === node) {
+ return '搴撳尯瀹℃壒';
+ } else if ('node2' === node) {
+ return '鐩戠瀹℃壒';
+ } else if ('node3' === node) {
+ return '閾惰瀹℃壒';
+ } else {
+ return '瀹℃壒';
+ }
+ }
+
+ function init() {
+ var htm = '';
+ for (var i = 0; i < list.length; i++) {
+ var item = list[i];
+ var node = item.node;
+ htm += '<div class="timeline-item">';
+
+ if (node.indexOf('start') > 0) {
+ htm += '<div class="timeline-icon status-created">';
+ htm += '<i class="layui-icon layui-icon-add-circle"></i>'
+ } else if (node.indexOf('end') > 0) {
+ htm += '<div class="timeline-icon status-completed">';
+ htm += '<i class="layui-icon layui-icon-ok"></i>'
+ } else {
+ htm += '<div class="timeline-icon status-processing">';
+ htm += '<i class="layui-icon layui-icon-loading"></i>'
+ }
+ htm += '</div>';
+ htm += '<div class="timeline-content">';
+ //htm += '<div class="operator-info">' + item.assigneeName + '</div>';
+ htm += '<div class="operator-info">';
+ htm += '娴佺▼鑺傜偣锛�'+getNodeName(node);
+ htm += ' 瀹℃壒鍔ㄤ綔锛�'+item.action;
+ htm += ' 缁忓姙浜猴細'+item.assigneeName;
+ htm += '</div>';
+ htm += '<div class="status-change">' + item.remark + '</div>';
+ htm += '<div class="time-info">' + item.createTime + '</div>';
+ htm += '</div></div>';
+ }
+ $('#timelineScroll').html(htm);
+ }
+
+ });
+
+</script>
+
</body>
</html>
\ No newline at end of file
--
Gitblit v1.9.3