Browse Source

项目提交

zhengbingbing 8 years ago
commit
f2b876c10e
100 changed files with 17619 additions and 0 deletions
  1. 63 0
      .gitattributes
  2. 242 0
      .gitignore
  3. 1 0
      .idea/.name
  4. 6 0
      .idea/encodings.xml
  5. 13 0
      .idea/misc.xml
  6. 8 0
      .idea/modules.xml
  7. 6 0
      .idea/vcs.xml
  8. 167 0
      .idea/workspace.xml
  9. 8 0
      .idea/呼叫中心.iml
  10. 64 0
      .project
  11. 42 0
      AutobioCallCenterWebUI.sln
  12. 1 0
      CallCenterWeb.UI/.idea/.name
  13. 8 0
      CallCenterWeb.UI/.idea/CallCenterWeb.UI.iml
  14. 6 0
      CallCenterWeb.UI/.idea/encodings.xml
  15. 13 0
      CallCenterWeb.UI/.idea/misc.xml
  16. 8 0
      CallCenterWeb.UI/.idea/modules.xml
  17. 171 0
      CallCenterWeb.UI/.idea/workspace.xml
  18. 73 0
      CallCenterWeb.UI/.project
  19. 4 0
      CallCenterWeb.UI/ApiLog/20170331.txt
  20. 6 0
      CallCenterWeb.UI/ApiLog/20170401.txt
  21. 30 0
      CallCenterWeb.UI/ApiLog/20170404.txt
  22. 4 0
      CallCenterWeb.UI/ApiLog/20170406.txt
  23. 17 0
      CallCenterWeb.UI/App_Data/PublishProfiles/HXCallCenterWebUI.pubxml
  24. 17 0
      CallCenterWeb.UI/App_Data/PublishProfiles/XiXianSZCG_Web.pubxml
  25. 270 0
      CallCenterWeb.UI/Call.html
  26. 108 0
      CallCenterWeb.UI/CallOut.html
  27. 106 0
      CallCenterWeb.UI/GET
  28. 278 0
      CallCenterWeb.UI/Index-Management.html
  29. 225 0
      CallCenterWeb.UI/Lybf.html
  30. 182 0
      CallCenterWeb.UI/Message/FixedTime.html
  31. 108 0
      CallCenterWeb.UI/Message/MessagReceiving.html
  32. 112 0
      CallCenterWeb.UI/Message/MessageRecovery.html
  33. 227 0
      CallCenterWeb.UI/Message/MessageSend.html
  34. 250 0
      CallCenterWeb.UI/Message/MessageType.html
  35. 178 0
      CallCenterWeb.UI/Message/SendError.html
  36. 183 0
      CallCenterWeb.UI/Message/SendManagement.html
  37. 54 0
      CallCenterWeb.UI/My97DatePicker/WdatePicker.js
  38. 19 0
      CallCenterWeb.UI/My97DatePicker/calendar.js
  39. 14 0
      CallCenterWeb.UI/My97DatePicker/lang/en.js
  40. 14 0
      CallCenterWeb.UI/My97DatePicker/lang/zh-cn.js
  41. 14 0
      CallCenterWeb.UI/My97DatePicker/lang/zh-tw.js
  42. 11 0
      CallCenterWeb.UI/My97DatePicker/skin/WdatePicker.css
  43. BIN
      CallCenterWeb.UI/My97DatePicker/skin/datePicker.gif
  44. 246 0
      CallCenterWeb.UI/My97DatePicker/skin/default/datepicker.css
  45. BIN
      CallCenterWeb.UI/My97DatePicker/skin/default/img.gif
  46. BIN
      CallCenterWeb.UI/My97DatePicker/skin/whyGreen/bg.jpg
  47. 256 0
      CallCenterWeb.UI/My97DatePicker/skin/whyGreen/datepicker.css
  48. BIN
      CallCenterWeb.UI/My97DatePicker/skin/whyGreen/img.gif
  49. 239 0
      CallCenterWeb.UI/MyCallTask.html
  50. 307 0
      CallCenterWeb.UI/MyRuselt.html
  51. 264 0
      CallCenterWeb.UI/OnDuty/Duty.html
  52. 346 0
      CallCenterWeb.UI/OnDuty/SeatsMessage.html
  53. 472 0
      CallCenterWeb.UI/Quality/qualityControl.html
  54. 215 0
      CallCenterWeb.UI/Quality/zhibiaoguanli.html
  55. 135 0
      CallCenterWeb.UI/Quality/zj.json
  56. 531 0
      CallCenterWeb.UI/Quality/zjpf.html
  57. 93 0
      CallCenterWeb.UI/Quality/zjxq.json
  58. 164 0
      CallCenterWeb.UI/Report/Business/WorkDept.html
  59. 212 0
      CallCenterWeb.UI/Report/Business/WorkEfficiency.html
  60. 216 0
      CallCenterWeb.UI/Report/Business/WorkPeriod.html
  61. 1268 0
      CallCenterWeb.UI/ResultCx.html
  62. 286 0
      CallCenterWeb.UI/ResultXj.html
  63. 317 0
      CallCenterWeb.UI/Script/Class/DateHelper.js
  64. 11 0
      CallCenterWeb.UI/Script/Common/huayi.config.js
  65. 13 0
      CallCenterWeb.UI/Script/Common/huayi.cookies.js
  66. 595 0
      CallCenterWeb.UI/Script/Common/huayi.http.js
  67. 44 0
      CallCenterWeb.UI/Script/Common/huayi.load.js
  68. 7 0
      CallCenterWeb.UI/Script/test.js
  69. 292 0
      CallCenterWeb.UI/ShuJuDuiBi.html
  70. 29 0
      CallCenterWeb.UI/SysConfig/1.json
  71. 5 0
      CallCenterWeb.UI/SysConfig/Services.config
  72. 598 0
      CallCenterWeb.UI/SystemManager/MenuManage.html
  73. 100 0
      CallCenterWeb.UI/SystemManager/SeatAuthorizationManage.html
  74. 111 0
      CallCenterWeb.UI/SystemManager/buMenManger.html
  75. 239 0
      CallCenterWeb.UI/SystemManager/caoZuoRiZhi.html
  76. 57 0
      CallCenterWeb.UI/SystemManager/css/buMenManger.css
  77. 121 0
      CallCenterWeb.UI/SystemManager/css/shuJuZiDian.css
  78. 134 0
      CallCenterWeb.UI/SystemManager/css/yongHuManger.css
  79. 173 0
      CallCenterWeb.UI/SystemManager/dengLuRiZhi.html
  80. 136 0
      CallCenterWeb.UI/SystemManager/gongNeng.html
  81. 240 0
      CallCenterWeb.UI/SystemManager/huaWuRiZhi.html
  82. 155 0
      CallCenterWeb.UI/SystemManager/jiChuShuJu.html
  83. 345 0
      CallCenterWeb.UI/SystemManager/js/buMenManger.js
  84. 350 0
      CallCenterWeb.UI/SystemManager/js/gongNengManger.js
  85. 240 0
      CallCenterWeb.UI/SystemManager/js/jiChuShuJu.js
  86. 297 0
      CallCenterWeb.UI/SystemManager/js/jueSeQuanXian.js
  87. 458 0
      CallCenterWeb.UI/SystemManager/js/shuJuZiDian.js
  88. 742 0
      CallCenterWeb.UI/SystemManager/js/yongHuManger.js
  89. 189 0
      CallCenterWeb.UI/SystemManager/jueSeQuanXian.html
  90. 250 0
      CallCenterWeb.UI/SystemManager/shuJuZiDian.html
  91. 415 0
      CallCenterWeb.UI/SystemManager/yongHuManger.html
  92. 273 0
      CallCenterWeb.UI/TelCall/BlackList.html
  93. 591 0
      CallCenterWeb.UI/TelCall/CallRecord.html
  94. 270 0
      CallCenterWeb.UI/TelCall/NumberAssignment.html
  95. 668 0
      CallCenterWeb.UI/TelCall/SeatMonitor.html
  96. 272 0
      CallCenterWeb.UI/TelCall/VoiceMail.html
  97. 246 0
      CallCenterWeb.UI/TelCall/WorkTime.html
  98. 32 0
      CallCenterWeb.UI/Web.Debug.config
  99. 23 0
      CallCenterWeb.UI/Web.config
  100. 0 0
      CallCenterWeb.UI/Whfp.html

+ 63 - 0
.gitattributes

@@ -0,0 +1,63 @@
1
+###############################################################################
2
+# Set default behavior to automatically normalize line endings.
3
+###############################################################################
4
+* text=auto
5
+
6
+###############################################################################
7
+# Set default behavior for command prompt diff.
8
+#
9
+# This is need for earlier builds of msysgit that does not have it on by
10
+# default for csharp files.
11
+# Note: This is only used by command line
12
+###############################################################################
13
+#*.cs     diff=csharp
14
+
15
+###############################################################################
16
+# Set the merge driver for project and solution files
17
+#
18
+# Merging from the command prompt will add diff markers to the files if there
19
+# are conflicts (Merging from VS is not affected by the settings below, in VS
20
+# the diff markers are never inserted). Diff markers may cause the following 
21
+# file extensions to fail to load in VS. An alternative would be to treat
22
+# these files as binary and thus will always conflict and require user
23
+# intervention with every merge. To do so, just uncomment the entries below
24
+###############################################################################
25
+#*.sln       merge=binary
26
+#*.csproj    merge=binary
27
+#*.vbproj    merge=binary
28
+#*.vcxproj   merge=binary
29
+#*.vcproj    merge=binary
30
+#*.dbproj    merge=binary
31
+#*.fsproj    merge=binary
32
+#*.lsproj    merge=binary
33
+#*.wixproj   merge=binary
34
+#*.modelproj merge=binary
35
+#*.sqlproj   merge=binary
36
+#*.wwaproj   merge=binary
37
+
38
+###############################################################################
39
+# behavior for image files
40
+#
41
+# image files are treated as binary by default.
42
+###############################################################################
43
+#*.jpg   binary
44
+#*.png   binary
45
+#*.gif   binary
46
+
47
+###############################################################################
48
+# diff behavior for common document formats
49
+# 
50
+# Convert binary document formats to text before diffing them. This feature
51
+# is only available from the command line. Turn it on by uncommenting the 
52
+# entries below.
53
+###############################################################################
54
+#*.doc   diff=astextplain
55
+#*.DOC   diff=astextplain
56
+#*.docx  diff=astextplain
57
+#*.DOCX  diff=astextplain
58
+#*.dot   diff=astextplain
59
+#*.DOT   diff=astextplain
60
+#*.pdf   diff=astextplain
61
+#*.PDF   diff=astextplain
62
+#*.rtf   diff=astextplain
63
+#*.RTF   diff=astextplain

+ 242 - 0
.gitignore

@@ -0,0 +1,242 @@
1
+## Ignore Visual Studio temporary files, build results, and
2
+## files generated by popular Visual Studio add-ons.
3
+
4
+# User-specific files
5
+*.suo
6
+*.user
7
+*.userosscache
8
+*.sln.docstates
9
+
10
+# User-specific files (MonoDevelop/Xamarin Studio)
11
+*.userprefs
12
+
13
+# Build results
14
+[Dd]ebug/
15
+[Dd]ebugPublic/
16
+[Rr]elease/
17
+[Rr]eleases/
18
+[Xx]64/
19
+[Xx]86/
20
+[Bb]uild/
21
+bld/
22
+[Bb]in/
23
+[Oo]bj/
24
+
25
+# Visual Studio 2015 cache/options directory
26
+.vs/
27
+# Uncomment if you have tasks that create the project's static files in wwwroot
28
+#wwwroot/
29
+
30
+# MSTest test Results
31
+[Tt]est[Rr]esult*/
32
+[Bb]uild[Ll]og.*
33
+
34
+# NUNIT
35
+*.VisualState.xml
36
+TestResult.xml
37
+
38
+# Build Results of an ATL Project
39
+[Dd]ebugPS/
40
+[Rr]eleasePS/
41
+dlldata.c
42
+
43
+# DNX
44
+project.lock.json
45
+artifacts/
46
+
47
+*_i.c
48
+*_p.c
49
+*_i.h
50
+*.ilk
51
+*.meta
52
+*.obj
53
+*.pch
54
+*.pdb
55
+*.pgc
56
+*.pgd
57
+*.rsp
58
+*.sbr
59
+*.tlb
60
+*.tli
61
+*.tlh
62
+*.tmp
63
+*.tmp_proj
64
+*.log
65
+*.vspscc
66
+*.vssscc
67
+.builds
68
+*.pidb
69
+*.svclog
70
+*.scc
71
+
72
+# Chutzpah Test files
73
+_Chutzpah*
74
+
75
+# Visual C++ cache files
76
+ipch/
77
+*.aps
78
+*.ncb
79
+*.opendb
80
+*.opensdf
81
+*.sdf
82
+*.cachefile
83
+*.VC.db
84
+
85
+# Visual Studio profiler
86
+*.psess
87
+*.vsp
88
+*.vspx
89
+*.sap
90
+
91
+# TFS 2012 Local Workspace
92
+$tf/
93
+
94
+# Guidance Automation Toolkit
95
+*.gpState
96
+
97
+# ReSharper is a .NET coding add-in
98
+_ReSharper*/
99
+*.[Rr]e[Ss]harper
100
+*.DotSettings.user
101
+
102
+# JustCode is a .NET coding add-in
103
+.JustCode
104
+
105
+# TeamCity is a build add-in
106
+_TeamCity*
107
+
108
+# DotCover is a Code Coverage Tool
109
+*.dotCover
110
+
111
+# NCrunch
112
+_NCrunch_*
113
+.*crunch*.local.xml
114
+nCrunchTemp_*
115
+
116
+# MightyMoose
117
+*.mm.*
118
+AutoTest.Net/
119
+
120
+# Web workbench (sass)
121
+.sass-cache/
122
+
123
+# Installshield output folder
124
+[Ee]xpress/
125
+
126
+# DocProject is a documentation generator add-in
127
+DocProject/buildhelp/
128
+DocProject/Help/*.HxT
129
+DocProject/Help/*.HxC
130
+DocProject/Help/*.hhc
131
+DocProject/Help/*.hhk
132
+DocProject/Help/*.hhp
133
+DocProject/Help/Html2
134
+DocProject/Help/html
135
+
136
+# Click-Once directory
137
+publish/
138
+
139
+# Publish Web Output
140
+*.[Pp]ublish.xml
141
+*.azurePubxml
142
+
143
+# TODO: Un-comment the next line if you do not want to checkin
144
+# your web deploy settings because they may include unencrypted
145
+# passwords
146
+#*.pubxml
147
+*.publishproj
148
+
149
+# NuGet Packages
150
+*.nupkg
151
+# The packages folder can be ignored because of Package Restore
152
+**/packages/*
153
+# except build/, which is used as an MSBuild target.
154
+!**/packages/build/
155
+# Uncomment if necessary however generally it will be regenerated when needed
156
+#!**/packages/repositories.config
157
+# NuGet v3's project.json files produces more ignoreable files
158
+*.nuget.props
159
+*.nuget.targets
160
+
161
+# Microsoft Azure Build Output
162
+csx/
163
+*.build.csdef
164
+
165
+# Microsoft Azure Emulator
166
+ecf/
167
+rcf/
168
+
169
+# Windows Store app package directory
170
+AppPackages/
171
+BundleArtifacts/
172
+
173
+# Visual Studio cache files
174
+# files ending in .cache can be ignored
175
+*.[Cc]ache
176
+# but keep track of directories ending in .cache
177
+!*.[Cc]ache/
178
+
179
+# Others
180
+ClientBin/
181
+[Ss]tyle[Cc]op.*
182
+~$*
183
+*~
184
+*.dbmdl
185
+*.dbproj.schemaview
186
+*.pfx
187
+*.publishsettings
188
+node_modules/
189
+orleans.codegen.cs
190
+
191
+# RIA/Silverlight projects
192
+Generated_Code/
193
+
194
+# Backup & report files from converting an old project file
195
+# to a newer Visual Studio version. Backup files are not needed,
196
+# because we have git ;-)
197
+_UpgradeReport_Files/
198
+Backup*/
199
+UpgradeLog*.XML
200
+UpgradeLog*.htm
201
+
202
+# SQL Server files
203
+*.mdf
204
+*.ldf
205
+
206
+# Business Intelligence projects
207
+*.rdl.data
208
+*.bim.layout
209
+*.bim_*.settings
210
+
211
+# Microsoft Fakes
212
+FakesAssemblies/
213
+
214
+# GhostDoc plugin setting file
215
+*.GhostDoc.xml
216
+
217
+# Node.js Tools for Visual Studio
218
+.ntvs_analysis.dat
219
+
220
+# Visual Studio 6 build log
221
+*.plg
222
+
223
+# Visual Studio 6 workspace options file
224
+*.opt
225
+
226
+# Visual Studio LightSwitch build output
227
+**/*.HTMLClient/GeneratedArtifacts
228
+**/*.DesktopClient/GeneratedArtifacts
229
+**/*.DesktopClient/ModelManifest.xml
230
+**/*.Server/GeneratedArtifacts
231
+**/*.Server/ModelManifest.xml
232
+_Pvt_Extensions
233
+
234
+# LightSwitch generated files
235
+GeneratedArtifacts/
236
+ModelManifest.xml
237
+
238
+# Paket dependency manager
239
+.paket/paket.exe
240
+
241
+# FAKE - F# Make
242
+.fake/

+ 1 - 0
.idea/.name

@@ -0,0 +1 @@
1
+呼叫中心

+ 6 - 0
.idea/encodings.xml

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="Encoding">
4
+    <file url="PROJECT" charset="UTF-8" />
5
+  </component>
6
+</project>

+ 13 - 0
.idea/misc.xml

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
4
+    <OptionsSetting value="true" id="Add" />
5
+    <OptionsSetting value="true" id="Remove" />
6
+    <OptionsSetting value="true" id="Checkout" />
7
+    <OptionsSetting value="true" id="Update" />
8
+    <OptionsSetting value="true" id="Status" />
9
+    <OptionsSetting value="true" id="Edit" />
10
+    <ConfirmationsSetting value="0" id="Add" />
11
+    <ConfirmationsSetting value="0" id="Remove" />
12
+  </component>
13
+</project>

+ 8 - 0
.idea/modules.xml

@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectModuleManager">
4
+    <modules>
5
+      <module fileurl="file://$PROJECT_DIR$/.idea/呼叫中心.iml" filepath="$PROJECT_DIR$/.idea/呼叫中心.iml" />
6
+    </modules>
7
+  </component>
8
+</project>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="VcsDirectoryMappings">
4
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+  </component>
6
+</project>

+ 167 - 0
.idea/workspace.xml

@@ -0,0 +1,167 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ChangeListManager">
4
+    <list default="true" id="150892c1-6d9c-4028-8fa0-406ecc9b1c3d" name="Default" comment="" />
5
+    <ignored path="呼叫中心.iws" />
6
+    <ignored path=".idea/workspace.xml" />
7
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
8
+    <option name="TRACKING_ENABLED" value="true" />
9
+    <option name="SHOW_DIALOG" value="false" />
10
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
11
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
12
+    <option name="LAST_RESOLUTION" value="IGNORE" />
13
+  </component>
14
+  <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
15
+  <component name="CreatePatchCommitExecutor">
16
+    <option name="PATCH_PATH" value="" />
17
+  </component>
18
+  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
19
+  <component name="FavoritesManager">
20
+    <favorites_list name="呼叫中心" />
21
+  </component>
22
+  <component name="FileEditorManager">
23
+    <leaf>
24
+      <file leaf-file-name="index.html" pinned="false" current-in-tab="true">
25
+        <entry file="file://$PROJECT_DIR$/CallCenterWeb.UI/index.html">
26
+          <provider selected="true" editor-type-id="text-editor">
27
+            <state vertical-scroll-proportion="0.3321617">
28
+              <caret line="7" column="60" selection-start-line="7" selection-start-column="60" selection-end-line="7" selection-end-column="60" />
29
+              <folding />
30
+            </state>
31
+          </provider>
32
+        </entry>
33
+      </file>
34
+    </leaf>
35
+  </component>
36
+  <component name="Git.Settings">
37
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
38
+  </component>
39
+  <component name="JsBuildToolGruntFileManager" detection-done="true" />
40
+  <component name="JsBuildToolPackageJson" detection-done="true" />
41
+  <component name="JsGulpfileManager">
42
+    <detection-done>true</detection-done>
43
+  </component>
44
+  <component name="ProjectFrameBounds">
45
+    <option name="x" value="-8" />
46
+    <option name="y" value="-8" />
47
+    <option name="width" value="1370" />
48
+    <option name="height" value="744" />
49
+  </component>
50
+  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
51
+    <OptionsSetting value="true" id="Add" />
52
+    <OptionsSetting value="true" id="Remove" />
53
+    <OptionsSetting value="true" id="Checkout" />
54
+    <OptionsSetting value="true" id="Update" />
55
+    <OptionsSetting value="true" id="Status" />
56
+    <OptionsSetting value="true" id="Edit" />
57
+    <ConfirmationsSetting value="0" id="Add" />
58
+    <ConfirmationsSetting value="0" id="Remove" />
59
+  </component>
60
+  <component name="ProjectView">
61
+    <navigator currentView="ProjectPane" proportions="" version="1">
62
+      <flattenPackages />
63
+      <showMembers />
64
+      <showModules />
65
+      <showLibraryContents />
66
+      <hideEmptyPackages />
67
+      <abbreviatePackageNames />
68
+      <autoscrollToSource />
69
+      <autoscrollFromSource />
70
+      <sortByType />
71
+      <manualOrder />
72
+      <foldersAlwaysOnTop value="true" />
73
+    </navigator>
74
+    <panes>
75
+      <pane id="Scratches" />
76
+      <pane id="Scope" />
77
+      <pane id="ProjectPane">
78
+        <subPane>
79
+          <PATH>
80
+            <PATH_ELEMENT>
81
+              <option name="myItemId" value="呼叫中心" />
82
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
83
+            </PATH_ELEMENT>
84
+          </PATH>
85
+          <PATH>
86
+            <PATH_ELEMENT>
87
+              <option name="myItemId" value="呼叫中心" />
88
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
89
+            </PATH_ELEMENT>
90
+            <PATH_ELEMENT>
91
+              <option name="myItemId" value="呼叫中心" />
92
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
93
+            </PATH_ELEMENT>
94
+          </PATH>
95
+          <PATH>
96
+            <PATH_ELEMENT>
97
+              <option name="myItemId" value="呼叫中心" />
98
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
99
+            </PATH_ELEMENT>
100
+            <PATH_ELEMENT>
101
+              <option name="myItemId" value="呼叫中心" />
102
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
103
+            </PATH_ELEMENT>
104
+            <PATH_ELEMENT>
105
+              <option name="myItemId" value="CallCenterWeb.UI" />
106
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
107
+            </PATH_ELEMENT>
108
+          </PATH>
109
+        </subPane>
110
+      </pane>
111
+    </panes>
112
+  </component>
113
+  <component name="PropertiesComponent">
114
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/CallCenterWeb.UI" />
115
+    <property name="WebServerToolWindowFactoryState" value="false" />
116
+    <property name="HbShouldOpenHtmlAsHb" value="" />
117
+  </component>
118
+  <component name="ShelveChangesManager" show_recycled="false" />
119
+  <component name="TaskManager">
120
+    <task active="true" id="Default" summary="Default task">
121
+      <changelist id="150892c1-6d9c-4028-8fa0-406ecc9b1c3d" name="Default" comment="" />
122
+      <created>1499130466423</created>
123
+      <option name="number" value="Default" />
124
+      <updated>1499130466423</updated>
125
+    </task>
126
+    <servers />
127
+  </component>
128
+  <component name="ToolWindowManager">
129
+    <frame x="-8" y="-8" width="1370" height="744" extended-state="0" />
130
+    <editor active="false" />
131
+    <layout>
132
+      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24963072" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
133
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
134
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
135
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
136
+      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
137
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
138
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
139
+      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
140
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
141
+      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
142
+      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
143
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
144
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
145
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
146
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
147
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
148
+    </layout>
149
+  </component>
150
+  <component name="VcsContentAnnotationSettings">
151
+    <option name="myLimit" value="2678400000" />
152
+  </component>
153
+  <component name="XDebuggerManager">
154
+    <breakpoint-manager />
155
+    <watches-manager />
156
+  </component>
157
+  <component name="editorHistoryManager">
158
+    <entry file="file://$PROJECT_DIR$/CallCenterWeb.UI/index.html">
159
+      <provider selected="true" editor-type-id="text-editor">
160
+        <state vertical-scroll-proportion="0.3321617">
161
+          <caret line="7" column="60" selection-start-line="7" selection-start-column="60" selection-end-line="7" selection-end-column="60" />
162
+          <folding />
163
+        </state>
164
+      </provider>
165
+    </entry>
166
+  </component>
167
+</project>

+ 8 - 0
.idea/呼叫中心.iml

@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module type="WEB_MODULE" version="4">
3
+  <component name="NewModuleRootManager">
4
+    <content url="file://$MODULE_DIR$" />
5
+    <orderEntry type="inheritedJdk" />
6
+    <orderEntry type="sourceFolder" forTests="false" />
7
+  </component>
8
+</module>

+ 64 - 0
.project

@@ -0,0 +1,64 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<projectDescription>
3
+	<name>呼叫系统</name>
4
+	<comment></comment>
5
+	<projects>
6
+	</projects>
7
+	<buildSpec>
8
+		<buildCommand>
9
+			<name>com.aptana.ide.core.unifiedBuilder</name>
10
+			<arguments>
11
+			</arguments>
12
+		</buildCommand>
13
+	</buildSpec>
14
+	<natures>
15
+		<nature>com.aptana.projects.webnature</nature>
16
+	</natures>
17
+	<filteredResources>
18
+		<filter>
19
+			<id>1495136658527</id>
20
+			<name></name>
21
+			<type>26</type>
22
+			<matcher>
23
+				<id>org.eclipse.ui.ide.multiFilter</id>
24
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
25
+			</matcher>
26
+		</filter>
27
+		<filter>
28
+			<id>1495136658574</id>
29
+			<name></name>
30
+			<type>26</type>
31
+			<matcher>
32
+				<id>org.eclipse.ui.ide.multiFilter</id>
33
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
34
+			</matcher>
35
+		</filter>
36
+		<filter>
37
+			<id>1499955400322</id>
38
+			<name></name>
39
+			<type>26</type>
40
+			<matcher>
41
+				<id>org.eclipse.ui.ide.multiFilter</id>
42
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
43
+			</matcher>
44
+		</filter>
45
+		<filter>
46
+			<id>1502436036365</id>
47
+			<name></name>
48
+			<type>26</type>
49
+			<matcher>
50
+				<id>org.eclipse.ui.ide.multiFilter</id>
51
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
52
+			</matcher>
53
+		</filter>
54
+		<filter>
55
+			<id>1503537590713</id>
56
+			<name></name>
57
+			<type>26</type>
58
+			<matcher>
59
+				<id>org.eclipse.ui.ide.multiFilter</id>
60
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
61
+			</matcher>
62
+		</filter>
63
+	</filteredResources>
64
+</projectDescription>

+ 42 - 0
AutobioCallCenterWebUI.sln

@@ -0,0 +1,42 @@
1
+
2
+Microsoft Visual Studio Solution File, Format Version 12.00
3
+# Visual Studio 14
4
+VisualStudioVersion = 14.0.25420.1
5
+MinimumVisualStudioVersion = 10.0.40219.1
6
+Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "CallCenterWeb.UI(1)", "CallCenterWeb.UI\", "{5DE468F6-3F51-41DB-8113-13E8D1BB62DD}"
7
+	ProjectSection(WebsiteProperties) = preProject
8
+		TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.5"
9
+		ProjectReferences = ""
10
+		Debug.AspNetCompiler.VirtualPath = "/localhost_74123"
11
+		Debug.AspNetCompiler.PhysicalPath = "CallCenterWeb.UI\"
12
+		Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_74123\"
13
+		Debug.AspNetCompiler.Updateable = "true"
14
+		Debug.AspNetCompiler.ForceOverwrite = "true"
15
+		Debug.AspNetCompiler.FixedNames = "false"
16
+		Debug.AspNetCompiler.Debug = "True"
17
+		Release.AspNetCompiler.VirtualPath = "/localhost_74123"
18
+		Release.AspNetCompiler.PhysicalPath = "CallCenterWeb.UI\"
19
+		Release.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_74123\"
20
+		Release.AspNetCompiler.Updateable = "true"
21
+		Release.AspNetCompiler.ForceOverwrite = "true"
22
+		Release.AspNetCompiler.FixedNames = "false"
23
+		Release.AspNetCompiler.Debug = "False"
24
+		VWDPort = "74123"
25
+		SlnRelativePath = "CallCenterWeb.UI\"
26
+	EndProjectSection
27
+EndProject
28
+Global
29
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
30
+		Debug|Any CPU = Debug|Any CPU
31
+		Release|Any CPU = Release|Any CPU
32
+	EndGlobalSection
33
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
34
+		{5DE468F6-3F51-41DB-8113-13E8D1BB62DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
35
+		{5DE468F6-3F51-41DB-8113-13E8D1BB62DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
36
+		{5DE468F6-3F51-41DB-8113-13E8D1BB62DD}.Release|Any CPU.ActiveCfg = Debug|Any CPU
37
+		{5DE468F6-3F51-41DB-8113-13E8D1BB62DD}.Release|Any CPU.Build.0 = Debug|Any CPU
38
+	EndGlobalSection
39
+	GlobalSection(SolutionProperties) = preSolution
40
+		HideSolutionNode = FALSE
41
+	EndGlobalSection
42
+EndGlobal

+ 1 - 0
CallCenterWeb.UI/.idea/.name

@@ -0,0 +1 @@
1
+CallCenterWeb.UI

+ 8 - 0
CallCenterWeb.UI/.idea/CallCenterWeb.UI.iml

@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module type="WEB_MODULE" version="4">
3
+  <component name="NewModuleRootManager">
4
+    <content url="file://$MODULE_DIR$" />
5
+    <orderEntry type="inheritedJdk" />
6
+    <orderEntry type="sourceFolder" forTests="false" />
7
+  </component>
8
+</module>

+ 6 - 0
CallCenterWeb.UI/.idea/encodings.xml

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="Encoding">
4
+    <file url="PROJECT" charset="UTF-8" />
5
+  </component>
6
+</project>

+ 13 - 0
CallCenterWeb.UI/.idea/misc.xml

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
4
+    <OptionsSetting value="true" id="Add" />
5
+    <OptionsSetting value="true" id="Remove" />
6
+    <OptionsSetting value="true" id="Checkout" />
7
+    <OptionsSetting value="true" id="Update" />
8
+    <OptionsSetting value="true" id="Status" />
9
+    <OptionsSetting value="true" id="Edit" />
10
+    <ConfirmationsSetting value="0" id="Add" />
11
+    <ConfirmationsSetting value="0" id="Remove" />
12
+  </component>
13
+</project>

+ 8 - 0
CallCenterWeb.UI/.idea/modules.xml

@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectModuleManager">
4
+    <modules>
5
+      <module fileurl="file://$PROJECT_DIR$/.idea/CallCenterWeb.UI.iml" filepath="$PROJECT_DIR$/.idea/CallCenterWeb.UI.iml" />
6
+    </modules>
7
+  </component>
8
+</project>

+ 171 - 0
CallCenterWeb.UI/.idea/workspace.xml

@@ -0,0 +1,171 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ChangeListManager">
4
+    <list default="true" id="fa88d641-7746-4588-a30c-b449c022e741" name="Default" comment="" />
5
+    <ignored path="CallCenterWeb.UI.iws" />
6
+    <ignored path=".idea/workspace.xml" />
7
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
8
+    <option name="TRACKING_ENABLED" value="true" />
9
+    <option name="SHOW_DIALOG" value="false" />
10
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
11
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
12
+    <option name="LAST_RESOLUTION" value="IGNORE" />
13
+  </component>
14
+  <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
15
+  <component name="CreatePatchCommitExecutor">
16
+    <option name="PATCH_PATH" value="" />
17
+  </component>
18
+  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
19
+  <component name="FavoritesManager">
20
+    <favorites_list name="CallCenterWeb.UI" />
21
+  </component>
22
+  <component name="JsBuildToolGruntFileManager" detection-done="true" />
23
+  <component name="JsBuildToolPackageJson" detection-done="true" />
24
+  <component name="JsGulpfileManager">
25
+    <detection-done>true</detection-done>
26
+  </component>
27
+  <component name="ProjectFrameBounds">
28
+    <option name="x" value="-8" />
29
+    <option name="y" value="-8" />
30
+    <option name="width" value="1370" />
31
+    <option name="height" value="744" />
32
+  </component>
33
+  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
34
+    <OptionsSetting value="true" id="Add" />
35
+    <OptionsSetting value="true" id="Remove" />
36
+    <OptionsSetting value="true" id="Checkout" />
37
+    <OptionsSetting value="true" id="Update" />
38
+    <OptionsSetting value="true" id="Status" />
39
+    <OptionsSetting value="true" id="Edit" />
40
+    <ConfirmationsSetting value="0" id="Add" />
41
+    <ConfirmationsSetting value="0" id="Remove" />
42
+  </component>
43
+  <component name="ProjectView">
44
+    <navigator currentView="ProjectPane" proportions="" version="1">
45
+      <flattenPackages />
46
+      <showMembers />
47
+      <showModules />
48
+      <showLibraryContents />
49
+      <hideEmptyPackages />
50
+      <abbreviatePackageNames />
51
+      <autoscrollToSource />
52
+      <autoscrollFromSource />
53
+      <sortByType />
54
+      <manualOrder />
55
+      <foldersAlwaysOnTop value="true" />
56
+    </navigator>
57
+    <panes>
58
+      <pane id="Scope" />
59
+      <pane id="ProjectPane">
60
+        <subPane>
61
+          <PATH>
62
+            <PATH_ELEMENT>
63
+              <option name="myItemId" value="CallCenterWeb.UI" />
64
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
65
+            </PATH_ELEMENT>
66
+          </PATH>
67
+          <PATH>
68
+            <PATH_ELEMENT>
69
+              <option name="myItemId" value="CallCenterWeb.UI" />
70
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
71
+            </PATH_ELEMENT>
72
+            <PATH_ELEMENT>
73
+              <option name="myItemId" value="CallCenterWeb.UI" />
74
+              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
75
+            </PATH_ELEMENT>
76
+          </PATH>
77
+        </subPane>
78
+      </pane>
79
+      <pane id="Scratches" />
80
+    </panes>
81
+  </component>
82
+  <component name="PropertiesComponent">
83
+    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
84
+    <property name="WebServerToolWindowFactoryState" value="false" />
85
+    <property name="HbShouldOpenHtmlAsHb" value="" />
86
+  </component>
87
+  <component name="RunManager">
88
+    <configuration default="true" type="DartCommandLineRunConfigurationType" factoryName="Dart Command Line Application">
89
+      <method />
90
+    </configuration>
91
+    <configuration default="true" type="DartTestRunConfigurationType" factoryName="Dart Test">
92
+      <method />
93
+    </configuration>
94
+    <configuration default="true" type="JavaScriptTestRunnerKarma" factoryName="Karma" config-file="">
95
+      <envs />
96
+      <method />
97
+    </configuration>
98
+    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
99
+      <method />
100
+    </configuration>
101
+    <configuration default="true" type="NodeJSConfigurationType" factoryName="Node.js" working-dir="">
102
+      <method />
103
+    </configuration>
104
+    <configuration default="true" type="cucumber.js" factoryName="Cucumber.js">
105
+      <option name="cucumberJsArguments" value="" />
106
+      <option name="executablePath" />
107
+      <option name="filePath" />
108
+      <method />
109
+    </configuration>
110
+    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
111
+      <method />
112
+    </configuration>
113
+    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
114
+      <command value="run-script" />
115
+      <scripts />
116
+      <envs />
117
+      <method />
118
+    </configuration>
119
+    <configuration default="true" type="mocha-javascript-test-runner" factoryName="Mocha">
120
+      <node-options />
121
+      <working-directory>$PROJECT_DIR$</working-directory>
122
+      <pass-parent-env>true</pass-parent-env>
123
+      <envs />
124
+      <ui>bdd</ui>
125
+      <extra-mocha-options />
126
+      <test-kind>DIRECTORY</test-kind>
127
+      <test-directory />
128
+      <recursive>false</recursive>
129
+      <method />
130
+    </configuration>
131
+  </component>
132
+  <component name="ShelveChangesManager" show_recycled="false" />
133
+  <component name="TaskManager">
134
+    <task active="true" id="Default" summary="Default task">
135
+      <changelist id="fa88d641-7746-4588-a30c-b449c022e741" name="Default" comment="" />
136
+      <created>1499130541050</created>
137
+      <option name="number" value="Default" />
138
+      <updated>1499130541050</updated>
139
+    </task>
140
+    <servers />
141
+  </component>
142
+  <component name="ToolWindowManager">
143
+    <frame x="-8" y="-8" width="1370" height="744" extended-state="0" />
144
+    <editor active="false" />
145
+    <layout>
146
+      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24963072" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
147
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
148
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
149
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
150
+      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
151
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
152
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
153
+      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
154
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
155
+      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
156
+      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
157
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
158
+      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
159
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
160
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
161
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
162
+    </layout>
163
+  </component>
164
+  <component name="VcsContentAnnotationSettings">
165
+    <option name="myLimit" value="2678400000" />
166
+  </component>
167
+  <component name="XDebuggerManager">
168
+    <breakpoint-manager />
169
+    <watches-manager />
170
+  </component>
171
+</project>

+ 73 - 0
CallCenterWeb.UI/.project

@@ -0,0 +1,73 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<projectDescription>
3
+	<name>CallCenterWeb.UI</name>
4
+	<comment></comment>
5
+	<projects>
6
+	</projects>
7
+	<buildSpec>
8
+		<buildCommand>
9
+			<name>com.aptana.ide.core.unifiedBuilder</name>
10
+			<arguments>
11
+			</arguments>
12
+		</buildCommand>
13
+	</buildSpec>
14
+	<natures>
15
+		<nature>com.aptana.projects.webnature</nature>
16
+	</natures>
17
+	<filteredResources>
18
+		<filter>
19
+			<id>1499962560129</id>
20
+			<name></name>
21
+			<type>26</type>
22
+			<matcher>
23
+				<id>org.eclipse.ui.ide.multiFilter</id>
24
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
25
+			</matcher>
26
+		</filter>
27
+		<filter>
28
+			<id>1499962627366</id>
29
+			<name></name>
30
+			<type>26</type>
31
+			<matcher>
32
+				<id>org.eclipse.ui.ide.multiFilter</id>
33
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
34
+			</matcher>
35
+		</filter>
36
+		<filter>
37
+			<id>1500016710765</id>
38
+			<name></name>
39
+			<type>26</type>
40
+			<matcher>
41
+				<id>org.eclipse.ui.ide.multiFilter</id>
42
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
43
+			</matcher>
44
+		</filter>
45
+		<filter>
46
+			<id>1502436648911</id>
47
+			<name></name>
48
+			<type>26</type>
49
+			<matcher>
50
+				<id>org.eclipse.ui.ide.multiFilter</id>
51
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
52
+			</matcher>
53
+		</filter>
54
+		<filter>
55
+			<id>1503537748469</id>
56
+			<name></name>
57
+			<type>26</type>
58
+			<matcher>
59
+				<id>org.eclipse.ui.ide.multiFilter</id>
60
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
61
+			</matcher>
62
+		</filter>
63
+		<filter>
64
+			<id>1508741256859</id>
65
+			<name></name>
66
+			<type>26</type>
67
+			<matcher>
68
+				<id>org.eclipse.ui.ide.multiFilter</id>
69
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
70
+			</matcher>
71
+		</filter>
72
+	</filteredResources>
73
+</projectDescription>

+ 4 - 0
CallCenterWeb.UI/ApiLog/20170331.txt

@@ -0,0 +1,4 @@
1
+日期:2017/3/31 22:22:04;URL:http://localhost:801//?&keys=ijhi0Icuf7S5R/caljPBLLqKCGrG7NmbQSkJvlUVIUk3MS+4uBB6s1zAy+DPPOtJ4Kk4tQWB0IKFYyOL83f6ad4xrsjOU9ND3xupIgQR/t0=&view=aBnuwE9aLXhB0WJ1&ip=::1;
2
+
3
+日期:2017/3/31 22:24:18;URL:http://localhost:801//?&keys=LIJn2UK3rnN+qIb+1c94f8DNsb2cNUL6mLeb4vrRi3k3MS+4uBB6s1zAy+DPPOtJ4Kk4tQWB0IKFYyOL83f6ad6CFZShMX98jIsMSXc16jg=&view=0G1t44eCSJRE0A24&ip=::1;
4
+

+ 6 - 0
CallCenterWeb.UI/ApiLog/20170401.txt

@@ -0,0 +1,6 @@
1
+日期:2017/4/1 14:52:00;URL:http://localhost:61861/interface/GetData.asmx/GetData----;
2
+
3
+日期:2017/4/1 14:52:52;URL:http://localhost:61861/interface/GetData.asmx/GetData----;
4
+
5
+日期:2017/4/1 15:28:15;URL:http://localhost:61861/interface/GetData.asmx/GetData----;
6
+

+ 30 - 0
CallCenterWeb.UI/ApiLog/20170404.txt

@@ -0,0 +1,30 @@
1
+日期:2017/4/4 12:53:10;URL:http://localhost:61861/interface/GetData.asmx/GetData----;
2
+
3
+日期:2017/4/4 12:53:18;URL:http://localhost:801//?&keys=Vc6a2/fIQF2OtZwqCdzF8qZjXoZMCdUBhtDOBhvloD83MS+4uBB6s1zAy+DPPOtJ6GU+eAwrUd3XCioRB/O6w2evATmwYzrWu31oY6l4J/I=&view=oHrMJpvj3Z2nAPDm&ip=::1;
4
+
5
+日期:2017/4/4 12:54:28;URL:http://localhost:61861/interface/GetData.asmx/GetData----;
6
+
7
+日期:2017/4/4 12:54:28;URL:http://localhost:801//?&keys=SgEWvwOR6zc379LROUeVslv9AwjiO/kzaP01XvwiKX03MS+4uBB6s1zAy+DPPOtJ6GU+eAwrUd3XCioRB/O6w23Ttw6A0UNjIkxCKNMSQ1k=&view=2bD3PLxdwCbuNkR2&ip=::1;
8
+
9
+日期:2017/4/4 21:02:29;URL:http://localhost:801//?&keys=eRQS/kx60d//saKloSMd4j7M0i1Ew4R/VsvgRb3LYbQ3MS+4uBB6s1zAy+DPPOtJDuR339Sx6VHEk59aiY1Q7Kag8ZveYHMaSgOYbvQgr8Y=&view=L748rG4VshyvTPnh&ip=::1;
10
+
11
+日期:2017/4/4 21:05:21;URL:http://localhost:801//?&keys=0rAFfVkeFeJalPnVoYrVp/IxurXtCwIJE5MF7oA9nH83MS+4uBB6s1zAy+DPPOtJDuR339Sx6VHEk59aiY1Q7AthudpVRZsWvzzcTPlUGmY=&view=SvWKJX5PDgRIAmxU&ip=::1;
12
+
13
+日期:2017/4/4 21:14:11;URL:http://localhost:61861/interface/GetData.asmx/GetData----;
14
+
15
+日期:2017/4/4 21:14:12;URL:http://localhost:801//?&keys=x1kmAt2bdueQg3j+h+F9Vn6RyLW/wgb7QBzeDekyWfI3MS+4uBB6s1zAy+DPPOtJDUL/JRS2rJY5uYjrbQPUb+DZVa2DtXKxtIJeOhmc0pE=&view=DHubuOtdj3bCuwGz&ip=::1;
16
+
17
+日期:2017/4/4 21:15:44;URL:http://localhost:61861/interface/GetData.asmx/GetData/P=11----;
18
+
19
+日期:2017/4/4 21:15:44;URL:http://localhost:801//?&keys=CQWt/fp3MmHTDxZknOMDPcFN2Y4BaEYDZYL9NeNbYtU3MS+4uBB6s1zAy+DPPOtJDUL/JRS2rJY5uYjrbQPUb9LjMRmaZDumTkGkpSE1t64=&view=RwcZXU2NJmLuw8DE&ip=::1;
20
+
21
+日期:2017/4/4 21:17:06;URL:http://localhost:61861/interface/GetData.asmx/GetData----;
22
+
23
+日期:2017/4/4 21:17:06;URL:http://localhost:801//?&keys=Ww7irOPelhEwqZfFUBV/seDuqdk8WH91FDKYZIGte+83MS+4uBB6s1zAy+DPPOtJDUL/JRS2rJY5uYjrbQPUb+bkN+9Pu8NW2yLtSO6g6ik=&view=lL6itLt26Dwu14Sg&ip=::1;
24
+
25
+日期:2017/4/4 21:50:11;URL:http://localhost:61861/interface/GetData.asmx/GetData----;
26
+
27
+日期:2017/4/4 21:50:13;URL:http://localhost:801//?&keys=5C7frv/TZWhQYniErh19G0Pc5hiapoCthUBnwA7JN543MS+4uBB6s1zAy+DPPOtJkMs4n8vJIsHkRA/TV0zkf850fOhY8Flhz4gvfaNOMQo=&view=F5Fo1SyWKoydH1jZ&ip=::1;
28
+
29
+日期:2017/4/4 22:01:27;URL:http://localhost:61861/interface/GetData.asmx/GetData?P=Home/ss&r=0.4845420491800305----Home/ss;
30
+

+ 4 - 0
CallCenterWeb.UI/ApiLog/20170406.txt

@@ -0,0 +1,4 @@
1
+日期:2017/4/6 15:49:17;URL:http://localhost:801//Home/bingbibg?P=Home/bingbibg&keys=mjP3z/SNKqTkTmJ+Ca0dr0tGVQKbXAKbtXJPLppXocwX8r97hWyRSP6QXZ/HeVAxr4Y6eZMgQAc0gm2YvqkZtAQXOZtlEmGSLlm+qpIARtE=&view=oB9Lw9nBkwpHNKEk&ip=::1;
2
+
3
+日期:2017/4/6 15:50:20;URL:http://localhost:801//Home/ceshi?P=Home/ceshi&keys=9pteFcNJLXbMm8hFMWCaITHyFstVga1HGn7p+yj+0u0X8r97hWyRSP6QXZ/HeVAxQoICLJJkSwJzu+PMIcVhTOMNNovHQUtN66qzdJzRNW4=&view=SvS1sOG2XBW0B6TD&ip=::1;
4
+

+ 17 - 0
CallCenterWeb.UI/App_Data/PublishProfiles/HXCallCenterWebUI.pubxml

@@ -0,0 +1,17 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!--
3
+您 Web 项目的发布/打包进程将使用此文件。您可以通过编辑此 MSBuild 文件
4
+来自定义该进程的行为。若要了解与此相关的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=208121。
5
+-->
6
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
7
+  <PropertyGroup>
8
+    <WebPublishMethod>FileSystem</WebPublishMethod>
9
+    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
10
+    <LastUsedPlatform>Any CPU</LastUsedPlatform>
11
+    <SiteUrlToLaunchAfterPublish />
12
+    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
13
+    <ExcludeApp_Data>False</ExcludeApp_Data>
14
+    <publishUrl>D:\roots\HXCallCenterWebUI</publishUrl>
15
+    <DeleteExistingFiles>False</DeleteExistingFiles>
16
+  </PropertyGroup>
17
+</Project>

+ 17 - 0
CallCenterWeb.UI/App_Data/PublishProfiles/XiXianSZCG_Web.pubxml

@@ -0,0 +1,17 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!--
3
+您 Web 项目的发布/打包进程将使用此文件。您可以通过编辑此 MSBuild 文件
4
+来自定义该进程的行为。若要了解与此相关的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=208121。
5
+-->
6
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
7
+  <PropertyGroup>
8
+    <WebPublishMethod>FileSystem</WebPublishMethod>
9
+    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
10
+    <LastUsedPlatform>Any CPU</LastUsedPlatform>
11
+    <SiteUrlToLaunchAfterPublish />
12
+    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
13
+    <ExcludeApp_Data>False</ExcludeApp_Data>
14
+    <publishUrl>D:\roots\XiXianSZCG_Web</publishUrl>
15
+    <DeleteExistingFiles>False</DeleteExistingFiles>
16
+  </PropertyGroup>
17
+</Project>

+ 270 - 0
CallCenterWeb.UI/Call.html

@@ -0,0 +1,270 @@
1
+<!DOCTYPE html>
2
+<html>
3
+	<head>
4
+		<meta charset="UTF-8">
5
+	<link href="./css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet">
6
+    <link href="./css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
7
+    <link href="./css/animate.min.css" rel="stylesheet">
8
+    <link href="./css/style.min862f.css?v=4.1.0" rel="stylesheet">
9
+    <link href="./css/bootstrap-treeview.css" rel="stylesheet">
10
+    <link rel="stylesheet" href="./css/layer/skin/default/layer.css" />
11
+    <link  href="./css/Table/table1.css" rel="stylesheet"/>
12
+    <script src="./js/jquery.min.js?v=2.1.4"></script>
13
+    <script src="./js/jquery.min.js?v=2.1.4"></script>
14
+	<script src="./js/bootstrap.min.js"></script>
15
+	<script src="./js/bootstrap-table.js"></script>
16
+	<script src="./js/bootstrap-table-zh-CN.js"></script>
17
+    <script src="./css/layer/layer.js"></script>
18
+    <script src="My97DatePicker/WdatePicker.js"></script>
19
+		<title>外呼计划</title>
20
+		<style>
21
+			.sc_btnBox a{
22
+				margin-right: 20px;
23
+			}
24
+			.sc_btnBox{
25
+				width: 100%;
26
+				overflow: hidden;
27
+				border-bottom: 1px solid #e7eaec;
28
+				padding: 10px;
29
+				margin-right: 20px;
30
+			}
31
+			.table1_box{
32
+				border: 1px solid #e7eaec;
33
+				border-top: none;
34
+			}
35
+			.table1_title{
36
+				padding: 10px;
37
+				font-size: 14px;
38
+				color: #E43926;
39
+				border-bottom: 1px solid #e7eaec;
40
+			}
41
+			.wq{
42
+				color: #e46926;
43
+			}
44
+		</style>
45
+	</head>
46
+	<body>
47
+		
48
+		<div class="wrapper wrapper-content animated fadeInRight">			
49
+			<div class="th-box">
50
+				<div class="th-bar">
51
+					<div class="seach-box fr">
52
+						<ul>
53
+							<li>关键字:<input  class="photo x-color" type="text" id="KeyWords"/></li>
54
+							<li><a id="sc_btn" class="sc_btn btn-info">搜索</a></li>
55
+						</ul>
56
+					</div>
57
+				</div>
58
+			</div>
59
+			<div style="width: 58%;" class="fl table1_box">
60
+				<div class="table1_title"style="width: 100%;">
61
+					<span> <i></i>外呼计划</span>
62
+				</div>
63
+				<div class="sc_btnBox">
64
+					<a class=" add max-right">添加</a>
65
+					<a class=" xg max-right">修改</a>
66
+					<a class=" remove max-righ">删除</a>
67
+					<a class=" start max-righ">启动</a>
68
+					<a class=" stop">停止</a>
69
+				</div>		
70
+				<table id="table1" data-row-style="rowStyle"  data-query-params="queryParams" data-pagination="true">			
71
+					 <thead>
72
+				            <tr>           	
73
+				                <th data-sortable="true" data-field="Start" >状态</th>
74
+				                <th data-sortable="true" data-field="Plan" >计划名称</th>
75
+				                <th data-sortable="true" data-field="PhoneNum">号码数量</th>
76
+				                 <th data-sortable="true" data-field="Y_Call">已呼数</th>
77
+				                 <th data-sortable="true" data-field="W_Call">未呼数</th>
78
+				                 <th data-sortable="true" data-field="HL">呼叫率</th>
79
+				                 <th data-sortable="true" data-field="JT">接通数</th>
80
+				                 <th data-sortable="true" data-field="WJT">未接通数</th>
81
+				                 <th data-sortable="true" data-field="JTL">接通率</th>
82
+				            </tr>
83
+		      	     </thead>
84
+		      	     <tbody id="tbody">
85
+		      	     	
86
+		      	     </tbody>
87
+		    	</table>
88
+			</div>
89
+			<div style="width: 42%;" class="fl  table2_box" >
90
+				<div class="table1_title"style="width: 100%;">
91
+					<span id="table2_title">外呼号码</span>
92
+				</div>
93
+				<div class="fr" style="padding: 10px;">
94
+						分配状态:
95
+						<select name="" id="Select" class="x-color select" >
96
+							<option value="">全部</option>
97
+							<option value="">未分配</option>
98
+							<option value="">已分配</option>
99
+						</select>
100
+						 呼叫状态:
101
+						 <select name="" id="Select" class="x-color select" >
102
+							<option value="">全部</option>
103
+							<option value="">未分配</option>
104
+							<option value="">已分配</option>
105
+						</select>
106
+					</div>
107
+				<div class="sc_btnBox">
108
+					<a class="  add max-right">计划页面设置</a>
109
+					<a class="  xg max-right">导入号码</a>
110
+					<a class="  remove max-righ">删除号码</a>
111
+					<a class="   wq max-righ">相关问卷: <strong id="wq_box">无</strong></a>
112
+				</div>	
113
+				<table id="table2" data-row-style="rowStyle"  data-query-params="queryParams" data-pagination="true">			
114
+					 <thead>
115
+				            <tr>
116
+								<th data-field="state" data-checkbox="true"></th>            	
117
+				                <th data-sortable="true" data-field="Num" >号码</th>
118
+				                <th data-sortable="true" data-field="Name" >名称</th>
119
+				                <th data-sortable="true" data-field="Time"  >导入时间</th>
120
+				                 <th data-sortable="true" data-field="Call">分配坐席</th>
121
+				                 <th data-sortable="true" data-field="CallStates">呼叫状态</th>
122
+				                 <th data-sortable="true" data-field="LineStates">接通状态</th>
123
+				            </tr>
124
+		      	     </thead>
125
+		      	     <tbody id="tbody">
126
+		      	     	
127
+		      	     </tbody>
128
+		    	</table>
129
+			</div>
130
+		</div>
131
+		<script>
132
+			var  json=[
133
+			    {
134
+			    "Start":"未启动",
135
+			    "Plan":"张三外呼",
136
+			    "PhoneNum":"0",
137
+			    "Y_Call":"0",
138
+			    "W_Call":"0",
139
+			    "HL":"0",
140
+			    "JT":"0",
141
+			    "WJT":"0",
142
+			    "JTL":"0" 	
143
+			    },
144
+			    {
145
+			    "Start":"未启动",
146
+			    "Plan":"满意度调查",
147
+			    "PhoneNum":"0",
148
+			    "Y_Call":"0",
149
+			    "W_Call":"0",
150
+			    "HL":"0",
151
+			    "JT":"0",
152
+			    "WJT":"0",
153
+			    "JTL":"0" 	
154
+			    },
155
+			    {
156
+			    "Start":"未启动",
157
+			    "Plan":"套餐升级",
158
+			    "PhoneNum":"0",
159
+			    "Y_Call":"0",
160
+			    "W_Call":"0",
161
+			    "HL":"0",
162
+			    "JT":"0",
163
+			    "WJT":"0",
164
+			    "JTL":"0" 	
165
+			    },
166
+			    {
167
+			    "Start":"未启动",
168
+			    "Plan":"对公司呼叫中心客户的",
169
+			    "PhoneNum":"0",
170
+			    "Y_Call":"0",
171
+			    "W_Call":"0",
172
+			    "HL":"0",
173
+			    "JT":"0",
174
+			    "WJT":"0",
175
+			    "JTL":"0" 	
176
+			    },
177
+			    {
178
+			    "Start":"未启动",
179
+			    "Plan":"产品购买价值评估问卷",
180
+			    "PhoneNum":"0",
181
+			    "Y_Call":"0",
182
+			    "W_Call":"0",
183
+			    "HL":"0",
184
+			    "JT":"0",
185
+			    "WJT":"0",
186
+			    "JTL":"0" 	
187
+			    },
188
+			    {
189
+			    "Start":"未启动",
190
+			    "Plan":"201603月产品调查",
191
+			    "PhoneNum":"0",
192
+			    "Y_Call":"0",
193
+			    "W_Call":"0",
194
+			    "HL":"0",
195
+			    "JT":"0",
196
+			    "WJT":"0",
197
+			    "JTL":"0" 	
198
+			    }
199
+			]
200
+			
201
+			var $tableLeft = $('#table1');
202
+			var $tableLefts = $('#table2');
203
+			var arr=[];
204
+			var D;
205
+		 $tableLeft.bootstrapTable({
206
+				data: json, //请求后台的URL(*)
207
+				method: 'get',
208
+				pagination: true,
209
+				pageNumber: 1, //初始化加载第一页,默认第一页
210
+				pageSize: 5, //每页的记录行数(*)
211
+				pageList: [5, 25, 50, 100] //可供选择的每页的行数(*
212
+	
213
+	});
214
+	table2();
215
+	function table2(){
216
+		 $tableLefts.bootstrapTable({
217
+				data: D, //请求后台的URL(*)
218
+				method: 'get',
219
+				cache: false,
220
+				pagination: true,
221
+				pageNumber: 1, //初始化加载第一页,默认第一页
222
+				pageSize: 10, //每页的记录行数(*)
223
+				pageList: [10, 25, 50, 100] //可供选择的每页的行数(*
224
+	
225
+		});	
226
+		  $(".fixed-table-loading").hide();
227
+	}
228
+	
229
+		$tableLeft.on("click-row.bs.table", function(e, row, ele) {
230
+				console.log(row.Plan);
231
+				var  a=row.Plan;
232
+			$("#table2_title").html("计划【"+a+"】的外呼号码");
233
+			$("#wq_box").html("【"+a+"】");
234
+			 $('#table2').bootstrapTable('destroy');
235
+			 
236
+				Ajax();
237
+				table2();
238
+			});
239
+				/*通用Ajax*/
240
+        	  function  Ajax(){
241
+        	  	$.ajax({
242
+        	  		type:"get",
243
+        	  		url:"new_file.json",
244
+        	  		async:false,
245
+        	  		success:function(data){
246
+        	  			var Data=data;
247
+        	  			data.forEach(function (e) {
248
+          				  if(e.Name==1){
249
+              				  e.Name = "信息1"
250
+          					}else{
251
+              				  e.Name = "信息2"
252
+          					}
253
+          					if(e.CallStates==0){
254
+              				  e.CallStates = "未接通"
255
+          					}else{
256
+              				  e.CallStates = "已接通"
257
+          					}
258
+     					   });
259
+        	  			arr = Data;
260
+						return arr;
261
+        	  		}
262
+        	  	});
263
+        	  	D=arr
264
+        	  }
265
+        	  
266
+        	  $(".fixed-table-loading").hide();
267
+ 			/*弹框*/
268
+		</script>
269
+	</body>
270
+</html>

+ 108 - 0
CallCenterWeb.UI/CallOut.html

@@ -0,0 +1,108 @@
1
+<!DOCTYPE html>
2
+<html>
3
+	<head>
4
+		<meta charset="UTF-8">
5
+		<title>外呼键盘</title>
6
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+		<link href="./css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet">
8
+		<link  href="./css/bootstrap.min.css" />
9
+		<link rel="stylesheet" href="./css/boot/bootstrap-table.css" />
10
+		<link href="./css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
11
+		<link href="./css/animate.min.css" rel="stylesheet">
12
+		<link href="./css/style.min862f.css?v=4.1.0" rel="stylesheet">
13
+		<link  href="./css/Table/table1.css" rel="stylesheet"/>
14
+		<link href="./css/animate.css" rel="stylesheet">
15
+		<link href="./css/wh.css" rel="stylesheet">	
16
+		<script src="./js/jquery.min.js?v=2.1.4"></script>
17
+	<script src="./js/bootstrap.min.js"></script>
18
+	<script src="./js/bootstrap-table.js"></script>
19
+	<script src="./js/bootstrap-table-zh-CN.js"></script>
20
+	 <script src="./js/wh.js"></script>
21
+	<style>
22
+		
23
+	</style>
24
+	</head>
25
+	<body>
26
+	 <div class="WH animated zoomInDown">
27
+			<!--top-->
28
+		<div class=" clearflow Color">
29
+			<div class="WH-top">
30
+				<span>外呼信息</span>
31
+			</div>
32
+			<div class="Cotent_box clearflow">
33
+				<!--左边键盘-->
34
+				<div class="KeyWord col-sm-3"> 
35
+					 <div class="WH_input  clearflow">
36
+					 	<div class=" clearflow  WH_Itop">
37
+					 		<input id="Result" type="text" class="fl" value=""/>
38
+					 		<i class="img fl hidens"></i>
39
+					 	</div>	
40
+					 </div>
41
+					 <div class="Num_box clearflow">
42
+					 	<ul class="Num_ul">
43
+					 		<li><div ><a >1</a></div></li>
44
+					 		<li><div ><a >2</a></div></li>
45
+					 		<li><div ><a >3</a></div></li>
46
+					 		<li><div ><a >4</a></div></li>
47
+					 		<li><div ><a >5</a></div></li>
48
+					 		<li><div ><a >6</a></div></li>
49
+					 		<li><div ><a >7</a></div></li>
50
+					 		<li><div ><a >8</a></div></li>
51
+					 		<li><div ><a >9</a></div></li>
52
+					 		<li><div ><a >*</a></div></li>
53
+					 		<li><div ><a >0</a></div></li>
54
+					 		<li><div ><a >#</a></div></li>
55
+					 		<li class="Last_phone"><div ><a class="CallOut"></a></div></li>
56
+					 		
57
+					 	</ul>
58
+					 </div>
59
+				</div>
60
+				<!--右边图表-->
61
+				<div class="col-sm-9 Rbg">
62
+					<div class="bg bg_cotent">
63
+						<ul class="bg_title clearflow">
64
+							<li class="lactive">最近电话</li>
65
+							<li>公司电话</li>
66
+							<li>客户电话</li>
67
+						</ul>
68
+						<div class="bg_box">
69
+							<div class="cx">
70
+								<span>
71
+									电话号码:
72
+									<input type="text" />
73
+								</span>
74
+								<span>
75
+									呼叫状态:
76
+									<select name="">
77
+										<option value=""></option>
78
+									</select>
79
+								</span>
80
+								  <span class="ty">搜索</span>
81
+								  <span class="ty">重置</span>
82
+							</div>
83
+							<div class="phone_bg"style="width: 100%;padding: 10px;">
84
+								<table id="goods" data-row-style="rowStyle"  data-query-params="queryParams" data-pagination="true">			
85
+									 <thead>
86
+								            <tr>           	
87
+								            	<th  data-field="Code"  data-halign="center" data-align="center" ></th>
88
+								                <th  data-field="a"data-align="center" >电话号码</th>
89
+								                <th  data-field="b" data-align="center">呼叫方向</th>
90
+								                <th  data-field="c" data-align="center" >呼叫状态</th>
91
+								                 <th  data-field="d" data-align="center">通话开始时间</th>
92
+								                 <th  data-field="e" data-align="center">通话时长</th>
93
+								            </tr>
94
+						      	     </thead>
95
+						      	     <tbody id="tbody">
96
+						      	     	
97
+						      	     </tbody>
98
+		    					</table>
99
+							</div>
100
+						</div>
101
+					</div>
102
+				</div>
103
+			</div>
104
+		</div>	
105
+	</div>
106
+
107
+	</body>
108
+</html>

File diff suppressed because it is too large
+ 106 - 0
CallCenterWeb.UI/GET


File diff suppressed because it is too large
+ 278 - 0
CallCenterWeb.UI/Index-Management.html


+ 225 - 0
CallCenterWeb.UI/Lybf.html

@@ -0,0 +1,225 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<link href="./css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet">
7
+		<link href="./css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
8
+		<link href="./css/animate.min.css" rel="stylesheet">
9
+		<link href="./css/style.min862f.css?v=4.1.0" rel="stylesheet">
10
+		<link href="./css/bootstrap-treeview.css" rel="stylesheet">
11
+		<link rel="stylesheet" href="./css/layer/skin/default/layer.css" />
12
+		<title>录音播放下载及质检</title>
13
+		<style>
14
+			.contentTable {
15
+				padding: 10px;
16
+			}
17
+			
18
+			.form_table {
19
+				width: 100%;
20
+				border: 1px solid #EDECFF;
21
+			}
22
+			
23
+			.form_table td {
24
+				padding: 6px 0 5px 10px;
25
+				text-align: left;
26
+				color: #717171;
27
+				line-height: 200%;
28
+				border-top: 1px dotted #cccccc;
29
+			}
30
+			
31
+			.form_table th {
32
+				padding: 5px 8px 5px 0;
33
+				color: #333;
34
+				font-weight: 700;
35
+				text-align: right;
36
+				background: #f9f9f9;
37
+				border-right: 1px dotted #cccccc;
38
+				border-top: 1px dotted #cccccc;
39
+			}
40
+			
41
+			.play {
42
+				height: 50px;
43
+				width: 100%;
44
+			}
45
+			
46
+			#downlond {
47
+				padding: 0 8px;
48
+				height: 24px;
49
+				line-height: 24px;
50
+				color: #707070;
51
+				border: 1px solid #D7D7D7;
52
+				cursor: pointer;
53
+				vertical-align: middle;
54
+			}
55
+			
56
+			.txtInput {
57
+				margin-right: 5px;
58
+				padding: 0 3px 0 3px;
59
+				height: 22px;
60
+				line-height: 22px;
61
+				background: #FAFAFA;
62
+				border: 1px solid #D7D7D7;
63
+				vertical-align: middle;
64
+				font-size: 12px;
65
+				width: 50px;
66
+				color: blue;
67
+			}
68
+			
69
+			.btnSubmit {
70
+				padding: 0 10px;
71
+				height: 28px;
72
+				line-height: 28px;
73
+				color: #3D80B3;
74
+				font-weight: bold;
75
+				border: 1px solid #AED0EA;
76
+				cursor: pointer;
77
+				vertical-align: middle;
78
+				overflow: hidden;
79
+			}
80
+			
81
+			.foot_btn_box {
82
+				padding: 15px 20px;
83
+				text-align: center;
84
+			}
85
+		</style>
86
+	</head>
87
+
88
+	<body>
89
+		<div class="contentTable">
90
+			<div class="table_con">
91
+				<table cellspacing="" cellpadding="" class="form_table">
92
+					<tbody>
93
+						<tr>
94
+							<th><span>电话号码:</span></th>
95
+							<td><span>6+541+</span></td>
96
+							<th><span>通话时间:</span></th>
97
+							<td><span>2017/5/3 16:50:05</span></td>
98
+						</tr>
99
+						<tr>
100
+							<th><span>呼叫方向:</span></th>
101
+							<td><span>呼出</span></td>
102
+							<th><span>通话时长:</span></th>
103
+							<td><span> 278秒</span></td>
104
+						</tr>
105
+						<tr>
106
+							<th><span>坐席工号:</span></th>
107
+							<td><span>902</span></td>
108
+							<th><span>坐席姓名:</span></th>
109
+							<td><span>6+541+</span></td>
110
+						</tr>
111
+						<tr>
112
+							<th><span>听取录音:</span></th>
113
+							<td colspan="3">
114
+								<div class="play">
115
+
116
+								</div>
117
+							</td>
118
+
119
+						</tr>
120
+						<tr>
121
+							<th><span>下载录音:</span></th>
122
+							<td colspan="3">
123
+								<input type="button" value="下载" id="downlond" />
124
+							</td>
125
+						</tr>
126
+					</tbody>
127
+				</table>
128
+			</div>
129
+			<div class="divDataItems">
130
+				<table class="table table-bordered text-center table-hover" style="width: 100%;">
131
+					<thead>
132
+						<tr class="thead_title">
133
+							<td colspan="2" style="background-color: #D5EDFE;">分类</td>
134
+							<td style="background-color: #D5EDFE;">指标</td>
135
+							<td style="background-color: #D5EDFE;">分值</td>
136
+							<td style="background-color: #D5EDFE;">评分</td>
137
+						</tr>
138
+					</thead>
139
+					<tbody id="tbody">
140
+
141
+					</tbody>
142
+					<tfoot id="tfoot">
143
+						<tr>
144
+							<td colspan="3" style="background-color: #D5EDFE;">总分</td>
145
+							<td style="background-color: #D5EDFE;">200</td>
146
+							<td style="background-color: #D5EDFE;">
147
+								<span style="color: red;" id="Z_Num">200</span>
148
+							</td>
149
+						</tr>
150
+					</tfoot>
151
+				</table>
152
+			</div>
153
+			<!--<div class="foot_btn_box">
154
+				<input type="button"  value="保存评分" class="btnSubmit"/>
155
+			</div>-->
156
+
157
+			<script src="./js/jquery.min.js?v=2.1.4"></script>
158
+			<script type="text/javascript">
159
+			
160
+				$.ajax({
161
+					type: "get",
162
+					//							url: huayi.config.callcenter_url + "/Mobiledata/EditMobiledata",
163
+					url: "zjxq.json",
164
+					dataType: 'json',
165
+					async: true,
166
+//					data:{
167
+//						id:zjID///通话ID
168
+//					},
169
+					success: function(data) {
170
+						var content = data.data;
171
+						console.log(content);
172
+						//									for(var i=0;i<content.length;i++){
173
+						console.log(content.Rowspan);
174
+						$('<tr>' +
175
+							'<td colspan="'+content.Colspan+'">' + content.Qcname + '</td>' +
176
+							'<td >' + content.Qcscore + '</td>' +
177
+							'<td >' + content.Qcpf + '</td>' +
178
+							'</tr>').appendTo("#tfoot");
179
+						var twoCon = content.Qclist;						
180
+						if(twoCon !== null) {
181
+							for(var j = 0; j < twoCon.length; j++) {
182
+								var t=parseInt(twoCon[j].Rowspan);		
183
+								var o=1;
184
+								var l=parseInt(twoCon.length);
185
+								var c=t+o+l;																
186
+								$('<tr>' +
187
+									'<td rowspan="'+ t +'" >' + twoCon[j].Qcname + '</td>' +
188
+									'</tr>').appendTo("#tbody");								
189
+								var stree = twoCon[j].Qclist;
190
+								console.log(stree);
191
+								if(stree !== null) {
192
+									for(var k = 0; k < stree.length; k++) {
193
+										var row2=parseInt(stree[k].Rowspan);
194
+										var o=1;
195
+										var c=t+o;
196
+										$('<tr>' +
197
+											'<td rowspan="' + row2 + '">' + stree[k].Qcname + '</td>' +
198
+											'</tr>').appendTo("#tbody");
199
+										var foure = stree[k].Qclist;
200
+										
201
+										if(foure !== null) {
202
+												
203
+											for(var i = 0; i < foure.length; i++) {
204
+												var row3=parseInt(foure[i].Rowspan);
205
+											var o=1;
206
+											var c=t+o;
207
+												$('<tr>' +
208
+													'<td rowspan="' + row3 + '">' + foure[i].Qcname + '</td>' +
209
+													'<td rowspan="' + row3 + '">' + foure[i].Qcscore + '</td>' +
210
+													'<td rowspan="' + row3 + '"><input type="text"  class="txtInput"/></td>' +
211
+													'</tr>').appendTo("#tbody");
212
+											}
213
+										}
214
+									}
215
+								}
216
+							}
217
+
218
+						}
219
+					}
220
+				});
221
+					
222
+			</script>
223
+	</body>
224
+
225
+</html>

+ 182 - 0
CallCenterWeb.UI/Message/FixedTime.html

@@ -0,0 +1,182 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+    <meta charset="UTF-8">
5
+    <title>定时短信管理</title>
6
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+    <script src="../Script/Common/huayi.load.js"></script>
8
+    <script src="../Script/Common/huayi.config.js"></script>
9
+    <link href="../css/Table/table1.css" rel="stylesheet" />
10
+    <link href="../css/init.css" rel="stylesheet" />
11
+    <script src="../css/laydate/laydate.js"></script>
12
+</head>
13
+<body>
14
+    <div class="wrapper wrapper-content animated fadeInRight">
15
+        <div class="daoHang clearfix">
16
+            <div class="dhLeft">
17
+                <sapn><i class="syIcon"></i>位置:<a href="javaScript:;" class="indexreturn">首页</a>&gt;<a href="javaScript:;">定时短信管理</a>&gt;<a href="" style="color: #000;">定时短信管理</a></sapn>
18
+            </div>
19
+        </div>
20
+        <div class="th-box">
21
+            <div class="th-bar">
22
+                <a class="sc_btn  remove">删除</a>
23
+                <div class="seach-box fr">
24
+                    <ul>
25
+                        <!--<li>发送人:<input class="photo x-color" type="text"  /></li>-->
26
+                        <li>接收号码:<input class="photo x-color" type="text" id="Phone" /></li>
27
+                        <li>
28
+                            短信类型:
29
+                            <select name="" id="MessageType" style="padding: 3px;border-color: #e5e6e7;">
30
+                                <option value="">--请选择--</option>
31
+                            </select>
32
+                        </li>
33
+                        <li>
34
+                            <a class="sc_btn  Block" id="sc_btns">搜索</a>
35
+                        </li>
36
+                    </ul>
37
+                </div>
38
+            </div>
39
+        </div>
40
+        <div style="width: 100%;padding: 10px;">
41
+            <table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
42
+                <thead>
43
+                    <tr>
44
+                        <th data-field="state" data-checkbox="true" data-align="center"></th>
45
+                        <th data-field="Telephone" data-align="center">接收号码</th>
46
+                        <th data-field="Detail" >短信内容</th>
47
+                        <th data-field="SendWay" data-align="center" data-formatter="SendWays">发送方式</th>
48
+                        <th data-field="IsSend" data-align="center" data-formatter="States">发送状态</th>
49
+                        <th data-field="CreateDate" data-align="center">提交时间</th>
50
+                        <th data-field="DSSendTime" data-align="center">定时发送时间</th>
51
+                        <th data-field="SendTime" data-align="center">实际发送时间</th>
52
+                        <th data-field="TypeName" data-align="center">短信类型</th>
53
+                        <th data-field="MName" data-align="center">发送人</th>
54
+                    </tr>
55
+                </thead>
56
+                <tbody id="tbody"></tbody>
57
+            </table>
58
+        </div>
59
+    </div>
60
+    <script>
61
+        var type; //短信类型
62
+        var tel;  //号码
63
+        var token = $.cookie("token");
64
+        initTable();
65
+
66
+        Type();
67
+        function initTable() {
68
+            //先销毁表格
69
+            $('#list').bootstrapTable('destroy');
70
+            //初始化表格,动态从服务器加载数据
71
+            $("#list").bootstrapTable({
72
+                method: "get",  //使用get请求到服务器获取数据
73
+                url: huayi.config.callcenter_url + "SMSZXZB/GetSendList", //获取数据的Servlet地址
74
+                striped: true,  //表格显示条纹
75
+                pagination: true, //启动分页
76
+                pageSize: 10,  //每页显示的记录数
77
+                pageNumber: 1, //当前第几页
78
+                pageList: [10, 20, 50, 100],  //记录数可选列表
79
+                search: false,  //是否启用查询
80
+                showColumns: false,  //显示下拉框勾选要显示的列
81
+                showRefresh: false,  //显示刷新按钮
82
+                sidePagination: "server", //表示服务端请求
83
+                //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
84
+                //设置为limit可以获取limit, offset, search, sort, order
85
+                queryParamsType: "undefined",
86
+                queryParams: function queryParams(params) {   //设置查询参数
87
+                    var param = {
88
+                        page: params.pageNumber,
89
+                        pagesize: params.pageSize,
90
+                        token: token,
91
+                        sendway: "2",
92
+                        type: $("#MessageType").val(),
93
+                        tel: $("#Phone").val()
94
+                    };
95
+                    return param;
96
+                },
97
+                onLoadSuccess: function (data) {  //加载成功时执行
98
+                    //layer.msg("加载成功");
99
+                    console.log(data);
100
+                },
101
+                onLoadError: function () {  //加载失败时执行
102
+                    //layer.msg("加载数据失败", { time: 1500, icon: 2 });
103
+                }
104
+            });
105
+        }
106
+
107
+        //编号
108
+        function Code(val, row, index) {
109
+            return index + 1;
110
+        }
111
+        //状态
112
+        function States(val) {
113
+            var str = '';
114
+            switch (val + '') {
115
+                case '0': str = "未发送"; break;
116
+                case '1': str = "已发送"; break;
117
+                case '-1': str = "发送失败"; break;
118
+            }
119
+            return str;
120
+        }
121
+        //发送方式
122
+        function SendWays(val) {
123
+            var str = '';
124
+            switch (val + '') {
125
+                case '1': str = "立即发送"; break;
126
+                case '2': str = "定时发送"; break;
127
+            }
128
+            return str;
129
+        }
130
+        /*删除内容*/
131
+        $(".remove").click(function () {
132
+            var ids = $.map($('#list').bootstrapTable('getSelections'),
133
+                function (row) {
134
+                    return row.ID;
135
+                });
136
+            /*判断长度*/
137
+            if (ids.length <= 0) {
138
+                layer.confirm('没有可删除的选项?', {
139
+                    btn: ['确定'] //按钮
140
+                });
141
+                return;
142
+            }
143
+            remove();
144
+
145
+        });
146
+        /*删除提示*/
147
+        function remove() {
148
+            layer.confirm('确定删除当前记录?', {
149
+                btn: ['是', '否'] //按钮
150
+            }, function () {
151
+
152
+                /*执行删除*/
153
+                var ids = $.map($('#list').bootstrapTable('getSelections'),
154
+                    function (row) {
155
+                        return row.ID;
156
+                    });
157
+                /*发送请求*/
158
+                $.post(huayi.config.callcenter_url + "SMSZXZB/DelSend?", { ids: ids, token: $.cookie("token") }, function (result) {
159
+                    result = JSON.parse(result);
160
+                    if (result.state.toLowerCase() == "success") {
161
+                        layer.msg("删除成功");
162
+                        initTable();
163
+                    }
164
+                })
165
+            });
166
+        }
167
+        //短信类型
168
+        function Type() {
169
+            $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValueList", { token: $.cookie("token"), Id: "DXLX" }, function (data) {
170
+                $(data.rows).each(function (i, n) {
171
+                    $("#MessageType").append('<option value="' + n.F_DictionaryValueId + '">' + n.F_Name + '</option>');
172
+                })
173
+            })
174
+        }
175
+        //搜索
176
+        $('#sc_btns').click(function () {
177
+            initTable();
178
+        });
179
+
180
+    </script>
181
+</body>
182
+</html>

+ 108 - 0
CallCenterWeb.UI/Message/MessagReceiving.html

@@ -0,0 +1,108 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+    <meta charset="UTF-8">
5
+    <title>短信接收管理</title>
6
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+    <script src="../Script/Common/huayi.load.js"></script>
8
+    <script src="../Script/Common/huayi.config.js"></script>
9
+    <link href="../css/Table/table1.css" rel="stylesheet" />
10
+    <link href="../css/init.css" rel="stylesheet" />
11
+    <script src="../css/laydate/laydate.js"></script>
12
+</head>
13
+<body>
14
+    <div class="wrapper wrapper-content animated fadeInRight">
15
+        <div class="daoHang clearfix">
16
+            <div class="dhLeft">
17
+                <sapn><i class="syIcon"></i>位置:<a href="javaScript:;" class="indexreturn">首页</a>&gt;<a href="javaScript:;">短信接收管理</a>&gt;<a href="" style="color: #000;">发送失败管理</a></sapn>
18
+            </div>
19
+        </div>
20
+        <div class="th-box">
21
+            <div class="th-bar">
22
+                <!--<a class="sc_btn  remove">删除</a>-->
23
+                <div class="seach-box fr">
24
+                    <ul>
25
+                        <li>手机号码:<input class="photo x-color" type="text" id="Phone" /></li>
26
+                        <li>
27
+                            <a class="sc_btn  Block" id="sc_btns">搜索</a>
28
+                        </li>
29
+                    </ul>
30
+                </div>
31
+            </div>
32
+        </div>
33
+        <div style="width: 100%;padding: 10px;">
34
+            <table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
35
+                <thead>
36
+                    <tr>
37
+                        <th data-field="state" data-checkbox="true" data-align="center"></th>
38
+                        <th data-align="center" data-formatter="Code">编号</th>
39
+                        <th data-field="Telephone" data-align="center">手机号码</th>
40
+                        <th data-field="Detail" data-align="center">短信内容</th>
41
+                        <th data-field="CreateDate" data-align="center">接收时间</th>
42
+                    </tr>
43
+                </thead>
44
+                <tbody id="tbody"></tbody>
45
+            </table>
46
+        </div>
47
+    </div>
48
+    <script>
49
+        $(document).ready(function () {
50
+            initTable();
51
+            $("#sc_btns").click(function () {
52
+                initTable();
53
+            })
54
+        })
55
+        
56
+        function initTable() {
57
+            //先销毁表格
58
+            $('#list').bootstrapTable('destroy');
59
+            //初始化表格,动态从服务器加载数据
60
+            $("#list").bootstrapTable({
61
+                method: "get",  //使用get请求到服务器获取数据
62
+                url: huayi.config.callcenter_url + "SMSZXZB/GetRecvList", //获取数据的Servlet地址
63
+                striped: true,  //表格显示条纹
64
+                pagination: true, //启动分页
65
+                pageSize: 10,  //每页显示的记录数
66
+                pageNumber: 1, //当前第几页
67
+                pageList: [10, 20, 50, 100],  //记录数可选列表
68
+                search: false,  //是否启用查询
69
+                showColumns: false,  //显示下拉框勾选要显示的列
70
+                showRefresh: false,  //显示刷新按钮
71
+                sidePagination: "server", //表示服务端请求
72
+                //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
73
+                //设置为limit可以获取limit, offset, search, sort, order
74
+                queryParamsType: "undefined",
75
+                queryParams: function queryParams(params) {   //设置查询参数
76
+                    var param = {
77
+                        page: params.pageNumber,
78
+                        pagesize: params.pageSize,
79
+                        tel: $("#Phone").val(),
80
+                        token: $.cookie("token")
81
+                    };
82
+                    return param;
83
+                },
84
+                onLoadSuccess: function () {  //加载成功时执行
85
+                    //layer.msg("加载成功");
86
+                },
87
+                onLoadError: function () {  //加载失败时执行
88
+                    //layer.msg("加载数据失败", { time: 1500, icon: 2 });
89
+                }
90
+            });
91
+        }
92
+
93
+        //编号
94
+        function Code(val, row, index) {
95
+            return index + 1;
96
+        }
97
+        //状态
98
+        function States(val) {
99
+            var str = '';
100
+            switch (val + '') {
101
+                case '0': str = "未读"; break;
102
+                case '1': str = "已读"; break;
103
+            }
104
+            return str;
105
+        }
106
+    </script>
107
+</body>
108
+</html>

+ 112 - 0
CallCenterWeb.UI/Message/MessageRecovery.html

@@ -0,0 +1,112 @@
1
+<!DOCTYPE html>
2
+<html>
3
+	<head>
4
+		<meta charset="UTF-8">
5
+		<title>短信类型回收</title>
6
+	<meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+    <script src="../Script/Common/huayi.load.js"></script>
8
+    <script src="../Script/Common/huayi.config.js"></script>
9
+    <link href="../css/Table/table1.css" rel="stylesheet" />
10
+    <link href="../css/init.css" rel="stylesheet" />
11
+    <script src="../css/laydate/laydate.js"></script>
12
+	</head>
13
+	<body>
14
+		<div class="wrapper wrapper-content animated fadeInRight">
15
+    	 <div class="daoHang clearfix">
16
+				<div class="dhLeft" >
17
+					<sapn><i class="syIcon"></i>位置:<a href="javaScript:;"  class="indexreturn">首页</a>&gt;<a href="javaScript:;">短信管理</a>&gt;<a href="" style="color: #000;">短信类型回收站</a></sapn>
18
+				</div>
19
+			</div>
20
+			
21
+        <div class="th-box">
22
+            <div class="th-bar">
23
+                <div class="seach-box fr">
24
+                    <ul>
25
+                        <li>短信类型:<input class="photo x-color" type="text" id="Message_type" /></li>
26
+                        <li>
27
+                            <a class="sc_btn  Block" id="sc_btns">搜索</a>
28
+                        </li>
29
+                    </ul>
30
+                </div>
31
+            </div>
32
+        </div>
33
+        <div style="width: 100%;padding: 10px;">
34
+            <table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
35
+                <thead>
36
+                    <tr>
37
+                        <th data-field="state" data-checkbox="true"data-align="center"></th>
38
+                        <th  data-align="center" data-formatter="Code">编号</th>
39
+                        <th data-field="F_TelPhone"data-align="center" >短信类型</th>
40
+                        <th data-field="F_SetTime" data-align="center">帮助说明</th> 
41
+                        <th data-field="F_Sates" data-align="center" data-formatter="States">状态</th>
42
+                    </tr>
43
+                </thead>
44
+                <tbody id="tbody"></tbody>
45
+            </table>
46
+        </div>
47
+    </div>
48
+		<script>
49
+			var arr=[{
50
+				
51
+    				"F_TelPhone":"客户回访",
52
+    				"F_SetTime":"测试测试",
53
+    				"F_Sates":"0"
54
+			},{
55
+				"F_TelPhone":"客户回访",
56
+    				"F_SetTime":"测试测试",
57
+    				"F_Sates":"1"
58
+			}]
59
+				
60
+			initTable();
61
+			function initTable() {
62
+            //先销毁表格
63
+            $('#list').bootstrapTable('destroy');
64
+            //初始化表格,动态从服务器加载数据
65
+            $("#list").bootstrapTable({
66
+                method: "get",  //使用get请求到服务器获取数据
67
+//              url: huayi.config.callcenter_url + "Callblack/GetList", //获取数据的Servlet地址
68
+				data:arr,
69
+                striped: true,  //表格显示条纹
70
+                pagination: true, //启动分页
71
+                pageSize: 10,  //每页显示的记录数
72
+                pageNumber: 1, //当前第几页
73
+                pageList: [10, 20, 50, 100],  //记录数可选列表
74
+                search: false,  //是否启用查询
75
+                showColumns: false,  //显示下拉框勾选要显示的列
76
+                showRefresh: false,  //显示刷新按钮
77
+                sidePagination: "server", //表示服务端请求
78
+                //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
79
+                //设置为limit可以获取limit, offset, search, sort, order
80
+                queryParamsType: "undefined",
81
+                queryParams: function queryParams(params) {   //设置查询参数
82
+                    var param = {
83
+                        page: params.pageNumber,
84
+                        pagesize: params.pageSize,
85
+                    };
86
+                    return param;
87
+                },
88
+                onLoadSuccess: function () {  //加载成功时执行
89
+                    //layer.msg("加载成功");
90
+                },
91
+                onLoadError: function () {  //加载失败时执行
92
+                    //layer.msg("加载数据失败", { time: 1500, icon: 2 });
93
+                }
94
+            });
95
+        }
96
+			
97
+			//编号
98
+			function Code(val,row,index){
99
+				return index+1;
100
+			}
101
+			//状态
102
+			 function States(val) {
103
+                var str = '';
104
+                switch (val + '') {
105
+                    case '0': str = "未删除"; break;
106
+                    case '1': str = "已删除"; break;
107
+                }
108
+                return str;
109
+            }
110
+		</script>
111
+	</body>
112
+</html>

+ 227 - 0
CallCenterWeb.UI/Message/MessageSend.html

@@ -0,0 +1,227 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+<head>
5
+    <meta charset="UTF-8">
6
+    <title>短信发送</title>
7
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+    <script src="../Script/Common/huayi.load.js"></script>
9
+    <script src="../Script/Common/huayi.config.js"></script>
10
+    <link href="../css/Table/table1.css" rel="stylesheet" />
11
+    <link href="../css/init.css" rel="stylesheet" />
12
+    <script src="../css/laydate/laydate.js"></script>
13
+    <style>
14
+        .Data_box {
15
+            display: none;
16
+        }
17
+
18
+        ._table1 th {
19
+            width: 30%;
20
+            text-align: right;
21
+        }
22
+
23
+        textarea {
24
+            padding-left: 5px;
25
+            resize: none;
26
+            font-size: 12px;
27
+            width: 300px;
28
+        }
29
+    </style>
30
+</head>
31
+
32
+<body>
33
+    <div class="wrapper wrapper-content animated fadeInRight">
34
+        <div class="daoHang clearfix">
35
+            <div class="dhLeft">
36
+                <sapn>
37
+                    <i class="syIcon"></i>位置:
38
+                    <a href="javaScript:;" class="indexreturn">首页</a>&gt;
39
+                    <a href="javaScript:;">短信接收管理</a>&gt;
40
+                    <a href="" style="color: #000;">短信发送</a>
41
+                </sapn>
42
+            </div>
43
+        </div>
44
+        <div>
45
+            <table class="_table1 table table-bordered  table-hover " style="width: 100%;">
46
+                <tr>
47
+                    <th>短信类型:</th>
48
+                    <td>
49
+                        <select name="" id="type"></select>
50
+                    </td>
51
+                </tr>
52
+                <tr>
53
+                    <th>发送方式:</th>
54
+                    <td>
55
+                        <label style="font-weight: normal;"><input type="radio" name="sendway" value="1" checked="checked" />立即发送</label>
56
+                        <label style="font-weight: normal;"><input type="radio" name="sendway" value="2" />定时发送</label>
57
+                    </td>
58
+                </tr>
59
+                <tr class="Data_box ">
60
+                    <th>定时发送时间:</th>
61
+                    <td>
62
+                        <input type="text" name="send" class="laydate-icon " id="Data_time" />
63
+                    </td>
64
+                </tr>
65
+                <tr>
66
+                    <th>接收号码:</th>
67
+                    <td>
68
+                        <textarea id="tels" name="" rows="5"></textarea>
69
+                        <br />
70
+                        <input id="btndr" type="button" class="btns" style="margin:0;" value="导入号码" />&nbsp;&nbsp;<span>多个号码用英文逗号,隔开</span>
71
+                        <input type="file" name="upFile" id="upFile" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" style="display: none;">
72
+                    </td>
73
+                </tr>
74
+
75
+                <tr>
76
+                    <th>短信内容:</th>
77
+                    <td>
78
+                        <textarea id="cont" name="" rows="5"></textarea>
79
+                    </td>
80
+                </tr>
81
+            </table>
82
+        </div>
83
+        <div style="text-align: center;">
84
+            <input id="save" type="button" class="btns" value="新增短信" style="width: 100px;" />
85
+        </div>
86
+    </div>
87
+    <script>
88
+        var token = $.cookie("token");
89
+        
90
+        $(document).ready(function () {
91
+            /*日期选择*/
92
+            laydate.skin('molv');
93
+            /*开始日期*/
94
+            laydate({
95
+                elem: '#Data_time',
96
+                event: 'focus',
97
+                istime: true,
98
+                format: 'YYYY-MM-DD hh:mm:ss', 
99
+            });
100
+            GetDicValueList();
101
+            $("input[name=sendway]").change(function () {
102
+                if ($(this).val() == '1') {
103
+                    $(".Data_box").hide();
104
+                }
105
+                else {
106
+                    $(".Data_box").show();
107
+                }
108
+            })
109
+            $("#btndr").click(function () {
110
+                $("#upFile").trigger("click");
111
+            })
112
+            $("#upFile").change(function () {
113
+                upload();
114
+            })
115
+            $("#save").click(function () {
116
+                if (!$("#type").val()) {
117
+                    layer.confirm('请选择短信类型', {
118
+                        btn: ['确定'] //按钮
119
+                    });
120
+                    return;
121
+                }
122
+                var val = $("input[name='sendway']:checked").val();
123
+                if (!val) {
124
+                    layer.confirm('请选择发送方式', {
125
+                        btn: ['确定'] //按钮
126
+                    });
127
+                    return;
128
+                }
129
+                else {
130
+                    if (val == '2' && !$("#Data_time").val()) {
131
+                        layer.confirm('请选择定时发送时间', {
132
+                            btn: ['确定'] //按钮
133
+                        });
134
+                        return;
135
+                    }
136
+                }
137
+                if (!$("#tels").val()) {
138
+                    layer.confirm('请输入接收号码', {
139
+                        btn: ['确定'] //按钮
140
+                    });
141
+                    return;
142
+                }
143
+                if (!$("#cont").val()) {
144
+                    layer.confirm('请输入短信内容', {
145
+                        btn: ['确定'] //按钮
146
+                    });
147
+                    return;
148
+                }
149
+                $.post(huayi.config.callcenter_url + "SMSZXZB/AddSend",
150
+                    {
151
+                        type: $("#type").val(),
152
+                        sendway: val,
153
+                        dssj: $("#Data_time").val(),
154
+                        tel: $("#tels").val(),
155
+                        cont: $("#cont").val(),
156
+                        token: $.cookie("token")
157
+                    }, function (result) {
158
+                        result = JSON.parse(result);
159
+                        if (result.state.toLowerCase() == "success") {
160
+                            layer.msg("新增成功");
161
+                            layer.close(tc); //关闭弹层
162
+                        }
163
+                    })
164
+            })
165
+        });
166
+        //上传文件
167
+        function upload() {
168
+            if (document.getElementById("upFile").files.length > 0) {
169
+                var formData = new FormData();
170
+                formData.append("upFile", document.getElementById("upFile").files[0]);
171
+                formData.append("token", $.cookie("token"));
172
+                $.ajax({
173
+                    url: huayi.config.callcenter_url + "SMSZXZB/ImportSend",
174
+                    type: "POST",
175
+                    data: formData,
176
+                    /**
177
+                     *必须false才会自动加上正确的Content-Type
178
+                     */
179
+                    contentType: false,
180
+                    /**
181
+                     * 必须false才会避开jQuery对 formdata 的默认处理
182
+                     * XMLHttpRequest会对 formdata 进行正确的处理
183
+                     */
184
+                    processData: false,
185
+                    success: function (result) {
186
+                        document.getElementById("upFile").outerHTML = document.getElementById("upFile").outerHTML;
187
+                        $("#upFile").change(function () {
188
+                            upload();
189
+                        });
190
+                        var r = $.parseJSON(result);
191
+                        if (r.state.toLowerCase() == "success") {
192
+                            $(".yhtx").attr("src", huayi.config.callcenter_url.substr(0, huayi.config.callcenter_url.length - 1) + r.data);
193
+                            var tel = $("#tels").val();
194
+                            if (tel) {
195
+                                if (tel.substr(huayi.config.callcenter_url.length - 1, 1) == ',') {
196
+                                    $("#tels").val(tel + r.data);
197
+                                }
198
+                                else {
199
+                                    $("#tels").val(tel + ',' + r.data);
200
+                                }
201
+                            }
202
+                            else {
203
+                                $("#tels").val(r.data);
204
+                            }
205
+                            layer.msg("导入成功");
206
+                        }
207
+                    }
208
+                });
209
+            } else {
210
+                layer.confirm('请上传文件!', {
211
+                    btn: ['确定']
212
+                });
213
+            }
214
+        }
215
+        //短信类型
216
+        function GetDicValueList() {
217
+            $("#type").empty();
218
+            $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValueList", { token: $.cookie("token"), Id: "DXLX" }, function (data) {
219
+                $(data.rows).each(function (i, n) {
220
+                    $("#type").append('<option value="' + n.F_DictionaryValueId + '">' + n.F_Name + '</option>');
221
+                })
222
+            })
223
+        }
224
+    </script>
225
+</body>
226
+
227
+</html>

+ 250 - 0
CallCenterWeb.UI/Message/MessageType.html

@@ -0,0 +1,250 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+    <meta charset="UTF-8">
5
+    <title>短信类型管理</title>
6
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+    <script src="../Script/Common/huayi.load.js"></script>
8
+    <script src="../Script/Common/huayi.config.js"></script>
9
+    <link href="../css/Table/table1.css" rel="stylesheet" />
10
+    <link href="../css/init.css" rel="stylesheet" />
11
+    <script src="../css/laydate/laydate.js"></script>
12
+</head>
13
+<body>
14
+    <div class="wrapper wrapper-content animated fadeInRight">
15
+        <div class="daoHang clearfix">
16
+            <div class="dhLeft">
17
+                <sapn><i class="syIcon"></i>位置:<a href="javaScript:;" class="indexreturn">首页</a>&gt;<a href="javaScript:;">短信管理</a>&gt;<a href="" style="color: #000;">短信类型管理</a></sapn>
18
+            </div>
19
+        </div>
20
+
21
+        <div class="th-box">
22
+            <div class="th-bar">
23
+                <a class="sc_btn  add max-right">添加</a>
24
+                <a class="sc_btn  xg max-right">修改</a>
25
+                <a class="sc_btn  remove">删除</a>
26
+                <div class="seach-box fr">
27
+                    <ul>
28
+                        <li>短信类型:<input class="photo x-color" type="text" id="Message_type" /></li>
29
+                        <li>
30
+                            <a class="sc_btn  Block" id="sc_btns">搜索</a>
31
+                        </li>
32
+                    </ul>
33
+                </div>
34
+            </div>
35
+        </div>
36
+        <div style="width: 100%;padding: 10px;">
37
+            <table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
38
+                <thead>
39
+                    <tr>
40
+                        <th data-field="state" data-checkbox="true" data-align="center"></th>
41
+                        <th data-align="center" data-formatter="Code">编号</th>
42
+                        <th data-field="F_Name" data-align="center">短信类型</th>
43
+                        <th data-field="F_Describe" data-align="center">帮助说明</th>
44
+                    </tr>
45
+                </thead>
46
+                <tbody id="tbody"></tbody>
47
+            </table>
48
+        </div>
49
+    </div>
50
+    <script>
51
+        var token = $.cookie("token");
52
+        initTable();
53
+        var html = '<div >' +
54
+            '<ul class="nav nav-tabs">' +
55
+            '<li class="active">' +
56
+            '<a href="#">参数信息</a>' +
57
+            '<input type="hidden" id="ID" />' +
58
+            '</li>' +
59
+            '</ul>' +
60
+            '<div class="add_time">' +
61
+            '<label for="">类型名称:</label>' +
62
+            '<input type="text" id="TypeName" class="photo"  />' +
63
+            '</div>' +
64
+            '<div class="add_time">' +
65
+            '<label for="">类型描述:</label>' +
66
+            '<input type="text" class="photo " id="TypeDisction"  />' +
67
+            '</div>' +
68
+            '<div class="add_time tc">' +
69
+            '<button type="button" class="btn sc_btn " id="tc" onclick="addedit()">保&nbsp;&nbsp;存</button>' +
70
+            '</div>' +
71
+            '</div>';
72
+        var tc;
73
+        function initTable(Name_) {
74
+            //先销毁表格
75
+            $('#list').bootstrapTable('destroy');
76
+            //初始化表格,动态从服务器加载数据
77
+            $("#list").bootstrapTable({
78
+                method: "get",  //使用get请求到服务器获取数据
79
+                url: huayi.config.callcenter_url + "Dictionary/GetDicValueList", //获取数据的Servlet地址
80
+                striped: true,  //表格显示条纹
81
+                pagination: true, //启动分页
82
+                pageSize: 10,  //每页显示的记录数
83
+                pageNumber: 1, //当前第几页
84
+                pageList: [5, 20, 50, 100],  //记录数可选列表
85
+                search: false,  //是否启用查询
86
+                showColumns: false,  //显示下拉框勾选要显示的列
87
+                showRefresh: false,  //显示刷新按钮
88
+                sidePagination: "server", //表示服务端请求
89
+                //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
90
+                //设置为limit可以获取limit, offset, search, sort, order
91
+                queryParamsType: "undefined",
92
+                queryParams: function queryParams(params) {   //设置查询参数
93
+                    var param = {
94
+                        page: params.pageNumber,
95
+                        pagesize: params.pageSize,
96
+                        token: $.cookie("token"),
97
+                        Id: "DXLX",
98
+                        Name: $("#Message_type").val()
99
+                    };
100
+                    return param;
101
+                },
102
+                onLoadSuccess: function (data) {  //加载成功时执行
103
+                    //layer.msg("加载成功");
104
+                    //console.log(data);
105
+                },
106
+                onLoadError: function () {  //加载失败时执行
107
+                    //layer.msg("加载数据失败", { time: 1500, icon: 2 });
108
+                }
109
+            });
110
+        }
111
+
112
+        //编号
113
+        function Code(val, row, index) {
114
+            return index + 1;
115
+        }
116
+        //搜索
117
+        $("#sc_btns").click(function () {
118
+            Name_ = $("#Message_type").val();
119
+            initTable(Name_);
120
+        });
121
+        /*增加弹框*/
122
+        $(".add").click(function () {
123
+            tc = layer.open({
124
+                type: 1,
125
+                content: html, //iframe的url,no代表不显示滚动条
126
+                title: '添加短信类型',
127
+                area: ['30%', '35%'], //宽高
128
+            });
129
+        });
130
+        //新增
131
+        function addedit() {
132
+            if (!$("#TypeName").val()) {
133
+                layer.confirm('请输入类型名称', {
134
+                    btn: ['确定'] //按钮
135
+                });
136
+                return;
137
+            }
138
+            if (!$("#TypeDisction").val()) {
139
+                layer.confirm('请输入类型描述', {
140
+                    btn: ['确定'] //按钮
141
+                });
142
+                return;
143
+            }
144
+            if ($("#ID").val()) {
145
+                /*发送请求*/
146
+                $.post(huayi.config.callcenter_url + "Dictionary/EditDicValue",
147
+                    {
148
+                        DicVid: $("#ID").val(),
149
+                        DicvName: $("#TypeName").val(),
150
+                        DicDes: $("#TypeDisction").val(),
151
+                        DicFlag: "DXLX ",
152
+                        token: $.cookie("token")
153
+                    }, function (result) {
154
+                        result = JSON.parse(result);
155
+                        if (result.state.toLowerCase() == "success") {
156
+                            layer.msg("修改成功");
157
+                            layer.close(tc); //关闭弹层
158
+                            initTable();
159
+                        }
160
+                    })
161
+            } else {
162
+                /*发送请求*/
163
+                $.post(huayi.config.callcenter_url + "Dictionary/AddDicValue",
164
+                    {
165
+                        DicvName: $("#TypeName").val(),
166
+                        DicDes: $("#TypeDisction").val(),
167
+                        DicFlag: "DXLX ",
168
+                        token: $.cookie("token")
169
+                    }, function (result) {
170
+                        result = JSON.parse(result);
171
+                        if (result.state.toLowerCase() == "success") {
172
+                            layer.msg("新增成功");
173
+                            layer.close(tc); //关闭弹层
174
+                            initTable();
175
+                        }
176
+                    })
177
+            }
178
+        }
179
+        /*修改弹窗*/
180
+        $(".xg").click(function () {
181
+            var ValueId = $.map($('#list').bootstrapTable('getSelections'),
182
+                function (row) {
183
+                    return row.F_DictionaryValueId;
184
+                });
185
+
186
+            if (ValueId.length != 1) {
187
+                layer.confirm('请选择一行进行修改?', {
188
+                    btn: ['确定'] //按钮
189
+                });
190
+                return;
191
+            } else {
192
+                $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValue",{dicValueId: ValueId[0],token: $.cookie("token")}, function (result) {
193
+                    if (result.state.toLowerCase() == "success") {
194
+                        tc = layer.open({
195
+                            type: 1,
196
+                            title: '修改类型',
197
+                            area: ['30%', '35%'], //宽高
198
+                            content: html
199
+                        });
200
+                        $("#ID").val(result.data.id);
201
+                        $("#TypeName").val(result.data.name);
202
+                        $("#TypeDisction").val(result.data.remark);
203
+                    }
204
+                })
205
+            }
206
+        });
207
+
208
+        //删除类型
209
+        $(".remove").click(function () {
210
+            var ids = $.map($('#list').bootstrapTable('getSelections'),
211
+                function (row) {
212
+                    return row.F_DictionaryValueId;
213
+                });
214
+            /*判断长度*/
215
+            if (ids.length <= 0) {
216
+                layer.confirm('没有可删除的选项?', {
217
+                    btn: ['确定'] //按钮
218
+                });
219
+                return;
220
+            }
221
+            remove();
222
+        });
223
+        /*删除提示*/
224
+        function remove() {
225
+            layer.confirm('确定删除当前记录?', {
226
+                btn: ['是', '否'] //按钮
227
+            }, function () {
228
+
229
+                /*执行删除*/
230
+                var ids = $.map($('#list').bootstrapTable('getSelections'),
231
+                    function (row) {
232
+                        return row.F_DictionaryValueId;
233
+                    });
234
+                /*发送请求*/
235
+                $.post(huayi.config.callcenter_url + "Dictionary/DelDicValue", { ids: ids, token: $.cookie("token") }, function (result) {
236
+                    result = JSON.parse(result);
237
+                    if (result.state.toLowerCase() == "success") {
238
+                        layer.msg("删除成功");
239
+                        initTable();
240
+                    }
241
+                })
242
+            });
243
+        }
244
+        //搜索
245
+        $("#sc_btns").click(function () {
246
+            initTable();
247
+        });
248
+    </script>
249
+</body>
250
+</html>

+ 178 - 0
CallCenterWeb.UI/Message/SendError.html

@@ -0,0 +1,178 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>发送失败管理</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+		<script src="../Script/Common/huayi.load.js"></script>
9
+		<script src="../Script/Common/huayi.config.js"></script>
10
+		<link href="../css/Table/table1.css" rel="stylesheet" />
11
+		<link href="../css/init.css" rel="stylesheet" />
12
+		<script src="../css/laydate/laydate.js"></script>
13
+	</head>
14
+
15
+	<body>
16
+		<div class="wrapper wrapper-content animated fadeInRight">
17
+			<div class="daoHang clearfix">
18
+				<div class="dhLeft">
19
+					<sapn><i class="syIcon"></i>位置:
20
+						<a href="javaScript:;" class="indexreturn">首页</a>&gt;
21
+						<a href="javaScript:;">发送失败管理</a>&gt;
22
+						<a href="" style="color: #000;">发送失败管理</a>
23
+					</sapn>
24
+				</div>
25
+			</div>
26
+			<div class="th-box">
27
+				<div class="th-bar">
28
+					<a class="sc_btn  remove">删除</a>
29
+					<div class="seach-box fr">
30
+						<ul>
31
+							<!--<li>发送人:<input class="photo x-color" type="text" /></li>-->
32
+							<li>接收号码:<input class="photo x-color" type="text" id="Phone" /></li>
33
+							<li>
34
+								<a class="sc_btn  Block" id="sc_btns">搜索</a>
35
+							</li>
36
+						</ul>
37
+					</div>
38
+				</div>
39
+			</div>
40
+			<div style="width: 100%;padding: 10px;">
41
+				<table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
42
+					<thead>
43
+						<tr>
44
+                            <th data-field="state" data-checkbox="true" data-align="center"></th>
45
+                            <th data-field="Telephone" data-align="center">接收号码</th>
46
+                            <th data-field="Detail">短信内容</th>
47
+                            <th data-field="SendWay" data-align="center" data-formatter="SendWays">发送方式</th>
48
+                            <th data-field="IsSend" data-align="center" data-formatter="States">发送状态</th>
49
+                            <th data-field="CreateDate" data-align="center">提交时间</th>
50
+                            <th data-field="DSSendTime" data-align="center">定时发送时间</th>
51
+                            <th data-field="SendTime" data-align="center">实际发送时间</th>
52
+                            <th data-field="TypeName" data-align="center">短信类型</th>
53
+                            <th data-field="MName" data-align="center">发送人</th>
54
+						</tr>
55
+					</thead>
56
+					<tbody id="tbody"></tbody>
57
+				</table>
58
+			</div>
59
+		</div>
60
+		<script>
61
+
62
+            $(document).ready(function () {
63
+                $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValueList", { token: $.cookie("token"), Id: "DXLX" }, function (data) {
64
+                    $(data.rows).each(function (i, n) {
65
+                        $("#MessageType").append('<option value="' + n.F_DictionaryValueId + '">' + n.F_Name + '</option>');
66
+                    })
67
+                })
68
+
69
+                initTable();
70
+                //搜索
71
+                $('#sc_btns').click(function () {
72
+                    initTable();
73
+                });
74
+
75
+                /*删除内容*/
76
+                $(".remove").click(function () {
77
+                    var ids = $.map($('#list').bootstrapTable('getSelections'),
78
+                        function (row) {
79
+                            return row.ID;
80
+                        });
81
+                    /*判断长度*/
82
+                    if (ids.length <= 0) {
83
+                        layer.confirm('没有可删除的选项?', {
84
+                            btn: ['确定'] //按钮
85
+                        });
86
+                        return;
87
+                    }
88
+                    remove();
89
+
90
+                });
91
+            })
92
+
93
+			function initTable() {
94
+				//先销毁表格
95
+				$('#list').bootstrapTable('destroy');
96
+				//初始化表格,动态从服务器加载数据
97
+				$("#list").bootstrapTable({
98
+					method: "get", //使用get请求到服务器获取数据
99
+					url: huayi.config.callcenter_url + "SMSZXZB/GetSendList", //获取数据的Servlet地址
100
+					striped: true, //表格显示条纹
101
+					pagination: true, //启动分页
102
+					pageSize: 10, //每页显示的记录数
103
+					pageNumber: 1, //当前第几页
104
+					pageList: [10, 20, 50, 100], //记录数可选列表
105
+					search: false, //是否启用查询
106
+					showColumns: false, //显示下拉框勾选要显示的列
107
+					showRefresh: false, //显示刷新按钮
108
+					sidePagination: "server", //表示服务端请求
109
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
110
+					//设置为limit可以获取limit, offset, search, sort, order
111
+					queryParamsType: "undefined",
112
+					queryParams: function queryParams(params) { //设置查询参数
113
+						var param = {
114
+							page: params.pageNumber,
115
+							pagesize: params.pageSize,
116
+							token: $.cookie("token"),
117
+							state: "-1",
118
+							tel: $("#Phone").val()
119
+						};
120
+						return param;
121
+					},
122
+					onLoadSuccess: function() { //加载成功时执行
123
+						//layer.msg("加载成功");
124
+					},
125
+					onLoadError: function() { //加载失败时执行
126
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
127
+					}
128
+				});
129
+			}
130
+			//编号
131
+			function Code(val, row, index) {
132
+				return index + 1;
133
+			}
134
+			//状态
135
+			function States(val) {
136
+			    var str = '';
137
+			    switch (val + '') {
138
+			        case '0': str = "未发送"; break;
139
+			        case '1': str = "已发送"; break;
140
+			        case '-1': str = "发送失败"; break;
141
+			    }
142
+			    return str;
143
+			}
144
+			//发送方式
145
+			function SendWays(val) {
146
+			    var str = '';
147
+			    switch (val + '') {
148
+			        case '1': str = "立即发送"; break;
149
+			        case '2': str = "定时发送"; break;
150
+			    }
151
+			    return str;
152
+			}
153
+			
154
+			/*删除提示*/
155
+			function remove() {
156
+			    layer.confirm('确定删除当前记录?', {
157
+			        btn: ['是', '否'] //按钮
158
+			    }, function () {
159
+
160
+			        /*执行删除*/
161
+			        var ids = $.map($('#list').bootstrapTable('getSelections'),
162
+                        function (row) {
163
+                            return row.ID;
164
+                        });
165
+			        /*发送请求*/
166
+			        $.post(huayi.config.callcenter_url + "SMSZXZB/DelSend?", { ids: ids, token: $.cookie("token") }, function (result) {
167
+			            result = JSON.parse(result);
168
+			            if (result.state.toLowerCase() == "success") {
169
+			                layer.msg("删除成功");
170
+			                initTable();
171
+			            }
172
+			        })
173
+			    });
174
+			}
175
+		</script>
176
+	</body>
177
+
178
+</html>

+ 183 - 0
CallCenterWeb.UI/Message/SendManagement.html

@@ -0,0 +1,183 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+    <meta charset="UTF-8">
5
+    <title>短信发送管理</title>
6
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+    <script src="../Script/Common/huayi.load.js"></script>
8
+    <script src="../Script/Common/huayi.config.js"></script>
9
+    <link href="../css/Table/table1.css" rel="stylesheet" />
10
+    <link href="../css/init.css" rel="stylesheet" />
11
+    <script src="../css/laydate/laydate.js"></script>
12
+</head>
13
+<body>
14
+    <div class="wrapper wrapper-content animated fadeInRight">
15
+        <div class="daoHang clearfix">
16
+            <div class="dhLeft">
17
+                <sapn><i class="syIcon"></i>位置:<a href="javaScript:;" class="indexreturn">首页</a>&gt;<a href="javaScript:;">短信管理</a>&gt;<a href="" style="color: #000;">短信发送管理</a></sapn>
18
+            </div>
19
+        </div>
20
+
21
+        <div class="th-box">
22
+            <div class="th-bar">
23
+                <a class="sc_btn remove">删除</a>
24
+                <div class="seach-box fr">
25
+                    <ul>
26
+                        <!--<li>发送人:<input class="photo x-color" type="text" /></li>-->
27
+                        <li>接收号码:<input class="photo x-color" type="text" id="Phone" /></li>
28
+                        <li>
29
+                            短信类型:
30
+                            <select name="" id="MessageType" style="padding: 3px;border-color: #e5e6e7;">
31
+                                <option value="">--请选择--</option>
32
+                            </select>
33
+                        </li>
34
+                        <li>
35
+                            <a class="sc_btn  Block" id="sc_btns">搜索</a>
36
+                        </li>
37
+                    </ul>
38
+                </div>
39
+            </div>
40
+        </div>
41
+        <div style="width: 100%;padding: 10px;">
42
+            <table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
43
+                <thead>
44
+                    <tr>
45
+                        <th data-field="state" data-checkbox="true" data-align="center"></th>
46
+                        <th data-align="center" data-formatter="Code">编号</th>
47
+                        <th data-field="Telephone" data-align="center">接收号码</th>
48
+                        <th data-field="Detail" >短信内容</th>
49
+                        <th data-field="SendWay" data-align="center" data-formatter="SendWays">发送方式</th>
50
+                        <th data-field="IsSend" data-align="center" data-formatter="States">发送状态</th>
51
+                        <th data-field="CreateDate" data-align="center">提交时间</th>
52
+                        <th data-field="SendTime" data-align="center">实际发送时间</th>
53
+                        <th data-field="TypeName" data-align="center">短信类型</th>
54
+                        <th data-field="MName" data-align="center">发送人</th>
55
+                    </tr>
56
+                </thead>
57
+                <tbody id="tbody"></tbody>
58
+            </table>
59
+        </div>
60
+    </div>
61
+    <script>
62
+        var token = $.cookie("token");
63
+
64
+        $(document).ready(function () {
65
+            initTable();
66
+            Type();
67
+            //搜索
68
+            $('#sc_btns').click(function () {
69
+                initTable();
70
+            });
71
+        })
72
+        
73
+        function initTable() {
74
+            //先销毁表格
75
+            $('#list').bootstrapTable('destroy');
76
+            //初始化表格,动态从服务器加载数据
77
+            $("#list").bootstrapTable({
78
+                method: "get",  //使用get请求到服务器获取数据
79
+                url: huayi.config.callcenter_url + "SMSZXZB/GetSendList", //获取数据的Servlet地址
80
+                striped: true,  //表格显示条纹
81
+                pagination: true, //启动分页
82
+                pageSize: 10,  //每页显示的记录数
83
+                pageNumber: 1, //当前第几页
84
+                pageList: [10, 20, 50, 100],  //记录数可选列表
85
+                search: false,  //是否启用查询
86
+                showColumns: false,  //显示下拉框勾选要显示的列
87
+                showRefresh: false,  //显示刷新按钮
88
+                sidePagination: "server", //表示服务端请求
89
+                //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
90
+                //设置为limit可以获取limit, offset, search, sort, order
91
+                queryParamsType: "undefined",
92
+                queryParams: function queryParams(params) {   //设置查询参数
93
+                    var param = {
94
+                        page: params.pageNumber,
95
+                        pagesize: params.pageSize,
96
+                        token: token,
97
+                        sendway: "1",
98
+                        type: $("#MessageType").val(),
99
+                        tel: $("#Phone").val()
100
+                    };
101
+                    return param;
102
+                },
103
+                onLoadSuccess: function (data) {  //加载成功时执行
104
+                    //layer.msg("加载成功");
105
+                    console.log(data);
106
+                },
107
+                onLoadError: function () {  //加载失败时执行
108
+                    //layer.msg("加载数据失败", { time: 1500, icon: 2 });
109
+                }
110
+            });
111
+        }
112
+
113
+        //编号
114
+        function Code(val, row, index) {
115
+            return index + 1;
116
+        }
117
+        //状态
118
+        function States(val) {
119
+            var str = '';
120
+            switch (val + '') {
121
+                case '0': str = "未发送"; break;
122
+                case '1': str = "已发送"; break;
123
+            }
124
+            return str;
125
+        }
126
+
127
+        //发送方式
128
+        function SendWays(val) {
129
+            var str = '';
130
+            switch (val + '') {
131
+                case '1': str = "立即发送"; break;
132
+                case '2': str = "定时发送"; break;
133
+            }
134
+            return str;
135
+        }
136
+        //短信类型
137
+        function Type() {
138
+            $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValueList", { token: $.cookie("token"), Id: "DXLX" }, function (data) {
139
+                $(data.rows).each(function (i, n) {
140
+                    $("#MessageType").append('<option value="' + n.F_DictionaryValueId + '">' + n.F_Name + '</option>');
141
+                })
142
+            })
143
+        }
144
+        /*删除内容*/
145
+        $(".remove").click(function () {
146
+            var ids = $.map($('#list').bootstrapTable('getSelections'),
147
+                function (row) {
148
+                    return row.ID;
149
+                });
150
+            /*判断长度*/
151
+            if (ids.length <= 0) {
152
+                layer.confirm('没有可删除的选项?', {
153
+                    btn: ['确定'] //按钮
154
+                });
155
+                return;
156
+            }
157
+            remove();
158
+
159
+        });
160
+        /*删除提示*/
161
+        function remove() {
162
+            layer.confirm('确定删除当前记录?', {
163
+                btn: ['是', '否'] //按钮
164
+            }, function () {
165
+
166
+                /*执行删除*/
167
+                var ids = $.map($('#list').bootstrapTable('getSelections'),
168
+                    function (row) {
169
+                        return row.ID;
170
+                    });
171
+                /*发送请求*/
172
+                $.post(huayi.config.callcenter_url + "SMSZXZB/DelSend", { ids: ids, token: $.cookie("token") }, function (result) {
173
+                    result = JSON.parse(result);
174
+                    if (result.state.toLowerCase() == "success") {
175
+                        layer.msg("删除成功");
176
+                        initTable();
177
+                    }
178
+                })
179
+            });
180
+        }
181
+    </script>
182
+</body>
183
+</html>

File diff suppressed because it is too large
+ 54 - 0
CallCenterWeb.UI/My97DatePicker/WdatePicker.js


File diff suppressed because it is too large
+ 19 - 0
CallCenterWeb.UI/My97DatePicker/calendar.js


+ 14 - 0
CallCenterWeb.UI/My97DatePicker/lang/en.js

@@ -0,0 +1,14 @@
1
+var $lang={
2
+errAlertMsg: "Invalid date or the date out of range,redo or not?",
3
+aWeekStr: ["wk", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
4
+aLongWeekStr:["wk","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],
5
+aMonStr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
6
+aLongMonStr: ["January","February","March","April","May","June","July","August","September","October","November","December"],
7
+clearStr: "Clear",
8
+todayStr: "Today",
9
+okStr: "OK",
10
+updateStr: "OK",
11
+timeStr: "Time",
12
+quickStr: "Quick Selection",
13
+err_1: 'MinDate Cannot be bigger than MaxDate!'
14
+}

+ 14 - 0
CallCenterWeb.UI/My97DatePicker/lang/zh-cn.js

@@ -0,0 +1,14 @@
1
+var $lang={
2
+errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u8303\u56F4,\u9700\u8981\u64A4\u9500\u5417?",
3
+aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"],
4
+aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"],
5
+aMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00","\u5341\u4E8C"],
6
+aLongMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"],
7
+clearStr: "\u6E05\u7A7A",
8
+todayStr: "\u4ECA\u5929",
9
+okStr: "\u786E\u5B9A",
10
+updateStr: "\u786E\u5B9A",
11
+timeStr: "\u65F6\u95F4",
12
+quickStr: "\u5FEB\u901F\u9009\u62E9", 
13
+err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u4E8E\u6700\u5927\u65E5\u671F!'
14
+}

+ 14 - 0
CallCenterWeb.UI/My97DatePicker/lang/zh-tw.js

@@ -0,0 +1,14 @@
1
+var $lang={
2
+errAlertMsg: "\u4E0D\u5408\u6CD5\u7684\u65E5\u671F\u683C\u5F0F\u6216\u8005\u65E5\u671F\u8D85\u51FA\u9650\u5B9A\u7BC4\u570D,\u9700\u8981\u64A4\u92B7\u55CE?",
3
+aWeekStr: ["\u5468","\u65E5","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"],
4
+aLongWeekStr:["\u5468","\u661F\u671F\u65E5","\u661F\u671F\u4E00","\u661F\u671F\u4E8C","\u661F\u671F\u4E09","\u661F\u671F\u56DB","\u661F\u671F\u4E94","\u661F\u671F\u516D"],
5
+aMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00","\u5341\u4E8C"],
6
+aLongMonStr: ["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"],
7
+clearStr: "\u6E05\u7A7A",
8
+todayStr: "\u4ECA\u5929",
9
+okStr: "\u78BA\u5B9A",
10
+updateStr: "\u78BA\u5B9A",
11
+timeStr: "\u6642\u9593",
12
+quickStr: "\u5FEB\u901F\u9078\u64C7",
13
+err_1: '\u6700\u5C0F\u65E5\u671F\u4E0D\u80FD\u5927\u65BC\u6700\u5927\u65E5\u671F!'
14
+}

+ 11 - 0
CallCenterWeb.UI/My97DatePicker/skin/WdatePicker.css

@@ -0,0 +1,11 @@
1
+.Wdate{
2
+	border:#999 1px solid;
3
+	height:20px;
4
+	background:#fff url(datePicker.gif) no-repeat right;
5
+}
6
+.Wdate::-ms-clear{display:none;}
7
+
8
+.WdateFmtErr{
9
+	font-weight:bold;
10
+	color:red;
11
+}

BIN
CallCenterWeb.UI/My97DatePicker/skin/datePicker.gif


+ 246 - 0
CallCenterWeb.UI/My97DatePicker/skin/default/datepicker.css

@@ -0,0 +1,246 @@
1
+/* 
2
+ * My97 DatePicker 4.8
3
+ */
4
+
5
+.WdateDiv{
6
+	width:180px;
7
+	background-color:#FFFFFF;
8
+	border:#bbb 1px solid;
9
+	padding:2px;
10
+}
11
+
12
+.WdateDiv2{
13
+	width:360px;
14
+}
15
+.WdateDiv *{font-size:9pt;}
16
+
17
+.WdateDiv .NavImg a{
18
+	display:block;
19
+	cursor:pointer;
20
+	height:16px;
21
+	width:16px;
22
+}
23
+
24
+.WdateDiv .NavImgll a{
25
+	float:left;
26
+	background:transparent url(img.gif) no-repeat scroll 0 0;
27
+}
28
+.WdateDiv .NavImgl a{
29
+	float:left;
30
+	background:transparent url(img.gif) no-repeat scroll -16px 0;
31
+}
32
+.WdateDiv .NavImgr a{
33
+	float:right;
34
+	background:transparent url(img.gif) no-repeat scroll -32px 0;
35
+}
36
+.WdateDiv .NavImgrr a{
37
+	float:right;
38
+	background:transparent url(img.gif) no-repeat scroll -48px 0;
39
+}
40
+
41
+.WdateDiv #dpTitle{
42
+	height:24px;
43
+	margin-bottom:2px;
44
+	padding:1px;
45
+}
46
+
47
+.WdateDiv .yminput{
48
+	margin-top:2px;
49
+	text-align:center;
50
+	height:20px;
51
+	border:0px;
52
+	width:50px;
53
+	cursor:pointer;		
54
+}
55
+
56
+.WdateDiv .yminputfocus{
57
+	margin-top:2px;
58
+	text-align:center;
59
+	font-weight:bold;
60
+	height:20px;
61
+	color:blue;
62
+	border:#ccc 1px solid;
63
+	width:50px;
64
+}
65
+
66
+.WdateDiv .menuSel{
67
+	z-index:1;
68
+	position:absolute;
69
+	background-color:#FFFFFF;	
70
+	border:#ccc 1px solid;
71
+	display:none;
72
+}
73
+
74
+.WdateDiv .menu{
75
+	cursor:pointer;
76
+	background-color:#fff;
77
+}
78
+
79
+.WdateDiv .menuOn{
80
+	cursor:pointer;
81
+	background-color:#BEEBEE;
82
+}
83
+
84
+.WdateDiv .invalidMenu{
85
+	color:#aaa;
86
+}
87
+
88
+.WdateDiv .YMenu{
89
+	margin-top:20px;
90
+	
91
+}
92
+
93
+.WdateDiv .MMenu{
94
+	margin-top:20px;
95
+	*width:62px;
96
+}
97
+
98
+.WdateDiv .hhMenu{
99
+	margin-top:-90px; 
100
+	margin-left:26px;
101
+}
102
+
103
+.WdateDiv .mmMenu{
104
+	margin-top:-46px; 
105
+	margin-left:26px;
106
+}
107
+
108
+.WdateDiv .ssMenu{
109
+	margin-top:-24px; 
110
+	margin-left:26px;
111
+}
112
+
113
+ .WdateDiv .Wweek {
114
+ 	text-align:center;
115
+	background:#DAF3F5;
116
+	border-right:#BDEBEE 1px solid;
117
+ }
118
+
119
+.WdateDiv .MTitle{
120
+	background-color:#BDEBEE;
121
+}
122
+.WdateDiv .WdayTable2{
123
+	border-collapse:collapse;
124
+	border:#c5d9e8 1px solid;
125
+}
126
+.WdateDiv .WdayTable2 table{
127
+	border:0;
128
+}
129
+
130
+.WdateDiv .WdayTable{
131
+	line-height:20px;
132
+	border:#c5d9e8 1px solid;
133
+}
134
+.WdateDiv .WdayTable td{
135
+	text-align:center;
136
+}
137
+
138
+.WdateDiv .Wday{
139
+	cursor:pointer;
140
+}
141
+
142
+.WdateDiv .WdayOn{
143
+	cursor:pointer;
144
+	background-color:#C0EBEF;
145
+}
146
+
147
+.WdateDiv .Wwday{
148
+	cursor:pointer;
149
+	color:#FF2F2F;
150
+}
151
+
152
+.WdateDiv .WwdayOn{
153
+	cursor:pointer;
154
+	color:#000;
155
+	background-color:#C0EBEF;
156
+}
157
+.WdateDiv .Wtoday{
158
+	cursor:pointer;
159
+	color:blue;
160
+}
161
+.WdateDiv .Wselday{
162
+	background-color:#A9E4E9;
163
+}
164
+.WdateDiv .WspecialDay{
165
+	background-color:#66F4DF;
166
+}
167
+
168
+.WdateDiv .WotherDay{ 
169
+	cursor:pointer;
170
+	color:#6A6AFF;	
171
+}
172
+
173
+.WdateDiv .WotherDayOn{ 
174
+	cursor:pointer;
175
+	background-color:#C0EBEF;	
176
+}
177
+
178
+.WdateDiv .WinvalidDay{
179
+	color:#aaa;
180
+}
181
+
182
+.WdateDiv #dpTime{
183
+	float:left;
184
+	margin-top:3px;
185
+	margin-right:30px;
186
+}
187
+
188
+.WdateDiv #dpTime #dpTimeStr{
189
+	margin-left:1px;
190
+}
191
+
192
+.WdateDiv #dpTime input{
193
+	width:18px;
194
+	height:20px;
195
+	text-align:center;
196
+	border:#ccc 1px solid;	
197
+}
198
+
199
+.WdateDiv #dpTime .tB{
200
+	border-right:0px;
201
+}
202
+
203
+.WdateDiv #dpTime .tE{
204
+	border-left:0;
205
+	border-right:0;
206
+}
207
+
208
+.WdateDiv #dpTime .tm{
209
+	width:7px;
210
+	border-left:0;
211
+	border-right:0;
212
+}
213
+
214
+.WdateDiv #dpTime #dpTimeUp{
215
+	height:10px;
216
+	width:13px;
217
+	border:0px;
218
+	background:url(img.gif) no-repeat -32px -16px;
219
+}
220
+
221
+.WdateDiv #dpTime #dpTimeDown{
222
+	height:10px;
223
+	width:13px;
224
+	border:0px;
225
+    background:url(img.gif) no-repeat -48px -16px;
226
+}
227
+
228
+ .WdateDiv #dpQS {
229
+ 	float:left;
230
+	margin-right:3px;
231
+	margin-top:3px;
232
+	background:url(img.gif) no-repeat 0px -16px;
233
+	width:20px;
234
+	height:20px;
235
+	cursor:pointer;
236
+ }
237
+.WdateDiv #dpControl {
238
+	text-align:right;	
239
+}
240
+.WdateDiv .dpButton{ 
241
+	height:20px;
242
+	width:45px;
243
+	border:#ccc 1px solid;
244
+	margin-top:2px;
245
+	margin-right:1px;
246
+}

BIN
CallCenterWeb.UI/My97DatePicker/skin/default/img.gif


BIN
CallCenterWeb.UI/My97DatePicker/skin/whyGreen/bg.jpg


+ 256 - 0
CallCenterWeb.UI/My97DatePicker/skin/whyGreen/datepicker.css

@@ -0,0 +1,256 @@
1
+/* 
2
+ * My97 DatePicker 4.8 Skin:whyGreen
3
+ */ 
4
+.WdateDiv{
5
+	width:180px;
6
+	background-color:#fff;
7
+	border:#C5E1E4 1px solid;
8
+	padding:2px;
9
+}
10
+
11
+.WdateDiv2{
12
+	width:360px;
13
+}
14
+.WdateDiv *{font-size:9pt;}
15
+
16
+.WdateDiv .NavImg a{
17
+	cursor:pointer;
18
+	display:block;
19
+	width:16px;
20
+	height:16px;
21
+	margin-top:1px;
22
+}
23
+
24
+.WdateDiv .NavImgll a{
25
+	float:left;
26
+	background:url(img.gif) no-repeat;
27
+}
28
+.WdateDiv .NavImgl a{
29
+	float:left;
30
+	background:url(img.gif) no-repeat -16px 0px;
31
+}
32
+.WdateDiv .NavImgr a{
33
+	float:right;
34
+	background:url(img.gif) no-repeat -32px 0px;
35
+}
36
+.WdateDiv .NavImgrr a{
37
+	float:right;
38
+	background:url(img.gif) no-repeat -48px 0px;
39
+}
40
+
41
+.WdateDiv #dpTitle{
42
+	height:24px;
43
+	padding:1px;
44
+	border:#c5d9e8 1px solid;
45
+	background:url(bg.jpg);
46
+	margin-bottom:2px;
47
+}
48
+
49
+.WdateDiv .yminput{
50
+	margin-top:2px;
51
+	text-align:center;
52
+	border:0px;
53
+	height:20px;
54
+	width:50px;
55
+	color:#034c50;
56
+	background-color:transparent;
57
+	cursor:pointer;
58
+}
59
+
60
+.WdateDiv .yminputfocus{
61
+	margin-top:2px;
62
+	text-align:center;
63
+	border:#939393 1px solid;
64
+	font-weight:bold;
65
+	color:#034c50;	
66
+	height:20px;
67
+	width:50px;
68
+}
69
+
70
+.WdateDiv .menuSel{
71
+	z-index:1;
72
+	position:absolute;
73
+	background-color:#FFFFFF;
74
+	border:#A3C6C8 1px solid;
75
+	display:none;
76
+}
77
+
78
+.WdateDiv .menu{
79
+	cursor:pointer;
80
+	background-color:#fff;
81
+	color:#11777C;
82
+}
83
+
84
+.WdateDiv .menuOn{
85
+	cursor:pointer;
86
+	background-color:#BEEBEE;
87
+}
88
+
89
+.WdateDiv .invalidMenu{
90
+	color:#aaa;
91
+}
92
+
93
+.WdateDiv .YMenu{
94
+	margin-top:20px;
95
+}
96
+
97
+.WdateDiv .MMenu{
98
+	margin-top:20px;
99
+	*width:62px;
100
+}
101
+
102
+.WdateDiv .hhMenu{
103
+	margin-top:-90px; 
104
+	margin-left:26px;
105
+}
106
+
107
+.WdateDiv .mmMenu{
108
+	margin-top:-46px; 
109
+	margin-left:26px;
110
+}
111
+
112
+.WdateDiv .ssMenu{
113
+	margin-top:-24px; 
114
+	margin-left:26px;
115
+}
116
+
117
+ .WdateDiv .Wweek {
118
+ 	text-align:center;
119
+	background:#DAF3F5;
120
+	border-right:#BDEBEE 1px solid;
121
+ }
122
+
123
+.WdateDiv .MTitle{
124
+	color:#13777e;
125
+	background-color:#bdebee;
126
+}
127
+.WdateDiv .WdayTable2{
128
+	border-collapse:collapse;
129
+	border:#BEE9F0 1px solid;
130
+}
131
+.WdateDiv .WdayTable2 table{
132
+	border:0;
133
+}
134
+
135
+.WdateDiv .WdayTable{
136
+	line-height:20px;	
137
+	color:#13777e;
138
+	background-color:#edfbfb;
139
+	border:#BEE9F0 1px solid;
140
+}
141
+.WdateDiv .WdayTable td{
142
+	text-align:center;
143
+}
144
+
145
+.WdateDiv .Wday{
146
+	cursor:pointer;
147
+}
148
+
149
+.WdateDiv .WdayOn{
150
+	cursor:pointer;
151
+	background-color:#74d2d9 ;
152
+}
153
+
154
+.WdateDiv .Wwday{
155
+	cursor:pointer;
156
+	color:#ab1e1e;
157
+}
158
+
159
+.WdateDiv .WwdayOn{
160
+	cursor:pointer;
161
+	background-color:#74d2d9;
162
+}
163
+.WdateDiv .Wtoday{
164
+	cursor:pointer;
165
+	color:blue;
166
+}
167
+.WdateDiv .Wselday{
168
+	background-color:#A7E2E7;
169
+}
170
+.WdateDiv .WspecialDay{
171
+	background-color:#66F4DF;
172
+}
173
+
174
+.WdateDiv .WotherDay{ 
175
+	cursor:pointer;
176
+	color:#0099CC;	
177
+}
178
+
179
+.WdateDiv .WotherDayOn{ 
180
+	cursor:pointer;
181
+	background-color:#C0EBEF;	
182
+}
183
+
184
+.WdateDiv .WinvalidDay{
185
+	color:#aaa;
186
+}
187
+
188
+.WdateDiv #dpTime{
189
+	float:left;
190
+	margin-top:3px;
191
+	margin-right:30px;
192
+}
193
+
194
+.WdateDiv #dpTime #dpTimeStr{
195
+	margin-left:1px;
196
+	color:#497F7F;
197
+}
198
+
199
+.WdateDiv #dpTime input{
200
+	height:20px;
201
+	width:18px;
202
+	text-align:center;
203
+	color:#333;
204
+	border:#61CAD0 1px solid;	
205
+}
206
+
207
+.WdateDiv #dpTime .tB{
208
+	border-right:0px;
209
+}
210
+
211
+.WdateDiv #dpTime .tE{
212
+	border-left:0;
213
+	border-right:0;
214
+}
215
+
216
+.WdateDiv #dpTime .tm{
217
+	width:7px;
218
+	border-left:0;
219
+	border-right:0;
220
+}
221
+
222
+.WdateDiv #dpTime #dpTimeUp{
223
+	height:10px;
224
+	width:13px;
225
+	border:0px;
226
+	background:url(img.gif) no-repeat -32px -16px;
227
+}
228
+
229
+.WdateDiv #dpTime #dpTimeDown{
230
+	height:10px;
231
+	width:13px;
232
+	border:0px;
233
+	background:url(img.gif) no-repeat -48px -16px;
234
+}
235
+
236
+ .WdateDiv #dpQS {
237
+ 	float:left;
238
+	margin-right:3px;
239
+	margin-top:3px;
240
+	background:url(img.gif) no-repeat 0px -16px;
241
+	width:20px;
242
+	height:20px;
243
+	cursor:pointer;
244
+ }
245
+.WdateDiv #dpControl {
246
+	text-align:right;
247
+	margin-top:3px;
248
+}
249
+.WdateDiv .dpButton{ 
250
+	height:20px;
251
+	width:45px;
252
+	margin-top:2px;
253
+	border:#38B1B9 1px solid;
254
+	background-color:#CFEBEE;
255
+	color:#08575B;
256
+}

BIN
CallCenterWeb.UI/My97DatePicker/skin/whyGreen/img.gif


+ 239 - 0
CallCenterWeb.UI/MyCallTask.html

@@ -0,0 +1,239 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>我的任务</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+		<link href="./css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet">
9
+		<link href="./css/bootstrap.min.css" />
10
+		<link rel="stylesheet" href="./css/boot/bootstrap-table.css" />
11
+		<link href="./css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
12
+		<link href="./css/animate.min.css" rel="stylesheet">
13
+		<link href="./css/style.min862f.css?v=4.1.0" rel="stylesheet">
14
+		<link href="./css/initialize.css" rel="stylesheet" />
15
+		<link href="./css/Table/table1.css" rel="stylesheet" />
16
+		<style>
17
+			.wrapper {
18
+				position: relative;
19
+			}
20
+			
21
+			.whjh {
22
+				position: absolute;
23
+				top: 43px;
24
+				z-index: 600;
25
+			}
26
+			
27
+			#table1 {
28
+				background: #F9F9F9;
29
+			}
30
+			
31
+			.fixed-table-pagination {
32
+				background: #F9F9F9;
33
+			}
34
+			
35
+			#table1 thead {
36
+				background: #f9f9f9;
37
+			}
38
+			
39
+			.hidens {
40
+				display: none;
41
+			}
42
+			
43
+			.outline {
44
+				border: 1px solid #21b9bb !important;
45
+			}
46
+			
47
+			.imgs {
48
+				color: rgb(0, 128, 0);
49
+				cursor: pointer;
50
+			}
51
+			
52
+			.imgs img {
53
+				vertical-align: baseline;
54
+			}
55
+		</style>
56
+	</head>
57
+	
58
+	<body>
59
+		<div class="wrapper wrapper-content animated fadeInRight">
60
+			<div class="th-box">
61
+				<div class="th-bar">
62
+					<div class="seach-box fl">
63
+						<ul>
64
+							<li>外呼计划:<input class="photo x-color" type="text" id="Call" /></li>
65
+							<li>关键字:<input class="photo x-color laydate-icon" type="text" id="KeyWords" /></li>
66
+							<li>
67
+								<a class="sc_btn btn-info" id="sc_btn">搜索</a>
68
+							</li>
69
+						</ul>
70
+					</div>
71
+				</div>
72
+			</div>
73
+			<div style="width: 30%;padding: 10px;" class="whjh hidens">
74
+				<table id="table1" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
75
+					<thead>
76
+						<tr>
77
+							<th  data-field="Plans" data-align="center" data-formatter="Plans"></th>
78
+							<th  data-field="Plan" data-align="center">计划名称</th>
79
+							<th data-field="Number" data-align="center">号码数量</th>
80
+						</tr>
81
+					</thead>
82
+					<tbody id="tbody">
83
+					</tbody>
84
+				</table>
85
+			</div>
86
+			<div style="width: 100%;padding: 10px;">
87
+				<table id="goods" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
88
+					<thead>
89
+						<tr>
90
+							<th data-field="state" data-checkbox="true"></th>
91
+							<th data-sortable="true" data-field="whjh" data-align="center">外呼计划</th>
92
+							<th data-sortable="true" data-field="Num" data-align="center" data-formatter="setCode">号码</th>
93
+							<th data-sortable="true" data-field="Name" data-align="center">名称</th>
94
+							<th data-sortable="true" data-field="Dtime" data-align="center">导入时间</th>
95
+							<th data-sortable="true" data-field="Zx" data-align="center">坐席分配</th>
96
+							<th data-sortable="true" data-field="Dstates" data-align="center">呼叫状态</th>
97
+							<th data-sortable="true" data-field="Jstaes" data-align="center">接通状态</th>
98
+						</tr>
99
+					</thead>
100
+					<tbody id="tbody">
101
+					</tbody>
102
+				</table>
103
+			</div>
104
+		</div>
105
+		<script src="./js/jquery.min.js?v=2.1.4"></script>
106
+		<script src="./js/bootstrap.min.js"></script>
107
+		<script src="./js/bootstrap-table.js"></script>
108
+		<script src="./js/bootstrap-table-zh-CN.js"></script>
109
+		<script>
110
+			var $tableLeft = $('#table1');
111
+			var $tableLeft1 = $('#goods');
112
+			var arr = [{
113
+					"Plan": "张三外呼",
114
+					"Number": "0",
115
+				},
116
+				{
117
+					"Plan": "满意度调差",
118
+					"Number": "51561",
119
+				},
120
+				{
121
+					"Plan": "张三外呼",
122
+					"Number": "0",
123
+				}
124
+			];
125
+			var arr1 = [{
126
+					'whjh': '201603月产品调查',
127
+					'Num': ' 13800000882',
128
+					'Name': '信息1',
129
+					'Dtime': '2016-06-16 08:53:04',
130
+					'Zx': '系统管理',
131
+					'Dstates': '系统管理',
132
+					'Jstaes': '未呼叫',
133
+					'Jstaes': '未接通',
134
+				},
135
+				{
136
+					'whjh': '201603月产品调查',
137
+					'Num': ' 13800000882',
138
+					'Name': '信息1',
139
+					'Dtime': '2016-06-16 08:53:04',
140
+					'Zx': '系统管理',
141
+					'Dstates': '系统管理',
142
+					'Jstaes': '未呼叫',
143
+					'Jstaes': '未接通',
144
+				},
145
+				{
146
+					'whjh': '201603月产品调查',
147
+					'Num': ' 13800000882',
148
+					'Name': '信息1',
149
+					'Dtime': '2016-06-16 08:53:04',
150
+					'Zx': '系统管理',
151
+					'Dstates': '系统管理',
152
+					'Jstaes': '未呼叫',
153
+					'Jstaes': '未接通',
154
+				},
155
+				{
156
+					'whjh': '201603月产品调查',
157
+					'Num': ' 13800000882',
158
+					'Name': '信息1',
159
+					'Dtime': '2016-06-16 08:53:04',
160
+					'Zx': '系统管理',
161
+					'Dstates': '系统管理',
162
+					'Jstaes': '未呼叫',
163
+					'Jstaes': '未接通',
164
+				},
165
+				{
166
+					'whjh': '201603月产品调查',
167
+					'Num': ' 13800000882',
168
+					'Name': '信息1',
169
+					'Dtime': '2016-06-16 08:53:04',
170
+					'Zx': '系统管理',
171
+					'Dstates': '系统管理',
172
+					'Jstaes': '未呼叫',
173
+					'Jstaes': '未接通',
174
+				},
175
+				{
176
+					'whjh': '201603月产品调查',
177
+					'Num': ' 13800000882',
178
+					'Name': '信息1',
179
+					'Dtime': '2016-06-16 08:53:04',
180
+					'Zx': '系统管理',
181
+					'Dstates': '系统管理',
182
+					'Jstaes': '未呼叫',
183
+					'Jstaes': '未接通',
184
+				}
185
+
186
+			]
187
+			$tableLeft.bootstrapTable({
188
+				data: arr, //请求后台的URL(*)
189
+				method: 'get',
190
+				toolbar: '#toolbar',
191
+				pagination: true,
192
+				pageNumber: 1, //初始化加载第一页,默认第一页
193
+				pageSize: 5, //每页的记录行数(*)
194
+				pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
195
+				clickToSelect: true,
196
+				striped: true
197
+			});
198
+			$tableLeft1.bootstrapTable({
199
+				data: arr1, //请求后台的URL(*)
200
+				method: 'get',
201
+				toolbar: '#toolbar',
202
+				pagination: true,
203
+				pageNumber: 1, //初始化加载第一页,默认第一页
204
+				pageSize: 5, //每页的记录行数(*)
205
+				pageList: [5, 25, 50, 100], //可供选择的每页的行数(*)
206
+				clickToSelect: true,
207
+				striped: true
208
+			});
209
+			
210
+            function Plans(value, row, index) {
211
+				return ''+index+'';
212
+			}
213
+			function setCode(val) {
214
+				return '<div class="imgs">' +
215
+					'<img src="./img/user.png" alt="" />' + val + '' +
216
+					'</div>';
217
+			}
218
+
219
+			/*获取焦点*/
220
+			$("#Call").focus(function() {
221
+				$(this).addClass("outline");
222
+				$(".whjh").removeClass("hidens");
223
+
224
+			})
225
+			$("#Call").blur(function() {
226
+				$(this).removeClass("outline");
227
+				$(".whjh").addClass("hidens");
228
+
229
+			})
230
+			$("input").focus(function() {
231
+				$(this).addClass("outline");
232
+			});
233
+			$("input").blur(function() {
234
+				$(this).removeClass("outline");
235
+			})
236
+		</script>
237
+	</body>
238
+
239
+</html>

+ 307 - 0
CallCenterWeb.UI/MyRuselt.html

@@ -0,0 +1,307 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>我的任务结果</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+		<link href="./css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet">
9
+		<link href="./css/bootstrap.min.css" />
10
+		<link rel="stylesheet" href="./css/boot/bootstrap-table.css" />
11
+		<link href="./css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
12
+		<link href="./css/animate.min.css" rel="stylesheet">
13
+		<link href="./css/style.min862f.css?v=4.1.0" rel="stylesheet">
14
+		<link href="./css/initialize.css" rel="stylesheet" />
15
+		<link href="./css/Table/table1.css" rel="stylesheet" />
16
+		<style>
17
+			.wrapper {
18
+				position: relative;
19
+			}
20
+			
21
+			.whjh {
22
+				position: absolute;
23
+				top: 43px;
24
+				z-index: 600;
25
+			}
26
+			
27
+			#table1 {
28
+				background: #F9F9F9;
29
+			}
30
+			
31
+			.fixed-table-pagination {
32
+				background: #F9F9F9;
33
+			}
34
+			
35
+			#table1 thead {
36
+				background: #f9f9f9;
37
+			}
38
+			
39
+			.hidens {
40
+				display: none;
41
+			}
42
+			
43
+			.outline {
44
+				border: 1px solid #21b9bb !important;
45
+			}
46
+			
47
+			.imgs {
48
+				color: rgb(0, 128, 0);
49
+				cursor: pointer;
50
+			}
51
+			
52
+			.imgs img {
53
+				vertical-align: baseline;
54
+			}
55
+			.key{
56
+				width: 80px;
57
+			}
58
+			.xg:hover{
59
+				color:#E43926;
60
+			}
61
+		</style>
62
+	</head>
63
+	<script src="./js/jquery.min.js?v=2.1.4"></script>
64
+	<script src="./js/bootstrap.min.js"></script>
65
+	<script src="./js/bootstrap-table.js"></script>
66
+	<script src="./js/bootstrap-table-zh-CN.js"></script>
67
+	<script src="My97DatePicker/WdatePicker.js"></script>
68
+	</head>
69
+
70
+	<body>
71
+		<div class="wrapper wrapper-content animated fadeInRight">
72
+			<div class="th-box">
73
+				<div class="th-bar">
74
+					<div class="seach-box fl">
75
+						<ul>
76
+							<li>外呼计划:<input class="photo x-color" type="text" id="Call" /></li>
77
+							<li>关键字:<input  class="photo x-color key" type="text" id="KeyWords" /></li>
78
+							<li>开始回放时间:<input class="photo x-color" type="text" id="St" onfocus="WdatePicker({lang:'zh-cn',dateFmt:'HH-mm-ss'})"/></li>
79
+							<li>结束时间:<input class="photo x-color" type="text" id="Et" onfocus="WdatePicker({lang:'zh-cn',dateFmt:'HH-mm-ss'})" /></li>
80
+						</ul>
81
+					</div>
82
+				</div>
83
+			</div>
84
+			<div style="width: 30%;padding: 10px;" class="whjh hidens">
85
+				
86
+				<table id="table1" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
87
+					<thead>
88
+						<tr>
89
+							<th data-sortable="true" data-field="Plan" data-align="center">计划名称</th>
90
+							<th data-sortable="true" data-field="Number" data-align="center">号码数量</th>
91
+						</tr>
92
+					</thead>
93
+					<tbody id="tbody">
94
+					</tbody>
95
+				</table>
96
+			</div>
97
+			<div style="width: 100%;padding: 10px;">
98
+				<div class="fl" style="padding: 10px;">
99
+						呼叫状态:
100
+						<select name="" id="Select" class="x-color select" >
101
+							<option value="">全部</option>
102
+							<option value="">未呼叫</option>
103
+							<option value="">已呼叫</option>
104
+						</select>
105
+						 接通状态:
106
+						 <select name="" id="Select" class="x-color select" >
107
+							<option value="">全部</option>
108
+							<option value="">未接通</option>
109
+							<option value="">已接通</option>
110
+						</select>
111
+						 呼叫结果:
112
+						 <select name="" id="Select" class="x-color " >
113
+							<option value="">全部</option>
114
+							<option value="">正常接通</option>
115
+							<option value="">拒访</option>
116
+							<option value="">不是本人</option>
117
+							<option value="">关机</option>
118
+							<option value="">停机</option>
119
+							<option value="">无人接听</option>
120
+							<option value="">空号</option>
121
+						</select>
122
+						<div class="fr" style="margin-left: 15px;">
123
+							<a class="sc_btn btn-info" id="sc_btn">搜索</a>
124
+						</div>
125
+						
126
+				</div>
127
+				<table id="goods" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
128
+					<thead>
129
+						<tr>
130
+							<th  data-field="whjh" data-align="center">外呼计划</th>
131
+							<th  data-field="Result" data-align="center" data-formatter="Results">结果</th>
132
+							<th  data-field="Num" data-align="center" data-formatter="setCode">号码</th>
133
+							<th  data-field="Name" data-align="center">名称</th>
134
+							<th  data-field="Dtime" data-align="center">导入时间</th>
135
+							<th  data-field="Zx" data-align="center">坐席分配</th>
136
+							<th  data-field="Dstates" data-align="center">呼叫状态</th>
137
+							<th  data-field="Hr" data-align="center">呼叫结果</th>
138
+							<th  data-field="Zhs" data-align="center">最后接通状态</th>
139
+							<th  data-field="Zht" data-align="center">最后呼叫时间</th>
140
+							<th  data-field="Ch" data-align="center">呼叫次数</th>
141
+							<th data-field="Jtc" data-align="center">接通次数</th>
142
+							<th  data-field="Thjs" data-align="center" data-formatter="Thj">通话记录</th>
143
+						</tr>
144
+					</thead>
145
+					<tbody id="tbody">
146
+					</tbody>
147
+				</table>
148
+			</div>
149
+		</div>
150
+		<script>
151
+			var $tableLeft = $('#table1');
152
+			var $tableLeft1 = $('#goods');
153
+			var arr = [{
154
+					"Plan": "张三外呼",
155
+					"Number": "0",
156
+				},
157
+				{
158
+					"Plan": "满意度调差",
159
+					"Number": "51561",
160
+				},
161
+				{
162
+					"Plan": "张三外呼",
163
+					"Number": "0",
164
+				}
165
+			];
166
+			var arr1 = [{
167
+					'whjh': '201603月产品调查',
168
+					'Num': ' 13800000882',
169
+					'Name': '信息1',
170
+					'Dtime': '2016-06-16 08:53:04',
171
+					'Zx': '系统管理',
172
+					'Dstates': '已呼叫',
173
+					'Hr': '正常接通',
174
+					'Zhs': '未接通',
175
+					'Zht': '2017-06-03 17:39:49',
176
+					'Ch': '3',
177
+					'Jtc': '0',
178
+				},
179
+				{
180
+					'whjh': '201603月产品调查',
181
+					'Num': ' 13800000882',
182
+					'Name': '信息1',
183
+					'Dtime': '2016-06-16 08:53:04',
184
+					'Zx': '系统管理',
185
+					'Dstates': '已呼叫',
186
+					'Hr': '正常接通',
187
+					'Zhs': '未接通',
188
+					'Zht': '2017-06-03 17:39:49',
189
+					'Ch': '3',
190
+					'Jtc': '0',
191
+				},
192
+				{
193
+					'whjh': '201603月产品调查',
194
+					'Num': ' 13800000882',
195
+					'Name': '信息1',
196
+					'Dtime': '2016-06-16 08:53:04',
197
+					'Zx': '系统管理',
198
+					'Dstates': '已呼叫',
199
+					'Hr': '正常接通',
200
+					'Zhs': '未接通',
201
+					'Zht': '2017-06-03 17:39:49',
202
+					'Ch': '3',
203
+					'Jtc': '0',
204
+				},
205
+				{
206
+					'whjh': '201603月产品调查',
207
+					'Num': ' 13800000882',
208
+					'Name': '信息1',
209
+					'Dtime': '2016-06-16 08:53:04',
210
+					'Zx': '系统管理',
211
+					'Dstates': '已呼叫',
212
+					'Hr': '正常接通',
213
+					'Zhs': '未接通',
214
+					'Zht': '2017-06-03 17:39:49',
215
+					'Ch': '3',
216
+					'Jtc': '0',
217
+				},
218
+				{
219
+					'whjh': '201603月产品调查',
220
+					'Num': ' 13800000882',
221
+					'Name': '信息1',
222
+					'Dtime': '2016-06-16 08:53:04',
223
+					'Zx': '系统管理',
224
+					'Dstates': '已呼叫',
225
+					'Hr': '正常接通',
226
+					'Zhs': '未接通',
227
+					'Zht': '2017-06-03 17:39:49',
228
+					'Ch': '3',
229
+					'Jtc': '0',
230
+				},
231
+				{
232
+					'whjh': '201603月产品调查',
233
+					'Num': ' 13800000882',
234
+					'Name': '信息1',
235
+					'Dtime': '2016-06-16 08:53:04',
236
+					'Zx': '系统管理',
237
+					'Dstates': '已呼叫',
238
+					'Hr': '正常接通',
239
+					'Zhs': '未接通',
240
+					'Zht': '2017-06-03 17:39:49',
241
+					'Ch': '3',
242
+					'Jtc': '0',
243
+				}
244
+
245
+			]
246
+			$tableLeft.bootstrapTable({
247
+				data: arr, //请求后台的URL(*)
248
+				method: 'get',
249
+				toolbar: '#toolbar',
250
+				pagination: true,
251
+				pageNumber: 1, //初始化加载第一页,默认第一页
252
+				pageSize: 5, //每页的记录行数(*)
253
+				pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
254
+				clickToSelect: true,
255
+				striped: true
256
+			});
257
+			$tableLeft1.bootstrapTable({
258
+				data: arr1, //请求后台的URL(*)
259
+				method: 'get',
260
+				toolbar: '#toolbar',
261
+				pagination: true,
262
+				pageNumber: 1, //初始化加载第一页,默认第一页
263
+				pageSize: 5, //每页的记录行数(*)
264
+				pageList: [5, 25, 50, 100], //可供选择的每页的行数(*)
265
+				clickToSelect: true,
266
+				striped: true
267
+			});
268
+
269
+			function setCode(val) {
270
+				return '<div class="imgs">' +
271
+					'<img src="./img/user.png" alt="" />' + val + '' +
272
+					'</div>';
273
+			}
274
+			function Results(val) {
275
+				return '<div class="imgs">' +
276
+				'<a class="xg">查看'+
277
+				'</a>'+
278
+				'</div>';
279
+			}
280
+			function Thj(val) {
281
+				return '<div class="imgs">' +
282
+				'<a class="xg">查看'+
283
+				'</a>'+
284
+				'</div>';
285
+			}
286
+
287
+			/*获取焦点*/
288
+			$("#Call").focus(function() {
289
+				$(this).addClass("outline");
290
+				$(".whjh").removeClass("hidens");
291
+
292
+			})
293
+			$("#Call").blur(function() {
294
+				$(this).removeClass("outline");
295
+				$(".whjh").addClass("hidens");
296
+
297
+			})
298
+			$("input").focus(function() {
299
+				$(this).addClass("outline");
300
+			});
301
+			$("input").blur(function() {
302
+				$(this).removeClass("outline");
303
+			})
304
+		</script>
305
+	</body>
306
+
307
+</html>

+ 264 - 0
CallCenterWeb.UI/OnDuty/Duty.html

@@ -0,0 +1,264 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>值班电话管理</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+		<script src="../Script/Common/huayi.load.js"></script>
9
+		<script src="../Script/Common/huayi.config.js"></script>
10
+		<link href="../css/Table/table1.css" rel="stylesheet" />
11
+		<link href="../css/init.css" rel="stylesheet" />
12
+		<script src="../css/laydate/laydate.js"></script>
13
+		<script src="../My97DatePicker/WdatePicker.js"></script>
14
+		<style>
15
+			table td {
16
+				word-break: break-all;
17
+				word-wrap: break-word;
18
+			}
19
+			
20
+		
21
+		</style>
22
+	</head>
23
+
24
+	<body class="gray-bg">
25
+		<div class="wrapper wrapper-content animated fadeInRight">
26
+			<div class="daoHang clearfix">
27
+				<div class="dhLeft">
28
+					<sapn><i class="syIcon"></i>位置:
29
+						<a href="javaScript:;" id="ReIndex">首页</a>&gt;
30
+						<a href="javaScript:;">值班电话</a>&gt;
31
+						<a href="" style="color: #000;">值班电话管理</a>
32
+					</sapn>
33
+				</div>
34
+				<div class="dhRight">
35
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
36
+            	</div>
37
+			</div>
38
+			<div class="th-box">
39
+				<div class="th-bar">
40
+					<a class="sc_btn  add max-right">添加</a>
41
+					<a class="sc_btn  xg max-right">修改</a>
42
+					<a class="sc_btn  remove">删除</a>
43
+					<div class="seach-box fr">
44
+						<ul>
45
+							<li>电话号码:<input class="photo x-color" type="text" id="tel" /></li>
46
+							<li>添加时间:<input class="laydate-icon photo x-color " type="text" id="settime" />
47
+								-<input class="laydate-icon photo x-color " type="text" id="endtime" />
48
+							</li>
49
+							<li>
50
+								<a class="sc_btn  Block" id="sc_btns">搜索</a>
51
+							</li>
52
+						</ul>
53
+					</div>
54
+				</div>
55
+			</div>
56
+			<div style="width: 100%;padding: 10px;">
57
+				<table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
58
+					<thead>
59
+						<tr>
60
+							<th data-field="state" data-checkbox="true"></th>
61
+							<th data-field="F_ZBDH" data-align="center">值班电话</th>
62
+							<th data-field="F_Remark" data-align="center">说明</th>
63
+							<th data-field="F_CreateBy" data-align="center">添加人</th>
64
+							<th data-field="F_CreateTime" data-align="center">添加时间</th>
65
+						</tr>
66
+					</thead>
67
+					<tbody id="tbody"></tbody>
68
+				</table>
69
+			</div>
70
+		</div>
71
+
72
+		<script>
73
+			var html = '<div >' +
74
+				'<ul class="nav nav-tabs">' +
75
+				'<li class="active">' +
76
+				'<input type="hidden" id="ID" />' +
77
+				'</li>' +
78
+				'</ul>' +
79
+				'<div class="add_time">' +
80
+				'<label for="">电话号码:</label>' +
81
+				'<input type="text" id="TelNum" class="photo"  />' +
82
+				'</div>' +
83
+				'<div class="add_time">' +
84
+				'<label for="" class="Pb_sm">说明:</label>' +
85
+				'<textarea type="text" id="Pb"></textarea>' +
86
+				'</div>' +
87
+				'<div class="add_time tc">' +
88
+				'<button type="button" class="btn sc_btn " id="tc" onclick="addedit()">保&nbsp;&nbsp;存</button>' +
89
+				'</div>' +
90
+				'</div>';
91
+			var tc;
92
+			$(document).ready(function() {
93
+				/*日期选择*/
94
+				laydate.skin('molv');
95
+				/*开始日期*/
96
+				laydate({
97
+					elem: '#settime',
98
+					event: 'focus'
99
+				});
100
+				laydate({
101
+					elem: '#endtime',
102
+					event: 'focus'
103
+				});
104
+				/*搜索*/
105
+				$(".Block").click(function() {
106
+					initTable();
107
+				})
108
+				/*删除内容*/
109
+				$(".remove").click(function() {
110
+					var ids = $.map($('#list').bootstrapTable('getSelections'),
111
+						function(row) {
112
+							return row.F_ZBID;
113
+						});
114
+					/*判断长度*/
115
+					if(ids.length <= 0) {
116
+						layer.confirm('没有可删除的选项?', {
117
+							btn: ['确定'] //按钮
118
+						});
119
+						return;
120
+					}
121
+					remove();
122
+				});
123
+
124
+				/*修改弹窗*/
125
+				$(".xg").click(function() {
126
+					var blackid = $.map($('#list').bootstrapTable('getSelections'),
127
+						function(row) {
128
+							return row.F_ZBID;
129
+						});
130
+					if(blackid.length != 1) {
131
+						layer.confirm('请选择一行进行修改?', {
132
+							btn: ['确定'] //按钮
133
+						});
134
+						return;
135
+					} else {
136
+						$.getJSON(huayi.config.callcenter_url + "DutyPhone/GetDutyPhone", {
137
+							zbid: blackid[0],
138
+							token: $.cookie("token")
139
+						}, function(result) {
140
+							if(result.state.toLowerCase() == "success") {
141
+								tc = layer.open({
142
+									type: 1,
143
+									title: '修改值班电话',
144
+									area: ['30%', '38%'], //宽高
145
+									content: html
146
+								});
147
+
148
+								$("#ID").val(result.data.F_ZBID);
149
+								$("#TelNum").val(result.data.F_ZBDH);
150
+								$("#Pb").val(result.data.F_Remark);
151
+							}
152
+						})
153
+					}
154
+				});
155
+				/*增加弹框*/
156
+				$(".add").click(function() {
157
+					tc = layer.open({
158
+						type: 1,
159
+						content: html, //iframe的url,no代表不显示滚动条
160
+						title: '添加值班号码',
161
+						area: ['40%', '50%'], //宽高
162
+					});
163
+				});
164
+
165
+				initTable();
166
+			})
167
+
168
+			function initTable() {
169
+				//先销毁表格
170
+				$('#list').bootstrapTable('destroy');
171
+				//初始化表格,动态从服务器加载数据
172
+				$("#list").bootstrapTable({
173
+					method: "get", //使用get请求到服务器获取数据
174
+					url: huayi.config.callcenter_url + "DutyPhone/GetList", //获取数据的Servlet地址
175
+					striped: true, //表格显示条纹
176
+					pagination: true, //启动分页
177
+					pageSize: 10, //每页显示的记录数
178
+					pageNumber: 1, //当前第几页
179
+					pageList: [10, 20, 50, 100], //记录数可选列表
180
+					search: false, //是否启用查询
181
+					showColumns: false, //显示下拉框勾选要显示的列
182
+					showRefresh: false, //显示刷新按钮
183
+					sidePagination: "server", //表示服务端请求
184
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
185
+					//设置为limit可以获取limit, offset, search, sort, order
186
+					queryParamsType: "undefined",
187
+					queryParams: function queryParams(params) { //设置查询参数
188
+						var param = {
189
+							page: params.pageNumber,
190
+							pagesize: params.pageSize,
191
+							telnum: $("#tel").val(),
192
+							btime: $("#settime").val(),
193
+							etime:$("#endtime").val(),
194
+							token: $.cookie("token")
195
+						};
196
+						return param;
197
+					},
198
+					onLoadSuccess: function() { //加载成功时执行
199
+						//layer.msg("加载成功");
200
+					},
201
+					onLoadError: function() { //加载失败时执行
202
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
203
+					}
204
+				});
205
+			}
206
+
207
+			/*删除提示*/
208
+			function remove() {
209
+				layer.confirm('确定删除当前记录?', {
210
+					btn: ['是', '否'] //按钮
211
+				}, function() {
212
+
213
+					/*执行删除*/
214
+					var ids = $.map($('#list').bootstrapTable('getSelections'),
215
+						function(row) {
216
+							return row.F_ZBID;
217
+						});
218
+					/*发送请求*/
219
+					$.post(huayi.config.callcenter_url + "DutyPhone/DelDutyPhone", {
220
+						ids: ids,
221
+						token: $.cookie("token")
222
+					}, function(result) {
223
+						result = JSON.parse(result);
224
+						if(result.state.toLowerCase() == "success") {
225
+							layer.msg("删除成功");
226
+							initTable();
227
+						}
228
+					})
229
+				});
230
+			}
231
+			//新增或者编辑
232
+			function addedit() {
233
+				var telreg = /^\d{1,12}$/;
234
+            	if (!telreg.test($.trim($("#TelNum").val()))) {
235
+					layer.confirm('请输入有效的电话号码', {
236
+						icon: 2,
237
+						btn: ['确定'] //按钮
238
+					});
239
+					return;
240
+				}
241
+				/*发送请求*/
242
+				$.post(huayi.config.callcenter_url + "DutyPhone/AddDutyPhone", {
243
+					zbid: $("#ID").val(),
244
+					telphone: $("#TelNum").val(),
245
+					des: $("#Pb").val(),
246
+					token: $.cookie("token")
247
+				}, function(result) {
248
+					result = JSON.parse(result);
249
+					if(result.state.toLowerCase() == "success") {
250
+						if($("#ID").val()) {
251
+							layer.msg("修改成功");
252
+						} else {
253
+							layer.msg("新增成功");
254
+						}
255
+						layer.close(tc); //关闭弹层
256
+						initTable();
257
+					}
258
+				})
259
+			}
260
+		</script>
261
+
262
+	</body>
263
+
264
+</html>

+ 346 - 0
CallCenterWeb.UI/OnDuty/SeatsMessage.html

@@ -0,0 +1,346 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>座席组管理</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+		<script src="../Script/Common/huayi.load.js"></script>
9
+		<script src="../Script/Common/huayi.config.js"></script>
10
+		<link href="../css/Table/table1.css" rel="stylesheet" />
11
+		<link href="../css/init.css" rel="stylesheet" />
12
+		<script src="../css/laydate/laydate.js"></script>
13
+		<script src="../My97DatePicker/WdatePicker.js"></script>
14
+		<style>
15
+			table td {
16
+				word-break: break-all;
17
+				word-wrap: break-word;
18
+			}
19
+			
20
+			table th {
21
+				min-width: 120px;
22
+			}
23
+			
24
+			.add_time {
25
+				padding-left: 0;
26
+			}
27
+			
28
+			#Pbs {
29
+				width: 50%;
30
+				height: 80px;
31
+				border: 1px solid #e5e6e7;
32
+				resize: none;
33
+			}
34
+			
35
+			.sc_btn {
36
+				padding: 8px 10px;
37
+			}
38
+		</style>
39
+	</head>
40
+
41
+	<body class="gray-bg">
42
+		<div class="wrapper wrapper-content animated fadeInRight">
43
+			<div class="daoHang clearfix">
44
+				<div class="dhLeft">
45
+					<sapn><i class="syIcon"></i>位置:
46
+						<a href="javaScript:;" id="ReIndex">首页</a>&gt;
47
+						<a href="javaScript:;">值班电话</a>&gt;
48
+						<a href="" style="color: #000;">座席组管理</a>
49
+					</sapn>
50
+				</div>
51
+				<div class="dhRight">
52
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
53
+            	</div>
54
+			</div>
55
+			<div class="th-box">
56
+				<div class="th-bar">
57
+					<a class="sc_btn  add max-right">添加</a>
58
+					<a class="sc_btn  xg max-right">修改</a>
59
+					<a class="sc_btn  remove">删除</a>
60
+					<div class="seach-box fr">
61
+						<ul>
62
+							<li><input class="photo x-color" type="text" id="Key" placeholder="输入搜索的内容" /></li>
63
+
64
+							<li>
65
+								<a class="sc_btn  Block" id="sc_btns">搜索</a>
66
+							</li>
67
+						</ul>
68
+					</div>
69
+				</div>
70
+			</div>
71
+			<div style="width: 100%;padding: 10px;">
72
+				<table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
73
+					<thead>
74
+						<tr>
75
+							<th data-field="state" data-checkbox="true"></th>
76
+							<th data-field="F_ZXZCode" data-align="center">坐席组编号</th>
77
+							<th data-field="F_ZXZName" data-align="center">座席组名称</th>
78
+							<!--<th data-field="F_IVRKey" data-align="center">IVR按键</th>-->
79
+							<th data-field="F_WHBDKey" data-align="center">外呼本地前缀</th>
80
+							<th data-field="F_WHWDKey" data-align="center">外呼外地前缀</th>
81
+							<th data-field="F_ZXAtt" data-align="center">座席归属地</th>
82
+							<th data-field="F_Des" data-align="center">描述说明</th>
83
+						</tr>
84
+					</thead>
85
+					<tbody id="tbody"></tbody>
86
+				</table>
87
+			</div>
88
+		</div>
89
+
90
+		<script>
91
+			var html = '<div >' +
92
+				'<ul class="nav nav-tabs">' +
93
+				'<li class="active">' +
94
+				'<input type="hidden" id="ID" />' +
95
+				'</li>' +
96
+				'</ul>' +
97
+				'<div class="add_time">' +
98
+				'<label for="">编号:</label>' +
99
+				'<input type="text" id="Z_Num" class="photo"  />' +
100
+				'<label for="">名称:</label>' +
101
+				'<input type="text" id="Z_Name" class="photo"  />' +
102
+				'</div>' +
103
+				'<div class="add_time">' +
104
+				'<label for="">所属地区号:</label>' +
105
+				'<input type="text" id="Z_gsd" class="photo"  />' +
106
+				'<label for="">外呼外地前缀:</label>' +
107
+				'<input type="text" id="Z_w" class="photo"  />' +
108
+				'</div>' +
109
+				'<div class="add_time">' +
110
+				'<label for="">外呼本地前缀:</label>' +
111
+				'<input type="text" id="Z_b" class="photo"  />' +
112
+				//				'<label for="">IVR按键:</label>' +
113
+				//				'<input type="text" id="Z_IVR" class="photo"  />' +
114
+				'</div>' +
115
+				'<div class="add_time">' +
116
+				'<label for="" class="Pb_sm">描述说明:</label>' +
117
+				'<textarea type="text" id="Pb"></textarea>' +
118
+				'</div>' +
119
+				'<div class="add_time tc">' +
120
+				'<button type="button" class="btn sc_btn " id="tc" onclick="addedit()">保&nbsp;&nbsp;存</button>' +
121
+				//				'<button type="button" class="btn sc_btn " id="tcs" onclick="xg()">保&nbsp;&nbsp;存</button>' +
122
+				'</div>' +
123
+				'</div>';
124
+			var htmls = '<div >' +
125
+				'<ul class="nav nav-tabs">' +
126
+				'<li class="active">' +
127
+				'<input type="hidden" id="ID" />' +
128
+				'</li>' +
129
+				'</ul>' +
130
+				'<div class="add_time">' +
131
+				'<label for="">编号:</label>' +
132
+				'<input type="text" id="Z_Nums" class="photo"  />' +
133
+				'<label for="">名称:</label>' +
134
+				'<input type="text" id="Z_Names" class="photo"  />' +
135
+				'</div>' +
136
+				'<div class="add_time">' +
137
+				'<label for="">所属地区号:</label>' +
138
+				'<input type="text" id="Z_gsds" class="photo"  />' +
139
+				'<label for="">外呼外地前缀:</label>' +
140
+				'<input type="text" id="Z_ws" class="photo"  />' +
141
+				'</div>' +
142
+				'<div class="add_time">' +
143
+				'<label for="">外呼本地前缀:</label>' +
144
+				'<input type="text" id="Z_bs" class="photo"  />' +
145
+				//				'<label for="">IVR按键:</label>' +
146
+				//				'<input type="text" id="Z_IVRs" class="photo"  />' +
147
+				'</div>' +
148
+				'<div class="add_time">' +
149
+				'<label for="" class="Pb_sm">描述说明:</label>' +
150
+				'<textarea type="text" id="Pbs"></textarea>' +
151
+				'</div>' +
152
+				'<div class="add_time tc">' +
153
+				//				'<button type="button" class="btn sc_btn " id="tc" onclick="addedit()">保&nbsp;&nbsp;存</button>' +
154
+				'<button type="button" class="btn sc_btn " id="tcs" onclick="xg()">保&nbsp;&nbsp;存</button>' +
155
+				'</div>' +
156
+				'</div>';
157
+			var tc;
158
+			var ac;
159
+			$(document).ready(function() {
160
+				$('#ReIndex').click(function(){
161
+				 top.home_index();
162
+			})
163
+				/*搜索*/
164
+				$(".Block").click(function() {
165
+					initTable();
166
+				})
167
+				/*删除内容*/
168
+				$(".remove").click(function() {
169
+					var ids = $.map($('#list').bootstrapTable('getSelections'),
170
+						function(row) {
171
+							return row.F_ZXZID;
172
+						});
173
+					/*判断长度*/
174
+					if(ids.length <= 0) {
175
+						layer.confirm('没有可删除的选项?', {
176
+							btn: ['确定'] //按钮
177
+						});
178
+						return;
179
+					}
180
+					remove();
181
+				});
182
+
183
+				/*修改弹窗*/
184
+				$(".xg").click(function() {
185
+					var blackid = $.map($('#list').bootstrapTable('getSelections'),
186
+						function(row) {
187
+							return row.F_ZXZID;
188
+						});
189
+					if(blackid.length != 1) {
190
+						layer.confirm('请选择一行进行修改?', {
191
+							btn: ['确定'] //按钮
192
+						});
193
+						return;
194
+					} else {
195
+						$.getJSON(huayi.config.callcenter_url + "SeatGroup/GetSeatGroup", {
196
+							ZXZID: blackid[0],
197
+							token: $.cookie("token")
198
+						}, function(result) {
199
+							if(result.state.toLowerCase() == "success") {
200
+								ac = layer.open({
201
+									type: 1,
202
+									title: '修改坐席',
203
+									area: ['55%', '60%'], //宽高
204
+									content: htmls
205
+								});
206
+								$("#ID").val(result.data.F_ZXZID);
207
+								$('#Z_Nums').val(result.data.F_ZXZCode);
208
+								$("#Z_Names").val(result.data.F_ZXZName);
209
+								$("#Z_gsds").val(result.data.F_ZXAtt);
210
+								$("#Z_ws").val(result.data.F_WHWDKey);
211
+								$("#Z_bs").val(result.data.F_WHBDKey);
212
+								//$("#Z_IVRs").val(result.data.F_IVRKey);
213
+								$("#Pbs").val(result.data.F_Des);
214
+							}
215
+						})
216
+					}
217
+				});
218
+				/*增加弹框*/
219
+				$(".add").click(function() {
220
+					tc = layer.open({
221
+						type: 1,
222
+						content: html, //iframe的url,no代表不显示滚动条
223
+						title: '添加座席组',
224
+						area: ['45%', '60%'], //宽高
225
+					});
226
+				});
227
+
228
+				initTable();
229
+			})
230
+			//搜索
231
+			$('#sc_btns').click(function() {
232
+				initTable();
233
+			})
234
+			function initTable() {
235
+				//先销毁表格
236
+				$('#list').bootstrapTable('destroy');
237
+				//初始化表格,动态从服务器加载数据
238
+				$("#list").bootstrapTable({
239
+					method: "get", //使用get请求到服务器获取数据
240
+					url: huayi.config.callcenter_url + "SeatGroup/GetList", //获取数据的Servlet地址
241
+					striped: true, //表格显示条纹
242
+					pagination: true, //启动分页
243
+					pageSize: 10, //每页显示的记录数
244
+					pageNumber: 1, //当前第几页
245
+					pageList: [10, 20, 50, 100], //记录数可选列表
246
+					search: false, //是否启用查询
247
+					showColumns: false, //显示下拉框勾选要显示的列
248
+					showRefresh: false, //显示刷新按钮
249
+					sidePagination: "server", //表示服务端请求
250
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
251
+					//设置为limit可以获取limit, offset, search, sort, order
252
+					queryParamsType: "undefined",
253
+					queryParams: function queryParams(params) { //设置查询参数
254
+						var param = {
255
+							page: params.pageNumber,
256
+							pagesize: params.pageSize,
257
+							content: $("#Key").val(),
258
+							token: $.cookie("token")
259
+						};
260
+						return param;
261
+					},
262
+					onLoadSuccess: function() { //加载成功时执行
263
+						//layer.msg("加载成功");
264
+					},
265
+					onLoadError: function() { //加载失败时执行
266
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
267
+					}
268
+				});
269
+			}
270
+
271
+			/*删除提示*/
272
+			function remove() {
273
+				layer.confirm('确定删除当前记录?', {
274
+					btn: ['是', '否'] //按钮
275
+				}, function() {
276
+
277
+					/*执行删除*/
278
+					var ids = $.map($('#list').bootstrapTable('getSelections'),
279
+						function(row) {
280
+							return row.F_ZXZID;
281
+						});
282
+					/*发送请求*/
283
+					$.post(huayi.config.callcenter_url + "SeatGroup/DelSeatGroup", {
284
+						ids: ids,
285
+						token: $.cookie("token")
286
+					}, function(result) {
287
+						result = JSON.parse(result);
288
+						if(result.state.toLowerCase() == "success") {
289
+							layer.msg("删除成功");
290
+							initTable();
291
+						}
292
+					})
293
+				});
294
+			}
295
+			//新增
296
+			function addedit() {
297
+
298
+				/*发送请求*/
299
+				$.post(huayi.config.callcenter_url + "SeatGroup/AddSeatGroup", {
300
+					ZXZCode: $('#Z_Num').val(),
301
+					ZXZName: $("#Z_Name").val(),
302
+					ZXAtt: $("#Z_gsd").val(),
303
+					WHWDKey: $("#Z_w").val(),
304
+					WHBDKey: $("#Z_b").val(),
305
+					//IVRKey: $("#Z_IVR").val(),
306
+					Des: $("#Pb").val(),
307
+					token: $.cookie("token")
308
+				}, function(result) {
309
+					result = JSON.parse(result);
310
+					if(result.state.toLowerCase() == "success") {
311
+						layer.msg("新增成功");
312
+
313
+						layer.close(tc); //关闭弹层
314
+						initTable();
315
+
316
+					}
317
+				})
318
+			}
319
+			//修改
320
+			function xg() {
321
+				$("#tc").hide();
322
+				/*发送请求*/
323
+				$.post(huayi.config.callcenter_url + "SeatGroup/EditSeatGroup", {
324
+					ZXZID: $("#ID").val(),
325
+					ZXZCode: $('#Z_Nums').val(),
326
+					ZXZName: $("#Z_Names").val(),
327
+					ZXAtt: $("#Z_gsds").val(),
328
+					WHWDKey: $("#Z_ws").val(),
329
+					WHBDKey: $("#Z_bs").val(),
330
+//					IVRKey: $("#Z_IVRs").val(),
331
+					Des: $("#Pbs").val(),
332
+					token: $.cookie("token")
333
+				}, function(result) {
334
+					result = JSON.parse(result);
335
+					if(result.state.toLowerCase() == "success") {
336
+						layer.msg("修改成功");
337
+						layer.close(ac); //关闭弹层
338
+						initTable();
339
+					}
340
+				})
341
+			}
342
+		</script>
343
+
344
+	</body>
345
+
346
+</html>

+ 472 - 0
CallCenterWeb.UI/Quality/qualityControl.html

@@ -0,0 +1,472 @@
1
+<!DOCTYPE html>
2
+<html>
3
+	<head>
4
+		<meta charset="UTF-8">
5
+		<title>质检结果</title>
6
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+		<link href="../css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet">
8
+		<link href="../css/bootstrap.min.css" />
9
+		 <link href="../css/init.css" rel="stylesheet" />
10
+		<link rel="stylesheet" href="../css/boot/bootstrap-table.css" />
11
+		 <link href="../css/Quality/QualityCommon.css" rel="stylesheet" />
12
+		<link href="../css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
13
+		<link href="../css/animate.min.css" rel="stylesheet">
14
+		<link href="../css/style.min862f.css?v=4.1.0" rel="stylesheet">
15
+	</head>
16
+	<script src="../js/jquery.min.js?v=2.1.4"></script>
17
+	<script src="../js/bootstrap.min.js"></script>
18
+	<script src="../js/bootstrap-table.js"></script>
19
+	<script src="../js/bootstrap-table-zh-CN.js"></script>
20
+	<script src="../css/layer/layer.js"></script>
21
+	<script src="../My97DatePicker/WdatePicker.js"></script>
22
+	<script src="../js/jquery.cookie.js"></script>
23
+	<script src="../Script/Common/huayi.load.js"></script>
24
+	<script src="../Script/Common/huayi.config.js"></script>
25
+
26
+	<body class="gray-bg">
27
+		<div class="wrapper wrapper-content animated fadeInRight">
28
+			<div class="daoHang clearfix">
29
+				<div class="dhLeft">
30
+					<sapn><i class="syIcon"></i>位置:<a href="javaScript:;" id="ReIndex">首页</a>&gt;<a href="javaScript:;">质检管理</a>&gt;<a href="" style="color: #000;">质检结果</a></sapn>
31
+				</div>
32
+				
33
+				<div class="dhRight">
34
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
35
+            	</div>
36
+			</div>
37
+			<div class="th-box">
38
+				<div class="th-bar">
39
+					<!--<a class="sc_btn btn-info">批量删除</a>-->
40
+					<div class="seach-box fr">
41
+						<ul>
42
+							<li>电话号码:<input class="photo x-color" type="text" /></li>
43
+							<li>坐席:
44
+								<select name="" id="Select" class="x-color select">
45
+									<option value="">全部</option>
46
+
47
+								</select>
48
+							</li>
49
+							<li>
50
+								<a class="sc_btn  Ss Block">搜索</a>
51
+							</li>
52
+							<li>
53
+								<a class="sc_btn  Gj Block">高级搜索</a>
54
+							</li>
55
+						</ul>
56
+					</div>
57
+				</div>
58
+			</div>
59
+			<div style="width: 100%;padding: 10px;">
60
+				<table id="goods" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
61
+					<thead>
62
+						<tr><th data-field="_bh" data-formatter="Code"></th>
63
+							<th data-field="_callnumber">电话号码</th>
64
+							<th data-field="_filepath" data-formatter="setCode">录音质检</th>
65
+							<th data-field="_f_qcstate" data-formatter="quality">是否质检</th>
66
+							<th data-field="_f_qcscore">质检得分</th>
67
+							<th data-field="_calltype" data-formatter="call">呼叫方向</th>
68
+							<th data-field="_callstate" data-formatter="states">呼叫状态</th>
69
+							<th data-field="_usercode">坐席工号</th>
70
+							<th data-field="_username">坐席姓名</th>
71
+							<th data-field="_talkstarttime">通话开始时间</th>
72
+							<th data-field="_talkendtime">通话结束时间</th>
73
+							<th data-field="_talklongtime">通话时长(S)</th>
74
+							<th data-field="_businesstype">按键</th>
75
+						</tr>
76
+					</thead>
77
+				</table>
78
+			</div>
79
+		</div>
80
+		<!--高级搜索/-->
81
+		<div class="t-shade">
82
+			<div class=" shade_k gjss">
83
+				<div class="shade_title">
84
+					<span>高级搜索<srong class="cknum"></srong></span>
85
+					<span class="setwin"><a>x</a></span>
86
+				</div>
87
+				<div class="shade_content" style="height: 340px;">
88
+					<div class="dhxx sa_title">
89
+						<span class="size-14">搜索信息</span>
90
+					</div>
91
+					<div class="dgxx_table size-13">
92
+						<table class="_table1 table table-bordered  table-hover " border="0" cellspacing="0" cellpadding="0" style="width: 100%;">
93
+							<tr>
94
+								<th>电话号码:
95
+									<td>
96
+										<div class="inpBox">
97
+											<input type="text" class="inps " id="phone" />
98
+										</div>
99
+									</td>
100
+								</th>
101
+								<th>坐席:
102
+									<td>
103
+										<div class="inpBox">
104
+											<select name="" id="usercode" class="select"></select>
105
+										</div>
106
+									</td>
107
+								</th>
108
+							</tr>
109
+							<tr>
110
+								<th>呼叫方向:
111
+									<td>
112
+										<div class="inpBox">
113
+											<select name="" id="calltype" class="select">
114
+												<option value="">全部</option>
115
+												<option value="0">呼入</option>
116
+												<option value="1">呼出</option>
117
+											</select>
118
+										</div>
119
+									</td>
120
+								</th>
121
+								<th>开始时间:
122
+									<td>
123
+										<div class="inpBox">
124
+											<input type="text" class="inps " onfocus="WdatePicker({lang:'zh-cn'})" id="starttime" />
125
+										</div>
126
+									</td>
127
+								</th>
128
+							</tr>
129
+							<tr>
130
+
131
+								<th>结束时间:
132
+									<td>
133
+										<div class="inpBox">
134
+											<input type="text" class="inps " onfocus="WdatePicker({lang:'zh-cn'})" id="endtime" />
135
+										</div>
136
+									</td>
137
+								</th>
138
+							</tr>
139
+						</table>
140
+					</div>
141
+					<div class="clearfix wh_btn">
142
+						<input type="button" value="搜索" class=" sc_btn Seach" />
143
+					</div>
144
+				</div>
145
+			</div>
146
+			<!--详情列表-->
147
+			<div class=" shade_k xqlb">
148
+				<div class="shade_title">
149
+					<span>录音播放下载及质检<srong class="cknum"></srong></span>
150
+					<span class="setwin"><a>x</a></span>
151
+				</div>
152
+				<div class="shade_content">
153
+					<div class="dgxx_table size-13">
154
+						<table cellspacing="" cellpadding="" class="form_table">
155
+							<tbody>
156
+								<tr>
157
+									<th><span>电话号码:</span></th>
158
+									<td><span class="zj_phone"></span></td>
159
+									<th><span>通话时间:</span></th>
160
+									<td><span class="zj_time">2017/5/3 16:50:05</span></td>
161
+								</tr>
162
+								<tr>
163
+									<th><span>呼叫方向:</span></th>
164
+									<td><span class="zj_calltype">呼出</span></td>
165
+									<th><span>通话时长:</span></th>
166
+									<td><span class="zj_talklongtime"> 278秒</span></td>
167
+								</tr>
168
+								<tr>
169
+									<th><span>坐席工号:</span></th>
170
+									<td><span class="zj_usercode">902</span></td>
171
+									<th><span>坐席姓名:</span></th>
172
+									<td><span class="zj_username">6+541+</span></td>
173
+								</tr>
174
+								<tr>
175
+									<th><span>听取录音:</span></th>
176
+									<td colspan="3">
177
+										<div class="play">
178
+
179
+										</div>
180
+									</td>
181
+
182
+								</tr>
183
+								<tr>
184
+									<th><span>下载录音:</span></th>
185
+									<td colspan="3">
186
+										<input type="button" value="下载" id="downlond" />
187
+									</td>
188
+								</tr>
189
+							</tbody>
190
+						</table>
191
+					</div>
192
+					<!--质检详情列表-->
193
+					<div class="divDataItems">
194
+						<table class="table table-bordered text-center table-hover" style="width: 100%;">
195
+							<thead>
196
+								<tr class="thead_title">
197
+									<td colspan="2" style="background-color: #D5EDFE;">分类</td>
198
+									<td style="background-color: #D5EDFE;">指标</td>
199
+									<td style="background-color: #D5EDFE;">分值</td>
200
+									<td style="background-color: #D5EDFE;">评分</td>
201
+								</tr>
202
+							</thead>
203
+							<tbody id="tbody">
204
+
205
+							</tbody>
206
+							<tfoot id="tfoot">
207
+
208
+							</tfoot>
209
+						</table>
210
+					</div>
211
+				</div>
212
+			</div>
213
+		</div>
214
+		<script>
215
+			var Phone; //电话
216
+			var Usercode; //工号
217
+			var Calltype; //=呼叫类型(呼入/呼出)		 
218
+			var Starttime; //开始时间
219
+			var Endtime; //结束时间
220
+			var zjID;
221
+			var seatlist = []; //坐席列表
222
+			$(function() {
223
+				Finishs();
224
+				//获取坐席
225
+								$.getJSON(huayi.config.callcenter_url + "UserAccount/GetSeatList", { token: $.cookie("token") }, function (result) {
226
+				              if (result.state.toLowerCase() == "success") {
227
+				                  seatlist = result.data;
228
+				                  bindseat($("#Select"));
229
+									bindseat($("#usercode"));
230
+				              }
231
+				          });
232
+				//获取坐席
233
+//				$.getJSON("//117.158.196.116:8878/UserAccount/GetSeatList", {
234
+//					token: $.cookie("token")
235
+//				}, function(result) {
236
+//					if(result.state.toLowerCase() == "success") {
237
+//						seatlist = result.data;
238
+//						bindseat($("#Select"));
239
+//						bindseat($("#usercode"));
240
+//					}
241
+//				});
242
+				//高级搜索s
243
+				$(".Gj").click(function() {
244
+					$(".t-shade").addClass("cx");
245
+					$(".gjss").addClass("cx");
246
+					$(".xqlb").removeClass("cx");
247
+
248
+				});
249
+				//关闭弹框
250
+				$(".setwin").click(function() {
251
+					$(".t-shade").removeClass("cx");
252
+					$("#tbody").html('');
253
+					$("#tfoot").html('');
254
+				});
255
+				//搜索 验证
256
+				$(".Seach").click(function() {
257
+					Phone = $('#phone').val();
258
+					Usercode = $('#usercode').val();
259
+					Calltype = $('#calltype').val();
260
+					Starttime = $('#starttime').val();
261
+					Endtime = $('#endtime').val();
262
+					Finishs(Phone, Usercode, Calltype, Starttime, Endtime);
263
+					$('#phone').val('');
264
+					$('#usercode').val('');
265
+					$('#calltype').val('');
266
+					$('#starttime').val('');
267
+					$('#endtime').val('');
268
+					$(".t-shade ").removeClass("cx");
269
+				});
270
+			});
271
+			/*获取选中行对象*/
272
+			$('#goods').on("click-row.bs.table", function(e, row, ele) {
273
+				$('.success').removeClass('success'); //去除之前选中的行的,选中样式
274
+				$(ele).addClass('success'); //添加当前选中的 success样式用于区别
275
+				console.log(row._callrecordsid);
276
+				$(".zj_phone").text(row._callnumber);
277
+				$(".zj_time").text(row._talkstarttime);
278
+				$(".zj_calltype").text("呼入");
279
+				$(".zj_talklongtime").text(row._talklongtime);
280
+				$(".zj_usercode").text(row._usercode);
281
+				$(".zj_username").text(row._username);
282
+				var zjID = row._callrecordsid;
283
+				Xq(zjID);
284
+			});
285
+			/*录音质检*/
286
+			function setCode(val, row) {
287
+				if(val == "") {
288
+					return '<div class="imgs">' +
289
+						'</div>';
290
+				} else {
291
+					return '<div class="imgs">' +
292
+						'<img src="../img/vice.png" alt="" onclick= ck("' + val + '") />' +
293
+						'</div>';
294
+				}
295
+
296
+			}
297
+			//编号
298
+			function Code(val, row, index) {
299
+		return index + 1;
300
+	}
301
+			//质检
302
+			function quality(val) {
303
+				if(val == 0) {
304
+					return '<div class="imgs">未质检' +
305
+						'</div>';
306
+				} else {
307
+					return '<div class="imgs">已质检' +
308
+						'</div>';
309
+				}
310
+
311
+			}
312
+			//方向呼出
313
+			function call(val) {
314
+				if(val == 0) {
315
+					return '<div class="imgs">呼入' +
316
+						'</div>';
317
+				} else {
318
+					return '<div class="imgs">呼出' +
319
+						'</div>';
320
+				}
321
+
322
+			}
323
+			//状态
324
+			function states(val) {
325
+				if(val == 0) {
326
+					return '<div class="imgs">未接通' +
327
+						'</div>';
328
+				} else {
329
+					return '<div class="imgs">已接通' +
330
+						'</div>';
331
+				}
332
+
333
+			}
334
+
335
+			function ck(val, row) {
336
+				$(".t-shade").addClass("cx");
337
+				$(".gjss").removeClass("cx");
338
+				$(".xqlb").addClass("cx");
339
+			}
340
+			//搜索
341
+			$(".Ss").click(function() {
342
+				Usercode = $("#Select").val();
343
+				Phone = $(".photo").val();
344
+				Finishs(Phone, Usercode);
345
+				$("#Select").val('');
346
+				$(".photo").val('');
347
+			});
348
+
349
+			function Xq(zjID) {
350
+				$('#tbody').empty();
351
+				$.ajax({
352
+					type: "get",
353
+					url: huayi.config.callcenter_url + "/QCManage/GetIndexList",
354
+					//url:  "http://117.158.196.116:8878/QCManage/GetIndexList",
355
+					dataType: 'json',
356
+					async: true,
357
+										data:{
358
+											id:zjID///通话ID
359
+										},
360
+					success: function(data) {
361
+						var content = data.data;
362
+						console.log(content);
363
+					
364
+						var twoCon = content.Qclist;
365
+						if(twoCon !== null) {
366
+							for(var j = 0; j < twoCon.length; j++) {
367
+								var t = parseInt(twoCon[j].Rowspan);
368
+								var o = 1;
369
+								var l = parseInt(twoCon.length);
370
+								var c = t + o + 2;
371
+								$('<tr>' +
372
+									'<td rowspan="' + c + '">' + twoCon[j].Qcname + '</td>' +
373
+									'</tr>').appendTo("#tbody");
374
+								//									$('<tr>'+
375
+								//	          			'<td colspan="3" style="background-color: #e4d354;">【'+twoCon[j].Qcname+'】合计:</td>'+
376
+								//	          			'<td style="background-color: #e4d354;">200</td>'+
377
+								//	          			'<td  style="background-color: #e4d354;">'+
378
+								//	          				'<span style="color: red; ">200</span>'+	
379
+								//	          			'</td>'+
380
+								//	          		'</tr>').appendTo("#tbody");											
381
+								var stree = twoCon[j].Qclist;
382
+								console.log(stree);
383
+								if(stree !== null) {
384
+									for(var k = 0; k < stree.length; k++) {
385
+										var t = parseInt(stree[k].Rowspan);
386
+										var o = 1;
387
+										var c = t + o;
388
+										$('<tr>' +
389
+											'<td rowspan="' + c + '">' + stree[k].Qcname + '</td>' +
390
+											'</tr>').appendTo("#tbody");
391
+										var foure = stree[k].Qclist;
392
+
393
+										if(foure !== null) {
394
+											for(var i = 0; i < foure.length; i++) {
395
+												var t = parseInt(foure[i].Rowspan);
396
+												var o = 1;
397
+												var c = t + o;
398
+												$('<tr>' +
399
+													'<td rowspan="' + c + '">' + foure[i].Qcname + '</td>' +
400
+													'<td >' + foure[i].Qcscore + '</td>' +
401
+													'<td ><input type="text"  class="txtInput" readonly="readonly"/></td>' +
402
+													'</tr>').appendTo("#tbody");
403
+											}
404
+										}
405
+									}
406
+								}
407
+							}
408
+								$('<tr>' +
409
+							'<td colspan="3">' + content.Qcname + '</td>' +
410
+							'<td >' + content.Qcscore + '</td>' +
411
+							'<td >' + content.Qcpf + '</td>' +
412
+							'</tr>').appendTo("#tfoot");
413
+						}
414
+					}
415
+				});
416
+			}
417
+			//获取已质检列表
418
+			function Finishs(Phone, Usercode, Calltype, Starttime, Endtime) {
419
+				//销毁表格
420
+				$('#goods').bootstrapTable('destroy');
421
+				//初始化表格,动态从服务器加载数据
422
+				$("#goods").bootstrapTable({
423
+					method: "get", //使用get请求到服务器获取数据	
424
+//					url:'zj.json',
425
+					//url: "http://117.158.196.116:8878/QCManage/GetYZJList",
426
+					url: huayi.config.callcenter_url+"QCManage/GetYZJList", //获取数据的Servlet地址
427
+					striped: true, //表格显示条纹
428
+					pagination: true, //启动分页
429
+					pageSize: 5, //每页显示的记录数
430
+					pageNumber: 1, //当前第几页
431
+					pageList: [5, 20, 50, 100], //记录数可选列表
432
+					search: false, //是否启用查询
433
+					showColumns: false, //显示下拉框勾选要显示的列
434
+					showRefresh: false, //显示刷新按钮
435
+					sidePagination: "server", //表示服务端请求
436
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
437
+					//设置为limit可以获取limit, offset, search, sort, order
438
+					queryParamsType: "undefined",
439
+					queryParams: function queryParams(params) { //设置查询参数
440
+						var param = {
441
+							page: params.pageNumber,
442
+							pagesize: params.pageSize,
443
+							phone: Phone,
444
+							usercode: Usercode,
445
+							calltype: Calltype,
446
+							starttime: Starttime,
447
+							endtime: Endtime,
448
+							token:$.cookie("token")
449
+						};
450
+						return param;
451
+					},
452
+					onLoadSuccess: function() { //加载成功时执行
453
+						//								layer.msg("加载成功");
454
+					},
455
+					onLoadError: function() { //加载失败时执行
456
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
457
+					}
458
+				});
459
+			}
460
+			//坐席列表
461
+			function bindseat(obj) {
462
+				obj.empty();
463
+				obj.append('<option value="">全部</option>');
464
+				$(seatlist).each(function(i, n) {
465
+					obj.append('<option value="' + n.F_UserCode + '">' + n.F_UserName + '</option>');
466
+				})
467
+			}
468
+			
469
+		</script>
470
+	</body>
471
+
472
+</html>

+ 215 - 0
CallCenterWeb.UI/Quality/zhibiaoguanli.html

@@ -0,0 +1,215 @@
1
+<!DOCTYPE html>
2
+<html>
3
+	<head>
4
+		<meta charset="UTF-8">
5
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+		<link href="../css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet">
7
+		<link  href="../css/bootstrap.min.css" />
8
+		<link href="../css/init.css" rel="stylesheet" />
9
+		<link rel="stylesheet" href="../css/boot/bootstrap-table.css" />
10
+		<link href="../css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
11
+		<link href="../css/animate.min.css" rel="stylesheet">
12
+		<link href="../css/style.min862f.css?v=4.1.0" rel="stylesheet">
13
+		<link href="../css/layer/need/layer.css" />
14
+		<link rel="stylesheet" href="../css/zhibiaoguanli.css" />
15
+		<link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
16
+		<link rel="stylesheet" href="../css/init.css" />
17
+		<title>指标管理</title>
18
+		<style>
19
+		.btns {
20
+				    background: #1ab394;
21
+				    color: #fff;
22
+				    padding: 3px 10px;
23
+				    outline: none;
24
+				    font-size: 12px;
25
+				    margin-left: 15px;
26
+				    border: 0;
27
+				    border-radius: 3px;
28
+			}
29
+
30
+
31
+		</style>
32
+	</head>
33
+	<body>
34
+			<div class="daoHang clearfix">
35
+				<div class="dhLeft">
36
+					<sapn><i class="syIcon"></i>位置:<a href="javaScript:;" id="ReIndex">首页</a>&gt;<a href="javaScript:;">质检管理</a>&gt;<a href="" style="color: #000;">指标管理</a></sapn>
37
+				</div>
38
+				<div class="dhRight">
39
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
40
+            	</div>
41
+			</div>
42
+			<div class="top clearfix">
43
+				<div class="topCon">
44
+					&nbsp;&nbsp;&nbsp;&nbsp;关键字:
45
+					<input type="text" id="Keys" placeholder="输入指标标题"/>
46
+					&nbsp;&nbsp;&nbsp;&nbsp;<button class="btn sear">搜索</button>
47
+				</div>
48
+			</div>
49
+		<div class='wrap'>
50
+			<div class="tbleft">
51
+				<h4 style="text-align: center;">指标分类</h4>
52
+				<div class="anniu" class="toolbar1">
53
+					<button class="leftAdd btn">增加</button>
54
+					<button class="leftChange btn">修改</button>
55
+					<button class="leftDelete btn">删除</button>
56
+				</div>
57
+				<table id="tb1">
58
+					 <thead>
59
+				        <tr>
60
+				        	<th data-field="checkbox" data-align="center"  data-formatter="setCode"></th>
61
+				            <th data-align="center" data-field="F_ParentId"   data-formatter="Type" >分类名称</th>
62
+				            <th data-align="center" data-field="F_Expand1">分值</th>
63
+				            
64
+				        </tr>
65
+			       </thead>				
66
+					<tbody>		
67
+					</tbody>
68
+				</table>
69
+			</div>
70
+			<!--右边/-->
71
+			<div class="tbright">
72
+				<h4 style="text-align: center;">指标列表</h4>
73
+				<div class="anniu" class="toolbar2">
74
+					<button class="rightAdd btn">增加</button>
75
+					<button class="rightChange btn">修改</button>
76
+					<button class="rightDelete btn">删除</button>
77
+					<button class="rightAll btn">所有指标</button>
78
+				</div>
79
+				<table id="tbr">
80
+					 <thead>
81
+				        <tr>
82
+				            <th data-align="center" data-field="id" data-formatter="setCode">编号</th>
83
+				            <th data-align="center" data-field="F_CategoryName" data-formatter="Type">指标分类</th>
84
+				            <th data-align="center" data-field="F_Title">指标标题</th>
85
+				            <th data-align="center" data-field="F_Score">分值</th>
86
+				        </tr>
87
+			        </thead>
88
+			        	<tbody>
89
+					</tbody>
90
+				</table>
91
+			</div>
92
+		</div>
93
+		<div class="model">
94
+			<!--右边弹框-->
95
+			<div class="rightBox">
96
+				<div class="btop clearfix">
97
+			    <p class="rbtl">&nbsp;&nbsp;<span class="tps" style="color: red;"></span></p>
98
+			    <p class="rbtr" title="关闭">X</p>
99
+			    
100
+			    </div>
101
+
102
+				<div class="sqzx">
103
+                    <table id="sqzx" style="width: 100%;" border="0" cellspacing="0" cellpadding="0">
104
+                        <tr>
105
+                            <th>所属分类:</th>
106
+                            <td>
107
+                                <div class="inpBox">
108
+                                    <input type="text" class="inps  inps2 _CategoryName tree" id="clbmname" />
109
+                                    <input type="hidden" class="inps" id="zrbm" />
110
+                                    <i class="xl xl_two"></i>
111
+                                    <b class="de_icon">X</b>
112
+                                    <div class="addTree">
113
+                                        <ul id="clbmtree" class="ztree"></ul>
114
+                                    </div>
115
+                                </div>
116
+                            </td>
117
+                        </tr>
118
+                        <tr>
119
+                            <th>指标标题:</th>
120
+                            <td>
121
+                                <div class="inpBox">
122
+                                    <input type="text" class="inps  inps2 F_Title" />
123
+                                </div>
124
+                            </td>
125
+                        </tr>
126
+                        <tr>
127
+                            <th>指标描述:</th>
128
+                            <td colspan="5">
129
+
130
+                                <textarea name="" rows="3" cols="20" class="F_Remark"></textarea>
131
+
132
+                            </td>
133
+                        </tr>
134
+                         <tr>
135
+                            <th>指标分值:</th>
136
+                            <td>
137
+                                <div class="inpBox">
138
+                                    <input type="text" class="inps  inps2 _Score" />
139
+                                </div>
140
+                            </td>
141
+                        </tr>
142
+                         <tr>
143
+                            <th>排列序号:</th>
144
+                            <td>
145
+                                <div class="inpBox">
146
+                                    <input type="text" class="inps  inps2 _Sort" />
147
+                                </div>
148
+                            </td>
149
+                        </tr>
150
+                    </table>
151
+                    <div class="btn_">
152
+                        <input type="button" value="保存" class="btns" id="xg_btn"/>
153
+                        <input type="button" value="保存" class="btns"  id="add"/>
154
+                    </div>
155
+               </div>			
156
+			</div>
157
+			<!--左边弹框-->
158
+			<div class="leftBox">
159
+				<div class="btop clearfix">
160
+			    <p class="rbtl">&nbsp;&nbsp;<span class="tps" style="color: red;"></span></p>
161
+			    <p class="rbtr" title="关闭">X</p>
162
+			    
163
+			    </div>
164
+
165
+				<div class="sqzx">
166
+                    <table id="sqzx" style="width: 100%;" border="0" cellspacing="0" cellpadding="0">
167
+                        <tr>
168
+                            <th>所属分类:</th>
169
+                            <td>
170
+                                <div class="inpBox">
171
+                                      <select name="" id="Left_ParentId">
172
+                                      	
173
+                                      </select>
174
+                                </div>
175
+                            </td>
176
+                        </tr>
177
+                        <tr>
178
+                            <th>分类名称:</th>
179
+                            <td>
180
+                                <div class="inpBox">
181
+                                    <input type="text" class="inps  inps2 " id="Left_CategoryName" />
182
+                                </div>
183
+                            </td>
184
+                        </tr>
185
+                         <tr>
186
+                            <th>排列序号:</th>
187
+                            <td>
188
+                                <div class="inpBox">
189
+                                    <input type="text" class="inps  inps2 " id="Left_Sort"/>
190
+                                </div>
191
+                            </td>
192
+                        </tr>
193
+                    </table>
194
+                    <div class="btn_">
195
+                        <input type="button" value="保存" class="btns" id="Left_xgbtn"/>
196
+                        <input type="button" value="保存" class="btns"  id="Left_add"/>
197
+                    </div>
198
+               </div>			
199
+			</div>
200
+		</div>
201
+	</body>
202
+	<script src="../js/jquery.min.js?v=2.1.4"></script>
203
+	<script src="../js/bootstrap.min.js"></script>
204
+	<script src="../js/bootstrap-table.js"></script>
205
+	<script src="../js/bootstrap-table-zh-CN.js"></script>
206
+	 <script src="../Script/Common/huayi.load.js"></script>
207
+	<script src="../Script/Common/huayi.config.js"></script>
208
+	<script  src="../js/jquery.cookie.js"></script>
209
+	<script src="../js/zTree/jquery.ztree.core.js"></script>
210
+	<script src="../css/laydate/laydate.js"></script>
211
+	<script src="../css/layer/layer.js"></script>
212
+	<script src="../js/Quality/zhibiaoguanli.js"></script>
213
+	 
214
+   
215
+</html>

+ 135 - 0
CallCenterWeb.UI/Quality/zj.json

@@ -0,0 +1,135 @@
1
+{
2
+	"state": "success",
3
+	"message": "已质检列表加载成功",
4
+	"total":5,
5
+	"rows": [
6
+	
7
+			{
8
+				"_callnumber": "86023",
9
+				"_filepath": "D:\\1\\0\\20150320\\8001\\1349224.V3",
10
+				"_f_qcstate": 1,
11
+				"_f_qcscore": 3.00,
12
+				"_f_qcquestion": null,
13
+				"_f_qcadvise": null,
14
+				"_calltype": 0,
15
+				"_callstate": 1,
16
+				"_usercode": "8000",
17
+				"_username": "周兰兰",
18
+				"_talkstarttime": "2015-03-20 13:49:23",
19
+				"_talkendtime": "2015-03-20 13:50:17",
20
+				"_talklongtime": 54,
21
+				"_businesstype": 2,
22
+				"_f_qclc": 0,
23
+				"_f_qcdc": 0,
24
+				"_callrecordsid": 4002
25
+			}, {
26
+				"_callnumber": "1004",
27
+				"_filepath": "2015-9-29\\1001_2015_9_29_17_44_47.wav",
28
+				"_f_qcstate": 1,
29
+				"_f_qcscore": 66.00,
30
+				"_f_qcquestion": null,
31
+				"_f_qcadvise": null,
32
+				"_calltype": 0,
33
+				"_callstate": 1,
34
+				"_usercode": "8000",
35
+				"_username": "系统管理",
36
+				"_talkstarttime": "2015-09-29 17:44:05",
37
+				"_talkendtime": "2015-09-29 17:44:23",
38
+				"_talklongtime": 18,
39
+				"_businesstype": null,
40
+				"_f_qclc": 0,
41
+				"_f_qcdc": 0,
42
+				"_callrecordsid": 4200
43
+			}, {
44
+				"_callnumber": "1004",
45
+				"_filepath": "2015-11-10\\1001_2015_11_10_9_46_23.wav",
46
+				"_f_qcstate": 1,
47
+				"_f_qcscore": 81.00,
48
+				"_f_qcquestion": null,
49
+				"_f_qcadvise": null,
50
+				"_calltype": 0,
51
+				"_callstate": 1,
52
+				"_usercode": "8000",
53
+				"_username": "系统管理",
54
+				"_talkstarttime": "2015-11-10 09:45:15",
55
+				"_talkendtime": "2015-11-10 09:45:31",
56
+				"_talklongtime": 16,
57
+				"_businesstype": null,
58
+				"_f_qclc": 0,
59
+				"_f_qcdc": 0,
60
+				"_callrecordsid": 4213
61
+			}, {
62
+				"_callnumber": "1004",
63
+				"_filepath": "2015-11-10\\1001_2015_11_10_9_49_11.wav",
64
+				"_f_qcstate": 1,
65
+				"_f_qcscore": 32.00,
66
+				"_f_qcquestion": null,
67
+				"_f_qcadvise": null,
68
+				"_calltype": 0,
69
+				"_callstate": 1,
70
+				"_usercode": "8000",
71
+				"_username": "系统管理",
72
+				"_talkstarttime": "2015-11-10 09:48:03",
73
+				"_talkendtime": "2015-11-10 09:48:21",
74
+				"_talklongtime": 18,
75
+				"_businesstype": null,
76
+				"_f_qclc": 0,
77
+				"_f_qcdc": 0,
78
+				"_callrecordsid": 4214
79
+			}, {
80
+				"_callnumber": "1004",
81
+				"_filepath": "2015-11-10\\1001_2015_11_10_10_28_18.wav",
82
+				"_f_qcstate": 1,
83
+				"_f_qcscore": 32.00,
84
+				"_f_qcquestion": null,
85
+				"_f_qcadvise": null,
86
+				"_calltype": 0,
87
+				"_callstate": 1,
88
+				"_usercode": "8000",
89
+				"_username": "系统管理",
90
+				"_talkstarttime": "2015-11-10 10:27:10",
91
+				"_talkendtime": "2015-11-10 10:31:35",
92
+				"_talklongtime": 265,
93
+				"_businesstype": null,
94
+				"_f_qclc": 0,
95
+				"_f_qcdc": 0,
96
+				"_callrecordsid": 4217
97
+			}, {
98
+				"_callnumber": "18530078167",
99
+				"_filepath": "D:\\midware\\record\\20170323\\1005\\1171_1005_162105.wav",
100
+				"_f_qcstate": 1,
101
+				"_f_qcscore": 61.00,
102
+				"_f_qcquestion": "问题问题问题问题问题2",
103
+				"_f_qcadvise": "建议建议建议建议1",
104
+				"_calltype": 0,
105
+				"_callstate": 1,
106
+				"_usercode": "8000",
107
+				"_username": null,
108
+				"_talkstarttime": null,
109
+				"_talkendtime": null,
110
+				"_talklongtime": null,
111
+				"_businesstype": null,
112
+				"_f_qclc": 0,
113
+				"_f_qcdc": 0,
114
+				"_callrecordsid": 5478
115
+			}, {
116
+				"_callnumber": "18530929885",
117
+				"_filepath": "D:\\midware\\record\\20170323\\1005\\1172_1005_162302.wav",
118
+				"_f_qcstate": 1,
119
+				"_f_qcscore": 19.00,
120
+				"_f_qcquestion": "问题问题问题问题4",
121
+				"_f_qcadvise": "建议建议建议建议3",
122
+				"_calltype": 0,
123
+				"_callstate": 1,
124
+				"_usercode": "8000",
125
+				"_username": null,
126
+				"_talkstarttime": null,
127
+				"_talkendtime": null,
128
+				"_talklongtime": null,
129
+				"_businesstype": null,
130
+				"_f_qclc": 0,
131
+				"_f_qcdc": 0,
132
+				"_callrecordsid": 5479
133
+			}
134
+		]
135
+}

+ 531 - 0
CallCenterWeb.UI/Quality/zjpf.html

@@ -0,0 +1,531 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>质检评分</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+		<link href="../css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet">
9
+		<link href="../css/bootstrap.min.css" />
10
+		<link href="../css/init.css" rel="stylesheet" />
11
+		<link rel="stylesheet" href="../css/boot/bootstrap-table.css" />
12
+			 <link href="../css/Quality/QualityCommon.css" rel="stylesheet" />
13
+		<link href="../css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
14
+		<link href="../css/animate.min.css" rel="stylesheet">
15
+		<link href="../css/style.min862f.css?v=4.1.0" rel="stylesheet">
16
+		<style>
17
+		.txtInput{
18
+			text-align: center;
19
+		}
20
+		.Input{
21
+			text-align: center;
22
+		}
23
+		</style>
24
+	</head>
25
+	<script src="../js/jquery.min.js?v=2.1.4"></script>
26
+	<script src="../js/bootstrap.min.js"></script>
27
+	<script src="../js/bootstrap-table.js"></script>
28
+	<script src="../js/bootstrap-table-zh-CN.js"></script>
29
+	<script src="../css/layer/layer.js"></script>
30
+	<script src="../My97DatePicker/WdatePicker.js"></script>
31
+	<script src="../js/jquery.cookie.js"></script>
32
+	<script src="../Script/Common/huayi.load.js"></script>
33
+	<script src="../Script/Common/huayi.config.js"></script>
34
+
35
+	<body class="gray-bg">
36
+		<div class="wrapper wrapper-content animated fadeInRight">
37
+			<div class="daoHang clearfix">
38
+
39
+				<div class="dhLeft">
40
+					<sapn><i class="syIcon"></i>位置:
41
+						<a href="javaScript:;" id="ReIndex">首页</a>&gt;
42
+						<a href="javaScript:;">质检管理</a>&gt;
43
+						<a href="" style="color: #000;">质检评分</a>
44
+					</sapn>
45
+				</div>
46
+				<div class="dhRight">
47
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
48
+            	</div>
49
+			</div>
50
+
51
+			<div class="th-box">
52
+				<div class="th-bar">
53
+					<!--<a class="sc_btn btn-info">批量删除</a>-->
54
+					<div class="seach-box fr">
55
+						<ul>
56
+							<li>电话号码:<input class="photo x-color" type="text" /></li>
57
+							<li>坐席:
58
+								<select name="" id="Select" class="x-color select">
59
+									<option value="">全部</option>
60
+
61
+								</select>
62
+							</li>
63
+							<li>
64
+								<a class="sc_btn  Ss Block">搜索</a>
65
+							</li>
66
+							<li>
67
+								<a class="sc_btn  Gj Block">高级搜索</a>
68
+							</li>
69
+						</ul>
70
+					</div>
71
+				</div>
72
+			</div>
73
+			<div style="width: 100%;padding: 10px;">
74
+				<table id="goods" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
75
+					<thead>
76
+						<tr>
77
+							<th data-field="_bh" data-formatter="Code"></th>
78
+							<th data-field="_callnumber">电话号码</th>
79
+							<th data-field="_filepath" data-formatter="setCode">录音质检</th>
80
+							<th data-field="_f_qcstate" data-formatter="quality">是否质检</th>
81
+							<th data-field="_f_qcscore">质检得分</th>
82
+							<th data-field="_calltype" data-formatter="call">呼叫方向</th>
83
+							<th data-field="_callstate" data-formatter="states">呼叫状态</th>
84
+							<th data-field="_usercode">坐席工号</th>
85
+							<th data-field="_username">坐席姓名</th>
86
+							<th data-field="_talkstarttime">通话开始时间</th>
87
+							<th data-field="_talkendtime">通话结束时间</th>
88
+							<th data-field="_talklongtime">通话时长(S)</th>
89
+							<th data-field="_businesstype">按键</th>
90
+						</tr>
91
+					</thead>
92
+				</table>
93
+			</div>
94
+		</div>
95
+		<!--高级搜索/-->
96
+		<div class="t-shade">
97
+			<div class=" shade_k gjss">
98
+				<div class="shade_title">
99
+					<span>高级搜索<srong class="cknum"></srong></span>
100
+					<span class="setwin"><a>x</a></span>
101
+				</div>
102
+				<div class="shade_content" style="height: 340px;">
103
+					<div class="dhxx sa_title">
104
+						<span class="size-14">搜索信息</span>
105
+					</div>
106
+					<div class="dgxx_table size-13">
107
+						<table class="_table1 table table-bordered  table-hover " border="0" cellspacing="0" cellpadding="0" style="width: 100%;">
108
+							<tr>
109
+								<th>电话号码:
110
+									<td>
111
+										<div class="inpBox">
112
+											<input type="text" class="inps " id="phone" />
113
+										</div>
114
+									</td>
115
+								</th>
116
+								<th>坐席:
117
+									<td>
118
+										<div class="inpBox">
119
+											<select name="" id="usercode" class="select"></select>
120
+										</div>
121
+									</td>
122
+								</th>
123
+							</tr>
124
+							<tr>
125
+								<th>呼叫方向:
126
+									<td>
127
+										<div class="inpBox">
128
+											<select name="" id="calltype" class="select">
129
+												<option value="">全部</option>
130
+												<option value="0">呼入</option>
131
+												<option value="1">呼出</option>
132
+											</select>
133
+										</div>
134
+									</td>
135
+								</th>
136
+								<th>开始时间:
137
+									<td>
138
+										<div class="inpBox">
139
+											<input type="text" class="inps " onfocus="WdatePicker({lang:'zh-cn'})" id="starttime" />
140
+										</div>
141
+									</td>
142
+								</th>
143
+							</tr>
144
+							<tr>
145
+
146
+								<th>结束时间:
147
+									<td>
148
+										<div class="inpBox">
149
+											<input type="text" class="inps " onfocus="WdatePicker({lang:'zh-cn'})" id="endtime" />
150
+										</div>
151
+									</td>
152
+								</th>
153
+							</tr>
154
+						</table>
155
+					</div>
156
+					<div class="clearfix wh_btn">
157
+						<input type="button" value="搜索" class=" sc_btn  Seach" />
158
+					</div>
159
+				</div>
160
+			</div>
161
+			<!--详情列表-->
162
+			<div class=" shade_k xqlb">
163
+				<div class="shade_title">
164
+					<span>录音播放下载及质检<srong class="cknum"></srong></span>
165
+					<span class="setwin"><a>x</a></span>
166
+				</div>
167
+				<div class="shade_content">
168
+					<div class="dgxx_table size-13">
169
+						<table cellspacing="" cellpadding="" class="form_table">
170
+							<tbody>
171
+								<tr>
172
+									<th><span>电话号码:</span></th>
173
+									<td><span class="zj_phone"></span></td>
174
+									<th><span>通话时间:</span></th>
175
+									<td><span class="zj_time">2017/5/3 16:50:05</span></td>
176
+								</tr>
177
+								<tr>
178
+									<th><span>呼叫方向:</span></th>
179
+									<td><span class="zj_calltype">呼出</span></td>
180
+									<th><span>通话时长:</span></th>
181
+									<td><span class="zj_talklongtime"> 278秒</span></td>
182
+								</tr>
183
+								<tr>
184
+									<th><span>坐席工号:</span></th>
185
+									<td><span class="zj_usercode">902</span></td>
186
+									<th><span>坐席姓名:</span></th>
187
+									<td><span class="zj_username">6+541+</span></td>
188
+								</tr>
189
+								<tr>
190
+									<th><span>听取录音:</span></th>
191
+									<td colspan="3">
192
+										<div class="play Ly_box">
193
+										</div>
194
+									</td>
195
+
196
+								</tr>
197
+								<tr>
198
+									<th><span>下载录音:</span></th>
199
+									<td colspan="3">
200
+										<input type="button" value="下载" id="downlond" />
201
+									</td>
202
+								</tr>
203
+							</tbody>
204
+						</table>
205
+					</div>
206
+					<!--质检详情列表-->
207
+					<div class="divDataItems">
208
+						<table class="table table-bordered text-center table-hover" style="width: 100%;">
209
+							<thead>
210
+								<tr class="thead_title">
211
+									<td colspan="2" style="background-color: #D5EDFE;">分类</td>
212
+									<td style="background-color: #D5EDFE;">指标</td>
213
+									<td style="background-color: #D5EDFE;">分值</td>
214
+									<td style="background-color: #D5EDFE;">评分</td>
215
+								</tr>
216
+							</thead>
217
+							<tbody id="tbody">
218
+
219
+							</tbody>
220
+							<tfoot id="tfoot">
221
+
222
+							</tfoot>
223
+						</table>
224
+						<div class="add_btn" style="text-align: center;">
225
+							<input type="button" class="btns" value="提交" onclick="SaveData()"/>
226
+						</div>
227
+					</div>
228
+				</div>
229
+				<input type="hidden" class="Thid" />
230
+			</div>
231
+		</div>
232
+		<script>
233
+										var num;
234
+				  var Count=0;
235
+			var Phone; //电话
236
+			var Usercode; //工号
237
+			var Calltype; //=呼叫类型(呼入/呼出)		 
238
+			var Starttime; //开始时间
239
+			var Endtime; //结束时间
240
+			var zjID;
241
+			var seatlist = []; //坐席列表
242
+			$(function() {
243
+				
244
+				Finishs();
245
+				//获取坐席
246
+												$.getJSON(huayi.config.callcenter_url + "UserAccount/GetSeatList", { token: $.cookie("token") }, function (result) {
247
+								              if (result.state.toLowerCase() == "success") {
248
+								                  seatlist = result.data;
249
+								                  bindseat($("#Select"));
250
+													bindseat($("#usercode"));
251
+								              }
252
+								          });
253
+//				//获取坐席
254
+//				$.getJSON("//117.158.196.116:8878/UserAccount/GetSeatList", {
255
+//					token: $.cookie("token")
256
+//				}, function(result) {
257
+//					if(result.state.toLowerCase() == "success") {
258
+//						seatlist = result.data;
259
+//						bindseat($("#Select"));
260
+//						bindseat($("#usercode"));
261
+//					}
262
+//				});
263
+				//高级搜索s
264
+				$(".Gj").click(function() {
265
+					$(".t-shade").addClass("cx");
266
+					$(".gjss").addClass("cx");
267
+					$(".xqlb").removeClass("cx");
268
+
269
+				});
270
+				//关闭弹框
271
+				$(".setwin").click(function() {
272
+					$(".t-shade").removeClass("cx");
273
+					$("#tfoot").html('');
274
+					$("#tbody").html('');
275
+				});
276
+				//搜索 验证
277
+				$(".Seach").click(function() {
278
+					Phone = $('#phone').val();
279
+					Usercode = $('#usercode').val();
280
+					Calltype = $('#calltype').val();
281
+					Starttime = $('#starttime').val();
282
+					Endtime = $('#endtime').val();
283
+					Finishs(Phone, Usercode, Calltype, Starttime, Endtime);
284
+					$('#phone').val('');
285
+					$('#usercode').val('');
286
+					$('#calltype').val('');
287
+					$('#starttime').val('');
288
+					$('#endtime').val('');
289
+					$(".t-shade ").removeClass("cx");
290
+				});
291
+			});
292
+			/*获取选中行对象*/
293
+			$('#goods').on("click-row.bs.table", function(e, row, ele) {
294
+				$('.success').removeClass('success'); //去除之前选中的行的,选中样式
295
+				$(ele).addClass('success'); //添加当前选中的 success样式用于区别
296
+				console.log(row._callrecordsid);
297
+				$(".zj_phone").text(row._callnumber);
298
+				$(".zj_time").text(row._talkstarttime);
299
+				$(".zj_calltype").text("呼入");
300
+				$(".zj_talklongtime").text(row._talklongtime);
301
+				$(".zj_usercode").text(row._usercode);
302
+				$(".zj_username").text(row._username);
303
+				$('.Thid').val(row._callrecordsid);
304
+				var zjID = row._callrecordsid;
305
+				Xq(zjID);
306
+				
307
+				
308
+			});
309
+			/*录音质检*/
310
+			function setCode(val, row) {
311
+			if(val) {
312
+					return '<div class="imgs">' +
313
+						'<img src="../img/vice.png" alt="" onclick= ck(this) item="' + val + '" />' +
314
+						'</div>';
315
+				} else {
316
+					return '';
317
+				}
318
+
319
+			}
320
+			//编号
321
+			function Code(val, row, index) {
322
+				return index + 1;
323
+			}
324
+			//质检
325
+			function quality(val) {
326
+				if(val == 0) {
327
+					return '<div class="imgs">未质检' +
328
+						'</div>';
329
+				} else {
330
+					return '<div class="imgs">已质检' +
331
+						'</div>';
332
+				}
333
+
334
+			}
335
+			//方向呼出
336
+			function call(val) {
337
+				if(val == 0) {
338
+					return '<div class="imgs">呼入' +
339
+						'</div>';
340
+				} else {
341
+					return '<div class="imgs">呼出' +
342
+						'</div>';
343
+				}
344
+
345
+			}
346
+			//状态
347
+			function states(val) {
348
+				if(val == 0) {
349
+					return '<div class="imgs">未接通' +
350
+						'</div>';
351
+				} else {
352
+					return '<div class="imgs">已接通' +
353
+						'</div>';
354
+				}
355
+
356
+			}
357
+
358
+			function ck(val, row) {
359
+				$(".t-shade").addClass("cx");
360
+				$(".gjss").removeClass("cx");
361
+				$(".xqlb").addClass("cx");
362
+				var path = $(val).attr("item");
363
+				$(".Ly_box").empty();
364
+				$('<audio  style="width:100%;"class=" " src="' + path + '" loop="loop" controls="controls"></audio>').appendTo(".Ly_box");
365
+			}
366
+			//搜索
367
+			$(".Ss").click(function() {
368
+				Usercode = $("#Select").val();
369
+				Phone = $(".photo").val();
370
+				Finishs(Phone, Usercode);
371
+				$("#Select").val('');
372
+				$(".photo").val('');
373
+			});
374
+
375
+			function Xq(zjID) {
376
+				$('#tbody').empty();
377
+				$.ajax({
378
+					type: "get",
379
+					url: huayi.config.callcenter_url + "/QCManage/GetIndexList",
380
+//					url: "zjxq.json",
381
+					dataType: 'json',
382
+					async: true,
383
+										data:{
384
+											id:zjID,
385
+											token: $.cookie("token")///通话ID
386
+										},
387
+					success: function(data) {
388
+						var content = data.data;
389
+						console.log(content);
390
+						//									for(var i=0;i<content.length;i++){
391
+				
392
+						var twoCon = content.Qclist;
393
+						if(twoCon !== null) {
394
+							for(var j = 0; j < twoCon.length; j++) {
395
+								var t = parseInt(twoCon[j].Rowspan);
396
+								var o = 2;
397
+								var l = parseInt(twoCon.length);
398
+								var c = t + o + l;
399
+								$('<tr>' +
400
+									'<td rowspan="' + c + '">' + twoCon[j].Qcname + '</td>' +
401
+									'</tr>').appendTo("#tbody");
402
+								//									$('<tr>'+
403
+								//	          			'<td colspan="3" style="background-color: #e4d354;">【'+twoCon[j].Qcname+'】合计:</td>'+
404
+								//	          			'<td style="background-color: #e4d354;">200</td>'+
405
+								//	          			'<td  style="background-color: #e4d354;">'+
406
+								//	          				'<span style="color: red; ">200</span>'+	
407
+								//	          			'</td>'+
408
+								//	          		'</tr>').appendTo("#tbody");											
409
+								var stree = twoCon[j].Qclist;
410
+								console.log(stree);
411
+								if(stree !== null) {
412
+									for(var k = 0; k < stree.length; k++) {
413
+										var t = parseInt(stree[k].Rowspan);
414
+										var o = 1;
415
+										var c = t + o;
416
+										$('<tr>' +
417
+											'<td rowspan="' + c + '">' + stree[k].Qcname + '</td>' +
418
+											'</tr>').appendTo("#tbody");
419
+										var foure = stree[k].Qclist;
420
+
421
+										if(foure !== null) {
422
+
423
+											for(var i = 0; i < foure.length; i++) {
424
+												var t = parseInt(foure[i].Rowspan);
425
+												var o = 1;
426
+												var c = t + o;
427
+												$('<tr>' +
428
+													'<td rowspan="' + c + '">' + foure[i].Qcname + '</td>' +
429
+													'<td >' + foure[i].Qcscore + '</td>' +
430
+													'<td ><input type="text"  class="txtInput"/></td>' +
431
+													'</tr>').appendTo("#tbody");
432
+											}
433
+										}
434
+									}
435
+								}
436
+							}
437
+									$('<tr>' +
438
+							'<td colspan="3">' + content.Qcname + '</td>' +
439
+							'<td >' + content.Qcscore + '</td>' +
440
+							'<td class="Total"><input type="text"  class="Input" readonly="readonly"/></td>' +
441
+							'</tr>').appendTo("#tfoot");
442
+						}
443
+						$('.txtInput').keyup(function(){
444
+							Count=0;
445
+							$('.txtInput').each(function(i,n){
446
+								 if($(n).val()){
447
+								 	var num=$(n).val();
448
+   				 				    Count=Count*1+num*1;
449
+   				 				    console.log(num);
450
+								 }
451
+							})
452
+   				 			
453
+   				 			$(".Input").val(Count);
454
+   				 		})
455
+					}
456
+				});
457
+			}
458
+			//获取未质检列表
459
+			function Finishs(Phone, Usercode, Calltype, Starttime, Endtime) {
460
+				//销毁表格
461
+				$('#goods').bootstrapTable('destroy');
462
+				//初始化表格,动态从服务器加载数据
463
+				$("#goods").bootstrapTable({
464
+					method: "get", //使用get请求到服务器获取数据						
465
+//					url: "http://117.158.196.116:8878/QCManage/GetList",
466
+					url: huayi.config.callcenter_url+"QCManage/GetList", //获取数据的Servlet地址
467
+					striped: true, //表格显示条纹
468
+					pagination: true, //启动分页
469
+					pageSize: 5, //每页显示的记录数
470
+					pageNumber: 1, //当前第几页
471
+					pageList: [5, 20, 50, 100], //记录数可选列表
472
+					search: false, //是否启用查询
473
+					showColumns: false, //显示下拉框勾选要显示的列
474
+					showRefresh: false, //显示刷新按钮
475
+					sidePagination: "server", //表示服务端请求
476
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
477
+					//设置为limit可以获取limit, offset, search, sort, order
478
+					queryParamsType: "undefined",
479
+					queryParams: function queryParams(params) { //设置查询参数
480
+						var param = {
481
+							page: params.pageNumber,
482
+							pagesize: params.pageSize,
483
+							phone: Phone,
484
+							usercode: Usercode,
485
+							calltype: Calltype,
486
+							starttime: Starttime,
487
+							endtime: Endtime,
488
+							token: $.cookie("token")
489
+						};
490
+						return param;
491
+					},
492
+					onLoadSuccess: function() { //加载成功时执行
493
+						//								layer.msg("加载成功");
494
+					},
495
+					onLoadError: function() { //加载失败时执行
496
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
497
+					}
498
+				});
499
+			}
500
+			//坐席列表
501
+			function bindseat(obj) {
502
+				obj.empty();
503
+				obj.append('<option value="">全部</option>');
504
+				$(seatlist).each(function(i, n) {
505
+					obj.append('<option value="' + n.F_UserCode + '">' + n.F_UserName + '</option>');
506
+				})
507
+			}
508
+			//保存质检得分
509
+			function  SaveData(){
510
+				$.ajax({
511
+					type: "post",
512
+					url: huayi.config.callcenter_url + "/QCManage/SaveData",
513
+//					url: "zjxq.json",
514
+					dataType: 'json',
515
+					
516
+					async: true,
517
+										data:{
518
+											id:$(".Thid").val(),
519
+											token: $.cookie("token")///通话ID
520
+										},
521
+					success: function(data) {
522
+						var content = data.data;
523
+				        console.log( content );
524
+					}
525
+				});
526
+			}
527
+
528
+		</script>
529
+	</body>
530
+
531
+</html>

+ 93 - 0
CallCenterWeb.UI/Quality/zjxq.json

@@ -0,0 +1,93 @@
1
+{
2
+	"state": "success",
3
+	"message": "质检部分加载成功",
4
+	"data": {
5
+		"Qcid": "0",
6
+		"Qcname": "总计",
7
+		"Qcscore": "30",
8
+		"Qcpf": "23",
9
+		"Qclist": [
10
+			{
11
+				"Qcid": "9",
12
+				"Qcname": "在线处理",
13
+				"Qcscore": "30",
14
+				"Qcpf": "23",
15
+				"Qclist": [
16
+					{
17
+						"Qcid": "9-10",
18
+						"Qcname": "业务知识",
19
+						"Qcscore": null,
20
+						"Qcpf": null,
21
+						"Qclist": [
22
+							{
23
+								"Qcid": "9-10-20",
24
+								"Qcname": "业务熟练",
25
+								"Qcscore": "5",
26
+								"Qcpf": "5",
27
+								"Qclist": null,
28
+								"Rowspan": "0",
29
+								"Colspan": "0"
30
+							}, {
31
+								"Qcid": "9-10-10",
32
+								"Qcname": "业务熟练",
33
+								"Qcscore": "2",
34
+								"Qcpf": "3",
35
+								"Qclist": null,
36
+								"Rowspan": "0",
37
+								"Colspan": "0"
38
+							}, {
39
+								"Qcid": "9-10-21",
40
+								"Qcname": "处理问题灵活性",
41
+								"Qcscore": "5",
42
+								"Qcpf": "5",
43
+								"Qclist": null,
44
+								"Rowspan": "0",
45
+								"Colspan": "0"
46
+							}, {
47
+								"Qcid": "9-10-23",
48
+								"Qcname": "一次性处理",
49
+								"Qcscore": "5",
50
+								"Qcpf": "5",
51
+								"Qclist": null,
52
+								"Rowspan": "0",
53
+								"Colspan": "0"
54
+							}, {
55
+								"Qcid": "9-10-30",
56
+								"Qcname": "11",
57
+								"Qcscore": "11",
58
+								"Qcpf": "0",
59
+								"Qclist": null,
60
+								"Rowspan": "0",
61
+								"Colspan": "0"
62
+							}
63
+						],
64
+						"Rowspan": "5",
65
+						"Colspan": null
66
+					}, {
67
+						"Qcid": "9-11",
68
+						"Qcname": "业务流程",
69
+						"Qcscore": null,
70
+						"Qcpf": null,
71
+						"Qclist": [
72
+							{
73
+								"Qcid": "9-11-26",
74
+								"Qcname": "等待时长",
75
+								"Qcscore": "2",
76
+								"Qcpf": "5",
77
+								"Qclist": null,
78
+								"Rowspan": "0",
79
+								"Colspan": "0"
80
+							}
81
+						],
82
+						"Rowspan": "1",
83
+						"Colspan": null
84
+					}
85
+				],
86
+				"Rowspan": "6",
87
+				"Colspan": "2"
88
+			}
89
+		],
90
+		"Rowspan": null,
91
+		"Colspan": "3"
92
+	}
93
+}

+ 164 - 0
CallCenterWeb.UI/Report/Business/WorkDept.html

@@ -0,0 +1,164 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+    <meta charset="utf-8">
5
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+
7
+    <title>工单部门分布分析</title>
8
+    <!--[if lt IE 9]>
9
+    <meta http-equiv="refresh" content="0;ie.html" />
10
+    <![endif]-->
11
+    <script src="../../Script/Common/huayi.load.js"></script>
12
+    <script src="../../Script/Common/huayi.config.js"></script>
13
+    <!--<link rel="stylesheet" href="../../css/huTotal.css" />-->
14
+    <link rel="stylesheet" href="../../css/init.css" />
15
+    <style>
16
+        .clearfix:after {
17
+            content: "";
18
+            display: block;
19
+            clear: both;
20
+        }
21
+
22
+        .kpi-top {
23
+            background: #f3f3f4;
24
+            height: 60px;
25
+            padding: 10px 20px;
26
+        }
27
+
28
+        .topCon {
29
+            float: right;
30
+            margin-right: 45px;
31
+        }
32
+
33
+        .kpi-content h2 {
34
+            font-size: 18px;
35
+            margin-bottom: 20px;
36
+        }
37
+
38
+        .topCon input {
39
+            width: 128px;
40
+            padding: 2px 2PX 2PX 10PX;
41
+            height: 28px;
42
+            border: 1px solid #ebebeb;
43
+            color: #1ab394;
44
+            outline: none;
45
+            vertical-align: middle;
46
+        }
47
+
48
+
49
+        .kpi-content {
50
+            width: 90%;
51
+            margin: 0 auto;
52
+        }
53
+
54
+        .kpi-table table {
55
+            font-size: 12px;
56
+        }
57
+
58
+            .kpi-table table thead tr td {
59
+                background: #1ab394;
60
+                color: #fff;
61
+                font-size: 14px;
62
+            }
63
+    </style>
64
+</head>
65
+
66
+<body class="gray-bg" style="background: #fefefe;">
67
+    <div class="hwkpi">
68
+    	<div class="daoHang clearfix">
69
+					<div class="dhLeft">
70
+					<sapn><i class="syIcon"></i>位置:<a id="ReIndex" href="javaScript:;">首页</a>&gt;<a href="javaScript:;">报表分析</a>&gt;<a href="javaScript:;">业务数据分析</a>&gt;<a href="" style="color: #000;">工单部门分布分析</a></sapn>
71
+				</div>
72
+			</div>
73
+        <div class="kpi-top clearfix">
74
+            <div class="topCon">
75
+                开始时间:
76
+                <input type="text" class="laydate-icon" id="startTime" />
77
+                结束时间:
78
+                <input type="text" class="laydate-icon" id="endTime" />
79
+                <button class="btns sear">搜索</button>
80
+                <!--<button class="btn daochu ">导出</button>-->
81
+            </div>
82
+        </div>
83
+        <div class="kpi-content">
84
+            <div class="kpi-table">
85
+                <h2 style="text-align: center;">客服部工单分布</h2>
86
+                <table class="table table-bordered text-center table-hover" style="width: 100%;">
87
+                    <thead>
88
+                        <tr>
89
+                            <td>客服部名称</td>
90
+                            <td>工单数量</td>
91
+                            <td>总处理时间/小时</td>
92
+                            <td>平均响应时间/小时</td>
93
+                            <td>平均处理时间/小时</td>
94
+                        </tr>
95
+                    </thead>
96
+                    <tbody class="tbody">
97
+                    </tbody>
98
+                    <tfoot>
99
+                        <tr>
100
+                            <td>合计</td>
101
+                            <td><span class="hj"></span></td>
102
+                            <td><span class="hj"></span></td>
103
+                            <td><span class="hj"></span></td>
104
+                            <td><span class="hj"></span></td>
105
+                        </tr>
106
+
107
+                    </tfoot>
108
+                </table>
109
+                <div style="color: red;">
110
+                    注:默认显示当月1号0:00:00至当日23:59:59的数据, 查询的工单是在当前时间段已经结单,并且是工程师处理之后结单的, 在工程师处理之前结单的不计算
111
+                </div>
112
+            </div>
113
+        </div>
114
+    </div>
115
+
116
+    <script src="../../css/laydate/laydate.js"></script>
117
+    <script src="../../js/echarts.common.min.js"></script>
118
+    <script src="http://cdn.hcharts.cn/highcharts/highcharts.js"></script>
119
+    <script>
120
+        $(function () {
121
+            laydate.skin('molv');
122
+            laydate({
123
+                elem: '#startTime',
124
+                event: 'focus',
125
+                format: 'YYYY-MM-DD'
126
+            });
127
+            laydate({
128
+                elem: '#endTime',
129
+                event: 'focus',
130
+                format: 'YYYY-MM-DD'
131
+            });
132
+            bind();
133
+            $(".sear").click(function () {
134
+                bind();
135
+            })
136
+        })
137
+        function bind() {
138
+            var WorkCount = 0;
139
+            var CLTotalTime = 0;
140
+            var XYAvgTime = 0;
141
+            var CLAvgTime = 0;
142
+
143
+            $(".tbody").empty();
144
+            $.getJSON(huayi.config.callcenter_url + 'Business/GetWorkDept', { starttime: $("#startTime").val(), endtime: $("#endTime").val(), "token": $.cookie("token") }, function (result) {
145
+                if (result.state.toLowerCase() == "success") {
146
+                    $(result.data).each(function (i,n) {
147
+                        $(".tbody").append('<tr><td>' + n.DeptName + '</td><td>' + n.WorkCount + '</td><td>' + n.CLTotalTime + '</td><td>' + (n.XYAvgTime ? n.XYAvgTime : 0) + '</td><td>' + n.CLAvgTime + '</td></tr>');
148
+                        
149
+                        WorkCount = WorkCount + (n.WorkCount ? n.WorkCount * 1 : 0);
150
+                        CLTotalTime = CLTotalTime + (n.CLTotalTime ? n.CLTotalTime * 1 : 0);
151
+                        XYAvgTime = XYAvgTime + (n.XYAvgTime ? n.XYAvgTime * 1 : 0);
152
+                        CLAvgTime = CLAvgTime + (n.CLAvgTime ? n.CLAvgTime * 1 : 0);
153
+                    })
154
+                    $(".hj").eq(0).text(WorkCount);
155
+                    $(".hj").eq(1).text(CLTotalTime);
156
+                    $(".hj").eq(2).text(XYAvgTime);
157
+                    $(".hj").eq(3).text(CLAvgTime);
158
+                }
159
+            })
160
+        }
161
+    </script>
162
+</body>
163
+
164
+</html>

+ 212 - 0
CallCenterWeb.UI/Report/Business/WorkEfficiency.html

@@ -0,0 +1,212 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+    <meta charset="utf-8">
5
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+
7
+    <title>工单流程执行效率分析</title>
8
+    <!--[if lt IE 9]>
9
+    <meta http-equiv="refresh" content="0;ie.html" />
10
+    <![endif]-->
11
+    <meta name="keywords" content="">
12
+    <meta name="description" content="">
13
+    <script src="../../Script/Common/huayi.load.js"></script>
14
+    <script src="../../Script/Common/huayi.config.js"></script>
15
+    <!--<link rel="stylesheet" href="../../css/huTotal.css" />-->
16
+      <link rel="stylesheet" href="../../css/init.css" />
17
+    <style>
18
+        .clearfix:after {
19
+            content: "";
20
+            display: block;
21
+            clear: both;
22
+        }
23
+
24
+        .kpi-top {
25
+            background: #f3f3f4;
26
+            height: 60px;
27
+            padding: 10px 20px;
28
+        }
29
+
30
+        .topCon {
31
+            float: right;
32
+            margin-right: 45px;
33
+        }
34
+
35
+        .kpi-content h2 {
36
+            font-size: 18px;
37
+            margin-bottom: 20px;
38
+        }
39
+
40
+        .topCon select {
41
+            padding: 2px;
42
+            height: 28px;
43
+            border: 1px solid #ebebeb;
44
+            color: #1ab394;
45
+            outline: none;
46
+            vertical-align: middle;
47
+        }
48
+
49
+        .topCon input {
50
+            width: 128px;
51
+            padding: 2px 2PX 2PX 10PX;
52
+            height: 28px;
53
+            border: 1px solid #ebebeb;
54
+            color: #1ab394;
55
+            outline: none;
56
+            vertical-align: middle;
57
+        }
58
+
59
+
60
+        .kpi-content {
61
+            width: 90%;
62
+            margin: 0 auto;
63
+        }
64
+
65
+        .kpi-table table {
66
+            font-size: 12px;
67
+        }
68
+
69
+            .kpi-table table thead tr td {
70
+                background: #1ab394;
71
+                color: #fff;
72
+                font-size: 14px;
73
+            }
74
+    </style>
75
+</head>
76
+
77
+<body class="gray-bg" style="background: #fefefe;">
78
+    <div class="hwkpi">
79
+    	<div class="daoHang clearfix">
80
+					<div class="dhLeft">
81
+					<sapn><i class="syIcon"></i>位置:<a id="ReIndex" href="javaScript:;">首页</a>&gt;<a href="javaScript:;">报表分析</a>&gt;<a href="javaScript:;">业务数据分析</a>&gt;<a href="" style="color: #000;">工单流程执行效率分析</a></sapn>
82
+				</div>
83
+			</div>
84
+        <div class="kpi-top clearfix">
85
+            <div class="topCon">
86
+                开始时间:
87
+                <input type="text" class="laydate-icon" id="startTime" />
88
+                结束时间:
89
+                <input type="text" class="laydate-icon" id="endTime" />
90
+                <button class="btns sear">搜索</button>
91
+                <!--<button class="btns daochu ">导出</button>-->
92
+            </div>
93
+        </div>
94
+
95
+        <div class="kpi-content">
96
+            <div class="kpi-table">
97
+                <h2 style="text-align: center;">工单流程执行效率分析</h2>
98
+                <table class="table table-bordered text-center table-hover" style="width: 100%;">
99
+                    <thead>
100
+                        <tr>
101
+                            <td>日期</td>
102
+                            <td>工单总量</td>
103
+                            <td>工单总用时/小时</td>
104
+                            <td>工单平均用时/小时</td>
105
+                            <td>指派总用时/小时</td>
106
+                            <td>指派平均用时/小时</td>
107
+                            <td>接单总用时/小时</td>
108
+                            <td>接单平均用时/小时</td>
109
+                            <td>处理总用时/小时</td>
110
+                            <td>处理平均用时/小时</td>
111
+                            <!--<td>回访总用时/小时</td>
112
+                            <td>回访平均用时/小时</td>
113
+                            <td>结单总用时/小时</td>
114
+                            <td>结单平均用时/小时</td>-->
115
+                        </tr>
116
+                    </thead>
117
+                    <tbody class="tbody">
118
+                    </tbody>
119
+                    <tfoot>
120
+                        <tr>
121
+                            <td>合计</td>
122
+                            <td><span class="hj"></span></td>
123
+                            <td><span class="hj"></span></td>
124
+                            <td><span class="hj"></span></td>
125
+                            <td><span class="hj"></span></td>
126
+                            <td><span class="hj"></span></td>
127
+                            <td><span class="hj"></span></td>
128
+                            <td><span class="hj"></span></td>
129
+                            <td><span class="hj"></span></td>
130
+                            <td><span class="hj"></span></td>
131
+                        </tr>
132
+                    </tfoot>
133
+                </table>
134
+                <div style="color: red;">
135
+                    注:默认显示当月1号0:00:00至当日23:59:59的数据,查询的工单是在当前时间段已经结单,无论是否派到工程师。
136
+                </div>
137
+            </div>
138
+
139
+
140
+        </div>
141
+    </div>
142
+
143
+    <script src="../../css/laydate/laydate.js"></script>
144
+    <script src="../../js/echarts.common.min.js"></script>
145
+    <script src="http://cdn.hcharts.cn/highcharts/highcharts.js"></script>
146
+    <script>
147
+
148
+        $(function () {
149
+            laydate.skin('molv');
150
+            laydate({
151
+                elem: '#startTime',
152
+                event: 'focus',
153
+                format: 'YYYY-MM-DD'
154
+            });
155
+            laydate({
156
+                elem: '#endTime',
157
+                event: 'focus',
158
+                format: 'YYYY-MM-DD'
159
+            });
160
+            bind();
161
+            $(".sear").click(function () {
162
+                bind();
163
+            })
164
+        })
165
+        function bind() {
166
+            var Count = 0;
167
+            var TotalTime = 0;
168
+            var AvgTime = 0;
169
+            var ZPTotalTime = 0;
170
+            var ZPAvgTime = 0;
171
+            var JDTotalTime = 0;
172
+            var JDAvgTime = 0;
173
+            var CLTotalTime = 0;
174
+            var CLAvgTime = 0;
175
+
176
+
177
+            $(".tbody").empty();
178
+            $.getJSON(huayi.config.callcenter_url + 'Business/GetWorkEfficiency', { starttime: $("#startTime").val(), endtime: $("#endTime").val(), "token": $.cookie("token") }, function (result) {
179
+                if (result.state.toLowerCase() == "success") {
180
+                    $(result.data).each(function (i, n) {
181
+                        var html = '<tr><td>' + n.Date + '</td><td>' + n.Count + '</td><td>' + n.TotalTime + '</td><td>'
182
+                            + n.AvgTime + '</td><td>' + (n.ZPTotalTime ? n.ZPTotalTime : 0) + '</td><td>' + (n.ZPAvgTime ? n.ZPAvgTime : 0) + '</td><td>'
183
+                            + (n.JDTotalTime ? n.JDTotalTime : 0) + '</td><td>' + (n.JDAvgTime ? n.JDAvgTime : 0) + '</td><td>'
184
+                            + (n.CLTotalTime ? n.CLTotalTime : 0) + '</td><td>' + (n.CLAvgTime ? n.CLAvgTime : 0) + '</td></tr>';
185
+                        $(".tbody").append(html);
186
+
187
+                        Count = Count + (n.Count ? n.Count * 1 : 0);
188
+                        TotalTime = TotalTime + (n.TotalTime ? n.TotalTime * 1 : 0);
189
+                        AvgTime = AvgTime + (n.AvgTime ? n.AvgTime * 1 : 0);
190
+                        ZPTotalTime = ZPTotalTime + (n.ZPTotalTime ? n.ZPTotalTime * 1 : 0);
191
+                        ZPAvgTime = ZPAvgTime + (n.ZPAvgTime ? n.ZPAvgTime * 1 : 0);
192
+                        JDTotalTime = JDTotalTime + (n.JDTotalTime ? n.JDTotalTime * 1 : 0);
193
+                        JDAvgTime = JDAvgTime + (n.JDAvgTime ? n.JDAvgTime * 1 : 0);
194
+                        CLTotalTime = CLTotalTime + (n.CLTotalTime ? n.CLTotalTime * 1 : 0);
195
+                        CLAvgTime = CLAvgTime + (n.CLAvgTime ? n.CLAvgTime * 1 : 0);
196
+                    })
197
+                    $(".hj").eq(0).text(Count);
198
+                    $(".hj").eq(1).text(TotalTime);
199
+                    $(".hj").eq(2).text(AvgTime);
200
+                    $(".hj").eq(3).text(ZPTotalTime);
201
+                    $(".hj").eq(4).text(ZPAvgTime);
202
+                    $(".hj").eq(5).text(JDTotalTime);
203
+                    $(".hj").eq(6).text(JDAvgTime);
204
+                    $(".hj").eq(7).text(CLTotalTime);
205
+                    $(".hj").eq(8).text(CLAvgTime);
206
+                }
207
+            })
208
+        }
209
+    </script>
210
+</body>
211
+
212
+</html>

+ 216 - 0
CallCenterWeb.UI/Report/Business/WorkPeriod.html

@@ -0,0 +1,216 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+<head>
5
+    <meta charset="utf-8">
6
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+
8
+    <title>工单时间点分布分析</title>
9
+    <!--[if lt IE 9]>
10
+    <meta http-equiv="refresh" content="0;ie.html" />
11
+    <![endif]-->
12
+    <meta name="keywords" content="">
13
+    <meta name="description" content="">
14
+
15
+    <script src="../../Script/Common/huayi.load.js"></script>
16
+    <script src="../../Script/Common/huayi.config.js"></script>
17
+    <!--<link rel="stylesheet" href="../../css/huTotal.css" />-->
18
+      <link rel="stylesheet" href="../../css/init.css" />
19
+    <style>
20
+        .clearfix:after {
21
+            content: "";
22
+            display: block;
23
+            clear: both;
24
+        }
25
+
26
+        .kpi-top {
27
+            background: #f3f3f4;
28
+            height: 60px;
29
+            padding: 10px 20px;
30
+        }
31
+
32
+        .topCon {
33
+            float: right;
34
+            margin-right: 45px;
35
+        }
36
+
37
+        .content h2 {
38
+            font-size: 18px;
39
+            margin-bottom: 20px;
40
+        }
41
+
42
+        .topCon input {
43
+            width: 128px;
44
+            padding: 2px 2PX 2PX 10PX;
45
+            height: 28px;
46
+            border: 1px solid #ebebeb;
47
+            color: #1ab394;
48
+            outline: none;
49
+            vertical-align: middle;
50
+        }
51
+        .content {
52
+            width: 90%;
53
+            margin: 0 auto;
54
+        }
55
+    </style>
56
+</head>
57
+
58
+<body class="gray-bg" style="background: #fefefe;">
59
+    <div class="hwkpi">
60
+    	<div class="daoHang clearfix">
61
+					<div class="dhLeft">
62
+					<sapn><i class="syIcon"></i>位置:<a id="ReIndex" href="javaScript:;">首页</a>&gt;<a href="javaScript:;">报表分析</a>&gt;<a href="javaScript:;">业务数据分析</a>&gt;<a href="" style="color: #000;">工单时间点分布分析</a></sapn>
63
+				</div>
64
+			</div>
65
+        <div class="kpi-top clearfix">
66
+            <div class="topCon">
67
+                开始时间:
68
+                <input type="text" class="laydate-icon" id="startTime" /> 结束时间:
69
+                <input type="text" class="laydate-icon" id="endTime" />
70
+                <button class="btns sear">搜索</button>
71
+                <!--<button class="btn daochu ">导出</button>-->
72
+            </div>
73
+        </div>
74
+        <ul class="nav nav-tabs th-tab">
75
+            <li role="presentation" class="active">
76
+                <a href="javascript:;">折线图</a>
77
+            </li>
78
+            <li role="presentation">
79
+                <a href="javascript:;">柱状图</a>
80
+            </li>
81
+        </ul>
82
+        <div class="content">
83
+            <div class="zhexian">
84
+                <h2 style="text-align: center;">工单时间点分布情况</h2>
85
+
86
+                <div id="zhe" style="width: 100%; height: 500px;margin: 0 auto;"></div>
87
+            </div>
88
+
89
+            <div class="zhutu" style="display: none;">
90
+                <h2 style="text-align: center;">工单时间点分布情况</h2>
91
+                <div id="zhu" style="width: 950px; height: 500px;margin: 0 auto;"></div>
92
+            </div>
93
+
94
+        </div>
95
+    </div>
96
+    <script src="../../css/laydate/laydate.js"></script>
97
+    <script src="../../js/echarts.common.min.js"></script>
98
+    <script>
99
+        $(function () {
100
+            laydate.skin('molv');
101
+            laydate({
102
+                elem: '#startTime',
103
+                event: 'focus',
104
+                format: 'YYYY-MM-DD'
105
+            });
106
+            laydate({
107
+                elem: '#endTime',
108
+                event: 'focus',
109
+                format: 'YYYY-MM-DD'
110
+            });
111
+            //tab切换
112
+            $('.th-tab li').click(function () {
113
+                $(this).addClass('active')
114
+                    .siblings().removeClass('active');
115
+
116
+                var index = $(this).index();
117
+                $('.content >div').eq(index).show().siblings().hide();
118
+            })
119
+
120
+            bind();
121
+
122
+            $(".sear").click(function () {
123
+                bind();
124
+            })
125
+        })
126
+        //折线图
127
+        var zhe = echarts.init(document.getElementById('zhe'));
128
+
129
+        var zheoption = {
130
+            color: ['#1ab394'],
131
+            tooltip: {
132
+                trigger: 'axis',
133
+                axisPointer: { // 坐标轴指示器,坐标轴触发有效
134
+                    type: 'line' // 默认为直线,可选为:'line' | 'shadow'
135
+                }
136
+            },
137
+            legend: {
138
+                data: ['工单数量']
139
+            },
140
+            grid: {
141
+                left: '3%',
142
+                right: '4%',
143
+                bottom: '3%',
144
+                containLabel: true
145
+            },
146
+            xAxis: [{
147
+                type: 'category',
148
+                data: ['8:00', '9:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00'],
149
+            }],
150
+            yAxis: [{
151
+                type: 'value',
152
+                name: '工单数量/个',
153
+                nameLocation: 'middle',
154
+                nameGap: 35
155
+            }],
156
+            series: [{
157
+                name: '工单数量',
158
+                type: 'line',
159
+                barWidth: '60%',
160
+                data: [10, 52, 200, 334, 390, 330, 220, 210, 200, 52]
161
+            }]
162
+        };
163
+        //柱形图
164
+        var zhu = echarts.init(document.getElementById('zhu'));
165
+
166
+        var zhuoption = {
167
+            color: ['#1ab394'],
168
+            tooltip: {
169
+                trigger: 'axis',
170
+                axisPointer: { // 坐标轴指示器,坐标轴触发有效
171
+                    type: 'line' // 默认为直线,可选为:'line' | 'shadow'
172
+                }
173
+            },
174
+            legend: {
175
+                data: ['工单数量']
176
+            },
177
+            grid: {
178
+                left: '3%',
179
+                right: '4%',
180
+                bottom: '3%',
181
+                containLabel: true
182
+            },
183
+            xAxis: [{
184
+                type: 'category',
185
+                data: ['8:00', '9:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00'],
186
+            }],
187
+            yAxis: [{
188
+                type: 'value',
189
+                name: '工单数量/个',
190
+                nameLocation: 'middle',
191
+                nameGap: 35
192
+            }],
193
+            series: [{
194
+                name: '工单数量',
195
+                type: 'bar',
196
+                barWidth: '30%',
197
+                data: [10, 52, 200, 334, 390, 330, 220, 210, 200, 52]
198
+
199
+            }]
200
+        };
201
+        function bind() {
202
+            $.getJSON(huayi.config.callcenter_url + 'Business/GetWorkPeriod', { starttime: $("#startTime").val(), endtime: $("#endTime").val(), "token": $.cookie("token") }, function (result) {
203
+                if (result.state.toLowerCase() == "success") {
204
+                    zheoption.series[0].data = result.data.count;
205
+                    zheoption.xAxis[0].data = result.data.col;
206
+                    zhuoption.series[0].data = result.data.count;
207
+                    zhuoption.xAxis[0].data = result.data.col;
208
+                    zhe.setOption(zheoption);
209
+                    zhu.setOption(zhuoption);
210
+                }
211
+            })
212
+        }
213
+    </script>
214
+</body>
215
+
216
+</html>

File diff suppressed because it is too large
+ 1268 - 0
CallCenterWeb.UI/ResultCx.html


+ 286 - 0
CallCenterWeb.UI/ResultXj.html

@@ -0,0 +1,286 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>任务结果数据</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+		<link href="./css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet">
9
+		<link href="./css/bootstrap.min.css" />
10
+		<link rel="stylesheet" href="./css/boot/bootstrap-table.css" />
11
+		<link href="./css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
12
+		<link href="./css/animate.min.css" rel="stylesheet">
13
+		<link href="./css/style.min862f.css?v=4.1.0" rel="stylesheet">
14
+		<link href="./css/initialize.css" rel="stylesheet" />
15
+		<link href="./css/Table/table1.css" rel="stylesheet" />
16
+		<style>
17
+			.wrapper {
18
+				position: relative;
19
+			}
20
+			
21
+			.whjh {
22
+				position: absolute;
23
+				top: 43px;
24
+				z-index: 600;
25
+			}
26
+			
27
+			#table1 {
28
+				background: #F9F9F9;
29
+			}
30
+			
31
+			.fixed-table-pagination {
32
+				background: #F9F9F9;
33
+			}
34
+			
35
+			#table1 thead {
36
+				background: #f9f9f9;
37
+			}
38
+			
39
+			.hidens {
40
+				display: none;
41
+			}
42
+			
43
+			.outline {
44
+				border: 1px solid #21b9bb !important;
45
+			}
46
+			
47
+			.imgs {
48
+				color: rgb(0, 128, 0);
49
+				cursor: pointer;
50
+			}
51
+			
52
+			.imgs img {
53
+				vertical-align: baseline;
54
+			}
55
+			.key{
56
+				width: 80px;
57
+			}
58
+			.xg:hover{
59
+				color:#E43926;
60
+			}
61
+			.whhf{
62
+				      text-align: center;
63
+    		padding: 10px;
64
+  			 margin-bottom: 10px;
65
+			}
66
+			.thead{
67
+				background: #d5edfe;
68
+			}
69
+		</style>
70
+	</head>
71
+	<script src="./js/jquery.min.js?v=2.1.4"></script>
72
+	<script src="./js/bootstrap.min.js"></script>
73
+	<script src="./js/bootstrap-table.js"></script>
74
+	<script src="./js/bootstrap-table-zh-CN.js"></script>
75
+	<script src="My97DatePicker/WdatePicker.js"></script>
76
+	</head>
77
+
78
+	<body>
79
+		<div class="wrapper wrapper-content animated fadeInRight">
80
+			<div class="th-box">
81
+				<div class="th-bar">
82
+					<div class="seach-box fl">
83
+						<ul>
84
+							<li>外呼计划:<input class="photo x-color" type="text" id="Call" value='套餐升级'/></li>
85
+							<li>关键字:<input  class="photo x-color key" type="text" id="KeyWords" /></li>
86
+							<li>开始回放时间:<input class="photo x-color" type="text" id="St" onfocus="WdatePicker({lang:'zh-cn',dateFmt:'HH-mm-ss'})"/></li>
87
+							<li>结束时间:<input class="photo x-color" type="text" id="Et" onfocus="WdatePicker({lang:'zh-cn',dateFmt:'HH-mm-ss'})" /></li>
88
+						</ul>
89
+					</div>
90
+				</div>
91
+			</div>
92
+			<div style="width: 30%;padding: 10px;" class="whjh hidens">
93
+				
94
+				<table id="table1" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
95
+					<thead>
96
+						<tr>
97
+							<th data-sortable="true" data-field="Plan" data-align="center">计划名称</th>
98
+							<th data-sortable="true" data-field="Number" data-align="center">号码数量</th>
99
+						</tr>
100
+					</thead>
101
+					<tbody id="tbody">
102
+					</tbody>
103
+				</table>
104
+			</div>
105
+			<div style="width: 100%;padding: 10px;">
106
+				<div class="fl" style="padding: 10px;">
107
+						坐席:
108
+						<select name="" id="Select" class="x-color select" >
109
+							<option value="">全部</option>
110
+							<option value="">系统管理</option>
111
+							<option value="">8001</option>
112
+							<option value="">8002</option>
113
+							<option value="">zhang</option>
114
+						</select>
115
+						分配状态:
116
+						<select name="" id="Select" class="x-color select" >
117
+							<option value="">全部</option>
118
+							<option value="">未分配</option>
119
+							<option value="">已分配</option>
120
+						</select>
121
+						呼叫状态:
122
+						<select name="" id="Select" class="x-color select" >
123
+							<option value="">全部</option>
124
+							<option value="">未呼叫</option>
125
+							<option value="">已呼叫</option>
126
+						</select>
127
+						 接通状态:
128
+						 <select name="" id="Select" class="x-color select" >
129
+							<option value="">全部</option>
130
+							<option value="">未接通</option>
131
+							<option value="">已接通</option>
132
+						</select>
133
+						 呼叫结果:
134
+						 <select name="" id="Select" class="x-color " >
135
+							<option value="">全部</option>
136
+							<option value="">正常接通</option>
137
+							<option value="">拒访</option>
138
+							<option value="">不是本人</option>
139
+							<option value="">关机</option>
140
+							<option value="">停机</option>
141
+							<option value="">无人接听</option>
142
+							<option value="">空号</option>
143
+						</select>
144
+						<div class="fr" style="margin-left: 15px;">
145
+							<a class="sc_btn btn-info" id="sc_btn">导出Excel</a>
146
+						</div>
147
+						<div class="fr" style="margin-left: 15px;">
148
+							<a class="sc_btn btn-info" id="sc_btn">搜索</a>
149
+						</div>
150
+						
151
+				</div>
152
+				<div class="fl whhf" style="width: 100%;">
153
+					<h2>
154
+						外呼计划回访数据
155
+					</h2>
156
+				</div>
157
+				<table id="goods" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
158
+					<thead class="thead">
159
+						<tr>
160
+							<th  data-field="whjh" data-align="center">外呼计划</th>
161
+							<th  data-field="hm" data-align="center" >号码</th>
162
+							<th  data-field="mc" data-align="center">名称</th>
163
+							<th  data-field="md" data-align="center">门店</th>
164
+							<th  data-field="hf" data-align="center">回访坐席</th>
165
+							<th  data-field="zt" data-align="center">呼叫状态</th>
166
+							<th  data-field="jg" data-align="center">呼叫结果</th>
167
+							<th  data-field="tc" data-align="center">升级套餐</th>
168
+						</tr>
169
+					</thead>
170
+					<tbody id="tbody">
171
+					</tbody>
172
+				</table>
173
+			</div>
174
+		</div>
175
+		<script>
176
+			var $tableLeft = $('#table1');
177
+			var $tableLeft1 = $('#goods');
178
+			var arr = [{
179
+					"Plan": "张三外呼",
180
+					"Number": "0",
181
+				},
182
+				{
183
+					"Plan": "满意度调差",
184
+					"Number": "51561",
185
+				},
186
+				{
187
+					"Plan": "张三外呼",
188
+					"Number": "0",
189
+				}
190
+			];
191
+			var arr1 = [{
192
+					'whjh': '套餐升级',
193
+					'hm': ' 13800000882',
194
+					'mc': '信息1',
195
+					'md': '门店3',
196
+					'hf': '系统管理',
197
+					'zt': '已呼叫',
198
+					'jg': '正常接通',
199
+					'tc': '78套餐',
200
+				},
201
+				{
202
+					'whjh': '套餐升级',
203
+					'hm': ' 13800000882',
204
+					'mc': '信息1',
205
+					'md': '门店3',
206
+					'hf': '系统管理',
207
+					'zt': '已呼叫',
208
+					'jg': '正常接通',
209
+					'tc': '78套餐',
210
+				},
211
+				{
212
+					'whjh': '套餐升级',
213
+					'hm': ' 13800000882',
214
+					'mc': '信息1',
215
+					'md': '门店3',
216
+					'hf': '系统管理',
217
+					'zt': '已呼叫',
218
+					'jg': '正常接通',
219
+					'tc': '78套餐',
220
+				},
221
+				{
222
+					'whjh': '套餐升级',
223
+					'hm': ' 13800000882',
224
+					'mc': '信息1',
225
+					'md': '门店3',
226
+					'hf': '系统管理',
227
+					'zt': '已呼叫',
228
+					'jg': '正常接通',
229
+					'tc': '78套餐',
230
+				},
231
+				{
232
+					'whjh': '套餐升级',
233
+					'hm': ' 13800000882',
234
+					'mc': '信息1',
235
+					'md': '门店3',
236
+					'hf': '系统管理',
237
+					'zt': '已呼叫',
238
+					'jg': '正常接通',
239
+					'tc': '78套餐',
240
+				}
241
+			]
242
+			$tableLeft.bootstrapTable({
243
+				data: arr, //请求后台的URL(*)
244
+				method: 'get',
245
+				pagination: true,
246
+				pageNumber: 1, //初始化加载第一页,默认第一页
247
+				pageSize: 5, //每页的记录行数(*)
248
+				pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
249
+				clickToSelect: true,
250
+				striped: true
251
+			});
252
+			$tableLeft1.bootstrapTable({
253
+				data: arr1, //请求后台的URL(*)
254
+				method: 'get',
255
+				toolbar: '#toolbar',
256
+				pagination: true,
257
+				pageNumber: 1, //初始化加载第一页,默认第一页
258
+				pageSize: 5, //每页的记录行数(*)
259
+				pageList: [5, 25, 50, 100], //可供选择的每页的行数(*)
260
+				clickToSelect: true,
261
+				striped: true
262
+			});
263
+
264
+			
265
+
266
+			/*获取焦点*/
267
+			$("#Call").focus(function() {
268
+				$(this).addClass("outline");
269
+				$(".whjh").removeClass("hidens");
270
+
271
+			})
272
+			$("#Call").blur(function() {
273
+				$(this).removeClass("outline");
274
+				$(".whjh").addClass("hidens");
275
+
276
+			})
277
+			$("input").focus(function() {
278
+				$(this).addClass("outline");
279
+			});
280
+			$("input").blur(function() {
281
+				$(this).removeClass("outline");
282
+			})
283
+		</script>
284
+	</body>
285
+
286
+</html>

+ 317 - 0
CallCenterWeb.UI/Script/Class/DateHelper.js

@@ -0,0 +1,317 @@
1
+//---------------------------------------------------  
2
+// 判断闰年  
3
+//---------------------------------------------------  
4
+Date.prototype.isLeapYear = function()   
5
+{   
6
+    return (0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0)));   
7
+}   
8
+  
9
+//---------------------------------------------------  
10
+// 日期格式化  
11
+// 格式 YYYY/yyyy/YY/yy 表示年份  
12
+// MM/M 月份  
13
+// W/w 星期  
14
+// dd/DD/d/D 日期  
15
+// hh/HH/h/H 时间  
16
+// mm/m 分钟  
17
+// ss/SS/s/S 秒  
18
+//---------------------------------------------------  
19
+Date.prototype.Format = function (formatStr)   
20
+{   
21
+    var str = formatStr;   
22
+    var Week = ['日','一','二','三','四','五','六'];  
23
+  
24
+    str=str.replace(/yyyy|YYYY/,this.getFullYear());   
25
+    str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():'0' + (this.getYear() % 100));   
26
+  
27
+    str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():'0' + this.getMonth());   
28
+    str=str.replace(/M/g,this.getMonth());   
29
+  
30
+    str=str.replace(/w|W/g,Week[this.getDay()]);   
31
+  
32
+    str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0' + this.getDate());   
33
+    str=str.replace(/d|D/g,this.getDate());   
34
+  
35
+    str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0' + this.getHours());   
36
+    str=str.replace(/h|H/g,this.getHours());   
37
+    str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0' + this.getMinutes());   
38
+    str=str.replace(/m/g,this.getMinutes());   
39
+  
40
+    str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0' + this.getSeconds());   
41
+    str=str.replace(/s|S/g,this.getSeconds());   
42
+  
43
+    return str;   
44
+}   
45
+  
46
+//+---------------------------------------------------  
47
+//| 求两个时间的天数差 日期格式为 YYYY-MM-dd   
48
+//+---------------------------------------------------  
49
+function daysBetween(DateOne,DateTwo)  
50
+{   
51
+    var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-'));  
52
+    var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1);  
53
+    var OneYear = DateOne.substring(0,DateOne.indexOf ('-'));  
54
+  
55
+    var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-'));  
56
+    var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1);  
57
+    var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-'));  
58
+  
59
+    var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);   
60
+    return Math.abs(cha);  
61
+}  
62
+  
63
+  
64
+//+---------------------------------------------------  
65
+//| 日期计算  
66
+//+---------------------------------------------------  
67
+Date.prototype.DateAdd = function(strInterval, Number) {   
68
+    var dtTmp = this;  
69
+    switch (strInterval) {   
70
+        case 's' :return new Date(Date.parse(dtTmp) + (1000 * Number));  
71
+        case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number));  
72
+        case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number));  
73
+        case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number));  
74
+        case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));  
75
+        case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
76
+        case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
77
+        case 'y' :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());  
78
+    }  
79
+}  
80
+  
81
+//+---------------------------------------------------  
82
+//| 比较日期差 dtEnd 格式为日期型或者有效日期格式字符串  
83
+//| 计算两日期相差的日期年月日等
84
+//| 使用方法:new Date("2013-12-20 00:00:00").dateDiff("d",new Date("2013-12-20 00:00:00"))
85
+//+---------------------------------------------------  
86
+Date.prototype.DateDiff = function(strInterval, dtEnd) {   
87
+    var dtStart = this;  
88
+    if (typeof dtEnd == 'string' )//如果是字符串转换为日期型  
89
+    {   
90
+        dtEnd = StringToDate(dtEnd);  
91
+    }  
92
+    switch (strInterval) {   
93
+        case 's' :return parseInt((dtEnd - dtStart) / 1000);  
94
+        case 'n' :return parseInt((dtEnd - dtStart) / 60000);  
95
+        case 'h' :return parseInt((dtEnd - dtStart) / 3600000);  
96
+        case 'd' :return parseInt((dtEnd - dtStart) / 86400000);  
97
+        case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7));  
98
+        case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);  
99
+        case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();  
100
+    }  
101
+}  
102
+  
103
+//+---------------------------------------------------  
104
+//| 日期输出字符串,重载了系统的toString方法  
105
+//+---------------------------------------------------  
106
+Date.prototype.toString = function(showWeek)  
107
+{   
108
+    var myDate= this;  
109
+    var str = myDate.toLocaleDateString();  
110
+    if (showWeek)  
111
+    {   
112
+        var Week = ['日','一','二','三','四','五','六'];  
113
+        str += ' 星期' + Week[myDate.getDay()];  
114
+    }  
115
+    return str;  
116
+}   
117
+  
118
+//+---------------------------------------------------  
119
+//| 日期时间检查  
120
+//| 格式为:YYYY-MM-DD HH:MM:SS  
121
+//+---------------------------------------------------  
122
+function CheckDateTime(str)  
123
+{   
124
+    var reg = /^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2 })$/;   
125
+    var r = str.match(reg);   
126
+    if(r==null)return false;   
127
+    r[2]=r[2]-1;   
128
+    var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);   
129
+    if(d.getFullYear()!=r[1])return false;   
130
+    if(d.getMonth()!=r[2])return false;   
131
+    if(d.getDate()!=r[3])return false;   
132
+    if(d.getHours()!=r[4])return false;   
133
+    if(d.getMinutes()!=r[5])return false;   
134
+    if(d.getSeconds()!=r[6])return false;   
135
+    return true;   
136
+}   
137
+  
138
+//+---------------------------------------------------  
139
+//| 把日期分割成数组  
140
+//+---------------------------------------------------  
141
+Date.prototype.toArray = function()  
142
+{   
143
+    var myDate = this;  
144
+    var myArray = Array();  
145
+    myArray[0] = myDate.getFullYear();  
146
+    myArray[1] = myDate.getMonth();  
147
+    myArray[2] = myDate.getDate();  
148
+    myArray[3] = myDate.getHours();  
149
+    myArray[4] = myDate.getMinutes();  
150
+    myArray[5] = myDate.getSeconds();  
151
+    return myArray;  
152
+}  
153
+  
154
+//+---------------------------------------------------  
155
+//| 取得日期数据信息  
156
+//| 参数 interval 表示数据类型  
157
+//| y 年 m月 d日 w星期 ww周 h时 n分 s秒  
158
+//+---------------------------------------------------  
159
+Date.prototype.DatePart = function(interval)  
160
+{   
161
+    var myDate = this;  
162
+    var partStr='';  
163
+    var Week = ['日','一','二','三','四','五','六'];  
164
+    switch (interval)  
165
+    {   
166
+        case 'y' :partStr = myDate.getFullYear();break;  
167
+        case 'm' :partStr = myDate.getMonth()+1;break;  
168
+        case 'd' :partStr = myDate.getDate();break;  
169
+        case 'w' :partStr = Week[myDate.getDay()];break;  
170
+        case 'ww' :partStr = myDate.WeekNumOfYear();break;  
171
+        case 'h' :partStr = myDate.getHours();break;  
172
+        case 'n' :partStr = myDate.getMinutes();break;  
173
+        case 's' :partStr = myDate.getSeconds();break;  
174
+    }  
175
+    return partStr;  
176
+}  
177
+  
178
+//+---------------------------------------------------  
179
+//| 取得当前日期所在月的最大天数  
180
+//+---------------------------------------------------  
181
+Date.prototype.MaxDayOfDate = function()  
182
+{   
183
+    var myDate = this;  
184
+    var ary = myDate.toArray();  
185
+    var date1 = (new Date(ary[0],ary[1],1));
186
+    var date2 = (new Date(ary[0], ary[1] + 1, 1));
187
+    var result = date1.DateDiff("d",date2);  
188
+    return result;  
189
+}  
190
+  
191
+//+---------------------------------------------------  
192
+//| 字符串转成日期类型   
193
+//| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd  
194
+//+---------------------------------------------------  
195
+function StringToDate(DateStr)  
196
+{   
197
+  
198
+    var converted = Date.parse(DateStr);  
199
+    var myDate = new Date(converted);  
200
+    if (isNaN(myDate))  
201
+    {   
202
+        //var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';  
203
+        var arys= DateStr.split('-');  
204
+        myDate = new Date(arys[0],--arys[1],arys[2]);  
205
+    }  
206
+    return myDate;  
207
+}  
208
+
209
+ 
210
+
211
+//若要显示:当前日期加时间(如:2009-06-12 12:00)
212
+
213
+function CurentTime()
214
+    { 
215
+        var now = new Date();
216
+       
217
+        var year = now.getFullYear();       //年
218
+        var month = now.getMonth() + 1;     //月
219
+        var day = now.getDate();            //日
220
+       
221
+        var hh = now.getHours();            //时
222
+        var mm = now.getMinutes();          //分
223
+       
224
+        var clock = year + "-";
225
+       
226
+        if(month < 10)
227
+            clock += "0";
228
+       
229
+        clock += month + "-";
230
+       
231
+        if(day < 10)
232
+            clock += "0";
233
+           
234
+        clock += day + " ";
235
+       
236
+        if(hh < 10)
237
+            clock += "0";
238
+           
239
+        clock += hh + ":";
240
+        if (mm < 10) clock += '0'; 
241
+        clock += mm; 
242
+        return(clock);
243
+    }
244
+
245
+
246
+    function CurentDate() {
247
+        var now = new Date();
248
+
249
+        var year = now.getFullYear();       //年
250
+        var month = now.getMonth() + 1;     //月
251
+        var day = now.getDate();            //日
252
+
253
+        var clock = year + "-";
254
+
255
+        if (month < 10)
256
+            clock += "0";
257
+
258
+        clock += month + "-";
259
+
260
+        if (day < 10)
261
+            clock += "0";
262
+
263
+        clock += day;
264
+        return (clock);
265
+    }
266
+
267
+    function MonthFirstDate() {
268
+        var now = new Date();
269
+
270
+        var year = now.getFullYear();       //年
271
+        var month = now.getMonth() + 1;     //月
272
+        var day = "1";            //日
273
+
274
+        var clock = year + "-";
275
+
276
+        if (month < 10)
277
+            clock += "0";
278
+
279
+        clock += month + "-";
280
+
281
+        if (day < 10)
282
+            clock += "0";
283
+
284
+        clock += day;
285
+        return (clock);
286
+    }
287
+
288
+    function GetDatePart(nS) {
289
+        var now = new Date(nS);
290
+
291
+        var year = now.getFullYear();       //年
292
+        var month = now.getMonth() + 1;     //月
293
+        var day = now.getDate();            //日
294
+
295
+        var clock = year + "-";
296
+
297
+        if (month < 10)
298
+            clock += "0";
299
+
300
+        clock += month + "-";
301
+
302
+        if (day < 10)
303
+            clock += "0";
304
+
305
+        clock += day;
306
+        return (clock);
307
+    }
308
+
309
+    function getLocalTime(nS) {
310
+        var S = parseInt(nS).toString();
311
+
312
+        if (S.length==13) {
313
+            return new Date(parseInt(nS)).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ").replace(/上午/g, "").replace(/下午/g, "");
314
+        } else {
315
+            return new Date(parseInt(nS) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ").replace(/上午/g, "").replace(/下午/g, "");
316
+        }
317
+    }   

+ 11 - 0
CallCenterWeb.UI/Script/Common/huayi.config.js

@@ -0,0 +1,11 @@
1
+if (huayi == undefined) {
2
+    var huayi = {};
3
+}
4
+huayi.config = {
5
+    callcenter_url: "http://192.168.4.18:4019/",//生产环境 前端Web站IP和端口
6
+    socket_ip: "192.168.5.7",//WebSocket通讯ip
7
+    socket_port: "8081",    //WebSocket通讯端口
8
+    menuworktime: 30000,    //菜单工单数量刷新间隔
9
+    indextime: 5000         //首页报表刷新间隔
10
+
11
+};

+ 13 - 0
CallCenterWeb.UI/Script/Common/huayi.cookies.js

@@ -0,0 +1,13 @@
1
+if (huayi == undefined) {
2
+    var huayi = {};
3
+}
4
+huayi.coookies = function() {
5
+    this.uid = helper.cookies.get("uid") != "" ? helper.cookies.get("uid") : "";
6
+    this.passtoken = helper.cookies.get("passtoken") != "" ? helper.cookies.get("passtoken") : "";
7
+    this.imgurl = helper.cookies.get("imgurl") != "" ? helper.cookies.get("imgurl") : "0";
8
+    this.avatarurl = helper.cookies.get("image_avatar_url") != "" ? helper.cookies.get("image_avatar_url") : "http://img.800100.com/PerRes/Common/user/avatar/";
9
+    this.siteurl = helper.cookies.get("image_site_url") != "" ? helper.cookies.get("image_site_url") : "http://img.800100.com/PerRes/Common/";
10
+    this.liang = helper.cookies.get("liang") != "" ? helper.cookies.get("liang") : "";
11
+    this.userlevel = helper.cookies.get("userlevel") != "" ? helper.cookies.get("userlevel") : "";
12
+    this.agent = helper.cookies.get("agent") != "" ? helper.cookies.get("agent") : "";
13
+};

+ 595 - 0
CallCenterWeb.UI/Script/Common/huayi.http.js

@@ -0,0 +1,595 @@
1
+var helper = {};
2
+
3
+helper.http = {
4
+    newXMLHttp: function () {
5
+        var XMLHttp = null;
6
+        if (window.XMLHttpRequest) {
7
+            XMLHttp = new XMLHttpRequest();
8
+        }
9
+        if (XMLHttp == null && window.ActiveXObject) {
10
+            var clsids = ["MSXML2.XMLHttp.7.0", "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp.2.0", "MSXML2.XMLHttp.1.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
11
+            for (var i = 0; i < clsids.length && XMLHttp == null; i++) {
12
+                try {
13
+                    XMLHttp = new ActiveXObject(clsids[i]);
14
+                } catch (e) {
15
+                }
16
+            }
17
+        }
18
+        return XMLHttp;
19
+    },
20
+    get: function (URL, func) {
21
+        try {
22
+            var XMLHttp = this.newXMLHttp();
23
+            if (typeof (func) != "function") {
24
+                XMLHttp.open("GET", URL, false);
25
+                XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
26
+                XMLHttp.send(null);
27
+            
28
+                var result = XMLHttp.status;
29
+                var responseText = XMLHttp.responseText;
30
+
31
+                if (result == 200) {
32
+                    return responseText;
33
+                } else {
34
+                    return result;
35
+                }
36
+            } else {
37
+                XMLHttp.onreadystatechange = function () {
38
+                    if (XMLHttp.readyState == 4) {
39
+                        if (XMLHttp.status == 200) {
40
+                            var responseText = XMLHttp.responseText;
41
+                            func(responseText);
42
+                        } else {
43
+                            func(false);
44
+                        }
45
+                    }
46
+                };
47
+                XMLHttp.open("GET", URL, true);
48
+                XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
49
+                XMLHttp.send(null);
50
+            }
51
+        } catch (e) {
52
+        }
53
+    },
54
+    post: function (URL, data, func) {
55
+        try {
56
+            var XMLHttp = this.newXMLHttp();
57
+            if (typeof (func) != "function") {
58
+                XMLHttp.open("POST", URL, false);
59
+                XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
60
+                XMLHttp.send(data);
61
+
62
+                var result = XMLHttp.status;
63
+                var responseText = XMLHttp.responseText;
64
+
65
+                if (result == 200) {
66
+                    return responseText;
67
+                } else {
68
+                    return false;
69
+                }
70
+            } else {
71
+                XMLHttp.onreadystatechange = function () {
72
+                    if (XMLHttp.readyState == 4) {
73
+                        if (XMLHttp.status == 200) {
74
+                            var responseText = XMLHttp.responseText;
75
+                            func(responseText);
76
+                        } else {
77
+                            func(false);
78
+                        }
79
+                    }
80
+                };
81
+
82
+                XMLHttp.open("POST", URL, true);
83
+                XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
84
+                XMLHttp.send(data);
85
+            }
86
+        } catch (e) {
87
+        }
88
+    }
89
+};
90
+
91
+helper.cookies = {
92
+    del: function (name) {
93
+        var exp = new Date();
94
+        exp.setTime(exp.getTime() - 1);
95
+        var cval = helper.cookies.get(name);
96
+        if (cval != null)
97
+            document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
98
+    },
99
+    set: function (name, value, remember) {
100
+        if (remember == true) {
101
+            var Days = 30;
102
+            var exp = new Date();
103
+            exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
104
+            document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString();
105
+        }
106
+        else {
107
+            document.cookie = name + "=" + escape(value) + ";path=/";
108
+        }
109
+    },
110
+    setday: function (name, value, remember) {
111
+        var Days = remember;
112
+        var exp = new Date();
113
+        exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
114
+        document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString();
115
+
116
+    },
117
+    setdomain: function (name, value, remember) {
118
+        var domain = window.location.host.split(".");
119
+        if (remember == true) {
120
+            var Days = 30;
121
+            var exp = new Date();
122
+            exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
123
+            document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString() + ";domain=." + domain[domain.length - 2] + "." + domain[domain.length - 1];
124
+        }
125
+        else {
126
+            document.cookie = name + "=" + escape(value) + ";path=/" + ";domain=." + domain[1] + "." + domain[2];
127
+        }
128
+    },
129
+    get: function (name) {
130
+        var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
131
+
132
+        if (arr = document.cookie.match(reg)) {
133
+            return unescape(arr[2]);
134
+        } else {
135
+            return '';
136
+        }
137
+    }
138
+};
139
+
140
+/*
141
+获取URL中指定的参数
142
+例如:
143
+URL:test.com/test.aspx?test=t
144
+var t=help.request.queryString("test");
145
+得到t
146
+*/
147
+helper.request = {
148
+    queryString:
149
+	        function (item) {
150
+	            locationSearch = "";
151
+	            var tmpLocationArr = location.href.split("?");
152
+	            if (tmpLocationArr.length > 1) locationSearch = "?" + tmpLocationArr[1];
153
+	            var svalue = locationSearch.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)", "i"));
154
+	            var Qvalue = svalue ? svalue[1] : svalue;
155
+	            if (Qvalue == null) {
156
+	                return "";
157
+	            } else {
158
+	                return Qvalue.trim();
159
+	            }
160
+	        },
161
+    queryurl:
162
+	        function (url, item) {
163
+	            locationSearch = "";
164
+	            var tmpLocationArr = url.split("?");
165
+	            if (tmpLocationArr.length > 1) locationSearch = "?" + tmpLocationArr[1];
166
+	            var svalue = locationSearch.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)", "i"));
167
+	            var Qvalue = svalue ? svalue[1] : svalue;
168
+	            if (Qvalue == null) {
169
+	                return "";
170
+	            } else {
171
+	                return Qvalue.trim();
172
+	            }
173
+	        }
174
+};
175
+
176
+
177
+helper.pager = {
178
+
179
+    //分页
180
+    PageList1: function (strFunName) {
181
+        /***总页数***/
182
+        var intPageCount = parseInt((parseInt(intRecordCount) + parseInt(intPageSize) - 1) / parseInt(intPageSize));
183
+        if (intPageCount <= 1) {
184
+            return "";
185
+        }
186
+
187
+        /***页码距***/
188
+        var intPageCurrent = 10;
189
+
190
+        /***起始页码***/
191
+        var intStartPage = (parseInt((parseInt(intPageIndex) + intPageCurrent - 1) / intPageCurrent) - 1) * intPageCurrent + 1;
192
+
193
+        /***结束页码***/
194
+        var intEndPage = intStartPage + intPageCurrent - 1;
195
+        if (intPageIndex % intPageCurrent == 0) {
196
+            intStartPage++;
197
+            intEndPage++;
198
+        }
199
+
200
+        if (intPageIndex % intPageCurrent - 1 == 0 && intPageIndex != 1) {
201
+            intStartPage--;
202
+            intEndPage--;
203
+        }
204
+
205
+        if (intEndPage >= intPageCount) {
206
+            intEndPage = intPageCount;
207
+        }
208
+
209
+        /***上一页,下一页***/
210
+        var intUpPage = parseInt(intPageIndex) - 1;
211
+        var intDownPage = parseInt(intPageIndex) + 1;
212
+        var strUpPage = "<a href=\"#\" onclick=\"" + strFunName + "(" + intUpPage + ")\" >上一页</a>";
213
+        var strDownPage = "<a href=\"#\" onclick=\"" + strFunName + "(" + intDownPage + ")\">下一页</a>";
214
+        if (intUpPage < 1) {
215
+            //intUpPage = 1;
216
+            strUpPage = "";
217
+        }
218
+        if (intPageIndex >= intPageCount) {
219
+            //intDownPage = intPageCount;
220
+            strDownPage = "";
221
+        }
222
+
223
+        /***生成页码列表***/
224
+        var strPageList = strUpPage;
225
+
226
+        for (var i = intStartPage; i <= intEndPage; i++) {
227
+            if (intPageIndex == i) {
228
+                /***当前页码***/
229
+                strPageList += "<a style=\"background-image:url(../images/bg/menublue22.jpg); background-position:bottom; background-repeat:repeat-x; padding:1px 6px;border-radius: 4px 4px 4px 4px; margin-right:3px; border:1px solid #aeb2b1;\" >" + i + "</a>";
230
+            }
231
+            else {
232
+                strPageList += "<a href=\"#\" onclick=\"" + strFunName + "(" + i + ");\">" + i + "</a>";
233
+            }
234
+        }
235
+        strPageList += strDownPage;
236
+
237
+        //直接跳转
238
+        strPageList += "总页数:" + intPageCount + "&nbsp;&nbsp;/&nbsp;&nbsp;";
239
+        strPageList += "<input type=\"text\" onkeyup=\"this.value=this.value.replace(/\\D/g,'')\" id=\"tb_index\" />";
240
+        strPageList += "&nbsp;&nbsp;<a style=\"cursor:pointer;\" onclick=\"javascript:helper.pager.checkPageValue()\">跳转</a>";
241
+        return strPageList;
242
+
243
+    },
244
+    checkPageValue: function () {
245
+        var intPageIndexNext = document.getElementById('tb_index').value;
246
+        if (parseInt(intPageIndexNext) == 0) {
247
+            document.getElementById('tb_index').value = "1";
248
+            $.jBox.alert('输入页面不能为0', '提示');
249
+            return;
250
+        }
251
+        if (intPageIndexNext == "") {
252
+            document.getElementById('tb_index').value = "1";
253
+            $.jBox.alert('输入页面不能为空', '提示');
254
+            return;
255
+        }
256
+        if (intPageIndexNext.length != 0) {
257
+            var intPageCount = parseInt((parseInt(intRecordCount) + parseInt(intPageSize) - 1) / parseInt(intPageSize));
258
+            if (intPageIndexNext <= intPageCount) {
259
+                intPageIndex = intPageIndexNext;
260
+                loadlist();
261
+            }
262
+            else {
263
+                document.getElementById('tb_index').value = intPageCount;
264
+                $.jBox.alert('输入页面不能大于总页数', '提示');
265
+            }
266
+        }
267
+        else {
268
+            document.getElementById('tb_index').value = "1";
269
+        }
270
+    },
271
+    loadJS: function (url) {
272
+        var domScript = document.createElement('script');
273
+        domScript.type = "text/javascript";
274
+        domScript.src = url;
275
+        domScript.onload = domScript.onreadystatechange = function () {
276
+            if (!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState) {
277
+                this.onload = this.onreadystatechange = null;
278
+                this.parentNode.removeChild(this);
279
+            }
280
+        };
281
+        document.getElementsByTagName('head')[0].appendChild(domScript);
282
+    }
283
+};
284
+
285
+helper.masklayer = {
286
+    layer: null,
287
+    showcount: 0,
288
+    show: function () {
289
+        this.layer = document.getElementById("masklayer");
290
+        if (!this.layer) {
291
+            this.layer = document.createElement("div");
292
+            this.layer.id = "masklayer";
293
+            this.layer.className = "masklayer";
294
+            /*this.layer.style.position = "absolute";
295
+            this.layer.style.top = "0";
296
+            this.layer.style.left = "0";
297
+            this.layer.style.zIndex = 1000;
298
+            var width = Math.max(
299
+            Math.max(document.body.clientWidth, document.documentElement.clientWidth),
300
+            Math.max(document.body.scrollWidth, document.documentElement.scrollWidth)
301
+            );
302
+            var height = Math.max(
303
+            Math.max(document.body.clientHeight, document.documentElement.clientHeight),
304
+            Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
305
+            );
306
+            this.layer.style.width = width + "px";
307
+            this.layer.style.height = height + "px";*/
308
+            this.layer.innerHTML = "<iframe src='/blank.html' style='width:100%;height:100%;background-color:#fff;"
309
+                + "filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity: 0;opacity: 0;"
310
+                + "position:absolute;z-index:999;top:0;left:0;' frameborder='0'></iframe>"
311
+                + "<div style='width:100%;height:100%;position:absolute;top:0;left:0;z-index:1000;background:#000;"
312
+                + "filter:alpha(opacity=20);-moz-opacity:0.2;-khtml-opacity: 0.2;opacity: 0.2;'></div>";
313
+            document.body.appendChild(this.layer);
314
+        }
315
+        this.showcount++;
316
+    },
317
+    hide: function () {
318
+        if (--this.showcount == 0) {
319
+            if (this.layer && this.layer.parentNode) {
320
+                this.layer.parentNode.removeChild(this.layer);
321
+            }
322
+        }
323
+    },
324
+    moveToCenter: function (e, x, y) {
325
+        if (e.style.display == "none") e.style.display = "";
326
+        var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
327
+        var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
328
+        if (x > 0) { x += scrollLeft; } else x = parseInt((document.documentElement.clientWidth - e.clientWidth) / 2) + scrollLeft;
329
+        if (y > 0) { y += scrollTop; } else y = parseInt((document.documentElement.clientHeight - e.clientHeight) / 2) + scrollTop;
330
+        x = x < 0 ? 0 : x;
331
+        y = y < 50 ? 50 : y;
332
+        e.style.left = x + "px";
333
+        e.style.top = y + "px";
334
+    }
335
+};
336
+
337
+helper.filter = {
338
+    Transcoding: function (content) {
339
+        content = content.replace(/∞L/g, "<");
340
+        content = content.replace(/∞R/g, ">");
341
+        content = content.replace(/∞∴/g, "'");
342
+        content = content.replace(/∞≡/g, "#");
343
+        content = content.replace(/∞※/g, "\"");
344
+        return content;
345
+    }
346
+};
347
+function str2asc(strstr) {
348
+    return ("0" + strstr.charCodeAt(0).toString(16)).slice(-2);
349
+}
350
+helper.url = {
351
+    getpara: function (name) {
352
+        var val;
353
+        paras = window.location.search;
354
+        paras = paras.substr(1);
355
+        paraarray = paras.split("&");
356
+        for (i = 0; i < paraarray.length; i++) {
357
+            temp = paraarray[i].split("=");
358
+            if (temp[0] == name) {
359
+                val = temp[1];
360
+                break;
361
+            }
362
+        }
363
+        if (val == null || val == "") {
364
+            return "";
365
+        } else {
366
+            return val;
367
+        }
368
+    }
369
+};
370
+helper.sys = {
371
+    getElementsByClassName: function (pnode, className) {
372
+        var nodes = pnode.getElementsByTagName('*');
373
+        var elements = new Array();
374
+        for (var i = 0; i < nodes.length; i++) {
375
+            if (nodes[i].className == className) {
376
+                elements[elements.length] = nodes[i];
377
+            }
378
+        }
379
+        return elements;
380
+    },
381
+    removeElement: function (element) {
382
+        if (element && element.parentNode) {
383
+
384
+            element.parentNode.removeChild(element);
385
+            return true;
386
+        }
387
+        else {
388
+            return false;
389
+        }
390
+    }
391
+    ,
392
+    Return: function (url) {
393
+        top.location.href=url;
394
+    }
395
+};
396
+
397
+
398
+helper.DateFormat = {
399
+    d2s:
400
+        function (postdate) {
401
+            var second = 1000;
402
+            var minutes = second * 60;
403
+            var hours = minutes * 60;
404
+            var days = hours * 24;
405
+            var months = days * 30;
406
+            var twomonths = days * 365;
407
+            var myDate = new Date(Date.parse(postdate));
408
+            if (isNaN(myDate)) {
409
+                myDate = new Date(postdate.replace(/-/g, "/"));
410
+            }
411
+            var nowtime = new Date();
412
+            var longtime = nowtime.getTime() - myDate.getTime();
413
+            var showtime = 0;
414
+            if (longtime > months * 2) {
415
+                return postdate;
416
+            }
417
+            else if (longtime > months) {
418
+                return "1个月前";
419
+            }
420
+            else if (longtime > days * 7) {
421
+                return ("1周前");
422
+            }
423
+            else if (longtime > days) {
424
+                return (Math.floor(longtime / days) + "天前");
425
+            }
426
+            else if (longtime > hours) {
427
+                return (Math.floor(longtime / hours) + "小时前");
428
+            }
429
+            else if (longtime > minutes) {
430
+                return (Math.floor(longtime / minutes) + "分钟前");
431
+            }
432
+            else if (longtime > second) {
433
+                return (Math.floor(longtime / second) + "秒前");
434
+            } else {
435
+                return ("刚刚");
436
+            }
437
+        },
438
+    getPreMonth:
439
+    /**
440
+    * 获取上一个月
441
+    *
442
+    * @date 格式为yyyy-mm-dd的日期,如:2014-01-25
443
+    */
444
+        function (date) {
445
+            var arr = date.split('-');
446
+            var year = arr[0]; //获取当前日期的年份
447
+            var month = arr[1]; //获取当前日期的月份
448
+            var day = arr[2]; //获取当前日期的日
449
+            var days = new Date(year, month, 0);
450
+            days = days.getDate(); //获取当前日期中月的天数
451
+            var year2 = year;
452
+            var month2 = parseInt(month) - 1;
453
+            if (month2 == 0) {
454
+                year2 = parseInt(year2) - 1;
455
+                month2 = 12;
456
+            }
457
+            var day2 = day;
458
+            var days2 = new Date(year2, month2, 0);
459
+            days2 = days2.getDate();
460
+            if (day2 > days2) {
461
+                day2 = days2;
462
+            }
463
+            if (month2 < 10) {
464
+                month2 = '0' + month2;
465
+            }
466
+            var t2 = year2 + '-' + month2 + '-' + day2;
467
+            return t2;
468
+        },
469
+    getNextMonth:
470
+    /**
471
+    * 获取下一个月
472
+    *
473
+    * @date 格式为yyyy-mm-dd的日期,如:2014-01-25
474
+    */
475
+        function (date) {
476
+            var arr = date.split('-');
477
+            var year = arr[0]; //获取当前日期的年份
478
+            var month = arr[1]; //获取当前日期的月份
479
+            var day = arr[2]; //获取当前日期的日
480
+            var days = new Date(year, month, 0);
481
+            days = days.getDate(); //获取当前日期中的月的天数
482
+            var year2 = year;
483
+            var month2 = parseInt(month) + 1;
484
+            if (month2 == 13) {
485
+                year2 = parseInt(year2) + 1;
486
+                month2 = 1;
487
+            }
488
+            var day2 = day;
489
+            var days2 = new Date(year2, month2, 0);
490
+            days2 = days2.getDate();
491
+            if (day2 > days2) {
492
+                day2 = days2;
493
+            }
494
+            if (month2 < 10) {
495
+                month2 = '0' + month2;
496
+            }
497
+
498
+            var t2 = year2 + '-' + month2 + '-' + day2;
499
+            return t2;
500
+        },
501
+    getNowDate: function () {
502
+        var NowDate;
503
+        var myDate = new Date();
504
+        myDate.getYear();       //获取当前年份(2位)    
505
+        var YY = myDate.getFullYear();   //获取完整的年份(4位,1970-????)    
506
+        var MM = myDate.getMonth() + 1;       //获取当前月份(0-11,0代表1月)    
507
+        var DD = myDate.getDate();       //获取当前日(1-31)    
508
+        myDate.getDay();         //获取当前星期X(0-6,0代表星期天)    
509
+        myDate.getTime();       //获取当前时间(从1970.1.1开始的毫秒数)    
510
+        myDate.getHours();       //获取当前小时数(0-23)    
511
+        myDate.getMinutes();     //获取当前分钟数(0-59)    
512
+        myDate.getSeconds();     //获取当前秒数(0-59)    
513
+        myDate.getMilliseconds();   //获取当前毫秒数(0-999)    
514
+        myDate.toLocaleDateString();     //获取当前日期    
515
+        var mytime = myDate.toLocaleTimeString();     //获取当前时间    
516
+        myDate.toLocaleString();       //获取日期与时间    
517
+        NowDate = YY + "-" + MM + "-" + DD;
518
+
519
+        return NowDate;
520
+    }
521
+    ,
522
+    getFirstDayInCurrentMonth: function () {
523
+        var NowDate;
524
+        var myDate = new Date();
525
+        myDate.getYear();       //获取当前年份(2位)    
526
+        var YY = myDate.getFullYear();   //获取完整的年份(4位,1970-????)    
527
+        var MM = myDate.getMonth() + 1;       //获取当前月份(0-11,0代表1月)    
528
+        var DD = myDate.getDate();       //获取当前日(1-31)    
529
+        NowDate = YY + "-" + MM + "-1";
530
+
531
+        return NowDate;
532
+    }
533
+};
534
+helper.string = {
535
+    stringbuilder: function () {
536
+        this.arr = new Array();
537
+        this.append = function (str) {
538
+            this.arr.push(str);
539
+        };
540
+        this.tostring = function () {
541
+            return this.arr.join('');
542
+        };
543
+    }
544
+};
545
+helper.init = {
546
+    setajax: function (isload) { /// 配置AJAX
547
+        $(document).on("ajaxStart", function () {
548
+            if (isload) {
549
+                //加载框显示
550
+            }
551
+        }).on("ajaxSuccess", function (e, jqXHR, s, data) {
552
+            try {
553
+                if (s.type == "POST") {
554
+                    if (typeof (data)!='object') {
555
+                        data = $.parseJSON(data);
556
+                    }
557
+                }
558
+                if (s.type == "GET") {
559
+                    data = data
560
+                }
561
+                if (data.state.toLowerCase() == "notoken") {
562
+                    top.window.location.href = "/login.html";
563
+                    return;
564
+                }
565
+                if (data.state.toLowerCase() == "unauthorized") {
566
+                    layer.confirm(data.message, {
567
+                        btn: ['确定'] //按钮
568
+                    });
569
+                }
570
+                if (data.state.toLowerCase() == "error") {
571
+                    layer.confirm(data.message, {
572
+                        btn: ['确定'] //按钮
573
+                    });
574
+                }
575
+            } catch (e) {
576
+                if (isload) {
577
+                    //加载框消失
578
+                }
579
+            }
580
+        }).on("ajaxStop", function () {
581
+            if (isload) {
582
+                //加载框消失
583
+            }
584
+        })
585
+    },
586
+    setdh:function(){
587
+    	$(document).ready(function(){
588
+    		$("#ReIndex").click(function(){
589
+    			top.$("iframe:visible")[0].src = "widgets.html";
590
+    		})
591
+    	})
592
+    }
593
+}
594
+helper.init.setajax();
595
+helper.init.setdh();

+ 44 - 0
CallCenterWeb.UI/Script/Common/huayi.load.js

@@ -0,0 +1,44 @@
1
+var huayi = {};
2
+
3
+//huayi.local ={
4
+//    curWwwPath: window.document.location.href,
5
+//    pathName : window.document.location.pathname, 
6
+//    hostPath: window.document.location.href.substring(0, window.document.location.href.indexOf(window.document.location.pathname)) + window.document.location.pathname.substring(0, window.document.location.pathname.substr(1).indexOf('/') + 1)
7
+//};
8
+
9
+
10
+function GetPath() {
11
+    var curWwwPath = window.document.location.href;
12
+    //为了便于前端测试,便宜行事的解决方案
13
+    if (curWwwPath.indexOf("127.0.0.1")>0) {
14
+        var pathName = window.document.location.pathname;
15
+        var pos = curWwwPath.indexOf(pathName);
16
+        var localhostPaht = curWwwPath.substring(0, pos);
17
+        var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1);
18
+        var realPath = localhostPaht + projectName;
19
+        return realPath;
20
+    }
21
+    else {
22
+        return '';
23
+    }
24
+}
25
+
26
+
27
+var hostPath = GetPath();
28
+
29
+
30
+
31
+
32
+document.write(" <link href=\"" + hostPath + "/css/bootstrap.min14ed.css?v=3.3.6\" rel=\"stylesheet\" type=\"text/css\" />");
33
+document.write(" <link href=\"" + hostPath + "/css/boot/bootstrap-table.css\" rel=\"stylesheet\" type=\"text/css\" />");
34
+document.write(" <link href=\"" + hostPath + "/css/font-awesome.min93e3.css?v=4.4.0\" rel=\"stylesheet\" type=\"text/css\" />");
35
+document.write(" <link href=\"" + hostPath + "/css/animate.min.css\" rel=\"stylesheet\" type=\"text/css\" />");
36
+document.write(" <link href=\"" + hostPath + "/css/style.min862f.css?v=4.1.0\" rel=\"stylesheet\" type=\"text/css\" />");
37
+
38
+document.write(" <script language=\"javascript\" type=\"text/javascript\" src=\"" + hostPath + "/js/jquery.min.js?v=2.1.4\"></script>");
39
+document.write(" <script language=\"javascript\" type=\"text/javascript\" src=\"" + hostPath + "/js/jquery.cookie.js\"></script>");
40
+document.write(" <script language=\"javascript\" type=\"text/javascript\" src=\"" + hostPath + "/js/bootstrap.min.js?v=3.3.6\"></script>");
41
+document.write(" <script language=\"javascript\" type=\"text/javascript\" src=\"" + hostPath + "/js/bootstrap-table.js\"></script>");
42
+document.write(" <script language=\"javascript\" type=\"text/javascript\" src=\"" + hostPath + "/js/bootstrap-table-zh-CN.js\"></script>");
43
+document.write(" <script language=\"javascript\" type=\"text/javascript\" src=\"" + hostPath + "/css/layer/layer.js\"></script>");
44
+document.write(" <script language=\"javascript\" type=\"text/javascript\" src=\"" + hostPath + "/Script/Common/huayi.http.js\"></script>");

+ 7 - 0
CallCenterWeb.UI/Script/test.js

@@ -0,0 +1,7 @@
1
+function Login() {
2
+
3
+    //var ss = helper.http.get("http://localhost:61861/interface/GetData.asmx/GetData?P=CeShi/CS&r=1111" + Math.random());
4
+    var ss = helper.http.get("http://localhost:801/Home/ss");
5
+        alert(ss);
6
+
7
+}

+ 292 - 0
CallCenterWeb.UI/ShuJuDuiBi.html

@@ -0,0 +1,292 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="utf-8">
6
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+		<script src="Script/Common/huayi.load.js"></script>
8
+    	<script src="Script/Common/huayi.config.js"></script>
9
+		<title>呼叫数据对比</title>
10
+		<!--[if lt IE 9]>
11
+    <meta http-equiv="refresh" content="0;ie.html" />
12
+    <![endif]-->
13
+		<link href="./css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet">
14
+		<link href="./css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
15
+		<link href="./css/animate.min.css" rel="stylesheet">
16
+		<link href="./css/style.min862f.css?v=4.1.0" rel="stylesheet">
17
+		<link rel="stylesheet" href="./css/laydate/need/laydate.css" />
18
+		<link rel="stylesheet" href="./css/init.css" />
19
+		<style type="text/css">
20
+			.shuju-top{
21
+				font-size: 12px;
22
+			}
23
+			.shuju-top {
24
+				background: #f3f3f4;
25
+				height: 60px;
26
+				padding: 10px 20px;
27
+			}
28
+			
29
+			.shuju-top .topCon select {
30
+				padding: 2px;
31
+				height: 28px;
32
+				border: 1px solid #ebebeb;
33
+				color: #1ab394;
34
+				outline: none;
35
+				vertical-align: middle;
36
+			}
37
+			.topCon {
38
+				float: right;
39
+				margin-right: 20px;
40
+			}
41
+			
42
+			.shuju-con {
43
+				width: 90%;
44
+				height: 600px;
45
+				margin: 20px auto;
46
+			}
47
+		</style>
48
+	</head>
49
+
50
+	<body class="gray-bg" style="background: #fefefe;">
51
+		<div class="daoHang clearfix">
52
+				<div class="dhLeft">
53
+					<sapn><i class="syIcon"></i>位置:<a id="ReIndex" href="javaScript:;">首页</a>&gt;<a href="javaScript:;">报表分析</a>&gt;<a href="javaScript:;">话务运营分析</a>&gt;<a href="" class="nowPosition">总呼数据图形分析</a></sapn>
54
+				</div>
55
+				
56
+				<div class="dhRight">
57
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
58
+            	</div>
59
+			</div>
60
+		<div class="shuju-top">
61
+			<div class="topCon">
62
+				选择年份:
63
+				<select name="" id="first">
64
+					<option value="0">请选择</option>
65
+					<option value="2009">2009</option>
66
+					<option value="2010">2010</option>
67
+					<option value="2011">2011</option>
68
+					<option value="2012">2012</option>
69
+					<option value="2013">2013</option>
70
+					<option value="2014">2014</option>
71
+					<option value="2015">2015</option>
72
+					<option value="2016" selected="selected">2016</option>
73
+					<option value="2017">2017</option>
74
+					<option value="2018">2018</option>
75
+					<option value="2019">2019</option>
76
+					<option value="2020">2020</option>
77
+					<option value="2021">2021</option>
78
+					<option value="2022">2022</option>
79
+					<option value="2023">2023</option>
80
+					<option value="2024">2024</option>
81
+					<option value="2025">2025</option>
82
+					<option value="2026">2026</option>
83
+					<option value="2027">2027</option>
84
+					<option value="2028">2028</option>
85
+					<option value="2029">2029</option>
86
+					<option value="2030">2030</option>
87
+				</select>
88
+				对比:
89
+				<select name="" id="last">
90
+					<option value="0">请选择</option>
91
+					<option value="2009">2009</option>
92
+					<option value="2010">2010</option>
93
+					<option value="2011">2011</option>
94
+					<option value="2012">2012</option>
95
+					<option value="2013">2013</option>
96
+					<option value="2014">2014</option>
97
+					<option value="2015">2015</option>
98
+					<option value="2016">2016</option>
99
+					<option value="2017" selected="selected">2017</option>
100
+					<option value="2018">2018</option>
101
+					<option value="2019">2019</option>
102
+					<option value="2020">2020</option>
103
+					<option value="2021">2021</option>
104
+					<option value="2022">2022</option>
105
+					<option value="2023">2023</option>
106
+					<option value="2024">2024</option>
107
+					<option value="2025">2025</option>
108
+					<option value="2026">2026</option>
109
+					<option value="2027">2027</option>
110
+					<option value="2028">2028</option>
111
+					<option value="2029">2029</option>
112
+					<option value="2030">2030</option>
113
+				</select>
114
+				<button class="btns sear">搜索</button>
115
+				<a class="btns export">导出</a>
116
+			</div>
117
+		</div>
118
+		<div class="shuju-con">
119
+			<h2 style="text-align: center;font-size: 18px;">呼叫数据对比</h2>
120
+			<div id="hjCompaer" style="height: 100%;width: 100%;"></div>
121
+		</div>
122
+
123
+		<script src="./js/jquery.min.js?v=2.1.4"></script>
124
+		<script src="./js/bootstrap.min.js?v=3.3.6"></script>
125
+		<script src="./js/jquery.cookie.js"></script>
126
+		<script src="./css/laydate/laydate.js"></script>
127
+		<script src="./js/echarts.common.min.js"></script>
128
+
129
+		<script>
130
+			
131
+			$(function() {
132
+				var token = $.cookie("token");
133
+				var beginyear,//开始年份
134
+				    endyear,//结束年份
135
+				    hjCompaer,//图形
136
+                    legendCon;//图形legend
137
+			$(document).ready(function(){
138
+				hjCompaer = echarts.init(document.getElementById('hjCompaer'));
139
+				option = {
140
+					tooltip: {
141
+						trigger: 'axis',
142
+					},
143
+					legend: {
144
+						data: legendCon,
145
+						bottom: 0
146
+					},
147
+					xAxis: [{
148
+						type: 'category',
149
+						data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
150
+						axisPointer: {
151
+							type: ''
152
+						}
153
+					}],
154
+					yAxis: [{
155
+							type: 'value',
156
+							name: '电话数量',
157
+							nameLocation:'middle',
158
+							nameGap:40,
159
+							min: 0,
160
+							max: 500,
161
+							interval: 50,
162
+							axisLabel: {
163
+								formatter: '{value} '
164
+							}
165
+
166
+						},
167
+						{
168
+							type: 'value',
169
+							name: '百分比',
170
+							nameLocation:'middle',
171
+							nameGap:35,
172
+							min: 0,
173
+							max: 100,
174
+							interval: 10,
175
+							axisLabel: {
176
+								formatter: '{value} '
177
+							}
178
+						}
179
+					],
180
+					series: [{
181
+							name:'',
182
+							type: 'bar',
183
+							data: []
184
+						},
185
+						{
186
+							name: '',
187
+							type: 'bar',
188
+							data: []
189
+						},
190
+						{
191
+							name: '',
192
+							type: 'line',
193
+							data: []
194
+						},
195
+						{
196
+							name: '',
197
+							type: 'bar',
198
+							data: []
199
+						},
200
+						{
201
+							name: '',
202
+							type: 'bar', 
203
+							yAxisIndex: 1,
204
+							data: []
205
+						},
206
+						{
207
+							name: '',
208
+							type: 'line',
209
+							yAxisIndex: 1,
210
+							data: []
211
+						}
212
+					],
213
+					color: ['#1ab394', '#adcbfd', '#fbbe5b', '#f26ea2', '#88ebc4', '#fa957f']
214
+				};
215
+				hjCompaer.setOption(option);
216
+			});
217
+			      //搜索事件
218
+			        $(".sear").click(function(){
219
+				         beginyear=$('#first').val();
220
+						 endyear=$('#last').val();
221
+//						 console.log(beginyear);
222
+//						 console.log(endyear);
223
+						 if(beginyear==''||endyear==''){
224
+						 	  layer.confirm('请选择对比时间!', {
225
+                            btn: ['确定']
226
+                        });
227
+                        return;
228
+						 }else if(beginyear==endyear){
229
+						 	  layer.confirm('请选择不同的对比年份!', {
230
+                            btn: ['确定']
231
+                        });
232
+                        return;
233
+						 }else{
234
+						 		Ajax(beginyear,endyear);
235
+			      	    hjCompaer.setOption(option);
236
+						 }
237
+				      
238
+			        });
239
+			        
240
+			        function Ajax(beginyear,endyear){
241
+			        	var arr=[];
242
+			        	var allData=[];
243
+			        	$.ajax({
244
+			        		type:'get',
245
+			        		url:huayi.config.callcenter_url+'YearContrast/GetDataList',
246
+			        		dataType:'json',
247
+			        		data:{
248
+			        			token:token,
249
+			        			beginyear:beginyear,
250
+			        			endyear:endyear
251
+			        		},
252
+		        	    	async:false,
253
+			        		success:function(res){
254
+			        			var content=res.data;
255
+		        			   
256
+			        			$.each(content, function(index,ele) {
257
+			        				arr.push(content[index].key)
258
+			        				allData.push(content[index].value)
259
+			        				//console.log(allData);
260
+			        			});
261
+			        		}
262
+			        	});
263
+			        	legendCon=arr;
264
+			        	seriesData=allData;
265
+			        	//console.log(legendCon);
266
+			        	option.legend.data=legendCon;//图例
267
+			        	option.series[0].name=legendCon[0];//图例
268
+			        	//添加数据name
269
+			        	for(var i=0;i<legendCon.length;i++){
270
+			        		option.series[i].name=legendCon[i];
271
+			        	}
272
+			        	//添加图形数据
273
+			        	for(var j=0;j<seriesData.length;j++){
274
+			        		option.series[j].data=seriesData[j];
275
+			        	}
276
+			        }
277
+			    	
278
+              //导出功能
279
+              	$('.export').click(function() {
280
+					dcexcel(this);
281
+				})
282
+		   function dcexcel(obj) {
283
+            var url = huayi.config.callcenter_url + "YearContrast/ExptList?token=" + $.cookie("token");
284
+                url += "&beginyear=" + $("#first").val() + "&endyear=" + $("#last").val();
285
+                obj.href = url;
286
+       		 }
287
+		
288
+			});
289
+		</script>
290
+	</body>
291
+
292
+</html>

+ 29 - 0
CallCenterWeb.UI/SysConfig/1.json

@@ -0,0 +1,29 @@
1
+[
2
+	{
3
+	"Ld":"15938076880",
4
+	"Ltime":"1212",
5
+	"Hf":"1212",
6
+	"Liuyan":"1213"
7
+	},
8
+	{
9
+	"Ld":"15938076880",
10
+	"Ltime":"1212",
11
+	"Hf":"1212",
12
+	"Liuyan":"1213"
13
+	
14
+	},
15
+	{
16
+	"Ld":"15938076880",
17
+	"Ltime":"1212",
18
+	"Hf":"1212",
19
+	"Liuyan":"1213"
20
+	
21
+	},
22
+	{
23
+	"Ld":"15938076880",
24
+	"Ltime":"1212",
25
+	"Hf":"1212",
26
+	"Liuyan":"1213"
27
+	
28
+	}
29
+ ]

+ 5 - 0
CallCenterWeb.UI/SysConfig/Services.config

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="utf-8" ?>
2
+<Services>
3
+  <ApiDomain>http://localhost:801/</ApiDomain>
4
+  <Keys>LYYU80DV3465QSF1</Keys>
5
+</Services>

+ 598 - 0
CallCenterWeb.UI/SystemManager/MenuManage.html

@@ -0,0 +1,598 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+    <meta charset="UTF-8">
5
+    <script src="../Script/Common/huayi.load.js"></script>
6
+    <script src="../Script/Common/huayi.config.js"></script>
7
+    <link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
8
+    <link rel="stylesheet" href="../css/init.css" />
9
+    <link href="./css/buMenManger.css" rel="stylesheet" />
10
+    <title>系统管理-->菜单设置</title>
11
+    <style>
12
+    	.boxCon table th {
13
+    width: 42%;
14
+}
15
+    </style>
16
+</head>
17
+<body>
18
+    <div class="container-fluid">
19
+        <div class="daoHang clearfix">
20
+            <div class="dhLeft">
21
+                <sapn><i class="syIcon"></i>位置:<a id="ReIndex" href="javaScript:;">首页</a>&gt;<a href="javaScript:;">系统管理</a>&gt;<a href="javaScript:;">权限管理</a>&gt;<a href="" style="color: #000;">菜单设置</a></sapn>
22
+            </div>
23
+        </div>
24
+        <div class="toolBar">
25
+            <button class="btns add">添加</button>
26
+            <button class="btns change">修改</button>
27
+            <button class="btns del">删除</button>
28
+        </div>
29
+        <div class="tree">
30
+            <ul id="treeDemo" class="ztree">
31
+                <!--类名为ztree是必须的-->
32
+            </ul>
33
+        </div>
34
+
35
+    </div>
36
+    <!--添加弹出内容-->
37
+    <div class="model addModel">
38
+        <div class="box">
39
+            <div class="btop clearfix">
40
+                <p class="btl"><span>添加</span>&nbsp;&lfloor;&nbsp;&nbsp;<span class="tps" style="color: red;"></span>&nbsp;&nbsp;&rceil;&nbsp;部门</p>
41
+                <p class="btr addBtr" title="关闭">X</p>
42
+            </div>
43
+            <div class="boxCon">
44
+            	<table>
45
+            		<tbody>
46
+            			<tr>
47
+            				<th>父级分类:</th>
48
+            				<td>
49
+            					<div class="inpBox">
50
+			                        <input type="text" class="inps inps1" />
51
+			                        <i class="xl xl_one"></i>
52
+			                        <div class="addTree xlAdd">
53
+			                            <ul id="addTreeDemo" class="ztree"></ul>
54
+	                       		 </div>
55
+                   				</div>
56
+            				</td>
57
+            			</tr>
58
+            			<!--<tr>
59
+            				<th>添加类型:</th>
60
+            				<td>
61
+            					<select class="inpBox inps2" id="selecttype">
62
+			                        <option value="0">菜单</option>
63
+			                        <option value="1">页面</option>
64
+			                        <option value="2">权限</option>
65
+			                    </select>
66
+            				</td>
67
+            			</tr>-->
68
+            			<tr>
69
+            				<th>名    称:</th>
70
+            				<td>
71
+            					<input class="inps inps3" type="text" />
72
+            				</td>
73
+            			</tr>
74
+            			<tr>
75
+            				<th>代    码:</th>
76
+            				<td>
77
+            					<input class="inps inps4" type="text" />
78
+            				</td>
79
+            			</tr>
80
+            			<tr>
81
+            				<th>菜单链接:</th>
82
+            				<td>
83
+            					<input class="inps inps5" type="text" />
84
+            				</td>
85
+            			</tr>
86
+            			<tr>
87
+            				<th>是否启用:</th>
88
+            				<td>
89
+            					<input class="inps7" type="checkbox" />
90
+            				</td>
91
+            			</tr>
92
+            			<tr>
93
+            				<th>备    注:</th>
94
+            				<td>
95
+            					<input class="inps inps8" type="text" />
96
+            				</td>
97
+            			</tr>
98
+            			<tr>
99
+            				<th>排序编码:</th>
100
+            				<td>
101
+            					<input class="inps inps9" type="text" />
102
+            				</td>
103
+            			</tr>
104
+            			<tr>
105
+            				<!--<th>排序编码:</th>-->
106
+            				<td colspan="2" style="text-align: center;">
107
+            					<button class="btns addCun">保存</button>
108
+            				</td>
109
+            			</tr>
110
+            		</tbody>
111
+            	</table>
112
+            </div>
113
+        </div>
114
+
115
+    </div>
116
+    <!--删除弹出内容-->
117
+    <div class="model delModel">
118
+        <div class="box">
119
+            <div class="btop clearfix">
120
+                <p class="btl"><span>删除提示</span></p>
121
+                <p class="btr delBtr" title="关闭">X</p>
122
+            </div>
123
+            <div class="boxCon" style="height: 150px;">
124
+                您确定删除&nbsp;&lfloor;&nbsp;&nbsp;<span class="delName" style="color: red;"></span>&nbsp;&nbsp;&rceil;&nbsp;?
125
+
126
+                <p style="margin-top: 30px;">
127
+                    <button class="btns sure">确定</button>
128
+                    <button class="btns return">取消</button>
129
+                </p>
130
+                <!--<p style="color: red;">注:若该分类下包含知识库内容会一并删除</p>-->
131
+            </div>
132
+
133
+        </div>
134
+
135
+    </div>
136
+    <!--修改弹出内容-->
137
+    <div class="model changeModel">
138
+        <div class="box">
139
+            <div class="btop clearfix">
140
+                <p class="btl"><span>修改</span>&nbsp;&lfloor;&nbsp;&nbsp;<span class="tps chtps" style="color: red;"></span>&nbsp;&nbsp;&rceil;&nbsp;栏目</p>
141
+                <p class="btr changeBtr" title="关闭">X</p>
142
+            </div>
143
+            <div class="boxCon">
144
+            	<table>
145
+            		<tbody>
146
+            			<tr>
147
+            				<th> 父级分类:</th>
148
+            				<td> 
149
+            					<div class="inpBox">
150
+                        <input type="text" class="inps inps1_chg" />
151
+                        <i class="xl xl_one"></i>
152
+                        <div class="addTree xlAdd">
153
+                            <ul id="changeTreeDemo" class="ztree"></ul>
154
+                        </div>
155
+                    </div></td>
156
+            			</tr>
157
+            			<!--<tr>
158
+            				<th>
159
+            					修改类型:
160
+            				</th>
161
+            				<td>
162
+            					    <select class="inpBox inps2_chg" id="selecttype">
163
+                        <option value="0">菜单</option>
164
+                        <option value="1">页面</option>
165
+                        <option value="2">权限</option>
166
+                    </select>
167
+            				</td>
168
+            			</tr>-->
169
+            			<tr>
170
+            				<th>
171
+            					名    称:
172
+            				</th>
173
+            				<td>
174
+            					<input class="inps inps3_chg" type="text" />
175
+            				</td>
176
+            			</tr>
177
+            			<tr>
178
+            				<th>
179
+            					代    码:
180
+            				</th>
181
+            				<td>
182
+            					<input class="inps inps4_chg" type="text" />
183
+            				</td>
184
+            			</tr>
185
+            			<tr>
186
+            				<th>
187
+            					菜单链接:
188
+            				</th>
189
+            				<td>
190
+            					<input class="inps inps5_chg" type="text" />
191
+            				</td>
192
+            			</tr>
193
+            			<tr>
194
+            				<th>
195
+            					是否启用:
196
+            				</th>
197
+            				<td>
198
+            					<input class="inps7_chg" type="checkbox" />
199
+            				</td>
200
+            			</tr>
201
+            			<tr>
202
+            				<th>
203
+            					备    注:
204
+            				</th>
205
+            				<td>
206
+            					<input class="inps inps8_chg" type="text" />
207
+            				</td>
208
+            			</tr>
209
+            			<tr>
210
+            				<th>
211
+            					排序编码:
212
+            				</th>
213
+            				<td>
214
+            					<input class="inps inps9_chg" type="text" />
215
+            				</td>
216
+            			</tr>
217
+            			<tr>
218
+            				<td colspan="2" style="text-align: center;">
219
+            					<button class="btns changeCun">保存</button>
220
+            				</td>
221
+            			</tr>
222
+            		</tbody>
223
+            	</table>
224
+            	
225
+            </div>
226
+        </div>
227
+
228
+    </div>
229
+
230
+    <script src="../js/jquery.min.js?v=2.1.4"></script>
231
+    <script src="../js/bootstrap.min.js"></script>
232
+    <script src="../js/zTree/jquery.ztree.core.js"></script>
233
+    <script src="../js/jquery.cookie.js"></script>
234
+    <script>
235
+        var tps = $('.tps');
236
+        var id = ''; //当前节点id
237
+        var name; //当前节点name
238
+        var pid; //当前节点父ID
239
+        var pidName;//
240
+        var xlName; //添加弹出框内下拉框内节点name
241
+        var token = $.cookie("token");
242
+        tree();
243
+
244
+        function tree() {
245
+            $.get(huayi.config.callcenter_url + 'ModuleInfo/GetTreeList', {
246
+                "token": $.cookie("token")
247
+            }, function (result) {
248
+                result = $.parseJSON(result);
249
+                $.fn.zTree.init($("#treeDemo"), setting1, result.data); //实例化树形图
250
+            });
251
+        }
252
+
253
+        var setting1 = {
254
+            data: {
255
+                key: {
256
+                    name: "text"
257
+                },
258
+                simpleData: {
259
+                    enable: true,
260
+                    idKey: "id",
261
+                    rootPId: 0
262
+                }
263
+            },
264
+            callback: {
265
+                onClick: zTreeOnClick
266
+            }
267
+        };
268
+
269
+        function zTreeOnClick(event, treeId, treeNode) {
270
+            id = treeNode.id;
271
+            name = treeNode.text;
272
+            var parent = treeNode.getParentNode();
273
+            if (parent) {
274
+                pidName = parent.text;
275
+                pid = parent.id;
276
+            } else {
277
+                pidName = "顶级分类";
278
+                pid = 0;
279
+            }
280
+        };
281
+        var setting2 = {
282
+            data: {
283
+                key: {
284
+                    name: "text"
285
+                },
286
+                simpleData: {
287
+                    enable: true,
288
+                    idKey: "id",
289
+                    rootPId: 0
290
+                }
291
+            },
292
+            callback: {
293
+                onClick: addTreeClick
294
+            }
295
+        }
296
+
297
+        function addTreeClick(event, treeId, treeNode) {
298
+            addPid = treeNode.id;
299
+            console.log(addPid);
300
+            xlName = treeNode.text;
301
+            $('.inps1').val(xlName);
302
+
303
+        };
304
+        //删除按钮
305
+        $('.del').click(function () {
306
+            if (id == 'null' || id == '') {
307
+                layer.confirm('没有要删除的分类!', {
308
+                    btn: ['确定']
309
+                });
310
+                return
311
+            } else {
312
+                $('.delModel').css('display', 'block');
313
+                $('.delName').html(name);
314
+            }
315
+        })
316
+        //关闭按钮
317
+        $('.delBtr').click(function () {
318
+            $('.delModel').css('display', 'none');
319
+        })
320
+        //确定删除按钮
321
+        $('.sure').click(function () {
322
+            $.ajax({
323
+                type: "post",
324
+                url: huayi.config.callcenter_url + "ModuleInfo/DelModule",
325
+                async: true,
326
+                dataType: 'json',
327
+                data: {
328
+                    ids: id,
329
+                    token: token
330
+                },
331
+                success: function (data) {
332
+                    if (data.state == "success") {
333
+                        layer.msg("删除成功!");
334
+                        tree();
335
+                    }
336
+                }
337
+            });
338
+            $('.delModel').css('display', 'none');
339
+
340
+        })
341
+        //取消删除按钮
342
+        $('.return').click(function () {
343
+            $('.delModel').css('display', 'none');
344
+        })
345
+
346
+        //添加按钮
347
+        $('.add').click(function () {
348
+            $('.addModel').css('display', 'block');
349
+            if (pidName) {
350
+                tps.html(name);
351
+                $('.inps1').val(name);
352
+                addPid = id;
353
+            } else {
354
+                tps.html('顶级分类');
355
+                $('.inps1').val('顶级分类');
356
+                addPid = 0;
357
+            }
358
+            treeCont();
359
+
360
+        })
361
+        //添加关闭按钮
362
+        $('.addBtr').click(function () {
363
+            $('.addModel').css('display', 'none');
364
+        })
365
+        //添加内容下拉
366
+        $('.inps1').focus(function () {
367
+            $('.xlAdd').css('display', 'block')
368
+        })
369
+        $('.xl_one').click(function () {
370
+            if ($('.xlAdd').css('display') == 'block') {
371
+                $('.xlAdd').css('display', 'none')
372
+            } else {
373
+                $('.xlAdd').css('display', 'block')
374
+            }
375
+        })
376
+        $('.addTree').mouseleave(function () {
377
+            $(this).css('display', 'none')
378
+        })
379
+        //保存添加按钮
380
+        var addPid, addDeptname, addSort;
381
+        //添加弹出框内 所属部门下拉框内数据
382
+        function treeCont() {
383
+            $.get(huayi.config.callcenter_url + 'ModuleInfo/GetTreeList', {
384
+                "token": $.cookie("token")
385
+            }, function (result) {
386
+                result = $.parseJSON(result);
387
+                $.fn.zTree.init($("#addTreeDemo"), setting2, result.data); //实例化树形图
388
+            });
389
+
390
+        }
391
+        $('.addCun').click(function () {
392
+            //				console.log(addPid);
393
+            //if ($('.inps2').val() == "" || $('.inps3').val() == "") {
394
+            //    if (did.length <= 0) {
395
+            //        layer.confirm('所添加内容不能为空!', {
396
+            //            btn: ['确定']
397
+            //        });
398
+            //        return;
399
+            //    }
400
+            //} else {
401
+
402
+            addName = $('.inps3').val();
403
+            addCode = $('.inps4').val();
404
+            addUrl = $(".inps5").val();
405
+            addState = $('.inps7').prop('checked');
406
+            addRemark = $('.inps8').val();
407
+            addSort = $('.inps9').val();
408
+            $('.addModel').css('display', 'none');
409
+            $.ajax({
410
+                type: "post",
411
+                url: huayi.config.callcenter_url + "ModuleInfo/AddModule",
412
+                dataType: 'json',
413
+                async: true,
414
+                data: {
415
+                    parentid: id,//当前选择节点ID
416
+                    code: addCode,
417
+                    name: addName,//部门名称
418
+                    url: addUrl,
419
+                    flag: addState,
420
+                    remark: addRemark,
421
+                    sort: addSort,//排列序号
422
+                    token: token
423
+                },
424
+                success: function (data) {
425
+                    //					console.log(data)
426
+                    //					console.log(data.state);
427
+                    if (data.state == "success") {
428
+                        layer.msg("添加成功!");
429
+                        tree();
430
+
431
+                    }
432
+                }
433
+
434
+            });
435
+
436
+            //}
437
+        })
438
+
439
+        //修改按钮
440
+        var chanPid, //修改弹出框内 下拉框父节点ID
441
+            chanId, //修改弹出框内 下拉框当前节点ID
442
+            changeName, //修改弹出框内 下拉框当前节点name
443
+            chbcName, //保存的部门名称
444
+            chbcSort, //保存的排序号
445
+            chbcPid; //保存的所属部门ID
446
+        $('.change').click(function () {
447
+            if (id == 'null' || id == '') {
448
+                layer.confirm('没有选择要修改的部门!', {
449
+                    btn: ['确定']
450
+                })
451
+                return
452
+            } else {
453
+                changeAjax(id);
454
+                $('.changeModel').css('display', 'block');
455
+                $('.chtps').html(name);
456
+                changeTreeCont();
457
+            }
458
+
459
+        });
460
+        //关闭按钮
461
+        $('.changeBtr').click(function () {
462
+            $('.changeModel').css('display', 'none');
463
+        });
464
+        $('.inps4').focus(function () {
465
+            $('.xlChange').css('display', 'block')
466
+        })
467
+        //下拉按钮功能
468
+        $('.xl_two').click(function () {
469
+            if ($('.xlChange').css('display') == 'block') {
470
+                $('.xlChange').css('display', 'none')
471
+            } else {
472
+                $('.xlChange').css('display', 'block')
473
+            }
474
+        })
475
+        //修改弹出框内 下拉树形图参数配置项
476
+        var setting3 = {
477
+            data: {
478
+                key: {
479
+                    name: "text"
480
+                },
481
+                simpleData: {
482
+                    enable: true,
483
+                    idKey: "id",
484
+                    rootPId: 0
485
+                }
486
+            },
487
+            callback: {
488
+                onClick: changeTreeClick
489
+            }
490
+        }
491
+
492
+        function changeTreeClick(event, treeId, treeNode) {
493
+            //		chanPid = treeNode.pId;
494
+            chanId = treeNode.id;
495
+            changeName = treeNode.text;
496
+            $('.inps1_chg').val(changeName);
497
+            var pidnode = treeNode.getParentNode();
498
+            if (pidnode) {
499
+                chanPid = pidnode.id;
500
+                $('.inps1_chg').val(changeName);
501
+            } else {
502
+                chanPid = 0;
503
+            }
504
+        };
505
+
506
+        //修改弹出框内 所属部门下拉框内数据
507
+        function changeTreeCont() {
508
+            $.get(huayi.config.callcenter_url + 'ModuleInfo/GetTreeList', {
509
+                token: token
510
+            }, function (result) {
511
+                result = $.parseJSON(result);
512
+                $.fn.zTree.init($("#changeTreeDemo"), setting3, result.data); //实例化树形图
513
+            });
514
+        }
515
+
516
+        function changeAjax(id) {
517
+            $.ajax({
518
+                type: "get",
519
+                url: huayi.config.callcenter_url + "ModuleInfo/GetModule",
520
+                dataType: 'json',
521
+                async: true,
522
+                data: {
523
+                    mId: id,
524
+                    token: token
525
+                },
526
+                success: function (res) {
527
+                    var data = res.data;
528
+                    if (pid == null) {
529
+                        pid == 0;
530
+                        $('.inps1_chg').val('顶级分类');
531
+                        chbcPid == 0;
532
+                    } else {
533
+                        $('.inps1_chg').val(pidName);
534
+                        chbcPid = pid;
535
+                    }
536
+                    $('.inps3_chg').val(data.name);
537
+                    $('.inps4_chg').val(data.code);
538
+                    $('.inps5_chg').val(data.url);
539
+                    if (data.enable == 1) { $('.inps7_chg').prop("checked", "checked"); }
540
+                    $('.inps8_chg').val(data.remark);
541
+                    $('.inps9_chg').val(data.sort);
542
+                }
543
+            });
544
+        }
545
+        //修改的保存按钮功能
546
+        function changeBaoCunAjax() {
547
+            var chgName = $('.inps3_chg').val();
548
+            var chgCode = $('.inps4_chg').val();
549
+            var chgUrl = $(".inps5_chg").val();
550
+            var chgState = $('.inps7_chg').prop('checked');
551
+            var chgRemark = $('.inps8_chg').val();
552
+            var chgSort = $('.inps9_chg').val();
553
+            $.ajax({
554
+                type: "post",
555
+                url: huayi.config.callcenter_url + "ModuleInfo/EditModule",
556
+                async: true,
557
+                dataType: 'json',
558
+                data: {
559
+                    id: id,
560
+                    parentid: chanId,//当前选择节点ID
561
+                    code: chgCode,
562
+                    name: chgName,//部门名称
563
+                    url: chgUrl,
564
+                    flag: chgState,
565
+                    remark: chgRemark,
566
+                    sort: chgSort,//排列序号
567
+                    token: token
568
+                },
569
+                success: function (data) {
570
+                    if (data.state == "success") {
571
+                        layer.msg("修改成功!");
572
+                        tree();
573
+                    }
574
+                }
575
+            });
576
+        }
577
+
578
+        $('.changeCun').click(function () {
579
+            //if ($('.inps4').val() == "" || $('.inps5').val() == "" || $('.inps6').val() == "") {
580
+            //    layer.confirm('所修改内容不允许为空!', {
581
+            //        btn: ['确定']
582
+            //    });
583
+            //    return;
584
+            //} else {
585
+            $('.changeModel').css('display', 'none');
586
+            console.log('部门id' + id + '所属部门id' + chbcPid + '部门名称' + chbcName + '排序' + chbcSort);
587
+            chbcPid;
588
+            chbcName = $('.inps5').val();
589
+            chbcSort = $('.inps6').val();
590
+            changeBaoCunAjax(id, chbcPid, chbcName, chbcSort);
591
+            //}
592
+
593
+        })
594
+
595
+    </script>
596
+</body>
597
+
598
+</html>

+ 100 - 0
CallCenterWeb.UI/SystemManager/SeatAuthorizationManage.html

@@ -0,0 +1,100 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+    <meta charset="UTF-8">
5
+    <script src="../Script/Common/huayi.load.js"></script>
6
+    <script src="../Script/Common/huayi.config.js"></script>
7
+    <link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
8
+    <link rel="stylesheet" href="../css/init.css" />
9
+    <link href="./css/buMenManger.css" rel="stylesheet" />
10
+    <title>系统管理-->坐席授权设置</title>
11
+    <style>
12
+        .btn{padding:3px 6px!important;}
13
+        .inps{padding:4px 6px!important; border:#ccc 1px solid; height:26px; border-radius:3px}
14
+    </style>
15
+</head>
16
+<body>
17
+    <div class="container-fluid">
18
+        <div class="daoHang clearfix">
19
+            <div class="dhLeft">
20
+                <sapn><i class="syIcon"></i>位置:<a id="ReIndex" href="javaScript:;">首页</a>&gt;<a href="javaScript:;">系统管理</a>&gt;<a href="javaScript:;">权限管理</a>&gt;<a href="" style="color: #000;">坐席授权</a></sapn>
21
+            </div>
22
+        </div>
23
+        <div class="toolBar">
24
+            坐席授权设置
25
+        </div>
26
+        <div>
27
+            <input type="text" id="txtmaxseat" class="inps"/>
28
+            <input type="hidden" id="hidSecurityKey" class="inps"/>
29
+            <button class="btn updatechange">保存</button> <span id="hidtxt" style="color:#f00;"></span>
30
+        </div>
31
+        <div class="tree">
32
+            <ul id="treeDemo" class="ztree">
33
+                <!--类名为ztree是必须的-->
34
+            </ul>
35
+        </div>
36
+
37
+    </div>
38
+
39
+    <script>
40
+        var token = $.cookie("token");
41
+        $(function () {
42
+            getinfo();
43
+            //按钮
44
+            $('.updatechange').click(function () {
45
+                updateInfo();
46
+            })
47
+        })
48
+        function getinfo() {
49
+            $.ajax({
50
+                type: "get",
51
+                url: huayi.config.callcenter_url + "SysConfig/GetSeatPermissionInfo",
52
+                dataType: 'json',
53
+                async: true,
54
+                data: { token: token },
55
+                success: function (res) {
56
+                    var data = res.data;
57
+                    if (data != "{}") {
58
+                        $("#txtmaxseat").val(data.F_MaxSeat);
59
+                        $("#hidSecurityKey").val(data.F_SecurityKey);
60
+                        $("#hidtxt").text("");
61
+                    }
62
+                }
63
+            });
64
+        };
65
+        //修改的保存按钮功能
66
+        function updateInfo() {
67
+            var maxseat = $("#txtmaxseat").val();
68
+            var SecurityKey = $("#hidSecurityKey").val();
69
+            if (isNaN(maxseat)) {
70
+                layer.msg("请填写正确的坐席数!");
71
+            }
72
+            $.ajax({
73
+                type: "post",
74
+                url: huayi.config.callcenter_url + "SysConfig/SaveSeatPermission",
75
+                async: true,
76
+                dataType: 'json',
77
+                data: {
78
+                    F_MaxSeat: maxseat == "" ? 0 : maxseat,
79
+                    F_SecurityKey: SecurityKey,
80
+                    token: token
81
+                },
82
+                success: function (data) {
83
+                    if (data.state == "success") {
84
+                        getinfo();
85
+                        $("#hidtxt").text("");
86
+                        layer.msg("修改成功!");
87
+                    } else {
88
+                        $("#hidtxt").text("请填写坐席数");
89
+                    }
90
+                }
91
+            });
92
+        };
93
+    </script>
94
+</body>
95
+
96
+</html>
97
+<script src="../js/jquery.min.js?v=2.1.4"></script>
98
+<script src="../js/bootstrap.min.js"></script>
99
+<script src="../js/zTree/jquery.ztree.core.js"></script>
100
+<script src="../js/jquery.cookie.js"></script>

+ 111 - 0
CallCenterWeb.UI/SystemManager/buMenManger.html

@@ -0,0 +1,111 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<script src="../Script/Common/huayi.load.js"></script>
7
+   		<script src="../Script/Common/huayi.config.js"></script>
8
+		<link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
9
+		<link rel="stylesheet" href="../css/init.css" />
10
+		<link rel="stylesheet" href="./css/buMenManger.css" />
11
+		<title>系统管理-->部门管理</title>
12
+	</head>
13
+	<body>
14
+		<div class="container-fluid">
15
+				<div class="daoHang clearfix">
16
+				<div class="dhLeft">
17
+					<sapn><i class="syIcon"></i>位置:<a id="ReIndex" href="javaScript:;">首页</a>&gt;<a href="javaScript:;">系统管理</a>&gt;<a href="javaScript:;">权限管理</a>&gt;<a href="" class="nowPosition">部门管理</a></sapn>
18
+				</div>
19
+				<div class="dhRight">
20
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
21
+            	</div>
22
+			</div>
23
+			<div class="toolBar">
24
+				<button class="btns add">添加</button>
25
+				<button class="btns change">修改</button>
26
+				<button class="btns del">删除</button>
27
+			</div>
28
+			<div class="tree">
29
+				<ul id="treeDemo" class="ztree">
30
+					<!--类名为ztree是必须的-->
31
+				</ul>
32
+			</div>
33
+
34
+		</div>
35
+		<!--添加弹出内容-->
36
+		<div class="model addModel">
37
+			<div class="box">
38
+				<div class="btop clearfix">
39
+					<p class="btl"><span>添加</span>&nbsp;&lfloor;&nbsp;&nbsp;<span class="tps" style="color: red;"></span>&nbsp;&nbsp;&rceil;&nbsp;部门</p>
40
+					<p class="btr addBtr" title="关闭">X</p>
41
+				</div>
42
+				<div class="boxCon">
43
+					<div>所属部门:
44
+						<div class="inpBox">
45
+							<input type="text" class="inps inps1" />
46
+							<i class="xl xl_one"></i>
47
+							<div class="addTree xlAdd">
48
+								<ul id="addTreeDemo" class="ztree">
49
+									
50
+								</ul>
51
+							</div>
52
+						</div>
53
+					</div>
54
+					<div>部门名称:<input class="inps inps2" type="text" /></div>
55
+					<div>排列序号:<input class="inps inps3" type="text" /></div>
56
+					<div><button class="btns addCun">保存</button></div>
57
+				</div>
58
+			</div>
59
+
60
+		</div>
61
+		<!--删除弹出内容-->
62
+		<div class="model delModel">
63
+			<div class="box">
64
+				<div class="btop clearfix">
65
+					<p class="btl"><span>删除提示</span></p>
66
+					<p class="btr delBtr" title="关闭">X</p>
67
+				</div>
68
+				<div class="boxCon" style="height: 150px;">
69
+					您确定删除&nbsp;&lfloor;&nbsp;&nbsp;<span class="delName" style="color: red;"></span>&nbsp;&nbsp;&rceil;&nbsp;?
70
+
71
+					<p style="margin-top: 30px;"><button class="btns sure">确定</button>
72
+						<button class="btns return">取消</button></p>
73
+					<!--<p style="color: red;">注:若该分类下包含知识库内容会一并删除</p>-->
74
+				</div>
75
+
76
+			</div>
77
+
78
+		</div>
79
+		<!--修改弹出内容-->
80
+		<div class="model changeModel">
81
+			<div class="box">
82
+				<div class="btop clearfix">
83
+					<p class="btl"><span>修改</span>&nbsp;&lfloor;&nbsp;&nbsp;<span class="tps chtps" style="color: red;"></span>&nbsp;&nbsp;&rceil;&nbsp;部门</p>
84
+					<p class="btr changeBtr" title="关闭">X</p>
85
+				</div>
86
+				<div class="boxCon">
87
+					<div>所属部门:
88
+						<div class="inpBox">
89
+							<input type="text" class="inps inps4" />
90
+							<i class="xl xl_two"></i>
91
+							<div class="addTree xlChange">
92
+								<ul id="changeTreeDemo" class="ztree">
93
+									
94
+								</ul>
95
+							</div>
96
+						</div>
97
+					</div>
98
+					<div>部门名称:<input class="inps inps5" type="text" /></div>
99
+					<div>排列序号:<input class="inps inps6" type="text" /></div>
100
+					<div><button class="btns changeCun">保存</button></div>
101
+				</div>
102
+			</div>
103
+
104
+		</div>
105
+	
106
+	<script src="../js/zTree/jquery.ztree.core.js"></script>
107
+	<script src="../css/layer/layer.js"></script>
108
+	<script src="./js/buMenManger.js"></script>
109
+	</body>
110
+	
111
+</html>

+ 239 - 0
CallCenterWeb.UI/SystemManager/caoZuoRiZhi.html

@@ -0,0 +1,239 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<script src="../Script/Common/huayi.load.js"></script>
7
+    	<script src="../Script/Common/huayi.config.js"></script>
8
+		<link rel="stylesheet" href="../css/laydate/need/laydate.css" />
9
+		<link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
10
+		<title>系统管理-->登录日志</title>
11
+		<style>
12
+			.clearfix:after {
13
+				content: "";
14
+				display: block;
15
+				clear: both;
16
+			}
17
+			
18
+			.toolBar {
19
+				padding: 15px 0;
20
+				border-bottom: 1px solid #ccc;
21
+				margin-bottom: 25px;
22
+				padding-right: 45px;
23
+			}
24
+			
25
+			.toolBar input {
26
+				width: 128px;
27
+				padding: 2px 2PX 2PX 10PX;
28
+				height: 28px;
29
+				border: 1px solid #ebebeb;
30
+				color: #1ab394;
31
+				outline: none;
32
+				vertical-align: middle;
33
+			}
34
+			
35
+			.btns {
36
+				    background: #1ab394;
37
+				    color: #fff;
38
+				    padding: 3px 10px;
39
+				    outline: none;
40
+				    font-size: 12px;
41
+				    margin-left: 15px;
42
+				    border: 0;
43
+				    border-radius: 3px;
44
+			}
45
+			
46
+			.model {
47
+				position: fixed;
48
+				top: 0;
49
+				right: 0;
50
+				bottom: 0;
51
+				left: 0;
52
+				height: 100%;
53
+				width: 100%;
54
+				background: rgba(0, 0, 0, 0.48);
55
+				z-index: 100;
56
+				display: none;
57
+			}
58
+			
59
+			.box {
60
+				width: 30%;
61
+				margin: 0 auto;
62
+				margin-top: 5%;
63
+			}
64
+			
65
+			.box .btop {
66
+				height: 35px;
67
+				background: #1ab394;
68
+				color: #fff;
69
+				line-height: 35px;
70
+				padding: 0 15px;
71
+				/*margin-bottom: 15px;*/
72
+			}
73
+			
74
+			.box .btop p.btl {
75
+				float: left;
76
+				margin: 0;
77
+			}
78
+			
79
+			.box .btop p.btr {
80
+				float: right;
81
+				cursor: pointer;
82
+				margin: 0;
83
+				font-size: 20px;
84
+			}
85
+			
86
+			.box>input {
87
+				display: block;
88
+				height: 34px;
89
+				padding: 6px 12px;
90
+				font-size: 14px;
91
+				line-height: 1.42857143;
92
+				color: #555;
93
+				background-color: #fff;
94
+				background-image: none;
95
+				border: 1px solid #ccc;
96
+				border-radius: 4px;
97
+				margin: 35px auto;
98
+			}
99
+			
100
+			.boxCon {
101
+				width: 100%;
102
+				background: #fff;
103
+				text-align: center;
104
+				padding: 10px 15px;
105
+				height: auto;
106
+				overflow-y: auto;
107
+			}
108
+			
109
+			.boxCon>div {
110
+				padding: 15px 0;
111
+			}
112
+		</style>
113
+	</head>
114
+
115
+	<body>
116
+		<div class="container-fluid">
117
+			<div class="toolBar clearfix">
118
+
119
+				<div class="toolLeft"  style="float: left;">
120
+				<button class="btns del">批量删除</button>
121
+				</div>
122
+				<div class="toolRight" style="float: right;">
123
+					<span>操作人名称:<input type="text" class="czName" /></span>
124
+					<span> 操作时间:<input type="text" class="laydate-icon loginTime" id="startTime"/></span>
125
+					<button class="btns search">搜索</button>
126
+				</div>
127
+			</div>
128
+			<div class="tableBox">
129
+				<table id="table1" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
130
+					<thead>
131
+						<tr>
132
+							<th data-field="state" data-checkbox="true" data-align="center"></th>
133
+							<th data-align="center" data-formatter="setCode">编号</th>
134
+							<th data-field="F_LoginId" data-align="center">操作人编号</th>
135
+							<th data-field="F_LoginDate" data-align="center">登录时间</th>
136
+							<th data-field="F_LoginOutDate" data-align="center">退出时间</th>
137
+							<th data-field="F_LoginName" data-align="center">操作人名称</th>
138
+							<th data-field="F_Result" data-align="center">操作内容</th>
139
+						</tr>
140
+					</thead>
141
+
142
+				</table>
143
+			</div>
144
+
145
+		</div>
146
+
147
+		<!--删除弹出内容-->
148
+		<div class="model delModel">
149
+			<div class="box">
150
+				<!--<div class="btop clearfix">
151
+					<p class="btl"><span>删除参数信息</span></p>
152
+					<p class="btr delBtr" title="关闭">X</p>
153
+				</div>-->
154
+				<div class="boxCon" style="height: 150px;">
155
+					您确定要删除选择的记录吗?
156
+					<p style="margin-top: 30px;"><button class="btns sure">确定</button>
157
+						<button class="btns return">取消</button></p>
158
+				</div>
159
+
160
+			</div>
161
+
162
+		</div>
163
+		<script src="../css/laydate/laydate.js"></script>
164
+		<script>
165
+			var table = $('#table1');
166
+			var token = $.cookie("token");
167
+			laydate.skin('molv');
168
+			laydate({
169
+				elem: '#startTime',
170
+				event: 'focus',
171
+				format: 'YYYY-MM-DD', // 分隔符可以任意定义,该例子表示只显示年月
172
+			});
173
+			$('.search').click(function(){
174
+				initTable(token);
175
+			})
176
+
177
+			//==================删除功能开始================================
178
+			//删除按钮
179
+			$('.del').click(function() {
180
+				$('.delModel').css('display', 'block');
181
+			})
182
+			//关闭按钮
183
+			$('.delBtr').click(function() {
184
+				$('.delModel').css('display', 'none');
185
+			})
186
+			//*****************删除功能结束****************************
187
+
188
+			initTable(token);
189
+
190
+			function initTable(token) {
191
+				//先销毁表格
192
+				table.bootstrapTable('destroy');
193
+				//初始化表格,动态从服务器加载数据
194
+				table.bootstrapTable({
195
+					method: "get", //使用get请求到服务器获取数据
196
+					url: huayi.config.callcenter_url+"Log/GetList", //获取数据的Servlet地址
197
+					striped: true, //表格显示条纹
198
+					pagination: true, //启动分页
199
+					pageSize: 10, //每页显示的记录数
200
+					pageNumber: 1, //当前第几页
201
+					pageList: [10,15,20, 50, 100], //记录数可选列表
202
+					search: false, //是否启用查询
203
+					showColumns: false, //显示下拉框勾选要显示的列
204
+					showRefresh: false, //显示刷新按钮
205
+					sidePagination: "server", //表示服务端请求
206
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
207
+					//设置为limit可以获取limit, offset, search, sort, order
208
+					queryParamsType: "undefined",
209
+					queryParams: function queryParams(params) { //设置查询参数
210
+						var param = {
211
+							pageindex: params.pageNumber,
212
+							pagesize: params.pageSize,
213
+							token: token,
214
+							name:$('.czName').val(),//操作人名称
215
+							logindate:$('.loginTime').val()//操作人名称
216
+						};
217
+						return param;
218
+					},
219
+					onLoadSuccess: function() { //加载成功时执行
220
+						//layer.msg("加载成功");
221
+					},
222
+					onLoadError: function() { //加载失败时执行
223
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
224
+					}
225
+				});
226
+			}
227
+			/*选中行添加背景颜色*/
228
+			table.on("click-row.bs.table", function(e, row, ele) {
229
+				$('.success').removeClass('success'); //去除之前选中的行的,选中样式
230
+				$(ele).addClass('success'); //添加当前选中的 success样式用于区别
231
+			});
232
+
233
+			function setCode(val, row, index) {
234
+				return index + 1;
235
+			}
236
+		</script>
237
+	</body>
238
+
239
+</html>

+ 57 - 0
CallCenterWeb.UI/SystemManager/css/buMenManger.css

@@ -0,0 +1,57 @@
1
+			.toolBar {
2
+				padding: 15px 0;
3
+				border-bottom: 1px solid #ccc;
4
+			}
5
+			.tree {
6
+				height: 400px;
7
+				overflow-y: auto;
8
+			}
9
+			
10
+			.inpBox {
11
+				border: 1px solid #a9a9a9;
12
+				height: 27px;
13
+				width: 172px;
14
+				display: inline-block;
15
+				position: relative;
16
+				vertical-align: middle;
17
+			}
18
+			
19
+			.inps {
20
+				height: 24px;
21
+				width: 172px;
22
+			}
23
+			
24
+			.inps1,.inps4 {
25
+				width: 170px;
26
+				height: 24px;
27
+				outline: none;
28
+				border: 0;
29
+				border-image-width: 0;
30
+				padding: 0;
31
+				padding-left: 3px;
32
+			}
33
+			
34
+			.xl {
35
+				display: inline-block;
36
+				background: url("../../img/dropDown.png") no-repeat;
37
+				height: 100%;
38
+				background-position: center center;
39
+				width: 20px;
40
+				position: absolute;
41
+				right: 0;
42
+				top: 0px;
43
+				background-color: #f7bc8b;
44
+				cursor: pointer;
45
+			}
46
+			.xl:hover{
47
+					background-color: #e6d523;
48
+			}
49
+			.addTree{
50
+			    background: #fff;
51
+			    position: absolute;
52
+			    width: 100%;
53
+			       border: 1px solid darkgrey;
54
+			    right: 0;
55
+			    top: 26px;
56
+			    display: none;
57
+			}

+ 121 - 0
CallCenterWeb.UI/SystemManager/css/shuJuZiDian.css

@@ -0,0 +1,121 @@
1
+			.box {
2
+				width: 52%;
3
+			}
4
+			.delModel .box,.zdlist_delModel .box{
5
+				    width: 23%;
6
+			}
7
+			/*.boxCon {
8
+				width: 100%;
9
+				background: #fff;
10
+				/*text-align: center;*/
11
+				/*padding: 10px 15px;
12
+				height: 340px;
13
+				overflow-y: auto;*/
14
+			/*}*/
15
+			
16
+			.boxCon table {
17
+				width: 100%;
18
+			}
19
+			
20
+			.boxCon table th {
21
+				width: 20%;
22
+			}
23
+			.inpBox {
24
+				border: 1px solid #a9a9a9;
25
+				height: 27px;
26
+				width: 55%;;
27
+				display: inline-block;
28
+				position: relative;
29
+				vertical-align: middle;
30
+			}
31
+			
32
+			.inps1,
33
+			.inps4 ,.inps5,.inps6{
34
+				width: 100%;
35
+				height: 24px;
36
+				outline: none;
37
+				border: 0;
38
+				border-image-width: 0;
39
+				padding: 0;
40
+				padding-left: 3px;
41
+			}
42
+			.changeCode,.addzdz,.addSort{
43
+				width: 55%;
44
+			}
45
+			
46
+			.xl {
47
+				display: inline-block;
48
+				background: url(../../img/dropDown.png) no-repeat;
49
+				height: 100%;
50
+				background-position: center center;
51
+				width: 20px;
52
+				position: absolute;
53
+				right: 0;
54
+				top: 0px;
55
+				background-color: #f7bc8b;
56
+				cursor: pointer;
57
+			}
58
+			
59
+			.xl:hover {
60
+				background-color: #e6d523;
61
+			}
62
+			
63
+			.addTree {
64
+				background: #fff;
65
+				position: absolute;
66
+				width: 100%;
67
+				border: 1px solid darkgrey;
68
+				right: 0;
69
+				top: 26px;
70
+				display: none;
71
+				height: 220px;
72
+				overflow-y: auto;
73
+			}
74
+			
75
+			.treeTable {
76
+				height: 400px;
77
+				/*overflow-y: auto;*/
78
+			}
79
+			
80
+			.tree {
81
+				height: 100%;
82
+			}
83
+			
84
+			.trTitle {
85
+				width: 100%;
86
+				height: 34px;
87
+				line-height: 34px;
88
+				border-bottom: 1px solid #ebebeb;
89
+				color: red;
90
+				font-weight: 700;
91
+				margin-bottom: 15px;
92
+			}
93
+			
94
+			.treeCon {
95
+				height: 90%;
96
+				border: 1px solid #ebebeb;
97
+				overflow-y: auto
98
+			}
99
+			
100
+			.rowsss{
101
+				background: darkred;
102
+				color: #fff;
103
+			}
104
+			.shanChu,.xiuGai,.addZiDian{
105
+				display: inline-block;
106
+				height: 16px;
107
+				width: 16px;
108
+				vertical-align: middle;
109
+			}
110
+			.shanChu{
111
+			background: url(../../img/shanChu.png) no-repeat;	
112
+			}
113
+			.xiuGai{
114
+			background: url(../../img/xiuGai1.png) no-repeat;	
115
+			}
116
+			.addZiDian{
117
+				background: url(../../img/upUp.png) no-repeat;	
118
+			}
119
+			.tjzd{
120
+				    float: right;
121
+			}

+ 134 - 0
CallCenterWeb.UI/SystemManager/css/yongHuManger.css

@@ -0,0 +1,134 @@
1
+			ul,li,ol,dl{
2
+				margin: 0;
3
+				padding: 0;
4
+				list-style: none;
5
+			}
6
+			
7
+			.toolBar {
8
+				padding: 15px 0;
9
+				border-bottom: 1px solid #ccc;
10
+			}
11
+			
12
+			
13
+			.box {
14
+				width: 55%;
15
+				margin-top: 1%;
16
+			}
17
+			.againModel .box{
18
+				    width: 30%;
19
+			}
20
+			.banModel .box,.useModel .box{
21
+				    width: 20%;
22
+			}
23
+			.boxCon {
24
+			    height: 492px;
25
+			}
26
+			.boxCon table {
27
+				width: 100%;
28
+			}
29
+			.boxCon table th {
30
+				width: 20%;
31
+			}
32
+			.boxCon table td textarea {
33
+				width: 100%;
34
+			}
35
+			.inpBox {
36
+				border: 1px solid #a9a9a9;
37
+				height: 27px;
38
+				width: 100%;
39
+				display: inline-block;
40
+				position: relative;
41
+				vertical-align: middle;
42
+			}
43
+			.inps1,.inps2,.inps3,
44
+			.inps4,.inps5,.inps6 {
45
+				width: 100%;
46
+				height: 24px;
47
+				outline: none;
48
+				border: 0;
49
+				border-image-width: 0;
50
+				padding: 0;
51
+				padding-left: 3px;
52
+			}
53
+			.changeTitle,.changeKey,.addTitle,.addKey{
54
+				width: 55%;
55
+			}
56
+			
57
+			.xl {
58
+				display: inline-block;
59
+				background: url(../../img/dropDown.png) no-repeat;
60
+				height: 100%;
61
+				background-position: center center;
62
+				width: 20px;
63
+				position: absolute;
64
+				right: 0;
65
+				top: 0px;
66
+				background-color: #f7bc8b;
67
+				cursor: pointer;
68
+			}
69
+			
70
+			.xl:hover {
71
+				background-color: #e6d523;
72
+			}
73
+			
74
+			.addTree {
75
+				background: #fff;
76
+				position: absolute;
77
+				width: 100%;
78
+				border: 1px solid darkgrey;
79
+				right: 0;
80
+				top: 26px;
81
+				display: none;
82
+				/*height: 220px;*/
83
+				overflow-y: auto;
84
+				z-index: 10;
85
+				text-align: center;
86
+			}
87
+			.addTree .list li:hover{
88
+				background: #ebebeb;
89
+				color: #717171;
90
+			}
91
+			#ygbirth,#chan_ygbirth{
92
+				width: 172px;
93
+			    height: 32px;
94
+			    border: 1px solid #a9a9a9;
95
+			}
96
+			
97
+			.treeTable {
98
+				height: 400px;
99
+				/*overflow-y: auto;*/
100
+			}
101
+			
102
+			.tree {
103
+				height: 100%;
104
+			}
105
+			
106
+			.trTitle {
107
+				width: 100%;
108
+				height: 34px;
109
+				line-height: 34px;
110
+				border-bottom: 1px solid #ebebeb;
111
+				color: red;
112
+				font-weight: 700;
113
+				margin-bottom: 15px;
114
+			}
115
+			
116
+			.treeCon {
117
+				height: 90%;
118
+				border: 1px solid #ebebeb;
119
+				overflow-y: auto
120
+			}
121
+			
122
+			.ztree li {
123
+				width: 100%;
124
+				overflow: hidden;
125
+				white-space: nowrap;
126
+				text-overflow: ellipsis;
127
+			}
128
+			.radio-inline {
129
+				   margin: 0px 10px 0 0!important;
130
+			}
131
+			.radio-inline input[type=radio] {
132
+			    margin-top: 5px!important;
133
+			     
134
+			}

+ 173 - 0
CallCenterWeb.UI/SystemManager/dengLuRiZhi.html

@@ -0,0 +1,173 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<script src="../Script/Common/huayi.load.js"></script>
7
+    	<script src="../Script/Common/huayi.config.js"></script>
8
+		<link rel="stylesheet" href="../css/laydate/need/laydate.css" />
9
+		<link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
10
+		<link rel="stylesheet" href="../css/init.css" />
11
+		<title>系统管理-->登录日志</title>
12
+	</head>
13
+
14
+	<body>
15
+		<div class="container-fluid">
16
+			<div class="daoHang clearfix">
17
+				<div class="dhLeft">
18
+					<sapn><i class="syIcon"></i>位置:<a id="ReIndex" href="javaScript:;">首页</a>&gt;<a href="javaScript:;">系统管理</a>&gt;<a href="javaScript:;">日志管理</a>&gt;<a href="" style="color: #000;">登录日志</a></sapn>
19
+				</div>
20
+			</div>
21
+			<div class="toolBar clearfix">
22
+				<!--<button class="btns del">批量删除</button>-->
23
+				<div class="toolRight" style="float: right;">
24
+					<span>操作人名称:<input type="text" class="czName" /></span>
25
+					<span>登录时间:<input type="text" class="laydate-icon loginTime" id="startTime"/></span>
26
+					<button class="btns search">搜索</button>
27
+				</div>
28
+			</div>
29
+			<div class="tableBox">
30
+				<table id="table1" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
31
+					<thead>
32
+						<tr>
33
+							<th data-field="state" data-checkbox="true" data-align="center"></th>
34
+							<th data-align="center" data-formatter="setCode">编号</th>
35
+							<th data-field="F_LoginId" data-align="center">操作人编号</th>
36
+							<th data-field="F_LoginDate" data-align="center">登录时间</th>
37
+							<th data-field="F_LoginOutDate" data-align="center">退出时间</th>
38
+							<th data-field="F_LoginName" data-align="center">操作人名称</th>
39
+							<th data-field="F_Result" data-align="center">操作内容</th>
40
+						</tr>
41
+					</thead>
42
+
43
+				</table>
44
+			</div>
45
+
46
+		</div>
47
+
48
+		<!--删除弹出内容-->
49
+		<div class="model delModel">
50
+			<div class="box">
51
+				<div class="btop clearfix">
52
+					<p class="btl"><span>删除参数信息</span></p>
53
+					<p class="btr delBtr" title="关闭">X</p>
54
+				</div>
55
+				<div class="boxCon" style="height: 150px;">
56
+					您确定要删除选择的记录吗?
57
+					<p style="margin-top: 30px;"><button class="btns sure">确定</button>
58
+						<button class="btns return">取消</button></p>
59
+				</div>
60
+
61
+			</div>
62
+
63
+		</div>
64
+		<script src="../css/laydate/laydate.js"></script>
65
+		<script>
66
+			var table = $('#table1');
67
+			var token = $.cookie("token");
68
+			laydate.skin('molv');
69
+			laydate({
70
+				elem: '#startTime',
71
+				event: 'focus',
72
+				format: 'YYYY-MM-DD', // 分隔符可以任意定义,该例子表示只显示年月
73
+			});
74
+			$('.search').click(function(){
75
+				initTable(token);
76
+			})
77
+			//==================删除功能开始================================
78
+			//删除按钮
79
+			var delid;
80
+			$('.del').click(function() {
81
+				delid = $.map(table.bootstrapTable('getSelections'), function(row) {
82
+						return row.F_Id;
83
+					});
84
+					console.log(delid);
85
+				if(delid.length<=0){
86
+					alert('请选择要删除的行!')
87
+					
88
+				}else{
89
+
90
+					$('.delModel').css('display', 'block');
91
+				}
92
+				
93
+			})
94
+			//关闭按钮
95
+			$('.delBtr').click(function() {
96
+				$('.delModel').css('display', 'none');
97
+			})
98
+			//取消按钮
99
+			$('.return').click(function() {
100
+				$('.delModel').css('display', 'none');
101
+			})
102
+			//确认按钮
103
+			$('.sure').click(function() {
104
+				$('.delModel').css('display', 'none');
105
+					del(delid);
106
+			})
107
+			function del(delid){
108
+				$.ajax({
109
+				type:"post",
110
+				url:huayi.config.callcenter_url+"Log/Delete",
111
+				async:true,
112
+				dataType:"json",
113
+				data:{
114
+					token: token,
115
+					ids:delid
116
+           	},
117
+           	success:function(data){
118
+           		if(data.state.toLowerCase() =='success'){
119
+           			alert("删除成功!")
120
+           			initTable(token);
121
+           		}
122
+           	}
123
+			});
124
+			}
125
+			//*****************删除功能结束****************************
126
+
127
+			initTable(token);
128
+
129
+			function initTable(token) {
130
+				//先销毁表格
131
+				table.bootstrapTable('destroy');
132
+				//初始化表格,动态从服务器加载数据
133
+				table.bootstrapTable({
134
+					method: "get", //使用get请求到服务器获取数据
135
+					url: huayi.config.callcenter_url+"Log/GetList", //获取数据的Servlet地址
136
+					striped: true, //表格显示条纹
137
+					pagination: true, //启动分页
138
+					pageSize: 10, //每页显示的记录数
139
+					pageNumber: 1, //当前第几页
140
+					pageList: [10, 15,20,50, 100], //记录数可选列表
141
+					search: false, //是否启用查询
142
+					showColumns: false, //显示下拉框勾选要显示的列
143
+					showRefresh: false, //显示刷新按钮
144
+					sidePagination: "server", //表示服务端请求
145
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
146
+					//设置为limit可以获取limit, offset, search, sort, order
147
+					queryParamsType: "undefined",
148
+					queryParams: function queryParams(params) { //设置查询参数
149
+						var param = {
150
+							pageindex: params.pageNumber,
151
+							pagesize: params.pageSize,
152
+							token: token,
153
+							name:$('.czName').val(),//操作人名称
154
+							logindate:$('.loginTime').val()//操作人名称
155
+						};
156
+						return param;
157
+					},
158
+					onLoadSuccess: function() { //加载成功时执行
159
+						//layer.msg("加载成功");
160
+					},
161
+					onLoadError: function() { //加载失败时执行
162
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
163
+					}
164
+				});
165
+			}
166
+			function setCode(val, row, index) {
167
+				    var page = table.bootstrapTable("getPageCode");  
168
+            		return page.pageSize * (page.pageNumber - 1) + index + 1;  
169
+			}
170
+		</script>
171
+	</body>
172
+
173
+</html>

+ 136 - 0
CallCenterWeb.UI/SystemManager/gongNeng.html

@@ -0,0 +1,136 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+    <meta charset="UTF-8">
5
+    <link href="../css/bootstrap.min14ed.css?v=3.3.6" rel="stylesheet">
6
+    <link href="../css/bootstrap.min.css" />
7
+    <link rel="stylesheet" href="../css/boot/bootstrap-table.css" />
8
+    <link href="../css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
9
+    <link href="../css/animate.min.css" rel="stylesheet">
10
+    <link href="../css/style.min862f.css?v=4.1.0" rel="stylesheet">
11
+    <link href="../css/layer/need/layer.css" />
12
+    <link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
13
+    <link href="./css/buMenManger.css" rel="stylesheet" />
14
+    <title>系统管理-->部门管理</title>
15
+</head>
16
+<body>
17
+    <div class="container-fluid">
18
+        <div class="toolBar">
19
+            <button class="btn add">添加</button>
20
+            <button class="btn change">修改</button>
21
+            <button class="btn del">删除</button>
22
+        </div>
23
+        <div class="tree">
24
+            <ul id="treeDemo" class="ztree">
25
+                <!--类名为ztree是必须的-->
26
+            </ul>
27
+        </div>
28
+
29
+    </div>
30
+    <!--添加弹出内容-->
31
+    <div class="model addModel">
32
+        <div class="box">
33
+            <div class="btop clearfix">
34
+                <p class="btl"><span>添加</span>&nbsp;&lfloor;&nbsp;&nbsp;<span class="tps" style="color: red;"></span>&nbsp;&nbsp;&rceil;&nbsp;部门</p>
35
+                <p class="btr addBtr" title="关闭">X</p>
36
+            </div>
37
+            <div class="boxCon">
38
+                <div>
39
+                    父级分类:
40
+                    <div class="inpBox">
41
+                        <input type="text" class="inps inps1" />
42
+                        <i class="xl xl_one"></i>
43
+                        <div class="addTree xlAdd">
44
+                            <ul id="addTreeDemo" class="ztree"></ul>
45
+                        </div>
46
+                    </div>
47
+                </div>
48
+                <div>
49
+                    添加类型:
50
+                    <select class="inpBox inps2" id="selecttype">
51
+                        <option value="0">菜单</option>
52
+                        <option value="1">页面</option>
53
+                        <option value="2">权限</option>
54
+                    </select>
55
+
56
+                </div>
57
+                <div>名    称:<input class="inps inps3" type="text" /></div>
58
+                <div>代    码:<input class="inps inps4" type="text" /></div>
59
+                <div>Controller:<input class="inps inps5" type="text" /></div>
60
+                <div>Action  :<input class="inps inps6" type="text" /></div>
61
+                <div>是否启用:<input class="inps inps7" type="checkbox" /></div>
62
+                <div>备    注:<input class="inps inps8" type="text" /></div>
63
+                <div>排序编码:<input class="inps inps9" type="text" /></div>
64
+                <div><button class="btn addCun">保存</button></div>
65
+            </div>
66
+        </div>
67
+
68
+    </div>
69
+    <!--删除弹出内容-->
70
+    <div class="model delModel">
71
+        <div class="box">
72
+            <div class="btop clearfix">
73
+                <p class="btl"><span>删除提示</span></p>
74
+                <p class="btr delBtr" title="关闭">X</p>
75
+            </div>
76
+            <div class="boxCon" style="height: 150px;">
77
+                您确定删除&nbsp;&lfloor;&nbsp;&nbsp;<span class="delName" style="color: red;"></span>&nbsp;&nbsp;&rceil;&nbsp;?
78
+
79
+                <p style="margin-top: 30px;">
80
+                    <button class="btn sure">确定</button>
81
+                    <button class="btn return">取消</button>
82
+                </p>
83
+                <!--<p style="color: red;">注:若该分类下包含知识库内容会一并删除</p>-->
84
+            </div>
85
+
86
+        </div>
87
+
88
+    </div>
89
+    <!--修改弹出内容-->
90
+    <div class="model changeModel">
91
+        <div class="box">
92
+            <div class="btop clearfix">
93
+                <p class="btl"><span>修改</span>&nbsp;&lfloor;&nbsp;&nbsp;<span class="tps chtps" style="color: red;"></span>&nbsp;&nbsp;&rceil;&nbsp;部门</p>
94
+                <p class="btr changeBtr" title="关闭">X</p>
95
+            </div>
96
+            <div class="boxCon">
97
+                <div>
98
+                    父级分类:
99
+                    <div class="inpBox">
100
+                        <input type="text" class="inps inps1_chg" />
101
+                        <i class="xl xl_one"></i>
102
+                        <div class="addTree xlAdd">
103
+                            <ul id="changeTreeDemo" class="ztree"></ul>
104
+                        </div>
105
+                    </div>
106
+                </div>
107
+                <div>
108
+                    修改类型:
109
+                    <select class="inpBox inps2_chg" id="selecttype">
110
+                        <option value="0">菜单</option>
111
+                        <option value="1">页面</option>
112
+                        <option value="2">权限</option>
113
+                    </select>
114
+
115
+                </div>
116
+                <div>名    称:<input class="inps inps3_chg" type="text" /></div>
117
+                <div>代    码:<input class="inps inps4_chg" type="text" /></div>
118
+                <div>Controller:<input class="inps inps5_chg" type="text" /></div>
119
+                <div>Action  :<input class="inps inps6_chg" type="text" /></div>
120
+                <div>是否启用:<input class="inps inps7_chg" type="checkbox" /></div>
121
+                <div>备    注:<input class="inps inps8_chg" type="text" /></div>
122
+                <div>排序编码:<input class="inps inps9_chg" type="text" /></div>
123
+                <div><button class="btn changeCun">保存</button></div>
124
+            </div>
125
+        </div>
126
+
127
+    </div>
128
+
129
+
130
+</body>
131
+<script src="../js/jquery.min.js?v=2.1.4"></script>
132
+<script src="../js/bootstrap.min.js"></script>
133
+<script src="../js/zTree/jquery.ztree.core.js"></script>
134
+<script src="../js/jquery.cookie.js"></script>
135
+<script src="./js/gongNengManger.js"></script>
136
+</html>

+ 240 - 0
CallCenterWeb.UI/SystemManager/huaWuRiZhi.html

@@ -0,0 +1,240 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<script src="../Script/Common/huayi.load.js"></script>
7
+    	<script src="../Script/Common/huayi.config.js"></script>
8
+		<link rel="stylesheet" href="../css/laydate/need/laydate.css" />
9
+		<link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
10
+		<title>系统管理-->登录日志</title>
11
+		<style>
12
+			.clearfix:after {
13
+				content: "";
14
+				display: block;
15
+				clear: both;
16
+			}
17
+			
18
+			.toolBar {
19
+				padding: 15px 0;
20
+				border-bottom: 1px solid #ccc;
21
+				margin-bottom: 25px;
22
+				padding-right: 45px;
23
+			}
24
+			
25
+			.toolBar input {
26
+				width: 128px;
27
+				padding: 2px 2PX 2PX 10PX;
28
+				height: 28px;
29
+				border: 1px solid #ebebeb;
30
+				color: #1ab394;
31
+				outline: none;
32
+				vertical-align: middle;
33
+			}
34
+			
35
+			.btns {
36
+				    background: #1ab394;
37
+				    color: #fff;
38
+				    padding: 3px 10px;
39
+				    outline: none;
40
+				    font-size: 12px;
41
+				    margin-left: 15px;
42
+				    border: 0;
43
+				    border-radius: 3px;
44
+			}
45
+			
46
+			.model {
47
+				position: fixed;
48
+				top: 0;
49
+				right: 0;
50
+				bottom: 0;
51
+				left: 0;
52
+				height: 100%;
53
+				width: 100%;
54
+				background: rgba(0, 0, 0, 0.48);
55
+				z-index: 100;
56
+				display: none;
57
+			}
58
+			
59
+			.box {
60
+				width: 30%;
61
+				margin: 0 auto;
62
+				margin-top: 5%;
63
+			}
64
+			
65
+			.box .btop {
66
+				height: 35px;
67
+				background: #1ab394;
68
+				color: #fff;
69
+				line-height: 35px;
70
+				padding: 0 15px;
71
+				/*margin-bottom: 15px;*/
72
+			}
73
+			
74
+			.box .btop p.btl {
75
+				float: left;
76
+				margin: 0;
77
+			}
78
+			
79
+			.box .btop p.btr {
80
+				float: right;
81
+				cursor: pointer;
82
+				margin: 0;
83
+				font-size: 20px;
84
+			}
85
+			
86
+			.box>input {
87
+				display: block;
88
+				height: 34px;
89
+				padding: 6px 12px;
90
+				font-size: 14px;
91
+				line-height: 1.42857143;
92
+				color: #555;
93
+				background-color: #fff;
94
+				background-image: none;
95
+				border: 1px solid #ccc;
96
+				border-radius: 4px;
97
+				margin: 35px auto;
98
+			}
99
+			
100
+			.boxCon {
101
+				width: 100%;
102
+				background: #fff;
103
+				text-align: center;
104
+				padding: 10px 15px;
105
+				height: auto;
106
+				overflow-y: auto;
107
+			}
108
+			
109
+			.boxCon>div {
110
+				padding: 15px 0;
111
+			}
112
+		</style>
113
+	</head>
114
+
115
+	<body>
116
+		<div class="container-fluid">
117
+			<div class="toolBar clearfix">
118
+
119
+				<div class="toolLeft"  style="float: left;">
120
+				<button class="btns del">批量删除</button>
121
+				</div>
122
+				<div class="toolRight" style="float: right;">
123
+					<span>操作人名称:<input type="text" class="czName" /></span>
124
+					<span>操作时间:<input type="text" class="laydate-icon loginTime" id="startTime"/></span>
125
+					<button class="btns search">搜索</button>
126
+				</div>
127
+			</div>
128
+			<div class="tableBox">
129
+				<table id="table1" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
130
+					<thead>
131
+						<tr>
132
+								<th data-field="state" data-checkbox="true" data-align="center"></th>
133
+							<th data-align="center" data-formatter="setCode">编号</th>
134
+							<th data-field="F_LoginId" data-align="center">操作人编号</th>
135
+							<th data-field="F_LoginDate" data-align="center">登录时间</th>
136
+							<th data-field="F_LoginOutDate" data-align="center">退出时间</th>
137
+							<th data-field="F_LoginName" data-align="center">操作人名称</th>
138
+							<th data-field="F_Result" data-align="center">操作内容</th>
139
+						</tr>
140
+					</thead>
141
+
142
+				</table>
143
+			</div>
144
+
145
+		</div>
146
+
147
+		<!--删除弹出内容-->
148
+		<div class="model delModel">
149
+			<div class="box">
150
+				<!--<div class="btop clearfix">
151
+					<p class="btl"><span>删除参数信息</span></p>
152
+					<p class="btr delBtr" title="关闭">X</p>
153
+				</div>-->
154
+				<div class="boxCon" style="height: 150px;">
155
+					您确定要删除选择的记录吗?
156
+					<p style="margin-top: 30px;"><button class="btns sure">确定</button>
157
+						<button class="btns return">取消</button></p>
158
+				</div>
159
+
160
+			</div>
161
+
162
+		</div>
163
+		<script src="../css/laydate/laydate.js"></script>
164
+		<script>
165
+			var table = $('#table1');
166
+			var token = $.cookie("token");
167
+			laydate.skin('molv');
168
+			laydate({
169
+				elem: '#startTime',
170
+				event: 'focus',
171
+				format: 'YYYY-MM-DD', // 分隔符可以任意定义,该例子表示只显示年月
172
+			});
173
+			$('.search').click(function(){
174
+				initTable(token);
175
+			})
176
+
177
+			//==================删除功能开始================================
178
+			//删除按钮
179
+			$('.del').click(function() {
180
+				$('.delModel').css('display', 'block');
181
+			})
182
+			//关闭按钮
183
+			$('.delBtr').click(function() {
184
+				$('.delModel').css('display', 'none');
185
+			})
186
+			//*****************删除功能结束****************************
187
+
188
+			initTable(token);
189
+
190
+			function initTable(token) {
191
+				//先销毁表格
192
+				table.bootstrapTable('destroy');
193
+				//初始化表格,动态从服务器加载数据
194
+				table.bootstrapTable({
195
+					method: "get", //使用get请求到服务器获取数据
196
+					url: huayi.config.callcenter_url+"Log/GetList", //获取数据的Servlet地址
197
+					striped: true, //表格显示条纹
198
+					pagination: true, //启动分页
199
+					pageSize: 10, //每页显示的记录数
200
+					pageNumber: 1, //当前第几页
201
+					pageList: [10,15,20,30, 50, 100], //记录数可选列表
202
+					search: false, //是否启用查询
203
+					showColumns: false, //显示下拉框勾选要显示的列
204
+					showRefresh: false, //显示刷新按钮
205
+					sidePagination: "server", //表示服务端请求
206
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
207
+					//设置为limit可以获取limit, offset, search, sort, order
208
+					queryParamsType: "undefined",
209
+					queryParams: function queryParams(params) { //设置查询参数
210
+						var param = {
211
+							pageindex: params.pageNumber,
212
+							pagesize: params.pageSize,
213
+							token: token,
214
+							name:$('.czName').val(),//操作人名称
215
+							logindate:$('.loginTime').val()//操作人名称
216
+						};
217
+						return param;
218
+					},
219
+					onLoadSuccess: function() { //加载成功时执行
220
+						//layer.msg("加载成功");
221
+					},
222
+					onLoadError: function() { //加载失败时执行
223
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
224
+					}
225
+				});
226
+			}
227
+			/*选中行添加背景颜色*/
228
+			table.on("click-row.bs.table", function(e, row, ele) {
229
+				$('.success').removeClass('success'); //去除之前选中的行的,选中样式
230
+				$(ele).addClass('success'); //添加当前选中的 success样式用于区别
231
+			});
232
+
233
+			function setCode(val, row, index) {
234
+				    var page = table.bootstrapTable("getPageCode");  
235
+            return page.pageSize * (page.pageNumber - 1) + index + 1;  
236
+			}
237
+		</script>
238
+	</body>
239
+
240
+</html>

+ 155 - 0
CallCenterWeb.UI/SystemManager/jiChuShuJu.html

@@ -0,0 +1,155 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<script src="../Script/Common/huayi.load.js"></script>
7
+		<script src="../Script/Common/huayi.config.js"></script>
8
+		<link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
9
+		<link rel="stylesheet" href="../css/init.css" />
10
+		<title>系统管理-->基础数据</title>
11
+		<style>
12
+			.box {
13
+				width: 45%;
14
+			}
15
+			.delModel .box {
16
+				width: 20%;
17
+   				text-align: center;
18
+			}
19
+			
20
+		
21
+			.boxCon table {
22
+				width: 100%;
23
+			}
24
+			
25
+			.boxCon table th {
26
+				width: 20%;
27
+			}
28
+			.boxCon table td textarea {
29
+				width: 70%;
30
+				vertical-align: middle;
31
+			}
32
+			
33
+		</style>
34
+	</head>
35
+
36
+	<body>
37
+		<div class="container-fluid">
38
+			<div class="daoHang clearfix">
39
+				<div class="dhLeft">
40
+					<sapn><i class="syIcon"></i>位置:<a id="ReIndex" href="javaScript:;">首页</a>&gt;<a href="javaScript:;">系统管理</a>&gt;<a href="javaScript:;">系统设置</a>&gt;<a href="" class="nowPosition">基础数据</a></sapn>
41
+				</div>
42
+				<div class="dhRight">
43
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
44
+            	</div>
45
+			</div>
46
+			<div class="toolBar clearfix">
47
+
48
+				<div class="toolLeft" style="float: left;">
49
+					<button class="btns add">添加</button>
50
+					<button class="btns change">修改</button>
51
+					<button class="btns del">删除</button>
52
+				</div>
53
+				<div class="toolRight" style="float: right;">
54
+					<span>参数名称:<input type="text" class="sear_code" /></span>
55
+					<span>参数内容:<input type="text" class="sear_value" /></span>
56
+					<button class="btns search">搜索</button>
57
+				</div>
58
+			</div>
59
+			<div class="tableBox">
60
+				<table id="table" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
61
+
62
+					<thead>
63
+						<tr>
64
+							<th data-field="state" data-checkbox="true" data-align="center"></th>
65
+							<th data-align="center" data-formatter="setCode">编号</th>
66
+							<th data-field="F_ParamCode" data-align="center">参数名称</th>
67
+							<th data-field="F_ParamValue" data-align="center">参数内容</th>
68
+							<th data-field="F_ParamDes" data-align="center">备注</th>
69
+						</tr>
70
+					</thead>
71
+
72
+				</table>
73
+			</div>
74
+
75
+		</div>
76
+		<!--添加弹出内容-->
77
+		<div class="model addModel">
78
+			<div class="box">
79
+				<div class="btop clearfix">
80
+					<p class="btl">添加参数信息</p>
81
+					<p class="btr addBtr" title="关闭">X</p>
82
+				</div>
83
+				<div class="boxCon">
84
+					<table>
85
+						<tbody>
86
+							<tr>
87
+								<th style="color: red;">参数名称:</th>
88
+								<td colspan="3"><input type="text" class="add_code"/> <span class="kong addCode_kong" style="color: red;">*参数名称不允许为空</span></td>
89
+							</tr>
90
+							<tr>
91
+								<th style="color: red;">参数内容:</th>
92
+								<td colspan="3"><textarea rows="2" cols="20" class="add_value"></textarea><span class="kong addValue_kong" style="color: red;">*参数内容不允许为空</span></td>
93
+							</tr>
94
+							<tr>
95
+								<th>备注:</th>
96
+								<td colspan="3"><textarea rows="2" cols="20" class="add_des"></textarea></td>
97
+							</tr>
98
+
99
+						</tbody>
100
+					</table>
101
+					<div style="text-align: center;"><button class="btns addCun">保存</button></div>
102
+				</div>
103
+			</div>
104
+		</div>
105
+		<!--删除弹出内容-->
106
+		<div class="model delModel">
107
+			<div class="box">
108
+				<div class="btop clearfix">
109
+					<p class="btl"><span>删除参数信息</span></p>
110
+					<p class="btr delBtr" title="关闭">X</p>
111
+				</div>
112
+				<div class="boxCon" style="height: 150px;">
113
+					<p style="font-size: 16px;">您确定要删除选择的记录吗?</p>
114
+					<p style="margin-top: 30px;"><button class="btns sure">确定</button>
115
+						<button class="btns return">取消</button></p>
116
+				</div>
117
+
118
+			</div>
119
+
120
+		</div>
121
+		<!--修改弹出内容-->
122
+		<div class="model changeModel">
123
+			<div class="box">
124
+				<div class="btop clearfix">
125
+					<p class="btl">添加参数信息</p>
126
+					<p class="btr changeBtr" title="关闭">X</p>
127
+				</div>
128
+				<div class="boxCon">
129
+					<table>
130
+						<tbody>
131
+							<tr>
132
+								<th style="color: red;">参数名称:</th>
133
+								<td colspan="3"><input type="text" class="change_code"/> <span class="kong changeCode_kong" style="color: red;">*参数名称不允许为空</span></td>
134
+							</tr>
135
+							<tr>
136
+								<th style="color: red;">参数内容:</th>
137
+								<td colspan="3"><textarea rows="2" cols="20" class="change_value"></textarea><span class="kong changeValue_kong" style="color: red;">*参数内容不允许为空</span></td>
138
+							</tr>
139
+							<tr>
140
+								<th>备注:</th>
141
+								<td colspan="3"><textarea rows="2" cols="20" class="change_des"></textarea></td>
142
+							</tr>
143
+
144
+						</tbody>
145
+					</table>
146
+					<div style="text-align: center;"><button class="btns changeCun">保存</button></div>
147
+				</div>
148
+			</div>
149
+
150
+		</div>
151
+
152
+		<script src="./js/jiChuShuJu.js"></script>
153
+	</body>
154
+
155
+</html>

+ 345 - 0
CallCenterWeb.UI/SystemManager/js/buMenManger.js

@@ -0,0 +1,345 @@
1
+	var tps = $('.tps');
2
+	var id = ''; //当前节点id
3
+	var name; //当前节点name
4
+	var pid; //当前节点父ID
5
+	var pidName;//
6
+	var xlName; //添加弹出框内下拉框内节点name
7
+	var token = $.cookie("token");
8
+	tree();
9
+
10
+	function tree() {
11
+		$.get(huayi.config.callcenter_url + 'Department/GetDeptList', {
12
+			"token": $.cookie("token"),
13
+//			"pid": pid
14
+		}, function(result) {
15
+			result = $.parseJSON(result);
16
+			$.fn.zTree.init($("#treeDemo"), setting1, result.data); //实例化树形图
17
+		});
18
+	}
19
+
20
+	var setting1 = {
21
+		data: {
22
+			key: {
23
+				name: "text"
24
+			},
25
+			simpleData: {
26
+				enable: true,
27
+				idKey: "id",
28
+				rootPId: 0
29
+			}
30
+		},
31
+		callback: {
32
+			onClick: zTreeOnClick
33
+		}
34
+	};
35
+
36
+	function zTreeOnClick(event, treeId, treeNode) {
37
+		id = treeNode.id;
38
+		name = treeNode.text;
39
+		var pidnode = treeNode.getParentNode();
40
+		if(pidnode) {
41
+			pidName = pidnode.text;
42
+			pid = pidnode.id;
43
+		} else {
44
+			pidName = "顶级分类";
45
+			pid =0;
46
+		}
47
+	};
48
+	var setting2 = {
49
+		data: {
50
+			key: {
51
+				name: "text"
52
+			},
53
+			simpleData: {
54
+				enable: true,
55
+				idKey: "id",
56
+				rootPId: 0
57
+			}
58
+		},
59
+		callback: {
60
+			onClick: addTreeClick
61
+		}
62
+	}
63
+
64
+	function addTreeClick(event, treeId, treeNode) {
65
+		addPid = treeNode.id;
66
+		console.log(addPid);
67
+		xlName = treeNode.text;
68
+		$('.inps1').val(xlName);
69
+
70
+	};
71
+	//删除按钮
72
+	$('.del').click(function() {
73
+		if(id == 'null' || id == '') {
74
+			layer.confirm('没有要删除的分类!', {
75
+				btn: ['确定']
76
+			});
77
+			return
78
+		} else {
79
+			$('.delModel').css('display', 'block');
80
+			$('.delName').html(name);
81
+		}
82
+	})
83
+	//关闭按钮
84
+	$('.delBtr').click(function() {
85
+		$('.delModel').css('display', 'none');
86
+	})
87
+	//确定删除按钮
88
+	$('.sure').click(function() {
89
+		$.ajax({
90
+			type: "post",
91
+			url: huayi.config.callcenter_url + "Department/DelDept",
92
+			async: true,
93
+			dataType: 'json',
94
+			data: {
95
+				ids: id,
96
+				token: token
97
+			},
98
+			success: function(data) {
99
+				if(data.state == "success") {
100
+					layer.msg("删除成功!");
101
+					tree();
102
+				}
103
+			}
104
+		});
105
+		$('.delModel').css('display', 'none');
106
+
107
+	})
108
+	//取消删除按钮
109
+	$('.return').click(function() {
110
+		$('.delModel').css('display', 'none');
111
+	})
112
+
113
+	//添加按钮
114
+	$('.add').click(function() {
115
+		$('.addModel').css('display', 'block');
116
+		if(name) {
117
+			tps.html(name);
118
+			$('.inps1').val(name);
119
+			addPid = id;
120
+		} else {
121
+			tps.html('顶级分类');
122
+			$('.inps1').val('顶级分类');
123
+			addPid = 0;
124
+		}
125
+		treeCont();
126
+
127
+	})
128
+	//添加关闭按钮
129
+	$('.addBtr').click(function() {
130
+		$('.addModel').css('display', 'none');
131
+	})
132
+	//添加内容下拉
133
+	$('.inps1').focus(function() {
134
+		$('.xlAdd').css('display', 'block')
135
+	})
136
+	$('.xl_one').click(function() {
137
+		if($('.xlAdd').css('display') == 'block') {
138
+			$('.xlAdd').css('display', 'none')
139
+		} else {
140
+			$('.xlAdd').css('display', 'block')
141
+		}
142
+	})
143
+	$('.addTree').mouseleave(function() {
144
+		$(this).css('display', 'none')
145
+	})
146
+	//保存添加按钮
147
+	var addPid, addDeptname, addSort;
148
+	//添加弹出框内 所属部门下拉框内数据
149
+	function treeCont() {
150
+		$.get(huayi.config.callcenter_url + 'Department/GetDeptList', {
151
+			"token": $.cookie("token"),
152
+//			"pid": pid
153
+		}, function(result) {
154
+			result = $.parseJSON(result);
155
+			$.fn.zTree.init($("#addTreeDemo"), setting2, result.data); //实例化树形图
156
+		});
157
+
158
+	}
159
+	$('.addCun').click(function() {
160
+		//				console.log(addPid);
161
+		if($('.inps2').val() == "") {
162
+		    if (addPid.length <= 0) {
163
+				layer.confirm('所添加内容不能为空!', {
164
+					btn: ['确定']
165
+				});
166
+				return;
167
+			}
168
+		} else {
169
+			addDeptname = $('.inps2').val();
170
+			addSort = $('.inps3').val();
171
+			if (addSort == "")
172
+			    addSort = 0;
173
+			$('.addModel').css('display', 'none');
174
+			$.ajax({
175
+				type: "post",
176
+				url: huayi.config.callcenter_url + "Department/AddDept",
177
+				dataType: 'json',
178
+				async: true,
179
+				data: {
180
+					pid: addPid, //当前选择节点ID
181
+					deptname: addDeptname, //部门名称
182
+					sort: addSort, //排列序号
183
+					token: token
184
+				},
185
+				success: function(data) {
186
+					//					console.log(data)
187
+					//					console.log(data.state);
188
+					if(data.state == "success") {
189
+						layer.msg("添加成功!");
190
+						tree();
191
+						$('.inps1').val('');
192
+						$('.inps2').val('');
193
+						$('.inps3').val('');
194
+
195
+					}
196
+				}
197
+
198
+			});
199
+
200
+		}
201
+	})
202
+
203
+	//修改按钮
204
+	var chanPid, //修改弹出框内 下拉框父节点ID
205
+		chanId, //修改弹出框内 下拉框当前节点ID
206
+		changeName, //修改弹出框内 下拉框当前节点name
207
+		chbcName, //保存的部门名称
208
+		chbcSort, //保存的排序号
209
+		chbcPid; //保存的所属部门ID
210
+	$('.change').click(function() {
211
+		if(id == 'null' || id == '') {
212
+			layer.confirm('没有选择要修改的部门!', {
213
+				btn: ['确定']
214
+			})
215
+			return
216
+		} else {
217
+			changeAjax(id);
218
+			$('.changeModel').css('display', 'block');
219
+			$('.chtps').html(name);
220
+			changeTreeCont();
221
+		}
222
+
223
+	});
224
+	//关闭按钮
225
+	$('.changeBtr').click(function() {
226
+		$('.changeModel').css('display', 'none');
227
+	}) ;
228
+	$('.inps4').focus(function() {
229
+		$('.xlChange').css('display', 'block')
230
+	})
231
+	//下拉按钮功能
232
+	$('.xl_two').click(function() {
233
+		if($('.xlChange').css('display') == 'block') {
234
+			$('.xlChange').css('display', 'none')
235
+		} else {
236
+			$('.xlChange').css('display', 'block')
237
+		}
238
+	})
239
+	//修改弹出框内 下拉树形图参数配置项
240
+	var setting3 = {
241
+		data: {
242
+			key: {
243
+				name: "text"
244
+			},
245
+			simpleData: {
246
+				enable: true,
247
+				idKey: "id",
248
+				rootPId: 0
249
+			}
250
+		},
251
+		callback: {
252
+			onClick: changeTreeClick
253
+		}
254
+	}
255
+
256
+	function changeTreeClick(event, treeId, treeNode) {
257
+//		chanPid = treeNode.pId;
258
+		chanId = treeNode.id;
259
+		changeName = treeNode.text;
260
+		$('.inps4').val(changeName);
261
+		var pidnode = treeNode.getParentNode();
262
+		if(pidnode) {
263
+			chanPid = pidnode.id;
264
+		} else {
265
+			chanPid =0;
266
+		}
267
+		chbcPid=chanId;
268
+	};
269
+
270
+	//修改弹出框内 所属部门下拉框内数据
271
+	function changeTreeCont() {
272
+		$.get(huayi.config.callcenter_url + 'Department/GetDeptList', {
273
+			"token": $.cookie("token"),
274
+//			"pid": pid
275
+		}, function(result) {
276
+			result = $.parseJSON(result);
277
+			$.fn.zTree.init($("#changeTreeDemo"), setting3, result.data); //实例化树形图
278
+		});
279
+	}
280
+
281
+	function changeAjax(id) {
282
+		$.ajax({
283
+			type: "get",
284
+			url: huayi.config.callcenter_url + "Department/GetDept",
285
+			dataType: 'json',
286
+			async: true,
287
+			data: {
288
+				deptid: id,
289
+				token: token
290
+			},
291
+			success: function(data) {
292
+				var chanCon = data.data;
293
+				if(pid == 0) {
294
+					$('.inps4').val('顶级分类');
295
+					chbcPid =pid;
296
+				} else {
297
+					$('.inps4').val(chanCon.parentname);
298
+					chbcPid = chanCon.parentid;
299
+				}
300
+				$('.inps5').val(chanCon.depname);
301
+				$('.inps6').val(chanCon.sort);
302
+				chbcSort = chanCon.sort;
303
+				chbcName = chanCon.depname;
304
+			}
305
+		});
306
+	}
307
+	//修改的保存按钮功能
308
+	function changeBaoCunAjax(id, chbcPid, chbcName, chbcSort) {
309
+		$.ajax({
310
+			type: "post",
311
+			url: huayi.config.callcenter_url + "Department/EditDept",
312
+			async: true,
313
+			dataType: 'json',
314
+			data: {
315
+				deptid: id,
316
+				pid: chbcPid,
317
+				deptname: chbcName,
318
+				sort: chbcSort,
319
+				token: token
320
+			},
321
+			success: function(data) {
322
+				if(data.state == "success") {
323
+					layer.msg("修改成功!");
324
+					tree();
325
+				}
326
+			}
327
+		});
328
+	}
329
+
330
+	$('.changeCun').click(function() {
331
+		if($('.inps4').val() == "" || $('.inps5').val() == "" || $('.inps6').val() == "") {
332
+			layer.confirm('所修改内容不允许为空!', {
333
+				btn: ['确定']
334
+			});
335
+			return;
336
+		} else {
337
+			$('.changeModel').css('display', 'none');
338
+			console.log('部门id'+id +'所属部门id' + chbcPid +'部门名称'+chbcName+'排序'+chbcSort);
339
+			chbcPid;
340
+			chbcName = $('.inps5').val();
341
+			chbcSort = $('.inps6').val();
342
+			changeBaoCunAjax(id, chbcPid, chbcName, chbcSort);
343
+		}
344
+
345
+	})

+ 350 - 0
CallCenterWeb.UI/SystemManager/js/gongNengManger.js

@@ -0,0 +1,350 @@
1
+var tps = $('.tps');
2
+var id = ''; //当前节点id
3
+var name; //当前节点name
4
+var pid; //当前节点父id
5
+var pname;//当前节点父name
6
+var xlName; //添加弹出框内下拉框内节点name
7
+var zNodes = [];
8
+//通用ajax
9
+$.ajax({
10
+    type: "get",
11
+    url: "http://localhost:63662/Module/GetTreelist",
12
+    dataType: 'json',
13
+    async: false,
14
+    data: {
15
+        pid: pid,
16
+        token: $.cookie("token")
17
+    },
18
+    success: function (res) {
19
+        var content = res.data;
20
+        for (var i = 0, l = content.length; i < l; i++) {
21
+            content[i].name = content[i].text;
22
+            delete content[i].text;
23
+            var second = content[i].children
24
+            if (second != null) {
25
+                for (var j = 0; j < second.length; j++) {
26
+                    second[j].name = second[j].text;
27
+                    delete second[j].text;
28
+                    var thired = second[j].children;
29
+                    if (thired != null) {
30
+                        for (var g = 0; g < thired.length; g++) {
31
+                            thired[g].name = thired[g].text;
32
+                            delete thired[g].text;
33
+                            var fours = thired[g].children;
34
+                            if (fours != null) {
35
+                                for (var k = 0; k < fours.length ; k++) {
36
+                                    fours[k].name = fours[k].text;
37
+                                    delete fours[k].text;
38
+                                }
39
+                            }
40
+                        }
41
+                    }
42
+                }
43
+            }
44
+            zNodes = content;
45
+        }
46
+
47
+    }
48
+
49
+});
50
+$(document).ready(function () {
51
+    $.fn.zTree.init($("#treeDemo"), setting1, zNodes); //实例化树形图
52
+});
53
+
54
+var setting1 = {
55
+    data: {
56
+        simpleData: {
57
+            enable: true
58
+        }
59
+    },
60
+    callback: {
61
+        onClick: zTreeOnClick
62
+    }
63
+};
64
+function zTreeOnClick(event, treeId, treeNode) {
65
+    id = treeNode.id;
66
+    name = treeNode.name
67
+    var p = treeNode.getParentNode();
68
+    pid = p.id
69
+    pname = p.name;
70
+};
71
+var setting2 = {
72
+    data: {
73
+        simpleData: {
74
+            enable: true
75
+        }
76
+    },
77
+    callback: {
78
+        onClick: addTreeClick
79
+    }
80
+}
81
+function addTreeClick(event, treeId, treeNode) {
82
+    addPid = treeNode.id;
83
+    console.log(addPid);
84
+    xlName = treeNode.name;
85
+    $('.inps1').val(xlName);
86
+
87
+};
88
+//删除按钮
89
+$('.del').click(function () {
90
+    if (id == 'null' || id == '') {
91
+        alert('没有要删除的分类!')
92
+    } else {
93
+        $('.delModel').css('display', 'block');
94
+        $('.delName').html(name);
95
+    }
96
+})
97
+//关闭按钮
98
+$('.delBtr').click(function () {
99
+    $('.delModel').css('display', 'none');
100
+})
101
+//确定删除按钮
102
+$('.sure').click(function () {
103
+    $.ajax({
104
+        type: "post",
105
+        url: "http://localhost:63662/Module/DelModule",
106
+        async: true,
107
+        dataType: 'json',
108
+        data: {
109
+            ids: id,
110
+            token: $.cookie("token")
111
+        },
112
+        success: function (data) {
113
+            if (data.state == "success") {
114
+                alert("删除成功!")
115
+                window.location.reload();
116
+            }
117
+        }
118
+    });
119
+    $('.delModel').css('display', 'none');
120
+
121
+})
122
+//取消删除按钮
123
+$('.return').click(function () {
124
+    $('.delModel').css('display', 'none');
125
+})
126
+
127
+
128
+//添加按钮
129
+$('.add').click(function () {
130
+    $('.addModel').css('display', 'block');
131
+    if (name == null || name == '') {
132
+        tps.html('顶级分类');
133
+        $('.inps1').val('顶级分类');
134
+        addPid == 0;
135
+    } else {
136
+        tps.html(name);
137
+        $('.inps1').val(name);
138
+        addPid = id;
139
+    }
140
+    treeCont();
141
+
142
+})
143
+//添加关闭按钮
144
+$('.addBtr').click(function () {
145
+    $('.addModel').css('display', 'none');
146
+})
147
+//添加内容下拉
148
+$('.inps1').focus(function () {
149
+    $('.xlAdd').css('display', 'block')
150
+})
151
+$('.xl_one').click(function () {
152
+    if ($('.xlAdd').css('display') == 'block') {
153
+        $('.xlAdd').css('display', 'none')
154
+    } else {
155
+        $('.xlAdd').css('display', 'block')
156
+    }
157
+})
158
+$('.addTree').mouseleave(function () {
159
+    $(this).css('display', 'none')
160
+})
161
+//保存添加按钮
162
+var addPid, addDeptname, addSort;
163
+//添加弹出框内 所属部门下拉框内数据
164
+function treeCont() {
165
+    $.fn.zTree.init($("#addTreeDemo"), setting2, zNodes); //实例化树形图
166
+    var addTreeObj = $.fn.zTree.getZTreeObj("addTreeDemo");
167
+    var addNodes = addTreeObj.getSelectedNodes();
168
+
169
+}
170
+$('.addCun').click(function () {
171
+    console.log(addPid);
172
+    if ($('.inps2').val() == "" || $('.inps3').val() == "") {
173
+        alert('所添加内容不能为空!')
174
+    } else {
175
+
176
+        addType = $('#selecttype').val();
177
+        addName = $('.inps3').val();
178
+        addCode = $('.inps4').val();
179
+        addController = $('.inps5').val();
180
+        addAction = $('.inps6').val();
181
+        addState = $('.inps7').prop('checked');
182
+        addRemark = $('.inps8').val();
183
+        addSort = $('.inps9').val();
184
+
185
+        $('.addModel').css('display', 'none');
186
+        $.ajax({
187
+            type: "post",
188
+            url: "http://localhost:63662/Module/AddModule",
189
+            dataType: 'json',
190
+            async: true,
191
+            data: {
192
+                parentid: id,//当前选择节点ID
193
+                code: addCode,
194
+                name: addName,//部门名称
195
+                controller: addController,
196
+                action: addAction,
197
+                flag: addState,
198
+                remark: addRemark,
199
+                sort: addSort,//排列序号
200
+                type: addType
201
+            },
202
+            success: function (data) {
203
+                console.log(data)
204
+                console.log(data.state);
205
+                if (data.state == "success") {
206
+                    alert('添加部门成功!')
207
+                    window.location.reload();
208
+
209
+                }
210
+            }
211
+
212
+        });
213
+
214
+    }
215
+
216
+
217
+})
218
+//修改按钮
219
+var chanPid,//修改弹出框内 下拉框父节点ID
220
+    chanId,//修改弹出框内 下拉框当前节点ID
221
+changeName,//修改弹出框内 下拉框当前节点name
222
+  chbcName,//保存的部门名称
223
+  chbcSort,//保存的排序号
224
+   chbcPid;//保存的所属部门ID
225
+$('.change').click(function () {
226
+    if (id == 'null' || id == '') {
227
+        alert('没有选择要修改的菜单!')
228
+
229
+    } else {
230
+        changeAjax(id);
231
+        $('.changeModel').css('display', 'block');
232
+        $('.chtps').html(name);
233
+        changeTreeCont();
234
+    }
235
+
236
+
237
+})
238
+$('.changeBtr').click(function () {
239
+    $('.changeModel').css('display', 'none');
240
+})
241
+$('.inps4').focus(function () {
242
+    $('.xlChange').css('display', 'block')
243
+})
244
+//下拉按钮功能
245
+$('.xl_two').click(function () {
246
+    if ($('.xlChange').css('display') == 'block') {
247
+        $('.xlChange').css('display', 'none')
248
+    } else {
249
+        $('.xlChange').css('display', 'block')
250
+    }
251
+
252
+})
253
+//修改弹出框内 下拉树形图参数配置项
254
+var setting3 = {
255
+    data: {
256
+        simpleData: {
257
+            enable: true
258
+        }
259
+    },
260
+    callback: {
261
+        onClick: changeTreeClick
262
+    }
263
+}
264
+
265
+function changeTreeClick(event, treeId, treeNode) {
266
+    chanPid = treeNode.pId;
267
+    chanId = treeNode.id;
268
+    changeName = treeNode.name;
269
+    $('.inps1').val(changeName);
270
+
271
+};
272
+
273
+//修改弹出框内 所属部门下拉框内数据
274
+function changeTreeCont() {
275
+    $.fn.zTree.init($("#changeTreeDemo"), setting3, zNodes); //实例化树形图
276
+}
277
+function changeAjax(id) {
278
+    $.ajax({
279
+        type: "get",
280
+        url: "http://localhost:63662/Module/GetModule",
281
+        dataType: 'json',
282
+        async: true,
283
+        data: {
284
+            mid: id
285
+        },
286
+        success: function (res) {
287
+            var data = res.data.model;
288
+            if (pid == null) {
289
+                pid == 0;
290
+                $('.inps1_chg').val('顶级分类');
291
+                chbcPid == 0;
292
+            } else {
293
+                $('.inps1_chg').val(pname);
294
+                chbcPid = pid;
295
+            }
296
+            $('.inps2_chg').val(data.type);
297
+            $('.inps3_chg').val(data.name);
298
+            $('.inps4_chg').val(data.code);
299
+            $('.inps5_chg').val(data.controller);
300
+            $('.inps6_chg').val(data.action);
301
+            if (data.enable == 1) { $('.inps7_chg').prop("checked", "checked"); }
302
+            $('.inps8_chg').val(data.remark);
303
+            $('.inps9_chg').val(data.sort);
304
+        }
305
+    });
306
+}
307
+//修改的保存按钮功能
308
+function changeBaoCunAjax(id, chbcPid, chbcName, chbcSort) {
309
+    $.ajax({
310
+        type: "post",
311
+        url: "http://localhost:63662/Module/EditModule",
312
+        async: true,
313
+        dataType: 'json',
314
+        data: {
315
+            id: id,
316
+            parentid: id,//当前选择节点ID
317
+            code: addCode,
318
+            name: addName,//部门名称
319
+            controller: addController,
320
+            action: addAction,
321
+            flag: addState,
322
+            remark: addRemark,
323
+            sort: addSort,//排列序号
324
+            type: addType
325
+        },
326
+        success: function (data) {
327
+            if (data.state == "success") {
328
+                alert('修改部门成功!')
329
+                window.location.reload();
330
+            }
331
+        }
332
+    });
333
+}
334
+
335
+$('.changeCun').click(function () {
336
+    //if ($('.inps4').val() == "" || $('.inps5').val() == "" || $('.inps6').val() == "") {
337
+    //    alert('所修改内容不允许为空!')
338
+    //} else {
339
+    $('.changeModel').css('display', 'none');
340
+    console.log('部门id' + id + '所属部门id' + chbcPid + '部门名称' + chbcName + '排序' + chbcSort);
341
+    chbcPid = chanId;
342
+    chbcName = $('.inps5').val();
343
+    chbcSort = $('.inps6').val();
344
+    changeBaoCunAjax(id, chbcPid, chbcName, chbcSort);
345
+    //}
346
+
347
+})
348
+
349
+
350
+

+ 240 - 0
CallCenterWeb.UI/SystemManager/js/jiChuShuJu.js

@@ -0,0 +1,240 @@
1
+		 var $table = $('#table');
2
+		 var token = $.cookie("token");
3
+		 //搜索功能
4
+		 $('.search').click(function() {
5
+		 	initTable(token);
6
+		 })
7
+		 //==================添加功能开始================================
8
+		 $('.add').click(function() {
9
+		 	$('.addModel').css('display', 'block');
10
+		 })
11
+		 //添加关闭按钮
12
+		 $('.addBtr').click(function() {
13
+		 	$('.addModel').css('display', 'none');
14
+		 })
15
+		 //保存按钮
16
+		 $('.addCun').click(function() {
17
+		 	if($('.add_value').val() == '' && $('.add_code').val() == '') {
18
+		 		$('.addCode_kong').css('display', 'inline-block');
19
+		 		$('.addValue_kong').css('display', 'inline-block');
20
+		 	} else if($('.add_value').val() == '') {
21
+		 		$('.addCode_kong').css('display', 'none');
22
+		 		$('.addValue_kong').css('display', 'inline-block');
23
+		 	} else if($('.add_code').val() == '') {
24
+		 		$('.addValue_kong').css('display', 'none');
25
+		 		$('.addCode_kong').css('display', 'inline-block');
26
+		 	} else {
27
+		 		$('.addModel').css('display', 'none');
28
+		 		add();
29
+		 	}
30
+
31
+		 })
32
+
33
+		 function add() {
34
+		 	$.ajax({
35
+		 		type: "post",
36
+		 		url: huayi.config.callcenter_url + "SysConfig/Add",
37
+		 		async: true,
38
+		 		dataType: 'json',
39
+		 		data: {
40
+		 			token: token,
41
+		 			value: $('.add_value').val(), //参数内容
42
+		 			code: $('.add_code').val(), //参数名称
43
+		 			des: $('.add_des').val() //参数描述
44
+		 		},
45
+		 		success: function(data) {
46
+		 			if(data.state.toLowerCase() == "success") {
47
+		 				layer.msg("添加成功!");
48
+		 				$table.bootstrapTable('refresh');
49
+		 			 $('.add_value').val(''); //参数内容
50
+		 			 $('.add_code').val('');//参数名称
51
+		 			$('.add_des').val('');
52
+		 			}
53
+		 		}
54
+		 	});
55
+
56
+		 }
57
+		 //******************添加功能结束*****************************
58
+		 var IdsName;
59
+		 //==================修改功能开始================================
60
+		 $('.change').click(function() {
61
+		 	var ids = $.map($table.bootstrapTable('getSelections'), function(row) {
62
+		 		return row.F_ParamId;
63
+		 	});
64
+		 	IdsName = ids.toString();
65
+		 	if(ids.length <= 0) {
66
+		 		layer.confirm('请选择要修改的行!', {
67
+		 			btn: ['确定']
68
+		 		});
69
+		 		return;
70
+		 	} else {
71
+		 		$('.changeModel').css('display', 'block');
72
+		 		chanGet(IdsName);
73
+		 	}
74
+		 })
75
+		 //关闭按钮
76
+		 $('.changeBtr').click(function() {
77
+		 	$('.changeModel').css('display', 'none');
78
+		 })
79
+		 //保存按钮
80
+		 $('.changeCun').click(function() {
81
+		 	if($('.change_value').val() == '' && $('.change_code').val() == '') {
82
+		 		$('.changeCode_kong').css('display', 'inline-block');
83
+		 		$('.changeValue_kong').css('display', 'inline-block');
84
+		 	} else if($('.change_value').val() == '') {
85
+		 		$('.changeCode_kong').css('display', 'none');
86
+		 		$('.changeValue_kong').css('display', 'inline-block');
87
+		 	} else if($('.change_code').val() == '') {
88
+		 		$('.changeValue_kong').css('display', 'none');
89
+		 		$('.changeCode_kong').css('display', 'inline-block');
90
+		 	} else {
91
+		 		$('.changeModel').css('display', 'none');
92
+		 		chanSubmit(IdsName);
93
+		 	}
94
+
95
+		 })
96
+
97
+		 function chanGet(IdsName) {
98
+		 	$.ajax({
99
+		 		type: "get",
100
+		 		url: huayi.config.callcenter_url + "SysConfig/GetModel",
101
+		 		async: true,
102
+		 		dataType: 'json',
103
+		 		data: {
104
+		 			token: token,
105
+		 			id: IdsName,
106
+		 		},
107
+		 		success: function(data) {
108
+		 			var con = data.data;
109
+		 			if(data.state.toLowerCase() == "success") {
110
+		 				$('.change_value').val(con.F_ParamValue), //参数内容
111
+		 					$('.change_code').val(con.F_ParamCode), //参数名称
112
+		 					$('.change_des').val(con.F_ParamDes) //参数描述
113
+		 			}
114
+		 		}
115
+		 	});
116
+		 }
117
+
118
+		 function chanSubmit(IdsName) {
119
+		 	$.ajax({
120
+		 		type: "post",
121
+		 		url: huayi.config.callcenter_url + "SysConfig/Edit",
122
+		 		async: true,
123
+		 		dataType: 'json',
124
+		 		data: {
125
+		 			token: token,
126
+		 			id: IdsName, //参数id
127
+		 			value: $('.change_value').val(), //参数内容
128
+		 			code: $('.change_code').val(), //参数名称
129
+		 			des: $('.change_des').val() //参数描述
130
+		 		},
131
+		 		success: function(data) {
132
+		 			if(data.state.toLowerCase() == "success") {
133
+		 				layer.msg("修改成功");
134
+		 				$table.bootstrapTable('refresh');
135
+		 			}
136
+		 		}
137
+		 	});
138
+		 }
139
+		 //******************修改功能结束*****************************
140
+
141
+		 //==================删除功能开始================================
142
+		 //删除按钮
143
+		 var idd;
144
+		 $('.del').click(function() {
145
+		 	idd = $.map($table.bootstrapTable('getSelections'), function(row) {
146
+		 		return row.F_ParamId;
147
+		 	});
148
+		 	if(idd.length <= 0) {
149
+		 			layer.confirm('请选择要删除的行!', {
150
+				btn: ['确定']
151
+			});
152
+			return;
153
+		 	} else {
154
+		 		$('.delModel').css('display', 'block');
155
+		 	}
156
+
157
+		 })
158
+		 //关闭按钮
159
+		 $('.delBtr').click(function() {
160
+		 	$('.delModel').css('display', 'none');
161
+		 })
162
+		 //确认按钮
163
+		 $('.sure').click(function() {
164
+		 	console.log(idd);
165
+		 	$('.delModel').css('display', 'none');
166
+		 	del(idd);
167
+		 })
168
+		 //取消按钮
169
+		  $('.return').click(function() {
170
+		 	$('.delModel').css('display', 'none');
171
+		 })
172
+
173
+		 function del(idd) {
174
+		 	console.log(idd)
175
+		 	$.ajax({
176
+		 		type: "post",
177
+		 		url: huayi.config.callcenter_url + "SysConfig/Delete",
178
+		 		async: true,
179
+		 		dataType: 'json',
180
+		 		data: {
181
+		 			token: token,
182
+		 			ids: idd
183
+		 		},
184
+		 		success: function(data) {
185
+		 			if(data.state.toLowerCase() == "success") {
186
+		 				layer.msg("删除成功!");
187
+		 				$table.bootstrapTable('refresh');
188
+		 			}
189
+		 		}
190
+		 	});
191
+		 }
192
+		 //*****************删除功能结束****************************
193
+		 //右边表格
194
+		 initTable(token);
195
+
196
+		 function initTable(token) {
197
+		 	//先销毁表格
198
+		 	$table.bootstrapTable('destroy');
199
+		 	//初始化表格,动态从服务器加载数据
200
+		 	$table.bootstrapTable({
201
+		 		method: "get", //使用get请求到服务器获取数据
202
+		 		url: huayi.config.callcenter_url + "SysConfig/GetList", //获取数据的Servlet地址
203
+		 		striped: true, //表格显示条纹
204
+		 		pagination: true, //启动分页
205
+		 		pageSize: 10, //每页显示的记录数
206
+		 		pageNumber: 1, //当前第几页
207
+		 		pageList: [10,15,20,30,50], //记录数可选列表
208
+		 		search: false, //是否启用查询
209
+		 		showColumns: false, //显示下拉框勾选要显示的列
210
+		 		showRefresh: false, //显示刷新按钮
211
+		 		sidePagination: "server", //表示服务端请求
212
+		 		//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
213
+		 		//设置为limit可以获取limit, offset, search, sort, order
214
+		 		queryParamsType: "undefined",
215
+		 		queryParams: function queryParams(params) { //设置查询参数
216
+		 			var param = {
217
+		 				pageindex: params.pageNumber,
218
+		 				pagesize: params.pageSize,
219
+		 				token: token,
220
+		 				value: $('.sear_value').val(),
221
+		 				code: $('.sear_code').val()
222
+		 			};
223
+		 			return param;
224
+		 		},
225
+		 		onLoadSuccess: function() { //加载成功时执行
226
+		 			//layer.msg("加载成功");
227
+		 		},
228
+		 		onLoadError: function() { //加载失败时执行
229
+		 			//layer.msg("加载数据失败", { time: 1500, icon: 2 });
230
+		 		}
231
+		 	});
232
+		 }
233
+
234
+		 function setCode(val, row, index) {
235
+		 	    var page = $table.bootstrapTable("getPageCode");  
236
+            return page.pageSize * (page.pageNumber - 1) + index + 1;  
237
+		 }
238
+		 $table.on("click-row.bs.table", function(e, row, ele) {
239
+
240
+		 });

+ 297 - 0
CallCenterWeb.UI/SystemManager/js/jueSeQuanXian.js

@@ -0,0 +1,297 @@
1
+		var token = $.cookie("token");
2
+		var table = $('#table1');
3
+		var code;
4
+		var jsname = $('.searJsz').val();
5
+		//搜索功能
6
+		$('.search').click(function() {
7
+			jsname = $('.searJsz').val()
8
+			console.log(jsname);
9
+			initTable(token, jsname)
10
+		})
11
+		//========================添加功能开始=========================
12
+		$('.add').click(function() {
13
+			$('.addModel').css('display', 'block');
14
+		})
15
+		//关闭按钮
16
+		$('.addBtr').click(function() {
17
+			$('.addModel').css('display', 'none');
18
+		})
19
+		//保存按钮
20
+		$('.addCun').click(function() {
21
+			if($('.add_jsz').val() == '') {
22
+
23
+				$('.addJsz_kong').css('display', 'inline-block')
24
+			} else {
25
+				$('.addModel').css('display', 'none');
26
+				ad();
27
+			}
28
+
29
+		})
30
+
31
+		function ad() {
32
+			$.ajax({
33
+				type: "post",
34
+				url: huayi.config.callcenter_url + "RoleInfo/AddRole",
35
+				async: true,
36
+				dataType: 'json',
37
+				data: {
38
+					token: token,
39
+					rolename: $('.add_jsz').val(), //角色名称
40
+					roleremark: $('.add_bz').val() //备注
41
+				},
42
+				success: function(data) {
43
+					if(data.state.toLowerCase() == 'success') {
44
+						layer.msg("添加成功!");
45
+						table.bootstrapTable('refresh');
46
+						 $('.add_jsz').val(''); //角色名称
47
+					 $('.add_bz').val('');
48
+					}
49
+				}
50
+			});
51
+
52
+		}
53
+		//*************************添加功能结束=========================
54
+
55
+		//========================修改功能开始=========================
56
+
57
+		$('.change').click(function() {
58
+			if(jsid) {
59
+				$('.changeModel').css('display', 'block');
60
+				cg(jsid)
61
+			} else {
62
+				layer.confirm('请选择修改行!', {
63
+					btn: ['确定']
64
+				});
65
+				return;
66
+			}
67
+
68
+		})
69
+		//关闭按钮
70
+		$('.changeBtr').click(function() {
71
+			$('.changeModel').css('display', 'none');
72
+		})
73
+		//保存按钮
74
+		$('.changeCun').click(function() {
75
+			if($('.change_jsz').val() == '') {
76
+				$('.change_kong').css('display', 'inline-block')
77
+			} else {
78
+				$('.changeModel').css('display', 'none');
79
+				cc(jsid);
80
+			}
81
+
82
+		})
83
+
84
+		function cg(jsid) {
85
+			$.ajax({
86
+				type: "get",
87
+				url: huayi.config.callcenter_url + "RoleInfo/GetRole",
88
+				async: true,
89
+				dataType: 'json',
90
+				data: {
91
+					token: token,
92
+					roleid: jsid //角色id
93
+				},
94
+				success: function(data) {
95
+					var con = data.data;
96
+					if(data.state.toLowerCase() == 'success') {
97
+						$('.change_jsz').val(con.F_RoleName);
98
+						$('.change_bz').val(con.F_Remark);
99
+					}
100
+				}
101
+			});
102
+
103
+		}
104
+
105
+		function cc(jsid) {
106
+			$.ajax({
107
+				type: "post",
108
+				url: huayi.config.callcenter_url + "RoleInfo/EditRole",
109
+				async: true,
110
+				dataType: 'json',
111
+				data: {
112
+					token: token,
113
+					roleid: jsid, //角色id
114
+					rolename: $('.change_jsz').val(), //角色名称
115
+					roleremark: $('.change_bz').val() //备注
116
+				},
117
+				success: function(data) {
118
+					if(data.state.toLowerCase() == 'success') {
119
+						layer.msg("修改成功!");
120
+						table.bootstrapTable('refresh');
121
+					}
122
+				}
123
+			});
124
+		}
125
+		//*************************修改功能结束=========================
126
+		//========================删除功能开始=========================
127
+		$('.del').click(function() {
128
+			if(jsid) {
129
+				$('.delModel').css('display', 'block');
130
+			} else {
131
+				layer.confirm('请选择要删除的行!', {
132
+					btn: ['确定']
133
+				});
134
+				return;
135
+			}
136
+		})
137
+		//关闭按钮
138
+		$('.delBtr').click(function() {
139
+			$('.delModel').css('display', 'none');
140
+		})
141
+		//取消按钮
142
+		$('.return').click(function() {
143
+			$('.delModel').css('display', 'none');
144
+		})
145
+		//确定按钮
146
+		$('.sure').click(function() {
147
+			$('.delModel').css('display', 'none');
148
+			del(jsid);
149
+		})
150
+
151
+		function del(jsid) {
152
+			$.ajax({
153
+				type: "post",
154
+				url: huayi.config.callcenter_url + "RoleInfo/DelRole",
155
+				async: true,
156
+				dataType: 'json',
157
+				data: {
158
+					token: token,
159
+					id: jsid //角色id
160
+				},
161
+				success: function(data) {
162
+					if(data.state.toLowerCase() == 'success') {
163
+						layer.msg("删除成功!");
164
+						table.bootstrapTable('refresh');
165
+					} else {
166
+						alert(data.message);
167
+
168
+					}
169
+				}
170
+			});
171
+
172
+		}
173
+		//*************************删除功能结束=========================
174
+		//右边树形结构
175
+		tree(jsid);
176
+
177
+		function tree(jsid) {
178
+			$.get(huayi.config.callcenter_url + "RoleF/GetRoleFunction", {
179
+				"token": $.cookie("token"),
180
+				"RoleID": jsid
181
+			}, function(result) {
182
+				result = $.parseJSON(result);
183
+				$(result.data).each(function(i, n) {
184
+					if(n.ischecked == true) {
185
+						n.checked = "true";
186
+					}
187
+				})
188
+				$.fn.zTree.init($("#treeDemo"), setting1, result.data); //实例化树形图
189
+			});
190
+		}
191
+		var setting1 = {
192
+			check: {
193
+				enable: true,
194
+				//				chkboxType: {"Y":"", "N":""},
195
+			},
196
+			data: {
197
+				simpleData: {
198
+					enable: true,
199
+					idKey: "id",
200
+					pIdKey: "pid",
201
+					rootPId: 0
202
+				}
203
+			},
204
+			callback: {
205
+				onCheck: zTreeOnClick
206
+			}
207
+		};
208
+
209
+		function zTreeOnClick(event, treeId, treeNode) {
210
+			var name = treeNode.name;
211
+		};
212
+
213
+		//保存权限
214
+		function pro(app, jsid) {
215
+			$.ajax({
216
+				type: "post",
217
+				url: huayi.config.callcenter_url + "RoleF/SaveRoleFunction",
218
+				async: true,
219
+				dataType: 'json',
220
+				data: {
221
+					token: token,
222
+					RoleID: jsid, //角色id
223
+					functionIds: app
224
+				},
225
+				success: function(data) {
226
+					if(data.state.toLowerCase() == 'success') {
227
+					layer.confirm('保存权限成功!', {
228
+										btn: ['确定']
229
+									});
230
+									return;
231
+					}
232
+				}
233
+			});
234
+		}
235
+
236
+		$('.protect').click(function() {
237
+			var app = [];
238
+			var ztree = $.fn.zTree.getZTreeObj("treeDemo").getCheckedNodes(true);
239
+			$.each(ztree, function(i, n) {
240
+				app.push(n.id);
241
+			});
242
+			console.log(app)
243
+			pro(app, jsid);
244
+		})
245
+		//左边表格
246
+		initTable(token, jsname);
247
+
248
+		function initTable(token, jsname) {
249
+			//先销毁表格
250
+			table.bootstrapTable('destroy');
251
+			//初始化表格,动态从服务器加载数据
252
+			table.bootstrapTable({
253
+				method: "get", //使用get请求到服务器获取数据
254
+				url: huayi.config.callcenter_url+"RoleInfo/GetRoleList", //获取数据的Servlet地址
255
+//				url: "jueSeQuanXian.json", //获取数据的Servlet地址
256
+				striped: true, //表格显示条纹
257
+				pagination: true, //启动分页
258
+				pageSize: 10, //每页显示的记录数
259
+				pageNumber: 1, //当前第几页
260
+				pageList: [10,15,20,30, 50, 100], //记录数可选列表
261
+				search: false, //是否启用查询
262
+				showColumns: false, //显示下拉框勾选要显示的列
263
+				showRefresh: false, //显示刷新按钮
264
+				sidePagination: "server", //表示服务端请求
265
+				//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
266
+				//设置为limit可以获取limit, offset, search, sort, order
267
+				queryParamsType: "undefined",
268
+				queryParams: function queryParams(params) { //设置查询参数
269
+					var param = {
270
+						pageindex: params.pageNumber,
271
+						pagesize: params.pageSize,
272
+						token: token,
273
+						name: jsname //角色名称
274
+					};
275
+					return param;
276
+				},
277
+				onLoadSuccess: function() { //加载成功时执行
278
+					//layer.msg("加载成功");
279
+				},
280
+				onLoadError: function() { //加载失败时执行
281
+					//layer.msg("加载数据失败", { time: 1500, icon: 2 });
282
+				}
283
+			});
284
+		}
285
+		/*选中行添加背景颜色*/
286
+		var jsid;
287
+		table.on("click-row.bs.table", function(e, row, ele) {
288
+			$('.success').removeClass('success'); //去除之前选中的行的,选中样式
289
+			$(ele).addClass('success'); //添加当前选中的 success样式用于区别
290
+			jsid = row.F_RoleId;
291
+			tree(jsid);
292
+		});
293
+
294
+		function setCode(val, row, index) {
295
+			    var page = table.bootstrapTable("getPageCode");  
296
+            return page.pageSize * (page.pageNumber - 1) + index + 1;  
297
+		}

+ 458 - 0
CallCenterWeb.UI/SystemManager/js/shuJuZiDian.js

@@ -0,0 +1,458 @@
1
+	var token = $.cookie("token");
2
+	var table = $('#table1');
3
+	var bs;//字典标识
4
+	//左边表格
5
+	   initTable(token);
6
+		function initTable(token) {
7
+		//先销毁表格
8
+		table.bootstrapTable('destroy');
9
+		//初始化表格,动态从服务器加载数据
10
+		table.bootstrapTable({
11
+			method: "get", //使用get请求到服务器获取数据
12
+			url: huayi.config.callcenter_url+"Dictionary/GetList", //获取数据的Servlet地址
13
+//			url: "shuJuZiDian.json", //获取数据的Servlet地址
14
+			striped: true, //表格显示条纹
15
+			pagination: true, //启动分页
16
+			pageSize:10, //每页显示的记录数
17
+			pageNumber: 1, //当前第几页
18
+			pageList: [10, 15,20,30,50, 100], //记录数可选列表
19
+			search: false, //是否启用查询
20
+			showColumns: false, //显示下拉框勾选要显示的列
21
+			showRefresh: false, //显示刷新按钮
22
+			sidePagination: "server", //表示服务端请求
23
+			//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
24
+			//设置为limit可以获取limit, offset, search, sort, order
25
+			queryParamsType: "undefined",
26
+			queryParams: function queryParams(params) { //设置查询参数
27
+				var param = {
28
+					pageindex: params.pageNumber,
29
+					pagesize: params.pageSize,
30
+					token: token
31
+				};
32
+				return param;
33
+			},
34
+			onLoadSuccess: function() { //加载成功时执行
35
+				//layer.msg("加载成功");
36
+			},
37
+			onLoadError: function() { //加载失败时执行
38
+				//layer.msg("加载数据失败", { time: 1500, icon: 2 });
39
+			}
40
+		});
41
+	}
42
+			/*获取选中行对象*/
43
+			table.on("click-row.bs.table", function(e, row, ele) {
44
+				$('.success').removeClass('success');//去除之前选中的行的,选中样式
45
+				$(ele).addClass('success');//添加当前选中的 success样式用于区别
46
+				bs=row.flag;
47
+				initTableRight(token,bs);
48
+			});
49
+			function oper(val,row) {
50
+        return '<div class="pull-right">'+
51
+            '<a class="del" title="删除" style="margin-right:5px;" onclick= SC("' + row.flag + '")><i class="shanChu"></i></a>' +
52
+           '<a class="xg" title="修改"><i class="xiuGai"></i></a>'+
53
+            '</div>'+
54
+            '<div class="pull-left">' + val + '</div>'
55
+    }
56
+	function setCodeLeft(val, row, index) {
57
+			var page = table.bootstrapTable("getPageCode");  
58
+            return page.pageSize * (page.pageNumber - 1) + index + 1;  
59
+		}
60
+	//====================添加功能开始=============================
61
+		$('.tjzd').click(function() {
62
+			$('.addModel').css('display', 'block');
63
+		})
64
+		//关闭按钮
65
+		$('.addBtr ').click(function() {
66
+			$('.addModel').css('display', 'none');
67
+		})
68
+		//保存按钮
69
+		$('.addCunzd').click(function() {
70
+			$('.addModel').css('display', 'none');
71
+			if($('.inps1').val()==''||$('.addzdz').val()==''){
72
+					layer.confirm('字典标志与值不允许为空!', {
73
+		 			btn: ['确定']
74
+		 		});
75
+		 		return;
76
+			}else{
77
+				tjCunzd(token)
78
+			}
79
+			;
80
+		})
81
+		function tjCunzd(token){
82
+//  		参数:dicflag=字典标识&name=字典名称&sort=排序
83
+			$.ajax({
84
+				type:"post",
85
+				url:huayi.config.callcenter_url+"Dictionary/AddDic",
86
+				async:true,
87
+				dataType:"json",
88
+				data:{
89
+					token: token,
90
+					dicflag:$('.inps1').val(),
91
+					Name:$('.addzdz').val(),
92
+					sort:$('.addSort').val()
93
+           	},
94
+           	success:function(data){
95
+           		if(data.state.toLowerCase() =='success'){
96
+           			layer.msg("添加成功!");
97
+           			table.bootstrapTable('refresh');
98
+           			$('.inps1').val('');
99
+					$('.addzdz').val('');
100
+					$('.addSort').val('');
101
+           		}
102
+           	}
103
+			});
104
+			
105
+		}
106
+	//*****************添加功能结束==============================
107
+	
108
+			
109
+	//=================字典删除功能开始==================================
110
+		var leftId;
111
+//		window.operateEvents = {
112
+//      'click .del': function (e, value, row) {
113
+//      	$('.delModel').css('display','block');
114
+//      	$('.delName').html(row.text);
115
+//      	 leftId=row.id
116
+//      	console.log(typeof(leftId));
117
+//     	}
118
+//  	};
119
+    	function SC(te){
120
+    		$('.delModel').css('display','block');
121
+        	$('.delName').html(te);
122
+        	 leftId=te
123
+    	}
124
+       	$('.sure').click(function(){
125
+    		$('.delModel').css('display','none');
126
+    		//console.log(leftId);
127
+      		$.ajax({
128
+           	type:"post",
129
+           	url:huayi.config.callcenter_url+"Dictionary/DelDic",
130
+           	async:true,
131
+           	dataType:'json',
132
+           	data:{
133
+           		ids:leftId,
134
+           		token: token
135
+           	},
136
+           	success:function(data){
137
+           		console.log(data)
138
+           		if(data.state.toLowerCase() =='success'){
139
+           			layer.msg("删除成功!");
140
+           			table.bootstrapTable('refresh');
141
+           		}
142
+           	}
143
+           });
144
+    	})
145
+    
146
+    	//关闭按钮
147
+    	$('.delBtr').click(function(){
148
+    			$('.delModel').css('display','none');
149
+    	})
150
+    	//取消按钮
151
+    	$('.return').click(function(){
152
+    			$('.delModel').css('display','none');
153
+    	})
154
+    	
155
+	//*********************字典删除功能结束==================================
156
+	//=====================字典修改功能开始==================================
157
+		var chbs;
158
+		window.operateEvents = {
159
+        'click .xiuGai': function (e, value, row) {
160
+        	$('.changeModel').css('display','block');
161
+        	$('.chanName').html(row.name);
162
+      	 	chbs=row.flag
163
+    		//console.log(chbs);
164
+    		getZiDian(token,chbs);
165
+       	}
166
+    	};
167
+			function getZiDian(token,chbs){
168
+				console.log(chbs);
169
+				$.ajax({
170
+					type:"get",
171
+					url:huayi.config.callcenter_url+"Dictionary/GetDic",
172
+					async:true,
173
+					dataType:'json',
174
+					data:{
175
+						dicflag:chbs,
176
+						token: token
177
+           	},
178
+					success:function(data){
179
+						var con=data.data;
180
+						$('.inps4').val(con.flag);
181
+						$('.chanzdz').val(con.name);
182
+						$('.changeCode').val(con.sort);
183
+					}
184
+				});
185
+				
186
+			}
187
+		//关闭按钮
188
+		$('.changeBtr').click(function() {
189
+			$('.changeModel').css('display', 'none');
190
+		})
191
+	//保存按钮
192
+	$('.chanCun').click(function(){
193
+		$('.changeModel').css('display', 'none');
194
+		cunZiDian(token);
195
+	})
196
+	
197
+	function cunZiDian(token){
198
+		$.ajax({
199
+			type:"get",
200
+			url:huayi.config.callcenter_url+"Dictionary/EditDic",
201
+			async:true,
202
+			dataType:'json',
203
+			data:{
204
+				dicflag:$('.inps4').val(),
205
+				Name: $('.chanzdz').val(),
206
+				sort:$('.changeCode').val(),
207
+				token: token
208
+			},
209
+			success:function(data){
210
+				if(data.state.toLowerCase() =='success'){
211
+						layer.msg("修改成功!");
212
+           			table.bootstrapTable('refresh');
213
+           			$('.inps4').val('');
214
+					$('.chanzdz').val('');
215
+					$('.changeCode').val('');
216
+				}
217
+			}
218
+		});
219
+	
220
+	}
221
+	
222
+	//*********************字典修改功能结束==================================
223
+	
224
+	//右边表格
225
+	var tableRight=$('#table2');
226
+	initTableRight(token,bs);
227
+	function initTableRight(token,bs) {
228
+		//先销毁表格
229
+		tableRight.bootstrapTable('destroy');
230
+		//初始化表格,动态从服务器加载数据
231
+		tableRight.bootstrapTable({
232
+			method: "get", //使用get请求到服务器获取数据
233
+			url: huayi.config.callcenter_url+"Dictionary/GetDicValueList", //获取数据的Servlet地址
234
+//			url: "shuJuZiDianTBR.json", //获取数据的Servlet地址
235
+			striped: true, //表格显示条纹
236
+			pagination: true, //启动分页
237
+			pageSize:10, //每页显示的记录数
238
+			pageNumber: 1, //当前第几页
239
+			pageList: [10,15,20,30, 50, 100], //记录数可选列表
240
+			search: false, //是否启用查询
241
+			showColumns: false, //显示下拉框勾选要显示的列
242
+			showRefresh: false, //显示刷新按钮
243
+			sidePagination: "server", //表示服务端请求
244
+			//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
245
+			//设置为limit可以获取limit, offset, search, sort, order
246
+			queryParamsType: "undefined",
247
+			queryParams: function getParams(params) { //设置查询参数
248
+				var param = {
249
+					pageindex: params.pageNumber,
250
+					pagesize: params.pageSize,
251
+					token: token,
252
+					flag:$('.sear_bs').val(),
253
+					name:$('.sear_name').val(),
254
+					id:bs
255
+				};
256
+				return param;
257
+			},
258
+			onLoadSuccess: function() { //加载成功时执行
259
+				//layer.msg("加载成功");
260
+			},
261
+			onLoadError: function() { //加载失败时执行
262
+				//layer.msg("加载数据失败", { time: 1500, icon: 2 });
263
+			}
264
+		});
265
+	}
266
+	
267
+	function setCodeRight(val, row, index) {
268
+			    var page = table.bootstrapTable("getPageCode");  
269
+            return page.pageSize * (page.pageNumber - 1) + index + 1;  
270
+		}
271
+	
272
+	//========================字典列表添加功能开始==================================
273
+	    $('.zdl_add').click(function(){
274
+	    	if(bs){
275
+	    			$('.zdlist_addModel').css('display','block');
276
+	    			$('.inps5').val(bs)
277
+	    	}else{
278
+	    		layer.confirm('请选择要添加的类!', {
279
+				btn: ['确定']
280
+			});
281
+			return;
282
+	    	}
283
+	    
284
+	    })
285
+	    //关闭按钮
286
+	    $('.addListBtr').click(function(){
287
+	    	$('.zdlist_addModel').css('display','none');
288
+	    })
289
+	    //保存按钮
290
+	    $('.addList_cun').click(function(){
291
+	    	$('.zdlist_addModel').css('display','none');
292
+	    	addList();
293
+	    })
294
+		function addList(){
295
+			$.ajax({
296
+				type:"post",
297
+				url:huayi.config.callcenter_url+"Dictionary/AddDicValue",
298
+				async:true,
299
+				dataType:'json',
300
+				data:{
301
+					token: token,
302
+					dicflag:$('.inps5').val(),
303
+					dicvname:$('.addList_zdz').val(),
304
+					dicdes:$('.addList_remark').val(),
305
+					sort:$('.addList_sort').val()
306
+				},
307
+				success:function(data){
308
+					if(data.state.toLowerCase() =='success'){
309
+					layer.msg("添加成功!");
310
+					initTableRight(token,bs);
311
+					$('.inps5').val('');
312
+					$('.addList_zdz').val('');
313
+					$('.addList_remark').val('');
314
+					$('.addList_sort').val('');
315
+				}
316
+				}
317
+			});
318
+	
319
+}
320
+	    
321
+	//************************字典列表添加功能结束==================================
322
+		
323
+	//========================字典列表修改功能开始==================================
324
+
325
+		var rlag
326
+	 $('.zdl_change').click(function(){
327
+	 		 var rvd= $.map(tableRight.bootstrapTable('getSelections'), function(row) {
328
+					return row.F_DictionaryValueId;
329
+					//console.log(row.F_DictionaryValueId);
330
+				});
331
+				rlag=rvd.toString();
332
+		 	if(rvd.length<=0){
333
+		 		layer.confirm('请选择一行进行修改!', {
334
+				btn: ['确定']
335
+			});
336
+			return;
337
+		 	}else{
338
+		 		$('.zdlist_chanModel').css('display','block');
339
+		 		//console.log(rlag);
340
+		 		getzdv(token,rlag);
341
+		 	}
342
+	    	
343
+	    })
344
+	    //关闭按钮
345
+	    $('.chanListBtr').click(function(){
346
+	    	$('.zdlist_chanModel').css('display','none');
347
+	    })
348
+	    function getzdv(token,rlag){
349
+	    	$.ajax({
350
+				type:"get",
351
+				url:huayi.config.callcenter_url+"Dictionary/GetDicValue",
352
+				async:true,
353
+				dataType:'json',
354
+				data:{
355
+					token: token,
356
+					dicvalueid:rlag
357
+				},
358
+				success:function(data){
359
+					var con=data.data;
360
+					$('.inps6').val(con.dicflag);
361
+					$('.chanList_zdz').val(con.name);
362
+					$('.chanList_remark').val(con.remark);
363
+					$('.chanList_sort').val(con.sort);
364
+				}
365
+			});
366
+	
367
+	    }
368
+	    //保存按钮
369
+	    $('.chanList_cun').click(function(){
370
+	    	$('.zdlist_chanModel').css('display','none');
371
+	    	tjc(token,rlag);
372
+	    	
373
+	    })
374
+	    function tjc(token,rlag){
375
+	    	$.ajax({
376
+	    		type:"post",
377
+	    		url:huayi.config.callcenter_url+"Dictionary/EditDicValue",
378
+	    		async:true,
379
+	    		dataType:'json',
380
+	    		data:{
381
+	    			token: token,
382
+	    			dicflag:$('.inps6').val(),
383
+	    			dicvid:rlag,
384
+	    			dicvname:$('.chanList_zdz').val(),
385
+	    			dicdes:	$('.chanList_remark').val(),
386
+	    			sort:$('.chanList_sort').val()
387
+	    			
388
+	    		},
389
+	    		success:function(data){
390
+	    			if(data.state.toLowerCase() =='success'){
391
+					layer.msg("修改成功");
392
+					initTableRight(token,bs);
393
+					$('.inps6').val('');
394
+	    			$('.chanList_zdz').val('');
395
+	    			$('.chanList_remark').val('');
396
+	    			$('.chanList_sort').val('');
397
+				}
398
+	    			
399
+	    		}
400
+	    	});
401
+	    	
402
+	    }
403
+	//************************字典列表修改功能结束==================================
404
+		
405
+	//========================字典列表删除功能开始==================================
406
+ 		var did;
407
+ 	$('.zdl_del').click(function(){
408
+ 			 did= $.map(tableRight.bootstrapTable('getSelections'), function(row) {
409
+					return row.F_DictionaryValueId;
410
+				});
411
+//				did=idd.toString()
412
+				if(did.length<=0){
413
+						layer.confirm('请选择一行删除!', {
414
+				btn: ['确定']
415
+			});
416
+			return;
417
+				}else{
418
+					$('.zdlist_delModel').css('display','block');
419
+				}
420
+	    })
421
+	    //关闭按钮
422
+	    $('.delListBtr').click(function(){
423
+	    	$('.zdlist_delModel').css('display','none');
424
+	    })
425
+	    //取消按钮
426
+	     $('.delList_return').click(function(){
427
+	    	$('.zdlist_delModel').css('display','none');
428
+	    })
429
+	     //确定按钮
430
+	        $('.delList_sure').click(function(){
431
+	    	$('.zdlist_delModel').css('display','none');
432
+	    	 sctj(token,did);
433
+	    })
434
+	        function sctj(token,did){
435
+//	        	console.log(did)
436
+	        	$.ajax({
437
+	        		type:"post",
438
+	        		url:huayi.config.callcenter_url+"Dictionary/DelDicValue",
439
+	        		async:true,
440
+	        		dataType:'json',
441
+	        		data:{
442
+	        			token: token,
443
+	        			ids:did
444
+	        		},
445
+	        		success:function(data){
446
+	        			if(data.state=="success"){
447
+						layer.msg("删除成功!");
448
+						initTableRight(token,bs);
449
+					}
450
+	        		}
451
+	        	});
452
+	        }
453
+	//************************字典列表删除功能结束==================================
454
+		
455
+	//搜索事件
456
+	$('.sousuo').click(function(){
457
+		initTableRight(token,bs);
458
+	})

+ 742 - 0
CallCenterWeb.UI/SystemManager/js/yongHuManger.js

@@ -0,0 +1,742 @@
1
+var token = $.cookie("token");
2
+var id; //当前节点id
3
+var pid; //当前父节点ID
4
+var name; //选择的name
5
+var pidName; //父节点name
6
+var keyWord = $('.searCon').val(); //关键字
7
+var xlName; //添加下拉框节点name
8
+var table = $('#table1'); //右边表格
9
+//搜索按钮
10
+$('.searchGo').click(function() {
11
+	keyWord = $('.searCon').val();
12
+	console.log(keyWord);
13
+	initTable(token, id, keyWord);
14
+	//if(keyWord) {
15
+	//	initTable(token, id, keyWord);
16
+	//} else {
17
+	//	layer.confirm('请输入搜索内容!', {
18
+	//		btn: ['确定']
19
+	//	});
20
+	//	return;
21
+	//}
22
+
23
+})
24
+$.get(huayi.config.callcenter_url + "Department/GetDeptList", {
25
+	"token": $.cookie("token"),
26
+	"pid": pid
27
+}, function(result) {
28
+	result = $.parseJSON(result);
29
+	$.fn.zTree.init($("#treeDemo"), setting1, result.data); //实例化树形图
30
+});
31
+var setting1 = {
32
+	data: {
33
+		key: {
34
+			name: "text"
35
+		},
36
+		simpleData: {
37
+			enable: true,
38
+			idKey: "id",
39
+			rootPId: 0
40
+		}
41
+	},
42
+	callback: {
43
+		onClick: zTreeOnClick
44
+	}
45
+};
46
+
47
+function zTreeOnClick(event, treeId, treeNode) {
48
+	id = treeNode.id;
49
+	name = treeNode.text;
50
+	var pidnode = treeNode.getParentNode();
51
+	if(pidnode) {
52
+		pidName = pidnode.text;
53
+		pid = pidnode.id;
54
+		console.log(pid);
55
+	} else {
56
+		pidName = "顶级分类";
57
+		pid == 0;
58
+		console.log(pid);
59
+	}
60
+	keyWord = $('.searCon').val();
61
+	initTable(token, id, keyWord)
62
+};
63
+
64
+//===============添加功能开始=============================
65
+laydate.skin('molv');
66
+//用户生日
67
+laydate({
68
+	elem: '#ygbirth',
69
+	event: 'focus',
70
+	istoday: true,
71
+	format: 'YYYY-MM-DD', // 分隔符可以任意定义,该例子表示只显示年月
72
+});
73
+//下拉
74
+$('.inps').focus(function() {
75
+	$(this).siblings('.addTree').css('display', 'block');
76
+})
77
+
78
+$('.xl').click(function() {
79
+	var xl = $(this).siblings('.addTree');
80
+	if(xl.css('display') == 'block') {
81
+		xl.css('display', 'none')
82
+	} else {
83
+		xl.css('display', 'block')
84
+	}
85
+})
86
+$('.addTree').mouseleave(function() {
87
+	$(this).css('display', 'none')
88
+})
89
+
90
+//添加按钮
91
+$('.add').click(function() {
92
+	$('.addModel').css('display', 'block');
93
+	addjs(token); //获取所属角色
94
+	adddep(); //获取所属部门
95
+	addzxz(); //获取坐席组
96
+})
97
+$('.addBtr').click(function() {
98
+	$('.addModel').css('display', 'none');
99
+})
100
+
101
+//保存添加按钮
102
+$('.addCun').click(function() {
103
+	if($('.add_ygName').val() == '' || $('.add_ygCode').val() == '' || $('.add_pwd').val() == '' || $('.inps1').val() == '' || $('.inps2').val() == '') {
104
+		layer.confirm('标红内容不允许为空!', {
105
+			btn: ['确定']
106
+		});
107
+		return;
108
+	} else if($('.add_pwd').val() !== $('.add_pwd2').val()) {
109
+		layer.confirm('密码输入不一致!', {
110
+			btn: ['确定']
111
+		});
112
+		return;
113
+	} else {
114
+		addCun(did, jsid, zxid)
115
+
116
+		$('.addModel').css('display', 'none');
117
+	}
118
+})
119
+//保存所调方法
120
+function addCun(did, jsid, zxid) {
121
+	$.ajax({
122
+		type: "post",
123
+		url: huayi.config.callcenter_url + "UserAccount/AddUsers",
124
+		async: true,
125
+		dataType: 'json',
126
+		data: {
127
+			token: $.cookie("token"),
128
+			usercode: $('.add_ygCode').val(),
129
+			username: $('.add_ygName').val(),
130
+			password: $('.add_pwd').val(),
131
+			extno: $('.add_fenji').val(),
132
+			//wxno:$('.add_wxno').val(),
133
+			deptid: did,
134
+			roleid: jsid,
135
+			groupid: zxid, //'组id?'
136
+			isseat: $('.addhwb input[name="huwu"]:checked ').val(),
137
+			searright: $('.addzxqx input[name="zxqx"]:checked ').val(),
138
+			sex: $('.addSex input[name="sex"]:checked ').val(),
139
+			mobile: $('.add_mobile').val(),
140
+			telphone: $('.add_telphone').val(),
141
+			birth: $('.add_birth').val(),
142
+			hjtype: $('.add_zxlx input[name="zxqx"]:checked ').val(),
143
+			remark: $('.add_remark').val()
144
+		},
145
+		success: function(data) {
146
+			if(data.state.toLowerCase() == "success") {
147
+				layer.msg("添加成功!");
148
+				table.bootstrapTable('refresh');
149
+				Clean();
150
+			}
151
+		}
152
+
153
+	});
154
+}
155
+//清除表格
156
+function Clean() {
157
+	$('.add_ygCode').val('');
158
+	$('.add_ygName').val('');
159
+	$('.add_pwd').val('');
160
+	$('.add_pwd2').val('');
161
+	$('.add_fenji').val('');
162
+	$('.inps1').val('');
163
+	$('.inps2').val('');
164
+	$('.inps3').val('');
165
+	$('.addhwb input[name="huwu"]').removeAttr('checked');
166
+	$('.addzxqx input[name="zxqx"]').removeAttr('checked');
167
+	$('.addSex input[name="sex"]').removeAttr('checked');
168
+	$('.add_mobile').val('');
169
+	$('.add_telphone').val('');
170
+	$('.add_birth').val('');
171
+	$('.add_zxlx input[name="zxqx"]').removeAttr('checked');
172
+	$('.add_remark').val('');
173
+}
174
+//所属角色列表
175
+var jsid; //角色id
176
+$('.xlAdd_one ul').on('click', 'li', function() {
177
+	$('.inps1').val($(this).html());
178
+	jsid = $(this).attr('data-id');
179
+	console.log(jsid);
180
+	//		$(this).addClass('fouceli').siblings().removeClass('fouceli');
181
+	$(this).parent().parent().css('display', 'none');
182
+})
183
+
184
+//获取角色列表 
185
+function addjs(token) {
186
+	$('.xlAdd_one ul').html('');
187
+
188
+	$.ajax({
189
+		type: "get",
190
+		url: huayi.config.callcenter_url + "RoleInfo/GetRoleList",
191
+		async: true,
192
+		dataType: 'json',
193
+		data: {
194
+			token: token,
195
+			code: '',
196
+			name: ''
197
+		},
198
+		success: function(data) {
199
+			var con = data.rows;
200
+			//				console.log(con);
201
+			for(var i = 0; i < con.length; i++) {
202
+				$('<li data-id=' + con[i].F_RoleId + '>' + con[i].F_RoleName + '</li>').appendTo('.xlAdd_one ul');
203
+			}
204
+		}
205
+	});
206
+}
207
+//获取所属部门
208
+var setting2 = {
209
+	data: {
210
+		key: {
211
+			name: "text"
212
+		},
213
+		simpleData: {
214
+			enable: true,
215
+			idKey: "id",
216
+			rootPId: 0
217
+		}
218
+	},
219
+	callback: {
220
+		onClick: ztreeDep
221
+	}
222
+};
223
+var did; //部门id
224
+var dname; //部门name
225
+function ztreeDep(event, treeId, treeNode) {
226
+	did = treeNode.id;
227
+	dname = treeNode.text;
228
+	$('.inps2').val(dname);
229
+};
230
+
231
+function adddep() {
232
+	$.get(huayi.config.callcenter_url + "Department/GetDeptList", {
233
+		"token": $.cookie("token"),
234
+		"pid": pid
235
+	}, function(result) {
236
+		result = $.parseJSON(result);
237
+		$.fn.zTree.init($("#xlAdd_depTree"), setting2, result.data); //实例化树形图
238
+	});
239
+}
240
+//获取坐席组列表
241
+var setting3 = {
242
+	data: {
243
+		key: {
244
+			name: "F_ZXZName"
245
+		},
246
+		simpleData: {
247
+			enable: true,
248
+			idKey: "F_ZXZID",
249
+			rootPId: 0
250
+		}
251
+	},
252
+	callback: {
253
+		onClick: ztreeZxz
254
+	}
255
+};
256
+var zxid; //坐席组id
257
+var zxname; //坐席组name
258
+function ztreeZxz(event, treeId, treeNode) {
259
+	zxid = treeNode.F_ZXZID;
260
+	zxname = treeNode.F_ZXZName;
261
+	$('.inps3').val(zxname);
262
+};
263
+
264
+function addzxz() {
265
+	$.get(huayi.config.callcenter_url + "SeatGroup/GetSeatList?", {
266
+		"token": $.cookie("token")
267
+	}, function(result) {
268
+		result = $.parseJSON(result);
269
+		$.fn.zTree.init($("#xlAdd_zxz"), setting3, result.data); //实例化树形图
270
+	});
271
+}
272
+
273
+//***********************添加功能结束=============================
274
+
275
+//=======================修改功能开始==============================
276
+laydate.skin('molv');
277
+//用户生日
278
+laydate({
279
+	elem: '#chan_ygbirth',
280
+	event: 'focus',
281
+	istoday: true,
282
+	format: 'YYYY-MM-DD', // 分隔符可以任意定义,该例子表示只显示年月
283
+});
284
+//		var chan_uc;
285
+$('.change').click(function() {
286
+	chanjs(token); //角色列表
287
+	chanGetDep(); //部门列表
288
+	chanGetzx(); //获取坐席
289
+	console.log("用户工号" + chan_uc + "用户编号" + ygbh)
290
+	if(ygbh) {
291
+		$('.changeModel').css('display', 'block');
292
+		getYG(chan_uc, ygbh);
293
+
294
+	} else {
295
+		layer.confirm('请选择要修改的行!', {
296
+			btn: ['确定']
297
+		});
298
+		return;
299
+	}
300
+
301
+})
302
+//删除
303
+$('.move').click(function() {
304
+	if(ygbh) {
305
+		move(chan_uc);
306
+
307
+	} else {
308
+		layer.confirm('请选择要删除的行!', {
309
+			btn: ['确定']
310
+		});
311
+		return;
312
+	}
313
+})
314
+
315
+function move(chan_uc) {
316
+	$.ajax({
317
+		type: "post",
318
+		url: huayi.config.callcenter_url + "UserAccount/DeleteUsers",
319
+		async: true,
320
+		dataType: 'json',
321
+		data: {
322
+			token: token,
323
+			ids: chan_uc,
324
+		},
325
+		success: function(data) {
326
+			if(data.state.toLowerCase() == "success") {
327
+				layer.msg("删除成功!");
328
+				initTable(token, id, keyWord);
329
+			}
330
+		}
331
+	});
332
+}
333
+//所属角色列表
334
+var chan_jsid; //角色id
335
+$('.xlChan_four ul').on('click', 'li', function() {
336
+	$('.inps4').val($(this).html());
337
+	chan_jsid = $(this).attr('data-id');
338
+	console.log(chan_jsid);
339
+	//		$(this).addClass('fouceli').siblings().removeClass('fouceli');
340
+	$(this).parent().parent().css('display', 'none');
341
+})
342
+//获取角色列表 
343
+function chanjs(token) {
344
+	$('.xlChan_four ul').html('');
345
+	$.ajax({
346
+		type: "get",
347
+		url: huayi.config.callcenter_url + "RoleInfo/GetRoleList",
348
+		async: true,
349
+		dataType: 'json',
350
+		data: {
351
+			token: token,
352
+			code: '',
353
+			name: ''
354
+		},
355
+		success: function(data) {
356
+			var con = data.rows;
357
+			//				console.log(con);
358
+			for(var i = 0; i < con.length; i++) {
359
+				$('<li data-id=' + con[i].F_RoleId + '>' + con[i].F_RoleName + '</li>').appendTo('.xlChan_four ul');
360
+			}
361
+		}
362
+	});
363
+}
364
+//获取所属部门
365
+var setting4 = {
366
+	data: {
367
+		key: {
368
+			name: "text"
369
+		},
370
+		simpleData: {
371
+			enable: true,
372
+			idKey: "id",
373
+			rootPId: 0
374
+		}
375
+	},
376
+	callback: {
377
+		onClick: chanaDep
378
+	}
379
+};
380
+var chanDid; //部门id
381
+var chanDname; //部门name
382
+function chanaDep(event, treeId, treeNode) {
383
+	chanDid = treeNode.id;
384
+	chanDname = treeNode.text;
385
+	$('.inps5').val(chanDname);
386
+};
387
+
388
+function chanGetDep() {
389
+	$.get(huayi.config.callcenter_url + "Department/GetDeptList", {
390
+		"token": $.cookie("token"),
391
+		"pid": pid
392
+	}, function(result) {
393
+		result = $.parseJSON(result);
394
+		$.fn.zTree.init($("#xlChan_depTree"), setting4, result.data); //实例化树形图
395
+	});
396
+}
397
+//获取坐席组列表
398
+var setting5 = {
399
+	data: {
400
+		key: {
401
+			name: "F_ZXZName"
402
+		},
403
+		simpleData: {
404
+			enable: true,
405
+			idKey: "F_ZXZID",
406
+			rootPId: 0
407
+		}
408
+	},
409
+	callback: {
410
+		onClick: chanZxz
411
+	}
412
+};
413
+var chanZxid; //坐席组id
414
+var chanZxname; //坐席组name
415
+function chanZxz(event, treeId, treeNode) {
416
+	chanZxid = treeNode.F_ZXZID;
417
+	chanZxname = treeNode.F_ZXZName;
418
+	$('.inps6').val(chanZxname);
419
+};
420
+
421
+function chanGetzx() {
422
+	$.get(huayi.config.callcenter_url + "SeatGroup/GetSeatList?flag=ZXZ", {
423
+		"token": $.cookie("token")
424
+	}, function(result) {
425
+		result = $.parseJSON(result);
426
+		$.fn.zTree.init($("#xlchan_zxz"), setting5, result.data); //实例化树形图
427
+	});
428
+}
429
+//获取用户信息
430
+function getYG(chan_uc, ygbh) {
431
+	$.ajax({
432
+		type: "get",
433
+		url: huayi.config.callcenter_url + "UserAccount/GetUser",
434
+		async: true,
435
+		dataType: 'json',
436
+		data: {
437
+			token: token,
438
+			usercode: ygbh,
439
+			userid: chan_uc
440
+		},
441
+		success: function(data) {
442
+			if(data.state.toLowerCase() == "success") {
443
+				var ygcon = data.data;
444
+				console.log(ygcon.F_ExtensionNumber);
445
+				$('.change_ygName').val(ygcon.F_UserName); //员工姓名
446
+				$('.change_ygCode').val(ygcon.F_WorkNumber); //员工工号
447
+				$('.xlChan_four ul li').each(function(i, n) {
448
+					if($(n).attr("data-id") == ygcon.F_RoleId) {
449
+						$('.inps4').val($(n).text()); //所属角色
450
+						var idd = ygcon.F_RoleId;
451
+						$('.inps4').attr('data_id', idd);
452
+					}
453
+				})
454
+				$('.inps5').val(ygcon.depname); //所属部门
455
+				$('.inps5').attr('data_id', ygcon.F_DeptId);
456
+				$('.change_hwb input[name="huwu"][value="' + ygcon.F_SeatFlag + '"]').prop("checked", "checked"); //话务标志
457
+				$('.change_zxqx input[name="zxqx"][value="' + ygcon.F_SeatRight + '"]').prop("checked", "checked"); //坐席权限
458
+				$('.change_zxlx input[name="call"][value="' + ygcon.F_HJType + '"]').prop("checked", "checked"); //坐席类型
459
+				$('.changeSex input[name="sex"][value="' + ygcon.F_SexFlag + '"]').prop("checked", "checked"); //性别
460
+				$('.inps6').val(ygcon.F_SeatGroup); //坐席组
461
+				$('.inps6').attr('data_id', ygcon.F_GroupId);
462
+				$('.change_fenji').val(ygcon.F_ExtensionNumber); //分机号
463
+				//$('.change_wxno').val(ygcon.F_WXNo);//外呼显示号码
464
+				$('#chan_ygbirth').val(ygcon.F_Birthday); //生日
465
+				$('.change_telphone').val(ygcon.F_Telephone); //电话
466
+				$('.change_mobile').val(ygcon.F_Mobile); //手机
467
+				$('.change_remark').val(ygcon.F_Remark); //备注
468
+			}
469
+		}
470
+
471
+	});
472
+}
473
+//关闭按钮
474
+$('.changeBtr').click(function() {
475
+	$('.changeModel').css('display', 'none');
476
+})
477
+chan_jsid = $('.inps4').attr('data_id'); //角色ID
478
+chanDid = $('.inps5').attr('data_id'); //部门id
479
+chanZxid = $('.inps6').attr('data_id'); //坐席组id
480
+//保存按钮
481
+$('.changeCun').click(function() {
482
+	$('.changeModel').css('display', 'none');
483
+	chan_tj(token, chanDid, chan_jsid, chan_uc, pwd, ygbh, chanZxid);
484
+
485
+})
486
+
487
+function chan_tj(token, chanDid, chan_jsid, chan_uc, pwd, ygbh, chanZxid) {
488
+	$.ajax({
489
+		type: "post",
490
+		url: huayi.config.callcenter_url + "UserAccount/EditUsers",
491
+		async: true,
492
+		dataType: 'json',
493
+		data: {
494
+			token: token,
495
+			userid: chan_uc,
496
+			usercode: $('.change_ygCode').val(),
497
+			username: $('.change_ygName').val(),
498
+			password: pwd,
499
+			extno: $('.change_fenji').val(),
500
+			//wxno:$('.change_wxno').val(),
501
+			worknumber: ygbh,
502
+			deptid: chanDid,
503
+			roleid: chan_jsid,
504
+			groupid: chanZxid,
505
+			isseat: $('.change_hwb input[name="huwu"]:checked ').val(),
506
+			searright: $('.change_zxqx input[name="zxqx"]:checked ').val(),
507
+			sex: $('.changeSex input[name="sex"]:checked ').val(),
508
+			mobile: $('.change_mobile').val(),
509
+			telphone: $('.change_telphone').val(),
510
+			birth: $('#chan_ygbirth').val(),
511
+			hjtype: $('.change_zxlx input[name="call"]:checked ').val(),
512
+			remark: $('.change_remark').val()
513
+		},
514
+		success: function(data) {
515
+			if(data.state.toLowerCase() == "success") {
516
+				layer.msg("修改成功!");
517
+				initTable(token, id, keyWord);
518
+			}
519
+		}
520
+	});
521
+}
522
+
523
+//***********************修改功能结束==============================
524
+
525
+//=======================重设功能开始==============================
526
+$('.again').click(function() {
527
+	if(ygbh) {
528
+		$('.againModel').css('display', 'block');
529
+		$('.again_ygName').val(yhname)
530
+		$('.again_ygCode').val(yhgh)
531
+	} else {
532
+		layer.confirm('请选择要重设密码的用户!', {
533
+			btn: ['确定']
534
+		});
535
+		return;
536
+	}
537
+
538
+})
539
+//关闭按钮
540
+$('.agBtr').click(function() {
541
+	$('.againModel').css('display', 'none');
542
+})
543
+//确定按钮
544
+$('.again_Cun').click(function() {
545
+	if($('.again_pwd').val() !== $('.again_pwd2').val()) {
546
+		layer.confirm('密码不一致,请重新输入!', {
547
+			btn: ['确定']
548
+		});
549
+		return;
550
+		//			$('.again_pwd').val('');
551
+		$('.again_pwd2').val('');
552
+	} else {
553
+		$('.againModel').css('display', 'none');
554
+		cs(ygbh); //重设密码
555
+	}
556
+
557
+})
558
+
559
+function cs(ygbh) {
560
+	$.ajax({
561
+		type: "post",
562
+		url: huayi.config.callcenter_url + "UserAccount/ResetPwd",
563
+		async: true,
564
+		dataType: 'json',
565
+		data: {
566
+			token: token,
567
+			usercode: ygbh,
568
+			pwd: $('.again_pwd').val()
569
+		},
570
+		success: function(data) {
571
+			if(data.state.toLowerCase() == "success") {
572
+				layer.msg("重设密码成功!");
573
+				initTable(token, id, keyWord);
574
+			}
575
+		}
576
+	});
577
+}
578
+//***********************重设功能结束==============================
579
+var state;
580
+//=======================禁用功能开始==============================
581
+$('.ban').click(function() {
582
+	if(buMenId) {
583
+		$('.banModel').css('display', 'block');
584
+	} else {
585
+		layer.confirm('请选择行!', {
586
+			btn: ['确定']
587
+		});
588
+		return;
589
+	}
590
+})
591
+//关闭按钮
592
+$('.banBtr').click(function() {
593
+	$('.banModel').css('display', 'none');
594
+})
595
+//取消按钮
596
+$('.banReturn').click(function() {
597
+	$('.banModel').css('display', 'none');
598
+})
599
+
600
+//确定按钮
601
+$('.banSure').click(function() {
602
+	$('.banModel').css('display', 'none');
603
+	state = 1;
604
+	console.log(state);
605
+	bu(chan_uc, state);
606
+
607
+})
608
+
609
+function bu(chan_uc, state) {
610
+	$.ajax({
611
+		type: "post",
612
+		url: huayi.config.callcenter_url + "UserAccount/DelUsers",
613
+		async: true,
614
+		dataType: 'json',
615
+		data: {
616
+			token: token,
617
+			ids: chan_uc,
618
+			state: state
619
+		},
620
+		success: function(data) {
621
+			if(data.state.toLowerCase() == "success") {
622
+				initTable(token, id, keyWord);
623
+			}
624
+		}
625
+	});
626
+}
627
+//***********************禁用功能结束==============================
628
+
629
+//=======================启用功能开始==============================
630
+$('.using').click(function() {
631
+	if(buMenId) {
632
+		$('.useModel').css('display', 'block');
633
+	} else {
634
+		layer.confirm('请选择行!', {
635
+			btn: ['确定']
636
+		});
637
+		return;
638
+
639
+	}
640
+})
641
+//关闭按钮
642
+$('.useBtr').click(function() {
643
+	$('.useModel').css('display', 'none');
644
+})
645
+//取消按钮
646
+$('.useReturn').click(function() {
647
+	$('.useModel').css('display', 'none');
648
+})
649
+//确定按钮
650
+$('.useSure').click(function() {
651
+	state = 0;
652
+	console.log(state);
653
+	$('.useModel').css('display', 'none');
654
+	bu(chan_uc, state);
655
+})
656
+//***********************启用功能结束==============================
657
+
658
+//右边表格
659
+initTable(token, id, keyWord);
660
+
661
+function initTable(token, id, keyWord) {
662
+	//先销毁表格
663
+	table.bootstrapTable('destroy');
664
+	//初始化表格,动态从服务器加载数据
665
+	table.bootstrapTable({
666
+		method: "get", //使用get请求到服务器获取数据
667
+		url: huayi.config.callcenter_url + "UserAccount/GetList", //获取数据的Servlet地址
668
+		striped: true, //表格显示条纹
669
+		pagination: true, //启动分页
670
+		pageSize: 10, //每页显示的记录数
671
+		pageNumber: 1, //当前第几页
672
+		pageList: [10, 15, 20, 30, 50, 100], //记录数可选列表
673
+		search: false, //是否启用查询
674
+		showColumns: false, //显示下拉框勾选要显示的列
675
+		showRefresh: false, //显示刷新按钮
676
+		sidePagination: "server", //表示服务端请求
677
+		//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
678
+		//设置为limit可以获取limit, offset, search, sort, order
679
+		queryParamsType: "undefined",
680
+		queryParams: function queryParams(params) { //设置查询参数
681
+			var param = {
682
+				pageindex: params.pageNumber,
683
+				pagesize: params.pageSize,
684
+				token: token,
685
+				dptid: id,
686
+				key: keyWord
687
+			};
688
+			return param;
689
+		},
690
+		onLoadSuccess: function() { //加载成功时执行
691
+			//layer.msg("加载成功");
692
+		},
693
+		onLoadError: function() { //加载失败时执行
694
+			//layer.msg("加载数据失败", { time: 1500, icon: 2 });
695
+		}
696
+	});
697
+}
698
+/*选中行添加背景颜色*/
699
+var ygbh, chan_uc, pwd, buMenId, yhname, yhgh;
700
+table.on("click-row.bs.table", function(e, row, ele) {
701
+	$('.success').removeClass('success'); //去除之前选中的行的,选中样式
702
+	$(ele).addClass('success'); //添加当前选中的 success样式用于区别
703
+	ygbh = row.F_UserCode; //用户编号
704
+	chan_uc = row.F_UserId; //用户id
705
+	pwd = row.F_Password; //密码
706
+	buMenId = row.F_DeptId; //部门id
707
+	yhname = row.F_UserName; //用户name
708
+	yhgh = row.F_WorkNumber; //用户工号
709
+	//				alert(chan_uc)
710
+
711
+});
712
+
713
+function setCode(val, row, index) {
714
+	var page = table.bootstrapTable("getPageCode");
715
+	return page.pageSize * (page.pageNumber - 1) + index + 1;
716
+}
717
+
718
+function setZuoType(val) {
719
+	var str = '';
720
+	switch(val + '') {
721
+		case '0':
722
+			str = "呼入组";
723
+			break;
724
+		case '1':
725
+			str = "呼出组";
726
+			break;
727
+	}
728
+	return str;
729
+}
730
+
731
+function setYongState(val) {
732
+	var str = '';
733
+	switch(val + '') {
734
+		case '0':
735
+			str = "正常";
736
+			break;
737
+		case '1':
738
+			str = "禁用";
739
+			break;
740
+	}
741
+	return str;
742
+}

+ 189 - 0
CallCenterWeb.UI/SystemManager/jueSeQuanXian.html

@@ -0,0 +1,189 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<script src="../Script/Common/huayi.load.js"></script>
7
+   		<script src="../Script/Common/huayi.config.js"></script>
8
+		<link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
9
+		<link rel="stylesheet" href="../css/init.css" />
10
+		<title>系统管理-->角色权限</title>
11
+		<style>
12
+			.box {
13
+				width: 35%;
14
+			}
15
+			.delModel .box,.proModel .box{
16
+				width: 20%;
17
+			}
18
+			
19
+			.boxCon {
20
+				height: 285px;
21
+			}
22
+		
23
+			.boxCon table th {
24
+			    width: 20%;
25
+			}
26
+			.boxCon table td textarea{
27
+				width: 80%;
28
+			}
29
+			.treeTable {
30
+				height: 500px;
31
+			}
32
+			
33
+			.tree {
34
+				height: 100%;
35
+			}
36
+			
37
+			.treeCon {
38
+				height: 90%;
39
+				border: 1px solid #ebebeb;
40
+				overflow-y: auto;
41
+			}
42
+			
43
+			.trTitle {
44
+				width: 100%;
45
+				height: 34px;
46
+				line-height: 34px;
47
+				border-bottom: 1px solid #ebebeb;
48
+				color: red;
49
+				font-weight: 700;
50
+				margin-bottom: 15px;
51
+			}
52
+		</style>
53
+	</head>
54
+
55
+	<body>
56
+		<div class="container-fluid">
57
+			<div class="daoHang clearfix">
58
+				<div class="dhLeft">
59
+					<sapn><i class="syIcon"></i>位置:<a id="ReIndex" href="javaScript:;">首页</a>&gt;<a href="javaScript:;">系统管理</a>&gt;<a href="javaScript:;">权限管理</a>&gt;<a href="" class="nowPosition">角色权限</a></sapn>
60
+				</div>
61
+				<div class="dhRight">
62
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
63
+            	</div>
64
+			</div>
65
+			<div class="toolBar clearfix">
66
+				<div class="toolLeft">
67
+					<button class="btns add">添加</button>
68
+					<button class="btns change">修改</button>
69
+					<button class="btns del">删除</button>
70
+					<button class="btns protect">保存角色权限</button>
71
+				</div>
72
+				<div class="toolRight">
73
+					<span>角色名称:<input type="text" class="searJsz"/></span>
74
+					<button class="btns search">搜索</button>
75
+				</div>
76
+
77
+			</div>
78
+			<div class="treeTable clearfix">
79
+				<div class="tree col-md-3">
80
+					<div class="trTitle"> 角色列表</div>
81
+						<table id="table1"data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
82
+						<thead>
83
+							<tr>
84
+								<th data-align="center" data-field="id" data-formatter="setCode">编号</th>
85
+								<th data-field="F_RoleName" data-align="center">用户角色</th>
86
+						
87
+							</tr>
88
+						</thead>
89
+					</table>
90
+				</div>
91
+				<div class="tableCon col-md-9">
92
+					<div class="trTitle"> 权限设置</div>
93
+					<div class="treeCon">
94
+						<ul id="treeDemo" class="ztree">
95
+							<!--类名为ztree是必须的-->
96
+						</ul>
97
+					</div>
98
+				</div>
99
+			</div>
100
+
101
+		</div>
102
+		<!--添加弹出内容-->
103
+		<div class="model addModel">
104
+			<div class="box">
105
+				<div class="btop clearfix">
106
+					<p class="btl">添加角色信息</p>
107
+					<p class="btr addBtr" title="关闭">X</p>
108
+				</div>
109
+				<div class="boxCon">
110
+					<table>
111
+						<tbody>
112
+							<tr>
113
+								<th style="color: red;">角色值:</th>
114
+								<td colspan="3"><input type="text" class="add_jsz"  /><span class="kong addJsz_kong" style="color: red;">*角色值不允许为空</span></td>
115
+							</tr>
116
+							<tr>
117
+								<th>备注:</th>
118
+								<td colspan="3"><textarea rows="2" cols="20" class="add_bz"></textarea></td>
119
+							</tr>
120
+								
121
+						</tbody>
122
+					</table>
123
+					<div style="text-align: center;"><button class="btns addCun">保存</button></div>
124
+				</div>
125
+			</div>
126
+		</div>
127
+		<!--修改弹出内容-->
128
+		<div class="model changeModel">
129
+			<div class="box">
130
+				<div class="btop clearfix">
131
+					<p class="btl">添加角色信息</p>
132
+					<p class="btr changeBtr" title="关闭">X</p>
133
+				</div>
134
+				<div class="boxCon">
135
+					<table>
136
+						<tbody>
137
+							<tr>
138
+								<th style="color: red;">角色值:</th>
139
+								<td colspan="3"><input type="text" class="change_jsz"  /><span class="kong change_kong" style="color: red;">*角色值不允许为空</span></td>
140
+							</tr>
141
+							<tr>
142
+								<th>备注:</th>
143
+								<td colspan="3"><textarea rows="2" cols="20" class="change_bz"></textarea></td>
144
+							</tr>
145
+								
146
+						</tbody>
147
+					</table>
148
+					<div style="text-align: center;"><button class="btns changeCun">保存</button></div>
149
+				</div>
150
+			</div>
151
+		</div>
152
+		<!--删除弹出内容-->
153
+		<div class="model delModel">
154
+			<div class="box">
155
+				<div class="btop clearfix">
156
+					<p class="btl"><span>删除提示</span></p>
157
+					<p class="btr delBtr" title="关闭">X</p>
158
+				</div>
159
+				<div class="boxCon" style="height: 150px;text-align: center;">
160
+					<p style="font-size: 16px;">您确定删除?</p>
161
+					<p style="margin-top: 30px;"><button class="btns sure">确定</button>
162
+						<button class="btns return">取消</button></p>
163
+				</div>
164
+
165
+			</div>
166
+
167
+		</div>
168
+		<!--删除弹出内容-->
169
+		<div class="model proModel">
170
+			<div class="box">
171
+				<div class="btop clearfix">
172
+					<p class="btl"><span>提示</span></p>
173
+					<p class="btr proBtr" title="关闭">X</p>
174
+				</div>
175
+				<div class="boxCon" style="height: 150px;text-align: center;">
176
+					<p style="font-size: 16px;">保存角色权限成功!</p>
177
+					<p style="margin-top: 30px;"><button class="btns proSure">确定</button>
178
+						</p>
179
+				</div>
180
+
181
+			</div>
182
+
183
+		</div>
184
+	
185
+	</body>
186
+	<script src="../js/zTree/jquery.ztree.core.js"></script>
187
+	<script src="../js/zTree/jquery.ztree.excheck.min.js"></script>
188
+    <script src="./js/jueSeQuanXian.js"></script>
189
+</html>

+ 250 - 0
CallCenterWeb.UI/SystemManager/shuJuZiDian.html

@@ -0,0 +1,250 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<script src="../Script/Common/huayi.load.js"></script>
7
+    	<script src="../Script/Common/huayi.config.js"></script>
8
+		<link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
9
+		<link rel="stylesheet" href="../css/init.css" />
10
+		<link rel="stylesheet" href="./css/shuJuZiDian.css" />
11
+		<title>系统管理-->数据字典</title>
12
+	</head>
13
+
14
+	<body>
15
+		<div class="container-fluid">
16
+			<div class="daoHang clearfix">
17
+				<div class="dhLeft">
18
+					<sapn><i class="syIcon"></i>位置:<a id="ReIndex" href="javaScript:;">首页</a>&gt;<a href="javaScript:;">系统管理</a>&gt;<a href="javaScript:;">系统设置</a>&gt;<a href="" class="nowPosition">数据字典</a></sapn>
19
+				</div>
20
+					<div class="dhRight">
21
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
22
+            	</div>
23
+			</div>
24
+			<div class="toolBar clearfix">
25
+				<div class="toolLeft">
26
+					<button class="btns zdl_add">添加</button>
27
+					<button class="btns zdl_change">修改</button>
28
+				<button class="btns zdl_del">删除</button>
29
+				</div>
30
+				<div class="toolRight">
31
+					<span>字典标识:<input type="text" class="sear_bs"/></span>
32
+					<span>字典值:<input type="text" class="sear_name" /></span>
33
+					<button class="btns sousuo">搜索</button>
34
+				</div>
35
+			</div>
36
+			<div class="treeTable clearfix">
37
+				<div class="tree col-md-3">
38
+					<div class="trTitle"> 字典类别</div>
39
+					<table id="table1"  data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
40
+						<thead>
41
+							<tr>
42
+								<th data-align="center" data-formatter="setCodeLeft">编号</th>
43
+								<th data-field="name" data-align="center" data-formatter="oper"  data-events="operateEvents">字典  <a class="tjzd" title="添加字典"><i class="addZiDian"></i></a></th>
44
+							</tr>
45
+						</thead>
46
+						<!--<tbody id="tbody">
47
+						
48
+						</tbody>-->
49
+					</table>
50
+				</div>
51
+				<div class="tableCon col-md-9">
52
+					<div class="trTitle"> 字典列表</div>
53
+					<div class="tableBox">
54
+						<table id="table2" data-row-style="rowStyle" data-pagination="true" data-query-params="getParams"  >
55
+							<thead>
56
+								<tr>
57
+									<th data-checkbox="true" data-align="center"></th>
58
+									<th data-align="center" data-formatter="setCodeRight">编号</th>
59
+									<th data-field="F_DictionaryFlag" data-align="center">字典标识</th>
60
+									<th data-field="F_Name" data-align="center">字典值</th>
61
+									<th data-field="F_Describe" data-align="center">备注</th>
62
+									<th data-field="F_Sort" data-align="center">排序编号</th>
63
+								</tr>
64
+							</thead>
65
+					
66
+						</table>
67
+					</div>
68
+				</div>
69
+			</div>
70
+
71
+		</div>
72
+		<!--字典添加弹出内容-->
73
+		<div class="model addModel">
74
+			<div class="box">
75
+				<div class="btop clearfix">
76
+					<p class="btl">添加字典信息</p>
77
+					<p class="btr addBtr" title="关闭">X</p>
78
+				</div>
79
+				<div class="boxCon">
80
+					<table>
81
+						<tbody>
82
+							<tr>
83
+								<th>字典标志:</th>
84
+								<td colspan="3">
85
+									<div class="inpBox">
86
+										<input type="text" class="inps inps1" />
87
+									</div>
88
+								</td>
89
+							</tr>
90
+							<tr>
91
+								<th>字典值:</th>
92
+								<td colspan="3"><textarea style="height: 70px;" class="addzdz"></textarea></td>
93
+							</tr>
94
+								<tr>
95
+								<th>排列序号:</th>
96
+								<td colspan="3"><input type="text" class="addSort" /></td>
97
+							</tr>
98
+						</tbody>
99
+					</table>
100
+					<div style="text-align: center;"><button class="btns addCunzd">保存</button></div>
101
+				</div>
102
+			</div>
103
+		</div>
104
+			<!--字典修改弹出内容-->
105
+		<div class="model changeModel">
106
+			<div class="box">
107
+				<div class="btop clearfix">
108
+					<p class="btl">修改&nbsp;&lfloor;&nbsp;&nbsp;<span class="chanName" style="color: red;"></span>&nbsp;&nbsp;&rceil;&nbsp;字典信息</p>
109
+					<p class="btr changeBtr" title="关闭">X</p>
110
+				</div>
111
+				<div class="boxCon">
112
+					<table>
113
+						<tbody>
114
+							<tr>
115
+								<th>字典标志:</th>
116
+								<td colspan="3">
117
+							<div class="inpBox">
118
+										<input type="text" class="inps inps4" />
119
+									</div>
120
+								</td>
121
+							</tr>
122
+							<tr>
123
+								<th>字典值:</th>
124
+								<td colspan="3"><textarea style="height: 70px;" class="chanzdz"></textarea></td>
125
+							</tr>
126
+								<tr>
127
+								<th>排列序号:</th>
128
+								<td colspan="3"><input type="text" class="changeCode" /></td>
129
+							</tr>
130
+						</tbody>
131
+					</table>
132
+					<div style="text-align: center;"><button class="btns chanCun">保存</button></div>
133
+				</div>
134
+			</div>
135
+		</div>
136
+		<!--字典删除弹出内容-->
137
+		<div class="model delModel">
138
+			<div class="box">
139
+				<div class="btop clearfix">
140
+					<p class="btl"><span>删除提示</span></p>
141
+					<p class="btr delBtr" title="关闭">X</p>
142
+				</div>
143
+				<div class="boxCon" style="height: 150px;">
144
+					<p style="text-align: center;font-size: 16px;margin-top: 30px;">您确定删除&nbsp;&lfloor;&nbsp;&nbsp;<span class="delName" style="color: red;"></span>&nbsp;&nbsp;&rceil;&nbsp;?</p>
145
+					<p style="margin-top: 30px;text-align: center;"><button class="btns sure">确定</button>
146
+						<button class="btns return">取消</button></p>
147
+				</div>
148
+
149
+			</div>
150
+
151
+		</div>
152
+			
153
+		<!--字典列表添加弹出内容-->
154
+		<div class="model zdlist_addModel">
155
+			<div class="box">
156
+				<div class="btop clearfix">
157
+					<p class="btl">添加字典信息</p>
158
+					<p class="btr addListBtr" title="关闭">X</p>
159
+				</div>
160
+				<div class="boxCon">
161
+					<table>
162
+						<tbody>
163
+							<tr>
164
+								<th>字典标志:</th>
165
+								<td colspan="3">
166
+									<div class="inpBox">
167
+										<input type="text" class="inps inps5" readonly="readonly" />
168
+									</div>
169
+								</td>
170
+							</tr>
171
+							<tr>
172
+								<th>字典值:</th>
173
+								<td colspan="3"><textarea style="height: 70px;" class="addList_zdz"></textarea></td>
174
+							</tr>
175
+							<tr>
176
+								<th>备注:</th>
177
+								<td colspan="3"><textarea style="height: 70px;" class="addList_remark"></textarea></td>
178
+							</tr>
179
+								<tr>
180
+								<th>排列序号:</th>
181
+								<td colspan="3"><input type="text" class="addList_sort" /></td>
182
+							</tr>
183
+						</tbody>
184
+					</table>
185
+					<div style="text-align: center;"><button class="btns addList_cun">保存</button></div>
186
+				</div>
187
+			</div>
188
+		</div>
189
+	
190
+		<!--字典列表修改弹出内容-->
191
+		<div class="model zdlist_chanModel">
192
+			<div class="box">
193
+				<div class="btop clearfix">
194
+					<p class="btl">修改字典信息</p>
195
+					<p class="btr chanListBtr" title="关闭">X</p>
196
+				</div>
197
+				<div class="boxCon">
198
+					<table>
199
+						<tbody>
200
+							<tr>
201
+								<th>字典标志:</th>
202
+								<td colspan="3">
203
+									<div class="inpBox">
204
+										<input type="text" class="inps inps6" readonly="readonly"/>
205
+									</div>
206
+								</td>
207
+							</tr>
208
+							<tr>
209
+								<th>字典值:</th>
210
+								<td colspan="3"><textarea style="height: 70px;" class="chanList_zdz"></textarea></td>
211
+							</tr>
212
+							<tr>
213
+								<th>备注:</th>
214
+								<td colspan="3"><textarea style="height: 70px;" class="chanList_remark"></textarea></td>
215
+							</tr>
216
+								<tr>
217
+								<th>排列序号:</th>
218
+								<td colspan="3"><input type="text" class="chanList_sort" /></td>
219
+							</tr>
220
+						</tbody>
221
+					</table>
222
+					<div style="text-align: center;"><button class="btns chanList_cun">保存</button></div>
223
+				</div>
224
+			</div>
225
+		</div>
226
+	
227
+	<!--字典列表删除弹出内容-->
228
+		<div class="model zdlist_delModel">
229
+			<div class="box">
230
+				<div class="btop clearfix">
231
+					<p class="btl"><span>删除提示</span></p>
232
+					<p class="btr delListBtr" title="关闭">X</p>
233
+				</div>
234
+				<div class="boxCon" style="height: 150px;">
235
+					<p style="text-align: center;font-size: 16px;margin-top: 30px;">您确定删除所选择的记录吗?</p>
236
+					<p style="margin-top: 30px;text-align: center;"><button class="btns delList_sure">确定</button>
237
+						<button class="btns delList_return">取消</button></p>
238
+				</div>
239
+
240
+			</div>
241
+
242
+		</div>
243
+	
244
+	<script src="../js/zTree/jquery.ztree.core.js"></script>
245
+	<script src="../js/kindeditor/kindeditor.js"></script>
246
+	<script src="../js/kindeditor/lang/zh_CN.js"></script>
247
+	<script src="./js/shuJuZiDian.js"></script>
248
+	</body>
249
+	
250
+</html>

+ 415 - 0
CallCenterWeb.UI/SystemManager/yongHuManger.html

@@ -0,0 +1,415 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<script src="../Script/Common/huayi.load.js"></script>
7
+    	<script src="../Script/Common/huayi.config.js"></script>
8
+		<link href="../css/laydate/need/laydate.css" />
9
+		<link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
10
+		<link rel="stylesheet" href="../css/init.css" />
11
+		<link rel="stylesheet" href="./css/yongHuManger.css" />
12
+		<title>系统管理-->用户管理</title>
13
+	</head>
14
+	<body>
15
+			<div class="container-fluid">
16
+				<div class="daoHang clearfix">
17
+				<div class="dhLeft">
18
+					<sapn><i class="syIcon"></i>位置:<a id="ReIndex" href="javaScript:;">首页</a>&gt;<a href="javaScript:;">系统管理</a>&gt;<a href="javaScript:;">权限管理</a>&gt;<a href="" class="nowPosition">用户管理</a></sapn>
19
+				</div>
20
+				<div class="dhRight">
21
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
22
+            	</div>
23
+			</div>
24
+			<div class="toolBar clearfix">
25
+				<div class="toolLeft">
26
+					<button class="btns add">添加</button>
27
+					<button class="btns change">修改</button>
28
+					<button class="btns again">重设密码</button>
29
+					<button class="btns ban">禁用用户</button>
30
+					<button class="btns using">启用用户</button>
31
+					<button class="btns move">删除</button>
32
+				</div>
33
+				<div class="toolRight">
34
+					<span>搜索内容:<input type="text" class="searCon"placeholder="编号或名称" /></span>
35
+					<button class="btns searchGo">搜索</button>
36
+				</div>
37
+			</div>
38
+			<div class="treeTable clearfix">
39
+				<div class="tree col-md-3">
40
+					<div class="trTitle"> 部门信息</div>
41
+					<div class="treeCon">
42
+						<ul id="treeDemo" class="ztree">
43
+							<!--类名为ztree是必须的-->
44
+						</ul>
45
+					</div>
46
+				</div>
47
+				<div class="tableCon col-md-9">
48
+					<div class="trTitle"> 用户列表</div>
49
+					<table id="table1" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
50
+						<thead>
51
+							<tr>
52
+								<th data-align="center" data-formatter="setCode">编号</th>
53
+								<th data-field="F_UserCode" data-align="center">用户编号</th>
54
+								<th data-field="F_WorkNumber" data-align="center">坐席工号</th>
55
+								<th data-field="F_UserName" data-align="center">用户名称</th>
56
+								<th data-field="F_Telephone" data-align="center">用户电话</th>
57
+								<th data-field="F_Mobile" data-align="center">用户手机</th>
58
+								<th data-field="F_RoleName" data-align="center">用户角色</th>
59
+								<th data-field="F_DeptName" data-align="center">用户部门</th>
60
+								<th data-field="F_SeatGroup" data-align="center">坐席组</th>
61
+								<th data-field="F_DeleteFlag" data-align="center" data-formatter="setYongState">用户状态</th>
62
+								<th data-field="F_LastActiveTime" data-align="center">最后登录时间</th>
63
+							</tr>
64
+						</thead>
65
+					</table>
66
+
67
+				</div>
68
+			</div>
69
+
70
+		</div>
71
+		<!--添加弹出内容-->
72
+		<div class="model addModel">
73
+			<div class="box">
74
+				<div class="btop clearfix">
75
+					<p class="btl">添加用户信息</p>
76
+					<p class="btr addBtr" title="关闭">X</p>
77
+				</div>
78
+				<div class="boxCon">
79
+					<table>
80
+						<tbody>
81
+							<tr>
82
+								<th style="color: darkred;">员工姓名:</th>
83
+								<td><input type="text" class="add_ygName" /></td>
84
+								<th style="color: darkred;">员工工号:</th>
85
+								<td><input type="text" class="add_ygCode" /></td>
86
+							</tr>
87
+							<tr>
88
+								<th style="color: darkred;">密码:</th>
89
+								<td><input type="password" class="add_pwd"/></td>
90
+								<th style="color: darkred;">确认密码:</th>
91
+								<td><input type="password" class="add_pwd2" /></td>
92
+							</tr>
93
+							<tr>
94
+								<th style="color: darkred;">所属角色:</th>
95
+								<td><div class="inpBox">
96
+										<input type="text" class="inps inps1"readonly="readonly" />
97
+										<i class="xl xl_one"></i>
98
+										<div class="addTree xlAdd_one">
99
+											<ul class="list">
100
+												
101
+											</ul>
102
+										</div>
103
+									</div></td>
104
+								<th style="color: darkred;">所属部门:</th>
105
+								<td>
106
+									<div class="inpBox">
107
+										<input type="text" class="inps inps2"  readonly="readonly"/>
108
+										<i class="xl xl_two"></i>
109
+										<div class="addTree xlAdd_two">
110
+											<ul id="xlAdd_depTree" class="ztree">
111
+												
112
+											</ul>
113
+										</div>
114
+									</div>
115
+								</td>
116
+							</tr>
117
+							<tr>
118
+								<th>话务标志:</th>
119
+								<td class="addhwb">
120
+									<label class="radio-inline" >
121
+									  <input type="radio" name="huwu" value="true" style="vertical-align: middle;display: inline-block;">使用
122
+									</label>
123
+									<label class="radio-inline">
124
+									  <input type="radio" checked="true" name="huwu" value="false" style="vertical-align: middle;display: inline-block;">不使用
125
+									</label>
126
+								</td>
127
+								<th>坐席组:</th>
128
+								<td>
129
+									<div class="inpBox">
130
+										<input type="text" class="inps inps3" readonly="readonly" />
131
+										<i class="xl xl_three"></i>
132
+										<div class="addTree xlAdd_three">
133
+											<ul id="xlAdd_zxz" class="ztree"></ul>
134
+										</div>
135
+									</div>
136
+								</td>
137
+							</tr>
138
+							<tr>
139
+								<th>坐席权限:</th>
140
+								<td class="addzxqx">
141
+									<label class="radio-inline" >
142
+									  <input type="radio" checked="true" name="zxqx" id="use" value="0" style="vertical-align: middle;display: inline-block;">普通坐席
143
+									</label>
144
+									<label class="radio-inline">
145
+									  <input type="radio" name="zxqx" id="noUse" value="1" style="vertical-align: middle;display: inline-block;">班长坐席
146
+
147
+									</label>
148
+								</td>
149
+                                <th>分  机  号:</th>
150
+                                <td><input type="text" class="add_fenji" /></td>
151
+                                </tr>
152
+                            <!--<tr>
153
+								
154
+                            <th>外线号码:</th>
155
+                                         <td><input type="text" class="add_wxno" /></td>
156
+							</tr>
157
+							
158
+							<tr>
159
+								<th>坐席类型:</th>
160
+								<td class="add_zxlx">
161
+									<label class="radio-inline" >
162
+									  <input type="radio" checked="true" name="call" value="0" style="vertical-align: middle;display: inline-block;">呼入
163
+
164
+									</label>
165
+									<label class="radio-inline">
166
+									  <input type="radio" name="call" value="1" style="vertical-align: middle;display: inline-block;">呼出
167
+
168
+									</label>
169
+								</td>
170
+								
171
+							</tr>-->
172
+							
173
+							<tr>
174
+								<th>员工性别:</th>
175
+								<td class="addSex">
176
+									<label class="radio-inline" >
177
+									  <input type="radio" checked="true" name="sex" value="男" style="vertical-align: middle;display: inline-block;">男
178
+
179
+									</label>
180
+									<label class="radio-inline">
181
+									  <input type="radio" name="sex" value="女" style="vertical-align: middle;display: inline-block;">女
182
+
183
+									</label>
184
+								</td>
185
+								<th>用户生日:</th>
186
+								<td><input type="text" class="add_birth laydate-icon" id="ygbirth" /></td>
187
+							</tr>
188
+							<tr>
189
+								<th>固定电话:</th>
190
+								<td>
191
+									<input type="text" class="add_telphone" />
192
+								</td>
193
+								<th>手机号码:</th>
194
+								<td><input type="text" class="add_mobile" /></td>
195
+							</tr>
196
+							<tr>
197
+								<th>用户备注:</th>
198
+								<td colspan="3">
199
+								<textarea class="add_remark" style="width: 100%;height: 50px;"></textarea>
200
+								</td>
201
+								
202
+							</tr>
203
+							
204
+						</tbody>
205
+					</table>
206
+					<div style="text-align: center;"><button class="btns addCun">保存</button></div>
207
+				</div>
208
+			</div>
209
+
210
+		</div>
211
+		<!--重设弹出内容-->
212
+		<div class="model againModel">
213
+			<div class="box">
214
+				<div class="btop clearfix">
215
+					<p class="btl"><span>重设用户密码</span></p>
216
+					<p class="btr agBtr" title="关闭">X</p>
217
+				</div>
218
+				<div class="boxCon" style="height: 235px;">
219
+					<table>
220
+						<tbody>
221
+							<tr>
222
+								<th style="color: darkred;">员工姓名:</th>
223
+								<td><input type="text" class="again_ygName" readonly="readonly"/></td>
224
+							</tr>
225
+							<tr>
226
+								<th style="color: darkred;">员工工号:</th>
227
+								<td><input type="text" class="again_ygCode" readonly="readonly"/></td>
228
+							</tr>
229
+							<tr>
230
+								<th style="color: darkred;">新密码:</th>
231
+								<td><input type="password" class="again_pwd"/></td>
232
+							</tr>
233
+							<tr>
234
+								<th style="color: darkred;">确认密码:</th>
235
+								<td><input type="password" class="again_pwd2" /></td>
236
+							</tr>
237
+						</tbody>
238
+					</table>
239
+					<div style="text-align: center;"><button class="btns again_Cun">保存</button></div>
240
+				</div>
241
+
242
+			</div>
243
+
244
+		</div>
245
+	
246
+		<!--修改弹出内容-->
247
+		<div class="model changeModel">
248
+					<div class="box">
249
+				<div class="btop clearfix">
250
+					<p class="btl">修改用户信息</p>
251
+					<p class="btr changeBtr" title="关闭">X</p>
252
+				</div>
253
+				<div class="boxCon">
254
+					<table>
255
+						<tbody>
256
+							<tr>
257
+								<th style="color: darkred;">员工姓名:</th>
258
+								<td><input type="text" class="change_ygName" /></td>
259
+								<th style="color: darkred;">员工工号:</th>
260
+								<td><input type="text" class="change_ygCode" /></td>
261
+							</tr>
262
+							<tr>
263
+								<th style="color: darkred;">所属角色:</th>
264
+								<td><div class="inpBox">
265
+										<input type="text" class="inps inps4" />
266
+										<i class="xl xl_four"></i>
267
+										<div class="addTree xlChan_four">
268
+											<ul class="list">
269
+												
270
+											</ul>
271
+										</div>
272
+									</div></td>
273
+								<th style="color: darkred;">所属部门:</th>
274
+								<td>
275
+									<div class="inpBox">
276
+										<input type="text" class="inps inps5" />
277
+										<i class="xl xl_five"></i>
278
+										<div class="addTree xlChan_two">
279
+											<ul id="xlChan_depTree" class="ztree">
280
+												
281
+											</ul>
282
+										</div>
283
+									</div>
284
+								</td>
285
+							</tr>
286
+							<tr>
287
+								<th>话务标志:</th>
288
+								<td class="change_hwb">
289
+									<label class="radio-inline" >
290
+									  <input type="radio" name="huwu" value="true" style="vertical-align: middle;display: inline-block;">使用
291
+									</label>
292
+									<label class="radio-inline">
293
+									  <input type="radio" checked="true" name="huwu" value="false" style="vertical-align: middle;display: inline-block;">不使用
294
+									</label>
295
+								</td>
296
+								<th>坐席组:</th>
297
+								<td>
298
+									<div class="inpBox">
299
+										<input type="text" class="inps inps6" />
300
+										<i class="xl xl_three"></i>
301
+										<div class="addTree xlChan_six">
302
+											<ul id="xlchan_zxz" class="ztree"></ul>
303
+										</div>
304
+									</div>
305
+								</td>
306
+							</tr>
307
+							<tr>
308
+								<th>坐席权限:</th>
309
+								<td class="change_zxqx">
310
+									<label class="radio-inline" >
311
+									  <input type="radio" checked="true" name="zxqx" id="use" value="0" style="vertical-align: middle;display: inline-block;">普通坐席
312
+									</label>
313
+									<label class="radio-inline">
314
+									  <input type="radio" name="zxqx" id="noUse" value="1" style="vertical-align: middle;display: inline-block;">班长坐席
315
+
316
+									</label>
317
+								</td>
318
+                                <th>分  机  号:</th>
319
+                                <td><input type="text" class="change_fenji" /></td>
320
+                                </tr>
321
+                               <!-- <tr>
322
+								
323
+                                    <th>外线号码:</th>
324
+                                    <td><input type="text" class="change_wxno" /></td>
325
+							</tr>
326
+							
327
+							<tr>
328
+								<th>坐席类型:</th>
329
+								<td class="change_zxlx">
330
+									<label class="radio-inline" >
331
+									  <input type="radio" checked="true" name="call" value="0" style="vertical-align: middle;display: inline-block;">呼入
332
+
333
+									</label>
334
+									<label class="radio-inline">
335
+									  <input type="radio" name="call" value="1" style="vertical-align: middle;display: inline-block;">呼出
336
+
337
+									</label>
338
+								</td>
339
+								
340
+							</tr>-->
341
+							
342
+							<tr>
343
+								<th>员工性别:</th>
344
+								<td class="changeSex">
345
+									<label class="radio-inline" >
346
+									  <input type="radio" checked="true" name="sex" value="男" style="vertical-align: middle;display: inline-block;">男
347
+
348
+									</label>
349
+									<label class="radio-inline">
350
+									  <input type="radio" name="sex" value="女" style="vertical-align: middle;display: inline-block;">女
351
+
352
+									</label>
353
+								</td>
354
+								<th>用户生日:</th>
355
+								<td><input type="text" class="change_birth laydate-icon" id="chan_ygbirth" /></td>
356
+							</tr>
357
+							<tr>
358
+								<th>固定电话:</th>
359
+								<td>
360
+									<input type="text" class="change_telphone" />
361
+								</td>
362
+								<th>手机号码:</th>
363
+								<td><input type="text" class="change_mobile" /></td>
364
+							</tr>
365
+							<tr>
366
+								<th>用户备注:</th>
367
+								<td colspan="3">
368
+								<textarea class="change_remark" style="width: 100%;height: 50px;"></textarea>
369
+								</td>
370
+								
371
+							</tr>
372
+							
373
+						</tbody>
374
+					</table>
375
+					<div style="text-align: center;"><button class="btns changeCun">保存</button></div>
376
+				</div>
377
+			</div>
378
+		</div>
379
+	  
380
+	<!--禁用弹出框-->
381
+		<div class="model banModel">
382
+			<div class="box">
383
+				<div class="btop clearfix">
384
+					<p class="btl"><span>提示</span></p>
385
+					<p class="btr banBtr" title="关闭">X</p>
386
+				</div>
387
+				<div class="boxCon" style="height: 150px;">
388
+					<p style="text-align: center;font-size: 16px;margin-top: 30px;">您确定要禁用吗?</p>
389
+					<p style="margin-top: 30px;text-align: center;"><button class="btns banSure">确定</button>
390
+						<button class="btns banReturn">取消</button></p>
391
+				</div>
392
+			</div>
393
+		</div>
394
+	
395
+	
396
+	<!--启用弹出框-->
397
+		<div class="model useModel">
398
+			<div class="box">
399
+				<div class="btop clearfix">
400
+					<p class="btl"><span>提示</span></p>
401
+					<p class="btr useBtr" title="关闭">X</p>
402
+				</div>
403
+				<div class="boxCon" style="height: 150px;">
404
+					<p style="text-align: center;font-size: 16px;margin-top: 30px;">您确定要启用吗?</p>
405
+					<p style="margin-top: 30px;text-align: center;"><button class="btns useSure">确定</button>
406
+						<button class="btns useReturn">取消</button></p>
407
+				</div>
408
+			</div>
409
+		</div>
410
+
411
+	<script src="../css/laydate/laydate.js"></script>
412
+	<script src="../js/zTree/jquery.ztree.core.js"></script>
413
+	<script src="./js/yongHuManger.js"></script>
414
+	</body>
415
+</html>

+ 273 - 0
CallCenterWeb.UI/TelCall/BlackList.html

@@ -0,0 +1,273 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+<head>
5
+    <meta charset="UTF-8">
6
+    <title>黑名单管理</title>
7
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+    <script src="../Script/Common/huayi.load.js"></script>
9
+    <script src="../Script/Common/huayi.config.js"></script>
10
+    <link href="../css/Table/table1.css" rel="stylesheet" />
11
+    <link href="../css/init.css" rel="stylesheet" />
12
+    <script src="../css/laydate/laydate.js"></script>
13
+    <script src="../My97DatePicker/WdatePicker.js"></script>
14
+    <style>
15
+        table td {
16
+            word-break: break-all;
17
+            word-wrap: break-word;
18
+        }
19
+
20
+        .add_time input{
21
+			width: 50%;
22
+		}
23
+    </style>
24
+</head>
25
+
26
+<body class="gray-bg">
27
+    <div class="wrapper wrapper-content animated fadeInRight">
28
+    	 <div class="daoHang clearfix">
29
+				<div class="dhLeft" >
30
+					<sapn><i class="syIcon"></i>位置:<a href="javaScript:;"  id="ReIndex">首页</a>&gt;<a href="javaScript:;">话务管理</a>&gt;<a href="" style="color: #000;">黑名单管理</a></sapn>
31
+				</div>
32
+				<div class="dhRight">
33
+            	<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
34
+            </div>
35
+				
36
+			</div>
37
+			 
38
+        <div class="th-box">
39
+            <div class="th-bar">
40
+                <a class="sc_btn  add max-right">添加</a>
41
+                <a class="sc_btn  xg max-right">修改</a>
42
+                <a class="sc_btn  remove">删除</a>
43
+                <div class="seach-box fr">
44
+                    <ul>
45
+                        <li>电话号码:<input class="photo x-color" type="text" id="tel" /></li>
46
+                        <li>开始时间:<input class="laydate-icon photo x-color " type="text" id="settime" /></li>
47
+                        <li>
48
+                            <a class="sc_btn  Block" id="sc_btns">搜索</a>
49
+                        </li>
50
+                    </ul>
51
+                </div>
52
+            </div>
53
+        </div>
54
+        <div style="width: 100%;padding: 10px;">
55
+            <table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
56
+                <thead>
57
+                    <tr>
58
+                        <th data-field="state" data-checkbox="true"></th>
59
+                        <th data-field="F_TelPhone" >来电号码</th>
60
+                        <th data-field="F_SetTime" >开始时间</th>
61
+                        <th data-field="F_RemoveTime" >结束时间</th>
62
+                        <th data-field="F_Describe" >屏蔽说明</th>
63
+                    </tr>
64
+                </thead>
65
+                <tbody id="tbody"></tbody>
66
+            </table>
67
+        </div>
68
+    </div>
69
+
70
+    <script>
71
+        var html = '<div >'+
72
+                '<ul class="nav nav-tabs">'+
73
+                '<li class="active">'+
74
+                '<a href="#">参数信息</a>'+
75
+                '<input type="hidden" id="ID" />'+
76
+                '</li>'+
77
+                '</ul>'+
78
+                '<div class="add_time">'+
79
+                '<label for="">电话号码:</label>'+
80
+                '<input type="text" id="TelNum" class="photo"  />'+
81
+                '</div>'+
82
+                '<div class="add_time">'+
83
+                '<label for="">开始时间:</label>'+
84
+                '<input type="text" class="photo laydate-icon" id="StartTime" onclick="WdatePicker({dateFmt:\'yyyy-MM-dd HH:mm:ss\'})" />'+
85
+                '</div>'+
86
+                '<div class="add_time">'+
87
+                '<label for="">结束时间:</label>'+
88
+                '<input type="text" class="photo laydate-icon" id="EndTime" onclick="WdatePicker({ dateFmt: \'yyyy-MM-dd HH:mm:ss\' })" />'+
89
+                '</div>'+
90
+                '<div class="add_time">'+
91
+                '<label for="" class="Pb_sm">屏蔽说明:</label>'+
92
+                '<textarea type="text" id="Pb"></textarea>'+
93
+                '</div>'+
94
+                '<div class="add_time tc">'+
95
+                '<button type="button" class="btn sc_btn " id="tc" onclick="addedit()">保&nbsp;&nbsp;存</button>'+
96
+                '</div>'+
97
+                '</div>';
98
+        var tc;
99
+        $(document).ready(function () {
100
+            /*日期选择*/
101
+            laydate.skin('molv');
102
+            /*开始日期*/
103
+            laydate({
104
+                elem: '#settime',
105
+                event: 'focus'
106
+            });
107
+            /*搜索*/
108
+            $("#sc_btns").click(function () {
109
+                initTable();
110
+            })
111
+            /*删除内容*/
112
+            $(".remove").click(function () {
113
+                var ids = $.map($('#list').bootstrapTable('getSelections'),
114
+                    function (row) {
115
+                        return row.F_BlackId;
116
+                    });
117
+                /*判断长度*/
118
+                if (ids.length <= 0) {
119
+                    layer.confirm('没有可删除的选项?', {
120
+                        btn: ['确定'] //按钮
121
+                    });
122
+                    return;
123
+                }
124
+                remove();
125
+            });
126
+
127
+            /*修改弹窗*/
128
+            $(".xg").click(function () {
129
+                var blackid = $.map($('#list').bootstrapTable('getSelections'),
130
+                    function (row) {
131
+                        return row.F_BlackId;
132
+                    });
133
+                if (blackid.length != 1) {
134
+                    layer.confirm('请选择一行进行修改?', {
135
+                        btn: ['确定'] //按钮
136
+                    });
137
+                    return;
138
+                } else {                   
139
+                    $.getJSON(huayi.config.callcenter_url + "Callblack/GetBlack", { blackid: blackid[0], token: $.cookie("token") }, function (result) {
140
+                        if (result.state.toLowerCase() == "success") {
141
+                            tc = layer.open({
142
+                                type: 1,
143
+                                title: '修改黑名单',
144
+                                area: ['40%', '68%'], //宽高
145
+                                content: html
146
+                            });
147
+
148
+                            $("#ID").val(result.data.F_BlackId);
149
+                            $("#TelNum").val(result.data.F_TelPhone);
150
+                            $("#StartTime").val(result.data.F_SetTime);
151
+                            $("#EndTime").val(result.data.F_RemoveTime);
152
+                            $("#Pb").val(result.data.F_Describe);
153
+                        }
154
+                    })
155
+                }
156
+            });
157
+
158
+            /*增加弹框*/
159
+            $(".add").click(function () {
160
+                tc = layer.open({
161
+                    type: 1,
162
+                    content: html, //iframe的url,no代表不显示滚动条
163
+                    title: '添加黑名单',
164
+                    area: ['40%', '68%'], //宽高
165
+                });
166
+            });
167
+
168
+            initTable();
169
+        })
170
+        function initTable() {
171
+            //先销毁表格
172
+            $('#list').bootstrapTable('destroy');
173
+            //初始化表格,动态从服务器加载数据
174
+            $("#list").bootstrapTable({
175
+                method: "get",  //使用get请求到服务器获取数据
176
+                url: huayi.config.callcenter_url + "Callblack/GetList", //获取数据的Servlet地址
177
+                striped: true,  //表格显示条纹
178
+                pagination: true, //启动分页
179
+                pageSize: 10,  //每页显示的记录数
180
+                pageNumber: 1, //当前第几页
181
+                pageList: [10, 20, 50, 100],  //记录数可选列表
182
+                search: false,  //是否启用查询
183
+                showColumns: false,  //显示下拉框勾选要显示的列
184
+                showRefresh: false,  //显示刷新按钮
185
+                sidePagination: "server", //表示服务端请求
186
+                //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
187
+                //设置为limit可以获取limit, offset, search, sort, order
188
+                queryParamsType: "undefined",
189
+                queryParams: function queryParams(params) {   //设置查询参数
190
+                    var param = {
191
+                        page: params.pageNumber,
192
+                        pagesize: params.pageSize,
193
+                        tel: $("#tel").val(),
194
+                        settime: $("#settime").val(),
195
+                        token: $.cookie("token")
196
+                    };
197
+                    return param;
198
+                },
199
+                onLoadSuccess: function () {  //加载成功时执行
200
+                    //layer.msg("加载成功");
201
+                },
202
+                onLoadError: function () {  //加载失败时执行
203
+                    //layer.msg("加载数据失败", { time: 1500, icon: 2 });
204
+                }
205
+            });
206
+        }
207
+
208
+        /*删除提示*/
209
+        function remove() {
210
+            layer.confirm('确定删除当前记录?', {
211
+                btn: ['是', '否'] //按钮
212
+            }, function() {
213
+
214
+                /*执行删除*/
215
+                var ids = $.map($('#list').bootstrapTable('getSelections'),
216
+                    function(row) {
217
+                        return row.F_BlackId;
218
+                    });
219
+                /*发送请求*/
220
+                $.post(huayi.config.callcenter_url + "Callblack/DelCallBlack", { ids: ids, token: $.cookie("token") }, function (result) {
221
+                    result = JSON.parse(result);
222
+                    if (result.state.toLowerCase() == "success") {
223
+                        layer.msg("删除成功");
224
+                        initTable();
225
+                    }
226
+                })
227
+            });
228
+        }
229
+        //新增或者编辑
230
+        function addedit() {
231
+        	var telreg = /^\d{1,12}$/;
232
+            if (!telreg.test($.trim($("#TelNum").val()))) {
233
+                layer.confirm('请输入有效的电话号码', {
234
+                    icon: 2,
235
+                    btn: ['确定'] //按钮
236
+                });
237
+                return;
238
+            }
239
+            if (!$("#StartTime").val()) {
240
+                layer.confirm('请选择开始时间', {
241
+                 	icon: 2,	
242
+                    btn: ['确定'] //按钮
243
+                });
244
+                return;
245
+            }
246
+            if (!$("#EndTime").val()) {
247
+                layer.confirm('请选择结束时间', {
248
+                    icon: 2,
249
+                    btn: ['确定'] //按钮
250
+                });
251
+                return;
252
+            }
253
+            /*发送请求*/
254
+            $.post(huayi.config.callcenter_url + "Callblack/AddBlack",
255
+                {
256
+                    blackid: $("#ID").val(), telphone: $("#TelNum").val(), settime: $("#StartTime").val(),
257
+                    removetime: $("#EndTime").val(), des: $("#Pb").val(), token: $.cookie("token")
258
+                }, function (result) {
259
+                    result = JSON.parse(result);
260
+                    if (result.state.toLowerCase() == "success") {
261
+   
262
+                            layer.msg("修改成功");
263
+                        layer.close(tc); //关闭弹层
264
+                        initTable();
265
+                    }
266
+                })
267
+        }
268
+
269
+    </script>
270
+
271
+</body>
272
+
273
+</html>

+ 591 - 0
CallCenterWeb.UI/TelCall/CallRecord.html

@@ -0,0 +1,591 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>通话记录管理</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+		<link href="../css/init.css" rel="stylesheet" />
9
+		<link href="../css/Table/table1.css" rel="stylesheet" />
10
+		<link rel="stylesheet" href="../js/select2/css/select2.min.css" />
11
+		<link rel="stylesheet" href="../js/zTree/zTreeStyle.css" />
12
+		<script src="../Script/Common/huayi.load.js"></script>
13
+		<script src="../Script/Common/huayi.config.js"></script>
14
+		<script src="../My97DatePicker/WdatePicker.js"></script>
15
+		<script src="../js/zTree/jquery.ztree.core.js"></script>
16
+
17
+		<script src="../css/laydate/laydate.js"></script>
18
+		<style>
19
+			body {
20
+				font-family: "微软雅黑";
21
+				font-size: 14px;
22
+			}
23
+			
24
+			ul li {
25
+				list-style: none;
26
+				float: left;
27
+			}
28
+			
29
+			.fr {
30
+				float: right;
31
+			}
32
+			/*标头*/
33
+			
34
+			.th-box {
35
+				width: 100%;
36
+				padding: 5px;
37
+				border-bottom: none;
38
+			}
39
+			
40
+			.sc_btn {
41
+				color: rgb(255, 255, 255);
42
+				font-size: 12px;
43
+				margin-left: 15px;
44
+				box-sizing: border-box;
45
+				background: rgb(26, 179, 148);
46
+				padding: 6px 10px;
47
+				outline: none;
48
+				border-width: 0px;
49
+				border-style: initial;
50
+				border-color: initial;
51
+				border-image: initial;
52
+				border-radius: 3px;
53
+			}
54
+			
55
+			.seach-box ul li {
56
+				margin-right: 5px;
57
+			}
58
+			
59
+			.photo {
60
+				background-color: #FFF;
61
+				border: 1px solid #e5e6e7;
62
+				border-radius: 1px;
63
+				color: inherit;
64
+				padding: 6px 12px;
65
+			}
66
+			
67
+			.selects {
68
+				background-color: #FFF;
69
+				background-image: none;
70
+				border: 1px solid #e5e6e7;
71
+				border-radius: 1px;
72
+				color: inherit;
73
+				padding: 6px 12px;
74
+			}
75
+			
76
+			#Select:focus {
77
+				outline: none;
78
+			}
79
+			
80
+			.spiner-example {
81
+				position: absolute;
82
+				top: 50%;
83
+				left: 50%;
84
+				z-index: 111;
85
+				margin-left: -85px;
86
+				margin-top: -100px;
87
+				display: none;
88
+			}
89
+			
90
+			.sk-spinner-three-bounce {
91
+				width: 170px !important;
92
+			}
93
+			
94
+			.sk-spinner p {
95
+				display: inline-block;
96
+				font-size: 18px;
97
+				margin-left: 10px;
98
+			}
99
+			
100
+			.gjsu ul {
101
+				overflow: hidden;
102
+			}
103
+			
104
+			.gjsu ul li {
105
+				width: 50%;
106
+				margin-bottom: 5px;
107
+				padding-top: 10px;
108
+			}
109
+			
110
+			.selects {
111
+				width: 130px;
112
+			}
113
+			
114
+			.tc {
115
+				margin-top: 30px;
116
+				text-align: center;
117
+			}
118
+			
119
+			.select2-container--default .select2-selection--single {
120
+				border: 1px solid #e5e6e7;
121
+			}
122
+			
123
+			.select2-dropdown {
124
+				border: 1px solid #e5e6e7;
125
+				width: 200px;
126
+			}
127
+			
128
+			.layui-layer-shade {
129
+				z-index: 100!important;
130
+			}
131
+			
132
+			.layui-layer-page {
133
+				z-index: 200!important;
134
+			}
135
+			
136
+			.select2-container .select2-selection--single {
137
+				height: 34px;
138
+			}
139
+			
140
+			.select2-container {
141
+				width: 130px!important;
142
+			}
143
+			
144
+			.select2-selection__rendered {
145
+				line-height: 34px;
146
+			}
147
+			
148
+			.HJFX_ {
149
+				width: 100%!important;
150
+			}
151
+			
152
+			.photo {
153
+				width: 130px;
154
+			}
155
+			
156
+			.seach-box ul {
157
+				padding-left: 0;
158
+			}
159
+			
160
+			.seach-box li {
161
+				width: 24%;
162
+				margin-bottom: 5px;
163
+			}
164
+			
165
+			.seach-box {
166
+				width: 100%;
167
+				margin-bottom: 10px;
168
+			}
169
+			
170
+			label {
171
+				width: 100px;
172
+				text-align: right;
173
+			}
174
+			
175
+			.LY:hover {
176
+				color: #fff;
177
+			}
178
+			
179
+			.LY:active {
180
+				color: #fff!important;
181
+			}
182
+			
183
+			.xl {
184
+				display: inline-block;
185
+				background: url(../img/dropDown.png) no-repeat;
186
+				height: 100%;
187
+				background-position: center center;
188
+				width: 20px;
189
+				position: absolute;
190
+				right: 0;
191
+				top: 0px;
192
+				background-color: #e6e6e6;
193
+				cursor: pointer;
194
+			}
195
+			
196
+			#menuContent {
197
+				background: #fff;
198
+				position: absolute;
199
+				width: 100%;
200
+				border: 1px solid darkgrey;
201
+				right: 0;
202
+				top: 21px;
203
+				z-index: 10;
204
+				display: none;
205
+				overflow-y: auto;
206
+			}
207
+			
208
+			#organizer {
209
+				height: 25px;
210
+				width: 170px;
211
+				display: inline-block;
212
+				position: relative;
213
+			}
214
+			
215
+			#treeDemo li {
216
+				width: 100%;
217
+			}
218
+			#citySel{
219
+				border: none;
220
+			}
221
+		</style>
222
+	</head>
223
+
224
+	<body class="gray-bg">
225
+		<div class="wrapper wrapper-content animated fadeInRight">
226
+			<div class="daoHang clearfix">
227
+				<div class="dhLeft">
228
+					<sapn><i class="syIcon"></i>位置:
229
+						<a href="javaScript:;" id="ReIndex">首页</a>&gt;
230
+						<a href="javaScript:;">话务管理</a>&gt;
231
+						<a href="" class="nowPosition">通话记录</a>
232
+					</sapn>
233
+				</div>
234
+				<div class="dhRight">
235
+					<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
236
+				</div>
237
+
238
+			</div>
239
+			<div class="th-box">
240
+				<div class="th-bar clearfix">
241
+					<!--<a class="sc_btn btn-info" id="moves">批量删除</a>-->
242
+					<div class="seach-box fr">
243
+						<ul>
244
+							<li>
245
+								<label for="">开始时间:</label>
246
+
247
+								<input type="text" id="ss_kssj" class="photo laydate-icon" />
248
+							</li>
249
+							<li>
250
+								<label for="">结束时间:</label>
251
+
252
+								<input type="text" id="ss_jssj" class="photo laydate-icon" />
253
+							</li>
254
+							<li>
255
+								<label for="">呼叫状态:</label>
256
+
257
+								<select id="ss_hjzt" class="selects callstate">
258
+									<option value="">全部</option>
259
+									<option value="0">未接通</option>
260
+									<option value="1">已接通</option>
261
+								</select>
262
+							</li>
263
+							<li>
264
+								<label for="">呼出方向:</label>
265
+
266
+								<select id="ss_hcfx" class=" selects calltype">
267
+									<option value="">全部</option>
268
+									<option value="0">呼入</option>
269
+									<option value="1">呼出</option>
270
+								</select>
271
+							</li>
272
+							<li class='BMs' style="position: relative;">
273
+								<div class="company">
274
+									<label for="">部门:</label>
275
+									<div class="inpBox" id="organizer">
276
+										<input id="citySel" class="inps"  />
277
+										<input type="hidden" id="OPID" />
278
+										<i class="xl xl_one" id="xl_one"></i>
279
+										<div id="menuContent" class="menuContent">
280
+											<ul id="treeDemo" class="ztree"></ul>
281
+										</div>
282
+									</div>
283
+								</div>
284
+
285
+							</li>
286
+							<li>
287
+								<label for="">电话号码:</label>
288
+
289
+								<input id="tel" class="photo x-color" type="text" /></li>
290
+							<li class="ZXs">
291
+								<label for="">坐席:</label>
292
+
293
+								<select style="width: 130px;" class="x-color select usercode" id="seat">
294
+									<option value="">全部</option>
295
+								</select>
296
+							</li>
297
+							<li>
298
+								<div class="clearfix btn_boxs " style="float: right;">
299
+									<a class="sc_btn Ss Block fl">搜索</a>
300
+									<a class="sc_btn export Block" style="display: inline-box;display: -webkit-inline-box;">导出</a>
301
+								</div>
302
+							</li>
303
+						</ul>
304
+
305
+					</div>
306
+
307
+				</div>
308
+
309
+			</div>
310
+			<div style="width: 100%;padding: 10px;">
311
+				<table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
312
+					<thead>
313
+						<tr>
314
+							<th data-field="CallNumber" data-align="center" data-formatter="Code">编号</th>
315
+							<th data-field="CallNumber" data-align="center">电话号码</th>
316
+							<th data-field="FilePath" data-formatter="setCode" data-align="center">录音</th>
317
+							<th data-field="CallType" data-formatter="callType" data-align="center">呼叫方向</th>
318
+							<!--<th data-field="DealType" data-formatter="dealType" data-align="center">是否回访</th>-->
319
+							<th data-field="F_DeptName" data-align="center">部门</th>
320
+							<th data-field="CallState" data-formatter="states" data-align="center">呼叫状态</th>
321
+							<!--<th data-field="IsDeal" data-formatter="isDeal" data-align="center">是否处理</th>-->
322
+							<th data-field="UserCode" data-align="center">坐席工号</th>
323
+							<th data-field="UserName" data-align="center">坐席姓名</th>
324
+							<th data-field="BeginTime" data-align="center">开始时间</th>
325
+							<th data-field="TalkStartTime" data-align="center">通话开始时间</th>
326
+							<th data-field="TalkEndTime" data-align="center">通话结束时间</th>
327
+							<th data-field="TalkLongTime" data-align="center">通话时长(S)</th>
328
+							<!--<th data-field="BusinessType" data-align="center">按键</th>-->
329
+						</tr>
330
+					</thead>
331
+				</table>
332
+				<!--高级搜索框-->
333
+			</div>
334
+		</div>
335
+		<!--下载框-->
336
+		<div class="t-shade">
337
+			<div class="shade_k">
338
+				<div class="shade_title">
339
+					<span>录音播放与下载<srong class="cknum"></srong></span>
340
+					<span class="setwin"><a>x</a></span>
341
+				</div>
342
+				<div class="shade_content">
343
+					<div class="Ly_box audiojs">
344
+					</div>
345
+					<div class="boxCon LY_box">
346
+
347
+					</div>
348
+				</div>
349
+			</div>
350
+		</div>
351
+		
352
+		<script>
353
+			var stype = 1;
354
+			var seatlist = [];
355
+			var RoleId;
356
+			var saveArrs = [];
357
+			var IDs;
358
+			var Names;
359
+			$(document).ready(function() {
360
+				laydate.skin('molv');
361
+				//留言时间
362
+				laydate({
363
+					elem: '#ss_kssj',
364
+					event: 'focus',
365
+					festival: true, //显示节日
366
+
367
+				});
368
+				//处理时间
369
+				laydate({
370
+					elem: '#ss_jssj',
371
+					festival: true, //显示节日
372
+					event: 'focus'
373
+				});
374
+				$.getJSON(huayi.config.callcenter_url + 'UserAccount/GetNowUser', {
375
+					"token": $.cookie("token")
376
+				}, function(result) {
377
+					if(result.state.toLowerCase() == "success") {
378
+						RoleId = result.data.role.F_RoleId
379
+						if(RoleId != "17") { //非系统管理员显示
380
+							$('.BMs').hide();
381
+							$('.SZBN').hide();
382
+						}
383
+					}
384
+				})
385
+				/*获取选中行对象*/
386
+				$('#list').on("click-row.bs.table", function(e, row, ele) {
387
+					$('.success').removeClass('success'); //去除之前选中的行的,选中样式
388
+					$(ele).addClass('success'); //添加当前选中的 success样式用于区别
389
+				});
390
+				$(".setwin").click(function() {
391
+					$(".t-shade").removeClass("cx");
392
+					$('audio')[0].pause();
393
+				});
394
+				//坐席
395
+				$.getJSON(huayi.config.callcenter_url + "UserAccount/GetSeatList", {
396
+					token: $.cookie("token")
397
+				}, function(result) {
398
+					if(result.state.toLowerCase() == "success") {
399
+						seatlist = result.data;
400
+						bindseat($("#seat"));
401
+					}
402
+				});
403
+
404
+				//搜索
405
+				$(".Ss").click(function() {
406
+					stype = 1;
407
+					initTable();
408
+				});
409
+
410
+				initTable();
411
+				
412
+				//部门
413
+				tree() 
414
+				function tree() {
415
+					$.get(huayi.config.callcenter_url + "Department/GetDeptList", {
416
+						"token": $.cookie("token"),
417
+						//			"pid": pid
418
+					}, function(result) {
419
+						result = $.parseJSON(result);
420
+						$.fn.zTree.init($("#treeDemo"), setting2, result.data); //实例化树形图
421
+					});
422
+					}
423
+
424
+				var setting2 = {
425
+					data: {
426
+						key: {
427
+							name: "text"
428
+						},
429
+						simpleData: {
430
+							enable: true,
431
+							idKey: "id",
432
+							rootPId: 0
433
+						}
434
+					},
435
+					callback: {
436
+						onClick: addTreeClick
437
+					}
438
+				}
439
+				function addTreeClick(event, treeId, treeNode) {
440
+					IDs = treeNode.id;
441
+					Names = treeNode.text;
442
+					$('#citySel').val(Names);
443
+
444
+				};
445
+				$(".xl").click(function() {
446
+				if($(this).parent().find(".menuContent").is(":hidden")) {
447
+					$(this).parent().find(".menuContent").show();
448
+				} else {
449
+					$(this).parent().find(".menuContent").hide();
450
+				}
451
+			});
452
+});
453
+			function bindseat(obj) {
454
+				obj.empty();
455
+				obj.append('<option value="">全部</option>');
456
+				$(seatlist).each(function(i, n) {
457
+					obj.append('<option value="' + n.F_UserCode + '">' + n.F_UserName + '</option>');
458
+				})
459
+			}
460
+
461
+			function initTable() {
462
+				//先销毁表格
463
+				$('#list').bootstrapTable('destroy');
464
+				//初始化表格,动态从服务器加载数据
465
+				$("#list").bootstrapTable({
466
+					method: "get", //使用get请求到服务器获取数据
467
+					url: huayi.config.callcenter_url + "Callrecords/GetList", //获取数据的Servlet地址
468
+					striped: true, //表格显示条纹
469
+					pagination: true, //启动分页
470
+					pageSize: 10, //每页显示的记录数
471
+					pageNumber: 1, //当前第几页
472
+					pageList: [10, 20, 50, 100], //记录数可选列表
473
+					search: false, //是否启用查询
474
+					showColumns: false, //显示下拉框勾选要显示的列
475
+					showRefresh: false, //显示刷新按钮
476
+					sidePagination: "server", //表示服务端请求
477
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
478
+					//设置为limit可以获取limit, offset, search, sort, order
479
+					queryParamsType: "undefined",
480
+					queryParams: function queryParams(params) { //设置查询参数
481
+						var param = {
482
+							page: params.pageNumber,
483
+							pagesize: params.pageSize,
484
+							usercode: $("#seat").val(),
485
+							phone: $("#tel").val(),
486
+							dept: IDs,
487
+							callstate: $("#ss_hjzt").val(),
488
+							calltype: $("#ss_hcfx").val(),
489
+							starttime: $("#ss_kssj").val(),
490
+							endtime: $("#ss_jssj").val(),
491
+							token: $.cookie("token")
492
+						};
493
+
494
+						return param;
495
+					},
496
+					onLoadSuccess: function() { //加载成功时执行
497
+						//layer.msg("加载成功");
498
+					},
499
+					onLoadError: function() { //加载失败时执行
500
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
501
+					}
502
+				});
503
+			}
504
+
505
+			//音频
506
+			function setCode(val) {
507
+				if(val) {
508
+					return '<div class="imgs">' +
509
+						'<img src="../img/vice.png" alt="" onclick= ck(this) item="' + val + '" />' +
510
+						'</div>';
511
+				} else {
512
+					return '';
513
+				}
514
+			}
515
+			//编号
516
+			function Code(val, row, index) {
517
+				return index + 1;
518
+			}
519
+			//方向呼出
520
+			function callType(val) {
521
+				if(val == 0) {
522
+					return '<div class="imgs">呼入</div>';
523
+				} else {
524
+					return '<div class="imgs">呼出</div>';
525
+				}
526
+			}
527
+
528
+			function states(val) {
529
+				if(val == 0) {
530
+					return '<div class="imgs">未接通</div>';
531
+				} else {
532
+					return '<div class="imgs">已接通</div>';
533
+				}
534
+			}
535
+			//回访
536
+			function dealType(val) {
537
+				if(val == 1) {
538
+					return '<div >已回访</div>';
539
+				} else {
540
+					return '';
541
+				}
542
+			}
543
+			//处理
544
+			function isDeal(val) {
545
+				if(val == 0) {
546
+					return '<div >未处理</div>';
547
+				} else {
548
+					return '<div >已处理</div>';
549
+				}
550
+			}
551
+			//录音
552
+			function ck(val) {
553
+				var path = $(val).attr("item");
554
+				$(".t-shade").addClass("cx");
555
+				$(".Ly_box").empty();
556
+				$(".LY_box").empty();
557
+				$('<audio  style="width:100%;"class=" " src="' + path + '" loop="loop" controls="controls"></audio>').appendTo(".Ly_box");
558
+				$('<a href="' + path + '" class="sc_btn LY "download="' + path + '">下载录音</a>').appendTo(".LY_box");
559
+			}
560
+			//导出
561
+			$('.export').click(function() {
562
+				dcexcel(this);
563
+			})
564
+
565
+			function dcexcel(obj) {
566
+				var a = $("#bumen").val()
567
+				if(a) {
568
+
569
+				} else {
570
+					a = '';
571
+
572
+				}
573
+				var url = huayi.config.callcenter_url + "Callrecords/GetListExpt?token=" + $.cookie("token");
574
+				url += "&usercode=" + $("#seat").val() +
575
+					"&phone=" + $("#tel").val() +
576
+					"&callstate=" + $("#ss_hjzt").val() +
577
+					"&calltype=" + $("#ss_hcfx").val() +
578
+					"&starttime=" + $("#ss_kssj").val() +
579
+					"&endtime=" + $("#ss_jssj").val() +
580
+					"&dept=" + a;
581
+				obj.href = url;
582
+				console.log(url);
583
+			}
584
+			//		部门
585
+			
586
+			
587
+		</script>
588
+
589
+	</body>
590
+
591
+</html>

+ 270 - 0
CallCenterWeb.UI/TelCall/NumberAssignment.html

@@ -0,0 +1,270 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>号码归属地</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+			 <link href="../css/init.css" rel="stylesheet" />
9
+        <script src="../Script/Common/huayi.load.js"></script>
10
+        <script src="../Script/Common/huayi.config.js"></script>
11
+		<link href="../css/Table/table1.css" rel="stylesheet" />
12
+	</head>
13
+	<body class="gray-bg">
14
+		<div class="wrapper wrapper-content animated fadeInRight">
15
+			<div class="daoHang clearfix">
16
+				<div class="dhLeft">
17
+					<sapn><i class="syIcon"></i>位置:<a href="javaScript:;" id="ReIndex" >首页</a>&gt;<a href="javaScript:;">话务管理</a>&gt;<a href="" style="color: #000;">号码归属地</a></sapn>
18
+				</div>
19
+				<div class="dhRight">
20
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
21
+            	</div>
22
+			</div>
23
+			<div class="th-box">
24
+				<div class="th-bar">
25
+					<a class="sc_btn  add max-right">添加</a>
26
+					<a class="sc_btn  xg max-right">修改</a>
27
+					<a class="sc_btn  remove">删除</a>
28
+					<div class="seach-box fr">
29
+						<ul>
30
+							<li>关键字:<input class="photo x-color" type="text" id="KeyWords" /></li>
31
+							<li>
32
+								<a id="sc_btn" class="sc_btn  Block">搜索</a>
33
+							</li>
34
+						</ul>
35
+					</div>
36
+				</div>
37
+			</div>
38
+			<div style="width: 100%;padding: 10px;">
39
+				<table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
40
+					<thead>
41
+						<tr>
42
+							<th data-field="state" data-checkbox="true"></th>
43
+							<th data-field="F_MobileNum"data-formatter="CallId" data-align="center">编号</th>
44
+							<th data-field="F_MobileNum" data-align="center">号段</th>
45
+							<th data-field="F_ZipCode" data-align="center">区号</th>
46
+							<th data-field="F_CityDes" data-align="center">城市</th>
47
+							<th data-field="F_CardDes" data-align="center">卡类型</th>
48
+
49
+						</tr>
50
+					</thead>
51
+					<tbody id="tbody">
52
+				</table>
53
+			</div>
54
+		</div>
55
+		<script>
56
+            var html=' <div>' +
57
+                                '<ul class="nav nav-tabs">' +
58
+                                '<li class="active"><a href="#">参数信息</a></li> ' +
59
+                                '</ul>' +
60
+                                '<div class=" add_time">' +
61
+                                '<label for="">号段:</label>' +
62
+                                '<input type="text" id="hd" value="" class="photo"/><input type="hidden" id="hidhd" value="" class="photo"/>' +
63
+                                '</div>' +
64
+                                '<div class=" add_time">' +
65
+                                '<label for="">区号:</label>' +
66
+                                '<input type="text"class="photo"  value="" id="qphone"/>' +
67
+                                '</div>' +
68
+                                '<div class=" add_time">' +
69
+                                '<label for="">城市:</label>' +
70
+                                '<input type="text" class="photo" value="" id="city"/>' +
71
+                                '</div>' +
72
+                                '<div class=" add_time">' +
73
+                                '<label for=""  class="Pb_sm">卡类型:</label>' +
74
+                                '<textarea type="text"  id="Pb"/>' +
75
+                                '</textarea>' +
76
+                                '</div>' +
77
+                                '<div class=" add_time tc">' +
78
+                                '<button  type="button" class="btn sc_btn"  onclick="addedit()">保&nbsp;&nbsp;存</button>' +
79
+                                '</div>' +
80
+                                ' </div>';
81
+            var tc;
82
+            $(document).ready(function () {
83
+                /*搜索*/
84
+                $("#sc_btn").click(function () {
85
+                    initTable();
86
+                })
87
+                /*删除提示*/
88
+                $(".remove").click(function () {
89
+                    var ids = $.map($('#list').bootstrapTable('getSelections'),
90
+                        function (row) {
91
+                            return row.F_Id;
92
+                        });
93
+                    /*判断长度*/
94
+                    if (ids.length <= 0) {
95
+                        layer.confirm('没有可删除的选项?', {
96
+                            btn: ['确定'] //按钮
97
+                        });
98
+                        return;
99
+                    }
100
+                    remove();
101
+                });
102
+                /*修改弹窗*/
103
+                $(".xg").click(function () {
104
+                    var mobileNum = $.map($('#list').bootstrapTable('getSelections'),
105
+                        function (row) {
106
+                            return row.F_Id;
107
+                        });
108
+                    if (mobileNum.length != 1) {
109
+                        layer.confirm('请选择一行进行修改?', {
110
+                            btn: ['确定'] //按钮
111
+                        });
112
+                        return;
113
+                    } else {
114
+                        $.getJSON(huayi.config.callcenter_url + "Mobiledata/GetMobiledata", { 
115
+                        	id: mobileNum[0], 
116
+                        	token: $.cookie("token") 
117
+                        }, function (result) {
118
+                            if (result.state.toLowerCase() == "success") {
119
+                                tc = layer.open({
120
+                                    type: 1,
121
+                                    title: '修改号码归属地',
122
+                                    area: ['40%', '68%'], //宽高
123
+                                    content: html
124
+                                });
125
+
126
+                                $("#hidhd").val(result.data.F_Id);
127
+                                $("#hd").val(result.data.F_MobileNum);
128
+                                $("#qphone").val(result.data.F_ZipCode);
129
+                                $("#city").val(result.data.F_CityDes);
130
+                                $("#Pb").val(result.data.F_CardDes);
131
+                            }
132
+                        })
133
+                    }
134
+                });
135
+                /*增加弹框*/
136
+                $(".add").click(function () {
137
+                    tc=layer.open({
138
+                        type: 1,
139
+                        fix: false,
140
+                        content: html, //iframe的url,no代表不显示滚动条
141
+                        title: '添加号码归属地',
142
+                        area: ['35%', '70%'], //宽高
143
+                    });
144
+                });
145
+                initTable();
146
+            })
147
+            function initTable() {
148
+                //先销毁表格
149
+                $('#list').bootstrapTable('destroy');
150
+                //初始化表格,动态从服务器加载数据
151
+                $("#list").bootstrapTable({
152
+                    method: "get",  //使用get请求到服务器获取数据
153
+                    url: huayi.config.callcenter_url + "Mobiledata/GetList", //获取数据的Servlet地址
154
+                    striped: true,  //表格显示条纹
155
+                    pagination: true, //启动分页
156
+                    pageSize: 10,  //每页显示的记录数
157
+                    pageNumber: 1, //当前第几页
158
+                    pageList: [10, 20, 50, 100],  //记录数可选列表
159
+                    search: false,  //是否启用查询
160
+                    showColumns: false,  //显示下拉框勾选要显示的列
161
+                    showRefresh: false,  //显示刷新按钮
162
+                    sidePagination: "server", //表示服务端请求
163
+                    //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
164
+                    //设置为limit可以获取limit, offset, search, sort, order
165
+                    queryParamsType: "undefined",
166
+                    queryParams: function queryParams(params) {   //设置查询参数
167
+                        var param = {
168
+                            page: params.pageNumber,
169
+                            pagesize: params.pageSize,
170
+                            strtelnum:$("#KeyWords").val(),
171
+                            token: $.cookie("token")
172
+                        };
173
+                        return param;
174
+                    },
175
+                    onLoadSuccess: function () {  //加载成功时执行
176
+                        //layer.msg("加载成功");
177
+                    },
178
+                    onLoadError: function () {  //加载失败时执行
179
+                        //layer.msg("加载数据失败", { time: 1500, icon: 2 });
180
+                    }
181
+                });
182
+            }
183
+
184
+			/*删除提示*/
185
+			function remove() {
186
+				layer.confirm('确定删除当前记录?', {
187
+					btn: ['是', '否'] //按钮
188
+				}, function() {
189
+					/*执行删除*/
190
+					var ids = $.map($('#list').bootstrapTable('getSelections'),
191
+						function(row) {
192
+							return row.F_Id;
193
+						});
194
+				    /*发送请求*/
195
+					$.post(huayi.config.callcenter_url + "Mobiledata/DelMobiledata", { nums: ids, token: $.cookie("token") }, function (result) {
196
+					    result = JSON.parse(result);
197
+					    if (result.state.toLowerCase() == "success") {
198
+					        layer.msg("删除成功");
199
+					        initTable();
200
+					    }
201
+					})
202
+				});
203
+			}
204
+			//编号
205
+			function CallId(val,row,index){
206
+				return index+1;
207
+			}
208
+			//新增或者编辑
209
+			function addedit() {
210
+				var mobileNumReg = /^\d{1,20}$/,
211
+			        zipCodeReg = /^\d{1,10}$/,
212
+			        cityDesReg = /^(.){1,25}$/,
213
+			        cardDesReg = /^(.){1,25}$/			
214
+			    if (!mobileNumReg.test($.trim($("#hd").val()))) {
215
+			        layer.confirm('号段长度在1-20位之间,且必须是数字。', {
216
+			            icon: 2,
217
+			            btn: ['确定'] //按钮
218
+			        });
219
+			        return;
220
+			    }
221
+			    if (!zipCodeReg.test($.trim($("#qphone").val()))) {
222
+			        layer.confirm('区号长度在1-10位之间,且必须是数字。', {
223
+			            icon:2,
224
+			            btn: ['确定'] //按钮
225
+			        });
226
+			        return;
227
+			    }
228
+			    if (!cityDesReg.test($.trim($("#city").val()))) {
229
+			        layer.confirm('城市长度在1-25位之间。', {
230
+			            icon:2,
231
+			            btn: ['确定'] //按钮
232
+			        });
233
+			        return;
234
+			    }
235
+			    if (!cardDesReg.test($.trim($("#Pb").val()))) {
236
+			        layer.confirm('卡类型长度在1-25位之间。', {
237
+			            icon:2,
238
+			            btn: ['确定'] //按钮
239
+			        });
240
+			        return;
241
+			    }
242
+			    /*发送请求*/
243
+			    $.post(huayi.config.callcenter_url + "Mobiledata/AddMobiledata", {
244
+			        id: $("#hidhd").val(),
245
+			        mobileNum: $("#hd").val(), 
246
+			        zipCode: $("#qphone").val(), 
247
+			        cityDes: $("#city").val(),
248
+			        cardDes: $("#Pb").val(), 
249
+			        token: $.cookie("token")
250
+			    }, function (result) {
251
+			        result = JSON.parse(result);
252
+			        if (result.state.toLowerCase() == "success") {
253
+			            if ($("#hidhd").val()) {
254
+			                layer.msg("修改成功");
255
+			            }
256
+			            else {
257
+			                layer.msg("新增成功");
258
+			            }
259
+			            layer.close(tc); //关闭弹层
260
+			            initTable();
261
+			            
262
+			        }
263
+			    })
264
+			}
265
+			
266
+		</script>
267
+
268
+	</body>
269
+
270
+</html>

+ 668 - 0
CallCenterWeb.UI/TelCall/SeatMonitor.html

@@ -0,0 +1,668 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+    <meta charset="UTF-8">
5
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+    	 <link href="../css/init.css" rel="stylesheet" />
7
+    <script src="../Script/Common/huayi.load.js"></script>
8
+    <script src="../Script/Common/huayi.config.js"></script>
9
+    <title>坐席管理</title>
10
+    <style>
11
+        body {
12
+            background-color: #EEEEEE;
13
+            font-family: "微软雅黑";
14
+            background-color: #fdfdfd;
15
+        }
16
+
17
+        ul li {
18
+            float: left;
19
+        }
20
+
21
+        .zx-title {
22
+            background-color: #2e4050;
23
+            color: #FFFFFF;
24
+            padding: 5px 20px;
25
+            border-top-left-radius: 5px;
26
+            border-top-right-radius: 5px;
27
+            letter-spacing: 3px;
28
+        }
29
+
30
+        ul {
31
+            overflow: hidden;
32
+        }
33
+
34
+            ul li {
35
+                list-style: none;
36
+            }
37
+
38
+        .fenxian {
39
+            list-style: none;
40
+            width: 136px;
41
+            padding: 0;
42
+            height: 10px;
43
+        }
44
+
45
+            .fenxian li {
46
+                width: 50%;
47
+                list-style: none;
48
+                height: 8px;
49
+                float: left;
50
+            }
51
+
52
+        .left_red {
53
+            background: #65c2ca;
54
+        }
55
+
56
+        .rg_green {
57
+            background: #F95A83;
58
+        }
59
+
60
+        .zx-box {
61
+            background: #F5F5F5;
62
+            /*height: 200px;*/
63
+            border-radius: 5px;
64
+            box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
65
+            margin-bottom: 30px;
66
+            overflow: hidden;
67
+        }
68
+
69
+        .m-b {
70
+            margin-bottom: 0;
71
+        }
72
+        /*坐席数量*/
73
+        .zt-content ul {
74
+            width: 100%;
75
+            overflow: hidden;
76
+            padding-left: 0px;
77
+            padding-top: 20px;
78
+        }
79
+
80
+            .zt-content ul li {
81
+                width: 40%;
82
+                font-size: 14px;
83
+                float: left;
84
+                margin-bottom: 20px;
85
+                /*text-align: center;*/
86
+                margin-left: 10%;
87
+            }
88
+
89
+                .zt-content ul li i {
90
+                    display: inline-block;
91
+                    width: 20px;
92
+                    height: 21px;
93
+                    vertical-align: middle;
94
+                    margin-right: 10px;
95
+                    background: url(../img/zuoxiIcon.png) no-repeat;
96
+                }
97
+
98
+        .hc {
99
+            background-position: 0 0 !important;
100
+        }
101
+
102
+        .ml {
103
+            background-position: 0 -24px !important;
104
+        }
105
+
106
+        .kx {
107
+            background-position: 0 -68px !important;
108
+        }
109
+
110
+        .zl {
111
+            background-position: 0 -93px !important;
112
+        }
113
+
114
+        .qc {
115
+            background-position: 0 -116px !important;
116
+        }
117
+
118
+        .lx {
119
+            background-position: 0 -138px !important;
120
+        }
121
+
122
+        .hh {
123
+            background-position: 0 -46px !important;
124
+        }
125
+        .th{
126
+        	
127
+                    background: url(../img/thz.png) no-repeat!important;        }
128
+        /*坐席监控*/
129
+        .bg_person {
130
+            background: url(../img/bg-person.png)no-repeat;
131
+            width: 65px;
132
+            height: 65px;
133
+            text-align: -webkit-center;
134
+            background-position: center center;
135
+            margin: 0 auto;
136
+        }
137
+
138
+        .zx_people {
139
+            padding: 0;
140
+        }
141
+
142
+        .zx_content ul:after {
143
+            content: "";
144
+            display: block;
145
+            clear: both;
146
+        }
147
+
148
+        .people_list p {
149
+            margin-bottom: 5px !important;
150
+        }
151
+
152
+        .zx_content ul {
153
+            height: 800px;
154
+            overflow: auto;
155
+        }
156
+
157
+            .zx_content ul li {
158
+                width: 14%;
159
+                text-align: center;
160
+                float: left;
161
+                cursor: pointer;
162
+            }
163
+
164
+                .zx_content ul li > div {
165
+                    width: 100%;
166
+                    position: relative;
167
+                }
168
+
169
+        .zx_content i {
170
+            display: block;
171
+            height: 22px;
172
+            width: 20px;
173
+            background: url(../img/zuoxiIcon.png) no-repeat;
174
+            position:relative;
175
+            right: -25px;
176
+            top: 25px;
177
+        }
178
+        /*坐席状态*/
179
+        .ztsm {
180
+            width: 100%;
181
+            overflow: hidden;
182
+            padding-left: 0px;
183
+            padding-top: 20px;
184
+        }
185
+
186
+            .ztsm b {
187
+                padding: 3px 15px;
188
+                border-radius: 10px;
189
+                color: #FFFFFF;
190
+            }
191
+
192
+        .ztsm2 ul li {
193
+            width: 33%;
194
+            font-size: 14px;
195
+            float: left;
196
+            margin-bottom: 25px;
197
+            text-align: center;
198
+            cursor: pointer;
199
+        }
200
+
201
+        .zx {
202
+            /*background: #989898;*/
203
+            background: #61b960;
204
+        }
205
+
206
+        .jt {
207
+            background: #5ed7b7;
208
+        }
209
+
210
+        .dj {
211
+            background: #bed75b;
212
+        }
213
+
214
+        .qca {
215
+            background: #d75e7c;
216
+        }
217
+
218
+        .lj {
219
+            background: #5daed8;
220
+        }
221
+
222
+        .qc {
223
+            background: #d8988f;
224
+        }
225
+
226
+        .kqc {
227
+            background: #44af3c;
228
+        }
229
+
230
+        .jqc {
231
+            background: #d91e06;
232
+        }
233
+
234
+        .dis {
235
+            background: #989898;
236
+        }
237
+        /*坐席弹屏*/
238
+        .zx_photo {
239
+            padding: 10px;
240
+        }
241
+
242
+            .zx_photo p {
243
+                text-align: center;
244
+            }
245
+
246
+        .zx-box_ul > ul {
247
+            padding-left: 0px;
248
+        }
249
+
250
+            .zx-box_ul > ul > li {
251
+                width: 33% !important;
252
+                padding: 22px 13px;
253
+                text-align: -webkit-center;
254
+                font-size: 15px;
255
+                cursor: pointer;
256
+            }
257
+
258
+                .zx-box_ul > ul > li b {
259
+                    padding: 7px 15px;
260
+                    border-radius: 10px;
261
+                    color: #FFFFFF;
262
+                }
263
+
264
+        .zxtp {
265
+            position: absolute;
266
+            display: none;
267
+        }
268
+
269
+        .shows {
270
+            display: block;
271
+        }
272
+
273
+        .hides {
274
+            display: block;
275
+        }
276
+    </style>
277
+</head>
278
+<body>
279
+    <div class="wrapper wrapper-content animated fadeInRight">
280
+    	<div class="daoHang clearfix">
281
+				<div class="dhLeft">
282
+					<sapn><i class="syIcon"></i>位置:<a href="javaScript:;" id="ReIndex">首页</a>&gt;<a href="javaScript:;">话务管理</a>&gt;<a href="" style="color: #000;">坐席管理</a></sapn>
283
+				</div>
284
+				
285
+				<div class="dhRight">
286
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
287
+            	</div>
288
+		</div>
289
+        <div class="row" style="margin-top: 20px;">
290
+            <!--左边-->
291
+            <div class="col-sm-9">
292
+                <div class="zx_top">
293
+                    <span class="zx-title">坐席监控系统</span>
294
+                    <ul class="fenxian">
295
+                        <li class="left_red"></li>
296
+                        <li class="rg_green"></li>
297
+                    </ul>
298
+                </div>
299
+                <div class="zx_content">
300
+                    <ul class="zx_people"></ul>
301
+                </div>
302
+            </div>
303
+            <!--右边-->
304
+            <div class="col-sm-3">
305
+
306
+                <div class="zx_top">
307
+                    <span class="zx-title">状态说明</span>
308
+                    <ul class="m-b  fenxian" style="width:104px;">
309
+                        <li class="left_red"></li>
310
+                        <li class="rg_green"></li>
311
+                    </ul>
312
+                    <div class="zx-box">
313
+                        <div class="ztsm2 w_3">
314
+                            <ul class="ztsm">
315
+                                <li><b class="zx">置闲</b></li>
316
+                                <li><b class="jt">监听</b></li>
317
+                                <li><b class="dj">代接</b></li>
318
+                                <li><b class="qca">强插</b></li>
319
+                                <li><b class="lj">拦截</b></li>
320
+                                <li><b class="qc">强拆</b></li>
321
+                                <li style="width: 50%;"><b class="kqc">开始监测</b></li>
322
+                                <li style="width: 50%;"><b class="jqc dis">停止监测</b></li>
323
+                            </ul>
324
+                        </div>
325
+                    </div>
326
+                </div>
327
+
328
+                <div class="zx_top">
329
+                    <span class="zx-title">实时统计</span>
330
+                    <ul class="m-b  fenxian" style="width:104px;">
331
+                        <li class="left_red"></li>
332
+                        <li class="rg_green"></li>
333
+                    </ul>
334
+                    <div class="zx-box">
335
+                        <div class="zt-content w_5">
336
+                            <ul class="tjcount">
337
+                                <li>登录坐席:<b>0</b></li>
338
+                                <li>离线人数:<b>0</b></li>
339
+                                <li>空闲人数:<b>0</b></li>
340
+                                <li>通话人数:<b>0</b></li>
341
+                                <li>系统呼入:<b>0</b></li>
342
+                                <li>置忙坐席:<b>0</b></li>
343
+                                <!--<li>签出坐席:<b>100</b></li>-->
344
+                                <li>全部坐席:<b>0</b></li>
345
+                            </ul>
346
+                        </div>
347
+                    </div>
348
+                </div>
349
+
350
+                <div class="zx_top">
351
+                    <span class="zx-title">状态说明</span>
352
+                    <ul class="m-b  fenxian" style="width:104px;">
353
+                        <li class="left_red"></li>
354
+                        <li class="rg_green"></li>
355
+                    </ul>
356
+                    <div class="zx-box">
357
+                        <div class="zt-content w_5">
358
+                            <ul>
359
+                                <li><i class="hc"></i>呼出</li>
360
+                                <li><i class="ml"></i>忙绿</li>
361
+                                <li><i class="kx"></i>空闲</li>
362
+                                <li><i class="zl"></i>振铃</li>
363
+                                <!--<li><i class="qc"></i>&nbsp;签出</li>-->
364
+                                <li><i class="lx"></i>离线</li>
365
+                                <li><i class="hh"></i>话后处理</li>
366
+                                <li><i class="th"></i>通话中</li>
367
+                            </ul>
368
+                        </div>
369
+                    </div>
370
+                </div>
371
+
372
+            </div>
373
+        </div>
374
+    </div>
375
+    <!--坐席弹屏-->
376
+    <div class="zxT  zxtp">
377
+        <div class="zx-box" style="width: 400px;">
378
+            <div class="zx_photo row zx_content">
379
+                <div style="width: 400px;">
380
+                    <div class="bg_person"> <i class="lx"></i></div>
381
+                    <p>
382
+                        <span>工号:</span>
383
+                        <span class="g_nums"></span>
384
+                    </p>
385
+                    <p>
386
+                        <span>姓名:</span>
387
+                        <span class="g_names"></span>
388
+                    </p>
389
+                   
390
+                </div>
391
+            </div>
392
+            <div class="zx-box_ul row">
393
+                <ul>
394
+                    <li><b class="zx" item="ForceAgentState">置闲</b></li>
395
+                    <li><b class="jt" item="Listen">监听</b></li>
396
+                    <li><b class="dj" item="Instead">代接</b></li>
397
+                    <li><b class="qca" item="Insert">强插</b></li>
398
+                    <li><b class="lj" item="Intercept">拦截</b></li>
399
+                    <li><b class="qc" item="Break">强拆</b></li>
400
+                </ul>
401
+            </div>
402
+        </div>
403
+    </div>
404
+
405
+    <script>
406
+        var user;
407
+        $(document).ready(function () {
408
+            //获取坐席列表
409
+            $.getJSON(huayi.config.callcenter_url+'SeatMonitoring/getlist', { "token": $.cookie("token") }, function (result) {
410
+                if (result.state.toLowerCase() == "success") {
411
+                    $(".zx_people").empty();
412
+                    user = result.data;
413
+                    $(".tjcount li").eq(6).find("b").text(user.length);
414
+                    $(user).each(function (i, n) {
415
+                        var html = '<li class="people_list ' + n.F_WorkNumber + '">'
416
+                            + '<div>'
417
+                            + '    <div class="bg_person">'
418
+                              + '    <i class="lx" zx_item="0" xl_item="0"></i>'
419
+                             + ' </div>'
420
+                            + '    <p>'
421
+                            + '        <span>工号:</span>'
422
+                            + '        <span class="g-num">' + n.F_WorkNumber + '</span>'
423
+                            + '    </p>'
424
+                            + '    <p>'
425
+                            + '        <span>&nbsp;&nbsp;姓名:</span>'
426
+                            + '        <span class="g-name">' + n.F_UserName + '</span>'
427
+                            + '    </p>'
428
+                          
429
+                            + '</div>'
430
+                            + '</li>';
431
+
432
+                        $(html).appendTo($(".zx_people")).click(function (event) {
433
+                            event.stopPropagation();
434
+                            if (top.obj.AgentID != $(this).find(".g-num").text()) {
435
+                                $(".zxtp .g_nums").text($(this).find(".g-num").text());
436
+                                $(".zxtp .g_names").text($(this).find(".g-name").text());
437
+                                $(".zxtp i").removeClass().addClass($(this).find("i").attr("class"));
438
+                                //if (!$(this).find("i").hasClass("lx")) {
439
+                                //    Center($('.zxtp'));
440
+                                //}
441
+
442
+                                Center($('.zxtp'));
443
+
444
+                                UpdateSelState($(this).find("i").attr("zx_item"), $(this).find("i").attr("xl_item"));
445
+                            }
446
+                            else {
447
+
448
+                                layer.confirm('不能操作自己的坐席!', {
449
+                                    btn: ['确定']
450
+                                });
451
+                            }
452
+                        })
453
+                    })
454
+                }
455
+            })
456
+
457
+            $(".wrapper").click(function () {
458
+                if (!$('.zxtp').is(":hidden")) {
459
+                    $('.zxtp').hide();
460
+                }
461
+            })
462
+            //开始监测
463
+            $(".kqc").click(function () {
464
+                if (!$(this).hasClass("dis")) {
465
+                    $(user).each(function (i, n) {
466
+                        top.obj.Type = "SubScribe";
467
+                        top.obj.SubParmer = n.F_WorkNumber;
468
+
469
+                        top.obj.SubType = "0";//根据工号订阅坐席状态
470
+                        top.Send();
471
+                        top.obj.SubType = "1";//根据工号订阅线路状态
472
+                        top.Send();
473
+                    })
474
+                    //top.obj.Type = "SubScribe";
475
+                    //top.obj.SubParmer = "8003";
476
+
477
+                    //top.obj.SubType = "0";//根据工号订阅坐席状态
478
+                    //top.Send();
479
+                    //top.obj.SubType = "1";//根据工号订阅线路状态
480
+                    //top.Send();
481
+                }
482
+            })
483
+            //停止监测
484
+            $(".jqc").click(function () {
485
+                if (!$(this).hasClass("dis")) {
486
+                    //$(user).each(function (i, n) {
487
+                    //    top.obj.Type = "SubScribeCancel";
488
+                    //    top.obj.SubParmer = n.F_WorkNumber;
489
+
490
+                    //    top.obj.SubType = "0";//根据工号取消订阅坐席状态
491
+                    //    top.Send();
492
+                    //    top.obj.SubType = "1";//根据工号取消订阅线路状态
493
+                    //    top.Send();
494
+                    //})
495
+                    top.obj.Type = "SubScribeCancel";
496
+                    top.obj.SubParmer = "-1";
497
+
498
+                    top.obj.SubType = "0";//根据工号取消订阅坐席状态
499
+                    top.Send();
500
+                    top.obj.SubType = "1";//根据工号取消订阅线路状态
501
+                    top.Send();
502
+                }
503
+            })
504
+            //班长操作坐席
505
+            $(".zxtp b").click(function () {
506
+                if (!$(this).hasClass("dis")) {
507
+                    var wn = $(".zxtp .g_nums").text();
508
+                    var type = $(this).attr("item");
509
+                    top.obj.Type = type;
510
+                    top.obj.TargetAgentID = wn;
511
+                    top.Send();
512
+                }
513
+            })
514
+        })
515
+
516
+        //计算数量
517
+        var tj;
518
+        function tjcount() {
519
+            tj = { hr: 0, tx: 0, kx: 0, lx: 0, zm: 0, dl: 0};
520
+            $(".zx_people i").each(function () {
521
+                var zx = $(this).attr("zx_item");
522
+                var xl = $(this).attr("xl_item");
523
+                switch (zx) {
524
+                    case "0": tj.lx = tj.lx + 1; break;//离线
525
+                    case "5": tj.zm = tj.zm + 1; break;//小休
526
+                }
527
+                switch (xl) {
528
+                    case "5": tj.hr = tj.hr + 1; break;//来电振铃
529
+                    case "6": tj.tx = tj.tx + 1; break;//通话中
530
+                }
531
+                if (zx == '2' && xl == '1') { tj.kx = tj.kx + 1; }//空闲
532
+                if (zx != '0' && zx != '7' && xl != '0' && xl != '9') {
533
+                    tj.dl = tj.dl + 1;
534
+                }
535
+            })
536
+
537
+            $(".tjcount li").eq(0).find("b").text(tj.dl);
538
+            $(".tjcount li").eq(1).find("b").text(tj.lx);
539
+            $(".tjcount li").eq(2).find("b").text(tj.kx);
540
+            $(".tjcount li").eq(3).find("b").text(tj.tx);
541
+            $(".tjcount li").eq(4).find("b").text(tj.hr);
542
+            $(".tjcount li").eq(5).find("b").text(tj.zm);
543
+        }
544
+        /*居中*/
545
+        function Center(obj) {
546
+            var screenWidth = $(window).width(), screenHeight = $(window).height();  //当前浏览器窗口的 宽高
547
+            var scrolltop = $(document).scrollTop();//获取当前窗口距离页面顶部高度
548
+            var objLeft = (screenWidth - obj.width()) / 2;
549
+            var objTop = (screenHeight - obj.height()) / 2 + scrolltop;
550
+            obj.css({ left: objLeft + 'px', top: objTop + 'px' });
551
+            obj.show();
552
+        }
553
+        //开始监测成功后
554
+        function Start() {
555
+            $(".kqc").addClass("dis");
556
+            $(".jqc").removeClass("dis");
557
+        }
558
+        //停止监测成功后
559
+        function Stop() {
560
+            $(".jqc").addClass("dis");
561
+            $(".kqc").removeClass("dis");
562
+            $(".zxtp i").removeClass().addClass("lx");
563
+            $(".zx_people i").removeClass().addClass("lx").attr("zx_item", "0").attr("xl_item", "0");
564
+        }
565
+        //坐席状态
566
+        function UpdateAgentState(WorkNumber, State) {
567
+            var sts = "";
568
+            switch (State) {
569
+                case "0": sts = "lx"; break;//离线
570
+                case "1": break;//登录中
571
+                case "2": sts = "kx"; break;//空闲
572
+                case "3": sts = "th"; break;//通话中
573
+                case "4": sts = "hh"; break;//话后处理中
574
+                case "5": sts = "ml"; break;//小休
575
+                case "6": sts = "zl"; break;//被请求
576
+                case "7": sts = "lx"; break;//注销
577
+            }
578
+            var ele = $("." + WorkNumber).find("i");
579
+            if (sts) {
580
+                ele.removeClass().addClass(sts);
581
+            }
582
+            ele.attr("zx_item", State);
583
+            if ($(".zxtp .g_nums").text() == WorkNumber) {
584
+                if (sts) {
585
+                    $(".zxtp i").removeClass().addClass(sts);
586
+                }
587
+                UpdateSelState(State, ele.attr("xl_item"))
588
+            }
589
+            tjcount();
590
+        }
591
+        //线路状态
592
+        function UpdateLineState(WorkNumber, State) {
593
+            var sts = "";
594
+            switch (State) {
595
+                case "0": sts = "lx"; break;//分机不可用
596
+                case "1": sts = "kx"; break;//空闲
597
+                case "2": sts = "ml"; break;//摘机等待拨号
598
+                case "3": sts = "ml"; break;//正在拨号
599
+                case "4": sts = "hc"; break;//呼出振铃
600
+                case "5": sts = "zl"; break;//来电振铃
601
+                case "6": sts = "th"; break;//通话中
602
+                case "7": sts = "ml"; break;//播放忙音中
603
+                case "8": sts = "th"; break;//通话保持中
604
+                case "9": break;//话机移除
605
+                case "10": break;//保持/空闲
606
+                case "11": break;//保持/摘机等待拨号
607
+                case "12": break;//保持/正在拨号
608
+                case "13": break;//保持/呼出振铃
609
+                case "14": break;//保持/通话中
610
+            }
611
+            var ele = $("." + WorkNumber).find("i");
612
+            if (sts) {
613
+                ele.removeClass().addClass(sts);
614
+            }
615
+            ele.attr("xl_item", State);
616
+            if ($(".zxtp .g_nums").text() == WorkNumber) {
617
+                if (sts) {
618
+                    $(".zxtp i").removeClass().addClass(sts);
619
+                }
620
+                UpdateSelState(ele.attr("zx_item"), State)
621
+            }
622
+            tjcount();
623
+        }
624
+        //更新选中坐席的可操作
625
+        function UpdateSelState(zxState, xlState) {
626
+            $(".zxtp b").addClass("dis");
627
+            if (zxState == '5' && xlState == '1') {
628
+                $(".zxtp .zx").removeClass("dis");
629
+            }
630
+            if (zxState == '3' && xlState == '6') {
631
+                $(".zxtp .jt").removeClass("dis");
632
+                $(".zxtp .qca").removeClass("dis");
633
+                $(".zxtp .qc").removeClass("dis");
634
+                $(".zxtp .lj").removeClass("dis");
635
+            }
636
+            if (zxState == '2' && xlState == '5') {
637
+                $(".zxtp .dj").removeClass("dis");
638
+            }
639
+        }
640
+
641
+        //       	    //浏览器窗口大小改变时
642
+        //       $(window).resize(function() {
643
+        //          screenWidth = $(window).width();
644
+        //           screenHeight = $(window).height();
645
+        //          scrolltop = $(document).scrollTop();
646
+        //           objLeft = (screenWidth - obj.width())/2 ;
647
+        //           objTop = (screenHeight - obj.height())/2 + scrolltop;
648
+        //           obj.css({left: objLeft + 'px', top: objTop + 'px'});
649
+        //        obj.fadeToggle();
650
+        //       });
651
+        //       //浏览器有滚动条时的操作、
652
+        //       $(window).scroll(function() {
653
+        //          screenWidth = $(window).width();
654
+        //           screenHeight = $(window).height();
655
+        //           scrolltop = $(document).scrollTop();
656
+        //           objLeft = (screenWidth - obj.width())/2 ;
657
+        //           objTop = (screenHeight - obj.height())/2 + scrolltop;
658
+        //           obj.css({left: objLeft + 'px', top: objTop + 'px'});
659
+        //         obj.fadeToggle();
660
+
661
+        //       });
662
+
663
+
664
+        //# sourceURL=zx.js;
665
+    </script>
666
+</body>
667
+
668
+</html>

+ 272 - 0
CallCenterWeb.UI/TelCall/VoiceMail.html

@@ -0,0 +1,272 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>语音留言</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+		<link href="../css/init.css" rel="stylesheet" />
9
+        <script src="../Script/Common/huayi.load.js"></script>
10
+        <script src="../Script/Common/huayi.config.js"></script>
11
+		<link href="../css/Table/table1.css" rel="stylesheet" />
12
+        <script src="../css/laydate/laydate.js"></script>
13
+        <style>
14
+        	.LY:hover{
15
+	color: #fff;
16
+	
17
+}
18
+.LY:active{
19
+	color: #fff!important;
20
+}
21
+        </style>
22
+	</head>
23
+	<body class="gray-bg">
24
+		<div class="wrapper wrapper-content animated fadeInRight">
25
+			<div class="daoHang clearfix">
26
+				<div class="dhLeft">
27
+					<sapn><i class="syIcon"></i>位置:<a href="javaScript:;" id="ReIndex">首页</a>&gt;<a href="javaScript:;">话务管理</a>&gt;<a href="" style="color: #000;">语音留言</a></sapn>
28
+				</div>
29
+				
30
+				<div class="dhRight">
31
+            		<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
32
+            	</div>
33
+				
34
+				
35
+			</div>
36
+			<div class="th-box">
37
+				<div class="th-bar">
38
+                    <a class="sc_btn  deal max-right">处理</a>
39
+                    <a class="sc_btn  remove">删除</a>
40
+					<div class="seach-box fr">
41
+						<ul>
42
+							<li>电话号码:<input class="photo x-color" type="text" id="tel" /></li>
43
+							<li>留言时间:<input class="photo x-color laydate-icon" type="text" id="lysj" /></li>
44
+							<li>处理时间:<input class="laydate-icon photo x-color " type="text" id="clsj" /></li>
45
+							<li>处理结果:
46
+								<select name="" id="cljg" class="x-color select">
47
+									<option value="-1">全部</option>
48
+									<option value="0">未处理</option>
49
+									<option value="1">已处理</option>
50
+									<option value="2">注销</option>
51
+								</select>
52
+							</li>
53
+							<li>
54
+								<a class="sc_btn seach">搜索</a>
55
+							</li>
56
+						</ul>
57
+					</div>
58
+				</div>
59
+			</div>
60
+			<div style="width: 100%;padding: 10px;">
61
+				<table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
62
+					<thead>
63
+						<tr>
64
+							<th data-field="state" data-checkbox="true"></th>
65
+							<th data-field="F_CallId" data-formatter="Code" data-align="center">编号</th>
66
+							<th data-field="F_Phone" data-align="center">来电号码</th>
67
+							<th data-field="F_RecFileUrl" data-align="center" data-formatter="setCode" data-align="center">留言</th>
68
+							<th data-field="F_LeaveTime" data-align="center">留言时间</th>
69
+                            <th data-field="F_UserName" data-align="center">处理人</th>
70
+                            <th data-field="F_DealContent" data-align="center">处理结果</th>
71
+							<th data-field="F_Status" data-align="center" data-formatter="clzt">处理状态</th>
72
+                            <th data-field="F_DealTime" data-align="center">处理时间</th>
73
+						</tr>
74
+					</thead>
75
+				</table>
76
+			</div>
77
+		</div>
78
+        <!--下载框-->
79
+        <div class="t-shade">
80
+            <div class="shade_k">
81
+                <div class="shade_title">
82
+                    <span>录音播放与下载<srong class="cknum"></srong></span>
83
+                    <span class="setwin"><a>x</a></span>
84
+                </div>
85
+                <div class="shade_content">
86
+                    <div class="Ly_box audiojs">
87
+                    </div>
88
+                    <div class="boxCon LY_box">
89
+                  
90
+                   </div>
91
+                </div>
92
+            </div>
93
+        </div>
94
+		<script>
95
+            $(document).ready(function () {
96
+                /*日期选择*/
97
+                laydate.skin('molv');
98
+                //留言时间
99
+                laydate({
100
+                    elem: '#lysj',
101
+                    event: 'focus',
102
+                    festival: true, //显示节日
103
+
104
+                });
105
+                //处理时间
106
+                laydate({
107
+                    elem: '#clsj',
108
+                    festival: true, //显示节日
109
+                    event: 'focus'
110
+                });
111
+                /*查询*/
112
+                $(".seach").click(function () {
113
+                    initTable();
114
+                });
115
+
116
+                $(".setwin").click(function () {
117
+                    $(".t-shade").removeClass("cx");
118
+                    $('audio')[0].pause();
119
+                });
120
+
121
+                /*删除内容*/
122
+                $(".remove").click(function () {
123
+                    var ids = $.map($('#list').bootstrapTable('getSelections'),
124
+                        function (row) {
125
+                            return row.F_Id;
126
+                        });
127
+                    /*判断长度*/
128
+                    if (ids.length <= 0) {
129
+                        layer.confirm('没有可删除的选项?', {
130
+                            btn: ['确定'] //按钮
131
+                        });
132
+                        return;
133
+                    }
134
+                    remove();
135
+                });
136
+                /*处理内容*/
137
+                $(".deal").click(function () {
138
+                    var ids = $.map($('#list').bootstrapTable('getSelections'),
139
+                        function (row) {
140
+                            return row.F_Id;
141
+                        });
142
+                    /*判断长度*/
143
+                    if (ids.length <= 0) {
144
+                        layer.confirm('没有可处理的选项?', {
145
+                            btn: ['确定'] //按钮
146
+                        });
147
+                        return;
148
+                    }
149
+                    deal();
150
+                });
151
+
152
+                initTable();
153
+            })
154
+            function initTable() {
155
+                //先销毁表格
156
+                $('#list').bootstrapTable('destroy');
157
+                //初始化表格,动态从服务器加载数据
158
+                $("#list").bootstrapTable({
159
+                    method: "get",  //使用get请求到服务器获取数据
160
+                    url: huayi.config.callcenter_url + "Callleave/GetList", //获取数据的Servlet地址
161
+                    striped: true,  //表格显示条纹
162
+                    pagination: true, //启动分页
163
+                    pageSize: 10,  //每页显示的记录数
164
+                    pageNumber: 1, //当前第几页
165
+                    pageList: [10, 20, 50, 100],  //记录数可选列表
166
+                    search: false,  //是否启用查询
167
+                    showColumns: false,  //显示下拉框勾选要显示的列
168
+                    showRefresh: false,  //显示刷新按钮
169
+                    sidePagination: "server", //表示服务端请求
170
+                    //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
171
+                    //设置为limit可以获取limit, offset, search, sort, order
172
+                    queryParamsType: "undefined",
173
+                    queryParams: function queryParams(params) {   //设置查询参数
174
+                        var param = {
175
+                            page: params.pageNumber,
176
+                            pagesize: params.pageSize,
177
+                            tel: $("#tel").val(),
178
+                            settime: $("#lysj").val(),
179
+                            removetime: $("#clsj").val(),
180
+                            status: $("#cljg").val(),
181
+                            token: $.cookie("token")
182
+                        };
183
+                        return param;
184
+                    },
185
+                    onLoadSuccess: function () {  //加载成功时执行
186
+                        //layer.msg("加载成功");
187
+                    },
188
+                    onLoadError: function () {  //加载失败时执行
189
+                        //layer.msg("加载数据失败", { time: 1500, icon: 2 });
190
+                    }
191
+                });
192
+            }
193
+            function clzt(val) {
194
+                var str = '';
195
+                switch (val + '') {
196
+                    case '0': str = "未处理"; break;
197
+                    case '1': str = "已处理"; break;
198
+                    case '2': str = "注销"; break;
199
+                }
200
+                return str;
201
+            }
202
+            //音频
203
+        function setCode(val) {
204
+            if (val) {
205
+                return '<div class="imgs">' +
206
+                    '<img src="../img/vice.png" alt="" onclick= ck(this) item="' + val+ '" />' +
207
+                    '</div>';
208
+            }
209
+            else {
210
+                return '';
211
+            }
212
+        }
213
+         //编号
214
+        function Code(val,row,index){
215
+        	return index+1;
216
+        }
217
+        //录音
218
+        function ck(val) {
219
+            var path = $(val).attr("item");
220
+            $(".t-shade").addClass("cx");
221
+            $(".Ly_box").empty();
222
+           $(".LY_box").empty();
223
+				$('<audio  style="width:100%;"class=" " src="' + path + '" loop="loop" controls="controls"></audio>').appendTo(".Ly_box");
224
+				$('<a href="'+ path +'" class="sc_btn LY "download="'+ path +'">下载录音</a>').appendTo(".LY_box");
225
+        }
226
+        /*删除提示*/
227
+        function remove() {
228
+            layer.confirm('确定删除当前记录?', {
229
+                btn: ['是', '否'] //按钮
230
+            }, function () {
231
+
232
+                /*执行删除*/
233
+                var ids = $.map($('#list').bootstrapTable('getSelections'),
234
+                    function (row) {
235
+                        return row.F_Id;
236
+                    });
237
+                /*发送请求*/
238
+                $.post(huayi.config.callcenter_url + "Callleave/DelLeaveRecord", { ids: ids, token: $.cookie("token") }, function (result) {
239
+                    result = JSON.parse(result);
240
+                    if (result.state.toLowerCase() == "success") {
241
+                        layer.msg("删除成功");
242
+                        initTable();
243
+                    }
244
+                })
245
+            });
246
+        }
247
+        /*处理提示*/
248
+        function deal() {
249
+            layer.confirm('确定处理当前记录?', {
250
+                btn: ['是', '否'] //按钮
251
+            }, function () {
252
+
253
+                /*执行删除*/
254
+                var ids = $.map($('#list').bootstrapTable('getSelections'),
255
+                    function (row) {
256
+                        return row.F_Id;
257
+                    });
258
+                /*发送请求*/
259
+                $.post(huayi.config.callcenter_url + "Callleave/OptLeaveRecord", { ids: ids, token: $.cookie("token") }, function (result) {
260
+                    result = JSON.parse(result);
261
+                    if (result.state.toLowerCase() == "success") {
262
+                        layer.msg("处理成功");
263
+                        initTable();
264
+                    }
265
+                })
266
+            });
267
+        }
268
+		</script>
269
+
270
+	</body>
271
+
272
+</html>

+ 246 - 0
CallCenterWeb.UI/TelCall/WorkTime.html

@@ -0,0 +1,246 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+<head>
5
+    <meta charset="UTF-8">
6
+    <title>上班时段设置</title>
7
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+    	 <link href="../css/init.css" rel="stylesheet" />
9
+    <script src="../Script/Common/huayi.load.js"></script>
10
+    <script src="../Script/Common/huayi.config.js"></script>
11
+    <link href="../css/Table/table1.css" rel="stylesheet" />
12
+    <script src="../css/laydate/laydate.js"></script>
13
+    <script src="../My97DatePicker/WdatePicker.js"></script>
14
+</head>
15
+<body class="gray-bg">
16
+    <div class="wrapper wrapper-content animated fadeInRight">
17
+    	<div class="daoHang clearfix">
18
+				<div class="dhLeft">
19
+					<sapn><i class="syIcon"></i>位置:<a href="javaScript:;" id="ReIndex">首页</a>&gt;<a href="javaScript:;">话务管理</a>&gt;<a href="" style="color: #000;">上班时间设置</a></sapn>
20
+				</div>
21
+			</div>
22
+        <div class="th-box">
23
+            <div class="th-bar">
24
+                <a class="sc_btn  add max-right">添加</a>
25
+                <a class="sc_btn  xg max-right">修改</a>
26
+                <a class="sc_btn  remove">删除</a>
27
+                <div class="seach-box fr">
28
+                    <ul>
29
+                        <li>关键字:<input class="photo x-color" type="text" id="KeyWords" /></li>
30
+                        <li>
31
+                            <a id="sc_btn" class="sc_btn Block">搜索</a>
32
+                        </li>
33
+                    </ul>
34
+                </div>
35
+            </div>
36
+        </div>
37
+        <div style="width: 100%;padding: 10px;">
38
+            <table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
39
+                <thead>
40
+                    <tr>
41
+                        <th data-field="state" data-checkbox="true"></th>
42
+                        <th data-field="F_WorkStartTimes" data-formatter="gettime">工作开始时间</th>
43
+                        <th data-field="F_WorkEndTimes" data-formatter="gettime">工作结束时间</th>
44
+                        <th data-field="F_TimeName">时间段名称</th>
45
+                        <th data-field="F_Remark">时间段备注</th>
46
+                    </tr>
47
+                </thead>
48
+                <tbody id="tbody"></tbody>
49
+            </table>
50
+        </div>
51
+    </div>
52
+    <script>
53
+        var html = ' <div>' +
54
+                        '<ul class="nav nav-tabs">' +
55
+                        '<li class="active"><a href="#">参数信息</a></li> ' +
56
+                        '</ul>' +
57
+                        '<div class=" add_time">' +
58
+                        '<label for="">工作开始时间:</label>' +
59
+                        '<input type="text" id="workstart" class="photo" onclick="WdatePicker({dateFmt:\'HH:mm:ss\'})"/><input type="hidden" id="ID" value="" class="photo"/>' +
60
+                        '</div>' +
61
+                        '<div class=" add_time">' +
62
+                        '<label for="">工作结束时间:</label>' +
63
+                        '<input type="text"class="photo" id="workend" onclick="WdatePicker({dateFmt:\'HH:mm:ss\'})"/>' +
64
+                        '</div>' +
65
+                        '<div class=" add_time">' +
66
+                        '<label for="">时间段名称:</label>' +
67
+                        '<input type="text" class="photo" id="timename" />' +
68
+                        '</div>' +
69
+                        '<div class=" add_time">' +
70
+                        '<label for="" class="Pb_sm">时间段备注:</label>' +
71
+                        '<textarea type="text"  id="Pb"/>' +
72
+                        '</textarea>' +
73
+                        '</div>' +
74
+                        '<div class=" add_time tc">' +
75
+                        '<button  type="button" class="sc_btn " id="tc" onclick="addedit()">保&nbsp;&nbsp;存</button>' +
76
+                        '</div>' +
77
+                        ' </div>';
78
+        var tc;
79
+        $(document).ready(function () {
80
+            /*日期选择*/
81
+            laydate.skin('molv');
82
+            /*搜索*/
83
+            $("#sc_btn ").click(function () {
84
+                initTable();
85
+            })
86
+
87
+            /*删除提示*/
88
+            $(".remove").click(function () {
89
+                var ids = $.map($('#list').bootstrapTable('getSelections'),
90
+                    function (row) {
91
+                        return row.F_ID;
92
+                    });
93
+                /*判断长度*/
94
+                if (ids.length <= 0) {
95
+                    layer.confirm('没有可删除的选项?', {
96
+                        btn: ['确定'] //按钮
97
+                    });
98
+                    return;
99
+                }
100
+
101
+                layer.confirm('确定删除选中记录?', {
102
+                    btn: ['是', '否'] //按钮
103
+                }, function () {
104
+                    /*发送请求*/
105
+                    $.post(huayi.config.callcenter_url + "Workcalendar/DelTimes", { ids: ids, token: $.cookie("token") }, function (result) {
106
+                        result = JSON.parse(result);
107
+                        if (result.state.toLowerCase() == "success") {
108
+                            layer.msg("删除成功");
109
+                            initTable();
110
+                        }
111
+                    })
112
+                });
113
+            });
114
+            /*增加弹框*/
115
+            $(".add").click(function () {
116
+                tc = layer.open({
117
+                    type: 1,
118
+                    content: html, //iframe的url,no代表不显示滚动条
119
+                    title: '添加上班时段',
120
+                    area: ['35%', '65%'], //宽高
121
+
122
+                });
123
+            });
124
+            /*修改弹窗*/
125
+            $(".xg").click(function () {
126
+                var ids = $.map($('#list').bootstrapTable('getSelections'),
127
+                    function (row) {
128
+                        return row.F_ID;
129
+                    });
130
+                if (ids.length != 1) {
131
+                    layer.confirm('请选择一行进行修改?', {
132
+                        btn: ['确定'] //按钮
133
+                    });
134
+                    return;
135
+                } else {
136
+
137
+                    $.getJSON(huayi.config.callcenter_url + "Workcalendar/GetTimes", { id: ids[0], token: $.cookie("token") }, function (result) {
138
+                        if (result.state.toLowerCase() == "success") {
139
+                            tc = layer.open({
140
+                                type: 1,
141
+                                title: '修改上班时段',
142
+                                area: ['35%', '65%'], //宽高
143
+                                content: html
144
+                            });
145
+
146
+                            $("#ID").val(result.data.F_ID);
147
+                            $("#workstart").val(result.data.F_WorkStartTimes.substr(11, 8));
148
+                            $("#workend").val(result.data.F_WorkEndTimes.substr(11, 8));
149
+                            $("#timename").val(result.data.F_TimeName);
150
+                            $("#Pb").val(result.data.F_Remark);
151
+                        }
152
+                    })
153
+                }
154
+            });
155
+
156
+            initTable();
157
+        })
158
+        function initTable() {
159
+            //先销毁表格
160
+            $('#list').bootstrapTable('destroy');
161
+            //初始化表格,动态从服务器加载数据
162
+            $("#list").bootstrapTable({
163
+                method: "get",  //使用get请求到服务器获取数据
164
+                url: huayi.config.callcenter_url + "Workcalendar/GetTimesList", //获取数据的Servlet地址
165
+                striped: true,  //表格显示条纹
166
+                pagination: true, //启动分页
167
+                pageSize: 10,  //每页显示的记录数
168
+                pageNumber: 1, //当前第几页
169
+                pageList: [10, 20, 50, 100],  //记录数可选列表
170
+                search: false,  //是否启用查询
171
+                showColumns: false,  //显示下拉框勾选要显示的列
172
+                showRefresh: false,  //显示刷新按钮
173
+                sidePagination: "server", //表示服务端请求
174
+                //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
175
+                //设置为limit可以获取limit, offset, search, sort, order
176
+                queryParamsType: "undefined",
177
+                queryParams: function queryParams(params) {   //设置查询参数
178
+                    var param = {
179
+                        page: params.pageNumber,
180
+                        pagesize: params.pageSize,
181
+                        keyword: $("#KeyWords").val(),
182
+                        token: $.cookie("token")
183
+                    };
184
+                    return param;
185
+                },
186
+                onLoadSuccess: function () {  //加载成功时执行
187
+                    //layer.msg("加载成功");
188
+                },
189
+                onLoadError: function () {  //加载失败时执行
190
+                    //layer.msg("加载数据失败", { time: 1500, icon: 2 });
191
+                }
192
+            });
193
+        }
194
+
195
+        //新增或者编辑
196
+        function addedit() {
197
+            if (!$("#workstart").val()) {
198
+                layer.confirm('请选择工作开始时间', {
199
+                    btn: ['确定'] //按钮
200
+                });
201
+                return;
202
+            }
203
+            if (!$("#workend").val()) {
204
+                layer.confirm('请选择工作结束时间', {
205
+                    btn: ['确定'] //按钮
206
+                });
207
+                return;
208
+            }
209
+            if (!$("#timename").val()) {
210
+                layer.confirm('请输入时间段名称', {
211
+                    btn: ['确定'] //按钮
212
+                });
213
+                return;
214
+            }
215
+            /*发送请求*/
216
+            $.post(huayi.config.callcenter_url + "Workcalendar/AddTimes",
217
+                {
218
+                    workid: $("#ID").val(), workstart: $("#workstart").val(), workend: $("#workend").val(),
219
+                    timename: $("#timename").val(), remark: $("#Pb").val(), token: $.cookie("token")
220
+                }, function (result) {
221
+                    result = JSON.parse(result);
222
+                    if (result.state.toLowerCase() == "success") {
223
+                        if ($("#ID").val()) {
224
+                            layer.msg("修改成功");
225
+                        }
226
+                        else {
227
+                            layer.msg("新增成功");
228
+                        }
229
+                        layer.close(tc); //关闭弹层
230
+                        initTable();
231
+                    }
232
+                })
233
+        }
234
+        function gettime(val) {
235
+            if (val) {
236
+                return val.substr(11, 8);
237
+            }
238
+            else {
239
+                return '';
240
+            }
241
+        }
242
+    </script>
243
+
244
+</body>
245
+
246
+</html>

+ 32 - 0
CallCenterWeb.UI/Web.Debug.config

@@ -0,0 +1,32 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+
3
+<!-- 有关使用 web.config 转换的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=125889 -->
4
+
5
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
6
+  <!--
7
+    在下例中,“SetAttributes”转换将更改 
8
+    “connectionString”的值,以仅在“Match”定位器 
9
+    找到值为“MyDB”的特性“name”时使用“ReleaseSQLServer”。
10
+    
11
+    <connectionStrings>
12
+      <add name="MyDB" 
13
+        connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" 
14
+        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
15
+    </connectionStrings>
16
+  -->
17
+  <system.web>
18
+    <compilation xdt:Transform="RemoveAttributes(debug)" />
19
+    <!--
20
+      
21
+      在下例中,“Replace”转换将替换 
22
+      web.config 文件的整个 <customErrors> 节。
23
+      请注意,由于 
24
+      在 <system.web> 节点下仅有一个 customErrors 节,因此不需要使用“xdt:Locator”特性。
25
+      
26
+      <customErrors defaultRedirect="GenericError.htm"
27
+        mode="RemoteOnly" xdt:Transform="Replace">
28
+        <error statusCode="500" redirect="InternalError.htm"/>
29
+      </customErrors>
30
+    -->
31
+  </system.web>
32
+</configuration>

+ 23 - 0
CallCenterWeb.UI/Web.config

@@ -0,0 +1,23 @@
1
+<?xml version="1.0"?>
2
+
3
+<!--
4
+  For more information on how to configure your ASP.NET application, please visit
5
+  http://go.microsoft.com/fwlink/?LinkId=169433
6
+  -->
7
+
8
+<configuration>
9
+
10
+  <system.web>
11
+    <compilation debug="true" targetFramework="4.5" />
12
+    <httpRuntime targetFramework="4.5" />
13
+    <webServices>
14
+      <protocols>
15
+        <add name="HttpGet" />
16
+        <add name="HttpPost" />
17
+      </protocols>
18
+    </webServices>
19
+  </system.web>
20
+
21
+ 
22
+
23
+</configuration>

+ 0 - 0
CallCenterWeb.UI/Whfp.html


Some files were not shown because too many files changed in this diff