Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qiangwayu9962
cskefu
提交
2565ff8f
C
cskefu
项目概览
qiangwayu9962
/
cskefu
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cskefu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2565ff8f
编写于
11月 29, 2019
作者:
Chatopera 研发团队
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#239 enhance visitor comment and fix entim bug with protocal detect
上级
a66f06ff
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
68 addition
and
35 deletion
+68
-35
contact-center/app/src/main/java/com/chatopera/cc/acd/ACDAgentService.java
...p/src/main/java/com/chatopera/cc/acd/ACDAgentService.java
+23
-17
contact-center/app/src/main/java/com/chatopera/cc/controller/apps/IMController.java
...n/java/com/chatopera/cc/controller/apps/IMController.java
+3
-2
contact-center/app/src/main/resources/WEB-INF/data/mdx/coment.xml
...center/app/src/main/resources/WEB-INF/data/mdx/coment.xml
+4
-4
contact-center/app/src/main/resources/static/css/entim.css
contact-center/app/src/main/resources/static/css/entim.css
+2
-0
contact-center/app/src/main/resources/static/im/js/kindeditor/plugins/image/image.js
.../resources/static/im/js/kindeditor/plugins/image/image.js
+3
-1
contact-center/app/src/main/resources/static/im/js/kindeditor/plugins/insertfile/insertfile.js
.../static/im/js/kindeditor/plugins/insertfile/insertfile.js
+4
-2
contact-center/app/src/main/resources/static/js/kindeditor/plugins/image/image.js
...ain/resources/static/js/kindeditor/plugins/image/image.js
+3
-1
contact-center/app/src/main/resources/static/js/kindeditor/plugins/insertfile/insertfile.js
...ces/static/js/kindeditor/plugins/insertfile/insertfile.js
+4
-2
contact-center/app/src/main/resources/templates/apps/business/contacts/edit.html
...main/resources/templates/apps/business/contacts/edit.html
+6
-0
contact-center/app/src/main/resources/templates/apps/entim/chat.html
...ter/app/src/main/resources/templates/apps/entim/chat.html
+1
-1
contact-center/app/src/main/resources/templates/apps/entim/group/index.html
.../src/main/resources/templates/apps/entim/group/index.html
+1
-1
contact-center/app/src/main/resources/templates/apps/entim/index.html
...er/app/src/main/resources/templates/apps/entim/index.html
+1
-1
contact-center/app/src/main/resources/templates/apps/entim/point.html
...er/app/src/main/resources/templates/apps/entim/point.html
+1
-1
contact-center/app/src/main/resources/templates/apps/im/leavemsg.html
...er/app/src/main/resources/templates/apps/im/leavemsg.html
+12
-2
未找到文件。
contact-center/app/src/main/java/com/chatopera/cc/acd/ACDAgentService.java
浏览文件 @
2565ff8f
...
...
@@ -105,11 +105,11 @@ public class ACDAgentService {
ctx
.
getAgentService
().
getStatus
()))
{
// 通知消息到坐席
MainContext
.
getPeerSyncIM
().
send
(
MainContext
.
ReceiverType
.
AGENT
,
MainContext
.
ChannelType
.
WEBIM
,
ctx
.
getAppid
(),
MainContext
.
MessageType
.
NEW
,
ctx
.
getAgentService
().
getAgentno
(),
ctx
,
true
);
MainContext
.
ChannelType
.
WEBIM
,
ctx
.
getAppid
(),
MainContext
.
MessageType
.
NEW
,
ctx
.
getAgentService
().
getAgentno
(),
ctx
,
true
);
}
/**
...
...
@@ -126,8 +126,8 @@ public class ACDAgentService {
}
MainContext
.
getPeerSyncIM
().
send
(
MainContext
.
ReceiverType
.
VISITOR
,
MainContext
.
ChannelType
.
WEBIM
,
ctx
.
getAppid
(),
MainContext
.
MessageType
.
NEW
,
ctx
.
getOnlineUserId
(),
outMessage
,
true
);
MainContext
.
ChannelType
.
WEBIM
,
ctx
.
getAppid
(),
MainContext
.
MessageType
.
NEW
,
ctx
.
getOnlineUserId
(),
outMessage
,
true
);
}
else
{
...
...
@@ -149,7 +149,7 @@ public class ACDAgentService {
final
String
agentno
,
final
AgentUser
agentUser
,
final
String
orgi
)
throws
Exception
{
)
throws
Exception
{
final
AgentStatus
agentStatus
=
cache
.
findOneAgentStatusByAgentnoAndOrig
(
agentno
,
orgi
);
return
pickupAgentUserInQueue
(
agentUser
,
agentStatus
);
}
...
...
@@ -171,8 +171,8 @@ public class ACDAgentService {
return
;
}
logger
.
info
(
"[assignVisitors] agentStatus id {}, status {}, service {}/{}, skills {}, busy {}"
,
agentStatus
.
getId
(),
agentStatus
.
getStatus
(),
agentStatus
.
getUsers
(),
agentStatus
.
getMaxusers
(),
HashMapUtils
.
concatKeys
(
agentStatus
.
getSkills
(),
"|"
),
agentStatus
.
isBusy
());
agentStatus
.
getId
(),
agentStatus
.
getStatus
(),
agentStatus
.
getUsers
(),
agentStatus
.
getMaxusers
(),
HashMapUtils
.
concatKeys
(
agentStatus
.
getSkills
(),
"|"
),
agentStatus
.
isBusy
());
if
((!
StringUtils
.
equals
(
MainContext
.
AgentStatusEnum
.
READY
.
toString
(),
agentStatus
.
getStatus
()))
||
agentStatus
.
isBusy
())
{
...
...
@@ -276,12 +276,12 @@ public class ACDAgentService {
MainContext
.
ReceiverType
.
VISITOR
,
MainContext
.
ChannelType
.
toValue
(
agentUser
.
getChannel
()),
agentUser
.
getAppid
(),
MainContext
.
MessageType
.
STATUS
,
agentUser
.
getUserid
(),
outMessage
,
true
);
);
// 向坐席推送消息
peerSyncIM
.
send
(
MainContext
.
ReceiverType
.
AGENT
,
MainContext
.
ChannelType
.
WEBIM
,
agentUser
.
getAppid
(),
MainContext
.
MessageType
.
NEW
,
agentUser
.
getAgentno
(),
outMessage
,
true
);
agentUser
.
getAppid
(),
MainContext
.
MessageType
.
NEW
,
agentUser
.
getAgentno
(),
outMessage
,
true
);
}
}
catch
(
Exception
ex
)
{
logger
.
warn
(
"[assignVisitors] fail to process service"
,
ex
);
...
...
@@ -395,15 +395,15 @@ public class ACDAgentService {
MainContext
.
ReceiverType
.
VISITOR
,
MainContext
.
ChannelType
.
toValue
(
agentUser
.
getChannel
()),
agentUser
.
getAppid
(),
MainContext
.
MessageType
.
STATUS
,
agentUser
.
getUserid
(),
outMessage
,
true
);
);
if
(
agentStatus
!=
null
)
{
// 坐席在线,通知结束会话
outMessage
.
setChannelMessage
(
agentUser
);
outMessage
.
setAgentUser
(
agentUser
);
peerSyncIM
.
send
(
MainContext
.
ReceiverType
.
AGENT
,
MainContext
.
ChannelType
.
WEBIM
,
agentUser
.
getAppid
(),
MainContext
.
MessageType
.
END
,
agentUser
.
getAgentno
(),
outMessage
,
true
);
agentUser
.
getAppid
(),
MainContext
.
MessageType
.
END
,
agentUser
.
getAgentno
(),
outMessage
,
true
);
}
break
;
case
PHONE:
...
...
@@ -488,9 +488,15 @@ public class ACDAgentService {
final
AgentUser
agentUser
,
final
String
orgi
,
final
boolean
finished
)
{
AgentService
agentService
=
new
AgentService
();
if
(
StringUtils
.
isNotBlank
(
agentUser
.
getAgentserviceid
()))
{
agentService
.
setId
(
agentUser
.
getAgentserviceid
());
AgentService
existAgentService
=
agentServiceRes
.
findByIdAndOrgi
(
agentUser
.
getAgentserviceid
(),
orgi
);
if
(
existAgentService
!=
null
)
{
agentService
=
existAgentService
;
}
else
{
agentService
.
setId
(
agentUser
.
getAgentserviceid
());
}
}
agentService
.
setOrgi
(
orgi
);
...
...
contact-center/app/src/main/java/com/chatopera/cc/controller/apps/IMController.java
浏览文件 @
2565ff8f
...
...
@@ -665,12 +665,13 @@ public class IMController extends Handler {
}
else
{
report
=
acdWorkMonitor
.
getAgentReport
(
invite
.
getOrgi
());
}
boolean
isLeavemsg
=
false
;
if
(
report
.
getAgents
()
==
0
||
(
sessionConfig
.
isHourcheck
()
&&
!
MainUtils
.
isInWorkingHours
(
sessionConfig
.
getWorkinghours
())
&&
invite
.
isLeavemessage
()))
{
// 没有坐席在线,进入留言
isLeavemsg
=
true
;
boolean
isInWorkingHours
=
MainUtils
.
isInWorkingHours
(
sessionConfig
.
getWorkinghours
());
map
.
addAttribute
(
"isInWorkingHours"
,
isInWorkingHours
);
view
=
request
(
super
.
createRequestPageTempletResponse
(
"/apps/im/leavemsg"
));
...
...
@@ -846,7 +847,7 @@ public class IMController extends Handler {
"/apps/im/chatbot/mobile"
));
// 智能机器人 移动端
}
}
else
{
if
(
MobileDevice
.
isMobile
(
request
.
getHeader
(
"User-Agent"
))
||
StringUtils
.
isNotBlank
(
mobile
))
{
if
(
!
isLeavemsg
&&
(
MobileDevice
.
isMobile
(
request
.
getHeader
(
"User-Agent"
))
||
StringUtils
.
isNotBlank
(
mobile
)
))
{
view
=
request
(
super
.
createRequestPageTempletResponse
(
"/apps/im/mobile"
));
// WebIM移动端。再次点选技能组?
}
...
...
contact-center/app/src/main/resources/WEB-INF/data/mdx/coment.xml
浏览文件 @
2565ff8f
...
...
@@ -4,23 +4,23 @@
<View
alias=
"agentservice"
>
<SQL>
<![CDATA[
select * from uk_agentservice where
1
= 1 <#if skill?? && skill!="">
AND agentskill = '${skill!''}'
<
/#if>
<
#if agent??
&&
agent!=""> AND agentno = '${agent!''}'
<
/#if>
<
#if orgi??
&&
orgi!=""> AND orgi = '${orgi!''}'
<
/#if>
<
#if begin??
&&
begin!=""> AND satistime >= str_to_date('${begin!''}', '%Y-%m-%d %H:%i:%s')
<
/#if>
<
#if end??
&&
end!=""> AND satistime
<
= str_to_date('${end!''} 23:59:59', '%Y-%m-%d %H:%i:%s')
<
/#if>
select * from uk_agentservice where
satisfaction
= 1 <#if skill?? && skill!="">
AND agentskill = '${skill!''}'
<
/#if>
<
#if agent??
&&
agent!=""> AND agentno = '${agent!''}'
<
/#if>
<
#if orgi??
&&
orgi!=""> AND orgi = '${orgi!''}'
<
/#if>
<
#if begin??
&&
begin!=""> AND satistime >= str_to_date('${begin!''}', '%Y-%m-%d %H:%i:%s')
<
/#if>
<
#if end??
&&
end!=""> AND satistime
<
= str_to_date('${end!''} 23:59:59', '%Y-%m-%d %H:%i:%s')
<
/#if>
]]>
</SQL>
</View>
<Dimension
name=
'agent'
foreignKey=
"agentno"
>
<Hierarchy
hasAll=
'true'
allMemberName=
'合计'
primaryKey=
"id"
>
<Table
name=
"cs_user"
></Table>
<Level
name=
'坐席'
column=
'uname'
uniqueMembers=
'false'
type=
''
/>
</Hierarchy>
</Dimension>
</Dimension>
<Dimension
name=
'skill'
foreignKey=
"agentskill"
>
<Hierarchy
hasAll=
'true'
allMemberName=
'合计'
primaryKey=
"id"
>
<Table
name=
"uk_organ"
></Table>
<Level
name=
'技能组'
column=
'name'
uniqueMembers=
'false'
type=
''
/>
</Hierarchy>
</Dimension>
</Dimension>
<Dimension
name=
'time'
>
<Hierarchy
hasAll=
'true'
allMemberName=
'合计'
>
<Level
name=
'日期'
column=
'satistime'
uniqueMembers=
'false'
>
...
...
contact-center/app/src/main/resources/static/css/entim.css
浏览文件 @
2565ff8f
...
...
@@ -536,6 +536,8 @@ input,textarea{
border
:
1px
solid
#b2e5f9
;
float
:
right
;
min-width
:
25px
;
max-width
:
400px
;
word-break
:
break-all
;
}
.chatting-right
div
.chat-content
a
{
color
:
#4665d4
;
...
...
contact-center/app/src/main/resources/static/im/js/kindeditor/plugins/image/image.js
浏览文件 @
2565ff8f
...
...
@@ -79,9 +79,11 @@ KindEditor.plugin('image', function(K) {
//file
'
<div class="ke-dialog-row">
'
,
hiddenElements
.
join
(
''
),
'
<label style="width:
60
px;">
'
+
lang
.
localUrl
+
'
</label>
'
,
'
<label style="width:
52
px;">
'
+
lang
.
localUrl
+
'
</label>
'
,
'
<input type="text" name="localUrl" class="ke-input-text" tabindex="-1" style="width:200px;" readonly="true" />
'
,
'
<input type="button" class="ke-upload-button" value="
'
+
lang
.
upload
+
'
" />
'
,
'
<div style="margin: 10px 0">图片支持:png、jpeg、jpg</div>
'
,
'
<div>图片上限:20MB</div>
'
,
'
</div>
'
,
'
</form>
'
,
'
</div>
'
,
...
...
contact-center/app/src/main/resources/static/im/js/kindeditor/plugins/insertfile/insertfile.js
浏览文件 @
2565ff8f
...
...
@@ -21,14 +21,16 @@ KindEditor.plugin('insertfile', function(K) {
fileTitle
=
K
.
undef
(
options
.
fileTitle
,
''
),
clickFn
=
options
.
clickFn
;
var
html
=
[
'
<div style="padding:20px;">
'
,
'
<div style="padding:
20px 20px 0
20px;">
'
,
'
<div class="ke-dialog-row">
'
,
'
<label for="keUrl" style="width:
60
px;">
'
+
lang
.
url
+
'
</label>
'
,
'
<label for="keUrl" style="width:
52
px;">
'
+
lang
.
url
+
'
</label>
'
,
'
<input type="text" id="keUrl" name="url" class="ke-input-text" style="width:160px;" />
'
,
'
<input type="button" class="ke-upload-button" value="
'
+
lang
.
upload
+
'
" />
'
,
'
<span class="ke-button-common ke-button-outer">
'
,
'
<input type="button" class="ke-button-common ke-button" name="viewServer" value="
'
+
lang
.
viewServer
+
'
" />
'
,
'
</span>
'
,
'
<div style="margin: 10px 0">文档支持:doc/docx、xls/xlsx、pdf</div>
'
,
'
<div>文档上限:20MB</div>
'
,
'
</div>
'
,
//title
...
...
contact-center/app/src/main/resources/static/js/kindeditor/plugins/image/image.js
浏览文件 @
2565ff8f
...
...
@@ -79,9 +79,11 @@ KindEditor.plugin('image', function(K) {
//file
'
<div class="ke-dialog-row">
'
,
hiddenElements
.
join
(
''
),
'
<label style="width:
60
px;">
'
+
lang
.
localUrl
+
'
</label>
'
,
'
<label style="width:
52
px;">
'
+
lang
.
localUrl
+
'
</label>
'
,
'
<input type="text" name="localUrl" class="ke-input-text" tabindex="-1" style="width:200px;" readonly="true" />
'
,
'
<input type="button" class="ke-upload-button" value="
'
+
lang
.
upload
+
'
" />
'
,
'
<div style="margin: 10px 0">图片支持:png、jpeg、jpg</div>
'
,
'
<div>图片上限:20MB</div>
'
,
'
</div>
'
,
'
</form>
'
,
'
</div>
'
,
...
...
contact-center/app/src/main/resources/static/js/kindeditor/plugins/insertfile/insertfile.js
浏览文件 @
2565ff8f
...
...
@@ -21,14 +21,16 @@ KindEditor.plugin('insertfile', function(K) {
fileTitle
=
K
.
undef
(
options
.
fileTitle
,
''
),
clickFn
=
options
.
clickFn
;
var
html
=
[
'
<div style="padding:20px;">
'
,
'
<div style="padding:
20px 20px 0
20px;">
'
,
'
<div class="ke-dialog-row">
'
,
'
<label for="keUrl" style="width:
60
px;">
'
+
lang
.
url
+
'
</label>
'
,
'
<label for="keUrl" style="width:
52
px;">
'
+
lang
.
url
+
'
</label>
'
,
'
<input type="text" id="keUrl" name="url" class="ke-input-text" style="width:160px;" />
'
,
'
<input type="button" class="ke-upload-button" value="
'
+
lang
.
upload
+
'
" />
'
,
'
<span class="ke-button-common ke-button-outer">
'
,
'
<input type="button" class="ke-button-common ke-button" name="viewServer" value="
'
+
lang
.
viewServer
+
'
" />
'
,
'
</span>
'
,
'
<div style="margin: 10px 0">文档支持:doc/docx、xls/xlsx、pdf</div>
'
,
'
<div>文档上限:20MB</div>
'
,
'
</div>
'
,
//title
...
...
contact-center/app/src/main/resources/templates/apps/business/contacts/edit.html
浏览文件 @
2565ff8f
...
...
@@ -2,6 +2,12 @@
<div
class=
"uk-layui-form"
>
<form
class=
"layui-form"
action=
"/apps/contacts/update.html"
method=
"post"
>
<input
type=
"hidden"
name=
"id"
value=
"${contacts.id!''}"
>
<input
type=
"hidden"
name=
"wluid"
value=
"${contacts.wluid!''}"
>
<input
type=
"hidden"
name=
"wlusername"
value=
"${contacts.wlusername!''}"
>
<input
type=
"hidden"
name=
"wlcid"
value=
"${contacts.wlcid!''}"
>
<input
type=
"hidden"
name=
"wlcompany_name"
value=
"${contacts.wlcompany_name!''}"
>
<input
type=
"hidden"
name=
"wlsid"
value=
"${contacts.wlsid!''}"
>
<input
type=
"hidden"
name=
"wlsystem_name"
value=
"${contacts.wlsystem_name!''}"
>
<div
class=
"layui-collapse"
>
<div
class=
"layui-colla-item"
>
<h2
class=
"layui-colla-title"
>
基本信息
</h2>
...
...
contact-center/app/src/main/resources/templates/apps/entim/chat.html
浏览文件 @
2565ff8f
...
...
@@ -240,7 +240,7 @@
,
element
=
layui
.
element
();
//Tab的切换功能,切换事件监听等,需要依赖element模块
});
var
hostname
=
location
.
hostname
;
var
socket
=
io
.
connect
(
top
.
schema
+
"
:
//
"
+
top
.
hostname
+
"
:
"
+
top
.
port
+
"
/im/ent?userid=${user.id!''!''}&orgi=${user.orgi!''}&contextid=${contextid!''}
"
,{
transports
:
[
'
websocket
'
],
upgrade
:
false
});
var
socket
=
io
.
connect
(
location
.
protocol
+
"
//
"
+
top
.
hostname
+
"
:
"
+
top
.
port
+
"
/im/ent?userid=${user.id!''!''}&orgi=${user.orgi!''}&contextid=${contextid!''}
"
,{
transports
:
[
'
websocket
'
],
upgrade
:
false
});
socket
.
on
(
'
message
'
,
function
(
data
)
{
console
.
log
(
'
message
'
,
data
);
data
.
createtime
=
formatDate
(
data
.
createtime
);
...
...
contact-center/app/src/main/resources/templates/apps/entim/group/index.html
浏览文件 @
2565ff8f
...
...
@@ -237,7 +237,7 @@
,
element
=
layui
.
element
();
//Tab的切换功能,切换事件监听等,需要依赖element模块
});
var
hostname
=
location
.
hostname
;
var
socket
=
io
.
connect
(
top
.
schema
+
"
:
//
"
+
top
.
hostname
+
"
:
"
+
top
.
port
+
"
/im/ent?userid=${user.id!''!''}&orgi=${user.orgi!''}&contextid=${contextid!''}&group=${contextid!''}
"
,{
transports
:
[
'
websocket
'
],
upgrade
:
false
});
var
socket
=
io
.
connect
(
location
.
protocol
+
"
//
"
+
top
.
hostname
+
"
:
"
+
top
.
port
+
"
/im/ent?userid=${user.id!''!''}&orgi=${user.orgi!''}&contextid=${contextid!''}&group=${contextid!''}
"
,{
transports
:
[
'
websocket
'
],
upgrade
:
false
});
socket
.
on
(
'
message
'
,
function
(
data
)
{
data
.
createtime
=
formatDate
(
data
.
createtime
);
...
...
contact-center/app/src/main/resources/templates/apps/entim/index.html
浏览文件 @
2565ff8f
...
...
@@ -201,7 +201,7 @@
$
(
this
).
children
().
first
().
html
(
'

'
);
}
})
;
var
socket
=
io
.
connect
(
top
.
schema
+
"
:
//
"
+
top
.
hostname
+
"
:
"
+
top
.
port
+
"
/im/ent?userid=${user.id!''!''}&orgi=${user.orgi!''}
"
);
var
socket
=
io
.
connect
(
location
.
protocol
+
"
//
"
+
top
.
hostname
+
"
:
"
+
top
.
port
+
"
/im/ent?userid=${user.id!''!''}&orgi=${user.orgi!''}
"
);
socket
.
on
(
'
connect
'
,
function
(){
//service.sendRequestMessage();
//output('
<
span
id
=
"
callOutConnect-message
"
>
'
+ new Date().format("yyyy-MM-dd hh:mm:ss") +
'
开始沟通
'
+
'
<
/span>' , 'message callOutConnect-message'
)
;
...
...
contact-center/app/src/main/resources/templates/apps/entim/point.html
浏览文件 @
2565ff8f
...
...
@@ -11,7 +11,7 @@
</div>
<script>
var
hostname
=
location
.
hostname
;
var
socket
=
io
.
connect
(
top
.
schema
+
"
:
//
"
+
top
.
hostname
+
"
:
"
+
top
.
port
+
"
/im/ent?userid=${user.id!''!''}&orgi=${user.orgi!''}
"
);
var
socket
=
io
.
connect
(
location
.
protocol
+
"
//
"
+
top
.
hostname
+
"
:
"
+
top
.
port
+
"
/im/ent?userid=${user.id!''!''}&orgi=${user.orgi!''}
"
);
socket
.
on
(
'
connect
'
,
function
(){
})
socket
.
on
(
'
message
'
,
function
(
data
)
{
...
...
contact-center/app/src/main/resources/templates/apps/im/leavemsg.html
浏览文件 @
2565ff8f
...
...
@@ -20,7 +20,7 @@
<div
id=
"header"
class=
"theme${inviteData.consult_dialog_color!''}"
>
<img
src=
"<#if inviteData?? && inviteData.consult_dialog_logo??>/res/image.html?id=${inviteData.consult_dialog_logo?url}<#else>/images/logo.png</#if>"
style=
"height:30px;padding:10px;"
>
</div>
<div
class=
"ukef-leavemsg-tip"
>
<div
class=
"ukef-leavemsg-tip"
style=
"padding-left: 15px"
>
<
#if
inviteData
??
&&
inviteData.leavemessage
>
<
#if
sessionConfig
??
&&
sessionConfig.hourcheck
>
<
#if
isInWorkingHours
>
...
...
@@ -82,4 +82,14 @@
</div>
</form>
</body>
</html>
\ No newline at end of file
</html>
<style>
.leaveCon
{
width
:
100%
;
max-width
:
550px
;
padding
:
0
15px
;
}
.leaveCon
.txt01
{
width
:
calc
(
100%
-
130px
);
}
</style>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录