Merge branch 'master-mj-yuanjinpengnew' into 'master-mj'
fix:山西特色功能迁移 备份模块和基础环境管理模块儿 See merge request !1109
Showing
18 changed files
with
4293 additions
and
130 deletions
Too many changes to show.
To preserve performance only 18 of 18+ files are displayed.
1 | +//备份失败列表 | ||
2 | +layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions','soulTable'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var form = layui.form; | ||
5 | + var layer = layui.layer; | ||
6 | + var admin = layui.admin; | ||
7 | + var table = layui.table; | ||
8 | + var common = layui.common; | ||
9 | + var session = layui.sessions | ||
10 | + var domainName = common.domainName; | ||
11 | + var soulTable = layui.soulTable; | ||
12 | + //对外暴露的接口 | ||
13 | + exports("backDetailList", function (d) { | ||
14 | + var accessToken = localStorage.getItem("accessToken"); | ||
15 | + | ||
16 | + createFailTable() | ||
17 | + function dateForm(time) { | ||
18 | + var unixTimestamp = new Date(time); | ||
19 | + var commonTime = unixTimestamp.toLocaleString(); | ||
20 | + return commonTime | ||
21 | + } | ||
22 | + //渲染附件表格 | ||
23 | + function createFailTable() { | ||
24 | + var failTable = table.render({ | ||
25 | + elem: '#backDetailTable', | ||
26 | + url:common.domainName + '/api-web/collbackup/childrenList', | ||
27 | + where: { | ||
28 | + type:"all", | ||
29 | + accessToken: accessToken, | ||
30 | + startTimeDate: d.startTime, | ||
31 | + resId: d.resId === null ? 'null' : d.resId, | ||
32 | + resIp: d.resIp === null ? 'null' : d.resIp | ||
33 | + }, | ||
34 | + height: 'full', | ||
35 | + page: { | ||
36 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] | ||
37 | + , theme: '#1E9FFF'//自定义分页主题颜色 | ||
38 | + }, | ||
39 | + end: function (e) { | ||
40 | + form.render() | ||
41 | + }, | ||
42 | + limit: common.limit, | ||
43 | + limits: common.limits, | ||
44 | + even: true, | ||
45 | + cols: [[ | ||
46 | + { | ||
47 | + field: 'policyName', title: '策略类型', align: 'center', sort: true, width: 250, drag: false | ||
48 | + }, { | ||
49 | + field: 'agentType', | ||
50 | + title: '代理类型', | ||
51 | + align: 'center', | ||
52 | + sort: true, | ||
53 | + drag: false, | ||
54 | + width: 200, | ||
55 | + templet: ` | ||
56 | + <div> | ||
57 | + {{# | ||
58 | + var agentTypeEnum = { | ||
59 | + 'F': '文件', | ||
60 | + 'O': 'Oracle', | ||
61 | + 'S': 'SQLServer', | ||
62 | + 'M': 'Mysql', | ||
63 | + 'v': 'VMware', | ||
64 | + 'q': 'H3C', | ||
65 | + 'E': 'Exchange', | ||
66 | + 'C': 'ActiveDirector', | ||
67 | + 'U': 'AliCloud', | ||
68 | + 'H': 'HYPER_V', | ||
69 | + 'Q': 'QEMU', | ||
70 | + 'X': 'XEN', | ||
71 | + 'd': 'DaMeng' | ||
72 | + }; | ||
73 | + var agentTypeStr = agentTypeEnum[d.agentType]; | ||
74 | + agentTypeStr = agentTypeStr ? agentTypeStr : d.agentType; | ||
75 | + }} | ||
76 | + {{agentTypeStr}} | ||
77 | + </div> | ||
78 | + ` | ||
79 | + }, { | ||
80 | + field: 'level', | ||
81 | + title: '级别', | ||
82 | + align: 'center', | ||
83 | + sort: true, | ||
84 | + drag: false, | ||
85 | + width: 200, | ||
86 | + templet: ` | ||
87 | + <div> | ||
88 | + {{# | ||
89 | + var levelEnum = { | ||
90 | + 'F': '全备', | ||
91 | + 'I': '增量', | ||
92 | + 'D': '差异', | ||
93 | + 's': '文件和文件组(sqlserver)', | ||
94 | + 'L': '事务日志(sqlserver)', | ||
95 | + 'X': '全量备份(oracle级别)', | ||
96 | + 'Y': '差异增量(oracle级别)', | ||
97 | + 'Z': '累积增量(oracle级别)' | ||
98 | + }; | ||
99 | + var levelStr = levelEnum[d.level]; | ||
100 | + levelStr = levelStr ? levelStr : d.level; | ||
101 | + }} | ||
102 | + {{levelStr}} | ||
103 | + </div> | ||
104 | + ` | ||
105 | + }, { | ||
106 | + field: 'client', title: '客户端', align: 'center', drag: false, width: 200, sort: true | ||
107 | + }, { | ||
108 | + field: 'stroge', title: '存储池', align: 'center', drag: false, width: 200, sort: true | ||
109 | + }, { | ||
110 | + field: 'jobStatus', | ||
111 | + title: '备份状态', | ||
112 | + align: 'center', | ||
113 | + drag: false, | ||
114 | + width: 160, | ||
115 | + sort: true, | ||
116 | + templet: ` | ||
117 | + <div> | ||
118 | + {{# | ||
119 | + var jobStatusEnum = { | ||
120 | + 'A': '取消', | ||
121 | + 'T': '成功', | ||
122 | + 'N': '禁用', | ||
123 | + 'f': '<span style="color: red">失败</span>', | ||
124 | + 'E': '<span style="color: red">失败</span>', | ||
125 | + 'W': '成功有警告', | ||
126 | + 'I': '备份中', | ||
127 | + 'e': '成功有警告' | ||
128 | + }; | ||
129 | + var jobStatusStr = jobStatusEnum[d.jobStatus]; | ||
130 | + jobStatusStr = jobStatusStr ? jobStatusStr : d.jobStatus; | ||
131 | + }} | ||
132 | + {{jobStatusStr}} | ||
133 | + </div> | ||
134 | + ` | ||
135 | + }, { | ||
136 | + field: 'startTime', title: '开始时间', align: 'center', drag: false, sort: true, width: 160 | ||
137 | + }, { | ||
138 | + field: 'endTime', title: '结束时间', align: 'center', drag: false, sort: true, width: 160 | ||
139 | + }, { | ||
140 | + field: 'useTime', title: '运行时间', align: 'center', drag: false, sort: true, width: 130 | ||
141 | + }, { | ||
142 | + field: 'speed', title: '速度', align: 'center', drag: false, sort: true, width: 110 | ||
143 | + }, { | ||
144 | + field: 'jobFiles', title: '文件数', align: 'center', drag: false, sort: true, width: 110 | ||
145 | + }, { | ||
146 | + field: 'jobBytesMb', title: '数据量', align: 'center', drag: false, sort: true, width: 170 | ||
147 | + }, { | ||
148 | + field: 'storgeType', title: '存储类型', align: 'center', drag: false, sort: true, width: 110 | ||
149 | + } | ||
150 | + ]], | ||
151 | + done: function () { | ||
152 | + soulTable.render(this); | ||
153 | + } | ||
154 | + }) | ||
155 | + } | ||
156 | + | ||
157 | + }) | ||
158 | +}) |
1 | +//备份失败列表 | ||
2 | +layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var form = layui.form; | ||
5 | + var layer = layui.layer; | ||
6 | + var admin = layui.admin; | ||
7 | + var table = layui.table; | ||
8 | + var common = layui.common; | ||
9 | + var session = layui.sessions | ||
10 | + var domainName = common.domainName; | ||
11 | + | ||
12 | + //对外暴露的接口 | ||
13 | + exports("backFailList", function (d) { | ||
14 | + var accessToken = localStorage.getItem("accessToken"); | ||
15 | + | ||
16 | + createFailTable() | ||
17 | + function dateForm(time) { | ||
18 | + var unixTimestamp = new Date(time); | ||
19 | + var commonTime = unixTimestamp.toLocaleString(); | ||
20 | + return commonTime | ||
21 | + } | ||
22 | + //渲染附件表格 | ||
23 | + function createFailTable() { | ||
24 | + var failTable = table.render({ | ||
25 | + elem: '#failTable', | ||
26 | + url: domainName + '/api-web/backupview/findBackupViews', | ||
27 | + where: { | ||
28 | + accessToken: accessToken, | ||
29 | + countTime: d.createDate, | ||
30 | + backStatus: d.status | ||
31 | + }, | ||
32 | + height: 'full', | ||
33 | + page: { | ||
34 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] | ||
35 | + , theme: '#1E9FFF'//自定义分页主题颜色 | ||
36 | + }, | ||
37 | + end: function (e) { | ||
38 | + form.render() | ||
39 | + }, | ||
40 | + limit: common.limit, | ||
41 | + limits: common.limits, | ||
42 | + even: true, | ||
43 | + cols: [[ | ||
44 | + {type: 'numbers', title: '序号'}, | ||
45 | + { | ||
46 | + field: 'busName', title: '系统名称', align: 'center', minWith: 240, | ||
47 | + }, { | ||
48 | + field: 'evaluationLevel', title: '等保等级', align: 'center', minWith: 130, | ||
49 | + }, { | ||
50 | + field: 'resName', title: '数据库名称', align: 'center', minWith: 240, | ||
51 | + }, | ||
52 | + { | ||
53 | + field: 'ip', title: 'IP地址', align: 'center', minWith: 150, | ||
54 | + }, | ||
55 | + { | ||
56 | + field: 'platform', title: '备份平台', align: 'center', minWith: 130, | ||
57 | + }, | ||
58 | + { | ||
59 | + field: 'backLevel', title: '备份级别', align: 'center', minWith: 180, | ||
60 | + }, | ||
61 | + { | ||
62 | + field: 'backStatus', title: '备份状态', align: 'center', minWith: 120, | ||
63 | + templet:function (d) { | ||
64 | + var backStatus = d.backStatus | ||
65 | + var backStatushtml = '成功'; | ||
66 | + if(/失败/.test(backStatus)){ | ||
67 | + backStatushtml = '<span style="font-size: 14px;color: red">失败</span>' | ||
68 | + }else{ | ||
69 | + backStatushtml = '<span style="font-size: 14px;color: green">成功</span>' | ||
70 | + } | ||
71 | + return backStatushtml; | ||
72 | + } | ||
73 | + | ||
74 | + }, | ||
75 | + { | ||
76 | + field: 'backBytes', title: '数据量(GB)', align: 'center', minWith: 130, | ||
77 | + }, | ||
78 | + { | ||
79 | + field: 'backSpeed', title: '速率(MB/s)', align: 'center', minWith: 130, | ||
80 | + }, | ||
81 | + { | ||
82 | + field: 'useTime', title: '运行时间(分)', align: 'center', minWith: 130, | ||
83 | + }, | ||
84 | + { | ||
85 | + field: 'startTime', title: '开始时间', align: 'center', minWith: 180, | ||
86 | + templet:function (d) { | ||
87 | + return dateForm(d.startTime); | ||
88 | + } | ||
89 | + }, | ||
90 | + { | ||
91 | + field: 'endTime', title: '结束时间', align: 'center', minWith: 180, | ||
92 | + templet:function (d) { | ||
93 | + return dateForm(d.endTime); | ||
94 | + } | ||
95 | + }, | ||
96 | + ]], | ||
97 | + done: function () { | ||
98 | + } | ||
99 | + }) | ||
100 | + } | ||
101 | + | ||
102 | + }) | ||
103 | +}) |
1 | +//备份统计 | ||
2 | +layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions','laydate', 'soulTable'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var admin = layui.admin; | ||
5 | + var table = layui.table; | ||
6 | + var common = layui.common; | ||
7 | + var laydate = layui.laydate; | ||
8 | + var soulTable = layui.soulTable; | ||
9 | + //对外暴露的接口 | ||
10 | + var accessToken; | ||
11 | + | ||
12 | + exports('backup', function () { | ||
13 | + var sessions = layui.sessions; | ||
14 | + accessToken = sessions.getToken().access_token; | ||
15 | + //条形图周期 | ||
16 | + var period = 'today'; | ||
17 | + var sortBy = 'startTime'; | ||
18 | + var order = 'desc'; | ||
19 | + | ||
20 | + //表格周期 | ||
21 | + initCount(); | ||
22 | + initTable(); | ||
23 | + //条形图时间周期切换事件 | ||
24 | + $("#noticeCount_time_button_id button").on("click", function () { | ||
25 | + $("#noticeCount_time_button_id button").removeClass("active"); | ||
26 | + $(this).addClass("active"); | ||
27 | + period = $(this).data("period"); | ||
28 | + initCount(); | ||
29 | + initTable(); | ||
30 | + }); | ||
31 | + var busBackupCountChart = echarts.init(document.getElementById('backup_count_bus')); | ||
32 | + var agentTypeBackupCountChart = echarts.init(document.getElementById('backup_count_agentType')); | ||
33 | + //初始化柱状图页面 | ||
34 | + function initCount() { | ||
35 | + countByBus(); | ||
36 | + countByAgentType(); | ||
37 | + countByState(); | ||
38 | + } | ||
39 | + | ||
40 | + //初始化表格 | ||
41 | + function initTable() { | ||
42 | + // 加载表格 | ||
43 | + table.render({ | ||
44 | + elem: '#backup_table', | ||
45 | + url: common.domainName + '/api-web/collbackup/list', | ||
46 | + where: { | ||
47 | + type:period, | ||
48 | + accessToken: accessToken, | ||
49 | + orderBy: sortBy ? sortBy + ' ' + order : '' | ||
50 | + }, | ||
51 | + initSort: { | ||
52 | + field: sortBy, | ||
53 | + type: order | ||
54 | + }, | ||
55 | + height: '500px', | ||
56 | + cellMinWidth: 80, | ||
57 | + page: { | ||
58 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'], | ||
59 | + theme: '#1E9FFF' | ||
60 | + }, | ||
61 | + limit: common.limit, | ||
62 | + limits:common.limits, | ||
63 | + // initSort: { | ||
64 | + // field: sortBy, | ||
65 | + // type: order | ||
66 | + // }, | ||
67 | + autoSort: false, | ||
68 | + cols: [[{ | ||
69 | + title: '#', width: 50, childTitle: false, children: function (row) { | ||
70 | + return [{ | ||
71 | + title: '', | ||
72 | + url: common.domainName + '/api-web/collbackup/childrenList', | ||
73 | + page: {layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'], theme: '#1E9FFF'}, | ||
74 | + limit: 5, | ||
75 | + where: { | ||
76 | + type:period, | ||
77 | + access_token: accessToken, | ||
78 | + startTimeDate: row.startTime, | ||
79 | + resId: row.resId === null ? 'null' : row.resId, | ||
80 | + resIp: row.resIp === null ? 'null' : row.resIp | ||
81 | + }, | ||
82 | + cols: [[{ | ||
83 | + field: 'policyName', title: '策略类型', align: 'center', sort: true, width: 250, drag: false | ||
84 | + }, { | ||
85 | + field: 'agentType', | ||
86 | + title: '代理类型', | ||
87 | + align: 'center', | ||
88 | + sort: true, | ||
89 | + drag: false, | ||
90 | + width: 200, | ||
91 | + templet: ` | ||
92 | + <div> | ||
93 | + {{# | ||
94 | + var agentTypeEnum = { | ||
95 | + 'F': '文件', | ||
96 | + 'O': 'Oracle', | ||
97 | + 'S': 'SQLServer', | ||
98 | + 'M': 'Mysql', | ||
99 | + 'v': 'VMware', | ||
100 | + 'q': 'H3C', | ||
101 | + 'E': 'Exchange', | ||
102 | + 'C': 'ActiveDirector', | ||
103 | + 'U': 'AliCloud', | ||
104 | + 'H': 'HYPER_V', | ||
105 | + 'Q': 'QEMU', | ||
106 | + 'X': 'XEN', | ||
107 | + 'd': 'DaMeng' | ||
108 | + }; | ||
109 | + var agentTypeStr = agentTypeEnum[d.agentType]; | ||
110 | + agentTypeStr = agentTypeStr ? agentTypeStr : d.agentType; | ||
111 | + }} | ||
112 | + {{agentTypeStr}} | ||
113 | + </div> | ||
114 | + ` | ||
115 | + }, { | ||
116 | + field: 'level', | ||
117 | + title: '级别', | ||
118 | + align: 'center', | ||
119 | + sort: true, | ||
120 | + drag: false, | ||
121 | + width: 200, | ||
122 | + templet: ` | ||
123 | + <div> | ||
124 | + {{# | ||
125 | + var levelEnum = { | ||
126 | + 'F': '全备', | ||
127 | + 'I': '增量', | ||
128 | + 'D': '差异', | ||
129 | + 's': '文件和文件组(sqlserver)', | ||
130 | + 'L': '事务日志(sqlserver)', | ||
131 | + 'X': '全量备份(oracle级别)', | ||
132 | + 'Y': '差异增量(oracle级别)', | ||
133 | + 'Z': '累积增量(oracle级别)' | ||
134 | + }; | ||
135 | + var levelStr = levelEnum[d.level]; | ||
136 | + levelStr = levelStr ? levelStr : d.level; | ||
137 | + }} | ||
138 | + {{levelStr}} | ||
139 | + </div> | ||
140 | + ` | ||
141 | + }, { | ||
142 | + field: 'client', title: '客户端', align: 'center', drag: false, width: 200, sort: true | ||
143 | + }, { | ||
144 | + field: 'stroge', title: '存储池', align: 'center', drag: false, width: 200, sort: true | ||
145 | + }, { | ||
146 | + field: 'jobStatus', | ||
147 | + title: '备份状态', | ||
148 | + align: 'center', | ||
149 | + drag: false, | ||
150 | + width: 160, | ||
151 | + sort: true, | ||
152 | + templet: ` | ||
153 | + <div> | ||
154 | + {{# | ||
155 | + var jobStatusEnum = { | ||
156 | + 'A': '取消', | ||
157 | + 'T': '成功', | ||
158 | + 'N': '禁用', | ||
159 | + 'f': '<span style="color: red">失败</span>', | ||
160 | + 'E': '<span style="color: red">失败</span>', | ||
161 | + 'W': '成功有警告', | ||
162 | + 'e': '成功有警告' | ||
163 | + }; | ||
164 | + var jobStatusStr = jobStatusEnum[d.jobStatus]; | ||
165 | + jobStatusStr = jobStatusStr ? jobStatusStr : d.jobStatus; | ||
166 | + }} | ||
167 | + {{jobStatusStr}} | ||
168 | + </div> | ||
169 | + ` | ||
170 | + }, { | ||
171 | + field: 'startTime', title: '开始时间', align: 'center', drag: false, sort: true, width: 160 | ||
172 | + }, { | ||
173 | + field: 'endTime', title: '结束时间', align: 'center', drag: false, sort: true, width: 160 | ||
174 | + }, { | ||
175 | + field: 'useTime', title: '运行时间', align: 'center', drag: false, sort: true, width: 130 | ||
176 | + }, { | ||
177 | + field: 'speed', title: '速度', align: 'center', drag: false, sort: true, width: 110 | ||
178 | + }, { | ||
179 | + field: 'jobFiles', title: '文件数', align: 'center', drag: false, sort: true, width: 110 | ||
180 | + }, { | ||
181 | + field: 'jobBytesMb', title: '数据量', align: 'center', drag: false, sort: true, width: 170 | ||
182 | + }, { | ||
183 | + field: 'storgeType', title: '存储类型', align: 'center', drag: false, sort: true, width: 110 | ||
184 | + }]], | ||
185 | + done: function () { | ||
186 | + soulTable.render(this); | ||
187 | + } | ||
188 | + }] | ||
189 | + } | ||
190 | + }, { | ||
191 | + field: 'policyName', title: '策略类型', align: 'center', sort: true, width: 250, drag: false | ||
192 | + }, { | ||
193 | + field: 'agentType', title: '代理类型', align: 'center', sort: true, drag: false, width: 200, templet: ` | ||
194 | + <div> | ||
195 | + {{# | ||
196 | + var agentTypeEnum = { | ||
197 | + 'F': '文件', | ||
198 | + 'O': 'Oracle', | ||
199 | + 'S': 'SQLServer', | ||
200 | + 'M': 'Mysql', | ||
201 | + 'v': 'VMware', | ||
202 | + 'q': 'H3C', | ||
203 | + 'E': 'Exchange', | ||
204 | + 'C': 'ActiveDirector', | ||
205 | + 'U': 'AliCloud', | ||
206 | + 'H': 'HYPER_V', | ||
207 | + 'Q': 'QEMU', | ||
208 | + 'X': 'XEN', | ||
209 | + 'd': 'DaMeng' | ||
210 | + }; | ||
211 | + var agentTypeStr = agentTypeEnum[d.agentType]; | ||
212 | + agentTypeStr = agentTypeStr ? agentTypeStr : d.agentType; | ||
213 | + }} | ||
214 | + {{agentTypeStr}} | ||
215 | + </div> | ||
216 | + ` | ||
217 | + }, { | ||
218 | + field: 'level', title: '级别', align: 'center', sort: true, drag: false, width: 200, templet: ` | ||
219 | + <div> | ||
220 | + {{# | ||
221 | + var levelEnum = { | ||
222 | + 'F': '全备', | ||
223 | + 'I': '增量', | ||
224 | + 'D': '差异', | ||
225 | + 's': '文件和文件组(sqlserver)', | ||
226 | + 'L': '事务日志(sqlserver)', | ||
227 | + 'X': '全量备份(oracle级别)', | ||
228 | + 'Y': '差异增量(oracle级别)', | ||
229 | + 'Z': '累积增量(oracle级别)' | ||
230 | + }; | ||
231 | + var levelStr = levelEnum[d.level]; | ||
232 | + levelStr = levelStr ? levelStr : d.level; | ||
233 | + }} | ||
234 | + {{levelStr}} | ||
235 | + </div> | ||
236 | + ` | ||
237 | + }, { | ||
238 | + field: 'client', title: '客户端', align: 'center', drag: false, width: 200, sort: true | ||
239 | + }, { | ||
240 | + field: 'stroge', title: '存储池', align: 'center', drag: false, width: 200, sort: true | ||
241 | + } , { | ||
242 | + field: 'jobStatus', | ||
243 | + title: '备份状态', | ||
244 | + align: 'center', | ||
245 | + drag: false, | ||
246 | + width: 160, | ||
247 | + sort: true, | ||
248 | + templet: ` | ||
249 | + <div> | ||
250 | + {{# | ||
251 | + var jobStatusEnum = { | ||
252 | + 'A': '取消', | ||
253 | + 'T': '成功', | ||
254 | + 'N': '禁用', | ||
255 | + 'f': '<span style="color: red">失败</span>', | ||
256 | + 'E': '<span style="color: red">失败</span>', | ||
257 | + 'W': '成功有警告', | ||
258 | + 'e': '成功有警告' | ||
259 | + }; | ||
260 | + var jobStatusStr = jobStatusEnum[d.jobStatus]; | ||
261 | + jobStatusStr = jobStatusStr ? jobStatusStr : d.jobStatus; | ||
262 | + }} | ||
263 | + {{jobStatusStr}} | ||
264 | + </div> | ||
265 | + ` | ||
266 | + }, { | ||
267 | + field: 'startTime', title: '开始时间', align: 'center', drag: false, sort: true, width: 160 | ||
268 | + }, { | ||
269 | + field: 'endTime', title: '结束时间', align: 'center', drag: false, sort: true, width: 160 | ||
270 | + }, { | ||
271 | + field: 'jobFiles', title: '文件数', align: 'center', drag: false, sort: true, width: 110 | ||
272 | + }, { | ||
273 | + field: 'storgeType', title: '存储类型', align: 'center', drag: false, sort: true, width: 110 | ||
274 | + }]], | ||
275 | + done() { | ||
276 | + soulTable.render(this); | ||
277 | + } | ||
278 | + }); | ||
279 | + } | ||
280 | + | ||
281 | + //根据业务统计 | ||
282 | + function countByBus() { | ||
283 | + $.ajax({ | ||
284 | + url: common.domainName + '/api-web/collbackup/countBackupByBus?access_token=' + accessToken + '&type=' + period, | ||
285 | + method: 'GET', | ||
286 | + success: function (res) { | ||
287 | + if (res && res.success) { | ||
288 | + if (res.names.length == 0){ | ||
289 | + res.names = ["综合办公信息系统","社保费税银子系统","社保费征收子系统","社保费信息共享平台","数字人事","出口退税审核系统"]; | ||
290 | + res.totals = [0,0,0,0,0,0]; | ||
291 | + res.successes = [0,0,0,0,0,0]; | ||
292 | + res.failures = [0,0,0,0,0,0]; | ||
293 | + } | ||
294 | + //初始化业务子系统告警发送统计 | ||
295 | + loadCountOverChart(busBackupCountChart,res,'按业务统计','bar'); | ||
296 | + } | ||
297 | + } | ||
298 | + }) | ||
299 | + } | ||
300 | + //根据业务统计 | ||
301 | + function countByAgentType() { | ||
302 | + $.ajax({ | ||
303 | + url: common.domainName + '/api-web/collbackup/countBackupByAgentType?access_token=' + accessToken + '&type=' + period, | ||
304 | + method: 'GET', | ||
305 | + success: function (res) { | ||
306 | + if (res && res.success) { | ||
307 | + //初始化业务子系统告警发送统计 | ||
308 | + loadCountOverChart(agentTypeBackupCountChart,res,'按代理类型统计','bar'); | ||
309 | + } | ||
310 | + } | ||
311 | + }) | ||
312 | + } | ||
313 | + //成功、失败统计 | ||
314 | + function countByState() { | ||
315 | + $.ajax({ | ||
316 | + url: common.domainName + '/api-web/collbackup/countByState?access_token=' + accessToken + '&type=' + period, | ||
317 | + method: 'GET', | ||
318 | + success: function (res) { | ||
319 | + if (res && res.success && res.map) { | ||
320 | + let map = res.map; | ||
321 | + $('#back_total').text(map.totalCount); | ||
322 | + $('#back_success').text(map.successCount); | ||
323 | + $('#back_fail').text(map.failCount); | ||
324 | + } | ||
325 | + } | ||
326 | + }) | ||
327 | + } | ||
328 | + //备份统计柱状图表 | ||
329 | + function loadCountOverChart(echartObject, chartData, title, type) { | ||
330 | + //列名 | ||
331 | + var nameList = chartData.names; | ||
332 | + //总数 | ||
333 | + var totalList = chartData.totals; | ||
334 | + //成功 | ||
335 | + var successList = chartData.successes; | ||
336 | + //失败 | ||
337 | + var failureList = chartData.failures; | ||
338 | + var barSeries = [{ | ||
339 | + name: '成功', | ||
340 | + data: successList, | ||
341 | + barWidth: 40, | ||
342 | + type: 'bar', | ||
343 | + stack: 'total', | ||
344 | + emphasis: { | ||
345 | + focus: 'series' | ||
346 | + }, | ||
347 | + itemStyle: { | ||
348 | + color: "#0BAC33" | ||
349 | + } | ||
350 | + }, { | ||
351 | + name: '失败', | ||
352 | + data: failureList, | ||
353 | + barWidth: 40, | ||
354 | + type: 'bar', | ||
355 | + stack: 'total', | ||
356 | + emphasis: { | ||
357 | + focus: 'series' | ||
358 | + }, | ||
359 | + itemStyle: { | ||
360 | + color: "#d81e06" | ||
361 | + }, | ||
362 | + label: { | ||
363 | + show: true, | ||
364 | + position: 'top', | ||
365 | + textStyle: { | ||
366 | + color: '#555' | ||
367 | + }, | ||
368 | + formatter: function (param) { | ||
369 | + return totalList[param.dataIndex]; | ||
370 | + }, | ||
371 | + } | ||
372 | + }]; | ||
373 | + var lineSeries = [{ | ||
374 | + name: '成功', | ||
375 | + data: successList, | ||
376 | + barWidth: 40, | ||
377 | + type: 'line', | ||
378 | + stack: 'total', | ||
379 | + emphasis: { | ||
380 | + focus: 'series' | ||
381 | + }, | ||
382 | + itemStyle: { | ||
383 | + color: "#0BAC33" | ||
384 | + }, | ||
385 | + label: { | ||
386 | + show: true, | ||
387 | + position: 'top', | ||
388 | + textStyle: { | ||
389 | + color: '#555' | ||
390 | + } | ||
391 | + } | ||
392 | + }, { | ||
393 | + name: '失败', | ||
394 | + data: failureList, | ||
395 | + barWidth: 40, | ||
396 | + type: 'line', | ||
397 | + stack: 'total', | ||
398 | + emphasis: { | ||
399 | + focus: 'series' | ||
400 | + }, | ||
401 | + itemStyle: { | ||
402 | + color: "#d81e06" | ||
403 | + }, | ||
404 | + label: { | ||
405 | + show: true, | ||
406 | + position: 'top', | ||
407 | + textStyle: { | ||
408 | + color: '#555' | ||
409 | + } | ||
410 | + } | ||
411 | + } | ||
412 | + ] | ||
413 | + var option = { | ||
414 | + tooltip: { | ||
415 | + trigger: 'axis', | ||
416 | + axisPointer: { | ||
417 | + type: 'shadow' | ||
418 | + }, | ||
419 | + extraCssText: 'width:120px;height:80px;' | ||
420 | + }, | ||
421 | + toolbox: { | ||
422 | + show: true, | ||
423 | + feature: { | ||
424 | + saveAsImage: {} | ||
425 | + }, | ||
426 | + right: 10 | ||
427 | + }, | ||
428 | + legend: { | ||
429 | + data: ['成功', '失败'], | ||
430 | + selectedMode: false | ||
431 | + }, | ||
432 | + grid: [{ | ||
433 | + top: 40, | ||
434 | + bottom: 70, | ||
435 | + left: 50, | ||
436 | + right: 5 | ||
437 | + }], | ||
438 | + xAxis: [{ | ||
439 | + type: 'category', | ||
440 | + data: nameList, | ||
441 | + axisLabel: { | ||
442 | + color: '#333', | ||
443 | + show: true, | ||
444 | + interval: 0, | ||
445 | + rotate: 25 | ||
446 | + }, | ||
447 | + axisLine: { | ||
448 | + lineStyle: { | ||
449 | + color: '#e7e7e7' | ||
450 | + } | ||
451 | + }, | ||
452 | + axisTick: { | ||
453 | + lineStyle: { | ||
454 | + color: '#e7e7e7' | ||
455 | + } | ||
456 | + }, | ||
457 | + zlevel: 1 | ||
458 | + }], | ||
459 | + yAxis: [{ | ||
460 | + type: 'value', | ||
461 | + gridIndex: 0, | ||
462 | + axisLabel: { | ||
463 | + color: '#333' | ||
464 | + }, | ||
465 | + splitLine: { | ||
466 | + lineStyle: { | ||
467 | + type: 'dashed' | ||
468 | + } | ||
469 | + }, | ||
470 | + axisLine: { | ||
471 | + lineStyle: { | ||
472 | + color: '#ccc' | ||
473 | + } | ||
474 | + }, | ||
475 | + axisTick: { | ||
476 | + lineStyle: { | ||
477 | + color: '#ccc' | ||
478 | + } | ||
479 | + } | ||
480 | + }], | ||
481 | + series: type === 'bar' ? barSeries : lineSeries | ||
482 | + } | ||
483 | + echartObject.setOption(option) | ||
484 | + } | ||
485 | + }); | ||
486 | +}); |
1 | +//备份统计 | ||
2 | +layui.define(['common', 'admin', 'echarts', 'common', 'table', 'sessions', 'laydate', 'soulTable'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var admin = layui.admin; | ||
5 | + var table = layui.table; | ||
6 | + var common = layui.common; | ||
7 | + var laydate = layui.laydate; | ||
8 | + var soulTable = layui.soulTable; | ||
9 | + var domainName = common.domainName; | ||
10 | + //对外暴露的接口 | ||
11 | + var accessToken; | ||
12 | + exports('backupCount', function () { | ||
13 | + var sessions = layui.sessions; | ||
14 | + var accessToken = localStorage.getItem("accessToken"); | ||
15 | + var period = 'thisMonth'; | ||
16 | + initTable(); | ||
17 | + initStatusTable() | ||
18 | + //条形图时间周期切换事件 | ||
19 | + $("#backupCount_time_button_id button").on("click", function () { | ||
20 | + $("#backupCount_time_button_id button").removeClass("active"); | ||
21 | + $(this).addClass("active"); | ||
22 | + period = $(this).data("period"); | ||
23 | + initTable(); | ||
24 | + }); | ||
25 | + $("#btn-backcount-export-excel").on("click", function () { | ||
26 | + var href = domainName + '/api-web/backupview/backCount/export?accessToken=' + accessToken + "&countTime=" + period; | ||
27 | + window.open(href) | ||
28 | + }) | ||
29 | + | ||
30 | + //初始化表格 | ||
31 | + function initTable() { | ||
32 | + // 加载表格 | ||
33 | + table.render({ | ||
34 | + elem: '#count_table', | ||
35 | + url: domainName + '/api-web/backupview/countBackUp', | ||
36 | + where: { | ||
37 | + countTime: period, | ||
38 | + accessToken: accessToken | ||
39 | + }, | ||
40 | + height: '800px', | ||
41 | + cellMinWidth: 80, | ||
42 | + autoSort: false, | ||
43 | + cols: [[{ | ||
44 | + field: 'createDate', title: '备份时间', align: 'center', sort: true, drag: false, width: 220 | ||
45 | + }, { | ||
46 | + field: 'shouldBack', title: '应备份数量', align: 'center', drag: false, width: 220, | ||
47 | + }, { | ||
48 | + field: 'success', title: '备份成功数量', align: 'center', drag: false, width: 220, | ||
49 | + templet: '<div><span data-date="{{d.createDate}}" data-status="成功" class="layui-table-link view-failCount-collectValue" style="color: green;font-size: 14px">{{d.success}}</span></div>' | ||
50 | + | ||
51 | + }, { | ||
52 | + field: 'fail', title: '备份失败数量', align: 'center', drag: false, width: 220, | ||
53 | + templet: '<div><span data-date="{{d.createDate}}" data-status="失败" class="layui-table-link view-failCount-collectValue" style="color: red;font-size: 14px">{{d.fail}}</span></div>' | ||
54 | + | ||
55 | + }, { | ||
56 | + field: 'inback', title: '备份中数量', align: 'center', drag: false, width: 220, | ||
57 | + }, { | ||
58 | + field: 'noback', title: '未备份数量', align: 'center', drag: false, width: 220, | ||
59 | + }, { | ||
60 | + field: 'sucRate', title: '备份成功率', align: 'center', drag: false, | ||
61 | + }]], | ||
62 | + done: function (res, curr, count) { | ||
63 | + soulTable.render(this); | ||
64 | + $('.view-failCount-collectValue').on('click', function () { | ||
65 | + var createDate = $(this).data("date"); | ||
66 | + var status = $(this).data("status"); | ||
67 | + var title = '备份失败列表' | ||
68 | + common.openWin('backup/failList', title, {createDate: createDate, status: status}, ['确定', '取消']) | ||
69 | + }); | ||
70 | + } | ||
71 | + }); | ||
72 | + } | ||
73 | + | ||
74 | + function initStatusTable() { | ||
75 | + var loading = layer.load(2) | ||
76 | + var mycars = new Array(); | ||
77 | + var url = common.domainName + '/api-web/backupview/countLastHalfMonthBackStatus' | ||
78 | + $.ajax({ | ||
79 | + url: url, | ||
80 | + type: 'get', | ||
81 | + data: {accessToken: accessToken}, | ||
82 | + success: function (res) { | ||
83 | + layer.close(loading); | ||
84 | + var data = res.data; | ||
85 | + var tr = '<div style="line-height: 26px;padding: 15px;text-align:center;color: #999;">暂无数据</div>'; | ||
86 | + if(data.length==0){ | ||
87 | + $(".backupCountStatus-table").append(tr); | ||
88 | + }else { | ||
89 | + $("#status_table").find("thead").empty(); | ||
90 | + $("#status_table").find("tbody").empty(); | ||
91 | + | ||
92 | + var htr = "<tr><th>序号</th><th width='200'>系统名称</th><th>等保等级</th><th width='200'>数据库名称</th><th>IP地址</th>" | ||
93 | + $.each(data[0].backlist[0], function (j, f) { | ||
94 | + if (j != "resId" && j != "resName" && j != "ip") { | ||
95 | + htr += "<th>" + j + "</th>" | ||
96 | + } | ||
97 | + }); | ||
98 | + htr += "</tr>" | ||
99 | + $("#status_table").find("thead").append(htr); | ||
100 | + $.each(data, function (i, e) { | ||
101 | + var tr = ''; | ||
102 | + var str = ''; | ||
103 | + if (e.rowspan == 0) { | ||
104 | + str = '<td rowspan=1>' + e.businfo.busTypeName + '</td><td rowspan=1>' + e.businfo.evaluationLevel + '</td>' | ||
105 | + tr += '<tr data-id="' + e.businfo.busId + '">' + | ||
106 | + '<td>' + (i + 1) + '</td>' + | ||
107 | + str + | ||
108 | + '<td></td>' + | ||
109 | + '<td></td>' + | ||
110 | + '<td></td>' + | ||
111 | + '<td></td>' + | ||
112 | + '<td></td>' + | ||
113 | + '<td></td>' + | ||
114 | + '<td></td>' + | ||
115 | + '<td></td>' + | ||
116 | + '<td></td>' + | ||
117 | + '<td></td>' + | ||
118 | + '<td></td>' + | ||
119 | + '<td></td>' + | ||
120 | + '<td></td>' + | ||
121 | + '<td></td>' + | ||
122 | + '<td></td>' + | ||
123 | + '<td></td>' + | ||
124 | + '<td></td>' + | ||
125 | + '<td></td>' + | ||
126 | + '</tr>' | ||
127 | + } else { | ||
128 | + str = '<td rowspan="' + e.rowspan + '">' + (i + 1) + '</td><td rowspan="' + e.rowspan + '">' + e.businfo.busTypeName + '</td><td rowspan="' + e.rowspan + '">' + e.businfo.evaluationLevel + '</td>' | ||
129 | + tr += '<tr data-id="' + e.businfo.busId + '">' + str | ||
130 | + $.each(e.backlist, function (j, f) { | ||
131 | + $.each(e.backlist[j], function (h, n) { | ||
132 | + if (h != "resId") { | ||
133 | + if (/失败/.test(n)) { | ||
134 | + tr += '<td><i class="layui-icon layui-icon-close" style="font-size: 30px; color: #ff252c;"></i></td>' | ||
135 | + } else if (/成功/.test(n)) { | ||
136 | + tr += '<td><i class="layui-icon layui-icon-ok" style="font-size: 30px; color: #1dff1c;"></i></td>' | ||
137 | + } else if (/备份中/.test(n)) { | ||
138 | + tr += '<td><span style="color:#ffe40e">' + n + '</span></td>' | ||
139 | + } else if (/未备份/.test(n)) { | ||
140 | + tr += '<td><span style="color:magenta">' + n + '</span></td>' | ||
141 | + } else { | ||
142 | + tr += '<td>' + n + '</td>' | ||
143 | + } | ||
144 | + | ||
145 | + } | ||
146 | + | ||
147 | + }); | ||
148 | + tr += '</tr>' | ||
149 | + }); | ||
150 | + } | ||
151 | + $("#status_table").find("tbody").append(tr); | ||
152 | + }) | ||
153 | + } | ||
154 | + } | ||
155 | + }) | ||
156 | + } | ||
157 | + | ||
158 | + }) | ||
159 | +}); |
1 | +layui.define(['table', 'admin', 'form', 'laydate', 'common', 'sessions', 'view', 'element'], function (exports) { | ||
2 | + var $ = layui.$; | ||
3 | + var form = layui.form; | ||
4 | + var table = layui.table; | ||
5 | + var element = layui.element; | ||
6 | + var laydate = layui.laydate; | ||
7 | + var common = layui.common; | ||
8 | + var view = layui.view; | ||
9 | + var admin = layui.admin; | ||
10 | + //对外暴露的接口 | ||
11 | + exports('backupmain', function () { | ||
12 | + var accessToken = localStorage.getItem("accessToken"); | ||
13 | + var today = new Date() | ||
14 | + today = today.getFullYear() + "-" + (today.getMonth() >= 9 ? (today.getMonth() + 1) : "0" + (today.getMonth() + 1)) + "-" + (today.getDate() > 9 ? (today.getDate()) : "0" + (today.getDate())); | ||
15 | + var backTime = today; | ||
16 | + var inspIsLoad = false; | ||
17 | + var businessIsLoad = false; | ||
18 | + var currSelect = 0; | ||
19 | + var period = 'today'; | ||
20 | + var tip_index; | ||
21 | + $("#probutton").mouseover(function () { | ||
22 | + tips_index = layer.tips('查询昨天8时到今天8时的备份', this, {time: 0}); | ||
23 | + }); | ||
24 | + $("#probutton").mouseout(function () { | ||
25 | + layer.close(tips_index); //关闭弹出层索引 | ||
26 | + }); | ||
27 | + form.render(); | ||
28 | + var inspectioncountListTable = ''; | ||
29 | + searchEvent();//检索条件事件 | ||
30 | + //加载文档表格数据 | ||
31 | + renderinspectioncountListTable(); | ||
32 | + | ||
33 | + //检索事件 | ||
34 | + function searchEvent() { | ||
35 | + //发送状态 | ||
36 | + form.on('select(inspectioncount_date)', function (data) { | ||
37 | + renderinspectioncountListTable(); | ||
38 | + }); | ||
39 | + } | ||
40 | + | ||
41 | + //日期范围选择 | ||
42 | + laydate.render({ | ||
43 | + elem: '#backTime', | ||
44 | + min: -365, | ||
45 | + max: 0, | ||
46 | + value: new Date(), | ||
47 | + done: function (value) { | ||
48 | + backTime = value | ||
49 | + $.each($("button.date"), function (i, e) { | ||
50 | + var $dom = $(e); | ||
51 | + if ($dom.hasClass("active")) { | ||
52 | + $dom.removeClass("active") | ||
53 | + } | ||
54 | + }) | ||
55 | + refreshPage() | ||
56 | + } | ||
57 | + }); | ||
58 | + | ||
59 | + // 日期方式选择 | ||
60 | + $('#btns-insp-time button').click(function () { | ||
61 | + $.each($("button.date"), function (i, e) { | ||
62 | + var $dom = $(e); | ||
63 | + if ($dom.hasClass("active")) { | ||
64 | + $dom.removeClass("active") | ||
65 | + } | ||
66 | + }) | ||
67 | + $("#backTime").val('') | ||
68 | + backTime = '' | ||
69 | + $("#btns-insp-time button").removeClass("active"); | ||
70 | + $(this).addClass("active"); | ||
71 | + period = ($(this).data("period")) | ||
72 | + // if (period == 'today') { | ||
73 | + var today = new Date() | ||
74 | + today = today.getFullYear() + "-" + (today.getMonth() >= 9 ? (today.getMonth() + 1) : "0" + (today.getMonth() + 1)) + "-" + (today.getDate() > 9 ? (today.getDate()) : "0" + (today.getDate())); | ||
75 | + backTime = today | ||
76 | + // } else if (period == 'yestoday') { | ||
77 | + // var time = (new Date).getTime() - 24 * 60 * 60 * 1000; | ||
78 | + // var yesday = new Date(time); // 获取的是前一天日期 | ||
79 | + // yesday = yesday.getFullYear() + "-" + (yesday.getMonth() > 9 ? (yesday.getMonth() + 1) : "0" + (yesday.getMonth() + 1)) + "-" + (yesday.getDate() > 9 ? (yesday.getDate()) : "0" + (yesday.getDate())); | ||
80 | + // backTime = yesday | ||
81 | + // } | ||
82 | + refreshPage() | ||
83 | + }); | ||
84 | + | ||
85 | + //根据tab页刷新页面数据 | ||
86 | + function refreshPage() { | ||
87 | + if (currSelect == 0) { | ||
88 | + renderinspectioncountListTable(); | ||
89 | + } else if (currSelect == 1) { | ||
90 | + renderinspectionBusTable(); | ||
91 | + } | ||
92 | + } | ||
93 | + | ||
94 | + // tab页切换事件 | ||
95 | + element.on('tab(insp-tab)', function (data) { | ||
96 | + if (data.index == 0) { | ||
97 | + if (!inspIsLoad) { | ||
98 | + renderinspectioncountListTable(); | ||
99 | + inspIsLoad = true; | ||
100 | + } | ||
101 | + } else if (data.index == 1) { | ||
102 | + if (!businessIsLoad) { | ||
103 | + renderinspectionBusTable(); | ||
104 | + businessIsLoad = true; | ||
105 | + } | ||
106 | + } | ||
107 | + currSelect = data.index; | ||
108 | + }); | ||
109 | + | ||
110 | + $("#btn-inspStatistics-export-excel").on('click', function () { | ||
111 | + if (currSelect == 0) { | ||
112 | + var href = common.domainName + '/api-web/backupview/export?accessToken=' + accessToken + "&backTime=" + backTime; | ||
113 | + } else if (currSelect == 1) { | ||
114 | + var href = common.domainName + '/inspection-report/report/record/inspectionBusListExport?access_token=' + accessToken + "&createTime=" + createTime + '&dateLimit=' + dateLimit + '&limit=-1'; | ||
115 | + } | ||
116 | + window.open(href) | ||
117 | + }) | ||
118 | + | ||
119 | + //表格数据 | ||
120 | + function renderinspectioncountListTable() { | ||
121 | + var loading = layer.load(2) | ||
122 | + var url = common.domainName + '/api-web/backupview/list' | ||
123 | + $.ajax({ | ||
124 | + url: url, | ||
125 | + type: 'get', | ||
126 | + data: {accessToken: accessToken, backTime: backTime}, | ||
127 | + success: function (res) { | ||
128 | + layer.close(loading); | ||
129 | + var data = res.data; | ||
130 | + var tr = '<div style="line-height: 26px;padding: 15px;text-align:center;color: #999;">暂无数据</div>'; | ||
131 | + if(data.length==0){ | ||
132 | + $(".layui-tab-item").append(tr); | ||
133 | + }else { | ||
134 | + $("#inspectioncount_table_id").find("tbody").empty(); | ||
135 | + } | ||
136 | + $.each(data, function (i, e) { | ||
137 | + var tr = ''; | ||
138 | + var str = ''; | ||
139 | + if (e.rowspan == 0) { | ||
140 | + str = '<td rowspan=1>' + e.businfo.busTypeName + '</td><td rowspan=1>' + e.businfo.evaluationLevel + '</td>' | ||
141 | + tr += '<tr data-id="' + e.businfo.busId + '">' + | ||
142 | + '<td>' + (i + 1) + '</td>' + | ||
143 | + str + | ||
144 | + '<td></td>' + | ||
145 | + '<td></td>' + | ||
146 | + '<td></td>' + | ||
147 | + '<td></td>' + | ||
148 | + '<td></td>' + | ||
149 | + '<td></td>' + | ||
150 | + '<td></td>' + | ||
151 | + '<td></td>' + | ||
152 | + '<td></td>' + | ||
153 | + '<td></td>' + | ||
154 | + '<td></td>' + | ||
155 | + '<td></td>' + | ||
156 | + '<td></td>' + | ||
157 | + '</tr>' | ||
158 | + } else { | ||
159 | + str = '<td rowspan="' + e.rowspan + '">' + (i + 1) + '</td><td rowspan="' + e.rowspan + '">' + e.businfo.busTypeName + '</td><td rowspan="' + e.rowspan + '">' + e.businfo.evaluationLevel + '</td>' | ||
160 | + tr += '<tr data-id="' + e.businfo.busId + '">' + str | ||
161 | + $.each(e.backlist, function (j, f) { | ||
162 | + var platform = ''; | ||
163 | + if (f.platform != null) { | ||
164 | + platform = f.platform | ||
165 | + } | ||
166 | + var backLevel = ''; | ||
167 | + if (f.backLevel != null) { | ||
168 | + backLevel = f.backLevel | ||
169 | + } | ||
170 | + var backStatus = ''; | ||
171 | + var backStatushtml = ''; | ||
172 | + if (f.backStatus != null) { | ||
173 | + backStatus = f.backStatus | ||
174 | + backStatushtml = '<div><span data-date="' + f.startTime + '" data-resid="' + f.resId + '" data-ip= "' + f.ip + '" class="layui-table-link view-backstatus-collectValue" style="color: green;font-size: 14px">成功</span></div>'; | ||
175 | + if (/失败/.test(backStatus)) { | ||
176 | + backStatushtml = '<div><span data-date="' + f.startTime + '" data-resid="' + f.resId + '" data-ip= "' + f.ip + '" class="layui-table-link view-backstatus-collectValue" style="color: red;font-size: 14px">失败</span></div>'; | ||
177 | + }else if(/备份中/.test(backStatus)){ | ||
178 | + backStatushtml = '<div><span data-date="' + f.startTime + '" data-resid="' + f.resId + '" data-ip= "' + f.ip + '" style="color: #ffe40e;font-size: 14px">备份中</span></div>'; | ||
179 | + } | ||
180 | + } | ||
181 | + var backBytes = ''; | ||
182 | + if (f.backBytes != null) { | ||
183 | + backBytes = f.backBytes | ||
184 | + } | ||
185 | + var backSpeed = ''; | ||
186 | + if (f.backSpeed != null) { | ||
187 | + backSpeed = f.backSpeed | ||
188 | + } | ||
189 | + var useTime = ''; | ||
190 | + if (f.useTime != null) { | ||
191 | + useTime = f.useTime | ||
192 | + } | ||
193 | + var startTime = ''; | ||
194 | + if (f.startTime != null) { | ||
195 | + startTime = dateForm(f.startTime) | ||
196 | + } | ||
197 | + var endTime = ''; | ||
198 | + if (f.endTime != null) { | ||
199 | + endTime = dateForm(f.endTime) | ||
200 | + } | ||
201 | + var remark = ''; | ||
202 | + if (f.remark != null) { | ||
203 | + remark = f.remark | ||
204 | + } | ||
205 | + var lastTime = ''; | ||
206 | + | ||
207 | + if (f.lastTime != null) { | ||
208 | + if (f.startTime == null || f.lastTime != f.startTime) { | ||
209 | + lastTime = '<span style="font-size: 14px;color: red">' + dateForm(f.lastTime) + '</span>' | ||
210 | + } else { | ||
211 | + lastTime = dateForm(f.lastTime) | ||
212 | + } | ||
213 | + } | ||
214 | + var id = 0 | ||
215 | + if (f.id != null) { | ||
216 | + id = f.id | ||
217 | + } | ||
218 | + if (f.backLevel != null) { | ||
219 | + tr += '<td style="display: none" class="bizid" data-bizId = "'+e.businfo.busId+'" data-bizName = "'+ e.businfo.busTypeName+'">' + id + '</td>' + | ||
220 | + '<td style="display: none">' + f.resId + '</td>' + | ||
221 | + '<td>' + f.resName + '</td>' + | ||
222 | + '<td>' + f.ip + '</td>' + | ||
223 | + '<td>' + platform + '</td>' + | ||
224 | + '<td>' + backLevel + '</td>' + | ||
225 | + '<td>' + backStatushtml + '</td>' + | ||
226 | + '<td>' + backBytes + '</td>' + | ||
227 | + '<td>' + backSpeed + '</td>' + | ||
228 | + '<td>' + useTime + '</td>' + | ||
229 | + '<td>' + startTime + '</td>' + | ||
230 | + '<td>' + endTime + '</td>' + | ||
231 | + '<td>' + remark + '</td>' + | ||
232 | + '<td>' + lastTime + '</td>' + | ||
233 | + '<td><input type="button" value="编辑" class="edit" style="background-color: #1E9FFF;"/></td>' + | ||
234 | + '</tr>' | ||
235 | + } else { | ||
236 | + tr += '<td style="display: none" class="bizid" data-bizId = "'+e.businfo.busId+'" data-bizName = "'+ e.businfo.busTypeName+'">' + id + '</td>' + | ||
237 | + '<td style="display: none">' + f.resId + '</td>' + | ||
238 | + '<td>' + f.resName + '</td>' + | ||
239 | + '<td>' + f.ip + '</td>' + | ||
240 | + '<td>' + platform + '</td>' + | ||
241 | + '<td>' + backLevel + '</td>' + | ||
242 | + '<td>' + backStatushtml + '</td>' + | ||
243 | + '<td>' + backBytes + '</td>' + | ||
244 | + '<td>' + backSpeed + '</td>' + | ||
245 | + '<td>' + useTime + '</td>' + | ||
246 | + '<td>' + startTime + '</td>' + | ||
247 | + '<td>' + endTime + '</td>' + | ||
248 | + '<td>' + remark + '</td>' + | ||
249 | + '<td>' + lastTime + '</td>' + | ||
250 | + '<td style="display:grid"><input type="button" value="编辑" class="edit" style="background-color: #1E9FFF;"/><input type="button" class="import" value="引用上次" style="background-color: #c0c4cc;margin-top: 5px"/></td>' + | ||
251 | + '</tr>' | ||
252 | + } | ||
253 | + }); | ||
254 | + } | ||
255 | + $("#inspectioncount_table_id").find("tbody").append(tr); | ||
256 | + }) | ||
257 | + $('.view-backstatus-collectValue').on('click', function () { | ||
258 | + var startTime = dateForm($(this).data("date")); | ||
259 | + var resId = $(this).data("resid"); | ||
260 | + var ip = $(this).data("ip"); | ||
261 | + console.log(startTime); | ||
262 | + var title = '多通道备份列表' | ||
263 | + common.openWin('backup/backDetailList', title, { | ||
264 | + startTime: startTime, | ||
265 | + resId: resId, | ||
266 | + resIp: ip | ||
267 | + }, ['确定', '取消']) | ||
268 | + }); | ||
269 | + $('#inspectioncount_table_id :button.edit').click(function () { | ||
270 | + var toEdit = this.value == '编辑'; | ||
271 | + this.value = toEdit ? '确定' : '编辑'; | ||
272 | + var tdArr = [] | ||
273 | + var busId = $(this).closest('tr').find('td.bizid').attr("data-bizId"); | ||
274 | + var busName = $(this).closest('tr').find('td.bizid').attr("data-bizName"); | ||
275 | + var list = $(this).closest('tr').find('td').not('[rowspan]').not(':last'); | ||
276 | + $(this).closest('tr').find('td').not('[rowspan]').not(':last').each(function (t, index) { | ||
277 | + if (toEdit) { | ||
278 | + if (t != list.length - 1) { | ||
279 | + this.innerHTML = '<input type="text" value="' + this.innerHTML.replace(/"/g, '"').replace(/<\/?.+?>/g, '').replace(/ /g, '') + '"/>'; | ||
280 | + } else { | ||
281 | + return; | ||
282 | + } | ||
283 | + } else { | ||
284 | + if (t != list.length - 1) { | ||
285 | + if (this.firstChild != null) { | ||
286 | + if (this.firstChild.value != undefined) { | ||
287 | + this.innerHTML = this.firstChild.value.replace(/</g, '<').replace(/>/g, '>'); | ||
288 | + } else { | ||
289 | + this.innerHTML = this.firstChild.data.replace(/</g, '<').replace(/>/g, '>'); | ||
290 | + } | ||
291 | + } else { | ||
292 | + this.innerHTML = this.value.replace(/</g, '<').replace(/>/g, '>'); | ||
293 | + } | ||
294 | + tdArr.push(this.innerHTML) | ||
295 | + } | ||
296 | + } | ||
297 | + }); | ||
298 | + if (!toEdit) { | ||
299 | + var param = { | ||
300 | + 'busId': busId, | ||
301 | + 'busName': busName, | ||
302 | + 'id': tdArr[0], | ||
303 | + 'resId': tdArr[1], | ||
304 | + 'resName': tdArr[2], | ||
305 | + 'ip': tdArr[3], | ||
306 | + 'platform': tdArr[4], | ||
307 | + 'backLevel': tdArr[5], | ||
308 | + 'backStatus': tdArr[6], | ||
309 | + 'backBytes': tdArr[7], | ||
310 | + 'backSpeed': tdArr[8], | ||
311 | + 'useTime': tdArr[9], | ||
312 | + 'startTime': tdArr[10], | ||
313 | + 'endTime': tdArr[11], | ||
314 | + 'remark': tdArr[12] | ||
315 | + }; | ||
316 | + if (param.resName == '') { | ||
317 | + layer.msg('数据库名称不能为空!', {icon: 1}); | ||
318 | + return; | ||
319 | + } | ||
320 | + else if (param.startTime == '') { | ||
321 | + layer.msg('开始时间不能为空!', {icon: 1}); | ||
322 | + return; | ||
323 | + } | ||
324 | + else if (param.endTime == '') { | ||
325 | + layer.msg('结束时间不能为空!', {icon: 1}); | ||
326 | + return; | ||
327 | + } else { | ||
328 | + param.startTime = new Date(param.startTime); | ||
329 | + param.endTime = new Date(param.endTime); | ||
330 | + var url = common.domainName + '/api-web/backupview/save?accessToken=' + accessToken | ||
331 | + layer.load(2); | ||
332 | + admin.req({ | ||
333 | + url: url, | ||
334 | + type: 'POST', | ||
335 | + contentType: 'application/json', | ||
336 | + data: JSON.stringify(param), | ||
337 | + success: function (response) { | ||
338 | + layer.closeAll('loading'); | ||
339 | + if (response.success) { | ||
340 | + layer.msg('保存成功!', {icon: 1}); | ||
341 | + renderinspectioncountListTable() | ||
342 | + return true; | ||
343 | + } else { | ||
344 | + layer.msg('保存失败!', {icon: 2}); | ||
345 | + } | ||
346 | + }, | ||
347 | + error: function () { | ||
348 | + layer.closeAll('loading'); | ||
349 | + } | ||
350 | + }); | ||
351 | + } | ||
352 | + | ||
353 | + } | ||
354 | + }); | ||
355 | + $('#inspectioncount_table_id :button.import').click(function () { | ||
356 | + var toEdit = this.value == '引用上次'; | ||
357 | + this.value = toEdit ? '保存' : '引用上次'; | ||
358 | + var tdArr = [] | ||
359 | + var resId = $(this).closest('tr').find('td').not('[rowspan]')[1].innerHTML; | ||
360 | + var tdlist = $(this).closest('tr').find('td').not('[rowspan]').not(':last'); | ||
361 | + var url = common.domainName + '/api-web/backupview/findLastBackup'; | ||
362 | + $.ajax({ | ||
363 | + url: url, | ||
364 | + type: 'get', | ||
365 | + data: {accessToken: accessToken, resId: resId}, | ||
366 | + success: function (res) { | ||
367 | + var obj = res.object; | ||
368 | + if (obj) { | ||
369 | + if (toEdit) { | ||
370 | + tdlist[0].innerHTML = '0'; | ||
371 | + tdlist[1].innerHTML = resId | ||
372 | + tdlist[2].innerHTML = '<input class="text" type="text" value="' + obj.resName + '"/>'; | ||
373 | + tdlist[3].innerHTML = '<input class="text" type="text" value="' + obj.ip + '"/>'; | ||
374 | + tdlist[4].innerHTML = '<input class="text" type="text" value="' + obj.platform + '"/>'; | ||
375 | + tdlist[5].innerHTML = '<input class="text" type="text" value="' + obj.backLevel + '"/>'; | ||
376 | + tdlist[6].innerHTML = '<input class="text" type="text" value="' + obj.backStatus + '"/>'; | ||
377 | + tdlist[7].innerHTML = '<input class="text" type="text" value="' + obj.backBytes + '"/>'; | ||
378 | + tdlist[8].innerHTML = '<input class="text" type="text" value="' + obj.backSpeed + '"/>'; | ||
379 | + tdlist[9].innerHTML = '<input class="text" type="text" value="' + obj.useTime + '"/>'; | ||
380 | + tdlist[10].innerHTML = '<input class="text" type="text" value="' + dateForm(obj.startTime) + '"/>'; | ||
381 | + tdlist[11].innerHTML = '<input class="text" type="text" value="' + dateForm(obj.endTime) + '"/>'; | ||
382 | + tdlist[12].innerHTML = '<input class="text" type="text" value="' + obj.remark + '"/>'; | ||
383 | + // tdlist[13].innerHTML = '<input class="text" type="text" value="' + dateForm(obj.lastTime) + '"/>'; | ||
384 | + } else { | ||
385 | + $.each(tdlist, function (i, e) { | ||
386 | + | ||
387 | + if (i > 1 && i < 13) { | ||
388 | + if (this.firstChild) { | ||
389 | + if (this.firstChild.value != undefined) { | ||
390 | + this.innerHTML = this.firstChild.value.replace(/</g, '<').replace(/>/g, '>'); | ||
391 | + } else { | ||
392 | + this.innerHTML = this.firstChild.data.replace(/</g, '<').replace(/>/g, '>'); | ||
393 | + } | ||
394 | + } else { | ||
395 | + this.innerHTML = this.value.replace(/</g, '<').replace(/>/g, '>'); | ||
396 | + } | ||
397 | + } else { | ||
398 | + this.innerHTML = this.innerHTML; | ||
399 | + } | ||
400 | + tdArr.push(this.innerHTML) | ||
401 | + }) | ||
402 | + var param = { | ||
403 | + 'id': tdArr[0], | ||
404 | + 'resId': tdArr[1], | ||
405 | + 'resName': tdArr[2], | ||
406 | + 'ip': tdArr[3], | ||
407 | + 'platform': tdArr[4], | ||
408 | + 'backLevel': tdArr[5], | ||
409 | + 'backStatus': tdArr[6], | ||
410 | + 'backBytes': tdArr[7], | ||
411 | + 'backSpeed': tdArr[8], | ||
412 | + 'useTime': tdArr[9], | ||
413 | + 'startTime': tdArr[10], | ||
414 | + 'endTime': tdArr[11], | ||
415 | + 'remark': tdArr[12] | ||
416 | + }; | ||
417 | + if (param.resName == '') { | ||
418 | + layer.msg('数据库名称不能为空!', {icon: 2}); | ||
419 | + return; | ||
420 | + } | ||
421 | + else if (param.startTime == '') { | ||
422 | + layer.msg('开始时间不能为空!', {icon: 2}); | ||
423 | + return; | ||
424 | + } | ||
425 | + else if (param.endTime == '') { | ||
426 | + layer.msg('结束时间不能为空!', {icon: 2}); | ||
427 | + return; | ||
428 | + | ||
429 | + } else if (dateForm(obj.startTime) == param.startTime || dateForm(obj.endTime) == param.endTime) { | ||
430 | + layer.msg('开始时间和结束时间不能跟上次相同!', {icon: 2}); | ||
431 | + return; | ||
432 | + } else { | ||
433 | + param.startTime = new Date(param.startTime); | ||
434 | + param.endTime = new Date(param.endTime); | ||
435 | + console.log(param) | ||
436 | + var url = common.domainName + '/api-web/backupview/save?accessToken=' + accessToken | ||
437 | + layer.load(2); | ||
438 | + admin.req({ | ||
439 | + url: url, | ||
440 | + type: 'POST', | ||
441 | + contentType: 'application/json', | ||
442 | + data: JSON.stringify(param), | ||
443 | + success: function (response) { | ||
444 | + layer.closeAll('loading'); | ||
445 | + if (response.success) { | ||
446 | + layer.msg('保存成功!', {icon: 1}); | ||
447 | + renderinspectioncountListTable() | ||
448 | + return true; | ||
449 | + } else { | ||
450 | + layer.msg('保存失败!', {icon: 2}); | ||
451 | + } | ||
452 | + }, | ||
453 | + error: function () { | ||
454 | + layer.closeAll('loading'); | ||
455 | + } | ||
456 | + }); | ||
457 | + } | ||
458 | + } | ||
459 | + | ||
460 | + } else { | ||
461 | + layer.msg('没有查到备份记录!', {icon: 2}); | ||
462 | + } | ||
463 | + }, | ||
464 | + error: function () { | ||
465 | + layer.msg('导入失败!', {icon: 2}); | ||
466 | + } | ||
467 | + }); | ||
468 | + | ||
469 | + }); | ||
470 | + | ||
471 | + } | ||
472 | + }) | ||
473 | + } | ||
474 | + | ||
475 | + function dateForm(time) { | ||
476 | + var unixTimestamp = new Date(time); | ||
477 | + var commonTime = unixTimestamp.toLocaleString(); | ||
478 | + return commonTime | ||
479 | + } | ||
480 | + | ||
481 | + Date.prototype.toLocaleString = function () { | ||
482 | + return this.getFullYear() + "-" + (this.getMonth() >= 9 ? (this.getMonth() + 1) : "0" + (this.getMonth() + 1)) + "-" + (this.getDate() > 9 ? (this.getDate()) : "0" + (this.getDate())) + " " + (this.getHours() > 9 ? this.getHours() : "0" + this.getHours()) + ":" + (this.getMinutes() > 9 ? this.getMinutes() : "0" + this.getMinutes()) + ":" + (this.getSeconds() > 9 ? this.getSeconds() : "0" + this.getSeconds()); | ||
483 | + }; | ||
484 | + | ||
485 | + //业务报表统计数据列表 | ||
486 | + function renderinspectionBusTable() { | ||
487 | + | ||
488 | + } | ||
489 | + | ||
490 | + }); | ||
491 | + | ||
492 | +}); |
1 | +/** 资产维修记录查看 */ | ||
2 | +layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydate', 'element'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var form = layui.form; | ||
5 | + var table = layui.table; | ||
6 | + var admin = layui.admin; | ||
7 | + var common = layui.common; | ||
8 | + var laydate = layui.laydate; | ||
9 | + var element = layui.element; | ||
10 | + | ||
11 | + exports('bizupgrade', function () { | ||
12 | + var accessToken = localStorage.getItem("accessToken"); | ||
13 | + var domainName = common.domainName; | ||
14 | + var timeChart = echarts.init(document.getElementById('bizupgrade-chart-time-record')); | ||
15 | + var inspIsLoad = false; | ||
16 | + var businessIsLoad = false; | ||
17 | + var currSelect = 0; | ||
18 | + var dateLimit = "" | ||
19 | + var createTime = "month" | ||
20 | + | ||
21 | + | ||
22 | + //日期范围选择 | ||
23 | + laydate.render({ | ||
24 | + elem: '#bizupgradedateLimit' | ||
25 | + ,range: '~', | ||
26 | + trigger: 'click', | ||
27 | + ready: function(date){ | ||
28 | + $("#bizupgradedateLimit").removeAttr("lay-key"); | ||
29 | + $(this).attr("lay-key","1"); | ||
30 | + }, | ||
31 | + done: function (value) { | ||
32 | + dateLimit = value | ||
33 | + if (dateLimit == '') { | ||
34 | + $('[data-period="month"]').click() | ||
35 | + } else { | ||
36 | + $.each($("button.date"), function (i, e) { | ||
37 | + var $dom = $(e); | ||
38 | + if ($dom.hasClass("active")) { | ||
39 | + $dom.removeClass("active") | ||
40 | + } | ||
41 | + }) | ||
42 | + reloadAllChange() | ||
43 | + } | ||
44 | + } | ||
45 | + }); | ||
46 | + | ||
47 | + form.render(); | ||
48 | + renderFileupgradeListTable(); | ||
49 | + renderPatchupgradeListTable() | ||
50 | + loadBizUpgradeChart(); | ||
51 | + loadConditionSelect(); | ||
52 | + | ||
53 | + | ||
54 | + //监听Esc事件 | ||
55 | + $(document).keyup(function (event) { | ||
56 | + if (event.keyCode === 27) { | ||
57 | + layer.closeAll(); | ||
58 | + } | ||
59 | + }); | ||
60 | + | ||
61 | + | ||
62 | + // 日期方式选择 | ||
63 | + $('#btns-bizupgrade-time button').click(function () { | ||
64 | + $.each($("button.date"), function (i, e) { | ||
65 | + var $dom = $(e); | ||
66 | + if ($dom.hasClass("active")) { | ||
67 | + $dom.removeClass("active") | ||
68 | + } | ||
69 | + }) | ||
70 | + $("#dateLimit").val('') | ||
71 | + dateLimit = '' | ||
72 | + $("#btns-bizupgrade-time button").removeClass("active"); | ||
73 | + $(this).addClass("active"); | ||
74 | + createTime = ($(this).data("period")) | ||
75 | + reloadAllChange(); | ||
76 | + }); | ||
77 | + | ||
78 | + // 回车搜索 | ||
79 | + $('[lay-filter="form-bizupgrade-condition"] input').keydown(function (e) { | ||
80 | + if (e.keyCode === 13) { | ||
81 | + reloadAllChange(); | ||
82 | + } | ||
83 | + }); | ||
84 | + | ||
85 | + // 下拉框改变搜索 | ||
86 | + form.on('select(slt-bizupgrade-group)', reloadAllChange); | ||
87 | + // 下拉框改变搜索 | ||
88 | + form.on('select(slt-bizupgrade-biz)', reloadAllChange); | ||
89 | + | ||
90 | + // tab页切换事件 | ||
91 | + element.on('tab(bizupgrade-tab)', function (data) { | ||
92 | + if (data.index == 0) { | ||
93 | + if (!inspIsLoad) { | ||
94 | + renderFileupgradeListTable(); | ||
95 | + inspIsLoad = true; | ||
96 | + } | ||
97 | + } else if (data.index == 1) { | ||
98 | + if (!businessIsLoad) { | ||
99 | + renderPatchupgradeListTable(); | ||
100 | + businessIsLoad = true; | ||
101 | + } | ||
102 | + } | ||
103 | + currSelect = data.index; | ||
104 | + }); | ||
105 | + // 加载配件更换表格 | ||
106 | + function renderFileupgradeListTable() { | ||
107 | + var conditions = form.val('form-bizupgrade-condition'); | ||
108 | + | ||
109 | + Object.assign(conditions, { | ||
110 | + accessToken: accessToken, | ||
111 | + createtime: createTime, | ||
112 | + viewMode: 'true', | ||
113 | + dateLimit: dateLimit | ||
114 | + }); | ||
115 | + table.render({ | ||
116 | + elem: '#fileupgrade_table_id', | ||
117 | + url: domainName + '/api-web/machineRoom/findBizupgradeRecords?level=1', | ||
118 | + where: conditions, | ||
119 | + height: 'full-360', | ||
120 | + page: { | ||
121 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'], | ||
122 | + theme: '#1E9FFF' | ||
123 | + }, | ||
124 | + end: function (e) { | ||
125 | + form.render() | ||
126 | + }, | ||
127 | + limit: common.limit, | ||
128 | + limits: common.limits, | ||
129 | + even: true, | ||
130 | + cols: [[ { | ||
131 | + type: 'numbers', title: '序号' | ||
132 | + }, { | ||
133 | + field: 'title', title: '升级编号', align: 'center', | ||
134 | + templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-upgrade-title" >{{d.title}}</span></div>' | ||
135 | + },{ | ||
136 | + field: 'busName', title: '业务名称', align: 'center', | ||
137 | + },{ | ||
138 | + field: 'upgradeFiles', title: '升级文件', align: 'center', | ||
139 | + },{ | ||
140 | + field: 'principal', title: '系统责任人', align: 'center', | ||
141 | + }, { | ||
142 | + field: 'phone', title: '联系方式', align: 'center', | ||
143 | + }, { | ||
144 | + field: 'upgradePerson', title: '升级人', align: 'center', | ||
145 | + },{ | ||
146 | + field: 'manufacturerName', title: '升级人单位', align: 'center',templet: function (d) { | ||
147 | + if(d.manufacturerId == '0'){ | ||
148 | + return '其他'; | ||
149 | + }else { | ||
150 | + return d.manufacturerName; | ||
151 | + } | ||
152 | + } | ||
153 | + },{ | ||
154 | + field: 'upgradePhone', title: '升级人电话', align: 'center', | ||
155 | + },{ | ||
156 | + field: 'attachmentList', title: '附件', align: 'center', | ||
157 | + templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-attachment">{{d.attachmentList.length}}</span></div>' | ||
158 | + }, { | ||
159 | + field: 'upgradeperiod', title: '升级时间段', align: 'center' | ||
160 | + }, { | ||
161 | + field: 'applyTime', title: '申请时间', align: 'center' | ||
162 | + } | ||
163 | + ]], | ||
164 | + done: function () { | ||
165 | + //获取线路列表 | ||
166 | + $('.view-upgrade-title').on('click', function () { | ||
167 | + openBizupgradeForm($(this).data('id')) | ||
168 | + }) | ||
169 | + //获取线路列表 | ||
170 | + $('.view-attachment').on('click', function () { | ||
171 | + openBizupgradeList("attachment",$(this).data('id')) | ||
172 | + }) | ||
173 | + | ||
174 | + } | ||
175 | + }); | ||
176 | + } | ||
177 | + // 加载设备出入表格 | ||
178 | + function renderPatchupgradeListTable() { | ||
179 | + var conditions = form.val('form-bizupgrade-condition'); | ||
180 | + | ||
181 | + Object.assign(conditions, { | ||
182 | + accessToken: accessToken, | ||
183 | + createtime: createTime, | ||
184 | + viewMode: 'true', | ||
185 | + dateLimit: dateLimit | ||
186 | + }); | ||
187 | + table.render({ | ||
188 | + elem: '#patchupgrade-table', | ||
189 | + url: domainName + '/api-web/machineRoom/findBizupgradeRecords?level=2', | ||
190 | + where: conditions, | ||
191 | + height: 'full-360', | ||
192 | + page: { | ||
193 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'], | ||
194 | + theme: '#1E9FFF' | ||
195 | + }, | ||
196 | + end: function (e) { | ||
197 | + form.render() | ||
198 | + }, | ||
199 | + limit: common.limit, | ||
200 | + limits: common.limits, | ||
201 | + even: true, | ||
202 | + cols: [[ { | ||
203 | + type: 'numbers', title: '序号' | ||
204 | + }, { | ||
205 | + field: 'title', title: '升级编号', align: 'center', | ||
206 | + templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-patchupgrade-title" >{{d.title}}</span></div>' | ||
207 | + },{ | ||
208 | + field: 'busName', title: '业务名称', align: 'center', | ||
209 | + },{ | ||
210 | + field: 'upgradeFiles', title: '补丁版本', align: 'center', | ||
211 | + },{ | ||
212 | + field: 'principal', title: '系统责任人', align: 'center', | ||
213 | + }, { | ||
214 | + field: 'phone', title: '联系方式', align: 'center', | ||
215 | + }, { | ||
216 | + field: 'upgradePerson', title: '升级人', align: 'center', | ||
217 | + },{ | ||
218 | + field: 'manufacturerName', title: '升级人单位', align: 'center',templet: function (d) { | ||
219 | + if(d.manufacturerId == '0'){ | ||
220 | + return '其他'; | ||
221 | + }else { | ||
222 | + return d.manufacturerName; | ||
223 | + } | ||
224 | + } | ||
225 | + },{ | ||
226 | + field: 'upgradePhone', title: '升级人电话', align: 'center', | ||
227 | + },{ | ||
228 | + field: 'attachmentList', title: '附件', align: 'center', | ||
229 | + templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-patchattachment">{{d.attachmentList.length}}</span></div>' | ||
230 | + }, { | ||
231 | + field: 'upgradeperiod', title: '升级时间段', align: 'center' | ||
232 | + }, { | ||
233 | + field: 'applyTime', title: '申请时间', align: 'center' | ||
234 | + } | ||
235 | + ]], | ||
236 | + done: function () { | ||
237 | + //获取线路列表 | ||
238 | + $('.view-patchupgrade-title').on('click', function () { | ||
239 | + openBizupgradeForm($(this).data('id')) | ||
240 | + }) | ||
241 | + //获取线路列表 | ||
242 | + $('.view-patchattachment').on('click', function () { | ||
243 | + openBizupgradeList("attachment",$(this).data('id')) | ||
244 | + }) | ||
245 | + | ||
246 | + } | ||
247 | + }); | ||
248 | + } | ||
249 | + //新增日报 | ||
250 | + $('#bizupgrade_create').on('click', function () { | ||
251 | + openBizupgradeForm() | ||
252 | + }) | ||
253 | + //新增/编辑表单 | ||
254 | + function openBizupgradeForm(id) { | ||
255 | + var title = id ? '编辑' : '新增' | ||
256 | + common.openWin('machineroom/bizupgradeAdd', title, {id: id}, ['保存', '取消'], function f() { | ||
257 | + $("#bizupgrade-form-save-id").trigger("click"); | ||
258 | + reloadAllChange(); | ||
259 | + }) | ||
260 | + } | ||
261 | + | ||
262 | + //查看附件/调整信息列表 | ||
263 | + function openBizupgradeList(type,id) { | ||
264 | + var title = "附件"; | ||
265 | + common.openWin('machineroom/bizupgradeList', title, {id: id,type:type}, ['确定', '取消']) | ||
266 | + } | ||
267 | + | ||
268 | + // 加载查询条件下拉框 | ||
269 | + function loadConditionSelect() { | ||
270 | + //绑定业务下拉选择数据 | ||
271 | + common.bizTypeSelect("slt-bizupgrade-biz", function () { | ||
272 | + form.render("select"); | ||
273 | + }); | ||
274 | + admin.req({ | ||
275 | + url: domainName + '/api-web/bWorkreportGroup/findManufacturerList' | ||
276 | + }).done(function (response) { | ||
277 | + var options = "<option value=''>=升级单位=</option>"; | ||
278 | + $.each(response.data, function (i, v) { | ||
279 | + options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>" | ||
280 | + }); | ||
281 | + options += "<option value='0'>其他</option>"; | ||
282 | + $('#slt-bizupgrade-group').html(options); | ||
283 | + form.render(); | ||
284 | + }); | ||
285 | + } | ||
286 | + $("#bizupgrade-export-excel").on('click', function () { | ||
287 | + if (currSelect == 0) { | ||
288 | + var href = common.domainName + '/api-web/machineRoom/exportBizupgradeRecords?level=1&accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000'; | ||
289 | + } else if (currSelect == 1) { | ||
290 | + var href = common.domainName + '/api-web/machineRoom/exportBizupgradeRecords?level=2&accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000'; | ||
291 | + } | ||
292 | + window.open(href) | ||
293 | + }) | ||
294 | + | ||
295 | + | ||
296 | + // 各单位维修情况 | ||
297 | + function loadBizUpgradeChart() { | ||
298 | + var conditions = {}; | ||
299 | + Object.assign(conditions, {accessToken: accessToken, createtime: createTime, viewMode: ''}); | ||
300 | + admin.req({ | ||
301 | + url: domainName + '/api-web/machineRoom/findBizupgradeRecordsForGroup', | ||
302 | + data: conditions | ||
303 | + }).done(function (response) { | ||
304 | + var chartData = response.map; | ||
305 | + var groupList = chartData.groupList; | ||
306 | + var fileList = chartData.fileList; | ||
307 | + var patchList = chartData.patchList; | ||
308 | + var totalList = chartData.totalList; | ||
309 | + var xData = []; | ||
310 | + var groupData = []; | ||
311 | + $.each(groupList, function (i, v) { | ||
312 | + xData.push(v); | ||
313 | + groupData.push({ | ||
314 | + name: v, | ||
315 | + value: 1 | ||
316 | + }); | ||
317 | + }); | ||
318 | + var series = [{ | ||
319 | + | ||
320 | + name: '系统升级', | ||
321 | + data: fileList, | ||
322 | + barWidth: 20, | ||
323 | + type: 'bar', | ||
324 | + stack: 'alarm', | ||
325 | + emphasis: { | ||
326 | + focus: 'series' | ||
327 | + }, | ||
328 | + itemStyle: { | ||
329 | + color: "#1e9fff" | ||
330 | + } | ||
331 | + },{ | ||
332 | + name: '补丁升级', | ||
333 | + data: patchList, | ||
334 | + barWidth: 20, | ||
335 | + type: 'bar', | ||
336 | + stack: 'alarm', | ||
337 | + emphasis: { | ||
338 | + focus: 'series' | ||
339 | + }, | ||
340 | + itemStyle: { | ||
341 | + color: "#FF7E00" | ||
342 | + }, | ||
343 | + label: { | ||
344 | + show: true, | ||
345 | + position: 'top', | ||
346 | + textStyle: { | ||
347 | + color: '#555' | ||
348 | + }, | ||
349 | + formatter: function (data) { | ||
350 | + return totalList[data.dataIndex] | ||
351 | + } | ||
352 | + } | ||
353 | + | ||
354 | + }]; | ||
355 | + /** | ||
356 | + 双X轴标签对应,伪实现思路: | ||
357 | + 底部的标签也是柱状图,对应包含的区域为上方X轴条数占总数的比例,设为宽度即可 | ||
358 | + */ | ||
359 | + var option = { | ||
360 | + title: { | ||
361 | + text: '系统升级和补丁升级图示', | ||
362 | + textStyle: { | ||
363 | + color: '#00D81E06', | ||
364 | + fontSize: 5 | ||
365 | + } | ||
366 | + }, | ||
367 | + tooltip: { | ||
368 | + trigger: 'axis', | ||
369 | + axisPointer: { | ||
370 | + type: 'shadow' | ||
371 | + } | ||
372 | + }, | ||
373 | + toolbox: { | ||
374 | + show: true, | ||
375 | + feature: { | ||
376 | + saveAsImage: {} | ||
377 | + }, | ||
378 | + right: 10 | ||
379 | + }, | ||
380 | + legend: { | ||
381 | + data: ['系统升级', '补丁升级'], | ||
382 | + selectedMode: false | ||
383 | + }, | ||
384 | + grid: [{ | ||
385 | + top: 40, | ||
386 | + bottom: 70, | ||
387 | + left: 50, | ||
388 | + right: 5 | ||
389 | + }], | ||
390 | + xAxis: [{ | ||
391 | + type: 'category', | ||
392 | + data: xData, | ||
393 | + axisLabel: { | ||
394 | + color: '#333', | ||
395 | + show: true, | ||
396 | + interval:0, | ||
397 | + rotate:15 | ||
398 | + }, | ||
399 | + axisLine: { | ||
400 | + lineStyle: { | ||
401 | + color: '#e7e7e7' | ||
402 | + } | ||
403 | + }, | ||
404 | + axisTick: { | ||
405 | + lineStyle: { | ||
406 | + color: '#e7e7e7' | ||
407 | + } | ||
408 | + }, | ||
409 | + zlevel: 1 | ||
410 | + }], | ||
411 | + yAxis: [{ | ||
412 | + type: 'value', | ||
413 | + gridIndex: 0, | ||
414 | + axisLabel: { | ||
415 | + color: '#333' | ||
416 | + }, | ||
417 | + splitLine: { | ||
418 | + lineStyle: { | ||
419 | + type: 'dashed' | ||
420 | + } | ||
421 | + }, | ||
422 | + axisLine: { | ||
423 | + lineStyle: { | ||
424 | + color: '#ccc' | ||
425 | + } | ||
426 | + }, | ||
427 | + axisTick: { | ||
428 | + lineStyle: { | ||
429 | + color: '#ccc' | ||
430 | + } | ||
431 | + } | ||
432 | + }], | ||
433 | + series: series | ||
434 | + }; | ||
435 | + timeChart.setOption(option) | ||
436 | + }); | ||
437 | + } | ||
438 | + | ||
439 | + | ||
440 | + // 图表,表格重新加载 | ||
441 | + function reloadAllChange() { | ||
442 | + renderFileupgradeListTable(); | ||
443 | + renderPatchupgradeListTable() | ||
444 | + loadBizUpgradeChart(); | ||
445 | + loadConditionSelect() | ||
446 | + } | ||
447 | + }); | ||
448 | +}); |
1 | + | ||
2 | +layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect', 'laydate', 'upload'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var form = layui.form; | ||
5 | + var layer = layui.layer; | ||
6 | + var admin = layui.admin; | ||
7 | + var table = layui.table; | ||
8 | + var common = layui.common; | ||
9 | + var session = layui.sessions; | ||
10 | + var laydate = layui.laydate; | ||
11 | + var upload = layui.upload; | ||
12 | + var domainName = common.domainName; | ||
13 | + var xmSelect = layui.xmSelect; | ||
14 | + | ||
15 | + //对外暴露的接口 | ||
16 | + exports('bizupgradeAdd', function (data) { | ||
17 | + var accessToken = localStorage.getItem("accessToken"); | ||
18 | + var userSelect = ""; | ||
19 | + var currentDate = {} | ||
20 | + var hitDate = {} | ||
21 | + var uploadInst = {} | ||
22 | + var defaultUser = [] | ||
23 | + var attachmentIds = [] | ||
24 | + var id = data.id | ||
25 | + var cols = [] | ||
26 | + var where = {} | ||
27 | + var currentResourceType = '' | ||
28 | + var resTypeSele | ||
29 | + | ||
30 | + | ||
31 | + var viewType = data && data.viewType ? data.viewType : ''; | ||
32 | + | ||
33 | + //渲染表单 | ||
34 | + form.render(null, 'add-bizupgrade-form') | ||
35 | + init() | ||
36 | + | ||
37 | + //保存 | ||
38 | + form.on('submit(bizupgrade-form-save-id)', function (res) { | ||
39 | + var value = $('#attachmentInput').val() | ||
40 | + if (value != '') { | ||
41 | + $('#upload_btn').click() | ||
42 | + } else { | ||
43 | + saveForm() | ||
44 | + } | ||
45 | + }) | ||
46 | + | ||
47 | + //保存 | ||
48 | + function saveForm() { | ||
49 | + layer.load(2) | ||
50 | + var data = form.val('add-bizupgrade-form') | ||
51 | + var params = {} | ||
52 | + params.attachmentIds = attachmentIds.toString() | ||
53 | + delete data['file'] | ||
54 | + delete data['select'] | ||
55 | + params.bizupgrade = JSON.stringify(data) | ||
56 | + admin.req({ | ||
57 | + url: domainName + '/api-web/machineRoom/bizupgrade/save?accessToken=' + accessToken, | ||
58 | + data: JSON.stringify(params), | ||
59 | + type: 'post', | ||
60 | + contentType: "application/json; charset=utf-8", | ||
61 | + done: function (res) { | ||
62 | + if (res.success) { | ||
63 | + layer.msg(res.msg, { | ||
64 | + offset: '15px', | ||
65 | + icon: 1, | ||
66 | + time: 1000, | ||
67 | + }, function () { | ||
68 | + $("#attachment").removeAttr("disabled"); | ||
69 | + layer.closeAll() | ||
70 | + table.reload('fileupgrade_table_id', { | ||
71 | + where: { | ||
72 | + accessToken: accessToken, | ||
73 | + createtime: "month", | ||
74 | + viewMode: 'true', | ||
75 | + dateLimit: "" | ||
76 | + }, | ||
77 | + }); | ||
78 | + table.reload('patchupgrade-table', { | ||
79 | + where: { | ||
80 | + accessToken: accessToken, | ||
81 | + createtime: "month", | ||
82 | + viewMode: 'true', | ||
83 | + dateLimit: "" | ||
84 | + }, | ||
85 | + }); | ||
86 | + }) | ||
87 | + } else { | ||
88 | + layer.msg(res.msg, { | ||
89 | + offset: '15px', | ||
90 | + icon: 7, | ||
91 | + time: 1000, | ||
92 | + }) | ||
93 | + } | ||
94 | + } | ||
95 | + }) | ||
96 | + return false | ||
97 | + } | ||
98 | + | ||
99 | + //页面初始化 | ||
100 | + function init() { | ||
101 | + loadSelect() | ||
102 | + initDatePlus() | ||
103 | + initUploadPlus() | ||
104 | + | ||
105 | + | ||
106 | + if (viewType == 'view') { | ||
107 | + initViewMode(); | ||
108 | + } | ||
109 | + } | ||
110 | + | ||
111 | + // 初始化下拉框 | ||
112 | + function loadSelect() { | ||
113 | + //绑定业务下拉选择数据 | ||
114 | + common.bizTypeSelect("slt-biz-add", function () { | ||
115 | + form.render("select"); | ||
116 | + | ||
117 | + }); | ||
118 | + admin.req({ | ||
119 | + url: domainName + '/api-web/bWorkreportGroup/findManufacturerList' | ||
120 | + }).done(function (response) { | ||
121 | + var options = "<option value=''>=工作单位=</option>"; | ||
122 | + $.each(response.data, function (i, v) { | ||
123 | + options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>" | ||
124 | + }); | ||
125 | + options += "<option value='0'>其他</option>"; | ||
126 | + $('#slt-upgradeadd-group').html(options); | ||
127 | + form.render(); | ||
128 | + fromAssignment(); | ||
129 | + }); | ||
130 | + | ||
131 | + } | ||
132 | + | ||
133 | + | ||
134 | + //初始化日期插件 | ||
135 | + function initDatePlus() { | ||
136 | + currentDate = laydate.render({ | ||
137 | + elem: '#applyTime', //指定元素 | ||
138 | + value: new Date(), | ||
139 | + type: 'datetime', | ||
140 | + isInitValue: true, | ||
141 | + }); | ||
142 | + laydate.render({ | ||
143 | + elem: '#upgradeperiod' | ||
144 | + , range: '~', | ||
145 | + type: 'datetime', | ||
146 | + trigger: 'click', | ||
147 | + ready: function (date) { | ||
148 | + $("#upgradeperiod").removeAttr("lay-key"); | ||
149 | + $(this).attr("lay-key", "1"); | ||
150 | + }, | ||
151 | + done: function (value) { | ||
152 | + $("#upgradeperiod").val(value); | ||
153 | + } | ||
154 | + }); | ||
155 | + } | ||
156 | + | ||
157 | + //初始化上传插件 | ||
158 | + function initUploadPlus() { | ||
159 | + var param = {"accessToken": accessToken} | ||
160 | + var fileName = [] | ||
161 | + uploadInst = upload.render({ | ||
162 | + elem: '#attachment', //绑定元素 | ||
163 | + url: common.domainName + '/api-web/machineRoom/bizupgrade/upload?accessToken='+accessToken, | ||
164 | + data: param, | ||
165 | + multiple: true, | ||
166 | + auto: false, //选择文件后不自动上传 | ||
167 | + bindAction: '#upload_btn',//指定按钮触发上传 | ||
168 | + accept: 'file', | ||
169 | + exts: 'xls|doc|pdf|docx|xlsx|jpg|png', | ||
170 | + choose: function (obj) { | ||
171 | + //选择文件后回调 | ||
172 | + var files = this.files = obj.pushFile(); | ||
173 | + if(typeof(files)!=undefined){ | ||
174 | + if(Object.getOwnPropertyNames(files).length>2){ | ||
175 | + $("#attachment").attr("disabled","disabled"); | ||
176 | + layer.msg('目前最多支持上传三个文件!', { | ||
177 | + icon: 7, time: 3000 | ||
178 | + }); | ||
179 | + } | ||
180 | + } | ||
181 | + obj.preview(function (index, file, result) { | ||
182 | + fileName.push(file.name) | ||
183 | + $('#attachmentInput').val(fileName.toString()) | ||
184 | + }) | ||
185 | + }, | ||
186 | + done: function (res) { | ||
187 | + //单次上传成功 | ||
188 | + attachmentIds.push(res.str) | ||
189 | + }, | ||
190 | + allDone: function (obj) { | ||
191 | + //全部上传成功后 | ||
192 | + saveForm() | ||
193 | + }, | ||
194 | + error: function (index, upload) { | ||
195 | + // 上传失败 | ||
196 | + layer.msg('文件上传时发生故障,请稍后再试!', { | ||
197 | + icon: 7, time: 3000 | ||
198 | + }); | ||
199 | + } | ||
200 | + }); | ||
201 | + } | ||
202 | + | ||
203 | + | ||
204 | + // 初始化查看模式 | ||
205 | + function initViewMode() { | ||
206 | + $('form[lay-filter="add-bizupgrade-form"]').find('input, textarea').attr('readonly', true); | ||
207 | + $('form[lay-filter="add-bizupgrade-form"]').find('select').attr('disabled', true); | ||
208 | + $.each(xmSelect.get(), function (i, v) { | ||
209 | + v.update({disabled: true}); | ||
210 | + }); | ||
211 | + $('#attachmentInput').parent().parent().parent().addClass('hide'); | ||
212 | + $('#table-bizupgrade-add-attachment').removeClass('hide'); | ||
213 | + //渲染附件表格 | ||
214 | + var attachmentTable = table.render({ | ||
215 | + elem: '#table-bizupgrade-add-attachment', | ||
216 | + url: domainName + '/api-web/machineRoom/bizupgrade/getAttaById', | ||
217 | + where: { | ||
218 | + accessToken: accessToken, | ||
219 | + id: data.id | ||
220 | + }, | ||
221 | + height: 'full', | ||
222 | + page: { | ||
223 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] | ||
224 | + , theme: '#1E9FFF'//自定义分页主题颜色 | ||
225 | + }, | ||
226 | + end: function (e) { | ||
227 | + form.render() | ||
228 | + }, | ||
229 | + limit: common.limit, | ||
230 | + limits: common.limits, | ||
231 | + even: true, | ||
232 | + cols: [[ | ||
233 | + {type: 'numbers', title: '序号'}, | ||
234 | + { | ||
235 | + field: 'name', title: '文件名称', align: 'center', minWith: 200, | ||
236 | + }, | ||
237 | + { | ||
238 | + field: 'suffix', title: '文件后缀', align: 'center', minWith: 150, | ||
239 | + }, | ||
240 | + { | ||
241 | + field: 'size', title: '文件大小', align: 'center', minWith: 150, | ||
242 | + templet: function (d) { | ||
243 | + var str = (d.size / 1000).toFixed(2) | ||
244 | + return `<div><span>${str}KB</span></div>` | ||
245 | + } | ||
246 | + }, | ||
247 | + { | ||
248 | + title: '操作', align: "center", width: 120, | ||
249 | + templet: '<div><span data-id="{{d.id}}" data-suffix="{{d.suffix}}" data-path = "{{d.path}}" class="layui-table-link preview-attachment-btn">预览</span></div>' | ||
250 | + } | ||
251 | + ]], | ||
252 | + done: function () { | ||
253 | + $('.preview-attachment-btn').on('click', function () { | ||
254 | + var id = $(this).data('id') | ||
255 | + var suffix = $(this).data('suffix') | ||
256 | + var filepath = $(this).data('path') | ||
257 | + if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型 | ||
258 | + var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?accessToken=` + accessToken | ||
259 | + layer.open({ | ||
260 | + type: 1, | ||
261 | + content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`, | ||
262 | + title: '图片预览', | ||
263 | + area: ['60%', '90%'] | ||
264 | + }) | ||
265 | + } else { | ||
266 | + //附件为文档类型 | ||
267 | + common.fileviewer(filepath) | ||
268 | + } | ||
269 | + }) | ||
270 | + } | ||
271 | + }) | ||
272 | + form.render(); | ||
273 | + } | ||
274 | + | ||
275 | + //表单赋值 | ||
276 | + function fromAssignment() { | ||
277 | + | ||
278 | + if (data && data.id) { | ||
279 | + var loading =layer.load(2) | ||
280 | + $('#add-bizupgrade-form-atta').show() | ||
281 | + | ||
282 | + $("#level").attr("readOnly","readOnly"); | ||
283 | + | ||
284 | + //编辑表单时禁用日志类型修改和时间选择 | ||
285 | + // $('#add-repair-form').find("select[name='hitchtime']").attr("disabled", "disabled") | ||
286 | + // $('#add-repair-form').find("input[name='createtime']").attr("disabled", "disabled") | ||
287 | + //编辑表单时取消显示默认值 | ||
288 | + //currentDate.config.isInitValue = false | ||
289 | + initDatePlus() | ||
290 | + admin.req({ | ||
291 | + url: domainName + `/api-web/machineRoom/findBizupgradeByRecordId`, | ||
292 | + data: {recordId: data.id}, | ||
293 | + async: false, | ||
294 | + }).done(function (res) { | ||
295 | + layer.close(loading) | ||
296 | + form.val('add-bizupgrade-form', res.object) | ||
297 | + if (res.object.attachmentList) { | ||
298 | + $.each(res.object.attachmentList, function (i, v) { | ||
299 | + writeTagsInfo(v.id, v.originalName) | ||
300 | + }) | ||
301 | + } | ||
302 | + }) | ||
303 | + }else{ | ||
304 | + $("#level").removeAttr("readOnly"); | ||
305 | + } | ||
306 | + } | ||
307 | + | ||
308 | + //写入标签内容 | ||
309 | + function writeTagsInfo(id, name) { | ||
310 | + var tags = '<span id="tags_span_' + id + '" data-id="' + id + '"><em>' + name + '</em>' + | ||
311 | + '<button type="button" value="' + id + '" class="tagsclose">×</button></span>'; | ||
312 | + if ($("#tags_span_" + id).length == 0) { | ||
313 | + //拼接标签 | ||
314 | + $("#selecte_content_id").append(tags); | ||
315 | + //绑定标签的删除事件 | ||
316 | + bindTagesDelEvent(); | ||
317 | + } | ||
318 | + } | ||
319 | + | ||
320 | + //删除标签事件 | ||
321 | + function bindTagesDelEvent() { | ||
322 | + //删除已选主体的页签 | ||
323 | + $("button.tagsclose").on("click", function () { | ||
324 | + var attachId = $(this).attr("value"); | ||
325 | + //确认提示框 | ||
326 | + layer.confirm('附件删除后将无法恢复,您确定要删除吗?', { | ||
327 | + btn: ['确定', '取消'] //按钮 | ||
328 | + }, function () { | ||
329 | + $.ajax({ | ||
330 | + url: domainName + `/api-web/workreport/deleteAttachment/${id}/${attachId}?accessToken=` + accessToken, | ||
331 | + type: "get", | ||
332 | + }).done(function (res) { | ||
333 | + layer.msg('删除成功', { | ||
334 | + offset: '15px' | ||
335 | + , icon: 1 | ||
336 | + , time: 1000 | ||
337 | + }, function () { | ||
338 | + $("#tags_span_" + attachId).remove(); | ||
339 | + }); | ||
340 | + }).error(function (error) { | ||
341 | + console.log(error); | ||
342 | + }); | ||
343 | + }); | ||
344 | + }); | ||
345 | + } | ||
346 | + }) | ||
347 | +}) |
1 | + | ||
2 | +layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var form = layui.form; | ||
5 | + var layer = layui.layer; | ||
6 | + var admin = layui.admin; | ||
7 | + var table = layui.table; | ||
8 | + var common = layui.common; | ||
9 | + var session = layui.sessions | ||
10 | + var domainName = common.domainName; | ||
11 | + | ||
12 | + //对外暴露的接口 | ||
13 | + exports("bizupgradeList", function (d) { | ||
14 | + var accessToken = localStorage.getItem("accessToken"); | ||
15 | + if (d.type == 'attachment') { | ||
16 | + $('#attachmentTable').show() | ||
17 | + createAttachmentTable() | ||
18 | + } | ||
19 | + | ||
20 | + | ||
21 | + //渲染附件表格 | ||
22 | + function createAttachmentTable() { | ||
23 | + var attachmentTable = table.render({ | ||
24 | + elem: '#attachmentTable', | ||
25 | + url: domainName + '/api-web/machineRoom/bizupgrade/getAttaById', | ||
26 | + where: { | ||
27 | + accessToken: accessToken, | ||
28 | + id: d.id | ||
29 | + }, | ||
30 | + height: 'full', | ||
31 | + page: { | ||
32 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] | ||
33 | + , theme: '#1E9FFF'//自定义分页主题颜色 | ||
34 | + }, | ||
35 | + end: function (e) { | ||
36 | + form.render() | ||
37 | + }, | ||
38 | + limit: common.limit, | ||
39 | + limits: common.limits, | ||
40 | + even: true, | ||
41 | + cols: [[ | ||
42 | + {type: 'numbers', title: '序号'}, | ||
43 | + { | ||
44 | + field: 'name', title: '文件名称', align: 'center', minWith: 200, | ||
45 | + }, { | ||
46 | + field: 'originalName', title: '原始名称', align: 'center', minWith: 200, | ||
47 | + }, { | ||
48 | + field: 'suffix', title: '文件后缀', align: 'center', minWith: 150, | ||
49 | + }, | ||
50 | + { | ||
51 | + field: 'size', title: '文件大小', align: 'center', minWith: 150, | ||
52 | + templet: function (d) { | ||
53 | + var str = (d.size / 1000).toFixed(2) | ||
54 | + return `<div><span>${str}KB</span></div>` | ||
55 | + } | ||
56 | + }, | ||
57 | + { | ||
58 | + title: '操作', align: "center", width: 120, | ||
59 | + templet: '<div><span data-id="{{d.id}}" data-suffix="{{d.suffix}}" data-path="{{d.path}}" class="layui-table-link preview-attachment-btn">预览</span>' + | ||
60 | + '<span data-id="{{d.id}}" data-suffix="{{d.suffix}}" class="layui-table-link attachment-download-btn" style="margin-left: 10px">下载</span></div>' | ||
61 | + } | ||
62 | + ]], | ||
63 | + done: function () { | ||
64 | + $('.preview-attachment-btn').on('click', function () { | ||
65 | + var id = $(this).data('id') | ||
66 | + var suffix = $(this).data('suffix') | ||
67 | + var filepath = $(this).data('path') | ||
68 | + if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型 | ||
69 | + var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?accessToken=` + accessToken | ||
70 | + layer.open({ | ||
71 | + type: 1, | ||
72 | + content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`, | ||
73 | + title: '图片预览', | ||
74 | + area: ['60%', '90%'] | ||
75 | + }) | ||
76 | + } else { | ||
77 | + //附件为文档类型 | ||
78 | + common.fileviewer(filepath) | ||
79 | + } | ||
80 | + }) | ||
81 | + | ||
82 | + $('.attachment-download-btn').on('click',function () { | ||
83 | + var id = $(this).data('id') | ||
84 | + var suffix = $(this).data('suffix') | ||
85 | + var url = domainName + `/api-web/openoffice/download/${id}?accessToken=` + accessToken | ||
86 | + window.open(url) | ||
87 | + }) | ||
88 | + } | ||
89 | + }) | ||
90 | + } | ||
91 | + | ||
92 | + }) | ||
93 | +}) |
@@ -12,7 +12,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | @@ -12,7 +12,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | ||
12 | var domainName = common.domainName; | 12 | var domainName = common.domainName; |
13 | //对外暴露的接口 | 13 | //对外暴露的接口 |
14 | exports('deviceAdd', function (data) { | 14 | exports('deviceAdd', function (data) { |
15 | - var accessToken = session.getToken()['access_token'] | 15 | + var accessToken = localStorage.getItem("accessToken"); |
16 | var enterTime = {}; | 16 | var enterTime = {}; |
17 | var outTime = {}; | 17 | var outTime = {}; |
18 | var devicesBak = []; | 18 | var devicesBak = []; |
@@ -21,53 +21,49 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | @@ -21,53 +21,49 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | ||
21 | form.render(null, 'add-device-form') | 21 | form.render(null, 'add-device-form') |
22 | searchEvent();//检索条件事件 | 22 | searchEvent();//检索条件事件 |
23 | init() | 23 | init() |
24 | - | ||
25 | //检索事件 | 24 | //检索事件 |
26 | function searchEvent() { | 25 | function searchEvent() { |
27 | //发送状态 | 26 | //发送状态 |
28 | form.on('select(slt-docType)', function (data) { | 27 | form.on('select(slt-docType)', function (data) { |
29 | - var html = ""; | ||
30 | - if (data.value == 1) { | ||
31 | - html += "<option value='1'>迁入</option><option value='2'>迁出</option><option value='3'>转移</option>" | ||
32 | - $("#device_card").css("display", "block"); | ||
33 | - $("#fiting_card").css("display", "none"); | ||
34 | - devicesBak = []; | ||
35 | - fittingsBak = []; | ||
36 | - } else { | ||
37 | - html += "<option value='4'>更换</option><option value='5'>新增</option><option value='6'>带走维修</option>" | ||
38 | - $("#device_card").css("display", "none"); | ||
39 | - $("#fiting_card").css("display", "block"); | ||
40 | - devicesBak = []; | ||
41 | - fittingsBak = []; | ||
42 | - } | ||
43 | - $("#slt-actionType").html(html); | ||
44 | - form.render(); | 28 | + var html =""; |
29 | + if(data.value==1){ | ||
30 | + html+= "<option value='1'>迁入</option><option value='2'>迁出</option><option value='3'>转移</option>" | ||
31 | + $("#device_card").css("display","block"); | ||
32 | + $("#fiting_card").css("display","none"); | ||
33 | + devicesBak = []; | ||
34 | + fittingsBak = []; | ||
35 | + }else{ | ||
36 | + html+= "<option value='4'>更换</option><option value='5'>新增</option><option value='6'>带走维修</option>" | ||
37 | + $("#device_card").css("display","none"); | ||
38 | + $("#fiting_card").css("display","block"); | ||
39 | + devicesBak = []; | ||
40 | + fittingsBak = []; | ||
41 | + } | ||
42 | + $("#slt-actionType").html(html); | ||
43 | + form.render(); | ||
45 | }); | 44 | }); |
46 | } | 45 | } |
47 | - | ||
48 | //发送状态 | 46 | //发送状态 |
49 | form.on('select(slt-docType)', function (data) { | 47 | form.on('select(slt-docType)', function (data) { |
50 | - var html = ""; | ||
51 | - if (data.value == 1) { | ||
52 | - html += "<option value='1'>迁入</option><option value='2'>迁出</option><option value='3'>转移</option>" | ||
53 | - $("#device_card").css("display", "block"); | ||
54 | - $("#fiting_card").css("display", "none"); | ||
55 | - } else { | ||
56 | - html += "<option value='4'>更换</option><option value='5'>新增</option><option value='6'>带走维修</option>" | ||
57 | - $("#device_card").css("display", "none"); | ||
58 | - $("#fiting_card").css("display", "block"); | 48 | + var html =""; |
49 | + if(data.value==1){ | ||
50 | + html+= "<option value='1'>迁入</option><option value='2'>迁出</option><option value='3'>转移</option>" | ||
51 | + $("#device_card").css("display","block"); | ||
52 | + $("#fiting_card").css("display","none"); | ||
53 | + }else{ | ||
54 | + html+= "<option value='4'>更换</option><option value='5'>新增</option><option value='6'>带走维修</option>" | ||
55 | + $("#device_card").css("display","none"); | ||
56 | + $("#fiting_card").css("display","block"); | ||
59 | } | 57 | } |
60 | $("#slt-actionType").html(html); | 58 | $("#slt-actionType").html(html); |
61 | form.render(); | 59 | form.render(); |
62 | }); | 60 | }); |
63 | 61 | ||
64 | form.on('select(slt-actionType)', function (data) { | 62 | form.on('select(slt-actionType)', function (data) { |
65 | - if (data.value == "3") { | ||
66 | - //当迁移时,设置readOnly为false joke modify 20221121 | ||
67 | - // $("#lastPlace").removeAttribute("readOnly"); | ||
68 | - $("#lastPlace").attr("readOnly", false); | ||
69 | - } else { | ||
70 | - $("#lastPlace").attr("readOnly", "readOnly"); | 63 | + if(data.value=="3"){ |
64 | + $("#lastPlace").removeAttribute("readOnly"); | ||
65 | + }else { | ||
66 | + $("#lastPlace").attr("readOnly","readOnly"); | ||
71 | } | 67 | } |
72 | }) | 68 | }) |
73 | 69 | ||
@@ -93,7 +89,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | @@ -93,7 +89,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | ||
93 | params.deviceRecord = JSON.stringify(data); | 89 | params.deviceRecord = JSON.stringify(data); |
94 | console.log(params) | 90 | console.log(params) |
95 | admin.req({ | 91 | admin.req({ |
96 | - url: domainName + '/api-room/machineRoom/machineRoomEnterDevice/save?access_token=' + accessToken, | 92 | + url: domainName + '/api-web/machineRoom/machineRoomEnterDevice/save?accessToken=' + accessToken, |
97 | data: JSON.stringify(params), | 93 | data: JSON.stringify(params), |
98 | type: 'post', | 94 | type: 'post', |
99 | contentType: "application/json; charset=utf-8", | 95 | contentType: "application/json; charset=utf-8", |
@@ -105,26 +101,6 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | @@ -105,26 +101,6 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | ||
105 | time: 1000, | 101 | time: 1000, |
106 | }, function () { | 102 | }, function () { |
107 | layer.closeAll() | 103 | layer.closeAll() |
108 | - //模拟申请人回车事件,刷新父页面 | ||
109 | - var evt = $.Event('keydown', {keyCode: 13}); | ||
110 | - $('#applyUserDevice').trigger(evt); | ||
111 | - // table.reload('enterdevice_table_id', { | ||
112 | - // where: { | ||
113 | - // access_token: accessToken, | ||
114 | - // createtime: "month", | ||
115 | - // viewMode: 'true', | ||
116 | - // dateLimit: "" | ||
117 | - // }, | ||
118 | - // }); | ||
119 | - // table.reload('fitting-table', { | ||
120 | - // where: { | ||
121 | - // access_token: accessToken, | ||
122 | - // createtime: "month", | ||
123 | - // viewMode: 'true', | ||
124 | - // dateLimit: "" | ||
125 | - // }, | ||
126 | - // }); | ||
127 | - | ||
128 | }) | 104 | }) |
129 | } else { | 105 | } else { |
130 | layer.msg(res.msg, { | 106 | layer.msg(res.msg, { |
@@ -139,13 +115,13 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | @@ -139,13 +115,13 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | ||
139 | }; | 115 | }; |
140 | var deviceSaveCount = 0; | 116 | var deviceSaveCount = 0; |
141 | $("#device_card :button#device_create").on("click", function () { | 117 | $("#device_card :button#device_create").on("click", function () { |
142 | - if (deviceSaveCount > 0) { | 118 | + if(deviceSaveCount>0){ |
143 | layer.msg('请先保存一条再新增', { | 119 | layer.msg('请先保存一条再新增', { |
144 | icon: 7, time: 3000 | 120 | icon: 7, time: 3000 |
145 | }); | 121 | }); |
146 | return | 122 | return |
147 | } | 123 | } |
148 | - deviceSaveCount += 1; | 124 | + deviceSaveCount+=1; |
149 | var html = "<tr><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'/></td><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'/></td><td><input type='text' class='layui-input' width='40px' lay-verify = 'required'/></td><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'/></td><td><input type='button' value='保存' class='edit' style='background-color: #b71010;line-height: 18px'/></td></tr>" | 125 | var html = "<tr><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'/></td><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'/></td><td><input type='text' class='layui-input' width='40px' lay-verify = 'required'/></td><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'/></td><td><input type='button' value='保存' class='edit' style='background-color: #b71010;line-height: 18px'/></td></tr>" |
150 | $("#device-table").append(html); | 126 | $("#device-table").append(html); |
151 | 127 | ||
@@ -162,7 +138,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | @@ -162,7 +138,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | ||
162 | icon: 7, time: 3000 | 138 | icon: 7, time: 3000 |
163 | }); | 139 | }); |
164 | tdArr = []; | 140 | tdArr = []; |
165 | - deviceSaveCount -= 1; | 141 | + deviceSaveCount-=1; |
166 | $(this).closest('tr').remove(); | 142 | $(this).closest('tr').remove(); |
167 | return; | 143 | return; |
168 | } | 144 | } |
@@ -195,21 +171,21 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | @@ -195,21 +171,21 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | ||
195 | 'deviceModel': tdArr[2], | 171 | 'deviceModel': tdArr[2], |
196 | 'brand': tdArr[3] | 172 | 'brand': tdArr[3] |
197 | } | 173 | } |
198 | - deviceSaveCount -= 1; | 174 | + deviceSaveCount-=1; |
199 | devicesBak.push(deviceObj) | 175 | devicesBak.push(deviceObj) |
200 | } | 176 | } |
201 | } | 177 | } |
202 | }); | 178 | }); |
203 | }); | 179 | }); |
204 | - var fittingSaveCount = 0; | 180 | + var fittingSaveCount =0; |
205 | $("#fiting_card :button#fiting_create").on("click", function () { | 181 | $("#fiting_card :button#fiting_create").on("click", function () { |
206 | - if (fittingSaveCount > 0) { | 182 | + if(fittingSaveCount>0){ |
207 | layer.msg('请先保存一条再新增', { | 183 | layer.msg('请先保存一条再新增', { |
208 | icon: 7, time: 3000 | 184 | icon: 7, time: 3000 |
209 | }); | 185 | }); |
210 | return | 186 | return |
211 | } | 187 | } |
212 | - fittingSaveCount += 1; | 188 | + fittingSaveCount+=1; |
213 | var html = "<tr><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'></td><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'></td><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'></td><td><input type='text' class='layui-input' width='50px' lay-verify = 'required'></td><td><input type='button' value='保存' class='edit' style='background-color: #b71010;line-height: 18px'/></td></tr>" | 189 | var html = "<tr><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'></td><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'></td><td><input type='text' width='40px' class='layui-input' lay-verify = 'required'></td><td><input type='text' class='layui-input' width='50px' lay-verify = 'required'></td><td><input type='button' value='保存' class='edit' style='background-color: #b71010;line-height: 18px'/></td></tr>" |
214 | $("#fiting-table").append(html); | 190 | $("#fiting-table").append(html); |
215 | 191 | ||
@@ -225,7 +201,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | @@ -225,7 +201,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | ||
225 | icon: 7, time: 3000 | 201 | icon: 7, time: 3000 |
226 | }); | 202 | }); |
227 | tdArr = []; | 203 | tdArr = []; |
228 | - fittingSaveCount -= 1; | 204 | + fittingSaveCount-=1; |
229 | $(this).closest('tr').remove(); | 205 | $(this).closest('tr').remove(); |
230 | return; | 206 | return; |
231 | } | 207 | } |
@@ -251,7 +227,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | @@ -251,7 +227,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | ||
251 | 'fittingName': tdArr[2], | 227 | 'fittingName': tdArr[2], |
252 | 'deviceModel': tdArr[3] | 228 | 'deviceModel': tdArr[3] |
253 | } | 229 | } |
254 | - fittingSaveCount -= 1; | 230 | + fittingSaveCount-=1; |
255 | fittingsBak.push(fittingObj) | 231 | fittingsBak.push(fittingObj) |
256 | } | 232 | } |
257 | } | 233 | } |
@@ -267,7 +243,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | @@ -267,7 +243,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | ||
267 | // 初始化下拉框 | 243 | // 初始化下拉框 |
268 | function loadSelect() { | 244 | function loadSelect() { |
269 | admin.req({ | 245 | admin.req({ |
270 | - url: domainName + '/api-room/machineRoom/getMachineRoomInfo' | 246 | + url: domainName + '/api-web/machineRoom/getMachineRoomInfo' |
271 | }).done(function (response) { | 247 | }).done(function (response) { |
272 | var options = "<option value=''>=归属机房=</option>"; | 248 | var options = "<option value=''>=归属机房=</option>"; |
273 | $.each(response.data, function (i, v) { | 249 | $.each(response.data, function (i, v) { |
@@ -283,6 +259,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | @@ -283,6 +259,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | ||
283 | $.each(response.data, function (i, v) { | 259 | $.each(response.data, function (i, v) { |
284 | options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>" | 260 | options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>" |
285 | }); | 261 | }); |
262 | + options += "<option value='0'>其他</option>"; | ||
286 | $('#slt-staffadd-group').html(options); | 263 | $('#slt-staffadd-group').html(options); |
287 | form.render(); | 264 | form.render(); |
288 | }); | 265 | }); |
@@ -317,4 +294,4 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | @@ -317,4 +294,4 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'laydate' | ||
317 | 294 | ||
318 | 295 | ||
319 | }) | 296 | }) |
320 | -}) | 297 | +}) |
@@ -11,23 +11,20 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function | @@ -11,23 +11,20 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function | ||
11 | 11 | ||
12 | //对外暴露的接口 | 12 | //对外暴露的接口 |
13 | exports("deviceList", function (d) { | 13 | exports("deviceList", function (d) { |
14 | - var accessToken = session.getToken()['access_token'] | ||
15 | - | 14 | + var accessToken = localStorage.getItem("accessToken"); |
16 | createDeviceTable() | 15 | createDeviceTable() |
17 | - | ||
18 | function dateForm(time) { | 16 | function dateForm(time) { |
19 | var unixTimestamp = new Date(time); | 17 | var unixTimestamp = new Date(time); |
20 | var commonTime = unixTimestamp.toLocaleString(); | 18 | var commonTime = unixTimestamp.toLocaleString(); |
21 | return commonTime | 19 | return commonTime |
22 | } | 20 | } |
23 | - | ||
24 | //渲染附件表格 | 21 | //渲染附件表格 |
25 | function createDeviceTable() { | 22 | function createDeviceTable() { |
26 | var deviceTable = table.render({ | 23 | var deviceTable = table.render({ |
27 | elem: '#deviceTable', | 24 | elem: '#deviceTable', |
28 | - url: domainName + '/api-room/machineRoom/findDeviceByRecordId', | 25 | + url: domainName + '/api-web/machineRoom/findDeviceByRecordId', |
29 | where: { | 26 | where: { |
30 | - access_token: accessToken, | 27 | + accessToken: accessToken, |
31 | recordId: d.id | 28 | recordId: d.id |
32 | }, | 29 | }, |
33 | height: 'full', | 30 | height: 'full', |
@@ -53,4 +50,4 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function | @@ -53,4 +50,4 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function | ||
53 | } | 50 | } |
54 | 51 | ||
55 | }) | 52 | }) |
56 | -}) | 53 | +}) |
1 | +/** 线路调整记录查看 */ | ||
2 | +layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydate', 'element'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var form = layui.form; | ||
5 | + var table = layui.table; | ||
6 | + var admin = layui.admin; | ||
7 | + var common = layui.common; | ||
8 | + var laydate = layui.laydate; | ||
9 | + var element = layui.element; | ||
10 | + | ||
11 | + exports('devicehitch', function () { | ||
12 | + var accessToken = localStorage.getItem("accessToken"); | ||
13 | + var domainName = common.domainName; | ||
14 | + var orgChart = echarts.init(document.getElementById('chart-devicehitch-report')); | ||
15 | + var dateLimit = ""; | ||
16 | + var createTime = "month"; | ||
17 | + | ||
18 | + //日期范围选择 | ||
19 | + laydate.render({ | ||
20 | + elem: '#hitchdateLimit' | ||
21 | + ,range: '~', | ||
22 | + trigger: 'click', | ||
23 | + ready: function(date){ | ||
24 | + $("#hitchdateLimit").removeAttr("lay-key"); | ||
25 | + $(this).attr("lay-key","1"); | ||
26 | + }, | ||
27 | + done: function (value) { | ||
28 | + dateLimit = value | ||
29 | + if (dateLimit == '') { | ||
30 | + $('[data-period="month"]').click() | ||
31 | + } else { | ||
32 | + $.each($("button.date"), function (i, e) { | ||
33 | + var $dom = $(e); | ||
34 | + if ($dom.hasClass("active")) { | ||
35 | + $dom.removeClass("active") | ||
36 | + } | ||
37 | + }) | ||
38 | + reloadAllChange() | ||
39 | + } | ||
40 | + } | ||
41 | + }); | ||
42 | + | ||
43 | + form.render(); | ||
44 | + loadOrgdevicehitchChart(); | ||
45 | + loaddevicehitchTable(); | ||
46 | + loadConditionSelect(); | ||
47 | + | ||
48 | + | ||
49 | + //监听Esc事件 | ||
50 | + $(document).keyup(function (event) { | ||
51 | + if (event.keyCode === 27) { | ||
52 | + layer.closeAll(); | ||
53 | + } | ||
54 | + }); | ||
55 | + | ||
56 | + | ||
57 | + // 日期方式选择 | ||
58 | + $('#btns-devicehitch-time button').click(function () { | ||
59 | + $.each($("button.date"), function (i, e) { | ||
60 | + var $dom = $(e); | ||
61 | + if ($dom.hasClass("active")) { | ||
62 | + $dom.removeClass("active") | ||
63 | + } | ||
64 | + }) | ||
65 | + $("#mettingdateLimit").val('') | ||
66 | + dateLimit = '' | ||
67 | + $("#btns-devicehitch-time button").removeClass("active"); | ||
68 | + $(this).addClass("active"); | ||
69 | + createTime = ($(this).data("period")) | ||
70 | + reloadAllChange(); | ||
71 | + }); | ||
72 | + | ||
73 | + // 回车搜索 | ||
74 | + $('[lay-filter="form-devicehitch-condition"] input').keydown(function (e) { | ||
75 | + if (e.keyCode === 13) { | ||
76 | + reloadAllChange(); | ||
77 | + } | ||
78 | + }); | ||
79 | + | ||
80 | + // 下拉框改变搜索 | ||
81 | + form.on('select(slt-devicehitch-org)', reloadAllChange); | ||
82 | + // 下拉框改变搜索 | ||
83 | + form.on('select(slt-devicehitch-repairStatus)', reloadAllChange); | ||
84 | + | ||
85 | + // 加载表格 | ||
86 | + function loaddevicehitchTable() { | ||
87 | + var conditions = form.val('form-devicehitch-condition'); | ||
88 | + | ||
89 | + Object.assign(conditions, { | ||
90 | + accessToken: accessToken, | ||
91 | + createtime: createTime, | ||
92 | + viewMode: 'true', | ||
93 | + dateLimit: dateLimit | ||
94 | + }); | ||
95 | + table.render({ | ||
96 | + elem: '#table-devicehitch-view', | ||
97 | + url: domainName + '/api-web/machineRoom/findDevicehitchRecords', | ||
98 | + where: conditions, | ||
99 | + height: 'full-360', | ||
100 | + page: { | ||
101 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'], | ||
102 | + theme: '#1E9FFF' | ||
103 | + }, | ||
104 | + end: function (e) { | ||
105 | + form.render() | ||
106 | + }, | ||
107 | + limit: common.limit, | ||
108 | + limits: common.limits, | ||
109 | + even: true, | ||
110 | + cols: [[ { | ||
111 | + type: 'numbers', title: '序号' | ||
112 | + }, { | ||
113 | + field: 'title', title: '维修单编号', align: 'center',width:100, | ||
114 | + templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-devicehitch-title" >{{d.title}}</span></div>' | ||
115 | + }, { | ||
116 | + field: 'machineRoomName', title: '机房', align: 'center',width:100 | ||
117 | + }, { | ||
118 | + field: 'deviceTypeName', title: '设备类型', align: 'center',width:88 | ||
119 | + }, { | ||
120 | + field: 'deviceInfo', title: '设备名称', align: 'center',width:88 | ||
121 | + },{ | ||
122 | + field: 'hitchDiscover', title: '故障发现人', align: 'center',width:100 | ||
123 | + },{ | ||
124 | + field: 'hitchTime', title: '故障时间', align: 'center',width:88 | ||
125 | + } ,{ | ||
126 | + field: 'hitchDesc', title: '故障描述', align: 'center',width:150 | ||
127 | + },{ | ||
128 | + field: 'projectLeader', title: '设备负责人', align: 'center',width:100 | ||
129 | + }, { | ||
130 | + field: 'phone', title: '联系方式', align: 'center',width:88 | ||
131 | + }, { | ||
132 | + field: 'repairer', title: '维修人', align: 'center',width:80 | ||
133 | + }, { | ||
134 | + field: 'attachmentList', title: '附件', align: 'center',width:60, | ||
135 | + templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-devicehitch-attachment">{{d.attachmentList.length}}</span></div>' | ||
136 | + },{ | ||
137 | + field: 'repairPlan', title: '计划维修时间', align: 'center' | ||
138 | + }, { | ||
139 | + field: 'repairStatus', title: '维修状态', align: 'center',width:88, | ||
140 | + templet:function (d) { | ||
141 | + if(d.repairStatus=="0"){ | ||
142 | + return "未维修" | ||
143 | + }else { | ||
144 | + return "已维修" | ||
145 | + } | ||
146 | + } | ||
147 | + }, { | ||
148 | + field: 'applyTime', title: '记录时间', align: 'center',width:95 | ||
149 | + } | ||
150 | + ]], | ||
151 | + done: function () { | ||
152 | + //获取线路列表 | ||
153 | + $('.view-devicehitch-title').on('click', function () { | ||
154 | + opendevicehitchForm($(this).data('id')) | ||
155 | + }) | ||
156 | + //获取线路列表 | ||
157 | + $('.view-devicehitch-attachment').on('click', function () { | ||
158 | + opendevicehitchList("attachment",$(this).data('id')) | ||
159 | + }) | ||
160 | + | ||
161 | + } | ||
162 | + }); | ||
163 | + } | ||
164 | + $("#devicehitch-export-excel").on('click', function () { | ||
165 | + var href = common.domainName + '/api-web/machineRoom/exporBDevicehitchRecords?accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000'; | ||
166 | + window.open(href) | ||
167 | + }) | ||
168 | + //新增日报 | ||
169 | + $('#devicehitch_create').on('click', function () { | ||
170 | + opendevicehitchForm() | ||
171 | + }) | ||
172 | + //下载 | ||
173 | + $('#devicehitch_download').on('click', function () { | ||
174 | + var id ='c24e6924b0dd11ec84cf005056a9e84c'; | ||
175 | + var url = domainName + `/api-web/openoffice/download/${id}?accessToken=` + accessToken; | ||
176 | + window.open(url); | ||
177 | + }) | ||
178 | + | ||
179 | + //新增/编辑表单 | ||
180 | + function opendevicehitchForm(id) { | ||
181 | + var title = id ? '编辑' : '新增' | ||
182 | + common.openWin('machineroom/devicehitchAdd', title, {id: id}, ['保存', '取消'], function f(){ | ||
183 | + $("#devicehitch-form-save-id").trigger("click"); | ||
184 | + reloadAllChange(); | ||
185 | + }) | ||
186 | + } | ||
187 | + | ||
188 | + //查看附件/调整信息列表 | ||
189 | + function opendevicehitchList(type,id) { | ||
190 | + var title = "附件"; | ||
191 | + common.openWin('machineroom/devicehitchList', title, {id: id,type:type}, ['确定', '取消']) | ||
192 | + } | ||
193 | + | ||
194 | + // 加载查询条件下拉框 | ||
195 | + function loadConditionSelect() { | ||
196 | + admin.req({ | ||
197 | + url: domainName + '/api-web/bResource/getInfoByAssetsType', | ||
198 | + }).done(function (response) { | ||
199 | + var options = "<option value=''>=设备类型=</option>"; | ||
200 | + $.each(response.data, function (i, v) { | ||
201 | + options += "<option value='" + v.resTypeCode + "'>" + v.resTypeName + "</option>" | ||
202 | + }); | ||
203 | + $('#slt-devicehitch-org').html(options); | ||
204 | + form.render(); | ||
205 | + }); | ||
206 | + } | ||
207 | + | ||
208 | + | ||
209 | + // 各单位维修情况 | ||
210 | + function loadOrgdevicehitchChart() { | ||
211 | + var conditions = {}; | ||
212 | + Object.assign(conditions, {accessToken: accessToken, createtime: createTime, viewMode: ''}); | ||
213 | + admin.req({ | ||
214 | + url: domainName + '/api-web/machineRoom/findDevicehitchRecordsForGroup', | ||
215 | + data: conditions | ||
216 | + }).done(function (response) { | ||
217 | + var chartData = response.map; | ||
218 | + var groupList = chartData.groupList; | ||
219 | + var norepairList = chartData.norepairList; | ||
220 | + var repairList = chartData.repairList; | ||
221 | + var totalList = chartData.totalList; | ||
222 | + var xData = []; | ||
223 | + var groupData = []; | ||
224 | + $.each(groupList, function (i, v) { | ||
225 | + xData.push(v); | ||
226 | + groupData.push({ | ||
227 | + name: v, | ||
228 | + value: 1 | ||
229 | + }); | ||
230 | + }); | ||
231 | + var series = [{ | ||
232 | + | ||
233 | + name: '未维修', | ||
234 | + data: norepairList, | ||
235 | + barWidth: 20, | ||
236 | + type: 'bar', | ||
237 | + stack: 'alarm', | ||
238 | + emphasis: { | ||
239 | + focus: 'series' | ||
240 | + }, | ||
241 | + itemStyle: { | ||
242 | + color: "#1e9fff" | ||
243 | + } | ||
244 | + },{ | ||
245 | + name: '已维修', | ||
246 | + data: repairList, | ||
247 | + barWidth: 20, | ||
248 | + type: 'bar', | ||
249 | + stack: 'alarm', | ||
250 | + emphasis: { | ||
251 | + focus: 'series' | ||
252 | + }, | ||
253 | + itemStyle: { | ||
254 | + color: "#FF7E00" | ||
255 | + }, | ||
256 | + label: { | ||
257 | + show: true, | ||
258 | + position: 'top', | ||
259 | + textStyle: { | ||
260 | + color: '#555' | ||
261 | + }, | ||
262 | + formatter: function (data) { | ||
263 | + return totalList[data.dataIndex] | ||
264 | + } | ||
265 | + } | ||
266 | + | ||
267 | + }]; | ||
268 | + /** | ||
269 | + 双X轴标签对应,伪实现思路: | ||
270 | + 底部的标签也是柱状图,对应包含的区域为上方X轴条数占总数的比例,设为宽度即可 | ||
271 | + */ | ||
272 | + var option = { | ||
273 | + title: { | ||
274 | + text: '设备维修统计图示', | ||
275 | + textStyle: { | ||
276 | + color: '#00D81E06', | ||
277 | + fontSize: 5 | ||
278 | + } | ||
279 | + }, | ||
280 | + tooltip: { | ||
281 | + trigger: 'axis', | ||
282 | + axisPointer: { | ||
283 | + type: 'shadow' | ||
284 | + } | ||
285 | + }, | ||
286 | + toolbox: { | ||
287 | + show: true, | ||
288 | + feature: { | ||
289 | + saveAsImage: {} | ||
290 | + }, | ||
291 | + right: 10 | ||
292 | + }, | ||
293 | + legend: { | ||
294 | + data: ['未维修', '已维修'], | ||
295 | + selectedMode: false | ||
296 | + }, | ||
297 | + grid: [{ | ||
298 | + top: 40, | ||
299 | + bottom: 70, | ||
300 | + left: 50, | ||
301 | + right: 5 | ||
302 | + }], | ||
303 | + xAxis: [{ | ||
304 | + type: 'category', | ||
305 | + data: xData, | ||
306 | + axisLabel: { | ||
307 | + color: '#333', | ||
308 | + show: true, | ||
309 | + interval:0, | ||
310 | + rotate:15 | ||
311 | + }, | ||
312 | + axisLine: { | ||
313 | + lineStyle: { | ||
314 | + color: '#e7e7e7' | ||
315 | + } | ||
316 | + }, | ||
317 | + axisTick: { | ||
318 | + lineStyle: { | ||
319 | + color: '#e7e7e7' | ||
320 | + } | ||
321 | + }, | ||
322 | + zlevel: 1 | ||
323 | + }], | ||
324 | + yAxis: [{ | ||
325 | + type: 'value', | ||
326 | + gridIndex: 0, | ||
327 | + axisLabel: { | ||
328 | + color: '#333' | ||
329 | + }, | ||
330 | + splitLine: { | ||
331 | + lineStyle: { | ||
332 | + type: 'dashed' | ||
333 | + } | ||
334 | + }, | ||
335 | + axisLine: { | ||
336 | + lineStyle: { | ||
337 | + color: '#ccc' | ||
338 | + } | ||
339 | + }, | ||
340 | + axisTick: { | ||
341 | + lineStyle: { | ||
342 | + color: '#ccc' | ||
343 | + } | ||
344 | + } | ||
345 | + }], | ||
346 | + series: series | ||
347 | + }; | ||
348 | + orgChart.setOption(option) | ||
349 | + }); | ||
350 | + } | ||
351 | + | ||
352 | + | ||
353 | + // 图表,表格重新加载 | ||
354 | + function reloadAllChange() { | ||
355 | + loaddevicehitchTable(); | ||
356 | + loadOrgdevicehitchChart(); | ||
357 | + | ||
358 | + } | ||
359 | + }); | ||
360 | +}); |
1 | + | ||
2 | +layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect', 'laydate', 'upload'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var form = layui.form; | ||
5 | + var layer = layui.layer; | ||
6 | + var admin = layui.admin; | ||
7 | + var table = layui.table; | ||
8 | + var common = layui.common; | ||
9 | + var session = layui.sessions; | ||
10 | + var laydate = layui.laydate; | ||
11 | + var upload = layui.upload; | ||
12 | + var domainName = common.domainName; | ||
13 | + var xmSelect = layui.xmSelect; | ||
14 | + | ||
15 | + //对外暴露的接口 | ||
16 | + exports('devicehitchAdd', function (data) { | ||
17 | + var accessToken = localStorage.getItem("accessToken"); | ||
18 | + var userSelect = ""; | ||
19 | + var currentDate = {} | ||
20 | + var applyDate = {} | ||
21 | + var aAcknowledgingDate = {} | ||
22 | + var bAcknowledgingDate = {} | ||
23 | + var hitDate = {} | ||
24 | + var uploadInst = {} | ||
25 | + var defaultUser = [] | ||
26 | + var attachmentIds = [] | ||
27 | + var id = data.id | ||
28 | + var cols = [] | ||
29 | + var where = {} | ||
30 | + var currentResourceType = '' | ||
31 | + var resTypeSele | ||
32 | + | ||
33 | + | ||
34 | + var viewType = data && data.viewType ? data.viewType : ''; | ||
35 | + | ||
36 | + //渲染表单 | ||
37 | + form.render(null, 'add-devicehitch-form') | ||
38 | + init() | ||
39 | + | ||
40 | + //保存 | ||
41 | + form.on('submit(devicehitch-form-save-id)', function (res) { | ||
42 | + $("#devicehitch-form-save-id").attr("disabled","disabled"); | ||
43 | + var value = $('#attachmentInput').val() | ||
44 | + if (value != '') { | ||
45 | + $('#upload_btn').click() | ||
46 | + } else { | ||
47 | + saveForm() | ||
48 | + } | ||
49 | + }) | ||
50 | + | ||
51 | + //保存 | ||
52 | + function saveForm() { | ||
53 | + | ||
54 | + layer.load(2) | ||
55 | + var data = form.val('add-devicehitch-form') | ||
56 | + var params = {} | ||
57 | + params.attachmentIds = attachmentIds.toString() | ||
58 | + delete data['file'] | ||
59 | + delete data['select'] | ||
60 | + params.devicehitch = JSON.stringify(data) | ||
61 | + admin.req({ | ||
62 | + url: domainName + '/api-web/machineRoom/devicehitch/save?accessToken=' + accessToken, | ||
63 | + data: JSON.stringify(params), | ||
64 | + type: 'post', | ||
65 | + contentType: "application/json; charset=utf-8", | ||
66 | + done: function (res) { | ||
67 | + if (res.success) { | ||
68 | + layer.msg(res.msg, { | ||
69 | + offset: '15px', | ||
70 | + icon: 1, | ||
71 | + time: 1000, | ||
72 | + }, function () { | ||
73 | + $("#attachment").removeAttr("disabled"); | ||
74 | + $("#devicehitch-form-save-id").removeAttr("disabled"); | ||
75 | + layer.closeAll(); | ||
76 | + table.reload('table-devicehitch-view', { | ||
77 | + where: { | ||
78 | + accessToken: accessToken, | ||
79 | + createtime: "month", | ||
80 | + viewMode: 'true', | ||
81 | + dateLimit: "" | ||
82 | + }, | ||
83 | + }); | ||
84 | + }) | ||
85 | + } else { | ||
86 | + layer.msg(res.msg, { | ||
87 | + offset: '15px', | ||
88 | + icon: 7, | ||
89 | + time: 1000, | ||
90 | + }) | ||
91 | + } | ||
92 | + } | ||
93 | + }) | ||
94 | + return false | ||
95 | + } | ||
96 | + | ||
97 | + //页面初始化 | ||
98 | + function init() { | ||
99 | + loadSelect() | ||
100 | + initDatePlus() | ||
101 | + initUploadPlus() | ||
102 | + | ||
103 | + | ||
104 | + if (viewType == 'view') { | ||
105 | + initViewMode(); | ||
106 | + } | ||
107 | + } | ||
108 | + | ||
109 | + // 初始化下拉框 | ||
110 | + function loadSelect() { | ||
111 | + admin.req({ | ||
112 | + url: domainName + '/api-web/bResource/getInfoByAssetsType', | ||
113 | + }).done(function (response) { | ||
114 | + var options = "<option value=''>=设备类型=</option>"; | ||
115 | + $.each(response.data, function (i, v) { | ||
116 | + options += "<option value='" + v.resTypeCode + "'>" + v.resTypeName + "</option>" | ||
117 | + }); | ||
118 | + $('#slt-devicehitch-res').html(options); | ||
119 | + | ||
120 | + form.render(); | ||
121 | + | ||
122 | + }); | ||
123 | + admin.req({ | ||
124 | + url: domainName + '/api-web/machineRoom/getMachineRoomInfo' | ||
125 | + }).done(function (response) { | ||
126 | + var options = "<option value=''>=归属机房=</option>"; | ||
127 | + $.each(response.data, function (i, v) { | ||
128 | + options += "<option value='" + v.machineRoomId + "'>" + v.machineRoomName + "</option>" | ||
129 | + }); | ||
130 | + $('#slt-devicehitch-machine').html(options); | ||
131 | + form.render(); | ||
132 | + fromAssignment() | ||
133 | + }); | ||
134 | + admin.req({ | ||
135 | + url: domainName + '/api-web/bWorkreportGroup/findManufacturerList' | ||
136 | + }).done(function (response) { | ||
137 | + var options = "<option value=''>=工作单位=</option>"; | ||
138 | + $.each(response.data, function (i, v) { | ||
139 | + options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>" | ||
140 | + }); | ||
141 | + options += "<option value='0'>其他</option>"; | ||
142 | + $('#slt-discoverMfId-group').html(options); | ||
143 | + $('#slt-repairMfId-group').html(options); | ||
144 | + form.render(); | ||
145 | + }); | ||
146 | + | ||
147 | + } | ||
148 | + form.on('select(slt-discoverMfId-group)', function (data) { | ||
149 | + if (data.value == '0') { | ||
150 | + $("#slt-discoverMfId-group").css("display", "none"); | ||
151 | + $("#discoverMfOther").css("display", "block"); | ||
152 | + } else { | ||
153 | + $("#discoverMfOther").css("display", "none"); | ||
154 | + } | ||
155 | + }); | ||
156 | + form.on('select(slt-repairMfId-group)', function (data) { | ||
157 | + if (data.value == '0') { | ||
158 | + $("#slt-repairMfId-group").css("display", "none"); | ||
159 | + $("#repairMfOther").css("display", "block"); | ||
160 | + } else { | ||
161 | + $("#repairMfOther").css("display", "none"); | ||
162 | + } | ||
163 | + }); | ||
164 | + | ||
165 | + //初始化日期插件 | ||
166 | + function initDatePlus() { | ||
167 | + applyDate = laydate.render({ | ||
168 | + elem: '#applyTime', //指定元素 | ||
169 | + value: new Date(), | ||
170 | + type: 'datetime', | ||
171 | + isInitValue: true, | ||
172 | + }); | ||
173 | + hitDate = laydate.render({ | ||
174 | + elem: '#hitchTime', //指定元素 | ||
175 | + value: new Date(), | ||
176 | + type: 'datetime', | ||
177 | + isInitValue: true, | ||
178 | + }); | ||
179 | + aAcknowledgingDate = laydate.render({ | ||
180 | + elem: '#aAcknowledgingTime', //指定元素 | ||
181 | + value: new Date(), | ||
182 | + type: 'datetime', | ||
183 | + isInitValue: true, | ||
184 | + }); | ||
185 | + bAcknowledgingDate = laydate.render({ | ||
186 | + elem: '#bAcknowledgingTime', //指定元素 | ||
187 | + value: new Date(), | ||
188 | + type: 'datetime', | ||
189 | + isInitValue: true, | ||
190 | + }); | ||
191 | + laydate.render({ | ||
192 | + elem: '#repairPlan' | ||
193 | + , range: '~', | ||
194 | + type: 'datetime', | ||
195 | + trigger: 'click', | ||
196 | + ready: function (date) { | ||
197 | + $("#repairPlan").removeAttr("lay-key"); | ||
198 | + $(this).attr("lay-key", "1"); | ||
199 | + }, | ||
200 | + done: function (value) { | ||
201 | + $("#repairPlan").val(value); | ||
202 | + } | ||
203 | + }); | ||
204 | + } | ||
205 | + | ||
206 | + //初始化上传插件 | ||
207 | + function initUploadPlus() { | ||
208 | + var param = {"accessToken": accessToken} | ||
209 | + var fileName = [] | ||
210 | + uploadInst = upload.render({ | ||
211 | + elem: '#attachment', //绑定元素 | ||
212 | + url: common.domainName + '/api-web/machineRoom/devicehitch/upload?accessToken='+accessToken, | ||
213 | + data: param, | ||
214 | + multiple: true, | ||
215 | + auto: false, //选择文件后不自动上传 | ||
216 | + bindAction: '#upload_btn',//指定按钮触发上传 | ||
217 | + accept: 'file', | ||
218 | + exts: 'xls|doc|pdf|docx|xlsx|jpg|png', | ||
219 | + choose: function (obj) { | ||
220 | + //选择文件后回调 | ||
221 | + var files = this.files = obj.pushFile(); | ||
222 | + if(typeof(files)!=undefined){ | ||
223 | + if(Object.getOwnPropertyNames(files).length>2){ | ||
224 | + $("#attachment").attr("disabled","disabled"); | ||
225 | + layer.msg('目前最多支持上传三个文件!', { | ||
226 | + icon: 7, time: 3000 | ||
227 | + }); | ||
228 | + } | ||
229 | + } | ||
230 | + obj.preview(function (index, file, result) { | ||
231 | + fileName.push(file.name) | ||
232 | + $('#attachmentInput').val(fileName.toString()) | ||
233 | + }) | ||
234 | + }, | ||
235 | + done: function (res) { | ||
236 | + //单次上传成功 | ||
237 | + attachmentIds.push(res.str) | ||
238 | + }, | ||
239 | + allDone: function (obj) { | ||
240 | + //全部上传成功后 | ||
241 | + saveForm() | ||
242 | + }, | ||
243 | + error: function (index, upload) { | ||
244 | + // 上传失败 | ||
245 | + layer.msg('文件上传时发生故障,请稍后再试!', { | ||
246 | + icon: 7, time: 3000 | ||
247 | + }); | ||
248 | + } | ||
249 | + }); | ||
250 | + } | ||
251 | + | ||
252 | + | ||
253 | + // 初始化查看模式 | ||
254 | + function initViewMode() { | ||
255 | + $('form[lay-filter="add-devicehitch-form"]').find('input, textarea').attr('readonly', true); | ||
256 | + $('form[lay-filter="add-devicehitch-form"]').find('select').attr('disabled', true); | ||
257 | + $.each(xmSelect.get(), function (i, v) { | ||
258 | + v.update({disabled: true}); | ||
259 | + }); | ||
260 | + $('#attachmentInput').parent().parent().parent().addClass('hide'); | ||
261 | + $('#table-devicehitch-add-attachment').removeClass('hide'); | ||
262 | + //渲染附件表格 | ||
263 | + var attachmentTable = table.render({ | ||
264 | + elem: '#table-devicehitch-add-attachment', | ||
265 | + url: domainName + '/api-web/machineRoom/devicehitch/getAttaById', | ||
266 | + where: { | ||
267 | + accessToken: accessToken, | ||
268 | + id: data.id | ||
269 | + }, | ||
270 | + height: 'full', | ||
271 | + page: { | ||
272 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] | ||
273 | + , theme: '#1E9FFF'//自定义分页主题颜色 | ||
274 | + }, | ||
275 | + end: function (e) { | ||
276 | + form.render() | ||
277 | + }, | ||
278 | + limit: common.limit, | ||
279 | + limits: common.limits, | ||
280 | + even: true, | ||
281 | + cols: [[ | ||
282 | + {type: 'numbers', title: '序号'}, | ||
283 | + { | ||
284 | + field: 'name', title: '文件名称', align: 'center', minWith: 200, | ||
285 | + }, | ||
286 | + { | ||
287 | + field: 'suffix', title: '文件后缀', align: 'center', minWith: 150, | ||
288 | + }, | ||
289 | + { | ||
290 | + field: 'size', title: '文件大小', align: 'center', minWith: 150, | ||
291 | + templet: function (d) { | ||
292 | + var str = (d.size / 1000).toFixed(2) | ||
293 | + return `<div><span>${str}KB</span></div>` | ||
294 | + } | ||
295 | + }, | ||
296 | + { | ||
297 | + title: '操作', align: "center", width: 120, | ||
298 | + templet: '<div><span data-id="{{d.id}}" data-suffix="{{d.suffix}}" data-path = "{{d.path}}" class="layui-table-link preview-attachment-btn">预览</span></div>' | ||
299 | + } | ||
300 | + ]], | ||
301 | + done: function () { | ||
302 | + $('.preview-attachment-btn').on('click', function () { | ||
303 | + var id = $(this).data('id') | ||
304 | + var suffix = $(this).data('suffix') | ||
305 | + var filepath = $(this).data('path') | ||
306 | + if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型 | ||
307 | + var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?accessToken=` + accessToken | ||
308 | + layer.open({ | ||
309 | + type: 1, | ||
310 | + content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`, | ||
311 | + title: '图片预览', | ||
312 | + area: ['60%', '90%'] | ||
313 | + }) | ||
314 | + } else { | ||
315 | + //附件为文档类型 | ||
316 | + common.fileviewer(filepath) | ||
317 | + } | ||
318 | + }) | ||
319 | + } | ||
320 | + }) | ||
321 | + form.render(); | ||
322 | + } | ||
323 | + | ||
324 | + //表单赋值 | ||
325 | + function fromAssignment() { | ||
326 | + if (data && data.id) { | ||
327 | + $('#add-devicehitch-form-atta').show() | ||
328 | + //编辑表单时禁用日志类型修改和时间选择 | ||
329 | + // $('#add-repair-form').find("select[name='hitchtime']").attr("disabled", "disabled") | ||
330 | + // $('#add-repair-form').find("input[name='createtime']").attr("disabled", "disabled") | ||
331 | + //编辑表单时取消显示默认值 | ||
332 | + applyDate.config.isInitValue = false | ||
333 | + hitDate.config.isInitValue = false | ||
334 | + aAcknowledgingDate.config.isInitValue = false | ||
335 | + bAcknowledgingDate.config.isInitValue = false | ||
336 | + initDatePlus() | ||
337 | + admin.req({ | ||
338 | + url: domainName + `/api-web/machineRoom/findDevicehitchRecordById`, | ||
339 | + data: {recordId: data.id}, | ||
340 | + async: false, | ||
341 | + }).done(function (res) { | ||
342 | + form.val('add-devicehitch-form', res.object) | ||
343 | + if(res.object.repairMfId=="0"){ | ||
344 | + $("#repairMfOther").css("display", "block"); | ||
345 | + } | ||
346 | + if(res.object.discoverMfId=="0"){ | ||
347 | + $("#discoverMfOther").css("display", "block"); | ||
348 | + } | ||
349 | + if (res.object.attachmentList) { | ||
350 | + $.each(res.object.attachmentList, function (i, v) { | ||
351 | + writeTagsInfo(v.id, v.originalName) | ||
352 | + }) | ||
353 | + } | ||
354 | + }) | ||
355 | + } | ||
356 | + } | ||
357 | + | ||
358 | + //写入标签内容 | ||
359 | + function writeTagsInfo(id, name) { | ||
360 | + var tags = '<span id="tags_span_' + id + '" data-id="' + id + '"><em>' + name + '</em>' + | ||
361 | + '<button type="button" value="' + id + '" class="tagsclose">×</button></span>'; | ||
362 | + if ($("#tags_span_" + id).length == 0) { | ||
363 | + //拼接标签 | ||
364 | + $("#selecte_content_id").append(tags); | ||
365 | + //绑定标签的删除事件 | ||
366 | + bindTagesDelEvent(); | ||
367 | + } | ||
368 | + } | ||
369 | + | ||
370 | + //删除标签事件 | ||
371 | + function bindTagesDelEvent() { | ||
372 | + //删除已选主体的页签 | ||
373 | + $("button.tagsclose").on("click", function () { | ||
374 | + var attachId = $(this).attr("value"); | ||
375 | + //确认提示框 | ||
376 | + layer.confirm('附件删除后将无法恢复,您确定要删除吗?', { | ||
377 | + btn: ['确定', '取消'] //按钮 | ||
378 | + }, function () { | ||
379 | + $.ajax({ | ||
380 | + url: domainName + `/api-web/workreport/deleteAttachment/${id}/${attachId}?accessToken=` + accessToken, | ||
381 | + type: "get", | ||
382 | + }).done(function (res) { | ||
383 | + layer.msg('删除成功', { | ||
384 | + offset: '15px' | ||
385 | + , icon: 1 | ||
386 | + , time: 1000 | ||
387 | + }, function () { | ||
388 | + $("#tags_span_" + attachId).remove(); | ||
389 | + }); | ||
390 | + }).error(function (error) { | ||
391 | + console.log(error); | ||
392 | + }); | ||
393 | + }); | ||
394 | + }); | ||
395 | + } | ||
396 | + }) | ||
397 | +}) |
1 | + | ||
2 | +layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var form = layui.form; | ||
5 | + var layer = layui.layer; | ||
6 | + var admin = layui.admin; | ||
7 | + var table = layui.table; | ||
8 | + var common = layui.common; | ||
9 | + var session = layui.sessions | ||
10 | + var domainName = common.domainName; | ||
11 | + | ||
12 | + //对外暴露的接口 | ||
13 | + exports("devicehitchList", function (d) { | ||
14 | + var accessToken = localStorage.getItem("accessToken"); | ||
15 | + if (d.type == 'attachment') { | ||
16 | + $('#attachmentTable').show() | ||
17 | + | ||
18 | + createAttachmentTable() | ||
19 | + } | ||
20 | + | ||
21 | + | ||
22 | + //渲染附件表格 | ||
23 | + function createAttachmentTable() { | ||
24 | + var attachmentTable = table.render({ | ||
25 | + elem: '#attachmentTable', | ||
26 | + url: domainName + '/api-web/machineRoom/devicehitch/getAttaById', | ||
27 | + where: { | ||
28 | + accessToken: accessToken, | ||
29 | + id: d.id | ||
30 | + }, | ||
31 | + height: 'full', | ||
32 | + page: { | ||
33 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] | ||
34 | + , theme: '#1E9FFF'//自定义分页主题颜色 | ||
35 | + }, | ||
36 | + end: function (e) { | ||
37 | + form.render() | ||
38 | + }, | ||
39 | + limit: common.limit, | ||
40 | + limits: common.limits, | ||
41 | + even: true, | ||
42 | + cols: [[ | ||
43 | + {type: 'numbers', title: '序号'}, | ||
44 | + { | ||
45 | + field: 'name', title: '文件名称', align: 'center', minWith: 200, | ||
46 | + }, { | ||
47 | + field: 'originalName', title: '原始名称', align: 'center', minWith: 200, | ||
48 | + }, { | ||
49 | + field: 'suffix', title: '文件后缀', align: 'center', minWith: 150, | ||
50 | + }, | ||
51 | + { | ||
52 | + field: 'size', title: '文件大小', align: 'center', minWith: 150, | ||
53 | + templet: function (d) { | ||
54 | + var str = (d.size / 1000).toFixed(2) | ||
55 | + return `<div><span>${str}KB</span></div>` | ||
56 | + } | ||
57 | + }, | ||
58 | + { | ||
59 | + title: '操作', align: "center", width: 120, | ||
60 | + templet: '<div><span data-id="{{d.id}}" data-suffix="{{d.suffix}}" data-path="{{d.path}}" class="layui-table-link preview-attachment-btn">预览</span>' + | ||
61 | + '<span data-id="{{d.id}}" data-suffix="{{d.suffix}}" class="layui-table-link attachment-download-btn" style="margin-left: 10px">下载</span></div>' | ||
62 | + } | ||
63 | + ]], | ||
64 | + done: function () { | ||
65 | + $('.preview-attachment-btn').on('click', function () { | ||
66 | + var id = $(this).data('id') | ||
67 | + var suffix = $(this).data('suffix') | ||
68 | + var filepath = $(this).data('path') | ||
69 | + if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型 | ||
70 | + var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?accessToken=` + accessToken | ||
71 | + layer.open({ | ||
72 | + type: 1, | ||
73 | + content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`, | ||
74 | + title: '图片预览', | ||
75 | + area: ['60%', '90%'] | ||
76 | + }) | ||
77 | + } else { | ||
78 | + //附件为文档类型 | ||
79 | + common.fileviewer(filepath) | ||
80 | + } | ||
81 | + }) | ||
82 | + | ||
83 | + $('.attachment-download-btn').on('click',function () { | ||
84 | + var id = $(this).data('id') | ||
85 | + var suffix = $(this).data('suffix') | ||
86 | + var url = domainName + `/api-web/openoffice/download/${id}?accessToken=` + accessToken | ||
87 | + window.open(url) | ||
88 | + }) | ||
89 | + } | ||
90 | + }) | ||
91 | + } | ||
92 | + | ||
93 | + }) | ||
94 | +}) |
1 | +/** 应急演练 */ | ||
2 | +layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydate', 'element'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var form = layui.form; | ||
5 | + var table = layui.table; | ||
6 | + var admin = layui.admin; | ||
7 | + var common = layui.common; | ||
8 | + var laydate = layui.laydate; | ||
9 | + var element = layui.element; | ||
10 | + | ||
11 | + exports('emergency', function () { | ||
12 | + var accessToken = localStorage.getItem("accessToken"); | ||
13 | + var domainName = common.domainName; | ||
14 | + var timeChart = echarts.init(document.getElementById('emergency-chart-time-record')); | ||
15 | + var inspIsLoad = false; | ||
16 | + var businessIsLoad = false; | ||
17 | + var currSelect = 0; | ||
18 | + var dateLimit = "" | ||
19 | + var createTime = "month" | ||
20 | + | ||
21 | + | ||
22 | + //日期范围选择 | ||
23 | + laydate.render({ | ||
24 | + elem: '#emergencydateLimit' | ||
25 | + , range: '~', | ||
26 | + trigger: 'click', | ||
27 | + ready: function (date) { | ||
28 | + $("#emergencydateLimit").removeAttr("lay-key"); | ||
29 | + $(this).attr("lay-key", "1"); | ||
30 | + }, | ||
31 | + done: function (value) { | ||
32 | + dateLimit = value | ||
33 | + if (dateLimit == '') { | ||
34 | + $('[data-period="month"]').click() | ||
35 | + } else { | ||
36 | + $.each($("button.date"), function (i, e) { | ||
37 | + var $dom = $(e); | ||
38 | + if ($dom.hasClass("active")) { | ||
39 | + $dom.removeClass("active") | ||
40 | + } | ||
41 | + }) | ||
42 | + reloadAllChange() | ||
43 | + } | ||
44 | + } | ||
45 | + }); | ||
46 | + | ||
47 | + form.render(); | ||
48 | + renderEmergencyPlanListTable(); | ||
49 | + renderEmergencyReportListTable() | ||
50 | + loademergencyChart(); | ||
51 | + loadConditionSelect(); | ||
52 | + | ||
53 | + | ||
54 | + //监听Esc事件 | ||
55 | + $(document).keyup(function (event) { | ||
56 | + if (event.keyCode === 27) { | ||
57 | + layer.closeAll(); | ||
58 | + } | ||
59 | + }); | ||
60 | + | ||
61 | + | ||
62 | + // 日期方式选择 | ||
63 | + $('#btns-emergency-time button').click(function () { | ||
64 | + $.each($("button.date"), function (i, e) { | ||
65 | + var $dom = $(e); | ||
66 | + if ($dom.hasClass("active")) { | ||
67 | + $dom.removeClass("active") | ||
68 | + } | ||
69 | + }) | ||
70 | + $("#dateLimit").val('') | ||
71 | + dateLimit = '' | ||
72 | + $("#btns-emergency-time button").removeClass("active"); | ||
73 | + $(this).addClass("active"); | ||
74 | + createTime = ($(this).data("period")) | ||
75 | + reloadAllChange(); | ||
76 | + }); | ||
77 | + | ||
78 | + // 回车搜索 | ||
79 | + $('[lay-filter="form-emergency-condition"] input').keydown(function (e) { | ||
80 | + if (e.keyCode === 13) { | ||
81 | + reloadAllChange(); | ||
82 | + } | ||
83 | + }); | ||
84 | + | ||
85 | + // 下拉框改变搜索 | ||
86 | + form.on('select(slt-emergency-group)', reloadAllChange); | ||
87 | + // 下拉框改变搜索 | ||
88 | + form.on('select(slt-emergency-biz)', reloadAllChange); | ||
89 | + // 下拉框改变搜索 | ||
90 | + form.on('select(slt-emergency-org)', reloadAllChange); | ||
91 | + | ||
92 | + form.on('select(slt-emergency-status)', reloadAllChange); | ||
93 | + | ||
94 | + // tab页切换事件 | ||
95 | + element.on('tab(emergency-tab)', function (data) { | ||
96 | + if (data.index == 0) { | ||
97 | + if (!inspIsLoad) { | ||
98 | + renderEmergencyPlanListTable(); | ||
99 | + inspIsLoad = true; | ||
100 | + } | ||
101 | + } else if (data.index == 1) { | ||
102 | + if (!businessIsLoad) { | ||
103 | + renderEmergencyReportListTable(); | ||
104 | + businessIsLoad = true; | ||
105 | + } | ||
106 | + } | ||
107 | + currSelect = data.index; | ||
108 | + }); | ||
109 | + | ||
110 | + // 加载配件更换表格 | ||
111 | + function renderEmergencyPlanListTable() { | ||
112 | + var conditions = form.val('form-emergency-condition'); | ||
113 | + | ||
114 | + Object.assign(conditions, { | ||
115 | + accessToken: accessToken, | ||
116 | + createtime: createTime, | ||
117 | + viewMode: 'true', | ||
118 | + dateLimit: dateLimit | ||
119 | + }); | ||
120 | + table.render({ | ||
121 | + elem: '#emergencyPlan_table_id', | ||
122 | + url: domainName + '/api-web/emergency/findBEmergencyRecords?docType=0', | ||
123 | + where: conditions, | ||
124 | + height: 'full-360', | ||
125 | + page: { | ||
126 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'], | ||
127 | + theme: '#1E9FFF' | ||
128 | + }, | ||
129 | + end: function (e) { | ||
130 | + form.render() | ||
131 | + }, | ||
132 | + limit: common.limit, | ||
133 | + limits: common.limits, | ||
134 | + even: true, | ||
135 | + cols: [[{ | ||
136 | + type: 'numbers', title: '序号' | ||
137 | + }, { | ||
138 | + field: 'title', title: '预案版本', align: 'center', | ||
139 | + templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-emergencyPlan-title" >{{d.title}}</span></div>' | ||
140 | + }, { | ||
141 | + field: 'busTypeName', title: '业务名称', align: 'center', | ||
142 | + }, { | ||
143 | + field: 'orgName', title: '所属处室', align: 'center' | ||
144 | + }, { | ||
145 | + field: 'principal', title: '系统责任人', align: 'center', | ||
146 | + }, { | ||
147 | + field: 'phone', title: '联系方式', align: 'center', | ||
148 | + }, { | ||
149 | + field: 'operationUser', title: '运维人', align: 'center', | ||
150 | + }, { | ||
151 | + field: 'manufacturerName', title: '所属单位', align: 'center', templet: function (d) { | ||
152 | + if (d.manufacturerId == '0') { | ||
153 | + return '其他'; | ||
154 | + } else { | ||
155 | + return d.manufacturerName; | ||
156 | + } | ||
157 | + } | ||
158 | + }, { | ||
159 | + field: 'mphone', title: '运维电话', align: 'center', | ||
160 | + }, { | ||
161 | + field: 'attachmentList', title: '附件', align: 'center', | ||
162 | + templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-emergencyPlan-attachment">{{d.attachmentList.length}}</span></div>' | ||
163 | + }, { | ||
164 | + field: 'applyTime', title: '创建时间', align: 'center' | ||
165 | + } | ||
166 | + ]], | ||
167 | + done: function () { | ||
168 | + //获取线路列表 | ||
169 | + $('.view-emergencyPlan-title').on('click', function () { | ||
170 | + openemergencyForm($(this).data('id')) | ||
171 | + }) | ||
172 | + //获取线路列表 | ||
173 | + $('.view-emergencyPlan-attachment').on('click', function () { | ||
174 | + openemergencyList("attachment", $(this).data('id')) | ||
175 | + }) | ||
176 | + | ||
177 | + } | ||
178 | + }); | ||
179 | + } | ||
180 | + | ||
181 | + // 加载设备出入表格 | ||
182 | + function renderEmergencyReportListTable() { | ||
183 | + var conditions = form.val('form-emergency-condition'); | ||
184 | + | ||
185 | + Object.assign(conditions, { | ||
186 | + accessToken: accessToken, | ||
187 | + createtime: createTime, | ||
188 | + viewMode: 'true', | ||
189 | + dateLimit: dateLimit | ||
190 | + }); | ||
191 | + table.render({ | ||
192 | + elem: '#emergencyReport-table', | ||
193 | + url: domainName + '/api-web/emergency/findBEmergencyRecords?docType=1', | ||
194 | + where: conditions, | ||
195 | + height: 'full-360', | ||
196 | + page: { | ||
197 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'], | ||
198 | + theme: '#1E9FFF' | ||
199 | + }, | ||
200 | + end: function (e) { | ||
201 | + form.render() | ||
202 | + }, | ||
203 | + limit: common.limit, | ||
204 | + limits: common.limits, | ||
205 | + even: true, | ||
206 | + cols: [[{ | ||
207 | + type: 'numbers', title: '序号' | ||
208 | + }, { | ||
209 | + field: 'title', title: '预案版本', align: 'center', | ||
210 | + templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-emergencyReport-title" >{{d.title}}</span></div>' | ||
211 | + }, { | ||
212 | + field: 'busTypeName', title: '业务名称', align: 'center', | ||
213 | + }, { | ||
214 | + field: 'orgName', title: '所属处室', align: 'center' | ||
215 | + }, { | ||
216 | + field: 'principal', title: '系统责任人', align: 'center', | ||
217 | + }, { | ||
218 | + field: 'phone', title: '联系方式', align: 'center', | ||
219 | + }, { | ||
220 | + field: 'operationUser', title: '运维人', align: 'center', | ||
221 | + }, { | ||
222 | + field: 'manufacturerName', title: '所属单位', align: 'center', templet: function (d) { | ||
223 | + if (d.manufacturerId == '0') { | ||
224 | + return '其他'; | ||
225 | + } else { | ||
226 | + return d.manufacturerName; | ||
227 | + } | ||
228 | + } | ||
229 | + }, { | ||
230 | + field: 'mphone', title: '运维电话', align: 'center', | ||
231 | + }, { | ||
232 | + field: 'attachmentList', title: '附件', align: 'center', | ||
233 | + templet: '<div><span data-id="{{d.id}}" class="layui-table-link view-emergencyReport-attachment">{{d.attachmentList.length}}</span></div>' | ||
234 | + }, { | ||
235 | + field: 'unitadjustperiod', title: '实施时间段', align: 'center' | ||
236 | + }, { | ||
237 | + field: 'applyTime', title: '创建时间', align: 'center' | ||
238 | + }, { | ||
239 | + field: 'status', title: '演练结果', align: 'center', | ||
240 | + templet: '<div><span>{{d.status==0?"成功":"失败"}}</span></div>' | ||
241 | + | ||
242 | + } | ||
243 | + ]], | ||
244 | + done: function () { | ||
245 | + //获取线路列表 | ||
246 | + $('.view-emergencyReport-title').on('click', function () { | ||
247 | + openemergencyForm($(this).data('id')) | ||
248 | + }) | ||
249 | + //获取线路列表 | ||
250 | + $('.view-emergencyReport-attachment').on('click', function () { | ||
251 | + openemergencyList("attachment", $(this).data('id')) | ||
252 | + }) | ||
253 | + | ||
254 | + } | ||
255 | + }); | ||
256 | + } | ||
257 | + | ||
258 | + //新增日报 | ||
259 | + $('#emergency_create').on('click', function () { | ||
260 | + openemergencyForm() | ||
261 | + }) | ||
262 | + //下载 | ||
263 | + $('#emergency_download').on('click', function (){ | ||
264 | + let id =''; | ||
265 | + if (currSelect == 0) { | ||
266 | + id = '62a341e759dd46d5b12b4c17ddb9db'; | ||
267 | + }else{ | ||
268 | + id = '09f4988f2fc8a785700040c49cfe5d19'; | ||
269 | + } | ||
270 | + var url = domainName + `/api-web/openoffice/download/${id}?accessToken=` + accessToken; | ||
271 | + window.open(url); | ||
272 | + }) | ||
273 | + //新增/编辑表单 | ||
274 | + function openemergencyForm(id) { | ||
275 | + var title = id ? '编辑' : '新增' | ||
276 | + common.openWin('emergency/add', title, {id: id}, ['保存', '取消'], function f() { | ||
277 | + $("#emergency-form-save-id").trigger("click"); | ||
278 | + reloadAllChange(); | ||
279 | + }) | ||
280 | + } | ||
281 | + | ||
282 | + //查看附件/调整信息列表 | ||
283 | + function openemergencyList(type, id) { | ||
284 | + var title = "附件"; | ||
285 | + common.openWin('emergency/fileList', title, {id: id, type: type}, ['确定', '取消']) | ||
286 | + } | ||
287 | + | ||
288 | + // 加载查询条件下拉框 | ||
289 | + function loadConditionSelect() { | ||
290 | + admin.req({ | ||
291 | + url: domainName + '/mj/sysOrg/page?orgType=1' | ||
292 | + }).done(function (response) { | ||
293 | + var options = "<option value=''>=所属处室=</option>"; | ||
294 | + $.each(response.data.rows, function (i, v) { | ||
295 | + options += "<option value='" + v.orgCode + "'>" + v.orgName + "</option>" | ||
296 | + }); | ||
297 | + $('#slt-emergency-org').html(options); | ||
298 | + form.render(); | ||
299 | + }); | ||
300 | + //绑定业务下拉选择数据 | ||
301 | + common.bizTypeSelect("slt-emergency-biz", function () { | ||
302 | + form.render("select"); | ||
303 | + }); | ||
304 | + admin.req({ | ||
305 | + url: domainName + '/api-web/bWorkreportGroup/findManufacturerList' | ||
306 | + }).done(function (response) { | ||
307 | + var options = "<option value=''>=运维单位=</option>"; | ||
308 | + $.each(response.data, function (i, v) { | ||
309 | + options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>" | ||
310 | + }); | ||
311 | + options += "<option value='0'>其他</option>"; | ||
312 | + $('#slt-emergency-group').html(options); | ||
313 | + form.render(); | ||
314 | + }); | ||
315 | + } | ||
316 | + | ||
317 | + $("#emergency-export-excel").on('click', function () { | ||
318 | + | ||
319 | + let href = ''; | ||
320 | + | ||
321 | + if (currSelect == 0) { | ||
322 | + href = common.domainName + '/api-web/emergency/export?docType=0&accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000'; | ||
323 | + } else if (currSelect == 1) { | ||
324 | + href = common.domainName + '/api-web/emergency/export?docType=1&accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000'; | ||
325 | + } | ||
326 | + window.open(href) | ||
327 | + }) | ||
328 | + | ||
329 | + | ||
330 | + // 按系统统计演练 | ||
331 | + function loademergencyChart() { | ||
332 | + var conditions = {}; | ||
333 | + Object.assign(conditions, {accessToken: accessToken, createtime: createTime, viewMode: ''}); | ||
334 | + admin.req({ | ||
335 | + url: domainName + '/api-web/emergency/findBEmergencyRecordsForGroup', | ||
336 | + data: conditions | ||
337 | + }).done(function (response) { | ||
338 | + var chartData = response.map; | ||
339 | + var groupList = chartData.groupList; | ||
340 | + var planList = chartData.planList; | ||
341 | + var reportList = chartData.reportList; | ||
342 | + var totalList = chartData.totalList; | ||
343 | + var xData = []; | ||
344 | + var groupData = []; | ||
345 | + $.each(groupList, function (i, v) { | ||
346 | + xData.push(v); | ||
347 | + groupData.push({ | ||
348 | + name: v, | ||
349 | + value: 1 | ||
350 | + }); | ||
351 | + }); | ||
352 | + var series = [{ | ||
353 | + | ||
354 | + name: '应急预案', | ||
355 | + data: planList, | ||
356 | + barWidth: 20, | ||
357 | + type: 'bar', | ||
358 | + stack: 'alarm', | ||
359 | + emphasis: { | ||
360 | + focus: 'series' | ||
361 | + }, | ||
362 | + itemStyle: { | ||
363 | + color: "#1e9fff" | ||
364 | + } | ||
365 | + }, { | ||
366 | + name: '演练报告', | ||
367 | + data: reportList, | ||
368 | + barWidth: 20, | ||
369 | + type: 'bar', | ||
370 | + stack: 'alarm', | ||
371 | + emphasis: { | ||
372 | + focus: 'series' | ||
373 | + }, | ||
374 | + itemStyle: { | ||
375 | + color: "#FF7E00" | ||
376 | + }, | ||
377 | + label: { | ||
378 | + show: true, | ||
379 | + position: 'top', | ||
380 | + textStyle: { | ||
381 | + color: '#555' | ||
382 | + }, | ||
383 | + formatter: function (data) { | ||
384 | + return totalList[data.dataIndex] | ||
385 | + } | ||
386 | + } | ||
387 | + | ||
388 | + }]; | ||
389 | + /** | ||
390 | + 双X轴标签对应,伪实现思路: | ||
391 | + 底部的标签也是柱状图,对应包含的区域为上方X轴条数占总数的比例,设为宽度即可 | ||
392 | + */ | ||
393 | + var option = { | ||
394 | + title: { | ||
395 | + text: '应急预案和演练报告图示', | ||
396 | + textStyle: { | ||
397 | + color: '#00D81E06', | ||
398 | + fontSize: 5 | ||
399 | + } | ||
400 | + }, | ||
401 | + tooltip: { | ||
402 | + trigger: 'axis', | ||
403 | + axisPointer: { | ||
404 | + type: 'shadow' | ||
405 | + } | ||
406 | + }, | ||
407 | + toolbox: { | ||
408 | + show: true, | ||
409 | + feature: { | ||
410 | + saveAsImage: {} | ||
411 | + }, | ||
412 | + right: 10 | ||
413 | + }, | ||
414 | + legend: { | ||
415 | + data: ['应急预案', '演练报告'], | ||
416 | + selectedMode: false | ||
417 | + }, | ||
418 | + grid: [{ | ||
419 | + top: 40, | ||
420 | + bottom: 70, | ||
421 | + left: 50, | ||
422 | + right: 5 | ||
423 | + }], | ||
424 | + xAxis: [{ | ||
425 | + type: 'category', | ||
426 | + data: xData, | ||
427 | + axisLabel: { | ||
428 | + color: '#333', | ||
429 | + show: true, | ||
430 | + interval: 0, | ||
431 | + rotate: 15 | ||
432 | + }, | ||
433 | + axisLine: { | ||
434 | + lineStyle: { | ||
435 | + color: '#e7e7e7' | ||
436 | + } | ||
437 | + }, | ||
438 | + axisTick: { | ||
439 | + lineStyle: { | ||
440 | + color: '#e7e7e7' | ||
441 | + } | ||
442 | + }, | ||
443 | + zlevel: 1 | ||
444 | + }], | ||
445 | + yAxis: [{ | ||
446 | + type: 'value', | ||
447 | + gridIndex: 0, | ||
448 | + axisLabel: { | ||
449 | + color: '#333' | ||
450 | + }, | ||
451 | + splitLine: { | ||
452 | + lineStyle: { | ||
453 | + type: 'dashed' | ||
454 | + } | ||
455 | + }, | ||
456 | + axisLine: { | ||
457 | + lineStyle: { | ||
458 | + color: '#ccc' | ||
459 | + } | ||
460 | + }, | ||
461 | + axisTick: { | ||
462 | + lineStyle: { | ||
463 | + color: '#ccc' | ||
464 | + } | ||
465 | + } | ||
466 | + }], | ||
467 | + series: series | ||
468 | + }; | ||
469 | + timeChart.setOption(option) | ||
470 | + }); | ||
471 | + } | ||
472 | + | ||
473 | + | ||
474 | + // 图表,表格重新加载 | ||
475 | + function reloadAllChange() { | ||
476 | + renderEmergencyPlanListTable(); | ||
477 | + renderEmergencyReportListTable() | ||
478 | + loademergencyChart(); | ||
479 | + loadConditionSelect() | ||
480 | + } | ||
481 | + }); | ||
482 | +}); |
1 | + | ||
2 | +layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect', 'laydate', 'upload'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var form = layui.form; | ||
5 | + var layer = layui.layer; | ||
6 | + var admin = layui.admin; | ||
7 | + var table = layui.table; | ||
8 | + var common = layui.common; | ||
9 | + var session = layui.sessions; | ||
10 | + var laydate = layui.laydate; | ||
11 | + var upload = layui.upload; | ||
12 | + var domainName = common.domainName; | ||
13 | + var xmSelect = layui.xmSelect; | ||
14 | + | ||
15 | + //对外暴露的接口 | ||
16 | + exports('emergencyAdd', function (data) { | ||
17 | + var accessToken = localStorage.getItem("accessToken"); | ||
18 | + var userSelect = ""; | ||
19 | + var currentDate = {} | ||
20 | + var hitDate = {} | ||
21 | + var uploadInst = {} | ||
22 | + var aAcknowledgingDate = {} | ||
23 | + var bAcknowledgingDate = {} | ||
24 | + var defaultUser = [] | ||
25 | + var attachmentIds = [] | ||
26 | + var id = data.id | ||
27 | + var cols = [] | ||
28 | + var where = {} | ||
29 | + var currentResourceType = '' | ||
30 | + var resTypeSele | ||
31 | + | ||
32 | + | ||
33 | + var viewType = data && data.viewType ? data.viewType : ''; | ||
34 | + | ||
35 | + //渲染表单 | ||
36 | + form.render(null, 'add-emergency-form') | ||
37 | + $("#period").hide(); | ||
38 | + searchEvent(); | ||
39 | + init() | ||
40 | + function searchEvent(){ | ||
41 | + //通知类型 | ||
42 | + form.on('radio(docType)', function (data) { | ||
43 | + if(data.value == '1'){ | ||
44 | + $("#period").show(); | ||
45 | + $("#backDiv").show(); | ||
46 | + $("#resultDiv").show(); | ||
47 | + | ||
48 | + | ||
49 | + }else{ | ||
50 | + $("#period").hide(); | ||
51 | + $("#backDiv").hide(); | ||
52 | + $("#resultDiv").hide(); | ||
53 | + $("#unitadjustperiod").val(""); | ||
54 | + $("#backProject").val(""); | ||
55 | + $("#resultDesc").val(""); | ||
56 | + } | ||
57 | + }); | ||
58 | + } | ||
59 | + //通知类型 | ||
60 | + form.on('radio(docType)', function (data) { | ||
61 | + if(data.value == '1'){ | ||
62 | + $("#period").show(); | ||
63 | + $("#backDiv").show(); | ||
64 | + $("#resultDiv").show(); | ||
65 | + | ||
66 | + }else{ | ||
67 | + $("#period").hide(); | ||
68 | + $("#backDiv").hide(); | ||
69 | + $("#resultDiv").hide(); | ||
70 | + $("#unitadjustperiod").val(""); | ||
71 | + $("#backProject").val(""); | ||
72 | + $("#resultDesc").val(""); | ||
73 | + } | ||
74 | + checkDocTypeIsReport(data.value) | ||
75 | + }); | ||
76 | + //保存 | ||
77 | + form.on('submit(emergency-form-save-id)', function (res) { | ||
78 | + var value = $('#attachmentInput').val() | ||
79 | + if (value != '') { | ||
80 | + $('#upload_btn').click() | ||
81 | + } else { | ||
82 | + saveForm() | ||
83 | + } | ||
84 | + }) | ||
85 | + | ||
86 | + //保存 | ||
87 | + function saveForm() { | ||
88 | + layer.load(2) | ||
89 | + var data = form.val('add-emergency-form'); | ||
90 | + var params = {} | ||
91 | + params.attachmentIds = attachmentIds.toString() | ||
92 | + delete data['file'] | ||
93 | + delete data['select'] | ||
94 | + params.emergency = JSON.stringify(data) | ||
95 | + admin.req({ | ||
96 | + url: domainName + '/api-web/emergency/save?accessToken=' + accessToken, | ||
97 | + data: JSON.stringify(params), | ||
98 | + type: 'post', | ||
99 | + contentType: "application/json; charset=utf-8", | ||
100 | + done: function (res) { | ||
101 | + if (res.success) { | ||
102 | + layer.msg(res.msg, { | ||
103 | + offset: '15px', | ||
104 | + icon: 1, | ||
105 | + time: 1000, | ||
106 | + }, function () { | ||
107 | + $("#attachment").removeAttr("disabled"); | ||
108 | + layer.closeAll() | ||
109 | + table.reload('emergencyPlan_table_id', { | ||
110 | + where: { | ||
111 | + accessToken: accessToken, | ||
112 | + createtime: "month", | ||
113 | + viewMode: 'true', | ||
114 | + dateLimit: "" | ||
115 | + }, | ||
116 | + }); | ||
117 | + table.reload('emergencyReport-table', { | ||
118 | + where: { | ||
119 | + accessToken: accessToken, | ||
120 | + createtime: "month", | ||
121 | + viewMode: 'true', | ||
122 | + dateLimit: "" | ||
123 | + }, | ||
124 | + }); | ||
125 | + }) | ||
126 | + } else { | ||
127 | + layer.msg(res.msg, { | ||
128 | + offset: '15px', | ||
129 | + icon: 7, | ||
130 | + time: 1000, | ||
131 | + }) | ||
132 | + } | ||
133 | + } | ||
134 | + }) | ||
135 | + return false | ||
136 | + } | ||
137 | + function checkDocTypeIsReport(data) { | ||
138 | + var docType = ""; | ||
139 | + if(data) { | ||
140 | + docType = data; | ||
141 | + } | ||
142 | + if(docType == '1'){ | ||
143 | + return 'required'; | ||
144 | + }else { | ||
145 | + return ''; | ||
146 | + } | ||
147 | + } | ||
148 | + //页面初始化 | ||
149 | + function init() { | ||
150 | + loadSelect() | ||
151 | + initDatePlus() | ||
152 | + initUploadPlus() | ||
153 | + | ||
154 | + | ||
155 | + if (viewType == 'view') { | ||
156 | + initViewMode(); | ||
157 | + } | ||
158 | + } | ||
159 | + | ||
160 | + // 初始化下拉框 | ||
161 | + function loadSelect() { | ||
162 | + admin.req({ | ||
163 | + url: domainName + '/mj/sysOrg/page?orgType=1' | ||
164 | + }).done(function (response) { | ||
165 | + var options = "<option value=''>=所属处室=</option>"; | ||
166 | + $.each(response.data.rows, function (i, v) { | ||
167 | + | ||
168 | + options += "<option value='" + v.orgCode + "'>" + v.orgName + "</option>" | ||
169 | + }); | ||
170 | + $('#slt-emergencyAdd-org').html(options); | ||
171 | + form.render(); | ||
172 | + }); | ||
173 | + //绑定业务下拉选择数据 | ||
174 | + common.bizTypeSelect("slt-biz-add", function () { | ||
175 | + form.render("select"); | ||
176 | + fromAssignment() | ||
177 | + }); | ||
178 | + admin.req({ | ||
179 | + url: domainName + '/api-web/bWorkreportGroup/findManufacturerList' | ||
180 | + }).done(function (response) { | ||
181 | + var options = "<option value=''>=运维公司=</option>"; | ||
182 | + $.each(response.data, function (i, v) { | ||
183 | + options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>" | ||
184 | + }); | ||
185 | + options += "<option value='0'>其他</option>"; | ||
186 | + $('#slt-emergencyadd-group').html(options); | ||
187 | + form.render(); | ||
188 | + //fromAssignment(); | ||
189 | + }); | ||
190 | + | ||
191 | + } | ||
192 | + | ||
193 | + | ||
194 | + //初始化日期插件 | ||
195 | + function initDatePlus() { | ||
196 | + currentDate = laydate.render({ | ||
197 | + elem: '#applyTime', //指定元素 | ||
198 | + value: new Date(), | ||
199 | + type: 'datetime', | ||
200 | + isInitValue: true, | ||
201 | + }); | ||
202 | + aAcknowledgingDate = laydate.render({ | ||
203 | + elem: '#aAcknowledgingTime', //指定元素 | ||
204 | + value: new Date(), | ||
205 | + type: 'datetime', | ||
206 | + isInitValue: true, | ||
207 | + }); | ||
208 | + bAcknowledgingDate = laydate.render({ | ||
209 | + elem: '#bAcknowledgingTime', //指定元素 | ||
210 | + value: new Date(), | ||
211 | + type: 'datetime', | ||
212 | + isInitValue: true, | ||
213 | + }); | ||
214 | + laydate.render({ | ||
215 | + elem: '#unitadjustperiod' | ||
216 | + , range: '~', | ||
217 | + type: 'datetime', | ||
218 | + trigger: 'click', | ||
219 | + ready: function (date) { | ||
220 | + $("#unitadjustperiod").removeAttr("lay-key"); | ||
221 | + $(this).attr("lay-key", "1"); | ||
222 | + }, | ||
223 | + done: function (value) { | ||
224 | + $("#unitadjustperiod").val(value); | ||
225 | + } | ||
226 | + }); | ||
227 | + } | ||
228 | + | ||
229 | + //初始化上传插件 | ||
230 | + function initUploadPlus() { | ||
231 | + var param = {"accessToken": accessToken} | ||
232 | + var fileName = [] | ||
233 | + uploadInst = upload.render({ | ||
234 | + elem: '#attachment', //绑定元素 | ||
235 | + url: common.domainName + '/api-web/emergency/upload?accessToken='+accessToken, | ||
236 | + data: param, | ||
237 | + multiple: true, | ||
238 | + auto: false, //选择文件后不自动上传 | ||
239 | + bindAction: '#upload_btn',//指定按钮触发上传 | ||
240 | + accept: 'file', | ||
241 | + exts: 'xls|doc|pdf|docx|xlsx|jpg|png', | ||
242 | + choose: function (obj) { | ||
243 | + //选择文件后回调 | ||
244 | + var files = this.files = obj.pushFile(); | ||
245 | + if(typeof(files)!=undefined){ | ||
246 | + if(Object.getOwnPropertyNames(files).length>2){ | ||
247 | + $("#attachment").attr("disabled","disabled"); | ||
248 | + layer.msg('目前最多支持上传三个文件!', { | ||
249 | + icon: 7, time: 3000 | ||
250 | + }); | ||
251 | + } | ||
252 | + } | ||
253 | + obj.preview(function (index, file, result) { | ||
254 | + fileName.push(file.name) | ||
255 | + $('#attachmentInput').val(fileName.toString()) | ||
256 | + }) | ||
257 | + }, | ||
258 | + done: function (res) { | ||
259 | + //单次上传成功 | ||
260 | + attachmentIds.push(res.str) | ||
261 | + }, | ||
262 | + allDone: function (obj) { | ||
263 | + //全部上传成功后 | ||
264 | + saveForm() | ||
265 | + }, | ||
266 | + error: function (index, upload) { | ||
267 | + // 上传失败 | ||
268 | + layer.msg('文件上传时发生故障,请稍后再试!', { | ||
269 | + icon: 7, time: 3000 | ||
270 | + }); | ||
271 | + } | ||
272 | + }); | ||
273 | + } | ||
274 | + | ||
275 | + | ||
276 | + // 初始化查看模式 | ||
277 | + function initViewMode() { | ||
278 | + $('form[lay-filter="add-emergency-form"]').find('input, textarea').attr('readonly', true); | ||
279 | + $('form[lay-filter="add-emergency-form"]').find('select').attr('disabled', true); | ||
280 | + $.each(xmSelect.get(), function (i, v) { | ||
281 | + v.update({disabled: true}); | ||
282 | + }); | ||
283 | + $('#attachmentInput').parent().parent().parent().addClass('hide'); | ||
284 | + $('#table-emergency-add-attachment').removeClass('hide'); | ||
285 | + //渲染附件表格 | ||
286 | + var attachmentTable = table.render({ | ||
287 | + elem: '#table-emergency-add-attachment', | ||
288 | + url: domainName + '/api-web/emergency/getAttaById', | ||
289 | + where: { | ||
290 | + accessToken: accessToken, | ||
291 | + id: data.id | ||
292 | + }, | ||
293 | + height: 'full', | ||
294 | + page: { | ||
295 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] | ||
296 | + , theme: '#1E9FFF'//自定义分页主题颜色 | ||
297 | + }, | ||
298 | + end: function (e) { | ||
299 | + form.render() | ||
300 | + }, | ||
301 | + limit: common.limit, | ||
302 | + limits: common.limits, | ||
303 | + even: true, | ||
304 | + cols: [[ | ||
305 | + {type: 'numbers', title: '序号'}, | ||
306 | + { | ||
307 | + field: 'name', title: '文件名称', align: 'center', minWith: 200, | ||
308 | + }, | ||
309 | + { | ||
310 | + field: 'suffix', title: '文件后缀', align: 'center', minWith: 150, | ||
311 | + }, | ||
312 | + { | ||
313 | + field: 'size', title: '文件大小', align: 'center', minWith: 150, | ||
314 | + templet: function (d) { | ||
315 | + var str = (d.size / 1000).toFixed(2) | ||
316 | + return `<div><span>${str}KB</span></div>` | ||
317 | + } | ||
318 | + }, | ||
319 | + { | ||
320 | + title: '操作', align: "center", width: 120, | ||
321 | + templet: '<div><span data-id="{{d.id}}" data-suffix="{{d.suffix}}" data-path = "{{d.path}}" class="layui-table-link preview-attachment-btn">预览</span></div>' | ||
322 | + } | ||
323 | + ]], | ||
324 | + done: function () { | ||
325 | + $('.preview-attachment-btn').on('click', function () { | ||
326 | + var id = $(this).data('id') | ||
327 | + var suffix = $(this).data('suffix') | ||
328 | + var filepath = $(this).data('path') | ||
329 | + if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型 | ||
330 | + var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?accessToken=` + accessToken | ||
331 | + layer.open({ | ||
332 | + type: 1, | ||
333 | + content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`, | ||
334 | + title: '图片预览', | ||
335 | + area: ['60%', '90%'] | ||
336 | + }) | ||
337 | + } else { | ||
338 | + //附件为文档类型 | ||
339 | + common.fileviewer(filepath) | ||
340 | + } | ||
341 | + }) | ||
342 | + } | ||
343 | + }) | ||
344 | + form.render(); | ||
345 | + } | ||
346 | + | ||
347 | + //表单赋值 | ||
348 | + function fromAssignment() { | ||
349 | + | ||
350 | + if (data && data.id) { | ||
351 | + var loading =layer.load(2) | ||
352 | + $('#add-emergency-form-atta').show() | ||
353 | + | ||
354 | + | ||
355 | + //编辑表单时禁用日志类型修改和时间选择 | ||
356 | + // $('#add-repair-form').find("select[name='hitchtime']").attr("disabled", "disabled") | ||
357 | + // $('#add-repair-form').find("input[name='createtime']").attr("disabled", "disabled") | ||
358 | + //编辑表单时取消显示默认值 | ||
359 | + currentDate.config.isInitValue = false | ||
360 | + initDatePlus() | ||
361 | + admin.req({ | ||
362 | + url: domainName + `/api-web/emergency/findBEmergencyRecordByRecordId`, | ||
363 | + data: {recordId: data.id}, | ||
364 | + async: false, | ||
365 | + }).done(function (res) { | ||
366 | + layer.close(loading) | ||
367 | + form.val('add-emergency-form', res.object); | ||
368 | + if (res.object.attachmentList) { | ||
369 | + $.each(res.object.attachmentList, function (i, v) { | ||
370 | + writeTagsInfo(v.id, v.originalName) | ||
371 | + }) | ||
372 | + } | ||
373 | + if(res.object.docType== '1'){ | ||
374 | + $("#period").show(); | ||
375 | + $("#backDiv").show(); | ||
376 | + $("#resultDiv").show(); | ||
377 | + } | ||
378 | + $("input[type='radio'][name='docType'][value = '"+res.object.docType+"']").attr("checked",true); | ||
379 | + | ||
380 | + $("input[type='radio'][name='docType']").attr('disabled','disabled'); | ||
381 | + | ||
382 | + }) | ||
383 | + }else{ | ||
384 | + $("input[type='radio'][name='docType']").removeAttr('disabled'); | ||
385 | + } | ||
386 | + } | ||
387 | + | ||
388 | + //写入标签内容 | ||
389 | + function writeTagsInfo(id, name) { | ||
390 | + var tags = '<span id="tags_span_' + id + '" data-id="' + id + '"><em>' + name + '</em>' + | ||
391 | + '<button type="button" value="' + id + '" class="tagsclose">×</button></span>'; | ||
392 | + if ($("#tags_span_" + id).length == 0) { | ||
393 | + //拼接标签 | ||
394 | + $("#selecte_content_id").append(tags); | ||
395 | + //绑定标签的删除事件 | ||
396 | + bindTagesDelEvent(); | ||
397 | + } | ||
398 | + } | ||
399 | + | ||
400 | + //删除标签事件 | ||
401 | + function bindTagesDelEvent() { | ||
402 | + //删除已选主体的页签 | ||
403 | + $("button.tagsclose").on("click", function () { | ||
404 | + var attachId = $(this).attr("value"); | ||
405 | + //确认提示框 | ||
406 | + layer.confirm('附件删除后将无法恢复,您确定要删除吗?', { | ||
407 | + btn: ['确定', '取消'] //按钮 | ||
408 | + }, function () { | ||
409 | + $.ajax({ | ||
410 | + url: domainName + `/api-web/workreport/deleteAttachment/${id}/${attachId}?accessToken=` + accessToken, | ||
411 | + type: "get", | ||
412 | + }).done(function (res) { | ||
413 | + layer.msg('删除成功', { | ||
414 | + offset: '15px' | ||
415 | + , icon: 1 | ||
416 | + , time: 1000 | ||
417 | + }, function () { | ||
418 | + $("#tags_span_" + attachId).remove(); | ||
419 | + }); | ||
420 | + }).error(function (error) { | ||
421 | + console.log(error); | ||
422 | + }); | ||
423 | + }); | ||
424 | + }); | ||
425 | + } | ||
426 | + }) | ||
427 | +}) |
1 | + | ||
2 | +layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions'], function (exports) { | ||
3 | + var $ = layui.$; | ||
4 | + var form = layui.form; | ||
5 | + var layer = layui.layer; | ||
6 | + var admin = layui.admin; | ||
7 | + var table = layui.table; | ||
8 | + var common = layui.common; | ||
9 | + var session = layui.sessions | ||
10 | + var domainName = common.domainName; | ||
11 | + | ||
12 | + //对外暴露的接口 | ||
13 | + exports("emergencyList", function (d) { | ||
14 | + var accessToken = localStorage.getItem("accessToken"); | ||
15 | + if (d.type == 'attachment') { | ||
16 | + $('#attachmentTable').show() | ||
17 | + | ||
18 | + createAttachmentTable() | ||
19 | + } | ||
20 | + | ||
21 | + | ||
22 | + //渲染附件表格 | ||
23 | + function createAttachmentTable() { | ||
24 | + var attachmentTable = table.render({ | ||
25 | + elem: '#attachmentTable', | ||
26 | + url: domainName + '/api-web/emergency/getAttaById', | ||
27 | + where: { | ||
28 | + accessToken: accessToken, | ||
29 | + id: d.id | ||
30 | + }, | ||
31 | + height: 'full', | ||
32 | + page: { | ||
33 | + layout: ['count', 'prev', 'page', 'next', 'limit', 'skip'] | ||
34 | + , theme: '#1E9FFF'//自定义分页主题颜色 | ||
35 | + }, | ||
36 | + end: function (e) { | ||
37 | + form.render() | ||
38 | + }, | ||
39 | + limit: common.limit, | ||
40 | + limits: common.limits, | ||
41 | + even: true, | ||
42 | + cols: [[ | ||
43 | + {type: 'numbers', title: '序号'}, | ||
44 | + { | ||
45 | + field: 'name', title: '文件名称', align: 'center', minWith: 200, | ||
46 | + }, { | ||
47 | + field: 'originalName', title: '原始名称', align: 'center', minWith: 200, | ||
48 | + }, { | ||
49 | + field: 'suffix', title: '文件后缀', align: 'center', minWith: 150, | ||
50 | + }, | ||
51 | + { | ||
52 | + field: 'size', title: '文件大小', align: 'center', minWith: 150, | ||
53 | + templet: function (d) { | ||
54 | + var str = (d.size / 1000).toFixed(2) | ||
55 | + return `<div><span>${str}KB</span></div>` | ||
56 | + } | ||
57 | + }, | ||
58 | + { | ||
59 | + title: '操作', align: "center", width: 120, | ||
60 | + templet: '<div><span data-id="{{d.id}}" data-suffix="{{d.suffix}}" data-path="{{d.path}}" class="layui-table-link preview-attachment-btn">预览</span>' + | ||
61 | + '<span data-id="{{d.id}}" data-suffix="{{d.suffix}}" class="layui-table-link attachment-download-btn" style="margin-left: 10px">下载</span></div>' | ||
62 | + } | ||
63 | + ]], | ||
64 | + done: function () { | ||
65 | + $('.preview-attachment-btn').on('click', function () { | ||
66 | + var id = $(this).data('id') | ||
67 | + var suffix = $(this).data('suffix') | ||
68 | + var filepath = $(this).data('path') | ||
69 | + if (suffix == 'jpg' || suffix == 'png' || suffix == 'JPG' || suffix == 'PNG') { //图片类型 | ||
70 | + var srcUrl = domainName + `/api-web/openoffice/readImage/${id}?accessToken=` + accessToken | ||
71 | + layer.open({ | ||
72 | + type: 1, | ||
73 | + content: `<div><img src="${srcUrl}" width="100%" height="100%" /></div>`, | ||
74 | + title: '图片预览', | ||
75 | + area: ['60%', '90%'] | ||
76 | + }) | ||
77 | + } else { | ||
78 | + //附件为文档类型 | ||
79 | + common.fileviewer(filepath) | ||
80 | + } | ||
81 | + }) | ||
82 | + | ||
83 | + $('.attachment-download-btn').on('click',function () { | ||
84 | + var id = $(this).data('id') | ||
85 | + var suffix = $(this).data('suffix') | ||
86 | + var url = domainName + `/api-web/openoffice/download/${id}?accessToken=` + accessToken | ||
87 | + window.open(url) | ||
88 | + }) | ||
89 | + } | ||
90 | + }) | ||
91 | + } | ||
92 | + | ||
93 | + }) | ||
94 | +}) |
@@ -9,8 +9,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -9,8 +9,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
9 | var element = layui.element; | 9 | var element = layui.element; |
10 | 10 | ||
11 | exports('enterDevice', function () { | 11 | exports('enterDevice', function () { |
12 | - var sessions = layui.sessions; | ||
13 | - var accessToken = sessions.getToken().access_token; | 12 | + var accessToken = localStorage.getItem("accessToken"); |
14 | var domainName = common.domainName; | 13 | var domainName = common.domainName; |
15 | var timeChart = echarts.init(document.getElementById('device-chart-time-record')); | 14 | var timeChart = echarts.init(document.getElementById('device-chart-time-record')); |
16 | var inspIsLoad = false; | 15 | var inspIsLoad = false; |
@@ -23,11 +22,11 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -23,11 +22,11 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
23 | //日期范围选择 | 22 | //日期范围选择 |
24 | laydate.render({ | 23 | laydate.render({ |
25 | elem: '#devicedateLimit' | 24 | elem: '#devicedateLimit' |
26 | - , range: '~', | 25 | + ,range: '~', |
27 | trigger: 'click', | 26 | trigger: 'click', |
28 | - ready: function (date) { | 27 | + ready: function(date){ |
29 | $("#devicedateLimit").removeAttr("lay-key"); | 28 | $("#devicedateLimit").removeAttr("lay-key"); |
30 | - $(this).attr("lay-key", "1"); | 29 | + $(this).attr("lay-key","1"); |
31 | }, | 30 | }, |
32 | done: function (value) { | 31 | done: function (value) { |
33 | dateLimit = value | 32 | dateLimit = value |
@@ -77,14 +76,14 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -77,14 +76,14 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
77 | }); | 76 | }); |
78 | 77 | ||
79 | // 回车搜索 | 78 | // 回车搜索 |
80 | - $('[lay-filter="form-enterDevice-condition"] input').keydown(function (e) { | 79 | + $('[lay-filter="form-enterStaff-condition"] input').keydown(function (e) { |
81 | if (e.keyCode === 13) { | 80 | if (e.keyCode === 13) { |
82 | reloadAllChange(); | 81 | reloadAllChange(); |
83 | } | 82 | } |
84 | }); | 83 | }); |
85 | 84 | ||
86 | // 下拉框改变搜索 | 85 | // 下拉框改变搜索 |
87 | - form.on('select(slt-device-group)', reloadAllChange); | 86 | + form.on('select(slt-staff-group)', reloadAllChange); |
88 | 87 | ||
89 | // tab页切换事件 | 88 | // tab页切换事件 |
90 | element.on('tab(enterdevice-tab)', function (data) { | 89 | element.on('tab(enterdevice-tab)', function (data) { |
@@ -101,20 +100,19 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -101,20 +100,19 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
101 | } | 100 | } |
102 | currSelect = data.index; | 101 | currSelect = data.index; |
103 | }); | 102 | }); |
104 | - | ||
105 | // 加载配件更换表格 | 103 | // 加载配件更换表格 |
106 | function renderEnterDeviceListTable() { | 104 | function renderEnterDeviceListTable() { |
107 | - var conditions = form.val('form-enterDevice-condition'); | 105 | + var conditions = form.val('form-enterStaff-condition'); |
108 | 106 | ||
109 | Object.assign(conditions, { | 107 | Object.assign(conditions, { |
110 | - access_token: accessToken, | 108 | + accessToken: accessToken, |
111 | createtime: createTime, | 109 | createtime: createTime, |
112 | viewMode: 'true', | 110 | viewMode: 'true', |
113 | dateLimit: dateLimit | 111 | dateLimit: dateLimit |
114 | }); | 112 | }); |
115 | table.render({ | 113 | table.render({ |
116 | elem: '#enterdevice_table_id', | 114 | elem: '#enterdevice_table_id', |
117 | - url: domainName + '/api-room/machineRoom/findMachineRoomEnterDeviceRecords?docType=1', | 115 | + url: domainName + '/api-web/machineRoom/findMachineRoomEnterDeviceRecords?docType=1', |
118 | where: conditions, | 116 | where: conditions, |
119 | height: 'full-360', | 117 | height: 'full-360', |
120 | page: { | 118 | page: { |
@@ -127,13 +125,13 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -127,13 +125,13 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
127 | limit: common.limit, | 125 | limit: common.limit, |
128 | limits: common.limits, | 126 | limits: common.limits, |
129 | even: true, | 127 | even: true, |
130 | - cols: [[{ | 128 | + cols: [[ {type: 'checkbox'},{ |
131 | field: 'machineRoomName', title: '机房', align: 'center', | 129 | field: 'machineRoomName', title: '机房', align: 'center', |
132 | }, { | 130 | }, { |
133 | - field: 'manufacturerName', title: '工作单位', align: 'center', templet: function (d) { | ||
134 | - if (d.manufacturerId == '0') { | 131 | + field: 'manufacturerName', title: '工作单位', align: 'center',templet: function (d) { |
132 | + if(d.manufacturerId == '0'){ | ||
135 | return d.manufacturerOther; | 133 | return d.manufacturerOther; |
136 | - } else { | 134 | + }else { |
137 | return d.manufacturerName; | 135 | return d.manufacturerName; |
138 | } | 136 | } |
139 | } | 137 | } |
@@ -192,20 +190,19 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -192,20 +190,19 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
192 | } | 190 | } |
193 | }); | 191 | }); |
194 | } | 192 | } |
195 | - | ||
196 | // 加载设备出入表格 | 193 | // 加载设备出入表格 |
197 | function renderFittingFixListTable() { | 194 | function renderFittingFixListTable() { |
198 | - var conditions = form.val('form-enterDevice-condition'); | 195 | + var conditions = form.val('form-enterStaff-condition'); |
199 | 196 | ||
200 | Object.assign(conditions, { | 197 | Object.assign(conditions, { |
201 | - access_token: accessToken, | 198 | + accessToken: accessToken, |
202 | createtime: createTime, | 199 | createtime: createTime, |
203 | viewMode: 'true', | 200 | viewMode: 'true', |
204 | dateLimit: dateLimit | 201 | dateLimit: dateLimit |
205 | }); | 202 | }); |
206 | table.render({ | 203 | table.render({ |
207 | elem: '#fitting-table', | 204 | elem: '#fitting-table', |
208 | - url: domainName + '/api-room/machineRoom/findMachineRoomEnterDeviceRecords?docType=2', | 205 | + url: domainName + '/api-web/machineRoom/findMachineRoomEnterDeviceRecords?docType=2', |
209 | where: conditions, | 206 | where: conditions, |
210 | height: 'full-360', | 207 | height: 'full-360', |
211 | page: { | 208 | page: { |
@@ -218,13 +215,13 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -218,13 +215,13 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
218 | limit: common.limit, | 215 | limit: common.limit, |
219 | limits: common.limits, | 216 | limits: common.limits, |
220 | even: true, | 217 | even: true, |
221 | - cols: [[{ | 218 | + cols: [[ {type: 'checkbox'},{ |
222 | field: 'machineRoomName', title: '机房', align: 'center', | 219 | field: 'machineRoomName', title: '机房', align: 'center', |
223 | }, { | 220 | }, { |
224 | - field: 'manufacturerName', title: '工作单位', align: 'center', templet: function (d) { | ||
225 | - if (d.manufacturerId == '0') { | 221 | + field: 'manufacturerName', title: '工作单位', align: 'center',templet: function (d) { |
222 | + if(d.manufacturerId == '0'){ | ||
226 | return d.manufacturerOther; | 223 | return d.manufacturerOther; |
227 | - } else { | 224 | + }else { |
228 | return d.manufacturerName; | 225 | return d.manufacturerName; |
229 | } | 226 | } |
230 | } | 227 | } |
@@ -251,7 +248,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -251,7 +248,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
251 | {{actionTypeStr}} | 248 | {{actionTypeStr}} |
252 | </div> | 249 | </div> |
253 | ` | 250 | ` |
254 | - }, { | 251 | + }, { |
255 | field: 'deviceModel', title: '设备型号', align: 'center', | 252 | field: 'deviceModel', title: '设备型号', align: 'center', |
256 | }, { | 253 | }, { |
257 | field: 'localPlace', title: '设备物理位置', align: 'center', | 254 | field: 'localPlace', title: '设备物理位置', align: 'center', |
@@ -283,7 +280,6 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -283,7 +280,6 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
283 | } | 280 | } |
284 | }); | 281 | }); |
285 | } | 282 | } |
286 | - | ||
287 | //新增日报 | 283 | //新增日报 |
288 | $('#device_create').on('click', function () { | 284 | $('#device_create').on('click', function () { |
289 | openDeviceForm() | 285 | openDeviceForm() |
@@ -294,7 +290,6 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -294,7 +290,6 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
294 | var title = id ? '编辑' : '新增' | 290 | var title = id ? '编辑' : '新增' |
295 | common.openWin('machineroom/deviceAdd', title, {id: id}, ['保存', '取消'], function f() { | 291 | common.openWin('machineroom/deviceAdd', title, {id: id}, ['保存', '取消'], function f() { |
296 | $("#device-form-save-id").trigger("click"); | 292 | $("#device-form-save-id").trigger("click"); |
297 | - }, null, null, function done() { | ||
298 | reloadAllChange(); | 293 | reloadAllChange(); |
299 | }) | 294 | }) |
300 | } | 295 | } |
@@ -304,15 +299,14 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -304,15 +299,14 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
304 | 299 | ||
305 | var title = '更换配件列表' | 300 | var title = '更换配件列表' |
306 | 301 | ||
307 | - common.openWin('machineroom/fittingList', title, {id: id}) | 302 | + common.openWin('machineroom/fittingList', title, {id: id}, ['确定', '取消']) |
308 | } | 303 | } |
309 | - | ||
310 | //查看进出设备列表 | 304 | //查看进出设备列表 |
311 | function openDeviceList(id) { | 305 | function openDeviceList(id) { |
312 | 306 | ||
313 | var title = '出入设备列表' | 307 | var title = '出入设备列表' |
314 | 308 | ||
315 | - common.openWin('machineroom/deviceList', title, {id: id}) | 309 | + common.openWin('machineroom/deviceList', title, {id: id}, ['确定', '取消']) |
316 | } | 310 | } |
317 | 311 | ||
318 | // 加载查询条件下拉框 | 312 | // 加载查询条件下拉框 |
@@ -324,18 +318,54 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -324,18 +318,54 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
324 | $.each(response.data, function (i, v) { | 318 | $.each(response.data, function (i, v) { |
325 | options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>" | 319 | options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>" |
326 | }); | 320 | }); |
327 | - $('#slt-device-group').html(options); | 321 | + options += "<option value='0'>其他</option>"; |
322 | + $('#slt-staff-group').html(options); | ||
328 | form.render(); | 323 | form.render(); |
329 | }); | 324 | }); |
330 | } | 325 | } |
331 | 326 | ||
327 | + $("#device-export-excel").on('click', function () { | ||
328 | + if (currSelect == 0) { | ||
329 | + var href = common.domainName + '/api-web/machineRoom/exportMachineRoomEnterDeviceRecords?docType=1&accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000'; | ||
330 | + } else if (currSelect == 1) { | ||
331 | + var href = common.domainName + '/api-web/machineRoom/exportMachineRoomEnterDeviceRecords?docType=2&accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000'; | ||
332 | + } | ||
333 | + window.open(href) | ||
334 | + }) | ||
335 | + //下载 | ||
336 | + $('#device_download').on('click', function (){ | ||
337 | + var data = []; | ||
338 | + var attachmentId =""; | ||
339 | + var docType = ""; | ||
340 | + if (currSelect == 0) { | ||
341 | + data = table.checkStatus('enterdevice_table_id').data; | ||
342 | + attachmentId = '2136d6a1709811edb49f005056aae0ca'; | ||
343 | + docType = '1'; | ||
344 | + }else if (currSelect == 1) { | ||
345 | + data = table.checkStatus('fitting-table').data; | ||
346 | + attachmentId = '713fc12f709811edb49f005056aae0ca'; | ||
347 | + docType = '2'; | ||
348 | + } | ||
349 | + var ids = ''; | ||
350 | + if(data.length<=0){ | ||
351 | + layer.msg("请至少选择一条下载", { offset: '15px' , icon: 7 , time: 1500 }); | ||
352 | + }else if(data.length>=1){ | ||
353 | + var arr = []; | ||
354 | + $.each(data,function (i,e) { | ||
355 | + arr.push(e.id) | ||
356 | + }) | ||
357 | + ids = arr.toString(); | ||
358 | + var url = domainName + `/api-web/machineRoom/downloadWordZipforDevice?accessToken=` + accessToken+"&ids="+ids+"&attachmentId="+ attachmentId+"&docType="+docType; | ||
359 | + window.open(url); | ||
360 | + } | ||
361 | + }) | ||
332 | 362 | ||
333 | // 各单位维修情况 | 363 | // 各单位维修情况 |
334 | function loadEnterDeviceChart() { | 364 | function loadEnterDeviceChart() { |
335 | var conditions = {}; | 365 | var conditions = {}; |
336 | - Object.assign(conditions, {access_token: accessToken, createtime: createTime, viewMode: ''}); | 366 | + Object.assign(conditions, {accessToken: accessToken, createtime: createTime, viewMode: ''}); |
337 | admin.req({ | 367 | admin.req({ |
338 | - url: domainName + '/api-room/machineRoom/findMachineRoomEnterDeviceRecordsForGroup', | 368 | + url: domainName + '/api-web/machineRoom/findMachineRoomEnterDeviceRecordsForGroup', |
339 | data: conditions | 369 | data: conditions |
340 | }).done(function (response) { | 370 | }).done(function (response) { |
341 | var chartData = response.map; | 371 | var chartData = response.map; |
@@ -365,7 +395,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -365,7 +395,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
365 | itemStyle: { | 395 | itemStyle: { |
366 | color: "#1e9fff" | 396 | color: "#1e9fff" |
367 | } | 397 | } |
368 | - }, { | 398 | + },{ |
369 | name: '配件更换', | 399 | name: '配件更换', |
370 | data: fittingList, | 400 | data: fittingList, |
371 | barWidth: 20, | 401 | barWidth: 20, |
@@ -430,8 +460,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -430,8 +460,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
430 | axisLabel: { | 460 | axisLabel: { |
431 | color: '#333', | 461 | color: '#333', |
432 | show: true, | 462 | show: true, |
433 | - interval: 0, | ||
434 | - rotate: 15 | 463 | + interval:0, |
464 | + rotate:15 | ||
435 | }, | 465 | }, |
436 | axisLine: { | 466 | axisLine: { |
437 | lineStyle: { | 467 | lineStyle: { |
@@ -481,4 +511,4 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -481,4 +511,4 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
481 | loadEnterDeviceChart(); | 511 | loadEnterDeviceChart(); |
482 | } | 512 | } |
483 | }); | 513 | }); |
484 | -}); | 514 | +}); |
@@ -9,8 +9,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -9,8 +9,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
9 | var element = layui.element; | 9 | var element = layui.element; |
10 | 10 | ||
11 | exports('enterStaff', function () { | 11 | exports('enterStaff', function () { |
12 | - var sessions = layui.sessions; | ||
13 | - var accessToken = sessions.getToken().access_token; | 12 | + var accessToken = localStorage.getItem("accessToken"); |
14 | var domainName = common.domainName; | 13 | var domainName = common.domainName; |
15 | var timeChart = echarts.init(document.getElementById('chart-time-record')); | 14 | var timeChart = echarts.init(document.getElementById('chart-time-record')); |
16 | 15 | ||
@@ -21,11 +20,11 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -21,11 +20,11 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
21 | //日期范围选择 | 20 | //日期范围选择 |
22 | laydate.render({ | 21 | laydate.render({ |
23 | elem: '#staffdateLimit' | 22 | elem: '#staffdateLimit' |
24 | - , range: '~', | 23 | + ,range: '~', |
25 | trigger: 'click', | 24 | trigger: 'click', |
26 | - ready: function (date) { | 25 | + ready: function(date){ |
27 | $("#staffdateLimit").removeAttr("lay-key"); | 26 | $("#staffdateLimit").removeAttr("lay-key"); |
28 | - $(this).attr("lay-key", "1"); | 27 | + $(this).attr("lay-key","1"); |
29 | }, | 28 | }, |
30 | done: function (value) { | 29 | done: function (value) { |
31 | dateLimit = value | 30 | dateLimit = value |
@@ -82,19 +81,19 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -82,19 +81,19 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
82 | 81 | ||
83 | // 下拉框改变搜索 | 82 | // 下拉框改变搜索 |
84 | form.on('select(slt-staff-group)', reloadAllChange); | 83 | form.on('select(slt-staff-group)', reloadAllChange); |
85 | - | ||
86 | // 加载工作汇报表格 | 84 | // 加载工作汇报表格 |
87 | function loadWorkReportTable() { | 85 | function loadWorkReportTable() { |
88 | var conditions = form.val('form-enterStaff-condition'); | 86 | var conditions = form.val('form-enterStaff-condition'); |
87 | + | ||
89 | Object.assign(conditions, { | 88 | Object.assign(conditions, { |
90 | - access_token: accessToken, | 89 | + accessToken: accessToken, |
91 | createtime: createTime, | 90 | createtime: createTime, |
92 | viewMode: 'true', | 91 | viewMode: 'true', |
93 | dateLimit: dateLimit | 92 | dateLimit: dateLimit |
94 | }); | 93 | }); |
95 | table.render({ | 94 | table.render({ |
96 | elem: '#table-staff-view', | 95 | elem: '#table-staff-view', |
97 | - url: domainName + '/api-room/machineRoom/findMachineRoomEnterRecords', | 96 | + url: domainName + '/api-web/machineRoom/findMachineRoomEnterRecords', |
98 | where: conditions, | 97 | where: conditions, |
99 | height: 'full-360', | 98 | height: 'full-360', |
100 | page: { | 99 | page: { |
@@ -107,13 +106,14 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -107,13 +106,14 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
107 | limit: common.limit, | 106 | limit: common.limit, |
108 | limits: common.limits, | 107 | limits: common.limits, |
109 | even: true, | 108 | even: true, |
110 | - cols: [[{ | 109 | + cols: [[ |
110 | + {type: 'checkbox'},{ | ||
111 | field: 'machineRoomName', title: '机房', align: 'center', | 111 | field: 'machineRoomName', title: '机房', align: 'center', |
112 | }, { | 112 | }, { |
113 | - field: 'manufacturerName', title: '工作单位', align: 'center', templet: function (d) { | ||
114 | - if (d.manufacturerId == '0') { | 113 | + field: 'manufacturerName', title: '工作单位', align: 'center',templet: function (d) { |
114 | + if(d.manufacturerId == '0'){ | ||
115 | return d.manufacturerOther; | 115 | return d.manufacturerOther; |
116 | - } else { | 116 | + }else { |
117 | return d.manufacturerName; | 117 | return d.manufacturerName; |
118 | } | 118 | } |
119 | } | 119 | } |
@@ -152,18 +152,36 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -152,18 +152,36 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
152 | } | 152 | } |
153 | }); | 153 | }); |
154 | } | 154 | } |
155 | - | 155 | + $("#staff-export-excel").on('click', function () { |
156 | + var href = common.domainName + '/api-web/machineRoom/exportMachineRoomEnterRecords?accessToken=' + accessToken + "&createtime=" + createTime + '&dateLimit=' + dateLimit + '&limit=1000'; | ||
157 | + window.open(href) | ||
158 | + }) | ||
156 | //新增日报 | 159 | //新增日报 |
157 | $('#staff_create').on('click', function () { | 160 | $('#staff_create').on('click', function () { |
158 | openWorkReportForm() | 161 | openWorkReportForm() |
159 | }) | 162 | }) |
160 | - | 163 | + //下载 |
164 | + $('#report_download').on('click', function (){ | ||
165 | + var data = table.checkStatus('table-staff-view').data; | ||
166 | + var attachmentId = '0b92a0b2705f11edb49f005056aae0ca'; | ||
167 | + var ids = ''; | ||
168 | + if(data.length<=0){ | ||
169 | + layer.msg("请至少选择一条下载", { offset: '15px' , icon: 7 , time: 1500 }); | ||
170 | + }else if(data.length>=1){ | ||
171 | + var arr = []; | ||
172 | + $.each(data,function (i,e) { | ||
173 | + arr.push(e.id) | ||
174 | + }) | ||
175 | + ids = arr.toString(); | ||
176 | + var url = domainName + `/api-web/machineRoom/downloadWordZipforStaff?accessToken=` + accessToken+"&ids="+ids+"&attachmentId="+ attachmentId; | ||
177 | + window.open(url); | ||
178 | + } | ||
179 | + }) | ||
161 | //新增/编辑表单 | 180 | //新增/编辑表单 |
162 | function openWorkReportForm(id) { | 181 | function openWorkReportForm(id) { |
163 | var title = id ? '编辑' : '新增' | 182 | var title = id ? '编辑' : '新增' |
164 | common.openWin('machineroom/staffAdd', title, {id: id}, ['保存', '取消'], function f() { | 183 | common.openWin('machineroom/staffAdd', title, {id: id}, ['保存', '取消'], function f() { |
165 | $("#staff-form-save-id").trigger("click"); | 184 | $("#staff-form-save-id").trigger("click"); |
166 | - }, null, null, function done() { | ||
167 | reloadAllChange(); | 185 | reloadAllChange(); |
168 | }) | 186 | }) |
169 | } | 187 | } |
@@ -173,7 +191,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -173,7 +191,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
173 | 191 | ||
174 | var title = '进入人员列表' | 192 | var title = '进入人员列表' |
175 | 193 | ||
176 | - common.openWin('machineroom/staffList', title, {id: id}) | 194 | + common.openWin('machineroom/staffList', title, {id: id}, ['确定', '取消']) |
177 | } | 195 | } |
178 | 196 | ||
179 | // 加载查询条件下拉框 | 197 | // 加载查询条件下拉框 |
@@ -185,6 +203,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -185,6 +203,7 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
185 | $.each(response.data, function (i, v) { | 203 | $.each(response.data, function (i, v) { |
186 | options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>" | 204 | options += "<option value='" + v.id + "'>" + v.manufacturerName + "</option>" |
187 | }); | 205 | }); |
206 | + options += "<option value='0'>其他</option>"; | ||
188 | $('#slt-staff-group').html(options); | 207 | $('#slt-staff-group').html(options); |
189 | form.render(); | 208 | form.render(); |
190 | }); | 209 | }); |
@@ -194,9 +213,9 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -194,9 +213,9 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
194 | // 各单位维修情况 | 213 | // 各单位维修情况 |
195 | function loadEnterStaffChart() { | 214 | function loadEnterStaffChart() { |
196 | var conditions = {}; | 215 | var conditions = {}; |
197 | - Object.assign(conditions, {access_token: accessToken, createtime: createTime, viewMode: ''}); | 216 | + Object.assign(conditions, {accessToken: accessToken, createtime: createTime, viewMode: ''}); |
198 | admin.req({ | 217 | admin.req({ |
199 | - url: domainName + '/api-room/machineRoom/findMachineRoomEnterRecordsForGroup', | 218 | + url: domainName + '/api-web/machineRoom/findMachineRoomEnterRecordsForGroup', |
200 | data: conditions | 219 | data: conditions |
201 | }).done(function (response) { | 220 | }).done(function (response) { |
202 | var chartData = response.map; | 221 | var chartData = response.map; |
@@ -277,8 +296,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -277,8 +296,8 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
277 | axisLabel: { | 296 | axisLabel: { |
278 | color: '#333', | 297 | color: '#333', |
279 | show: true, | 298 | show: true, |
280 | - interval: 0, | ||
281 | - rotate: 15 | 299 | + interval:0, |
300 | + rotate:15 | ||
282 | }, | 301 | }, |
283 | axisLine: { | 302 | axisLine: { |
284 | lineStyle: { | 303 | lineStyle: { |
@@ -329,4 +348,4 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | @@ -329,4 +348,4 @@ layui.define(['table', 'form', 'sessions', 'admin', 'common', 'echarts', 'laydat | ||
329 | 348 | ||
330 | } | 349 | } |
331 | }); | 350 | }); |
332 | -}); | 351 | +}); |
-
Please register or login to post a comment