Przeglądaj źródła

Merge branch 'dev' of http://git.xayunmei.com/SH-Arbitrate/Arbitrate-Frontend into hhl

Your Name 2 lat temu
rodzic
commit
6b846ce3f5

+ 1
- 0
package.json Wyświetl plik

@@ -50,6 +50,7 @@
50 50
     "jsencrypt": "3.0.0-rc.1",
51 51
     "moment": "^2.29.4",
52 52
     "nprogress": "0.2.0",
53
+    "qrcodejs2": "0.0.2",
53 54
     "quill": "1.3.7",
54 55
     "screenfull": "5.0.2",
55 56
     "sortablejs": "1.10.2",

+ 45
- 0
src/api/pay/pay.js Wyświetl plik

@@ -0,0 +1,45 @@
1
+import request from '@/utils/request'
2
+// 案件列表
3
+export function caseApplicationList(data) {
4
+    return request({
5
+        url: '/caseApplication/list',
6
+        // headers: {
7
+        //   isToken: false
8
+        // },
9
+        method: 'post',
10
+        data: data
11
+    })
12
+}
13
+// 查看详情
14
+export function caseApplicationDetail(data) {
15
+    return request({
16
+        url: '/caseApplication/selectCaseApplication',
17
+        // headers: {
18
+        //   isToken: false
19
+        // },
20
+        method: 'post',
21
+        data: data
22
+    })
23
+}
24
+// 支付
25
+export function casePay(data) {
26
+    return request({
27
+      url: '/pay/casePay',
28
+      // headers: {
29
+      //   isToken: false
30
+      // },
31
+      method: 'post',
32
+      data: data
33
+    })
34
+  }
35
+// 确认缴费
36
+export function confirmPay(data) {
37
+    return request({
38
+      url: '/pay/confirm',
39
+      // headers: {
40
+      //   isToken: false
41
+      // },
42
+      method: 'put',
43
+      data: data
44
+    })
45
+  }

+ 539
- 0
src/assets/icon/demo.css Wyświetl plik

@@ -0,0 +1,539 @@
1
+/* Logo 字体 */
2
+@font-face {
3
+  font-family: "iconfont logo";
4
+  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
5
+  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
6
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
7
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
8
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
9
+}
10
+
11
+.logo {
12
+  font-family: "iconfont logo";
13
+  font-size: 160px;
14
+  font-style: normal;
15
+  -webkit-font-smoothing: antialiased;
16
+  -moz-osx-font-smoothing: grayscale;
17
+}
18
+
19
+/* tabs */
20
+.nav-tabs {
21
+  position: relative;
22
+}
23
+
24
+.nav-tabs .nav-more {
25
+  position: absolute;
26
+  right: 0;
27
+  bottom: 0;
28
+  height: 42px;
29
+  line-height: 42px;
30
+  color: #666;
31
+}
32
+
33
+#tabs {
34
+  border-bottom: 1px solid #eee;
35
+}
36
+
37
+#tabs li {
38
+  cursor: pointer;
39
+  width: 100px;
40
+  height: 40px;
41
+  line-height: 40px;
42
+  text-align: center;
43
+  font-size: 16px;
44
+  border-bottom: 2px solid transparent;
45
+  position: relative;
46
+  z-index: 1;
47
+  margin-bottom: -1px;
48
+  color: #666;
49
+}
50
+
51
+
52
+#tabs .active {
53
+  border-bottom-color: #f00;
54
+  color: #222;
55
+}
56
+
57
+.tab-container .content {
58
+  display: none;
59
+}
60
+
61
+/* 页面布局 */
62
+.main {
63
+  padding: 30px 100px;
64
+  width: 960px;
65
+  margin: 0 auto;
66
+}
67
+
68
+.main .logo {
69
+  color: #333;
70
+  text-align: left;
71
+  margin-bottom: 30px;
72
+  line-height: 1;
73
+  height: 110px;
74
+  margin-top: -50px;
75
+  overflow: hidden;
76
+  *zoom: 1;
77
+}
78
+
79
+.main .logo a {
80
+  font-size: 160px;
81
+  color: #333;
82
+}
83
+
84
+.helps {
85
+  margin-top: 40px;
86
+}
87
+
88
+.helps pre {
89
+  padding: 20px;
90
+  margin: 10px 0;
91
+  border: solid 1px #e7e1cd;
92
+  background-color: #fffdef;
93
+  overflow: auto;
94
+}
95
+
96
+.icon_lists {
97
+  width: 100% !important;
98
+  overflow: hidden;
99
+  *zoom: 1;
100
+}
101
+
102
+.icon_lists li {
103
+  width: 100px;
104
+  margin-bottom: 10px;
105
+  margin-right: 20px;
106
+  text-align: center;
107
+  list-style: none !important;
108
+  cursor: default;
109
+}
110
+
111
+.icon_lists li .code-name {
112
+  line-height: 1.2;
113
+}
114
+
115
+.icon_lists .icon {
116
+  display: block;
117
+  height: 100px;
118
+  line-height: 100px;
119
+  font-size: 42px;
120
+  margin: 10px auto;
121
+  color: #333;
122
+  -webkit-transition: font-size 0.25s linear, width 0.25s linear;
123
+  -moz-transition: font-size 0.25s linear, width 0.25s linear;
124
+  transition: font-size 0.25s linear, width 0.25s linear;
125
+}
126
+
127
+.icon_lists .icon:hover {
128
+  font-size: 100px;
129
+}
130
+
131
+.icon_lists .svg-icon {
132
+  /* 通过设置 font-size 来改变图标大小 */
133
+  width: 1em;
134
+  /* 图标和文字相邻时,垂直对齐 */
135
+  vertical-align: -0.15em;
136
+  /* 通过设置 color 来改变 SVG 的颜色/fill */
137
+  fill: currentColor;
138
+  /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
139
+      normalize.css 中也包含这行 */
140
+  overflow: hidden;
141
+}
142
+
143
+.icon_lists li .name,
144
+.icon_lists li .code-name {
145
+  color: #666;
146
+}
147
+
148
+/* markdown 样式 */
149
+.markdown {
150
+  color: #666;
151
+  font-size: 14px;
152
+  line-height: 1.8;
153
+}
154
+
155
+.highlight {
156
+  line-height: 1.5;
157
+}
158
+
159
+.markdown img {
160
+  vertical-align: middle;
161
+  max-width: 100%;
162
+}
163
+
164
+.markdown h1 {
165
+  color: #404040;
166
+  font-weight: 500;
167
+  line-height: 40px;
168
+  margin-bottom: 24px;
169
+}
170
+
171
+.markdown h2,
172
+.markdown h3,
173
+.markdown h4,
174
+.markdown h5,
175
+.markdown h6 {
176
+  color: #404040;
177
+  margin: 1.6em 0 0.6em 0;
178
+  font-weight: 500;
179
+  clear: both;
180
+}
181
+
182
+.markdown h1 {
183
+  font-size: 28px;
184
+}
185
+
186
+.markdown h2 {
187
+  font-size: 22px;
188
+}
189
+
190
+.markdown h3 {
191
+  font-size: 16px;
192
+}
193
+
194
+.markdown h4 {
195
+  font-size: 14px;
196
+}
197
+
198
+.markdown h5 {
199
+  font-size: 12px;
200
+}
201
+
202
+.markdown h6 {
203
+  font-size: 12px;
204
+}
205
+
206
+.markdown hr {
207
+  height: 1px;
208
+  border: 0;
209
+  background: #e9e9e9;
210
+  margin: 16px 0;
211
+  clear: both;
212
+}
213
+
214
+.markdown p {
215
+  margin: 1em 0;
216
+}
217
+
218
+.markdown>p,
219
+.markdown>blockquote,
220
+.markdown>.highlight,
221
+.markdown>ol,
222
+.markdown>ul {
223
+  width: 80%;
224
+}
225
+
226
+.markdown ul>li {
227
+  list-style: circle;
228
+}
229
+
230
+.markdown>ul li,
231
+.markdown blockquote ul>li {
232
+  margin-left: 20px;
233
+  padding-left: 4px;
234
+}
235
+
236
+.markdown>ul li p,
237
+.markdown>ol li p {
238
+  margin: 0.6em 0;
239
+}
240
+
241
+.markdown ol>li {
242
+  list-style: decimal;
243
+}
244
+
245
+.markdown>ol li,
246
+.markdown blockquote ol>li {
247
+  margin-left: 20px;
248
+  padding-left: 4px;
249
+}
250
+
251
+.markdown code {
252
+  margin: 0 3px;
253
+  padding: 0 5px;
254
+  background: #eee;
255
+  border-radius: 3px;
256
+}
257
+
258
+.markdown strong,
259
+.markdown b {
260
+  font-weight: 600;
261
+}
262
+
263
+.markdown>table {
264
+  border-collapse: collapse;
265
+  border-spacing: 0px;
266
+  empty-cells: show;
267
+  border: 1px solid #e9e9e9;
268
+  width: 95%;
269
+  margin-bottom: 24px;
270
+}
271
+
272
+.markdown>table th {
273
+  white-space: nowrap;
274
+  color: #333;
275
+  font-weight: 600;
276
+}
277
+
278
+.markdown>table th,
279
+.markdown>table td {
280
+  border: 1px solid #e9e9e9;
281
+  padding: 8px 16px;
282
+  text-align: left;
283
+}
284
+
285
+.markdown>table th {
286
+  background: #F7F7F7;
287
+}
288
+
289
+.markdown blockquote {
290
+  font-size: 90%;
291
+  color: #999;
292
+  border-left: 4px solid #e9e9e9;
293
+  padding-left: 0.8em;
294
+  margin: 1em 0;
295
+}
296
+
297
+.markdown blockquote p {
298
+  margin: 0;
299
+}
300
+
301
+.markdown .anchor {
302
+  opacity: 0;
303
+  transition: opacity 0.3s ease;
304
+  margin-left: 8px;
305
+}
306
+
307
+.markdown .waiting {
308
+  color: #ccc;
309
+}
310
+
311
+.markdown h1:hover .anchor,
312
+.markdown h2:hover .anchor,
313
+.markdown h3:hover .anchor,
314
+.markdown h4:hover .anchor,
315
+.markdown h5:hover .anchor,
316
+.markdown h6:hover .anchor {
317
+  opacity: 1;
318
+  display: inline-block;
319
+}
320
+
321
+.markdown>br,
322
+.markdown>p>br {
323
+  clear: both;
324
+}
325
+
326
+
327
+.hljs {
328
+  display: block;
329
+  background: white;
330
+  padding: 0.5em;
331
+  color: #333333;
332
+  overflow-x: auto;
333
+}
334
+
335
+.hljs-comment,
336
+.hljs-meta {
337
+  color: #969896;
338
+}
339
+
340
+.hljs-string,
341
+.hljs-variable,
342
+.hljs-template-variable,
343
+.hljs-strong,
344
+.hljs-emphasis,
345
+.hljs-quote {
346
+  color: #df5000;
347
+}
348
+
349
+.hljs-keyword,
350
+.hljs-selector-tag,
351
+.hljs-type {
352
+  color: #a71d5d;
353
+}
354
+
355
+.hljs-literal,
356
+.hljs-symbol,
357
+.hljs-bullet,
358
+.hljs-attribute {
359
+  color: #0086b3;
360
+}
361
+
362
+.hljs-section,
363
+.hljs-name {
364
+  color: #63a35c;
365
+}
366
+
367
+.hljs-tag {
368
+  color: #333333;
369
+}
370
+
371
+.hljs-title,
372
+.hljs-attr,
373
+.hljs-selector-id,
374
+.hljs-selector-class,
375
+.hljs-selector-attr,
376
+.hljs-selector-pseudo {
377
+  color: #795da3;
378
+}
379
+
380
+.hljs-addition {
381
+  color: #55a532;
382
+  background-color: #eaffea;
383
+}
384
+
385
+.hljs-deletion {
386
+  color: #bd2c00;
387
+  background-color: #ffecec;
388
+}
389
+
390
+.hljs-link {
391
+  text-decoration: underline;
392
+}
393
+
394
+/* 代码高亮 */
395
+/* PrismJS 1.15.0
396
+https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
397
+/**
398
+ * prism.js default theme for JavaScript, CSS and HTML
399
+ * Based on dabblet (http://dabblet.com)
400
+ * @author Lea Verou
401
+ */
402
+code[class*="language-"],
403
+pre[class*="language-"] {
404
+  color: black;
405
+  background: none;
406
+  text-shadow: 0 1px white;
407
+  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
408
+  text-align: left;
409
+  white-space: pre;
410
+  word-spacing: normal;
411
+  word-break: normal;
412
+  word-wrap: normal;
413
+  line-height: 1.5;
414
+
415
+  -moz-tab-size: 4;
416
+  -o-tab-size: 4;
417
+  tab-size: 4;
418
+
419
+  -webkit-hyphens: none;
420
+  -moz-hyphens: none;
421
+  -ms-hyphens: none;
422
+  hyphens: none;
423
+}
424
+
425
+pre[class*="language-"]::-moz-selection,
426
+pre[class*="language-"] ::-moz-selection,
427
+code[class*="language-"]::-moz-selection,
428
+code[class*="language-"] ::-moz-selection {
429
+  text-shadow: none;
430
+  background: #b3d4fc;
431
+}
432
+
433
+pre[class*="language-"]::selection,
434
+pre[class*="language-"] ::selection,
435
+code[class*="language-"]::selection,
436
+code[class*="language-"] ::selection {
437
+  text-shadow: none;
438
+  background: #b3d4fc;
439
+}
440
+
441
+@media print {
442
+
443
+  code[class*="language-"],
444
+  pre[class*="language-"] {
445
+    text-shadow: none;
446
+  }
447
+}
448
+
449
+/* Code blocks */
450
+pre[class*="language-"] {
451
+  padding: 1em;
452
+  margin: .5em 0;
453
+  overflow: auto;
454
+}
455
+
456
+:not(pre)>code[class*="language-"],
457
+pre[class*="language-"] {
458
+  background: #f5f2f0;
459
+}
460
+
461
+/* Inline code */
462
+:not(pre)>code[class*="language-"] {
463
+  padding: .1em;
464
+  border-radius: .3em;
465
+  white-space: normal;
466
+}
467
+
468
+.token.comment,
469
+.token.prolog,
470
+.token.doctype,
471
+.token.cdata {
472
+  color: slategray;
473
+}
474
+
475
+.token.punctuation {
476
+  color: #999;
477
+}
478
+
479
+.namespace {
480
+  opacity: .7;
481
+}
482
+
483
+.token.property,
484
+.token.tag,
485
+.token.boolean,
486
+.token.number,
487
+.token.constant,
488
+.token.symbol,
489
+.token.deleted {
490
+  color: #905;
491
+}
492
+
493
+.token.selector,
494
+.token.attr-name,
495
+.token.string,
496
+.token.char,
497
+.token.builtin,
498
+.token.inserted {
499
+  color: #690;
500
+}
501
+
502
+.token.operator,
503
+.token.entity,
504
+.token.url,
505
+.language-css .token.string,
506
+.style .token.string {
507
+  color: #9a6e3a;
508
+  background: hsla(0, 0%, 100%, .5);
509
+}
510
+
511
+.token.atrule,
512
+.token.attr-value,
513
+.token.keyword {
514
+  color: #07a;
515
+}
516
+
517
+.token.function,
518
+.token.class-name {
519
+  color: #DD4A68;
520
+}
521
+
522
+.token.regex,
523
+.token.important,
524
+.token.variable {
525
+  color: #e90;
526
+}
527
+
528
+.token.important,
529
+.token.bold {
530
+  font-weight: bold;
531
+}
532
+
533
+.token.italic {
534
+  font-style: italic;
535
+}
536
+
537
+.token.entity {
538
+  cursor: help;
539
+}

+ 257
- 0
src/assets/icon/demo_index.html Wyświetl plik

@@ -0,0 +1,257 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+  <meta charset="utf-8"/>
5
+  <title>iconfont Demo</title>
6
+  <link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/>
7
+  <link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/>
8
+  <link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
9
+  <link rel="stylesheet" href="demo.css">
10
+  <link rel="stylesheet" href="iconfont.css">
11
+  <script src="iconfont.js"></script>
12
+  <!-- jQuery -->
13
+  <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
14
+  <!-- 代码高亮 -->
15
+  <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
16
+  <style>
17
+    .main .logo {
18
+      margin-top: 0;
19
+      height: auto;
20
+    }
21
+
22
+    .main .logo a {
23
+      display: flex;
24
+      align-items: center;
25
+    }
26
+
27
+    .main .logo .sub-title {
28
+      margin-left: 0.5em;
29
+      font-size: 22px;
30
+      color: #fff;
31
+      background: linear-gradient(-45deg, #3967FF, #B500FE);
32
+      -webkit-background-clip: text;
33
+      -webkit-text-fill-color: transparent;
34
+    }
35
+  </style>
36
+</head>
37
+<body>
38
+  <div class="main">
39
+    <h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank">
40
+      <img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg">
41
+      
42
+    </a></h1>
43
+    <div class="nav-tabs">
44
+      <ul id="tabs" class="dib-box">
45
+        <li class="dib active"><span>Unicode</span></li>
46
+        <li class="dib"><span>Font class</span></li>
47
+        <li class="dib"><span>Symbol</span></li>
48
+      </ul>
49
+      
50
+      <a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=4246508" target="_blank" class="nav-more">查看项目</a>
51
+      
52
+    </div>
53
+    <div class="tab-container">
54
+      <div class="content unicode" style="display: block;">
55
+          <ul class="icon_lists dib-box">
56
+          
57
+            <li class="dib">
58
+              <span class="icon iconfont">&#xe68a;</span>
59
+                <div class="name">支付宝</div>
60
+                <div class="code-name">&amp;#xe68a;</div>
61
+              </li>
62
+          
63
+            <li class="dib">
64
+              <span class="icon iconfont">&#xe68b;</span>
65
+                <div class="name">银联</div>
66
+                <div class="code-name">&amp;#xe68b;</div>
67
+              </li>
68
+          
69
+            <li class="dib">
70
+              <span class="icon iconfont">&#xe689;</span>
71
+                <div class="name">微信支付</div>
72
+                <div class="code-name">&amp;#xe689;</div>
73
+              </li>
74
+          
75
+          </ul>
76
+          <div class="article markdown">
77
+          <h2 id="unicode-">Unicode 引用</h2>
78
+          <hr>
79
+
80
+          <p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
81
+          <ul>
82
+            <li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
83
+            <li>默认情况下不支持多色,直接添加多色图标会自动去色。</li>
84
+          </ul>
85
+          <blockquote>
86
+            <p>注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p>
87
+          </blockquote>
88
+          <p>Unicode 使用步骤如下:</p>
89
+          <h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
90
+<pre><code class="language-css"
91
+>@font-face {
92
+  font-family: 'iconfont';
93
+  src: url('iconfont.woff2?t=1694418644261') format('woff2'),
94
+       url('iconfont.woff?t=1694418644261') format('woff'),
95
+       url('iconfont.ttf?t=1694418644261') format('truetype');
96
+}
97
+</code></pre>
98
+          <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
99
+<pre><code class="language-css"
100
+>.iconfont {
101
+  font-family: "iconfont" !important;
102
+  font-size: 16px;
103
+  font-style: normal;
104
+  -webkit-font-smoothing: antialiased;
105
+  -moz-osx-font-smoothing: grayscale;
106
+}
107
+</code></pre>
108
+          <h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
109
+<pre>
110
+<code class="language-html"
111
+>&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
112
+</code></pre>
113
+          <blockquote>
114
+            <p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
115
+          </blockquote>
116
+          </div>
117
+      </div>
118
+      <div class="content font-class">
119
+        <ul class="icon_lists dib-box">
120
+          
121
+          <li class="dib">
122
+            <span class="icon iconfont icon-zhifubao"></span>
123
+            <div class="name">
124
+              支付宝
125
+            </div>
126
+            <div class="code-name">.icon-zhifubao
127
+            </div>
128
+          </li>
129
+          
130
+          <li class="dib">
131
+            <span class="icon iconfont icon-yinlian"></span>
132
+            <div class="name">
133
+              银联
134
+            </div>
135
+            <div class="code-name">.icon-yinlian
136
+            </div>
137
+          </li>
138
+          
139
+          <li class="dib">
140
+            <span class="icon iconfont icon-weixinzhifu"></span>
141
+            <div class="name">
142
+              微信支付
143
+            </div>
144
+            <div class="code-name">.icon-weixinzhifu
145
+            </div>
146
+          </li>
147
+          
148
+        </ul>
149
+        <div class="article markdown">
150
+        <h2 id="font-class-">font-class 引用</h2>
151
+        <hr>
152
+
153
+        <p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
154
+        <p>与 Unicode 使用方式相比,具有如下特点:</p>
155
+        <ul>
156
+          <li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
157
+          <li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
158
+        </ul>
159
+        <p>使用步骤如下:</p>
160
+        <h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
161
+<pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
162
+</code></pre>
163
+        <h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
164
+<pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
165
+</code></pre>
166
+        <blockquote>
167
+          <p>"
168
+            iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
169
+        </blockquote>
170
+      </div>
171
+      </div>
172
+      <div class="content symbol">
173
+          <ul class="icon_lists dib-box">
174
+          
175
+            <li class="dib">
176
+                <svg class="icon svg-icon" aria-hidden="true">
177
+                  <use xlink:href="#icon-zhifubao"></use>
178
+                </svg>
179
+                <div class="name">支付宝</div>
180
+                <div class="code-name">#icon-zhifubao</div>
181
+            </li>
182
+          
183
+            <li class="dib">
184
+                <svg class="icon svg-icon" aria-hidden="true">
185
+                  <use xlink:href="#icon-yinlian"></use>
186
+                </svg>
187
+                <div class="name">银联</div>
188
+                <div class="code-name">#icon-yinlian</div>
189
+            </li>
190
+          
191
+            <li class="dib">
192
+                <svg class="icon svg-icon" aria-hidden="true">
193
+                  <use xlink:href="#icon-weixinzhifu"></use>
194
+                </svg>
195
+                <div class="name">微信支付</div>
196
+                <div class="code-name">#icon-weixinzhifu</div>
197
+            </li>
198
+          
199
+          </ul>
200
+          <div class="article markdown">
201
+          <h2 id="symbol-">Symbol 引用</h2>
202
+          <hr>
203
+
204
+          <p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
205
+            这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p>
206
+          <ul>
207
+            <li>支持多色图标了,不再受单色限制。</li>
208
+            <li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
209
+            <li>兼容性较差,支持 IE9+,及现代浏览器。</li>
210
+            <li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
211
+          </ul>
212
+          <p>使用步骤如下:</p>
213
+          <h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
214
+<pre><code class="language-html">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
215
+</code></pre>
216
+          <h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
217
+<pre><code class="language-html">&lt;style&gt;
218
+.icon {
219
+  width: 1em;
220
+  height: 1em;
221
+  vertical-align: -0.15em;
222
+  fill: currentColor;
223
+  overflow: hidden;
224
+}
225
+&lt;/style&gt;
226
+</code></pre>
227
+          <h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
228
+<pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
229
+  &lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
230
+&lt;/svg&gt;
231
+</code></pre>
232
+          </div>
233
+      </div>
234
+
235
+    </div>
236
+  </div>
237
+  <script>
238
+  $(document).ready(function () {
239
+      $('.tab-container .content:first').show()
240
+
241
+      $('#tabs li').click(function (e) {
242
+        var tabContent = $('.tab-container .content')
243
+        var index = $(this).index()
244
+
245
+        if ($(this).hasClass('active')) {
246
+          return
247
+        } else {
248
+          $('#tabs li').removeClass('active')
249
+          $(this).addClass('active')
250
+
251
+          tabContent.hide().eq(index).fadeIn()
252
+        }
253
+      })
254
+    })
255
+  </script>
256
+</body>
257
+</html>

+ 27
- 0
src/assets/icon/iconfont.css Wyświetl plik

@@ -0,0 +1,27 @@
1
+@font-face {
2
+  font-family: "iconfont"; /* Project id 4246508 */
3
+  src: url('iconfont.woff2?t=1694418644261') format('woff2'),
4
+       url('iconfont.woff?t=1694418644261') format('woff'),
5
+       url('iconfont.ttf?t=1694418644261') format('truetype');
6
+}
7
+
8
+.iconfont {
9
+  font-family: "iconfont" !important;
10
+  font-size: 16px;
11
+  font-style: normal;
12
+  -webkit-font-smoothing: antialiased;
13
+  -moz-osx-font-smoothing: grayscale;
14
+}
15
+
16
+.icon-zhifubao:before {
17
+  content: "\e68a";
18
+}
19
+
20
+.icon-yinlian:before {
21
+  content: "\e68b";
22
+}
23
+
24
+.icon-weixinzhifu:before {
25
+  content: "\e689";
26
+}
27
+

+ 1
- 0
src/assets/icon/iconfont.js
Plik diff jest za duży
Wyświetl plik


+ 30
- 0
src/assets/icon/iconfont.json Wyświetl plik

@@ -0,0 +1,30 @@
1
+{
2
+  "id": "4246508",
3
+  "name": "法务",
4
+  "font_family": "iconfont",
5
+  "css_prefix_text": "icon-",
6
+  "description": "",
7
+  "glyphs": [
8
+    {
9
+      "icon_id": "9306312",
10
+      "name": "支付宝",
11
+      "font_class": "zhifubao",
12
+      "unicode": "e68a",
13
+      "unicode_decimal": 59018
14
+    },
15
+    {
16
+      "icon_id": "9306315",
17
+      "name": "银联",
18
+      "font_class": "yinlian",
19
+      "unicode": "e68b",
20
+      "unicode_decimal": 59019
21
+    },
22
+    {
23
+      "icon_id": "9306311",
24
+      "name": "微信支付",
25
+      "font_class": "weixinzhifu",
26
+      "unicode": "e689",
27
+      "unicode_decimal": 59017
28
+    }
29
+  ]
30
+}

BIN
src/assets/icon/iconfont.ttf Wyświetl plik


BIN
src/assets/icon/iconfont.woff Wyświetl plik


BIN
src/assets/icon/iconfont.woff2 Wyświetl plik


+ 2
- 0
src/main.js Wyświetl plik

@@ -15,6 +15,8 @@ import plugins from './plugins' // plugins
15 15
 import { download } from '@/utils/request'
16 16
 
17 17
 import './assets/icons' // icon
18
+// 引入Iconfont 矢量图标库
19
+import './assets/icon/iconfont.css'
18 20
 import './permission' // permission control
19 21
 import { getDicts } from "@/api/system/dict/data";
20 22
 import { getConfigKey } from "@/api/system/config";

+ 93
- 88
src/views/payAll/payConfirmation.vue Wyświetl plik

@@ -20,46 +20,47 @@
20 20
                     <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span>
21 21
                 </template>
22 22
             </el-table-column>
23
-            <el-table-column label="申请人名称" align="center" prop="name" :show-overflow-tooltip="true" />
24
-            <el-table-column label="案件数量" align="center" prop="casesNumber" :show-overflow-tooltip="true" />
25
-            <el-table-column label="标的总金额" align="center" prop="totalAmount" />
26
-            <el-table-column label="提交日期" align="center" prop="date" :show-overflow-tooltip="true" />
27
-            <el-table-column label="提交人" align="center" prop="presenter" :show-overflow-tooltip="true" />
28
-            <el-table-column label="状态" align="center" prop="state" />
23
+            <el-table-column label="案件编号" align="center" prop="caseNum" :show-overflow-tooltip="true" />
24
+            <el-table-column label="案件标的" align="center" prop="caseSubjectAmount" :show-overflow-tooltip="true" />
25
+            <el-table-column label="立案日期" align="center" prop="registerDate" />
26
+            <el-table-column label="仲裁方式" align="center" prop="arbitratMethodName" :show-overflow-tooltip="true" />
27
+            <el-table-column label="案件状态" align="center" prop="caseStatusName" />
29 28
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
30 29
                 <template slot-scope="scope">
31
-                    <el-button size="mini" type="text" icon="el-icon-download" @click="confirmation(scope.row)"
32
-                        v-hasPermi="['monitor:online:forceLogout']">查看缴费清单</el-button>
33
-                    <el-button size="mini" type="text" icon="el-icon-bank-card" @click="confirmation(scope.row)"
34
-                        v-hasPermi="['monitor:online:forceLogout']">缴费确认</el-button>
30
+                    <el-button size="mini" type="text" icon="el-icon-view" @click="confirmation(scope.row)"
31
+                        v-hasPermi="['monitor:online:forceLogout']" style="margin-right: 10px;">查看缴费清单</el-button>
32
+                    <el-popconfirm title="是否确认缴费" @confirm="payStatus(scope.row)">
33
+                        <el-button slot="reference" size="mini" type="text" icon="el-icon-bank-card"
34
+                            v-hasPermi="['monitor:online:forceLogout']">缴费确认</el-button>
35
+                    </el-popconfirm>
35 36
                 </template>
36 37
             </el-table-column>
37 38
         </el-table>
38 39
         <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
39 40
             <el-form ref="form" :model="form" :rules="rules" label-width="150px" :disabled="true">
40
-                <el-form-item label="案件编号:" prop="caseNumber">
41
-                    <el-input v-model="form.caseNumber" placeholder="请输入岗位名称" />
41
+                <el-form-item label="案件编号:" prop="caseNum">
42
+                    <el-input v-model="form.caseNum" placeholder="" />
42 43
                 </el-form-item>
43 44
                 <el-form-item label="申请人:" prop="applicant">
44
-                    <el-input v-model="form.applicant" placeholder="请输入编码名称" />
45
+                    <el-input v-model="form.applicant" placeholder="" />
45 46
                 </el-form-item>
46
-                <el-form-item label="案件标的:" prop="caseIdentifying">
47
-                    <el-input-number v-model="form.caseIdentifying" controls-position="right" :min="0" />
47
+                <el-form-item label="案件标的:" prop="caseSubjectAmount">
48
+                    <el-input-number v-model="form.caseSubjectAmount" controls-position="right" :min="0" />
48 49
                 </el-form-item>
49 50
                 <el-form-item label="案件应缴费用:" prop="feePayable">
50 51
                     <el-input-number v-model="form.feePayable" controls-position="right" :min="0" />
51 52
                 </el-form-item>
52
-                <el-form-item label="案件实缴费用:" prop="actualPayment">
53
-                    <el-input-number v-model="form.actualPayment" controls-position="right" :min="0" />
53
+                <el-form-item label="案件实缴费用:" prop="paidExpenses">
54
+                    <el-input-number v-model="form.paidExpenses" controls-position="right" :min="0" />
54 55
                 </el-form-item>
55 56
                 <el-form-item label="被申请人:" prop="respondent">
56
-                    <el-input v-model="form.Respondent" placeholder="请输入编码名称" />
57
+                    <el-input v-model="form.Respondent" placeholder="" />
57 58
                 </el-form-item>
58
-                <el-form-item label="申请人仲裁诉求:" prop="appeal">
59
-                    <el-input v-model="form.appeal" placeholder="请输入编码名称" />
59
+                <el-form-item label="申请人仲裁诉求:" prop="arbitratClaims">
60
+                    <el-input v-model="form.arbitratClaims" placeholder="" />
60 61
                 </el-form-item>
61
-                <el-form-item label="案件状态:" prop="state">
62
-                    <el-input v-model="form.state" placeholder="请输入编码名称" />
62
+                <el-form-item label="案件状态:" prop="caseStatusName">
63
+                    <el-input v-model="form.caseStatusName" placeholder="" />
63 64
                 </el-form-item>
64 65
             </el-form>
65 66
             <div slot="footer" class="dialog-footer">
@@ -72,7 +73,7 @@
72 73
 </template>
73 74
   
74 75
 <script>
75
-import { list, forceLogout } from "@/api/monitor/online";
76
+import { caseApplicationList, caseApplicationDetail,confirmPay } from "@/api/pay/pay";
76 77
 
77 78
 export default {
78 79
     name: "payList",
@@ -88,93 +89,94 @@ export default {
88 89
             pageSize: 10,
89 90
             // 弹出层标题
90 91
             title: "",
92
+            payTitle: "",
91 93
             // 是否显示弹出层
92 94
             open: false,
95
+            openPay: false,
93 96
             // 查询参数
94 97
             queryParams: {
95
-                ipaddr: undefined,
96
-                userName: undefined
98
+                caseStatus: 2,
99
+                pageNum: 1,
100
+                pageSize: 10
97 101
             },
98 102
             // 弹出层内容
99
-            form: {
100
-                caseNumber:'111',
101
-                applicant:'韩超勃',
102
-                caseIdentifying:10000,
103
-                feePayable:1000,
104
-                actualPayment:980,
105
-                Respondent:'黄海龙',
106
-                appeal:'杀人放火',
107
-                state:'已缴费',
108
-            },
103
+            form: {},
109 104
             // 校验表单
110 105
             rules: {
111
-                postName: [
112
-                    { required: true, message: "岗位名称不能为空", trigger: "blur" }
113
-                ],
114
-                postCode: [
115
-                    { required: true, message: "岗位编码不能为空", trigger: "blur" }
116
-                ],
117
-                postSort: [
118
-                    { required: true, message: "岗位顺序不能为空", trigger: "blur" }
119
-                ]
106
+                // postName: [
107
+                //     { required: true, message: "岗位名称不能为空", trigger: "blur" }
108
+                // ],
109
+                // postCode: [
110
+                //     { required: true, message: "岗位编码不能为空", trigger: "blur" }
111
+                // ],
112
+                // postSort: [
113
+                //     { required: true, message: "岗位顺序不能为空", trigger: "blur" }
114
+                // ]
120 115
             },
121
-            dataList: [
122
-                {
123
-                    name: '黄海龙',
124
-                    casesNumber: 1,
125
-                    totalAmount: '1000',
126
-                    date: '2016-05-02',
127
-                    presenter: '韩超勃',
128
-                    state: "待缴费"
129
-                }, {
130
-                    name: '黄海龙',
131
-                    casesNumber: 1,
132
-                    totalAmount: '1000',
133
-                    date: '2016-05-02',
134
-                    presenter: '韩超勃',
135
-                    state: "待缴费"
136
-                }, {
137
-                    name: '黄海龙',
138
-                    casesNumber: 2,
139
-                    totalAmount: '1000',
140
-                    date: '2016-05-02',
141
-                    presenter: '韩超勃',
142
-                    state: "待缴费"
143
-                }, {
144
-                    name: '黄海龙',
145
-                    casesNumber: 3,
146
-                    totalAmount: '1000',
147
-                    date: '2016-05-02',
148
-                    presenter: '韩超勃',
149
-                    state: "待缴费"
150
-                }
151
-            ]
116
+            dataList: []
152 117
         };
153 118
     },
154 119
     created() {
155
-        // this.getList();
120
+        this.getList();
156 121
     },
157 122
     methods: {
158 123
         // 取消按钮
159 124
         cancel() {
160 125
             this.open = false;
161 126
         },
162
-        /** 新增按钮操作 */
163
-        confirmation() {
164
-            debugger
127
+        payCancel() {
128
+            this.openPay = false;
129
+        },
130
+        /** 查看缴费清单 */
131
+        confirmation(val) {
132
+            this.getDetail({ id: val.id })
165 133
             this.open = true;
166
-            this.title = "缴费确认";
134
+            this.title = "缴费清单";
135
+        },
136
+        payStatus(val) {
137
+            this.confirmPayFn({ id: val.id })
138
+            this.payTitle = "缴费确认";
139
+            // console.log(")))))))))))))))))))))))))", val);
167 140
         },
168 141
         // 提交表单
169
-        submitForm(){},
170
-        /** 查询登录日志列表 */
142
+        submitForm() { },
143
+        /** 查询案件列表 */
171 144
         getList() {
172
-            // this.loading = true;
173
-            // list(this.queryParams).then(response => {
174
-            //     this.list = response.rows;
175
-            //     this.total = response.total;
176
-            //     this.loading = false;
177
-            // });
145
+            this.loading = true;
146
+            caseApplicationList(this.queryParams).then(response => {
147
+                this.dataList = response.rows;
148
+                this.dataList.forEach(item => {
149
+                    if (item.caseStatus == 2) {
150
+                        item.caseStatusName = '待缴费确认'
151
+                    }
152
+                    if (item.arbitratMethod == "1") {
153
+                        item.arbitratMethodName = '视频仲裁'
154
+                    } else if (item.arbitratMethod == "2") {
155
+                        item.arbitratMethodName = '书面仲裁'
156
+                    }
157
+                });
158
+                this.total = response.total;
159
+                this.loading = false;
160
+            });
161
+        },
162
+        /** 查询详情 */
163
+        getDetail(parms) {
164
+            caseApplicationDetail(parms).then(res => {
165
+                if (res.data.caseStatus == 2) {
166
+                    res.data.caseStatusName = '待缴费确认'
167
+                }
168
+                this.form = res.data;
169
+            })
170
+        },
171
+        // 确认缴费
172
+        confirmPayFn(parms){
173
+            confirmPay(parms).then(res=>{
174
+                this.$message({
175
+                    message: '确认成功',
176
+                    type: 'success'
177
+                });
178
+            })
179
+            this.getList();
178 180
         },
179 181
         /** 搜索按钮操作 */
180 182
         handleQuery() {
@@ -189,5 +191,8 @@ export default {
189 191
     }
190 192
 };
191 193
 </script>
194
+<style scoped lang="scss">
195
+
196
+</style>
192 197
   
193 198
   

+ 177
- 90
src/views/payAll/payList.vue Wyświetl plik

@@ -20,46 +20,47 @@
20 20
                     <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span>
21 21
                 </template>
22 22
             </el-table-column>
23
-            <el-table-column label="申请人名称" align="center" prop="name" :show-overflow-tooltip="true" />
24
-            <el-table-column label="案件数量" align="center" prop="casesNumber" :show-overflow-tooltip="true" />
25
-            <el-table-column label="标的总金额" align="center" prop="totalAmount" />
26
-            <el-table-column label="提交日期" align="center" prop="date" :show-overflow-tooltip="true" />
27
-            <el-table-column label="提交人" align="center" prop="presenter" :show-overflow-tooltip="true" />
28
-            <el-table-column label="状态" align="center" prop="state" />
23
+            <el-table-column label="案件编号" align="center" prop="caseNum" :show-overflow-tooltip="true" />
24
+            <el-table-column label="案件标的" align="center" prop="caseSubjectAmount" :show-overflow-tooltip="true" />
25
+            <el-table-column label="立案日期" align="center" prop="registerDate" />
26
+            <el-table-column label="仲裁方式" align="center" prop="arbitratMethodName" :show-overflow-tooltip="true" />
27
+            <el-table-column label="案件状态" align="center" prop="caseStatusName" />
29 28
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
30 29
                 <template slot-scope="scope">
31
-                    <el-button size="mini" type="text" icon="el-icon-download" @click="confirmation(scope.row)"
32
-                        v-hasPermi="['monitor:online:forceLogout']">查看缴费清单</el-button>
33
-                    <el-button size="mini" type="text" icon="el-icon-bank-card" @click="confirmation(scope.row)"
34
-                        v-hasPermi="['monitor:online:forceLogout']">缴费</el-button>
30
+                    <el-button size="mini" type="text" icon="el-icon-view" @click="confirmation(scope.row)"
31
+                        v-hasPermi="['monitor:online:forceLogout']" style="margin-right: 10px;">查看缴费清单</el-button>
32
+                    <el-popconfirm title="是否确认缴费" @confirm="payStatus(scope.row)">
33
+                        <el-button slot="reference" size="mini" type="text" icon="el-icon-bank-card"
34
+                            v-hasPermi="['monitor:online:forceLogout']">缴费</el-button>
35
+                    </el-popconfirm>
35 36
                 </template>
36 37
             </el-table-column>
37 38
         </el-table>
38 39
         <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
39 40
             <el-form ref="form" :model="form" :rules="rules" label-width="150px" :disabled="true">
40
-                <el-form-item label="案件编号:" prop="caseNumber">
41
-                    <el-input v-model="form.caseNumber" placeholder="请输入岗位名称" />
41
+                <el-form-item label="案件编号:" prop="caseNum">
42
+                    <el-input v-model="form.caseNum" placeholder="" />
42 43
                 </el-form-item>
43 44
                 <el-form-item label="申请人:" prop="applicant">
44
-                    <el-input v-model="form.applicant" placeholder="请输入编码名称" />
45
+                    <el-input v-model="form.applicant" placeholder="" />
45 46
                 </el-form-item>
46
-                <el-form-item label="案件标的:" prop="caseIdentifying">
47
-                    <el-input-number v-model="form.caseIdentifying" controls-position="right" :min="0" />
47
+                <el-form-item label="案件标的:" prop="caseSubjectAmount">
48
+                    <el-input-number v-model="form.caseSubjectAmount" controls-position="right" :min="0" />
48 49
                 </el-form-item>
49 50
                 <el-form-item label="案件应缴费用:" prop="feePayable">
50 51
                     <el-input-number v-model="form.feePayable" controls-position="right" :min="0" />
51 52
                 </el-form-item>
52
-                <el-form-item label="案件实缴费用:" prop="actualPayment">
53
-                    <el-input-number v-model="form.actualPayment" controls-position="right" :min="0" />
53
+                <el-form-item label="案件实缴费用:" prop="paidExpenses">
54
+                    <el-input-number v-model="form.paidExpenses" controls-position="right" :min="0" />
54 55
                 </el-form-item>
55 56
                 <el-form-item label="被申请人:" prop="respondent">
56
-                    <el-input v-model="form.Respondent" placeholder="请输入编码名称" />
57
+                    <el-input v-model="form.Respondent" placeholder="" />
57 58
                 </el-form-item>
58
-                <el-form-item label="申请人仲裁诉求:" prop="appeal">
59
-                    <el-input v-model="form.appeal" placeholder="请输入编码名称" />
59
+                <el-form-item label="申请人仲裁诉求:" prop="arbitratClaims">
60
+                    <el-input v-model="form.arbitratClaims" placeholder="" />
60 61
                 </el-form-item>
61
-                <el-form-item label="案件状态:" prop="state">
62
-                    <el-input v-model="form.state" placeholder="请输入编码名称" />
62
+                <el-form-item label="案件状态:" prop="caseStatusName">
63
+                    <el-input v-model="form.caseStatusName" placeholder="" />
63 64
                 </el-form-item>
64 65
             </el-form>
65 66
             <div slot="footer" class="dialog-footer">
@@ -67,17 +68,43 @@
67 68
                 <el-button @click="cancel">取 消</el-button>
68 69
             </div>
69 70
         </el-dialog>
70
-        <pagination v-show="total > 0" :total="total" :page.sync="pageNum" :limit.sync="pageSize" />
71
+        <el-dialog :title="payTitle" :visible.sync="openPay" v-if="openPay" width="800px" append-to-body>
72
+            <el-descriptions title="订单信息">
73
+                <el-descriptions-item label="案件编号:">{{ form.caseNum }}</el-descriptions-item>
74
+                <el-descriptions-item label="申请人:">{{ form.applicant }}</el-descriptions-item>
75
+                <el-descriptions-item label="案件标的:">{{ form.caseSubjectAmount }}</el-descriptions-item>
76
+                <el-descriptions-item label="案件应缴费用:">{{ form.feePayable }}</el-descriptions-item>
77
+                <el-descriptions-item label="案件实缴费用:">{{ form.paidExpenses }}</el-descriptions-item>
78
+                <el-descriptions-item label="被申请人:">{{ form.respondent }}</el-descriptions-item>
79
+                <el-descriptions-item label="申请人仲裁诉求:">{{ form.arbitratClaims }}</el-descriptions-item>
80
+                <el-descriptions-item label="案件状态:">{{ form.caseStatusName }}</el-descriptions-item>
81
+            </el-descriptions>
82
+            <div class="payType">
83
+                <span>请选择支付方式:</span>
84
+                <i class="iconfont icon-weixinzhifu" @click="pay(0)"></i>
85
+                <i class="iconfont icon-zhifubao" @click="pay(1)"></i>
86
+            </div>
87
+            <div class="payImg">
88
+                <div id="qrcodeImg"></div>
89
+            </div>
90
+            <div class="payTitle">{{ payMain }}</div>
91
+            <div slot="footer" class="dialog-footer">
92
+                <el-button @click="payCancel">取 消</el-button>
93
+            </div>
94
+        </el-dialog>
95
+        <pagination v-show="total > 0" :total="total" :page.sync="pageNum" :limit.sync="pageSize" @pagination="getList" />
71 96
     </div>
72 97
 </template>
73 98
   
74 99
 <script>
75
-import { list, forceLogout } from "@/api/monitor/online";
76
-
100
+import { caseApplicationList, caseApplicationDetail, casePay } from "@/api/pay/pay";
101
+import QRCode from 'qrcodejs2';
77 102
 export default {
78 103
     name: "payList",
79 104
     data() {
80 105
         return {
106
+            // 付款二维码
107
+            paySrc: "",
81 108
             // 遮罩层
82 109
             loading: false,
83 110
             // 总条数
@@ -88,93 +115,124 @@ export default {
88 115
             pageSize: 10,
89 116
             // 弹出层标题
90 117
             title: "",
118
+            payTitle: "",
91 119
             // 是否显示弹出层
92 120
             open: false,
121
+            openPay: false,
93 122
             // 查询参数
94 123
             queryParams: {
95
-                ipaddr: undefined,
96
-                userName: undefined
124
+                caseStatus: 1,
125
+                pageNum: 1,
126
+                pageSize: 10
97 127
             },
98 128
             // 弹出层内容
99
-            form: {
100
-                caseNumber:'111',
101
-                applicant:'韩超勃',
102
-                caseIdentifying:10000,
103
-                feePayable:1000,
104
-                actualPayment:980,
105
-                Respondent:'黄海龙',
106
-                appeal:'杀人放火',
107
-                state:'已缴费',
108
-            },
129
+            form: {},
109 130
             // 校验表单
110 131
             rules: {
111
-                postName: [
112
-                    { required: true, message: "岗位名称不能为空", trigger: "blur" }
113
-                ],
114
-                postCode: [
115
-                    { required: true, message: "岗位编码不能为空", trigger: "blur" }
116
-                ],
117
-                postSort: [
118
-                    { required: true, message: "岗位顺序不能为空", trigger: "blur" }
119
-                ]
132
+
120 133
             },
121
-            dataList: [
122
-                {
123
-                    name: '黄海龙',
124
-                    casesNumber: 1,
125
-                    totalAmount: '1000',
126
-                    date: '2016-05-02',
127
-                    presenter: '韩超勃',
128
-                    state: "待缴费"
129
-                }, {
130
-                    name: '黄海龙',
131
-                    casesNumber: 1,
132
-                    totalAmount: '1000',
133
-                    date: '2016-05-02',
134
-                    presenter: '韩超勃',
135
-                    state: "待缴费"
136
-                }, {
137
-                    name: '黄海龙',
138
-                    casesNumber: 2,
139
-                    totalAmount: '1000',
140
-                    date: '2016-05-02',
141
-                    presenter: '韩超勃',
142
-                    state: "待缴费"
143
-                }, {
144
-                    name: '黄海龙',
145
-                    casesNumber: 3,
146
-                    totalAmount: '1000',
147
-                    date: '2016-05-02',
148
-                    presenter: '韩超勃',
149
-                    state: "待缴费"
150
-                }
151
-            ]
134
+            dataList: [],
135
+            // 支付文字
136
+            payMain: "",
137
+            // 支付元素显示
138
+            payFlag: false,
139
+            // 案件id,案件实付金额
140
+            payForm: {}
152 141
         };
153 142
     },
154 143
     created() {
155
-        // this.getList();
144
+        this.getList();
156 145
     },
157 146
     methods: {
147
+        // 生成二维码
148
+        qrcode(url) {  // 前端根据 URL 生成微信支付二维码
149
+            document.getElementById("qrcodeImg").innerHTML = "";
150
+            return new QRCode('qrcodeImg', {
151
+                width: 200,
152
+                height: 200,
153
+                text: url,
154
+                colorDark: '#000',
155
+                colorLight: '#fff'
156
+            });
157
+        },
158 158
         // 取消按钮
159 159
         cancel() {
160 160
             this.open = false;
161 161
         },
162
-        /** 新增按钮操作 */
163
-        confirmation() {
164
-            debugger
162
+        payCancel() {
163
+            this.openPay = false;
164
+        },
165
+        /** 查看缴费清单 */
166
+        confirmation(val) {
167
+            this.getDetail({ id: val.id })
165 168
             this.open = true;
166
-            this.title = "缴费确认";
169
+            this.title = "缴费清单";
170
+        },
171
+        payStatus(val) {
172
+            this.getDetail({ id: val.id })
173
+            this.openPay = true;
174
+            this.payMain = "";
175
+            this.payTitle = "缴费确认";
176
+            // console.log(")))))))))))))))))))))))))", val);
167 177
         },
168 178
         // 提交表单
169
-        submitForm(){},
170
-        /** 查询登录日志列表 */
179
+        submitForm() { },
180
+        /** 查询案件列表 */
171 181
         getList() {
172
-            // this.loading = true;
173
-            // list(this.queryParams).then(response => {
174
-            //     this.list = response.rows;
175
-            //     this.total = response.total;
176
-            //     this.loading = false;
177
-            // });
182
+            this.loading = true;
183
+            caseApplicationList(this.queryParams).then(response => {
184
+                this.dataList = response.rows;
185
+                this.dataList.forEach(item => {
186
+                    if (item.caseStatus == 1) {
187
+                        item.caseStatusName = '待缴费'
188
+                    }
189
+                    if (item.arbitratMethod == "1") {
190
+                        item.arbitratMethodName = '视频仲裁'
191
+                    } else if (item.arbitratMethod == "2") {
192
+                        item.arbitratMethodName = '书面仲裁'
193
+                    }
194
+                });
195
+                this.total = response.total;
196
+                this.loading = false;
197
+            });
198
+        },
199
+        /** 查询详情 */
200
+        getDetail(parms) {
201
+            caseApplicationDetail(parms).then(res => {
202
+                if (res.data.caseStatus == 1) {
203
+                    res.data.caseStatusName = '待缴费'
204
+                }
205
+                this.form = res.data;
206
+                this.payForm.totalFee = res.data.paidExpenses;
207
+                this.payForm.caseId = res.data.id
208
+            })
209
+        },
210
+        // 支付
211
+        pay(val) {
212
+            if (this.payForm.totalFee == 0 || !this.payForm.totalFee) {
213
+                this.$message({
214
+                    message: '此案件无需缴费',
215
+                    type: 'error'
216
+                });
217
+                return
218
+            }
219
+            let payType = ""
220
+            if (val == 0) {
221
+                payType = "wxpay"
222
+                this.payMain = "请使用微信扫二维码支付"
223
+            } else if (val == 1) {
224
+                payType = "alipay"
225
+                this.payMain = "请使用支付宝扫二维码支付"
226
+            }
227
+            casePay({
228
+                totalFee: this.payForm.totalFee * 100,
229
+                caseId: this.payForm.caseId,
230
+                tradeType: "native",
231
+                platform: payType
232
+            }).then(res => {
233
+                this.paySrc = res.data.code_url
234
+                this.qrcode(this.paySrc)
235
+            })
178 236
         },
179 237
         /** 搜索按钮操作 */
180 238
         handleQuery() {
@@ -189,5 +247,34 @@ export default {
189 247
     }
190 248
 };
191 249
 </script>
250
+<style scoped lang="scss">
251
+.payType {
252
+    height: 80px;
253
+    line-height: 80px;
254
+
255
+    .icon-weixinzhifu {
256
+        font-size: 24px;
257
+        color: #27a56f;
258
+        margin-right: 15px;
259
+    }
260
+
261
+    .icon-zhifubao {
262
+        font-size: 24px;
263
+        color: #1d76cc;
264
+    }
265
+}
266
+
267
+.payImg {
268
+    width: 100%;
269
+    display: flex;
270
+    justify-content: center;
271
+}
272
+
273
+.payTitle {
274
+    margin-top: 20px;
275
+    width: 100%;
276
+    text-align: center;
277
+}
278
+</style>
192 279
   
193 280